diff --git a/.github/workflows/portage-stable-packages-list b/.github/workflows/portage-stable-packages-list index d345ef99722..f2303e551e5 100644 --- a/.github/workflows/portage-stable-packages-list +++ b/.github/workflows/portage-stable-packages-list @@ -34,6 +34,7 @@ acct-group/root acct-group/sgx acct-group/shadow acct-group/sshd +acct-group/sssd acct-group/systemd-coredump acct-group/systemd-journal acct-group/systemd-journal-remote @@ -66,6 +67,7 @@ acct-user/polkitd acct-user/portage acct-user/root acct-user/sshd +acct-user/sssd acct-user/systemd-coredump acct-user/systemd-journal-remote acct-user/systemd-network @@ -255,6 +257,7 @@ dev-libs/jansson dev-libs/jose dev-libs/json-c dev-libs/jsoncpp +dev-libs/leancrypto dev-libs/libaio dev-libs/libassuan dev-libs/libbsd @@ -375,6 +378,7 @@ dev-python/truststore dev-python/typing-extensions dev-python/uc-micro-py dev-python/urllib3 +dev-python/vcs-versioning dev-python/wheel dev-util/bpftool @@ -442,6 +446,7 @@ eclass/linux-info.eclass eclass/linux-mod-r1.eclass eclass/linux-mod.eclass eclass/llvm-r1.eclass +eclass/llvm-r2.eclass eclass/llvm-utils.eclass eclass/llvm.eclass eclass/lua-single.eclass @@ -500,6 +505,7 @@ eclass/udev.eclass eclass/unpacker.eclass eclass/user-info.eclass eclass/usr-ldscript.eclass +eclass/vala.eclass eclass/vcs-clean.eclass eclass/vcs-snapshot.eclass eclass/verify-sig.eclass diff --git a/build_library/extra_sysexts.sh b/build_library/extra_sysexts.sh index 444b3eb9a67..13eaafcfbb6 100644 --- a/build_library/extra_sysexts.sh +++ b/build_library/extra_sysexts.sh @@ -5,8 +5,8 @@ EXTRA_SYSEXTS=( "nvidia-drivers-535-open|x11-drivers/nvidia-drivers:0/535|kernel-open persistenced|amd64" "nvidia-drivers-550|x11-drivers/old-nvidia-drivers:0/550|-kernel-open persistenced|amd64" "nvidia-drivers-550-open|x11-drivers/old-nvidia-drivers:0/550|kernel-open persistenced|amd64" - "nvidia-drivers-570|x11-drivers/nvidia-drivers:0/570|-kernel-open persistenced|amd64" - "nvidia-drivers-570-open|x11-drivers/nvidia-drivers:0/570|kernel-open persistenced|amd64" + "nvidia-drivers-570|x11-drivers/old-nvidia-drivers:0/570|-kernel-open persistenced|amd64" + "nvidia-drivers-570-open|x11-drivers/old-nvidia-drivers:0/570|kernel-open persistenced|amd64" "podman|app-containers/podman,net-misc/passt" "python|dev-lang/python,dev-python/pip" "zfs|sys-fs/zfs" diff --git a/build_packages b/build_packages index 21b3945bc95..eddd8b4595e 100755 --- a/build_packages +++ b/build_packages @@ -260,26 +260,29 @@ break_dep_loop() { if [[ "${FLAGS_usepkgonly}" -eq "${FLAGS_FALSE}" ]]; then # Breaking the following loops here: # + # util-linux[pam] -> pam[audit] -> audit -> tmpfiles -> systemd -> util-linux # util-linux[udev] -> virtual/udev -> systemd -> util-linux # util-linux[systemd] -> systemd -> util-linux # util-linux[cryptsetup] -> cryptsetup -> util-linux # cryptsetup[udev] -> virtual/udev -> systemd[cryptsetup] -> cryptsetup # lvm2[udev] -> virtual/udev -> systemd[cryptsetup] -> cryptsetup -> lvm2 # lvm2[systemd] -> systemd[cryptsetup] -> cryptsetup -> lvm2 + # systemd[audit] -> audit -> tmpfiles -> systemd # systemd[cryptsetup] -> cryptsetup[udev] -> virtual/udev -> systemd # systemd[tpm] -> tpm2-tss -> util-linux[udev] -> virtual/udev -> systemd + # systemd[selinux] -> selinux-base-policy -> selinux-base -> policycoreutils -> libsemanage -> audit -> tmpfiles -> systemd # curl[http2] -> nghttp2[systemd] -> systemd[curl] -> curl # sys-libs/pam[systemd] -> sys-apps/systemd[pam] -> sys-libs/pam # dropping USE=pam from sys-apps/systemd requires dropping # USE=systemd from sys-auth/pambase # sys-auth/pambase[sssd] -> sys-auth/sssd -> sys-apps/shadow[pam] -> sys-auth/pambase - break_dep_loop sys-apps/util-linux cryptsetup,systemd,udev \ + break_dep_loop sys-apps/util-linux cryptsetup,pam,systemd,udev \ sys-fs/cryptsetup udev \ sys-fs/lvm2 systemd,udev \ - sys-apps/systemd cryptsetup,pam,tpm \ + sys-apps/systemd audit,cryptsetup,pam,selinux,tpm \ net-misc/curl http2 \ net-libs/nghttp2 systemd \ - sys-libs/pam systemd \ + sys-libs/pam audit,systemd \ sys-auth/pambase sssd,systemd fi diff --git a/changelog/security/2026-06-05-weekly-updates.md b/changelog/security/2026-06-05-weekly-updates.md new file mode 100644 index 00000000000..782c945eaaa --- /dev/null +++ b/changelog/security/2026-06-05-weekly-updates.md @@ -0,0 +1,16 @@ +- libarchive ([CVE-2026-4426](https://www.cve.org/CVERecord?id=CVE-2026-4426)) +- xz-utils ([CVE-2026-34743](https://www.cve.org/CVERecord?id=CVE-2026-34743)) +- go ([CVE-2026-27140](https://www.cve.org/CVERecord?id=CVE-2026-27140), [CVE-2026-27143](https://www.cve.org/CVERecord?id=CVE-2026-27143), [CVE-2026-27144](https://www.cve.org/CVERecord?id=CVE-2026-27144), [CVE-2026-32280](https://www.cve.org/CVERecord?id=CVE-2026-32280), [CVE-2026-32281](https://www.cve.org/CVERecord?id=CVE-2026-32281), [CVE-2026-32282](https://www.cve.org/CVERecord?id=CVE-2026-32282), [CVE-2026-32283](https://www.cve.org/CVERecord?id=CVE-2026-32283), [CVE-2026-32288](https://www.cve.org/CVERecord?id=CVE-2026-32288), [CVE-2026-32289](https://www.cve.org/CVERecord?id=CVE-2026-32289), [CVE-2026-33811](https://www.cve.org/CVERecord?id=CVE-2026-33811), [CVE-2026-33814](https://www.cve.org/CVERecord?id=CVE-2026-33814), [CVE-2026-39817](https://www.cve.org/CVERecord?id=CVE-2026-39817), [CVE-2026-39819](https://www.cve.org/CVERecord?id=CVE-2026-39819), [CVE-2026-39820](https://www.cve.org/CVERecord?id=CVE-2026-39820), [CVE-2026-39823](https://www.cve.org/CVERecord?id=CVE-2026-39823), [CVE-2026-39825](https://www.cve.org/CVERecord?id=CVE-2026-39825), [CVE-2026-39826](https://www.cve.org/CVERecord?id=CVE-2026-39826), [CVE-2026-39836](https://www.cve.org/CVERecord?id=CVE-2026-39836), [CVE-2026-42499](https://www.cve.org/CVERecord?id=CVE-2026-42499), [CVE-2026-42501](https://www.cve.org/CVERecord?id=CVE-2026-42501)) +- expat ([CVE-2026-41080](https://www.cve.org/CVERecord?id=CVE-2026-41080), [CVE-2026-45186](https://www.cve.org/CVERecord?id=CVE-2026-45186)) +- libgcrypt ([CVE-2026-41989](https://www.cve.org/CVERecord?id=CVE-2026-41989)) +- libxml2 ([CVE-2026-0989](https://www.cve.org/CVERecord?id=CVE-2026-0989), [CVE-2026-0990](https://www.cve.org/CVERecord?id=CVE-2026-0990), [CVE-2026-0992](https://www.cve.org/CVERecord?id=CVE-2026-0992), [CVE-2026-1757](https://www.cve.org/CVERecord?id=CVE-2026-1757), [libxml2-20260415](https://gitlab.gnome.org/GNOME/libxml2/-/commit/c94eb0210183b9d7cb43f8e7fddc6be55843ef49)) +- openssl ([CVE-2026-2673](https://www.cve.org/CVERecord?id=CVE-2026-2673), [CVE-2026-28386](https://www.cve.org/CVERecord?id=CVE-2026-28386), [CVE-2026-28387](https://www.cve.org/CVERecord?id=CVE-2026-28387), [CVE-2026-28388](https://www.cve.org/CVERecord?id=CVE-2026-28388), [CVE-2026-28389](https://www.cve.org/CVERecord?id=CVE-2026-28389), [CVE-2026-28390](https://www.cve.org/CVERecord?id=CVE-2026-28390), [CVE-2026-31790](https://www.cve.org/CVERecord?id=CVE-2026-31790)) +- curl ([CVE-2026-1965](https://www.cve.org/CVERecord?id=CVE-2026-1965), [CVE-2026-3783](https://www.cve.org/CVERecord?id=CVE-2026-3783), [CVE-2026-3784](https://www.cve.org/CVERecord?id=CVE-2026-3784), [CVE-2026-3805](https://www.cve.org/CVERecord?id=CVE-2026-3805)) +- openssh ([CVE-2026-35385](https://www.cve.org/CVERecord?id=CVE-2026-35385), [CVE-2026-35386](https://www.cve.org/CVERecord?id=CVE-2026-35386), [CVE-2026-35387](https://www.cve.org/CVERecord?id=CVE-2026-35387), [CVE-2026-35388](https://www.cve.org/CVERecord?id=CVE-2026-35388), [CVE-2026-35414](https://www.cve.org/CVERecord?id=CVE-2026-35414)) +- rsync ([CVE-2026-41035](https://www.cve.org/CVERecord?id=CVE-2026-41035), [CVE-2026-29518](https://www.cve.org/CVERecord?id=CVE-2026-29518), [CVE-2026-43617](https://www.cve.org/CVERecord?id=CVE-2026-43617), [CVE-2026-43618](https://www.cve.org/CVERecord?id=CVE-2026-43618), [CVE-2026-43619](https://www.cve.org/CVERecord?id=CVE-2026-43619), [CVE-2026-43620](https://www.cve.org/CVERecord?id=CVE-2026-43620), [CVE-2026-45232](https://www.cve.org/CVERecord?id=CVE-2026-45232)) +- bubblewrap ([CVE-2026-41163](https://www.cve.org/CVERecord?id=CVE-2026-41163)) +- util-linux ([CVE-2026-27456](https://www.cve.org/CVERecord?id=CVE-2026-27456)) +- sssd ([CVE-2026-6245](https://www.cve.org/CVERecord?id=CVE-2026-6245)) +- libcap ([CVE-2026-4878](https://www.cve.org/CVERecord?id=CVE-2026-4878)) +- zlib ([CVE-2026-27171](https://www.cve.org/CVERecord?id=CVE-2026-27171)) +- x11-drivers/nvidia-drivers ([CVE-2025-33221](https://www.cve.org/CVERecord?id=CVE-2025-33221), [CVE-2026-24182](https://www.cve.org/CVERecord?id=CVE-2026-24182), [CVE-2026-24187](https://www.cve.org/CVERecord?id=CVE-2026-24187), [CVE-2026-24190](https://www.cve.org/CVERecord?id=CVE-2026-24190), [CVE-2026-24192](https://www.cve.org/CVERecord?id=CVE-2026-24192), [CVE-2026-24193](https://www.cve.org/CVERecord?id=CVE-2026-24193), [CVE-2026-24194](https://www.cve.org/CVERecord?id=CVE-2026-24194), [CVE-2026-24195](https://www.cve.org/CVERecord?id=CVE-2026-24195), [CVE-2026-24196](https://www.cve.org/CVERecord?id=CVE-2026-24196), [CVE-2026-24197](https://www.cve.org/CVERecord?id=CVE-2026-24197), [CVE-2026-24198](https://www.cve.org/CVERecord?id=CVE-2026-24198), [CVE-2026-24199](https://www.cve.org/CVERecord?id=CVE-2026-24199)) diff --git a/changelog/updates/2026-06-05-weekly-updates.md b/changelog/updates/2026-06-05-weekly-updates.md new file mode 100644 index 00000000000..e5367972ad9 --- /dev/null +++ b/changelog/updates/2026-06-05-weekly-updates.md @@ -0,0 +1,88 @@ +- SDK: go ([1.26.3](https://go.dev/doc/go1.26)) +- SDK: qemu ([10.2.2](https://lists.nongnu.org/archive/html/qemu-devel/2026-03/msg05601.html)) +- SDK: rust ([1.93.1](https://blog.rust-lang.org/2026/02/12/Rust-1.93.1/) (includes [1.93.0](https://blog.rust-lang.org/2026/01/22/Rust-1.93.0/))) +- azure, dev, gce, sysext-python: python ([3.12.13_p1](https://www.python.org/downloads/release/python-31213/)) +- azure, dev, sysext-python: urllib3 ([2.7.0](https://github.com/urllib3/urllib3/releases/tag/2.7.0)) +- base, dev: adcli ([0.9.3.1](https://gitlab.freedesktop.org/realmd/adcli/-/releases/0.9.3.1) (includes [0.9.3](https://gitlab.freedesktop.org/realmd/adcli/-/releases/0.9.3a))) +- base, dev: audit ([4.1.4](https://github.com/linux-audit/audit-userspace/releases/tag/v4.1.4) (includes [4.1.3](https://github.com/linux-audit/audit-userspace/releases/tag/v4.1.3), [4.1.2](https://github.com/linux-audit/audit-userspace/releases/tag/v4.1.2), [4.1.1](https://github.com/linux-audit/audit-userspace/releases/tag/v4.1.1), [4.1.0](https://github.com/linux-audit/audit-userspace/releases/tag/v4.1.0))) +- base, dev: bpftool ([7.7.0](https://github.com/libbpf/bpftool/releases/tag/v7.7.0)) +- base, dev: btrfs-progs ([6.19.1](https://github.com/kdave/btrfs-progs/releases/tag/v6.19.1) (includes [6.19](https://github.com/kdave/btrfs-progs/releases/tag/v6.19))) +- base, dev: checkpolicy ([3.9](https://github.com/SELinuxProject/selinux/releases/tag/3.9)) +- base, dev: cifs-utils ([7.5](https://git.samba.org/cifs-utils.git/?p=cifs-utils.git;a=log;h=25ba696a213f9a6d7b4fcdd157757695710c8886)) +- base, dev: conntrack-tools ([1.4.9](https://www.mail-archive.com/netfilter-announce@lists.netfilter.org/msg00285.html)) +- base, dev: coreutils ([9.11](https://lists.gnu.org/archive/html/coreutils-announce/2026-04/msg00000.html) (includes [9.10](https://lists.gnu.org/archive/html/coreutils-announce/2026-02/msg00000.html))) +- base, dev: cryptsetup ([2.8.6](https://gitlab.com/cryptsetup/cryptsetup/-/raw/v2.8.6/docs/v2.8.6-ReleaseNotes)) +- base, dev: curl ([8.19.0](https://curl.se/ch/8.19.0.html)) +- base, dev: dracut ([110](https://github.com/dracut-ng/dracut/releases/tag/110)) +- base, dev: e2fsprogs ([1.47.4](https://e2fsprogs.sourceforge.net/e2fsprogs-release.html#1.47.4)) +- base, dev: elfutils ([0.195](https://inbox.sourceware.org/elfutils-devel/CAJDtP-Qok4ViNzvrr28WgkCCqrFH0iAZStiD8C7nbpDhrPzLWA@mail.gmail.com/T/)) +- base, dev: ethtool ([6.19](https://git.kernel.org/pub/scm/network/ethtool/ethtool.git/plain/NEWS?h=v6.19)) +- base, dev: expat ([2.8.1](https://blog.hartwork.org/posts/expat-2-8-1-released/) (includes [2.8.0](https://blog.hartwork.org/posts/expat-2-8-0-released/))) +- base, dev: git ([2.53.0](https://raw.githubusercontent.com/git/git/refs/tags/v2.53.0/Documentation/RelNotes/2.53.0.adoc)) +- base, dev: gnupg ([2.5.18](https://lists.gnupg.org/pipermail/gnupg-announce/2017q1/000401.html)) +- base, dev: gnutls ([3.8.13](https://gitlab.com/gnutls/gnutls/-/raw/3.8.13/NEWS)) +- base, dev: hwdata ([0.401](https://github.com/vcrhonek/hwdata/releases/tag/v0.401)) +- base, dev: intel-microcode ([20260512_p20260513](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/tag/microcode-20260512)) +- base, dev: iproute2 ([6.19.0](https://www.spinics.net/lists/netdev/msg1158895.html)) +- base, dev: iptables ([1.8.13](https://www.mail-archive.com/netfilter-announce@lists.netfilter.org/msg00287.html) (includes [1.8.12](https://www.mail-archive.com/netfilter-announce@lists.netfilter.org/msg00286.html))) +- base, dev: libarchive ([3.8.7](https://github.com/libarchive/libarchive/releases/tag/v3.8.7) (includes [3.8.6](https://github.com/libarchive/libarchive/releases/tag/v3.8.6))) +- base, dev: libcap ([2.78](https://sites.google.com/site/fullycapable/release-notes-for-libcap#h.x4zn8j3lss6r)) +- base, dev: libcap-ng ([0.9.3](https://github.com/stevegrubb/libcap-ng/releases/tag/v0.9.3) (includes [0.9.2](https://github.com/stevegrubb/libcap-ng/releases/tag/v0.9.2), [0.9.1](https://github.com/stevegrubb/libcap-ng/releases/tag/v0.9.1), [0.9](https://github.com/stevegrubb/libcap-ng/releases/tag/v0.9))) +- base, dev: libgcrypt ([1.12.2](https://dev.gnupg.org/T8114.html) (includes [1.12.1](https://dev.gnupg.org/T8067.html), [1.12.0](https://lists.gnupg.org/pipermail/gnupg-announce/2026q1/000502.html))) +- base, dev: libgpg-error ([1.59](https://dev.gnupg.org/T7974.html)) +- base, dev: libksba ([1.6.8](https://dev.gnupg.org/T7174.html)) +- base, dev: libnetfilter_conntrack ([1.1.1](https://www.mail-archive.com/netfilter-announce@lists.netfilter.org/msg00284.html)) +- base, dev: libselinux ([3.9](https://github.com/SELinuxProject/selinux/releases/tag/3.9)) +- base, dev: libsepol ([3.9](https://github.com/SELinuxProject/selinux/releases/tag/3.9)) +- base, dev: libsodium ([1.0.22](https://github.com/jedisct1/libsodium/releases/tag/1.0.22-RELEASE)) +- base, dev: libxml2 ([2.15.3](https://gitlab.gnome.org/GNOME/libxml2/-/raw/v2.15.3/NEWS) (includes [2.15.2](https://gitlab.gnome.org/GNOME/libxml2/-/raw/v2.15.2/NEWS))) +- base, dev: lsof ([4.99.6](https://github.com/lsof-org/lsof/releases/tag/4.99.6)) +- base, dev: lvm2 ([2.03.39](https://gitlab.com/lvmteam/lvm2/-/tags/v2_03_39) (includes [2.03.38](https://gitlab.com/lvmteam/lvm2/-/tags/v2_03_38))) +- base, dev: mdadm ([4.6](https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/tree/CHANGELOG.md?h=mdadm-4.6)) +- base, dev: ncurses ([6.5_p20251220](https://invisible-island.net/ncurses/NEWS.html#t20251220)) +- base, dev: ngtcp2 ([1.22.1](https://github.com/ngtcp2/ngtcp2/releases/tag/v1.22.1)) +- base, dev: openssh ([10.3_p1](https://www.openssh.org/txt/release-10.3)) +- base, dev: openssl ([3.5.6](https://openssl-library.org/post/2026-04-07-release-announcement/)) +- base, dev: parted ([3.7](https://savannah.gnu.org/news/?id=10879)) +- base, dev: pciutils ([3.15.0](https://git.kernel.org/pub/scm/utils/pciutils/pciutils.git/plain/ChangeLog?h=v3.15.0)) +- base, dev: procps ([4.0.6](https://gitlab.com/procps-ng/procps/-/releases/v4.0.6)) +- base, dev: rsync ([3.4.3](https://download.samba.org/pub/rsync/NEWS#3.4.3) (includes [3.4.2](https://download.samba.org/pub/rsync/NEWS#3.4.2))) +- base, dev: semodule-utils ([3.9](https://github.com/SELinuxProject/selinux/releases/tag/3.9)) +- base, dev: shadow ([4.19.4](https://github.com/shadow-maint/shadow/releases/tag/4.19.4)) +- base, dev: sqlite ([3.51.3](https://sqlite.org/releaselog/3_51_3.html)) +- base, dev: sssd ([2.13.0](https://sssd.io/release-notes/sssd-2.13.0.html) (includes [2.12.0](https://sssd.io/release-notes/sssd-2.12.0.html), [2.11.0](https://sssd.io/release-notes/sssd-2.11.0.html), [2.10.0](https://sssd.io/release-notes/sssd-2.10.0.html))) +- base, dev: systemd ([260.1](https://github.com/systemd/systemd/releases/tag/v260)) +- base, dev: timezone-data ([2026a](https://lists.iana.org/hyperkitty/list/tz-announce@iana.org/thread/ASPLBE3A4BAEXIOQ3KZ6EJSJWBU6L53G/)) +- base, dev: util-linux ([2.41.4](https://github.com/util-linux/util-linux/blob/v2.41.4/Documentation/releases/v2.41.4-ReleaseNotes)) +- base, dev: whois ([5.6.6](https://github.com/rfc1036/whois/blob/v5.6.6/debian/changelog)) +- base, dev: xfsprogs ([6.19.0](https://web.git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/plain/doc/CHANGES?h=v6.19.0)) +- base, dev: xz-utils ([5.8.3](https://github.com/tukaani-project/xz/releases/tag/v5.8.3)) +- base, dev: zlib ([1.3.2](https://github.com/madler/zlib/releases?q=1.3.2)) +- dev, sysext-incus: squashfs-tools ([4.7.5](https://github.com/plougher/squashfs-tools/releases?q=4.7.5)) +- dev: debugedit ([5.3](https://sourceware.org/cgit/debugedit/log/?h=debugedit-5.3)) +- dev: file ([5.47](https://raw.githubusercontent.com/file/file/refs/tags/FILE5_47/ChangeLog)) +- dev: gentoolkit ([0.7.2](https://codeberg.org/gentoo/gentoolkit/commits/tag/gentoolkit-0.7.2)) +- dev: getuto ([1.18](https://github.com/projg2/getuto/commits/getuto-1.18/)) +- dev: iperf ([3.21](https://github.com/esnet/iperf/releases/tag/3.21)) +- dev: man-pages ([6.17](https://lwn.net/ml/all/aYy41v6tYda2Qc_1@devuan/)) +- dev: minicom ([2.11.1](https://salsa.debian.org/minicom-team/minicom/-/releases/2.11.1) (includes [2.11](https://salsa.debian.org/minicom-team/minicom/-/releases/2.11))) +- dev: mpc ([1.4.1](https://gitlab.inria.fr/mpc/mpc/-/raw/1.4.1/NEWS) (includes [1.4.0](https://gitlab.inria.fr/mpc/mpc/-/raw/1.4.0/NEWS))) +- sysext-containerd: containerd ([2.2.2](https://github.com/containerd/containerd/releases/tag/v2.2.2)) +- sysext-incus, sysext-podman, vmware: fuse ([3.18.2](https://github.com/libfuse/libfuse/releases/tag/fuse-3.18.2)) +- sysext-incus: dnsmasq ([2.92_p2](https://dnsmasq.org/CHANGELOG)) +- sysext-nvidia-drivers-535, sysext-nvidia-drivers-535-open: nvidia-drivers ([535.309.01](https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-535-309-01/index.html)) +- sysext-python: charset-normalizer ([3.4.7](https://github.com/jawah/charset_normalizer/releases/tag/3.4.7) (includes [3.4.6](https://github.com/jawah/charset_normalizer/releases/tag/3.4.6), [3.4.5](https://github.com/jawah/charset_normalizer/releases/tag/3.4.5))) +- sysext-python: idna ([3.14](https://github.com/kjd/idna/releases/tag/v3.14) (includes [3.13](https://github.com/kjd/idna/releases/tag/v3.13), [3.12](https://github.com/kjd/idna/releases/tag/v3.12))) +- sysext-python: jaraco-context ([6.1.2](https://raw.githubusercontent.com/jaraco/jaraco.context/refs/tags/v6.1.2/NEWS.rst)) +- sysext-python: jaraco-text ([4.2.0](https://raw.githubusercontent.com/jaraco/jaraco.text/refs/tags/v4.2.0/NEWS.rst)) +- sysext-python: linkify-it-py ([2.1.0](https://github.com/tsutsu3/linkify-it-py/releases/tag/v2.1.0)) +- sysext-python: more-itertools ([11.0.2](https://github.com/more-itertools/more-itertools/releases/tag/v11.0.2) (includes [11.0.1](https://github.com/more-itertools/more-itertools/releases/tag/v11.0.1), [11.0.0](https://github.com/more-itertools/more-itertools/releases/tag/v11.0.0))) +- sysext-python: packaging ([26.1](https://github.com/pypa/packaging/releases/tag/26.1)) +- sysext-python: pip ([26.0.1](https://raw.githubusercontent.com/pypa/pip/refs/tags/26.0.1/NEWS.rst)) +- sysext-python: platformdirs ([4.9.6](https://github.com/tox-dev/platformdirs/releases/tag/4.9.6) (includes [4.9.0](https://github.com/tox-dev/platformdirs/releases/tag/4.9.0), [4.8.0](https://github.com/tox-dev/platformdirs/releases/tag/4.8.0), [4.7.0](https://github.com/tox-dev/platformdirs/releases/tag/4.7.0), [4.6.0](https://github.com/tox-dev/platformdirs/releases/tag/4.6.0))) +- sysext-python: requests ([2.33.1](https://github.com/psf/requests/releases/tag/v2.33.1) (includes [2.33.0](https://github.com/psf/requests/releases/tag/v2.33.0))) +- sysext-python: rich ([15.0.0](https://github.com/Textualize/rich/releases/tag/v15.0.0) (includes [14.3.0](https://github.com/Textualize/rich/releases/tag/v14.3.0))) +- sysext-python: setuptools ([82.0.1](https://raw.githubusercontent.com/pypa/setuptools/refs/tags/v82.0.1/NEWS.rst)) +- sysext-python: setuptools-scm ([10.0.5](https://github.com/pypa/setuptools-scm/releases/tag/setuptools-scm-v10.0.5) (includes [10.0.0](https://github.com/pypa/setuptools-scm/releases/tag/setuptools-scm-v10.0.0))) +- sysext-python: uc-micro-py ([2.0.0](https://raw.githubusercontent.com/tsutsu3/uc.micro-py/refs/tags/v2.0.0/CHANGELOG.md)) +- sysext-python: wheel ([0.47.0](https://github.com/pypa/wheel/releases/tag/0.47.0)) diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/config/env/app-containers/docker-cli b/sdk_container/src/third_party/coreos-overlay/coreos/config/env/app-containers/docker-cli deleted file mode 100644 index e7ee65aa01c..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/config/env/app-containers/docker-cli +++ /dev/null @@ -1,12 +0,0 @@ -# Fix cross-compilation by setting up the environment properly. -# -# This is what go-module_src_unpack does, but docker does not use it. -cros_pre_src_unpack_set_build_env() { - if use amd64 || use arm || use arm64 || - ( use ppc64 && [[ $(tc-endian) == "little" ]] ) || use s390 || use x86; then - GOFLAGS="-buildmode=pie ${GOFLAGS}" - fi - GOFLAGS="${GOFLAGS} -p=$(makeopts_jobs)" - - go-env_set_compile_environment -} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/config/env/app-crypt/adcli b/sdk_container/src/third_party/coreos-overlay/coreos/config/env/app-crypt/adcli new file mode 100644 index 00000000000..32d5baf1ede --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos/config/env/app-crypt/adcli @@ -0,0 +1,5 @@ +# adcli configure script uses AC_CHECK_FILE and this fails when +# cross-compiling, so work it around with a cache variable. Set it to +# no, because I haven't seen this file being installed at all. + +export ac_cv_file__usr_share_selinux_devel_Makefile=no diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-auth/sssd b/sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-auth/sssd index c2b8bd82df0..23b100ddbf7 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-auth/sssd +++ b/sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-auth/sssd @@ -5,6 +5,7 @@ export EXTRA_ECONF="--enable-sss-default-nss-plugin" cros_post_src_install_flatcar_modifications() { # This is to make sure that some sssd config is always in place. cp -a "${ED}"/etc/sssd/sssd{-example,}.conf + fowners sssd:sssd /etc/sssd/sssd.conf # Move pam files to /usr. vendorize_pam_files diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-containers/containerd/0001-ctr-no-such-device-fix.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-containers/containerd/0001-ctr-no-such-device-fix.patch deleted file mode 100644 index d0675ed8ca8..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-containers/containerd/0001-ctr-no-such-device-fix.patch +++ /dev/null @@ -1,228 +0,0 @@ -From 3d509bcd335b15cece69ebfa117681d2715df930 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Poulin?= -Date: Wed, 26 Nov 2025 18:28:26 -0500 -Subject: [PATCH 1/2] core/mount/manager: add tests for WithTemporary option -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Add tests for the WithTemporary mount activation used by `ctr images mount`. -Covers bind mount and overlay scenarios to catch regressions like #12549. - -Signed-off-by: Jérôme Poulin ---- - core/mount/manager/manager_linux_test.go | 157 ++++++++++++++++++++++- - 1 file changed, 156 insertions(+), 1 deletion(-) - -diff --git a/core/mount/manager/manager_linux_test.go b/core/mount/manager/manager_linux_test.go -index 06ab38c2b7b0..b62f3fdc8cf4 100644 ---- a/core/mount/manager/manager_linux_test.go -+++ b/core/mount/manager/manager_linux_test.go -@@ -314,6 +314,161 @@ func TestLoopbackOverlay(t *testing.T) { - } - } - -+// TestTemporaryMountActivation tests the WithTemporary option used by -+// `ctr images mount`. This verifies the bind mount returned in info.System -+// points to a valid, mounted directory. -+func TestTemporaryMountActivation(t *testing.T) { -+ testutil.RequiresRoot(t) -+ ctx := logtest.WithT(context.Background(), t) -+ ctx = namespaces.WithNamespace(ctx, "test") -+ td := t.TempDir() -+ metadb := filepath.Join(td, "mounts.db") -+ targetdir := filepath.Join(td, "m") -+ db, err := bolt.Open(metadb, 0600, nil) -+ require.NoError(t, err) -+ defer db.Close() -+ -+ sourcedir := filepath.Join(td, "source") -+ require.NoError(t, os.MkdirAll(sourcedir, 0755)) -+ -+ a := fstest.Apply( -+ fstest.CreateFile("/testfile.txt", []byte("test content\n"), 0644), -+ fstest.CreateDir("/testdir", 0755), -+ ) -+ require.NoError(t, a.Apply(sourcedir)) -+ -+ mounts := []mount.Mount{ -+ { -+ Type: "bind", -+ Source: sourcedir, -+ Options: []string{"rbind", "ro"}, -+ }, -+ } -+ -+ m, err := NewManager(db, targetdir) -+ require.NoError(t, err) -+ -+ ainfo, err := m.Activate(ctx, "temp-mount-test", mounts, mount.WithTemporary) -+ require.NoError(t, err) -+ defer func() { -+ assert.NoError(t, m.Deactivate(ctx, "temp-mount-test")) -+ }() -+ -+ require.NotEmpty(t, ainfo.System, "Expected system mounts to be returned") -+ -+ require.Len(t, ainfo.System, 1, "Expected exactly one system mount") -+ systemMount := ainfo.System[0] -+ assert.Equal(t, "bind", systemMount.Type, "Expected bind mount type") -+ -+ sourceInfo, err := os.Stat(systemMount.Source) -+ require.NoError(t, err, "Bind mount source %q should exist", systemMount.Source) -+ assert.True(t, sourceInfo.IsDir(), "Bind mount source should be a directory") -+ -+ testFile := filepath.Join(systemMount.Source, "testfile.txt") -+ content, err := os.ReadFile(testFile) -+ require.NoError(t, err, "Should be able to read test file from bind mount source") -+ assert.Equal(t, "test content\n", string(content), "Test file content should match") -+ -+ targetMount := filepath.Join(td, "target") -+ require.NoError(t, os.MkdirAll(targetMount, 0755)) -+ -+ err = mount.All(ainfo.System, targetMount) -+ require.NoError(t, err, "Should be able to mount system mounts to target") -+ defer testutil.Unmount(t, targetMount) -+ -+ targetTestFile := filepath.Join(targetMount, "testfile.txt") -+ targetContent, err := os.ReadFile(targetTestFile) -+ require.NoError(t, err, "Should be able to read test file from target mount") -+ assert.Equal(t, "test content\n", string(targetContent), "Target test file content should match") -+} -+ -+// TestTemporaryOverlayMountActivation tests WithTemporary with overlay mounts, -+// which is the more common case for `ctr images mount` with overlay snapshotter. -+func TestTemporaryOverlayMountActivation(t *testing.T) { -+ testutil.RequiresRoot(t) -+ ctx := logtest.WithT(context.Background(), t) -+ ctx = namespaces.WithNamespace(ctx, "test") -+ td := t.TempDir() -+ metadb := filepath.Join(td, "mounts.db") -+ targetdir := filepath.Join(td, "m") -+ db, err := bolt.Open(metadb, 0600, nil) -+ require.NoError(t, err) -+ defer db.Close() -+ -+ lower1 := filepath.Join(td, "lower1") -+ lower2 := filepath.Join(td, "lower2") -+ upper := filepath.Join(td, "upper") -+ work := filepath.Join(td, "work") -+ -+ require.NoError(t, os.MkdirAll(lower1, 0755)) -+ require.NoError(t, os.MkdirAll(lower2, 0755)) -+ require.NoError(t, os.MkdirAll(upper, 0755)) -+ require.NoError(t, os.MkdirAll(work, 0755)) -+ -+ require.NoError(t, os.WriteFile(filepath.Join(lower1, "file1.txt"), []byte("layer1\n"), 0644)) -+ require.NoError(t, os.WriteFile(filepath.Join(lower2, "file2.txt"), []byte("layer2\n"), 0644)) -+ -+ mounts := []mount.Mount{ -+ { -+ Type: "overlay", -+ Source: "overlay", -+ Options: []string{ -+ fmt.Sprintf("lowerdir=%s:%s", lower2, lower1), -+ fmt.Sprintf("upperdir=%s", upper), -+ fmt.Sprintf("workdir=%s", work), -+ }, -+ }, -+ } -+ -+ m, err := NewManager(db, targetdir) -+ require.NoError(t, err) -+ -+ ainfo, err := m.Activate(ctx, "temp-overlay-test", mounts, mount.WithTemporary) -+ require.NoError(t, err) -+ defer func() { -+ assert.NoError(t, m.Deactivate(ctx, "temp-overlay-test")) -+ }() -+ -+ require.NotEmpty(t, ainfo.System, "Expected system mounts to be returned") -+ -+ require.Len(t, ainfo.System, 1, "Expected exactly one system mount") -+ systemMount := ainfo.System[0] -+ assert.Equal(t, "bind", systemMount.Type, "Expected bind mount type") -+ -+ sourceInfo, err := os.Stat(systemMount.Source) -+ require.NoError(t, err, "Bind mount source %q should exist", systemMount.Source) -+ assert.True(t, sourceInfo.IsDir(), "Bind mount source should be a directory") -+ -+ file1 := filepath.Join(systemMount.Source, "file1.txt") -+ file2 := filepath.Join(systemMount.Source, "file2.txt") -+ -+ content1, err := os.ReadFile(file1) -+ require.NoError(t, err, "Should be able to read file1 from overlay via bind source") -+ assert.Equal(t, "layer1\n", string(content1)) -+ -+ content2, err := os.ReadFile(file2) -+ require.NoError(t, err, "Should be able to read file2 from overlay via bind source") -+ assert.Equal(t, "layer2\n", string(content2)) -+ -+ targetMount := filepath.Join(td, "target") -+ require.NoError(t, os.MkdirAll(targetMount, 0755)) -+ -+ err = mount.All(ainfo.System, targetMount) -+ require.NoError(t, err, "Should be able to mount system mounts to target") -+ defer testutil.Unmount(t, targetMount) -+ -+ targetFile1 := filepath.Join(targetMount, "file1.txt") -+ targetFile2 := filepath.Join(targetMount, "file2.txt") -+ -+ targetContent1, err := os.ReadFile(targetFile1) -+ require.NoError(t, err) -+ assert.Equal(t, "layer1\n", string(targetContent1)) -+ -+ targetContent2, err := os.ReadFile(targetFile2) -+ require.NoError(t, err) -+ assert.Equal(t, "layer2\n", string(targetContent2)) -+} -+ - func initalizeBlockDevice(td string, a fstest.Applier) (string, error) { - file, err := os.CreateTemp(td, "fs-") - if err != nil { -@@ -342,7 +497,7 @@ func initalizeBlockDevice(td string, a fstest.Applier) (string, error) { - - m := mount.Mount{ - Type: "ext4", -- Source: dpath, // previous mount -+ Source: dpath, - Options: []string{"loop"}, - } - target, err := os.MkdirTemp(td, "mount-") - -From 1d79082735d46fe24ded00a55ea6e3a33954593e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Poulin?= -Date: Wed, 26 Nov 2025 18:29:31 -0500 -Subject: [PATCH 2/2] core/mount/manager: fix bind mount missing rbind option -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The bind mount created for temporary activations was missing the -Options field, causing mount to fail with "no such device" because -the MS_BIND flag wasn't being set. - -Fixes #12549 - -Signed-off-by: Jérôme Poulin ---- - core/mount/manager/manager.go | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/core/mount/manager/manager.go b/core/mount/manager/manager.go -index d43c1beb8e7c..5163c17dbcac 100644 ---- a/core/mount/manager/manager.go -+++ b/core/mount/manager/manager.go -@@ -430,9 +430,9 @@ func (mm *mountManager) Activate(ctx context.Context, name string, mounts []moun - // TODO: Add config for whether to add the bind mount? - if config.Temporary && firstSystemMount > 0 { - mounts = append(mounts, mount.Mount{ -- Type: "bind", -- Source: mounted[firstSystemMount-1].MountPoint, -- // TODO : Configurable bind mount options? -+ Type: "bind", -+ Source: mounted[firstSystemMount-1].MountPoint, -+ Options: []string{"rbind"}, - }) - } - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-containers/containerd/README.md b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-containers/containerd/README.md deleted file mode 100644 index 9e27991eace..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-containers/containerd/README.md +++ /dev/null @@ -1,3 +0,0 @@ -The `0001-ctr-no-such-device-fix.patch` fixes a regression detected by -our `cl.toolbox.dnf-install` test. It is merged into the 2.2 release -branch in upstream, but no release with the fix happened yet. diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-containers/cri-tools/0000-Do-not-explicitly-pass-GOFLAGS.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-containers/cri-tools/0000-Do-not-explicitly-pass-GOFLAGS.patch deleted file mode 100644 index ee54bd8e6d4..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-containers/cri-tools/0000-Do-not-explicitly-pass-GOFLAGS.patch +++ /dev/null @@ -1,42 +0,0 @@ -From ab81f8e0860e2c47283415afd1713188b22127ea Mon Sep 17 00:00:00 2001 -From: James Le Cuirot -Date: Mon, 13 Apr 2026 11:20:12 +0100 -Subject: [PATCH] Makefile: Don't explicitly pass GOFLAGS to go commands - -go automatically checks GOFLAGS and filters unknown flags for you, e.g. -it will drop the go run -exec flag when doing go build. Explicitly -passing GOFLAGS breaks this filtering. - -Signed-off-by: James Le Cuirot ---- - Makefile | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/Makefile b/Makefile -index 3576643c03..cf7eb37d0e 100644 ---- a/Makefile -+++ b/Makefile -@@ -100,7 +100,6 @@ critest: ## Build the critest binary. - $(CRITEST): - CGO_ENABLED=$(CGO_ENABLED) $(GO_TEST) -c -o $@ \ - -ldflags '$(GO_LDFLAGS)' \ -- $(GOFLAGS) \ - $(PROJECT)/cmd/critest - - .PHONY: crictl -@@ -110,7 +109,6 @@ crictl: ## Build the crictl binary. - $(CRICTL): - CGO_ENABLED=$(CGO_ENABLED) $(GO_BUILD) -o $@ \ - -ldflags '$(GO_LDFLAGS)' \ -- $(GOFLAGS) \ - $(PROJECT)/cmd/crictl - - .PHONY: clean -@@ -200,7 +198,6 @@ test-crictl: $(GINKGO) ## Run the crictl test suite. - # Run go test for templates_test.go and util_test.go - CGO_ENABLED=$(CGO_ENABLED) $(GO_TEST) \ - -ldflags '$(GO_LDFLAGS)' \ -- $(GOFLAGS) \ - $(PROJECT)/cmd/crictl - $(GINKGO) $(TESTFLAGS) \ - -r -p \ diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-containers/cri-tools/README.md b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-containers/cri-tools/README.md deleted file mode 100644 index 246fc6f74a8..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-containers/cri-tools/README.md +++ /dev/null @@ -1,4 +0,0 @@ -`0000-Do-not-explicitly-pass-GOFLAGS.patch` patch is taken from -https://github.com/kubernetes-sigs/cri-tools/pull/2048/. Not currently -merged, so it needs to be checked if updating to cri-tools >1.35.0 -(current release at the time of writing this message). diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-libs/libxml2/0001-ignore-next-prev-docs-xpath.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-libs/libxml2/0001-ignore-next-prev-docs-xpath.patch deleted file mode 100644 index 117a0500de0..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-libs/libxml2/0001-ignore-next-prev-docs-xpath.patch +++ /dev/null @@ -1,130 +0,0 @@ -From d583ca9bbfbfa58f8f2c400c7eade02dfc70bbbd Mon Sep 17 00:00:00 2001 -From: Daniel Garcia Moreno -Date: Wed, 8 Oct 2025 09:18:51 +0200 -Subject: [PATCH] Ignore next/prev of documents when traversing XPath - -See https://gitlab.gnome.org/GNOME/libxml2/-/issues/996 ---- - xpath.c | 66 ++++++++++++++++++++++++++++++++++++++++++--------------- - 1 file changed, 49 insertions(+), 17 deletions(-) - -diff --git a/xpath.c b/xpath.c -index b8e197cc9..442ce02f8 100644 ---- a/xpath.c -+++ b/xpath.c -@@ -6558,12 +6558,18 @@ xmlNode * - xmlXPathNextFollowingSibling(xmlXPathParserContext *ctxt, xmlNode *cur) { - if ((ctxt == NULL) || (ctxt->context == NULL)) return(NULL); - if ((ctxt->context->node->type == XML_ATTRIBUTE_NODE) || -- (ctxt->context->node->type == XML_NAMESPACE_DECL)) -- return(NULL); -+ (ctxt->context->node->type == XML_NAMESPACE_DECL)) -+ return(NULL); -+ - if (cur == (xmlNodePtr) ctxt->context->doc) - return(NULL); -+ - if (cur == NULL) -- return(ctxt->context->node->next); -+ cur = ctxt->context->node; -+ -+ if (cur->type == XML_DOCUMENT_NODE) -+ return(NULL); -+ - return(cur->next); - } - -@@ -6581,17 +6587,23 @@ xmlNode * - xmlXPathNextPrecedingSibling(xmlXPathParserContext *ctxt, xmlNode *cur) { - if ((ctxt == NULL) || (ctxt->context == NULL)) return(NULL); - if ((ctxt->context->node->type == XML_ATTRIBUTE_NODE) || -- (ctxt->context->node->type == XML_NAMESPACE_DECL)) -- return(NULL); -+ (ctxt->context->node->type == XML_NAMESPACE_DECL)) -+ return(NULL); -+ - if (cur == (xmlNodePtr) ctxt->context->doc) - return(NULL); -- if (cur == NULL) -- return(ctxt->context->node->prev); -- if ((cur->prev != NULL) && (cur->prev->type == XML_DTD_NODE)) { -- cur = cur->prev; -- if (cur == NULL) -- return(ctxt->context->node->prev); -+ -+ if (cur == NULL) { -+ cur = ctxt->context->node; -+ } else if ((cur->prev != NULL) && (cur->prev->type == XML_DTD_NODE)) { -+ cur = cur->prev; -+ if (cur == NULL) -+ cur = ctxt->context->node; - } -+ -+ if (cur->type == XML_DOCUMENT_NODE) -+ return(NULL); -+ - return(cur->prev); - } - -@@ -6626,14 +6638,27 @@ xmlXPathNextFollowing(xmlXPathParserContext *ctxt, xmlNode *cur) { - cur = (xmlNodePtr) ns->next; - } - } -- if (cur == NULL) return(NULL) ; /* ERROR */ -- if (cur->next != NULL) return(cur->next) ; -+ -+ /* ERROR */ -+ if (cur == NULL) -+ return(NULL); -+ -+ if (cur->type == XML_DOCUMENT_NODE) -+ return(NULL); -+ -+ if (cur->next != NULL) -+ return(cur->next); -+ - do { - cur = cur->parent; -- if (cur == NULL) break; -- if (cur == (xmlNodePtr) ctxt->context->doc) return(NULL); -- if (cur->next != NULL) return(cur->next); -+ if (cur == NULL) -+ break; -+ if (cur == (xmlNodePtr) ctxt->context->doc) -+ return(NULL); -+ if (cur->next != NULL && cur->type != XML_DOCUMENT_NODE) -+ return(cur->next); - } while (cur != NULL); -+ - return(cur); - } - -@@ -6746,10 +6771,13 @@ xmlXPathNextPrecedingInternal(xmlXPathParserContextPtr ctxt, - } - ctxt->ancestor = cur->parent; - } -- if (cur->type == XML_NAMESPACE_DECL) -+ -+ if (cur->type == XML_NAMESPACE_DECL || cur->type == XML_DOCUMENT_NODE) - return(NULL); -+ - if ((cur->prev != NULL) && (cur->prev->type == XML_DTD_NODE)) - cur = cur->prev; -+ - while (cur->prev == NULL) { - cur = cur->parent; - if (cur == NULL) -@@ -6760,6 +6788,10 @@ xmlXPathNextPrecedingInternal(xmlXPathParserContextPtr ctxt, - return (cur); - ctxt->ancestor = cur->parent; - } -+ -+ if (cur->type == XML_DOCUMENT_NODE) -+ return(NULL); -+ - cur = cur->prev; - while (cur->last != NULL) - cur = cur->last; --- -GitLab - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-libs/libxml2/README.md b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-libs/libxml2/README.md deleted file mode 100644 index dac6c15c9dc..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-libs/libxml2/README.md +++ /dev/null @@ -1,3 +0,0 @@ -The `0001-ignore-next-prev-docs-xpath.patch` is for addressing -CVE-2025-10911 in libxslt. The patch can be dropped when updating -libxml2 to 2.15.2. diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0001-wait-online-set-any-by-default.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0001-wait-online-set-any-by-default.patch index ec36e29014e..91a5c228c40 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0001-wait-online-set-any-by-default.patch +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0001-wait-online-set-any-by-default.patch @@ -1,7 +1,7 @@ -From 3e713e019ab2e13e0d48bf30bab0ddaf3573458d Mon Sep 17 00:00:00 2001 +From c16ef94786281a7a75c498f33995191f7e1cc93d Mon Sep 17 00:00:00 2001 From: David Michael Date: Tue, 16 Apr 2019 02:44:51 +0000 -Subject: [PATCH 01/14] wait-online: set --any by default +Subject: [PATCH 1/8] wait-online: set --any by default The systemd-networkd-wait-online command would normally continue waiting after a network interface is usable if other interfaces are @@ -28,5 +28,5 @@ index b1d0b9cde2..e07c11d807 100644 STATIC_DESTRUCTOR_REGISTER(arg_interfaces, hashmap_freep); -- -2.52.0 +2.53.0 diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0002-needs-update-don-t-require-strictly-newer-usr.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0002-needs-update-don-t-require-strictly-newer-usr.patch index e0da71196bc..7301bdb87c7 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0002-needs-update-don-t-require-strictly-newer-usr.patch +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0002-needs-update-don-t-require-strictly-newer-usr.patch @@ -1,7 +1,7 @@ -From d34fa493e6d69b97633e329d55413a549da8239d Mon Sep 17 00:00:00 2001 +From ec321c3a3888014f94d782c8f6454745a96bfaab Mon Sep 17 00:00:00 2001 From: Alex Crawford Date: Wed, 2 Mar 2016 10:46:33 -0800 -Subject: [PATCH 02/14] needs-update: don't require strictly newer usr +Subject: [PATCH 2/8] needs-update: don't require strictly newer usr Updates should be triggered whenever usr changes, not only when it is newer. --- @@ -23,7 +23,7 @@ index d9d78262a1..761bbdecca 100644 This requires that updates to /usr/ are always followed by an update of the modification time of diff --git a/src/shared/condition.c b/src/shared/condition.c -index 15e3ee9840..381378e77a 100644 +index 903662edf1..9157b53e2f 100644 --- a/src/shared/condition.c +++ b/src/shared/condition.c @@ -817,7 +817,7 @@ static int condition_test_needs_update(Condition *c, char **env) { @@ -54,5 +54,5 @@ index 15e3ee9840..381378e77a 100644 static bool in_first_boot(void) { -- -2.52.0 +2.53.0 diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0003-core-use-max-for-DefaultTasksMax.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0003-core-use-max-for-DefaultTasksMax.patch index 761b3420189..429af6b6eda 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0003-core-use-max-for-DefaultTasksMax.patch +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0003-core-use-max-for-DefaultTasksMax.patch @@ -1,7 +1,7 @@ -From 2cc519ebec4f01f76bcdcde61259ba23a810ea30 Mon Sep 17 00:00:00 2001 +From 5e8b4b38473018964ac462a0c0aa9ec994945828 Mon Sep 17 00:00:00 2001 From: Adrian Vladu Date: Fri, 16 Feb 2024 11:22:08 +0000 -Subject: [PATCH 03/14] core: use max for DefaultTasksMax +Subject: [PATCH 3/8] core: use max for DefaultTasksMax Since systemd v228, systemd has a DefaultTasksMax which defaulted to 512, later 15% of the system's maximum number of PIDs. This @@ -34,15 +34,15 @@ index b7fe53dc9c..175fe67139 100644 Kernel has a default value for kernel.pid_max= and an algorithm of counting in case of more than 32 cores. For example, with the default kernel.pid_max=, DefaultTasksMax= defaults to 4915, diff --git a/src/core/manager.c b/src/core/manager.c -index a5a51023c5..ef0ce9e31d 100644 +index 79fa19d976..d83b5b38b0 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -113,7 +113,7 @@ /* How many units and jobs to process of the bus queue before returning to the event loop. */ #define MANAGER_BUS_MESSAGE_BUDGET 100U --#define DEFAULT_TASKS_MAX ((CGroupTasksMax) { 15U, 100U }) /* 15% */ -+#define DEFAULT_TASKS_MAX ((CGroupTasksMax) { 100U, 100U }) /* 15% */ +-#define DEFAULT_TASKS_MAX ((const CGroupTasksMax) { 15U, 100U }) /* 15% */ ++#define DEFAULT_TASKS_MAX ((const CGroupTasksMax) { 100U, 100U }) /* 100% */ static int manager_dispatch_notify_fd(sd_event_source *source, int fd, uint32_t revents, void *userdata); static int manager_dispatch_signal_fd(sd_event_source *source, int fd, uint32_t revents, void *userdata); @@ -60,5 +60,5 @@ index 54196e8489..b0b5c78b56 100644 #DefaultLimitFSIZE= #DefaultLimitDATA= -- -2.52.0 +2.53.0 diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0004-systemd-Disable-SELinux-permissions-checks.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0004-systemd-Disable-SELinux-permissions-checks.patch index 9305b7cb6dd..e1a2e8292ff 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0004-systemd-Disable-SELinux-permissions-checks.patch +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0004-systemd-Disable-SELinux-permissions-checks.patch @@ -1,7 +1,7 @@ -From a8c18ecc95e15af2d669649115826430698dcc5d Mon Sep 17 00:00:00 2001 +From 5c6b08088fe16e40e0aaaf501950d711a421fb99 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 20 Dec 2016 16:43:22 +0000 -Subject: [PATCH 04/14] systemd: Disable SELinux permissions checks +Subject: [PATCH 4/8] systemd: Disable SELinux permissions checks We don't care about the interaction between systemd and SELinux policy, so let's just disable these checks rather than having to incorporate policy @@ -25,5 +25,5 @@ index 7457b3d456..82afe343dd 100644 #include -- -2.52.0 +2.53.0 diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0005-Revert-getty-Pass-tty-to-use-by-agetty-via-stdin.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0005-Revert-getty-Pass-tty-to-use-by-agetty-via-stdin.patch index cca7d146f9e..214ebd231f5 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0005-Revert-getty-Pass-tty-to-use-by-agetty-via-stdin.patch +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0005-Revert-getty-Pass-tty-to-use-by-agetty-via-stdin.patch @@ -1,7 +1,7 @@ -From 33a603bb00fce6e4c3b4faf80157e8532932fb00 Mon Sep 17 00:00:00 2001 +From 6c97801bdec3730f49f68683b141909145826f2f Mon Sep 17 00:00:00 2001 From: Sayan Chowdhury Date: Fri, 16 Dec 2022 16:28:26 +0530 -Subject: [PATCH 05/14] Revert "getty: Pass tty to use by agetty via stdin" +Subject: [PATCH 5/8] Revert "getty: Pass tty to use by agetty via stdin" This reverts commit b4bf9007cbee7dc0b1356897344ae2a7890df84c. @@ -17,14 +17,14 @@ Signed-off-by: Sayan Chowdhury 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/units/console-getty.service.in b/units/console-getty.service.in -index 278048724f..5731e68d8f 100644 +index 947346aebc..57091fb37d 100644 --- a/units/console-getty.service.in +++ b/units/console-getty.service.in -@@ -20,12 +20,12 @@ Before=getty.target +@@ -17,12 +17,12 @@ Before=getty.target ConditionPathExists=/dev/console [Service] --ExecStart=-{{AGETTY}} --noreset --noclear --issue-file=/etc/issue:/etc/issue.d:/run/issue.d:/usr/lib/issue.d --keep-baud 115200,57600,38400,9600 - ${TERM} +-ExecStart=-{{AGETTY}} --noreset --noclear --keep-baud 115200,57600,38400,9600 - ${TERM} +# The '-o' option value tells agetty to replace 'login' arguments with '--' for +# safety, and then the entered username. +ExecStart=-{{AGETTY}} -o '-- \\u' --noreset --noclear --keep-baud 115200,57600,38400,9600 console ${TERM} @@ -37,14 +37,14 @@ index 278048724f..5731e68d8f 100644 TTYReset=yes TTYVHangup=yes diff --git a/units/container-getty@.service.in b/units/container-getty@.service.in -index 18e5a98a7f..568fcd1e53 100644 +index 1bd0edcd66..970d8a1c7d 100644 --- a/units/container-getty@.service.in +++ b/units/container-getty@.service.in -@@ -25,13 +25,13 @@ Conflicts=rescue.service +@@ -22,13 +22,13 @@ Conflicts=rescue.service Before=rescue.service [Service] --ExecStart=-{{AGETTY}} --noreset --noclear --issue-file=/etc/issue:/etc/issue.d:/run/issue.d:/usr/lib/issue.d - ${TERM} +-ExecStart=-{{AGETTY}} --noreset --noclear - ${TERM} +# The '-o' option value tells agetty to replace 'login' arguments with '--' for +# safety, and then the entered username. +ExecStart=-{{AGETTY}} -o '-- \\u' --noreset --noclear pts/%I ${TERM} @@ -58,14 +58,14 @@ index 18e5a98a7f..568fcd1e53 100644 TTYReset=yes TTYVHangup=yes diff --git a/units/getty@.service.in b/units/getty@.service.in -index 15f1a572fd..a3285d956e 100644 +index 2a7ff07bb9..f8af354dd1 100644 --- a/units/getty@.service.in +++ b/units/getty@.service.in -@@ -34,13 +34,13 @@ Before=rescue.service +@@ -31,13 +31,13 @@ Before=rescue.service ConditionPathExists=/dev/tty0 [Service] --ExecStart=-{{AGETTY}} --noreset --noclear --issue-file=/etc/issue:/etc/issue.d:/run/issue.d:/usr/lib/issue.d - ${TERM} +-ExecStart=-{{AGETTY}} --noreset --noclear - ${TERM} +# The '-o' option value tells agetty to replace 'login' arguments with '--' for +# safety, and then the entered username. +ExecStart=-{{AGETTY}} -o '-- \\u' --noreset --noclear %I ${TERM} @@ -79,14 +79,14 @@ index 15f1a572fd..a3285d956e 100644 TTYReset=yes TTYVHangup=yes diff --git a/units/serial-getty@.service.in b/units/serial-getty@.service.in -index 8b5a63d681..29ab8a0533 100644 +index d89805a0ef..73d88541fe 100644 --- a/units/serial-getty@.service.in +++ b/units/serial-getty@.service.in -@@ -30,12 +30,12 @@ Conflicts=rescue.service +@@ -27,12 +27,12 @@ Conflicts=rescue.service Before=rescue.service [Service] --ExecStart=-{{AGETTY}} --noreset --noclear --issue-file=/etc/issue:/etc/issue.d:/run/issue.d:/usr/lib/issue.d --keep-baud 115200,57600,38400,9600 - ${TERM} +-ExecStart=-{{AGETTY}} --noreset --noclear --keep-baud 115200,57600,38400,9600 - ${TERM} +# The '-o' option value tells agetty to replace 'login' arguments with '--' for +# safety, and then the entered username. +ExecStart=-{{AGETTY}} -o '-- \\u' --noreset --noclear --keep-baud 115200,57600,38400,9600 %I ${TERM} @@ -99,5 +99,5 @@ index 8b5a63d681..29ab8a0533 100644 TTYReset=yes TTYVHangup=yes -- -2.52.0 +2.53.0 diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0006-units-Keep-using-old-journal-file-format.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0006-units-Keep-using-old-journal-file-format.patch index 78d32f9809a..4b1724a9775 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0006-units-Keep-using-old-journal-file-format.patch +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0006-units-Keep-using-old-journal-file-format.patch @@ -1,7 +1,7 @@ -From 6c83b73ac087aaa1f08551c064cbac119ad92490 Mon Sep 17 00:00:00 2001 +From c05273535a1d96e187c7837929f0c88bfbf0ae68 Mon Sep 17 00:00:00 2001 From: Adrian Vladu Date: Fri, 16 Feb 2024 11:29:04 +0000 -Subject: [PATCH 06/14] units: Keep using old journal file format +Subject: [PATCH 6/8] units: Keep using old journal file format Systemd 252 made an incompatible change in journal file format. Temporarily force journald to use the old journal format to give logging containers more @@ -38,5 +38,5 @@ index b705ce08ff..874701dac4 100644 FileDescriptorStoreMax=4224 Group=systemd-journal -- -2.52.0 +2.53.0 diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0007-tmpfiles.d-Fix-DNS-issues-with-default-k8s-configura.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0007-tmpfiles.d-Fix-DNS-issues-with-default-k8s-configura.patch index fc74d75c891..00383ba868b 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0007-tmpfiles.d-Fix-DNS-issues-with-default-k8s-configura.patch +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0007-tmpfiles.d-Fix-DNS-issues-with-default-k8s-configura.patch @@ -1,8 +1,7 @@ -From 9d6db023c34d96b582e763da77c464629266f8e8 Mon Sep 17 00:00:00 2001 +From e8de255a0141ab8d169488338dc24f391299d653 Mon Sep 17 00:00:00 2001 From: Krzesimir Nowak Date: Wed, 22 Oct 2025 10:39:42 +0200 -Subject: [PATCH 07/14] tmpfiles.d: Fix DNS issues with default k8s - configuration +Subject: [PATCH 7/8] tmpfiles.d: Fix DNS issues with default k8s configuration The Kubelet takes /etc/resolv.conf for, e.g., CoreDNS which has dnsPolicy "default", but unless the kubelet `--resolv-conf` flag is set to point to @@ -33,5 +32,5 @@ index be5edc98e0..bea686682a 100644 -L! /etc/resolv.conf - - - - ../run/systemd/resolve/stub-resolv.conf +L! /etc/resolv.conf - - - - ../run/systemd/resolve/resolv.conf -- -2.52.0 +2.53.0 diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0008-units-Make-multi-user.target-the-default-target.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0008-units-Make-multi-user.target-the-default-target.patch index f8dd4db402a..d4fd2466b50 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0008-units-Make-multi-user.target-the-default-target.patch +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0008-units-Make-multi-user.target-the-default-target.patch @@ -1,41 +1,35 @@ -From bbc8ff28a7f0208b6b1020d0d2ca900cdfb5a42f Mon Sep 17 00:00:00 2001 +From 450c8acb76f851bb594f725f834c04b041c2859e Mon Sep 17 00:00:00 2001 From: Krzesimir Nowak Date: Fri, 24 Oct 2025 11:06:57 +0200 -Subject: [PATCH 08/14] units: Make multi-user.target the default target +Subject: [PATCH 8/8] units: Make multi-user.target the default target Signed-off-by: Krzesimir Nowak --- - units/meson.build | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) + units/meson.build | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/units/meson.build b/units/meson.build -index 12cf47d797..58de76dca9 100644 +index b2cf9bd8f3..74d7f61519 100644 --- a/units/meson.build +++ b/units/meson.build -@@ -47,10 +47,7 @@ units = [ - 'file' : 'getty@.service.in', - 'symlinks' : ['autovt@.service'], +@@ -48,7 +48,7 @@ units = [ + { 'file' : 'getty@.service.in' }, + { + 'file' : 'graphical.target', +- 'symlinks' : ['default.target'] + (runlevels ? ['runlevel5.target'] : []), ++ 'symlinks' : runlevels ? ['runlevel5.target'] : [], }, -- { -- 'file' : 'graphical.target', -- 'symlinks' : ['default.target'], -- }, -+ { 'file' : 'graphical.target' }, { 'file' : 'halt.target' }, { - 'file' : 'hibernate.target', -@@ -142,7 +139,10 @@ units = [ - 'conditions' : ['ENABLE_MACHINED'], - }, +@@ -143,7 +143,7 @@ units = [ { 'file' : 'modprobe@.service' }, -- { 'file' : 'multi-user.target' }, -+ { -+ 'file' : 'multi-user.target', -+ 'symlinks' : ['default.target'], -+ }, + { + 'file' : 'multi-user.target', +- 'symlinks' : runlevels ? ['runlevel2.target', 'runlevel3.target', 'runlevel4.target'] : [], ++ 'symlinks' : ['default.target'] + (runlevels ? ['runlevel2.target', 'runlevel3.target', 'runlevel4.target'] : []), + }, { 'file' : 'systemd-mute-console.socket', - 'symlinks' : ['sockets.target.wants/'] -- -2.52.0 +2.53.0 diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0009-discover-image-Follow-symlinks-in-a-given-root.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0009-discover-image-Follow-symlinks-in-a-given-root.patch deleted file mode 100644 index c8fd99ba90d..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0009-discover-image-Follow-symlinks-in-a-given-root.patch +++ /dev/null @@ -1,343 +0,0 @@ -From b6e987ebcc0efd6ea5a68582fe194650ebc89636 Mon Sep 17 00:00:00 2001 -From: Kai Lueke -Date: Thu, 20 Nov 2025 23:43:55 +0900 -Subject: [PATCH 09/14] discover-image: Follow symlinks in a given root - -So far systemd-sysext with --root= specified didn't follow extension -symlinks (such as the "current" symlinks managed by systemd-sysupdate). -The main use case is running systemd-sysext --root=/sysroot for setting -up the overlay mounts already from the initrd. - -Resolve symlinks correctly but don't defend against later symlink races -that would access a path outside of the given root. Malicous live -modifications are not a realistic threat model and anyway for that one -would need to rework how the image entry is passed over up to the point -when the loop device is set up. This change here does not introduce this -weakness nor does it expose it more than before. Thus, make it explicit -that setting up the extensions for a given --root= implies a certain -trust into this given root tree that it does not try do race conditions -with symlinks to trick systemd-sysext to mount a file outside --root=. -Without a strict --image-policy= set we would anyway mount filesystems -right away which is another attack vector but, again, the main use case -is to do this for the final system which is trusted at this stage. ---- - src/shared/discover-image.c | 169 +++++++++++++++++++----------------- - 1 file changed, 90 insertions(+), 79 deletions(-) - -diff --git a/src/shared/discover-image.c b/src/shared/discover-image.c -index 41fcaa9f44..6366316088 100644 ---- a/src/shared/discover-image.c -+++ b/src/shared/discover-image.c -@@ -400,6 +400,8 @@ static int image_make( - - /* We explicitly *do* follow symlinks here, since we want to allow symlinking trees, raw files and block - * devices into /var/lib/machines/, and treat them normally. -+ * Note that if the caller does not want to follow symlinks (and does not care about symlink races) -+ * then the caller should pass in a resolved path and an fd. - * - * This function returns -ENOENT if we can't find the image after all, and -EMEDIUMTYPE if it's not a file we - * recognize. */ -@@ -736,10 +738,7 @@ int image_find(RuntimeScope scope, - const char *root, - Image **ret) { - -- /* As mentioned above, we follow symlinks on this fstatat(), because we want to permit people to -- * symlink block devices into the search path. (For now, we disable that when operating relative to -- * some root directory.) */ -- int open_flags = root ? O_NOFOLLOW : 0, r; -+ int r; - - assert(scope < _RUNTIME_SCOPE_MAX && scope != RUNTIME_SCOPE_GLOBAL); - assert(class >= 0); -@@ -754,32 +753,47 @@ int image_find(RuntimeScope scope, - if (!names) - return -ENOMEM; - -+ _cleanup_close_ int rfd = AT_FDCWD; -+ if (root) { -+ rfd = open(root, O_CLOEXEC|O_DIRECTORY|O_PATH); -+ if (rfd < 0) -+ return log_debug_errno(errno, "Failed to open root directory '%s': %m", root); -+ } -+ - _cleanup_strv_free_ char **search = NULL; - r = pick_image_search_path(scope, class, root, &search); - if (r < 0) - return r; - - STRV_FOREACH(s, search) { -- _cleanup_free_ char *resolved = NULL; - _cleanup_closedir_ DIR *d = NULL; -+ _cleanup_free_ char *search_path = NULL; - -- r = chase_and_opendir(*s, root, CHASE_PREFIX_ROOT, &resolved, &d); -+ r = chase_and_opendirat(rfd, *s, CHASE_AT_RESOLVE_IN_ROOT, &search_path, &d); - if (r == -ENOENT) - continue; - if (r < 0) - return r; - - STRV_FOREACH(n, names) { -- _cleanup_free_ char *fname_buf = NULL; - const char *fname = *n; -+ _cleanup_free_ char *fname_path = NULL, *chased_path = NULL, *resolved_file = NULL; -+ _cleanup_close_ int fd = -EBADF; - -- _cleanup_close_ int fd = openat(dirfd(d), fname, O_PATH|O_CLOEXEC|open_flags); -- if (fd < 0) { -- if (errno != ENOENT) -- return -errno; -+ fname_path = path_join(search_path, fname); -+ if (!fname_path) -+ return -ENOMEM; - -+ /* Follow symlinks only inside given root */ -+ r = chaseat(rfd, fname_path, CHASE_AT_RESOLVE_IN_ROOT, &chased_path, &fd); -+ if (r == -ENOENT) - continue; -- } -+ if (r < 0) -+ return r; -+ -+ r = chaseat_prefix_root(chased_path, root, &resolved_file); -+ if (r < 0) -+ return r; - - struct stat st; - if (fstat(fd, &st) < 0) -@@ -805,10 +819,6 @@ int image_find(RuntimeScope scope, - - *ASSERT_PTR(endswith(suffix, ".v")) = 0; - -- _cleanup_free_ char *vp = path_join(resolved, fname); -- if (!vp) -- return -ENOMEM; -- - PickFilter filter = { - .type_mask = endswith(suffix, ".raw") ? (UINT32_C(1) << DT_REG) | (UINT32_C(1) << DT_BLK) : (UINT32_C(1) << DT_DIR), - .basename = name, -@@ -818,48 +828,44 @@ int image_find(RuntimeScope scope, - - _cleanup_(pick_result_done) PickResult result = PICK_RESULT_NULL; - r = path_pick(root, -- /* toplevel_fd= */ AT_FDCWD, -- vp, -+ rfd, -+ fname_path, /* This has to be the unresolved entry with the .v suffix */ - &filter, - /* n_filters= */ 1, -- PICK_ARCHITECTURE|PICK_TRIES, -+ PICK_ARCHITECTURE|PICK_TRIES|PICK_RESOLVE, - &result); - if (r < 0) { -- log_debug_errno(r, "Failed to pick versioned image on '%s', skipping: %m", vp); -+ log_debug_errno(r, "Failed to pick versioned image on '%s%s', skipping: %m", empty_to_root(root), skip_leading_slash(fname_path)); - continue; - } - if (!result.path) { -- log_debug("Found versioned directory '%s', without matching entry, skipping.", vp); -+ log_debug("Found versioned directory '%s%s', without matching entry, skipping.", empty_to_root(root), skip_leading_slash(fname_path)); - continue; - } - - /* Refresh the stat data for the discovered target */ - st = result.st; - close_and_replace(fd, result.fd); -+ free(resolved_file); -+ resolved_file = path_join(root, result.path); -+ if (!resolved_file) -+ return -ENOMEM; - -- _cleanup_free_ char *bn = NULL; -- r = path_extract_filename(result.path, &bn); -- if (r < 0) { -- log_debug_errno(r, "Failed to extract basename of image path '%s', skipping: %m", result.path); -- continue; -- } -- -- fname_buf = path_join(fname, bn); -- if (!fname_buf) -- return log_oom(); -- -- fname = fname_buf; -- -+ /* fname and fname_path are invalid now because they would need to be set -+ * from result.path by extracting the filename to set -+ * fname = path_join(fname, filename) and then -+ * fname_path = path_join(*s, fname) but since they are unused we don't do it */ -+ fname = NULL; -+ fname_path = mfree(fname_path); - } else if (!S_ISDIR(st.st_mode) && !S_ISBLK(st.st_mode)) { - log_debug("Ignoring non-directory and non-block device file '%s' without suffix.", fname); - continue; - } - -- _cleanup_free_ char *path = path_join(resolved, fname); -- if (!path) -- return -ENOMEM; -- -- r = image_make(class, name, fd, path, &st, ret); -+ /* Only put resolved paths into the image entry (incl. --root=). -+ * Defending against symlink races is not done -+ * and would be a TODO. */ -+ r = image_make(class, name, fd, resolved_file, &st, ret); - if (IN_SET(r, -ENOENT, -EMEDIUMTYPE)) - continue; - if (r < 0) -@@ -940,46 +946,58 @@ int image_discover( - const char *root, - Hashmap **images) { - -- /* As mentioned above, we follow symlinks on this fstatat(), because we want to permit people to -- * symlink block devices into the search path. (For now, we disable that when operating relative to -- * some root directory.) */ -- int open_flags = root ? O_NOFOLLOW : 0, r; -+ int r; - - assert(scope < _RUNTIME_SCOPE_MAX && scope != RUNTIME_SCOPE_GLOBAL); - assert(class >= 0); - assert(class < _IMAGE_CLASS_MAX); - assert(images); - -+ _cleanup_close_ int rfd = AT_FDCWD; -+ if (root) { -+ rfd = open(root, O_CLOEXEC|O_DIRECTORY|O_PATH); -+ if (rfd < 0) -+ return log_debug_errno(errno, "Failed to open root directory '%s': %m", root); -+ } -+ - _cleanup_strv_free_ char **search = NULL; - r = pick_image_search_path(scope, class, root, &search); - if (r < 0) - return r; - - STRV_FOREACH(s, search) { -- _cleanup_free_ char *resolved = NULL; - _cleanup_closedir_ DIR *d = NULL; -+ _cleanup_free_ char *search_path = NULL; - -- r = chase_and_opendir(*s, root, CHASE_PREFIX_ROOT, &resolved, &d); -+ r = chase_and_opendirat(rfd, *s, CHASE_AT_RESOLVE_IN_ROOT, &search_path, &d); - if (r == -ENOENT) - continue; - if (r < 0) - return r; - - FOREACH_DIRENT_ALL(de, d, return -errno) { -- _cleanup_free_ char *pretty = NULL, *fname_buf = NULL; -+ _cleanup_free_ char *pretty = NULL, *fname_path = NULL, *chased_path = NULL, *resolved_file = NULL; - _cleanup_(image_unrefp) Image *image = NULL; - const char *fname = de->d_name; -+ _cleanup_close_ int fd = -EBADF; - - if (dot_or_dot_dot(fname)) - continue; - -- _cleanup_close_ int fd = openat(dirfd(d), fname, O_PATH|O_CLOEXEC|open_flags); -- if (fd < 0) { -- if (errno != ENOENT) -- return -errno; -+ fname_path = path_join(search_path, fname); -+ if (!fname_path) -+ return -ENOMEM; - -- continue; /* Vanished while we were looking at it */ -- } -+ /* Follow symlinks only inside given root */ -+ r = chaseat(rfd, fname_path, CHASE_AT_RESOLVE_IN_ROOT, &chased_path, &fd); -+ if (r == -ENOENT) -+ continue; -+ if (r < 0) -+ return r; -+ -+ r = chaseat_prefix_root(chased_path, root, &resolved_file); -+ if (r < 0) -+ return r; - - struct stat st; - if (fstat(fd, &st) < 0) -@@ -1018,10 +1036,6 @@ int image_discover( - continue; - } - -- _cleanup_free_ char *vp = path_join(resolved, fname); -- if (!vp) -- return -ENOMEM; -- - PickFilter filter = { - .type_mask = endswith(suffix, ".raw") ? (UINT32_C(1) << DT_REG) | (UINT32_C(1) << DT_BLK) : (UINT32_C(1) << DT_DIR), - .basename = pretty, -@@ -1031,38 +1045,36 @@ int image_discover( - - _cleanup_(pick_result_done) PickResult result = PICK_RESULT_NULL; - r = path_pick(root, -- /* toplevel_fd= */ AT_FDCWD, -- vp, -+ rfd, -+ fname_path, /* This has to be the unresolved entry with the .v suffix */ - &filter, - /* n_filters= */ 1, -- PICK_ARCHITECTURE|PICK_TRIES, -+ PICK_ARCHITECTURE|PICK_TRIES|PICK_RESOLVE, - &result); - if (r < 0) { -- log_debug_errno(r, "Failed to pick versioned image on '%s', skipping: %m", vp); -+ log_debug_errno(r, "Failed to pick versioned image on '%s%s', skipping: %m", empty_to_root(root), skip_leading_slash(fname_path)); - continue; - } - if (!result.path) { -- log_debug("Found versioned directory '%s', without matching entry, skipping.", vp); -+ log_debug("Found versioned directory '%s%s', without matching entry, skipping.", empty_to_root(root), skip_leading_slash(fname_path)); - continue; - } - - /* Refresh the stat data for the discovered target */ - st = result.st; - close_and_replace(fd, result.fd); -+ free(resolved_file); -+ resolved_file = path_join(root, result.path); -+ if (!resolved_file) -+ return -ENOMEM; - -- _cleanup_free_ char *bn = NULL; -- r = path_extract_filename(result.path, &bn); -- if (r < 0) { -- log_debug_errno(r, "Failed to extract basename of image path '%s', skipping: %m", result.path); -- continue; -- } -- -- fname_buf = path_join(fname, bn); -- if (!fname_buf) -- return log_oom(); -- -- fname = fname_buf; -- -+ /* fname and fname_path are invalid now because they would need to -+ * be set from result.path by extracting the filename to set -+ * fname = path_join(fname, filename) and then -+ * fname_path = path_join(*s, fname) but since they are unused we -+ * don't do it */ -+ fname = NULL; -+ fname_path = mfree(fname_path); - } else { - r = extract_image_basename( - fname, -@@ -1095,11 +1107,10 @@ int image_discover( - if (hashmap_contains(*images, pretty)) - continue; - -- _cleanup_free_ char *path = path_join(resolved, fname); -- if (!path) -- return -ENOMEM; -- -- r = image_make(class, pretty, fd, path, &st, &image); -+ /* Only put resolved paths into the image entry. -+ * Defending against symlink races is not done -+ * and would be a TODO. */ -+ r = image_make(class, pretty, fd, resolved_file, &st, &image); - if (IN_SET(r, -ENOENT, -EMEDIUMTYPE)) - continue; - if (r < 0) --- -2.52.0 - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0010-sysext-Use-correct-image-name-for-extension-release-.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0010-sysext-Use-correct-image-name-for-extension-release-.patch deleted file mode 100644 index ea2de4c6d2f..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0010-sysext-Use-correct-image-name-for-extension-release-.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 3a1d8cb52278fb7926d7666385d9b7ef120508d6 Mon Sep 17 00:00:00 2001 -From: Kai Lueke -Date: Thu, 20 Nov 2025 23:43:55 +0900 -Subject: [PATCH 10/14] sysext: Use correct image name for extension release - checks - -For the extension release check the image name is needed and was derived -from the backing file of the loop device. However, this can have a -different name when symlinks were resolved. The surprising behavior was -that it worked when the target name started with the extension name and -_ because that's what's supported to chop off version suffixes. However, -we should not have such strict requirements for the target name and also -allow - as version separator and entirely different names/prefixes, the -same way as we also do for directories instead of raw images. - -Do not use the image name derived from the backing file of the loop -device but directly the extension name we have at hand. ---- - src/shared/discover-image.c | 5 +++++ - src/sysext/sysext.c | 5 +++++ - 2 files changed, 10 insertions(+) - -diff --git a/src/shared/discover-image.c b/src/shared/discover-image.c -index 6366316088..34512ea6da 100644 ---- a/src/shared/discover-image.c -+++ b/src/shared/discover-image.c -@@ -2172,6 +2172,11 @@ int image_read_metadata(Image *i, const ImagePolicy *image_policy, RuntimeScope - if (r < 0) - return log_debug_errno(r, "Failed to decrypt image '%s': %m", i->path); - -+ /* Do not use the image name derived from the backing file of the loop device */ -+ r = free_and_strdup(&m->image_name, i->name); -+ if (r < 0) -+ return r; -+ - r = dissected_image_acquire_metadata( - m, - /* userns_fd= */ -EBADF, -diff --git a/src/sysext/sysext.c b/src/sysext/sysext.c -index 2f6bee58c4..cb0a3046e1 100644 ---- a/src/sysext/sysext.c -+++ b/src/sysext/sysext.c -@@ -1885,6 +1885,11 @@ static int merge_subprocess( - if (r < 0) - return r; - -+ /* Do not use the image name derived from the backing file of the loop device */ -+ r = free_and_strdup(&m->image_name, img->name); -+ if (r < 0) -+ return r; -+ - r = dissected_image_load_verity_sig_partition( - m, - d->fd, --- -2.52.0 - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0011-sysext-Create-mutable-directory-with-the-right-mode.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0011-sysext-Create-mutable-directory-with-the-right-mode.patch deleted file mode 100644 index 8f5d22b7b18..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0011-sysext-Create-mutable-directory-with-the-right-mode.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 0d5830bf407c218b898c7fec6153fc6ae4da645f Mon Sep 17 00:00:00 2001 -From: Kai Lueke -Date: Wed, 3 Dec 2025 00:02:32 +0900 -Subject: [PATCH 11/14] sysext: Create mutable directory with the right mode - -When the mutable directory didn't exist but gets created with ---mutable=yes then it used to get mode 700 and later it got patched by -a chmod because it is the top layer and must match the target hierarchy. -This meant one could not call the function to resolve the mutable -directory twice before the mount because it has a check for a proper -mode when the directory exists which is the case for the second call. -Also, this resulted in /var/lib/extensions.mutable getting created with -mode 700 which is not really required. - -Don't rely on the chmod for the upper dir but directly create the -directory with the right mode by first creating all missing directories -with 755 as a sane default and then changing the mode as needed for the -mutable directory. ---- - src/sysext/sysext.c | 26 ++++++++++++++------------ - 1 file changed, 14 insertions(+), 12 deletions(-) - -diff --git a/src/sysext/sysext.c b/src/sysext/sysext.c -index cb0a3046e1..b926ce4c83 100644 ---- a/src/sysext/sysext.c -+++ b/src/sysext/sysext.c -@@ -1011,23 +1011,25 @@ static int resolve_mutable_directory( - } - - if (IN_SET(arg_mutable, MUTABLE_YES, MUTABLE_EPHEMERAL, MUTABLE_EPHEMERAL_IMPORT)) { -- _cleanup_free_ char *path_in_root = NULL; -+ _cleanup_close_ int path_fd = -EBADF, chmod_fd = -EBADF; - -- path_in_root = path_join(root, path); -- if (!path_in_root) -- return log_oom(); -- -- r = mkdir_p(path_in_root, 0700); -+ /* This also creates, e.g., /var/lib/extensions.mutable/usr if needed and all parent -+ * directories plus it also works when the last part is a symlink to the real /usr but we -+ * can't use chase_and_open here because it does not behave the same. */ -+ r = chase(path, root, CHASE_AT_RESOLVE_IN_ROOT|CHASE_MKDIR_0755|CHASE_MUST_BE_DIRECTORY|CHASE_PREFIX_ROOT, /* ret_path */ NULL, &path_fd); - if (r < 0) -- return log_error_errno(r, "Failed to create a directory '%s': %m", path_in_root); -+ return log_error_errno(r, "Failed to chase/create base directory '%s/%s': %m", strempty(root), skip_leading_slash(path)); -+ -+ chmod_fd = fd_reopen(path_fd, O_CLOEXEC|O_DIRECTORY); -+ if (chmod_fd < 0) -+ return log_error_errno(chmod_fd, "Failed to reopen '%s/%s': %m", strempty(root), skip_leading_slash(path)); - -- _cleanup_close_ int atfd = open(path_in_root, O_DIRECTORY|O_CLOEXEC); -- if (atfd < 0) -- return log_error_errno(errno, "Failed to open directory '%s': %m", path_in_root); -+ if (fchmod(chmod_fd, hierarchy_mode) < 0) -+ return log_error_errno(errno, "Failed to chmod directory '%s/%s': %m", strempty(root), skip_leading_slash(path)); - -- r = mac_selinux_fix_full(atfd, /* inode_path= */ NULL, hierarchy, /* flags= */ 0); -+ r = mac_selinux_fix_full(chmod_fd, /* inode_path= */ NULL, hierarchy, /* flags= */ 0); - if (r < 0) -- return log_error_errno(r, "Failed to fix SELinux label for '%s': %m", path_in_root); -+ return log_error_errno(r, "Failed to fix SELinux label for '%s/%s': %m", strempty(root), skip_leading_slash(path)); - } - - r = chase(path, root, CHASE_PREFIX_ROOT, &resolved_path, NULL); --- -2.52.0 - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0012-sysext-Skip-refresh-if-no-changes-are-found.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0012-sysext-Skip-refresh-if-no-changes-are-found.patch deleted file mode 100644 index 4e7acc6144f..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0012-sysext-Skip-refresh-if-no-changes-are-found.patch +++ /dev/null @@ -1,1013 +0,0 @@ -From 404b72c801f4b95e74b655f0771f08f63473d28a Mon Sep 17 00:00:00 2001 -From: Kai Lueke -Date: Wed, 26 Nov 2025 00:04:43 +0900 -Subject: [PATCH 12/14] sysext: Skip refresh if no changes are found - -When the extensions for the final system are already set up from the -initrd we should avoid disrupting the boot process with the remount -(which currently isn't atomic) and the daemon reload for -systemd-confext and systemd-sysext. Similarly, when sysupdate ran and -updated extensions it's best to avoid the remount and daemon reload if -no changes are found. -To do this, encode the current extension state in more detail than -before where only the names of the extensions where encoded in the -overlay mount. This can also be used to provide more details about the -extension origin in "systemd-sysext status (--json=)". During the -refresh add a check whether the old state matches the new state and in -this case skip the refresh unless the user provides a flag to always -refresh. Besides the extension name and the resolved path the best -method for identification is the verity hash but that is not available -for plain image files or directories. Therefore, also include data to -check for file/directory replacements. The creation/modification times -are not always real on reproducible images or extracted archive content. -The file handle together with the unique mount ID is the next best -identifier we can use when we have no verity hash. Fall back to an inode -when we get no handle. With the creation/modification time and the path -this should be good enough. Using a unique mount ID is important (with -a fallback to the regular non-unique mount ID) instead of st_dev because -st_dev gets reused too easily, e.g., by a loop device mount and the -mount ID helps to catch this. For the mount ID to be valid it has to be -resolved before we enter the new mount namespace. Thus, it gets provided -by the image dissect logic and handed over to the sysext subprocess -which runs in a new mount namespace. -Luckily, we can rule out online modification of directories or image -files because this is anyway not well supported with overlay mounts, so -we don't do a file checksum nor do we recurse into a directory to look -for the most recently touched files. But, as said, with the -always-refresh flag one can force a reload. ---- - man/systemd-sysext.xml | 13 ++ - shell-completion/bash/systemd-sysext | 1 + - src/basic/mountpoint-util.c | 110 ++++++++- - src/basic/mountpoint-util.h | 5 +- - src/include/override/fcntl.h | 5 + - src/shared/discover-image.c | 48 ++++ - src/shared/discover-image.h | 4 + - src/shared/varlink-io.systemd.sysext.c | 1 + - src/sysext/sysext.c | 301 ++++++++++++++++++++++--- - 9 files changed, 450 insertions(+), 38 deletions(-) - -diff --git a/man/systemd-sysext.xml b/man/systemd-sysext.xml -index b5ab6826a2..d6bbc0141d 100644 ---- a/man/systemd-sysext.xml -+++ b/man/systemd-sysext.xml -@@ -371,6 +371,19 @@ - - - -+ -+ -+ -+ When refreshing system extensions on /usr/ and /opt/ -+ for sysext and /etc/ for confext, ignore when the existing merged extensions -+ already match what would be merged. -+ By default the refresh is skipped when no changes are found. Note that changes done to an extension -+ directory while it's merged are ignored without this flag (unless an other extension got changed). -+ Note that changing the contents while merged is also undefined behavior in overlayfs. -+ -+ -+ -+ - - - -diff --git a/shell-completion/bash/systemd-sysext b/shell-completion/bash/systemd-sysext -index c605237ed6..69d786c33e 100644 ---- a/shell-completion/bash/systemd-sysext -+++ b/shell-completion/bash/systemd-sysext -@@ -36,6 +36,7 @@ _systemd-sysext() { - [ARG]='--root - --json - --noexec -+ --always-refresh - --image-policy - --mutable' - ) -diff --git a/src/basic/mountpoint-util.c b/src/basic/mountpoint-util.c -index b7c4870931..aefbed6346 100644 ---- a/src/basic/mountpoint-util.c -+++ b/src/basic/mountpoint-util.c -@@ -51,12 +51,13 @@ int name_to_handle_at_loop( - const char *path, - struct file_handle **ret_handle, - int *ret_mnt_id, -+ uint64_t *ret_unique_mnt_id, - int flags) { - - size_t n = ORIGINAL_MAX_HANDLE_SZ; - - assert(fd >= 0 || fd == AT_FDCWD); -- assert((flags & ~(AT_SYMLINK_FOLLOW|AT_EMPTY_PATH|AT_HANDLE_FID)) == 0); -+ assert((flags & ~(AT_SYMLINK_FOLLOW|AT_EMPTY_PATH|AT_HANDLE_FID|AT_HANDLE_MNT_ID_UNIQUE)) == 0); - - /* We need to invoke name_to_handle_at() in a loop, given that it might return EOVERFLOW when the specified - * buffer is too small. Note that in contrast to what the docs might suggest, MAX_HANDLE_SZ is only good as a -@@ -67,7 +68,8 @@ int name_to_handle_at_loop( - - for (;;) { - _cleanup_free_ struct file_handle *h = NULL; -- int mnt_id = -1; -+ int mnt_id = -1, r; -+ uint64_t unique_mnt_id = 0; - - h = malloc0(offsetof(struct file_handle, f_handle) + n); - if (!h) -@@ -75,11 +77,18 @@ int name_to_handle_at_loop( - - h->handle_bytes = n; - -- if (name_to_handle_at(fd, strempty(path), h, &mnt_id, flags) >= 0) { -+ if (FLAGS_SET(flags, AT_HANDLE_MNT_ID_UNIQUE)) -+ /* The kernel will still use this as uint64_t pointer */ -+ r = name_to_handle_at(fd, strempty(path), h, (int *) &unique_mnt_id, flags); -+ else -+ r = name_to_handle_at(fd, strempty(path), h, &mnt_id, flags); -+ if (r >= 0) { - - if (ret_handle) - *ret_handle = TAKE_PTR(h); - -+ if (ret_unique_mnt_id) -+ *ret_unique_mnt_id = unique_mnt_id; - if (ret_mnt_id) - *ret_mnt_id = mnt_id; - -@@ -88,13 +97,16 @@ int name_to_handle_at_loop( - if (errno != EOVERFLOW) - return -errno; - -- if (!ret_handle && ret_mnt_id && mnt_id >= 0) { -+ if (!ret_handle && ((ret_mnt_id && mnt_id >= 0) || (ret_unique_mnt_id && unique_mnt_id > 0))) { - - /* As it appears, name_to_handle_at() fills in mnt_id even when it returns EOVERFLOW when the - * buffer is too small, but that's undocumented. Hence, let's make use of this if it appears to - * be filled in, and the caller was interested in only the mount ID an nothing else. */ - -- *ret_mnt_id = mnt_id; -+ if (ret_unique_mnt_id) -+ *ret_unique_mnt_id = unique_mnt_id; -+ if (ret_mnt_id) -+ *ret_mnt_id = mnt_id; - return 0; - } - -@@ -128,11 +140,55 @@ int name_to_handle_at_try_fid( - * we'll try without the flag, in order to support older kernels that didn't have AT_HANDLE_FID - * (i.e. older than Linux 6.5). */ - -- r = name_to_handle_at_loop(fd, path, ret_handle, ret_mnt_id, flags | AT_HANDLE_FID); -+ r = name_to_handle_at_loop(fd, path, ret_handle, ret_mnt_id, /* ret_unique_mnt_id= */ NULL, flags | AT_HANDLE_FID); - if (r >= 0 || is_name_to_handle_at_fatal_error(r)) - return r; - -- return name_to_handle_at_loop(fd, path, ret_handle, ret_mnt_id, flags & ~AT_HANDLE_FID); -+ return name_to_handle_at_loop(fd, path, ret_handle, ret_mnt_id, /* ret_unique_mnt_id= */ NULL, flags & ~AT_HANDLE_FID); -+} -+ -+int name_to_handle_at_try_unique_mntid_fid( -+ int fd, -+ const char *path, -+ struct file_handle **ret_handle, -+ uint64_t *ret_mnt_id, -+ int flags) { -+ -+ int mnt_id = -1, r; -+ -+ assert(fd >= 0 || fd == AT_FDCWD); -+ -+ /* First issues name_to_handle_at() with AT_HANDLE_MNT_ID_UNIQUE and AT_HANDLE_FID. -+ * If this fails and this is not a fatal error we'll try without the -+ * AT_HANDLE_MNT_ID_UNIQUE flag because it's only available from Linux 6.12 onwards. */ -+ r = name_to_handle_at_loop(fd, path, ret_handle, /* ret_mnt_id= */ NULL, ret_mnt_id, flags | AT_HANDLE_MNT_ID_UNIQUE | AT_HANDLE_FID); -+ if (r >= 0 || is_name_to_handle_at_fatal_error(r)) -+ return r; -+ -+ flags &= ~AT_HANDLE_MNT_ID_UNIQUE; -+ -+ /* Then issues name_to_handle_at() with AT_HANDLE_FID. If this fails and this is not a fatal error -+ * we'll try without the flag, in order to support older kernels that didn't have AT_HANDLE_FID -+ * (i.e. older than Linux 6.5). */ -+ -+ r = name_to_handle_at_loop(fd, path, ret_handle, &mnt_id, /* ret_unique_mnt_id= */ NULL, flags | AT_HANDLE_FID); -+ if (r < 0 && is_name_to_handle_at_fatal_error(r)) -+ return r; -+ if (r >= 0) { -+ if (ret_mnt_id && mnt_id >= 0) { -+ /* See if we can do better because statx can do unique mount IDs since Linux 6.8 -+ * and only if this doesn't work we use the non-unique mnt_id as returned. */ -+ if (path_get_unique_mnt_id_at(fd, path, ret_mnt_id) < 0) -+ *ret_mnt_id = mnt_id; -+ } -+ -+ return r; -+ } -+ -+ r = name_to_handle_at_loop(fd, path, ret_handle, &mnt_id, /* ret_unique_mnt_id= */ NULL, flags & ~AT_HANDLE_FID); -+ if (ret_mnt_id && mnt_id >= 0) -+ *ret_mnt_id = mnt_id; -+ return r; - } - - static int fd_fdinfo_mnt_id(int fd, const char *filename, int flags, int *ret_mnt_id) { -@@ -197,6 +253,22 @@ bool file_handle_equal(const struct file_handle *a, const struct file_handle *b) - return memcmp_nn(a->f_handle, a->handle_bytes, b->f_handle, b->handle_bytes) == 0; - } - -+struct file_handle* file_handle_dup(const struct file_handle *fh) { -+ _cleanup_free_ struct file_handle *fh_copy = NULL; -+ -+ assert(fh); -+ -+ fh_copy = malloc0(offsetof(struct file_handle, f_handle) + fh->handle_bytes); -+ if (!fh_copy) -+ return NULL; -+ -+ fh_copy->handle_bytes = fh->handle_bytes; -+ fh_copy->handle_type = fh->handle_type; -+ memcpy(fh_copy->f_handle, fh->f_handle, fh->handle_bytes); -+ -+ return TAKE_PTR(fh_copy); -+} -+ - int is_mount_point_at(int fd, const char *filename, int flags) { - bool fd_is_self; - int r; -@@ -373,7 +445,7 @@ int path_get_mnt_id_at_fallback(int dir_fd, const char *path, int *ret) { - assert(dir_fd >= 0 || dir_fd == AT_FDCWD); - assert(ret); - -- r = name_to_handle_at_loop(dir_fd, path, NULL, ret, isempty(path) ? AT_EMPTY_PATH : 0); -+ r = name_to_handle_at_loop(dir_fd, path, NULL, ret, NULL, 0); - if (r >= 0 || is_name_to_handle_at_fatal_error(r)) - return r; - -@@ -403,6 +475,28 @@ int path_get_mnt_id_at(int dir_fd, const char *path, int *ret) { - return path_get_mnt_id_at_fallback(dir_fd, path, ret); - } - -+int path_get_unique_mnt_id_at(int dir_fd, const char *path, uint64_t *ret) { -+ struct statx sx; -+ -+ assert(dir_fd >= 0 || dir_fd == AT_FDCWD); -+ assert(ret); -+ -+ if (statx(dir_fd, -+ strempty(path), -+ (isempty(path) ? AT_EMPTY_PATH : AT_SYMLINK_NOFOLLOW) | -+ AT_NO_AUTOMOUNT | /* don't trigger automounts, mnt_id is a local concept */ -+ AT_STATX_DONT_SYNC, /* don't go to the network, mnt_id is a local concept */ -+ STATX_MNT_ID_UNIQUE, -+ &sx) < 0) -+ return -errno; -+ -+ if (!FLAGS_SET(sx.stx_mask, STATX_MNT_ID_UNIQUE)) -+ return -EOPNOTSUPP; -+ -+ *ret = sx.stx_mnt_id; -+ return 0; -+} -+ - bool fstype_is_network(const char *fstype) { - const char *x; - -diff --git a/src/basic/mountpoint-util.h b/src/basic/mountpoint-util.h -index 180d75343c..e70d2c40d0 100644 ---- a/src/basic/mountpoint-util.h -+++ b/src/basic/mountpoint-util.h -@@ -34,16 +34,19 @@ - - bool is_name_to_handle_at_fatal_error(int err); - --int name_to_handle_at_loop(int fd, const char *path, struct file_handle **ret_handle, int *ret_mnt_id, int flags); -+int name_to_handle_at_loop(int fd, const char *path, struct file_handle **ret_handle, int *ret_mnt_id, uint64_t *ret_unique_mnt_id, int flags); - int name_to_handle_at_try_fid(int fd, const char *path, struct file_handle **ret_handle, int *ret_mnt_id, int flags); -+int name_to_handle_at_try_unique_mntid_fid(int fd, const char *path, struct file_handle **ret_handle, uint64_t *ret_mnt_id, int flags); - - bool file_handle_equal(const struct file_handle *a, const struct file_handle *b); -+struct file_handle* file_handle_dup(const struct file_handle *fh); - - int path_get_mnt_id_at_fallback(int dir_fd, const char *path, int *ret); - int path_get_mnt_id_at(int dir_fd, const char *path, int *ret); - static inline int path_get_mnt_id(const char *path, int *ret) { - return path_get_mnt_id_at(AT_FDCWD, path, ret); - } -+int path_get_unique_mnt_id_at(int dir_fd, const char *path, uint64_t *ret); - - int is_mount_point_at(int fd, const char *filename, int flags); - int path_is_mount_point_full(const char *path, const char *root, int flags); -diff --git a/src/include/override/fcntl.h b/src/include/override/fcntl.h -index f2b40a6a17..b41f364534 100644 ---- a/src/include/override/fcntl.h -+++ b/src/include/override/fcntl.h -@@ -17,3 +17,8 @@ - #ifndef AT_HANDLE_FID - #define AT_HANDLE_FID AT_REMOVEDIR - #endif -+ -+/* This is defined since glibc-2.42. */ -+#ifndef AT_HANDLE_MNT_ID_UNIQUE -+#define AT_HANDLE_MNT_ID_UNIQUE 0x001 /* Return the u64 unique mount ID. */ -+#endif -diff --git a/src/shared/discover-image.c b/src/shared/discover-image.c -index 34512ea6da..d480848473 100644 ---- a/src/shared/discover-image.c -+++ b/src/shared/discover-image.c -@@ -35,6 +35,7 @@ - #include "lock-util.h" - #include "log.h" - #include "loop-util.h" -+#include "mountpoint-util.h" - #include "namespace-util.h" - #include "nsresource.h" - #include "nulstr-util.h" -@@ -139,6 +140,8 @@ static Image* image_free(Image *i) { - free(i->name); - free(i->path); - -+ free(i->fh); -+ - free(i->hostname); - strv_free(i->machine_info); - strv_free(i->os_release); -@@ -241,6 +244,9 @@ static int image_new( - bool read_only, - usec_t crtime, - usec_t mtime, -+ struct file_handle *fh, -+ uint64_t on_mount_id, -+ uint64_t inode, - Image **ret) { - - _cleanup_(image_unrefp) Image *i = NULL; -@@ -262,12 +268,20 @@ static int image_new( - .read_only = read_only, - .crtime = crtime, - .mtime = mtime, -+ .on_mount_id = on_mount_id, -+ .inode = inode, - .usage = UINT64_MAX, - .usage_exclusive = UINT64_MAX, - .limit = UINT64_MAX, - .limit_exclusive = UINT64_MAX, - }; - -+ if (fh) { -+ i->fh = file_handle_dup(fh); -+ if (!i->fh) -+ return -ENOMEM; -+ } -+ - i->name = strdup(pretty); - if (!i->name) - return -ENOMEM; -@@ -429,6 +443,28 @@ static int image_make( - path_startswith(path, "/usr") || - (faccessat(fd, "", W_OK, AT_EACCESS|AT_EMPTY_PATH) < 0 && errno == EROFS); - -+ uint64_t on_mount_id = 0; -+ _cleanup_free_ struct file_handle *fh = NULL; -+ -+ r = name_to_handle_at_try_unique_mntid_fid(fd, /* path= */ NULL, &fh, &on_mount_id, /* flags= */ 0); -+ if (r < 0) { -+ if (is_name_to_handle_at_fatal_error(r)) -+ return r; -+ -+ r = path_get_unique_mnt_id_at(fd, /* path= */ NULL, &on_mount_id); -+ if (r < 0) { -+ if (!ERRNO_IS_NEG_NOT_SUPPORTED(r)) -+ return r; -+ -+ int on_mount_id_fallback = -1; -+ r = path_get_mnt_id_at(fd, /* path= */ NULL, &on_mount_id_fallback); -+ if (r < 0) -+ return r; -+ -+ on_mount_id = on_mount_id_fallback; -+ } -+ } -+ - if (S_ISDIR(st->st_mode)) { - unsigned file_attr = 0; - usec_t crtime = 0; -@@ -470,6 +506,9 @@ static int image_make( - info.read_only || read_only, - info.otime, - info.ctime, -+ fh, -+ on_mount_id, -+ (uint64_t) st->st_ino, - ret); - if (r < 0) - return r; -@@ -495,6 +534,9 @@ static int image_make( - read_only || (file_attr & FS_IMMUTABLE_FL), - crtime, - 0, /* we don't use mtime of stat() here, since it's not the time of last change of the tree, but only of the top-level dir */ -+ fh, -+ on_mount_id, -+ (uint64_t) st->st_ino, - ret); - if (r < 0) - return r; -@@ -532,6 +574,9 @@ static int image_make( - !(st->st_mode & 0222) || read_only, - crtime, - timespec_load(&st->st_mtim), -+ fh, -+ on_mount_id, -+ (uint64_t) st->st_ino, - ret); - if (r < 0) - return r; -@@ -589,6 +634,9 @@ static int image_make( - !(st->st_mode & 0222) || read_only, - 0, - 0, -+ fh, -+ on_mount_id, -+ (uint64_t) st->st_ino, - ret); - if (r < 0) - return r; -diff --git a/src/shared/discover-image.h b/src/shared/discover-image.h -index 881a59fdc2..b28d961fb0 100644 ---- a/src/shared/discover-image.h -+++ b/src/shared/discover-image.h -@@ -27,6 +27,10 @@ typedef struct Image { - usec_t crtime; - usec_t mtime; - -+ struct file_handle *fh; -+ uint64_t on_mount_id; -+ uint64_t inode; -+ - uint64_t usage; - uint64_t usage_exclusive; - uint64_t limit; -diff --git a/src/shared/varlink-io.systemd.sysext.c b/src/shared/varlink-io.systemd.sysext.c -index 90eb8177d1..e48804c148 100644 ---- a/src/shared/varlink-io.systemd.sysext.c -+++ b/src/shared/varlink-io.systemd.sysext.c -@@ -31,6 +31,7 @@ static SD_VARLINK_DEFINE_METHOD( - SD_VARLINK_DEFINE_INPUT_BY_TYPE(class, ImageClass, SD_VARLINK_NULLABLE), - SD_VARLINK_DEFINE_INPUT(force, SD_VARLINK_BOOL, SD_VARLINK_NULLABLE), - SD_VARLINK_DEFINE_INPUT(noReload, SD_VARLINK_BOOL, SD_VARLINK_NULLABLE), -+ SD_VARLINK_DEFINE_INPUT(alwaysRefresh, SD_VARLINK_BOOL, SD_VARLINK_NULLABLE), - SD_VARLINK_DEFINE_INPUT(noexec, SD_VARLINK_BOOL, SD_VARLINK_NULLABLE)); - - static SD_VARLINK_DEFINE_METHOD_FULL( -diff --git a/src/sysext/sysext.c b/src/sysext/sysext.c -index b926ce4c83..30e33a01e5 100644 ---- a/src/sysext/sysext.c -+++ b/src/sysext/sysext.c -@@ -8,6 +8,7 @@ - #include - #include - -+#include "sd-json.h" - #include "sd-varlink.h" - - #include "argv-util.h" -@@ -84,6 +85,17 @@ static const char* const mutable_mode_table[_MUTABLE_MAX] = { - - DEFINE_PRIVATE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(mutable_mode, MutableMode, MUTABLE_YES); - -+enum { -+ MERGE_NOTHING_FOUND, -+ MERGE_MOUNTED, -+ MERGE_SKIP_REFRESH, -+}; -+ -+enum { -+ MERGE_EXIT_NOTHING_FOUND = 123, -+ MERGE_EXIT_SKIP_REFRESH = 124, -+}; -+ - static char **arg_hierarchies = NULL; /* "/usr" + "/opt" by default for sysext and /etc by default for confext */ - static char *arg_root = NULL; - static sd_json_format_flags_t arg_json_format_flags = SD_JSON_FORMAT_OFF; -@@ -91,6 +103,7 @@ static PagerFlags arg_pager_flags = 0; - static bool arg_legend = true; - static bool arg_force = false; - static bool arg_no_reload = false; -+static bool arg_always_refresh = false; - static int arg_noexec = -1; - static ImagePolicy *arg_image_policy = NULL; - static bool arg_image_policy_set = false; /* Tracks initialization */ -@@ -1465,6 +1478,30 @@ static int write_extensions_file(ImageClass image_class, char **extensions, cons - return 0; - } - -+static int write_origin_file(ImageClass image_class, const char *origin_content, const char *meta_path, const char *hierarchy) { -+ _cleanup_free_ char *f = NULL; -+ int r; -+ -+ assert(meta_path); -+ -+ /* The origin file is compared to know if a refresh can be skipped (opt-in, used at service startup). */ -+ f = path_join(meta_path, image_class_info[image_class].dot_directory_name, "origin"); -+ if (!f) -+ return log_oom(); -+ -+ _cleanup_free_ char *hierarchy_path = path_join(hierarchy, image_class_info[image_class].dot_directory_name, image_class_info[image_class].short_identifier_plural); -+ if (!hierarchy_path) -+ return log_oom(); -+ -+ r = write_string_file_full(AT_FDCWD, f, strempty(origin_content), -+ WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_MKDIR_0755|WRITE_STRING_FILE_LABEL|WRITE_STRING_FILE_AVOID_NEWLINE, -+ /* ts= */ NULL, hierarchy_path); -+ if (r < 0) -+ return log_error_errno(r, "Failed to write origin meta file '%s': %m", f); -+ -+ return 0; -+} -+ - static int write_dev_file(ImageClass image_class, const char *meta_path, const char *overlay_path, const char *hierarchy) { - _cleanup_free_ char *f = NULL; - struct stat st; -@@ -1569,6 +1606,7 @@ static int write_work_dir_file(ImageClass image_class, const char *meta_path, co - static int store_info_in_meta( - ImageClass image_class, - char **extensions, -+ const char *origin_content, - const char *meta_path, - const char *overlay_path, - const char *work_dir, -@@ -1601,6 +1639,10 @@ static int store_info_in_meta( - if (r < 0) - return r; - -+ r = write_origin_file(image_class, origin_content, meta_path, hierarchy); -+ if (r < 0) -+ return r; -+ - r = write_dev_file(image_class, meta_path, overlay_path, hierarchy); - if (r < 0) - return r; -@@ -1659,6 +1701,7 @@ static int merge_hierarchy( - int noexec, - char **extensions, - char **paths, -+ const char *origin_content, - const char *meta_path, - const char *overlay_path, - const char *workspace_path) { -@@ -1704,7 +1747,7 @@ static int merge_hierarchy( - if (r < 0) - return r; - -- r = store_info_in_meta(image_class, extensions, meta_path, overlay_path, op->work_dir, op->hierarchy, backing); -+ r = store_info_in_meta(image_class, extensions, origin_content, meta_path, overlay_path, op->work_dir, op->hierarchy, backing); - if (r < 0) - return r; - -@@ -1756,19 +1799,29 @@ static int merge_subprocess( - ImageClass image_class, - char **hierarchies, - bool force, -+ bool always_refresh, - int noexec, - Hashmap *images, - const char *workspace) { - - _cleanup_free_ char *host_os_release_id = NULL, *host_os_release_id_like = NULL, - *host_os_release_version_id = NULL, *host_os_release_api_level = NULL, -- *filename = NULL; -+ *filename = NULL, *old_origin_content = NULL, -+ *extensions_origin_content = NULL, *root_resolved = NULL; - _cleanup_strv_free_ char **extensions = NULL, **extensions_v = NULL, **paths = NULL; -+ _cleanup_(sd_json_variant_unrefp) sd_json_variant *extensions_origin_entries = NULL, -+ *extensions_origin_json = NULL, *mutable_dir_entries = NULL; - size_t n_extensions = 0; - unsigned n_ignored = 0; - Image *img; - int r; - -+ if (!isempty(arg_root)) { -+ r = chase(arg_root, /* root= */ NULL, CHASE_MUST_BE_DIRECTORY, &root_resolved, /* ret_fd= */ NULL); -+ if (r < 0) -+ return log_error_errno(r, "Failed to resolve --root='%s': %m", strempty(arg_root)); -+ } -+ - assert(path_startswith(workspace, "/run/")); - - /* Mark the whole of /run as MS_SLAVE, so that we can mount stuff below it that doesn't show up on -@@ -1806,7 +1859,8 @@ static int merge_subprocess( - - /* Let's now mount all images */ - HASHMAP_FOREACH(img, images) { -- _cleanup_free_ char *p = NULL; -+ _cleanup_free_ char *p = NULL, *path_without_root = NULL; -+ _cleanup_(sd_json_variant_unrefp) sd_json_variant *verity_hash = NULL; - - p = path_join(workspace, image_class_info[image_class].short_identifier_plural, img->name); - if (!p) -@@ -1905,6 +1959,12 @@ static int merge_subprocess( - if (r < 0) - return r; - -+ if (iovec_is_set(&verity_settings.root_hash)) { -+ r = sd_json_variant_new_hex(&verity_hash, verity_settings.root_hash.iov_base, verity_settings.root_hash.iov_len); -+ if (r < 0) -+ return log_error_errno(r, "Failed to create origin verity entry for '%s': %m", img->name); -+ } -+ - r = dissected_image_decrypt(m, /* passphrase= */ NULL, &verity_settings, pick_image_policy(img), flags); - if (r < 0) - return r; -@@ -1974,6 +2034,60 @@ static int merge_subprocess( - if (r < 0) - return log_oom(); - -+ /* Encode extension image origin to check if we can skip the refresh. -+ * It can also be used to provide more detail in "systemd-sysext status". */ -+ -+ if (!isempty(arg_root)) { -+ const char *without_root = NULL; -+ without_root = path_startswith(img->path, root_resolved); -+ if (!isempty(without_root)) { -+ path_without_root = strjoin("/", without_root); -+ if (!path_without_root) -+ return log_oom(); -+ } -+ } -+ if (!path_without_root) { -+ path_without_root = strdup(img->path); -+ if (!path_without_root) -+ return log_oom(); -+ } -+ -+ /* The verity hash is not available for all extension types, thus, but only as fallback, -+ * also include data to check for file/directory replacements through a file handle and -+ * unique mount ID (or inode and mount ID as fallback). -+ * A unique mount ID is best because st_dev gets reused too easily, e.g., by a loop dev -+ * mount. For the mount ID to be valid it has to be resolved before we enter the new mount -+ * namespace. Thus, here it wouldn't work and so instead it gets provided by the image -+ * dissect logic and handed over to this subprocess we are in. -+ * Online modification is not well supported with overlay mounts, so we don't do a file -+ * checksum nor do we recurse into a directory to look for touched files. If users want -+ * modifications to be picked up, they need to set the --always-refresh=yes flag (as will be -+ * printed out). */ -+ -+ _cleanup_(sd_json_variant_unrefp) sd_json_variant *origin_entry = NULL; -+ -+ /* We suppress inclusion of weak identifiers when a strong one is there so that, e.g., -+ * a confext image stored on /usr gets identified only by the verity hash instead of also -+ * the mount ID because that changes when a sysext overlay mount appears but since the -+ * verity hash is the same for the confext it can actually be reused. */ -+ r = sd_json_buildo(&origin_entry, -+ SD_JSON_BUILD_PAIR_STRING("path", path_without_root), -+ SD_JSON_BUILD_PAIR_CONDITION(!!verity_hash, "verityHash", SD_JSON_BUILD_VARIANT(verity_hash)), -+ SD_JSON_BUILD_PAIR_CONDITION(!verity_hash, "onMountId", SD_JSON_BUILD_UNSIGNED(img->on_mount_id)), -+ SD_JSON_BUILD_PAIR_CONDITION(!verity_hash && !!img->fh, "fileHandle", -+ SD_JSON_BUILD_OBJECT(SD_JSON_BUILD_PAIR_INTEGER("type", img->fh->handle_type), -+ SD_JSON_BUILD_PAIR_HEX("handle", img->fh->f_handle, -+ img->fh->handle_bytes))), -+ SD_JSON_BUILD_PAIR_CONDITION(!verity_hash && !img->fh, "inode", SD_JSON_BUILD_UNSIGNED(img->inode)), -+ SD_JSON_BUILD_PAIR_CONDITION(!verity_hash, "crtime", SD_JSON_BUILD_UNSIGNED(img->crtime)), -+ SD_JSON_BUILD_PAIR_CONDITION(!verity_hash, "mtime", SD_JSON_BUILD_UNSIGNED(img->mtime))); -+ if (r < 0) -+ return log_error_errno(r, "Failed to create origin entry for '%s': %m", img->name); -+ -+ r = sd_json_variant_set_field(&extensions_origin_entries, img->name, origin_entry); -+ if (r < 0) -+ return log_error_errno(r, "Failed to add origin entry for '%s': %m", img->name); -+ - n_extensions++; - } - -@@ -1983,13 +2097,112 @@ static int merge_subprocess( - log_info("No suitable extensions found (%u ignored due to incompatible image(s)).", n_ignored); - else - log_info("No extensions found."); -- return 0; -+ return MERGE_NOTHING_FOUND; - } - - /* Order by version sort with strverscmp_improved() */ - typesafe_qsort(extensions, n_extensions, strverscmp_improvedp); - typesafe_qsort(extensions_v, n_extensions, strverscmp_improvedp); - -+ STRV_FOREACH(h, hierarchies) { -+ _cleanup_(overlayfs_paths_freep) OverlayFSPaths *op = NULL; -+ _cleanup_free_ char *f = NULL, *buf = NULL, *resolved = NULL, *mutable_directory_without_root = NULL; -+ -+ /* The origin file includes the backing directories for mutable overlays. */ -+ r = overlayfs_paths_new(*h, workspace, &op); -+ if (r < 0) -+ return r; -+ -+ if (op->resolved_mutable_directory && !isempty(arg_root)) { -+ const char *without_root = NULL; -+ without_root = path_startswith(op->resolved_mutable_directory, root_resolved); -+ if (!isempty(without_root)) { -+ mutable_directory_without_root = strjoin("/", without_root); -+ if (!mutable_directory_without_root) -+ return log_oom(); -+ } -+ } -+ if (!mutable_directory_without_root && op->resolved_mutable_directory) { -+ mutable_directory_without_root = strdup(op->resolved_mutable_directory); -+ if (!mutable_directory_without_root) -+ return log_oom(); -+ } -+ -+ if (mutable_directory_without_root) { -+ r = sd_json_variant_set_field_string(&mutable_dir_entries, *h, mutable_directory_without_root); -+ if (r < 0) -+ return log_error_errno(r, "Failed to add mutable directory to origin JSON entry: %m"); -+ } -+ -+ /* Find existing origin file for comparison. */ -+ r = chase(*h, arg_root, CHASE_PREFIX_ROOT|CHASE_NONEXISTENT, &resolved, /* ret_fd= */ NULL); -+ if (r < 0) -+ return log_error_errno(r, "Failed to resolve hierarchy '%s%s': %m", strempty(arg_root), *h); -+ -+ f = path_join(resolved, image_class_info[image_class].dot_directory_name, "origin"); -+ if (!f) -+ return log_oom(); -+ -+ r = is_our_mount_point(image_class, resolved); -+ if (r < 0) -+ return r; -+ if (r == 0) -+ continue; -+ -+ if (old_origin_content) -+ continue; -+ -+ r = read_full_file(f, &buf, /* ret_size */ NULL); -+ if (r < 0) { -+ log_debug_errno(r, "Failed to open '%s', continuing search: %m", f); -+ continue; -+ } -+ -+ old_origin_content = TAKE_PTR(buf); -+ } -+ -+ r = sd_json_buildo(&extensions_origin_json, -+ SD_JSON_BUILD_PAIR_OBJECT("mutable", -+ SD_JSON_BUILD_PAIR_STRING("mode", mutable_mode_to_string(arg_mutable)), -+ SD_JSON_BUILD_PAIR_CONDITION(!!mutable_dir_entries, -+ "mutableDirs", -+ SD_JSON_BUILD_VARIANT(mutable_dir_entries))), -+ SD_JSON_BUILD_PAIR_CONDITION(!isempty(arg_overlayfs_mount_options), -+ "mountOptions", -+ SD_JSON_BUILD_STRING(arg_overlayfs_mount_options)), -+ SD_JSON_BUILD_PAIR_CONDITION(!!extensions_origin_entries, -+ "extensions", -+ SD_JSON_BUILD_VARIANT(extensions_origin_entries))); -+ if (r < 0) -+ return log_error_errno(r, "Failed to create extensions origin JSON object: %m"); -+ -+ r = sd_json_variant_format(extensions_origin_json, SD_JSON_FORMAT_PRETTY|SD_JSON_FORMAT_NEWLINE, &extensions_origin_content); -+ if (r < 0) -+ return log_error_errno(r, "Failed to format extension origin as JSON: %m"); -+ -+ log_debug("New extension origin entry (unordered):\n%s\n", extensions_origin_content); -+ -+ if (old_origin_content) { -+ _cleanup_(sd_json_variant_unrefp) sd_json_variant *old_origin_json = NULL; -+ -+ log_debug("Old extension origin entry (unordered):\n%s\n", old_origin_content); -+ r = sd_json_parse(old_origin_content, /* flags= */ 0, &old_origin_json, /* reterr_line= */ NULL, /* reterr_column= */ NULL); -+ if (r < 0) -+ return log_error_errno(r, "Failed to parse existing extension origin content: %m"); -+ -+ /* This works well with unordered entries. */ -+ if (sd_json_variant_equal(extensions_origin_json, old_origin_json)) { -+ if (!always_refresh) { -+ /* This only happens during refresh, not merge, thus talk about refresh here. */ -+ log_info("Skipping extension refresh because no change was found, use --always-refresh=yes to always do a refresh."); -+ return MERGE_SKIP_REFRESH; -+ } -+ -+ log_debug("No change found based on origin entry but continuing as requested by --always-refresh=yes."); -+ } else -+ log_debug("Found changes based on origin entry, continuing with the refresh."); -+ } -+ - if (n_extensions == 0) { - assert(arg_mutable != MUTABLE_NO); - log_info("No extensions found, proceeding in mutable mode."); -@@ -2072,6 +2285,7 @@ static int merge_subprocess( - noexec, - extensions, - paths, -+ extensions_origin_content, - meta_path, - overlay_path, - merge_hierarchy_workspace); -@@ -2116,13 +2330,14 @@ static int merge_subprocess( - log_info("Merged extensions into '%s'.", resolved); - } - -- return 1; -+ return MERGE_MOUNTED; - } - - static int merge(ImageClass image_class, - char **hierarchies, - bool force, - bool no_reload, -+ bool always_refresh, - int noexec, - Hashmap *images) { - pid_t pid; -@@ -2138,21 +2353,28 @@ static int merge(ImageClass image_class, - if (r == 0) { - /* Child with its own mount namespace */ - -- r = merge_subprocess(image_class, hierarchies, force, noexec, images, "/run/systemd/sysext"); -- if (r < 0) -- _exit(EXIT_FAILURE); -+ r = merge_subprocess(image_class, hierarchies, force, always_refresh, noexec, images, "/run/systemd/sysext"); - - /* Our namespace ceases to exist here, also implicitly detaching all temporary mounts we - * created below /run. Nice! */ - -- _exit(r > 0 ? EXIT_SUCCESS : 123); /* 123 means: didn't find any extensions */ -+ if (r < 0) -+ _exit(EXIT_FAILURE); -+ if (r == MERGE_NOTHING_FOUND) -+ _exit(MERGE_EXIT_NOTHING_FOUND); -+ if (r == MERGE_SKIP_REFRESH) -+ _exit(MERGE_EXIT_SKIP_REFRESH); -+ -+ _exit(EXIT_SUCCESS); - } - - r = wait_for_terminate_and_check("(sd-merge)", pid, WAIT_LOG_ABNORMAL); - if (r < 0) - return r; -- if (r == 123) /* exit code 123 means: didn't do anything */ -- return 0; -+ if (r == MERGE_EXIT_NOTHING_FOUND) -+ return 0; /* Tell refresh to unmount */ -+ if (r == MERGE_EXIT_SKIP_REFRESH) -+ return 1; /* Same return code as below when we have merged new */ - if (r > 0) - return log_error_errno(SYNTHETIC_ERRNO(EPROTO), "Failed to merge hierarchies"); - -@@ -2250,6 +2472,7 @@ static int verb_merge(int argc, char **argv, void *userdata) { - arg_hierarchies, - arg_force, - arg_no_reload, -+ arg_always_refresh, - arg_noexec, - images); - } -@@ -2258,16 +2481,18 @@ typedef struct MethodMergeParameters { - const char *class; - int force; - int no_reload; -+ int always_refresh; - int noexec; - } MethodMergeParameters; - - static int parse_merge_parameters(sd_varlink *link, sd_json_variant *parameters, MethodMergeParameters *p) { - - static const sd_json_dispatch_field dispatch_table[] = { -- { "class", SD_JSON_VARIANT_STRING, sd_json_dispatch_const_string, offsetof(MethodMergeParameters, class), 0 }, -- { "force", SD_JSON_VARIANT_BOOLEAN, sd_json_dispatch_tristate, offsetof(MethodMergeParameters, force), 0 }, -- { "noReload", SD_JSON_VARIANT_BOOLEAN, sd_json_dispatch_tristate, offsetof(MethodMergeParameters, no_reload), 0 }, -- { "noexec", SD_JSON_VARIANT_BOOLEAN, sd_json_dispatch_tristate, offsetof(MethodMergeParameters, noexec), 0 }, -+ { "class", SD_JSON_VARIANT_STRING, sd_json_dispatch_const_string, offsetof(MethodMergeParameters, class), 0 }, -+ { "force", SD_JSON_VARIANT_BOOLEAN, sd_json_dispatch_tristate, offsetof(MethodMergeParameters, force), 0 }, -+ { "noReload", SD_JSON_VARIANT_BOOLEAN, sd_json_dispatch_tristate, offsetof(MethodMergeParameters, no_reload), 0 }, -+ { "alwaysRefresh", SD_JSON_VARIANT_BOOLEAN, sd_json_dispatch_tristate, offsetof(MethodMergeParameters, always_refresh), 0 }, -+ { "noexec", SD_JSON_VARIANT_BOOLEAN, sd_json_dispatch_tristate, offsetof(MethodMergeParameters, noexec), 0 }, - {} - }; - -@@ -2283,6 +2508,7 @@ static int vl_method_merge(sd_varlink *link, sd_json_variant *parameters, sd_var - MethodMergeParameters p = { - .force = -1, - .no_reload = -1, -+ .always_refresh = -1, - .noexec = -1, - }; - _cleanup_strv_free_ char **hierarchies = NULL; -@@ -2317,6 +2543,7 @@ static int vl_method_merge(sd_varlink *link, sd_json_variant *parameters, sd_var - hierarchies ?: arg_hierarchies, - p.force >= 0 ? p.force : arg_force, - p.no_reload >= 0 ? p.no_reload : arg_no_reload, -+ p.always_refresh >= 0 ? p.always_refresh : arg_always_refresh, - p.noexec >= 0 ? p.noexec : arg_noexec, - images); - if (r < 0) -@@ -2330,6 +2557,7 @@ static int refresh( - char **hierarchies, - bool force, - bool no_reload, -+ bool always_refresh, - int noexec) { - - _cleanup_hashmap_free_ Hashmap *images = NULL; -@@ -2340,9 +2568,10 @@ static int refresh( - return r; - - /* Returns > 0 if it did something, i.e. a new overlayfs is mounted now. When it does so it -- * implicitly unmounts any overlayfs placed there before. Returns == 0 if it did nothing, i.e. no -+ * implicitly unmounts any overlayfs placed there before. It also returns == 1 if there were -+ * no changes found to apply and the mount stays intact. Returns == 0 if it did nothing, i.e. no - * extension images found. In this case the old overlayfs remains in place if there was one. */ -- r = merge(image_class, hierarchies, force, no_reload, noexec, images); -+ r = merge(image_class, hierarchies, force, no_reload, always_refresh, noexec, images); - if (r < 0) - return r; - if (r == 0) /* No images found? Then unmerge. The goal of --refresh is after all that after having -@@ -2354,7 +2583,8 @@ static int refresh( - * 1. If an overlayfs was mounted before and no extensions exist anymore, we'll have unmerged things. - * - * 2. If an overlayfs was mounted before, and there are still extensions installed' we'll have -- * unmerged and then merged things again. -+ * unmerged and then merged things again or we have skipped the refresh because no changes -+ * were found. - * - * 3. If an overlayfs so far wasn't mounted, and there are extensions installed, we'll have it - * mounted now. -@@ -2378,6 +2608,7 @@ static int verb_refresh(int argc, char **argv, void *userdata) { - arg_hierarchies, - arg_force, - arg_no_reload, -+ arg_always_refresh, - arg_noexec); - } - -@@ -2386,6 +2617,7 @@ static int vl_method_refresh(sd_varlink *link, sd_json_variant *parameters, sd_v - MethodMergeParameters p = { - .force = -1, - .no_reload = -1, -+ .always_refresh = -1, - .noexec = -1, - }; - _cleanup_strv_free_ char **hierarchies = NULL; -@@ -2406,6 +2638,7 @@ static int vl_method_refresh(sd_varlink *link, sd_json_variant *parameters, sd_v - hierarchies ?: arg_hierarchies, - p.force >= 0 ? p.force : arg_force, - p.no_reload >= 0 ? p.no_reload : arg_no_reload, -+ p.always_refresh >= 0 ? p.always_refresh : arg_always_refresh, - p.noexec >= 0 ? p.noexec : arg_noexec); - if (r < 0) - return r; -@@ -2524,6 +2757,8 @@ static int verb_help(int argc, char **argv, void *userdata) { - " Generate JSON output\n" - " --force Ignore version incompatibilities\n" - " --no-reload Do not reload the service manager\n" -+ " --always-refresh=yes|no\n" -+ " Do not skip refresh when no changes were found\n" - " --image-policy=POLICY\n" - " Specify disk image dissection policy\n" - " --noexec=BOOL Whether to mount extension overlay with noexec\n" -@@ -2551,21 +2786,23 @@ static int parse_argv(int argc, char *argv[]) { - ARG_IMAGE_POLICY, - ARG_NOEXEC, - ARG_NO_RELOAD, -+ ARG_ALWAYS_REFRESH, - ARG_MUTABLE, - }; - - static const struct option options[] = { -- { "help", no_argument, NULL, 'h' }, -- { "version", no_argument, NULL, ARG_VERSION }, -- { "no-pager", no_argument, NULL, ARG_NO_PAGER }, -- { "no-legend", no_argument, NULL, ARG_NO_LEGEND }, -- { "root", required_argument, NULL, ARG_ROOT }, -- { "json", required_argument, NULL, ARG_JSON }, -- { "force", no_argument, NULL, ARG_FORCE }, -- { "image-policy", required_argument, NULL, ARG_IMAGE_POLICY }, -- { "noexec", required_argument, NULL, ARG_NOEXEC }, -- { "no-reload", no_argument, NULL, ARG_NO_RELOAD }, -- { "mutable", required_argument, NULL, ARG_MUTABLE }, -+ { "help", no_argument, NULL, 'h' }, -+ { "version", no_argument, NULL, ARG_VERSION }, -+ { "no-pager", no_argument, NULL, ARG_NO_PAGER }, -+ { "no-legend", no_argument, NULL, ARG_NO_LEGEND }, -+ { "root", required_argument, NULL, ARG_ROOT }, -+ { "json", required_argument, NULL, ARG_JSON }, -+ { "force", no_argument, NULL, ARG_FORCE }, -+ { "image-policy", required_argument, NULL, ARG_IMAGE_POLICY }, -+ { "noexec", required_argument, NULL, ARG_NOEXEC }, -+ { "no-reload", no_argument, NULL, ARG_NO_RELOAD }, -+ { "always-refresh", required_argument, NULL, ARG_ALWAYS_REFRESH }, -+ { "mutable", required_argument, NULL, ARG_MUTABLE }, - {} - }; - -@@ -2632,6 +2869,12 @@ static int parse_argv(int argc, char *argv[]) { - arg_no_reload = true; - break; - -+ case ARG_ALWAYS_REFRESH: -+ r = parse_boolean_argument("--always-refresh", optarg, &arg_always_refresh); -+ if (r < 0) -+ return r; -+ break; -+ - case ARG_MUTABLE: - if (streq(optarg, "help")) { - if (arg_legend) --- -2.52.0 - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0013-sysext-Get-verity-user-certs-from-given-root.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0013-sysext-Get-verity-user-certs-from-given-root.patch deleted file mode 100644 index fec8574f78d..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0013-sysext-Get-verity-user-certs-from-given-root.patch +++ /dev/null @@ -1,290 +0,0 @@ -From c910dda50a611fbada3f1166b9c1cf3b91091cc6 Mon Sep 17 00:00:00 2001 -From: Kai Lueke -Date: Thu, 27 Nov 2025 17:49:15 +0900 -Subject: [PATCH 13/14] sysext: Get verity user certs from given --root= - -The verity user certs weren't looked up in the given --root= for -systemd-sysext which made it fail to set up extensions with a strict -image policy. -Look up verity user certs from inside the --root= when we operate on -images in it. The main use case where this matters is when the initrd -sets up the extensions for the final system and thus systemd-sysext -should do the same thing as it would do in the final system. ---- - src/core/namespace.c | 3 ++- - src/machine/image-dbus.c | 8 ++++---- - src/machine/machined-varlink.c | 2 +- - src/mountfsd/mountwork.c | 1 + - src/portable/portabled-image-bus.c | 2 +- - src/shared/discover-image.c | 3 ++- - src/shared/discover-image.h | 2 +- - src/shared/dissect-image.c | 20 ++++++++++++-------- - src/shared/dissect-image.h | 2 +- - src/sysext/sysext.c | 4 ++-- - 10 files changed, 27 insertions(+), 20 deletions(-) - -diff --git a/src/core/namespace.c b/src/core/namespace.c -index 0a78c4922a..ead9caafe6 100644 ---- a/src/core/namespace.c -+++ b/src/core/namespace.c -@@ -2596,7 +2596,8 @@ int setup_namespace(const NamespaceParameters *p, char **reterr_path) { - - r = dissected_image_decrypt( - dissected_image, -- NULL, -+ /* root= */ NULL, -+ /* passphrase= */ NULL, - p->verity, - p->root_image_policy, - dissect_image_flags); -diff --git a/src/machine/image-dbus.c b/src/machine/image-dbus.c -index f7e3f7f93c..966948be44 100644 ---- a/src/machine/image-dbus.c -+++ b/src/machine/image-dbus.c -@@ -295,7 +295,7 @@ int bus_image_method_get_hostname( - int r; - - if (!image->metadata_valid) { -- r = image_read_metadata(image, &image_policy_container, m->runtime_scope); -+ r = image_read_metadata(image, /* root= */ NULL, &image_policy_container, m->runtime_scope); - if (r < 0) - return sd_bus_error_set_errnof(error, r, "Failed to read image metadata: %m"); - } -@@ -314,7 +314,7 @@ int bus_image_method_get_machine_id( - int r; - - if (!image->metadata_valid) { -- r = image_read_metadata(image, &image_policy_container, m->runtime_scope); -+ r = image_read_metadata(image, /* root= */ NULL, &image_policy_container, m->runtime_scope); - if (r < 0) - return sd_bus_error_set_errnof(error, r, "Failed to read image metadata: %m"); - } -@@ -343,7 +343,7 @@ int bus_image_method_get_machine_info( - int r; - - if (!image->metadata_valid) { -- r = image_read_metadata(image, &image_policy_container, m->runtime_scope); -+ r = image_read_metadata(image, /* root= */ NULL, &image_policy_container, m->runtime_scope); - if (r < 0) - return sd_bus_error_set_errnof(error, r, "Failed to read image metadata: %m"); - } -@@ -361,7 +361,7 @@ int bus_image_method_get_os_release( - int r; - - if (!image->metadata_valid) { -- r = image_read_metadata(image, &image_policy_container, m->runtime_scope); -+ r = image_read_metadata(image, /* root= */ NULL, &image_policy_container, m->runtime_scope); - if (r < 0) - return sd_bus_error_set_errnof(error, r, "Failed to read image metadata: %m"); - } -diff --git a/src/machine/machined-varlink.c b/src/machine/machined-varlink.c -index 56abcb9438..2697a87b6d 100644 ---- a/src/machine/machined-varlink.c -+++ b/src/machine/machined-varlink.c -@@ -627,7 +627,7 @@ static int list_image_one_and_maybe_read_metadata(Manager *m, sd_varlink *link, - assert(image); - - if (should_acquire_metadata(am) && !image->metadata_valid) { -- r = image_read_metadata(image, &image_policy_container, m->runtime_scope); -+ r = image_read_metadata(image, /* root= */ NULL, &image_policy_container, m->runtime_scope); - if (r < 0 && am != ACQUIRE_METADATA_GRACEFUL) - return log_debug_errno(r, "Failed to read image metadata: %m"); - if (r < 0) -diff --git a/src/mountfsd/mountwork.c b/src/mountfsd/mountwork.c -index b078dc17a3..5ed4552d52 100644 ---- a/src/mountfsd/mountwork.c -+++ b/src/mountfsd/mountwork.c -@@ -538,6 +538,7 @@ static int vl_method_mount_image( - - r = dissected_image_decrypt( - di, -+ /* root= */ NULL, - p.password, - &verity, - use_policy, -diff --git a/src/portable/portabled-image-bus.c b/src/portable/portabled-image-bus.c -index 21d7bab262..b5dc0f5955 100644 ---- a/src/portable/portabled-image-bus.c -+++ b/src/portable/portabled-image-bus.c -@@ -61,7 +61,7 @@ int bus_image_common_get_os_release( - return 1; - - if (!image->metadata_valid) { -- r = image_read_metadata(image, &image_policy_service, m->runtime_scope); -+ r = image_read_metadata(image, /* root= */ NULL, &image_policy_service, m->runtime_scope); - if (r < 0) - return sd_bus_error_set_errnof(error, r, "Failed to read image metadata: %m"); - } -diff --git a/src/shared/discover-image.c b/src/shared/discover-image.c -index d480848473..03fffad37e 100644 ---- a/src/shared/discover-image.c -+++ b/src/shared/discover-image.c -@@ -2087,7 +2087,7 @@ int image_setup_pool(RuntimeScope scope, ImageClass class, bool use_btrfs_subvol - return 0; - } - --int image_read_metadata(Image *i, const ImagePolicy *image_policy, RuntimeScope scope) { -+int image_read_metadata(Image *i, const char *root, const ImagePolicy *image_policy, RuntimeScope scope) { - _cleanup_(release_lock_file) LockFile global_lock = LOCK_FILE_INIT, local_lock = LOCK_FILE_INIT; - int r; - -@@ -2213,6 +2213,7 @@ int image_read_metadata(Image *i, const ImagePolicy *image_policy, RuntimeScope - - r = dissected_image_decrypt( - m, -+ root, - /* passphrase= */ NULL, - &verity, - image_policy, -diff --git a/src/shared/discover-image.h b/src/shared/discover-image.h -index b28d961fb0..c1838f9959 100644 ---- a/src/shared/discover-image.h -+++ b/src/shared/discover-image.h -@@ -78,7 +78,7 @@ int image_get_pool_usage(RuntimeScope scope, ImageClass class, uint64_t *ret); - int image_get_pool_limit(RuntimeScope scope, ImageClass class, uint64_t *ret); - int image_setup_pool(RuntimeScope scope, ImageClass class, bool use_btrfs_subvol, bool use_btrfs_quota); - --int image_read_metadata(Image *i, const ImagePolicy *image_policy, RuntimeScope scope); -+int image_read_metadata(Image *i, const char *root, const ImagePolicy *image_policy, RuntimeScope scope); - - bool image_in_search_path(RuntimeScope scope, ImageClass class, const char *root, const char *image); - -diff --git a/src/shared/dissect-image.c b/src/shared/dissect-image.c -index 51725e6cfb..b2be12e842 100644 ---- a/src/shared/dissect-image.c -+++ b/src/shared/dissect-image.c -@@ -2810,7 +2810,7 @@ static char* dm_deferred_remove_clean(char *name) { - } - DEFINE_TRIVIAL_CLEANUP_FUNC(char *, dm_deferred_remove_clean); - --static int validate_signature_userspace(const VeritySettings *verity, DissectImageFlags flags) { -+static int validate_signature_userspace(const VeritySettings *verity, const char *root, DissectImageFlags flags) { - int r; - - /* Returns > 0 if signature checks out, == 0 if not, < 0 on unexpected errors */ -@@ -2855,7 +2855,7 @@ static int validate_signature_userspace(const VeritySettings *verity, DissectIma - /* Because installing a signature certificate into the kernel chain is so messy, let's optionally do - * userspace validation. */ - -- r = conf_files_list_nulstr(&certs, ".crt", NULL, CONF_FILES_REGULAR|CONF_FILES_FILTER_MASKED, CONF_PATHS_NULSTR("verity.d")); -+ r = conf_files_list_nulstr(&certs, ".crt", root, CONF_FILES_REGULAR|CONF_FILES_FILTER_MASKED, CONF_PATHS_NULSTR("verity.d")); - if (r < 0) - return log_debug_errno(r, "Failed to enumerate certificates: %m"); - if (strv_isempty(certs)) { -@@ -2917,6 +2917,7 @@ static int validate_signature_userspace(const VeritySettings *verity, DissectIma - - static int do_crypt_activate_verity( - struct crypt_device *cd, -+ const char *root, - const char *name, - const VeritySettings *verity, - DissectImageFlags flags, -@@ -2966,7 +2967,7 @@ static int do_crypt_activate_verity( - - /* Preferably propagate the original kernel error, so that the fallback logic can work, - * as the device-mapper is finicky around concurrent activations of the same volume */ -- k = validate_signature_userspace(verity, flags); -+ k = validate_signature_userspace(verity, root, flags); - if (k < 0) - return k; - if (k == 0) { -@@ -3026,6 +3027,7 @@ static int verity_partition( - PartitionDesignator designator, - DissectedPartition *m, /* data partition */ - DissectedPartition *v, /* verity partition */ -+ const char *root, /* The root to get user verity certs from (for a sysext) */ - const VeritySettings *verity, - DissectImageFlags flags, - PartitionPolicyFlags policy_flags, -@@ -3111,7 +3113,7 @@ static int verity_partition( - goto check; /* The device already exists. Let's check it. */ - - /* The symlink to the device node does not exist yet. Assume not activated, and let's activate it. */ -- r = do_crypt_activate_verity(cd, name, verity, flags, policy_flags); -+ r = do_crypt_activate_verity(cd, root, name, verity, flags, policy_flags); - if (r >= 0) - goto try_open; /* The device is activated. Let's open it. */ - /* libdevmapper can return EINVAL when the device is already in the activation stage. -@@ -3205,7 +3207,7 @@ static int verity_partition( - */ - sym_crypt_free(cd); - cd = NULL; -- return verity_partition(designator, m, v, verity, flags & ~DISSECT_IMAGE_VERITY_SHARE, policy_flags, d); -+ return verity_partition(designator, m, v, root, verity, flags & ~DISSECT_IMAGE_VERITY_SHARE, policy_flags, d); - } - - return log_debug_errno(SYNTHETIC_ERRNO(EBUSY), "All attempts to activate verity device %s failed.", name); -@@ -3225,6 +3227,7 @@ success: - - int dissected_image_decrypt( - DissectedImage *m, -+ const char *root, /* The root to get user verity certs from (for a sysext) */ - const char *passphrase, - const VeritySettings *verity, - const ImagePolicy *policy, -@@ -3281,7 +3284,7 @@ int dissected_image_decrypt( - - k = partition_verity_hash_of(i); - if (k >= 0) { -- r = verity_partition(i, p, m->partitions + k, verity, flags, fl, d); -+ r = verity_partition(i, p, m->partitions + k, root, verity, flags, fl, d); - if (r < 0) - return r; - } -@@ -3314,7 +3317,7 @@ int dissected_image_decrypt_interactively( - n--; - - for (;;) { -- r = dissected_image_decrypt(m, passphrase, verity, image_policy, flags); -+ r = dissected_image_decrypt(m, /* root= */ NULL, passphrase, verity, image_policy, flags); - if (r >= 0) - return r; - if (r == -EKEYREJECTED) -@@ -4564,7 +4567,8 @@ int verity_dissect_and_mount( - - r = dissected_image_decrypt( - dissected_image, -- NULL, -+ /* root= */ NULL, -+ /* passphrase= */ NULL, - verity, - image_policy, - dissect_image_flags); -diff --git a/src/shared/dissect-image.h b/src/shared/dissect-image.h -index 951ae66055..674a87f684 100644 ---- a/src/shared/dissect-image.h -+++ b/src/shared/dissect-image.h -@@ -170,7 +170,7 @@ void dissected_image_close(DissectedImage *m); - DissectedImage* dissected_image_unref(DissectedImage *m); - DEFINE_TRIVIAL_CLEANUP_FUNC(DissectedImage*, dissected_image_unref); - --int dissected_image_decrypt(DissectedImage *m, const char *passphrase, const VeritySettings *verity, const ImagePolicy *image_policy, DissectImageFlags flags); -+int dissected_image_decrypt(DissectedImage *m, const char *root, const char *passphrase, const VeritySettings *verity, const ImagePolicy *image_policy, DissectImageFlags flags); - int dissected_image_decrypt_interactively(DissectedImage *m, const char *passphrase, const VeritySettings *verity, const ImagePolicy *image_policy, DissectImageFlags flags); - int dissected_image_mount(DissectedImage *m, const char *where, uid_t uid_shift, uid_t uid_range, int userns_fd, DissectImageFlags flags); - int dissected_image_mount_and_warn(DissectedImage *m, const char *where, uid_t uid_shift, uid_t uid_range, int userns_fd, DissectImageFlags flags); -diff --git a/src/sysext/sysext.c b/src/sysext/sysext.c -index 30e33a01e5..76d84f108a 100644 ---- a/src/sysext/sysext.c -+++ b/src/sysext/sysext.c -@@ -1965,7 +1965,7 @@ static int merge_subprocess( - return log_error_errno(r, "Failed to create origin verity entry for '%s': %m", img->name); - } - -- r = dissected_image_decrypt(m, /* passphrase= */ NULL, &verity_settings, pick_image_policy(img), flags); -+ r = dissected_image_decrypt(m, arg_root, /* passphrase= */ NULL, &verity_settings, pick_image_policy(img), flags); - if (r < 0) - return r; - -@@ -2402,7 +2402,7 @@ static int image_discover_and_read_metadata(ImageClass image_class, Hashmap **re - return log_error_errno(r, "Failed to discover images: %m"); - - HASHMAP_FOREACH(img, images) { -- r = image_read_metadata(img, image_class_info[image_class].default_image_policy, RUNTIME_SCOPE_SYSTEM); -+ r = image_read_metadata(img, arg_root, image_class_info[image_class].default_image_policy, RUNTIME_SCOPE_SYSTEM); - if (r < 0) - return log_error_errno(r, "Failed to read metadata for image %s: %m", img->name); - } --- -2.52.0 - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0014-Fix-name_to_handle_at_try_unique_mntid_fid-for-empty.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0014-Fix-name_to_handle_at_try_unique_mntid_fid-for-empty.patch deleted file mode 100644 index 1dd827f8d97..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0014-Fix-name_to_handle_at_try_unique_mntid_fid-for-empty.patch +++ /dev/null @@ -1,29 +0,0 @@ -From bc53b894296eb8650aa20f047335888dac75d258 Mon Sep 17 00:00:00 2001 -From: Krzesimir Nowak -Date: Mon, 20 Apr 2026 17:47:14 +0200 -Subject: [PATCH 14/14] Fix name_to_handle_at_try_unique_mntid_fid for empty - paths - -Signed-off-by: Krzesimir Nowak ---- - src/basic/mountpoint-util.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/basic/mountpoint-util.c b/src/basic/mountpoint-util.c -index aefbed6346..ce5698b772 100644 ---- a/src/basic/mountpoint-util.c -+++ b/src/basic/mountpoint-util.c -@@ -156,6 +156,10 @@ int name_to_handle_at_try_unique_mntid_fid( - - int mnt_id = -1, r; - -+ if (isempty(path)) { -+ flags |= AT_EMPTY_PATH; -+ } -+ - assert(fd >= 0 || fd == AT_FDCWD); - - /* First issues name_to_handle_at() with AT_HANDLE_MNT_ID_UNIQUE and AT_HANDLE_FID. --- -2.52.0 - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/README.md b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/README.md index 5126048fd46..7afa42cfdfc 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/README.md +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/README.md @@ -18,11 +18,3 @@ Most of these patches are not really upstreamable: - workaround for issues with default k8s coredns config - `0008-units-Make-multi-user.target-the-default-target.patch` - change default.target to a suitable symlink for Flatcar - -These patches can be dropped after we update to systemd 260: - -- `0009-discover-image-Follow-symlinks-in-a-given-root.patch` -- `0010-sysext-Use-correct-image-name-for-extension-release-.patch` -- `0011-sysext-Create-mutable-directory-with-the-right-mode.patch` -- `0012-sysext-Skip-refresh-if-no-changes-are-found.patch` -- `0013-sysext-Get-verity-user-certs-from-given-root.patch` diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/make.defaults b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/make.defaults index 34e2a6cbbbe..f79435f42ab 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/make.defaults +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/make.defaults @@ -19,12 +19,12 @@ USE_EXPAND="${USE_EXPAND} GO_VERSION" USE="${USE} -cracklib -cups -tcpd -berkdb" # Use Python 3.12 as the default version. -PYTHON_SINGLE_TARGET="-pypy3_11 -python3_11 python3_12 -python3_13 -python3_14 -python3_13t -python3_14t" -PYTHON_TARGETS="-pypy3_11 -python3_11 python3_12 -python3_13 -python3_14 -python3_13t -python3_14t" +PYTHON_SINGLE_TARGET="-pypy3_11 -python3_11 python3_12 -python3_13 -python3_14 -python3_15 -python3_13t -python3_14t -python3_15t" +PYTHON_TARGETS="-pypy3_11 -python3_11 python3_12 -python3_13 -python3_14 -python3_15 -python3_13t -python3_14t -python3_15t" # Same as above, but for bootstrapping. -BOOTSTRAP_USE="${BOOTSTRAP_USE} -python_single_target_pypy3_11 -python_single_target_python3_11 python_single_target_python3_12 -python_single_target_python3_13 -python_single_target_python3_14 -python_single_target_python3_13t -python_single_target_python3_14t" -BOOTSTRAP_USE="${BOOTSTRAP_USE} -python_targets_pypy3_11 -python_targets_python3_11 python_targets_python3_12 -python_targets_python3_13 -python_targets_python3_14 -python_targets_python3_13t -python_targets_python3_14t" +BOOTSTRAP_USE="${BOOTSTRAP_USE} -python_single_target_pypy3_11 -python_single_target_python3_11 python_single_target_python3_12 -python_single_target_python3_13 -python_single_target_python3_14 -python_single_target_python3_15 -python_single_target_python3_13t -python_single_target_python3_14t -python_single_target_python3_15t" +BOOTSTRAP_USE="${BOOTSTRAP_USE} -python_targets_pypy3_11 -python_targets_python3_11 python_targets_python3_12 -python_targets_python3_13 -python_targets_python3_14 -python_targets_python3_15 -python_targets_python3_13t -python_targets_python3_14t -python_targets_python3_15t" # Never install cron or cron jobs @@ -54,7 +54,7 @@ BOOTSTRAP_USE="${BOOTSTRAP_USE} xml" # Set SELinux policy POLICY_TYPES="targeted mcs mls" -SELINUX_POLICY_TYPES="targeted mcs mls" +SELINUX_POLICY_TYPES="-strict targeted mcs mls" # Disable packages or optional features with distribution issues. ACCEPT_RESTRICT="* -bindist" 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 af0cb36190b..c9604ef8197 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 @@ -7,9 +7,6 @@ # Gentoo upstream package stabilisation # (the following packages are "unstable" upstream; we're stabilising these) -# To address CVE-2025-60753 -=app-arch/libarchive-3.8.5 ~amd64 ~arm64 - # We always want the latest version available. =app-containers/containerd-2.2* ~amd64 ~arm64 @@ -25,7 +22,7 @@ =app-containers/syft-1.18.1 ~amd64 ~arm64 # Seems to be the only available ebuild in portage-stable right now. -=app-crypt/adcli-0.9.2 ~arm64 +=app-crypt/adcli-0.9.3.1 # 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 @@ -58,15 +55,17 @@ dev-cpp/azure-security-keyvault-keys # Not stabilised for arm64 yet. dev-db/etcd amd64 +# To address a bunch of CVEs. +=dev-lang/go-1.26.3 + # Keep versions on both arches in sync. =dev-libs/cowsql-1.15.9 ~arm64 =dev-libs/ding-libs-0.6.2-r1 ~arm64 +=dev-libs/jose-14 +=dev-libs/libtraceevent-1.9.0 -# Needed to address CVE-2025-13601, CVE-2025-14087 -=dev-libs/glib-2.84.4-r2 - -# The only available ebuild has ~amd64 and no keyword for arm64 yet. -=dev-libs/jose-14 ** +# To address CVEs. +=dev-libs/libxml2-2.15.3 # The only available ebuild (from GURU) has ~amd64 and no keyword for arm64 yet. =dev-libs/luksmeta-9-r1 ** @@ -85,16 +84,17 @@ dev-db/etcd amd64 # Catalyst 4 is not stable yet, but earlier versions are masked now. =dev-util/catalyst-4.1.1 ~amd64 ~arm64 -# Needed to build with gcc 15 -=net-analyzer/netperf-2.7.0_p20210121-r1 - -# Keep versions on both arches in sync. -=net-firewall/conntrack-tools-1.4.8-r1 ~arm64 - # Keep versions on both arches in sync. +=net-firewall/conntrack-tools-1.4.9 =net-libs/libnetfilter_cthelper-1.0.1-r1 ~arm64 =net-libs/libnetfilter_cttimeout-1.0.1 ~arm64 +# Needed to address some CVEs. +=net-libs/gnutls-3.8.13 + +# Needed to address a CVE. +=net-libs/ngtcp2-1.22.1 + # 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 # latest version of the package with the unstable keywords. @@ -102,11 +102,7 @@ sys-apps/azure-vm-utils # Keep versions on both arches in sync. =sys-apps/zram-generator-1.2.1 ~arm64 - -# Needed to address CVE-2025-11561 -=sys-auth/sssd-2.9.8 - -# Keep versions on both arches in sync. +=sys-auth/sssd-2.13.0 =sys-boot/mokutil-0.7.2 ** # Enable ipvsadm for arm64. @@ -115,9 +111,6 @@ sys-apps/azure-vm-utils # Keep versions on both arches in sync. =sys-fs/lxcfs-6.0.5 ~arm64 -# Bump early for newer features. -=sys-kernel/dracut-109* ~amd64 ~arm64 - # Our own ebuild fixing issues in Gentoo, hopefully will be fixed # there too eventually. =sys-libs/libselinux-3.8.1-r3 ~amd64 ~arm64 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 85b9fe1f525..10bc3f93040 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 @@ -19,3 +19,7 @@ # those as a dependency for some packages. =dev-lang/python-3.13 + +# We are using RedHat patches for grub, so until they rebase them on +# top of 2.14, we are locked out of the update. +>=sys-boot/grub-2.14 diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use index bad964ff168..7b14e55847e 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use @@ -28,9 +28,11 @@ dev-vcs/git -perl -iconv # removes mta dependencies app-admin/sudo -sendmail -# disable hybrid cgroup as we use the unified mode now # use lzma which is the default on non-gentoo systems, enable selinux, -sys-apps/systemd -cgroup-hybrid curl idn lzma selinux tpm +# +# Avoid initrd bloat by using OpenSSL instead of gcrypt in systemd. +# systemd-journal's FSS feature requires gcrypt, but Flatcar doesn't need it. +sys-apps/systemd -gcrypt curl idn lzma selinux tpm net-libs/libmicrohttpd -ssl # disable kernel config detection and module building @@ -160,10 +162,6 @@ sys-kernel/coreos-firmware -initramfs # For sys-auth/sssd net-dns/bind gssapi -# Avoid initrd bloat by using OpenSSL instead of gcrypt in systemd. -# systemd-journal's FSS feature requires gcrypt, but Flatcar doesn't need it. -sys-apps/systemd -gcrypt - # Make dracut module available for initrd build. sys-apps/azure-vm-utils dracut @@ -199,3 +197,12 @@ dev-perl/File-Slurper minimal # This is only needed for debuginfod support, which we masked. dev-libs/elfutils -libarchive + +# Needed by net-fs/samba +net-libs/ngtcp2 gnutls + +# Pulls in dev-python/mypy, which pulls in even more stuff. +dev-python/charset-normalizer -native-extensions + +# We only use rust for compiling, not for formatting or linting. +dev-lang/rust -clippy -doc -rustfmt diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/generic/package.use b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/generic/package.use index 6099e7c6a39..5ba41170fd8 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/generic/package.use +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/generic/package.use @@ -25,7 +25,7 @@ sys-fs/lvm2 -readline thin lvm sys-libs/pam audit # enable journal gateway, bootctl and container features -sys-apps/systemd audit elfutils gnuefi http importd iptables +sys-apps/systemd audit elfutils gnuefi remote importd # epoll is needed for systemd-journal-remote to work. coreos/bugs#919 net-libs/libmicrohttpd epoll diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/generic/package.use.force b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/generic/package.use.force new file mode 100644 index 00000000000..eb1d1bc938c --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/generic/package.use.force @@ -0,0 +1,6 @@ +# Copyright (c) 2026 Flatcar Maintainers. All rights reserved. +# Distributed under the terms of the GNU General Public License v2 + +# Needed by sys-auth/sssd, needs to be forced, because acl is normally +# disabled in make.defaults. +net-fs/cifs-utils acl diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/Manifest b/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/Manifest index 5b54d807165..08753511bc6 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/Manifest +++ b/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/Manifest @@ -1 +1 @@ -DIST bootengine-944410b2d2ad280fbf30e96eda0180204c83c85b.tar.gz 37945 BLAKE2B 077e6defa73601332b6229be6026663698374f15a318db9a5cb772282bf6357e3903ac2bb453818ec4b4cc7e344f47e84411c4b0013ce0984387aa89ae139db8 SHA512 a8f345a466d83b92e33fbd36970fef64fce2c1bafd4a96ef5a15f2e8a629628d996c9618e44f6b182e3ac76516ec8a8a2c88ee7b073a679c45da6b455572b4ae +DIST bootengine-d223ffd2c5b2084b6247a808792639d76ff64b5d.tar.gz 37892 BLAKE2B d932f89ff645c3d60ceb4a369d5caada5f946b66a35f2866aa418f45a8d63cd81ec5c94afec301005df216469f893c2bd43fab02594d49914dbe8caf3bc54d21 SHA512 473f5e061ea37f944d741fbb766cec9a2731b4d3b0452b65dec3bf17ada0fec3525e8a8336888e8d6d70d7b12ae21066de570ad75404ee64b33553233fc4bec4 diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-0.0.38-r46.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-0.0.38-r47.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-0.0.38-r46.ebuild rename to sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-0.0.38-r47.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-9999.ebuild index e9983d2d59a..ba15f541e2c 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-9999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/sys-kernel/bootengine/bootengine-9999.ebuild @@ -10,7 +10,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/flatcar/bootengine.git" inherit git-r3 else - EGIT_VERSION="944410b2d2ad280fbf30e96eda0180204c83c85b" # flatcar-master + EGIT_VERSION="d223ffd2c5b2084b6247a808792639d76ff64b5d" # krnowak/drop-workaround-dracut-110 SRC_URI="https://github.com/flatcar/bootengine/archive/${EGIT_VERSION}.tar.gz -> ${PN}-${EGIT_VERSION}.tar.gz" S="${WORKDIR}/${PN}-${EGIT_VERSION}" KEYWORDS="amd64 arm arm64 x86" diff --git a/sdk_container/src/third_party/coreos-overlay/x11-drivers/nvidia-drivers-service/nvidia-drivers-service-535.288.01.ebuild b/sdk_container/src/third_party/coreos-overlay/x11-drivers/nvidia-drivers-service/nvidia-drivers-service-535.309.01.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/x11-drivers/nvidia-drivers-service/nvidia-drivers-service-535.288.01.ebuild rename to sdk_container/src/third_party/coreos-overlay/x11-drivers/nvidia-drivers-service/nvidia-drivers-service-535.309.01.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/x11-drivers/old-nvidia-drivers/Manifest b/sdk_container/src/third_party/coreos-overlay/x11-drivers/old-nvidia-drivers/Manifest index 179f528247c..eae444a7dce 100644 --- a/sdk_container/src/third_party/coreos-overlay/x11-drivers/old-nvidia-drivers/Manifest +++ b/sdk_container/src/third_party/coreos-overlay/x11-drivers/old-nvidia-drivers/Manifest @@ -6,3 +6,11 @@ DIST nvidia-modprobe-550.163.01.tar.bz2 41448 BLAKE2B 23e567d612e669ec6ae9f38965 DIST nvidia-persistenced-550.163.01.tar.bz2 61450 BLAKE2B 1a11cb89981b88f8d14558227d9493f1f8a81ccb5502002c436e9311a38c9c8fe0402c65eac1517a2893985eec07699b2e7bc7a81aa14dc0d52198ac85a2cd1b SHA512 f17dbcafa917b5b450f7665f98fd24f06ad99e6bcd1fcf42ef95aa9337b55561b7b16eaad8fa408110d08ee7e6d812444792cccbb9c92865099891832da779ce DIST nvidia-settings-550.163.01.tar.bz2 1099317 BLAKE2B 25419c1796deeea238b3e44fd8d648a8627272565be40cb0745132cef1c16e0c422242a1e6369745d577e674a68bf9dfc3c009e281a84ba58db5429d97ac9cff SHA512 5306ab05f284ba06852d7c96ff62ded7b8b615d3a002009cd5d781fdad716db37f53d1c8a43337ada60d524b4f7d183d98ad2673f40a5ca1ca4c5112bb913e74 DIST nvidia-xconfig-550.163.01.tar.bz2 111149 BLAKE2B d19ef0427e3432798e674dc66447090e8fb8fcb549ebe27aaee19aa38294cf178e175a067b2da5313342c93ea2aebef35861d05cc4cc0ee2c3eae955b3ddbbb3 SHA512 35f95d85928c82bc5de8e462ca5e90a6d8fe03e5b5367b9cdaadddc1e956f0d26b6dc42e716ae7c88512afdfb98cc841fe9b22846f6d6acc578c5dba4d0a16e1 +DIST NVIDIA-Linux-aarch64-570.211.01.run 290912556 BLAKE2B 4335d6a6b7a55bc7d2717071c6be968b63c90932592534be8eff28290a8bf98614b37bb52b4ee0f9563a6f0fdacf6b0e8a04b8eedbe8081587962f3599209a88 SHA512 22816d8f798d6ce141ff2ce750b5df1ca4fef9b1ba79762157fd7f93c1ea905c74f421dc6ac2b7bf5b383192d2baa735d7a7d240523be815defb68be54c4a6be +DIST NVIDIA-Linux-x86_64-570.211.01.run 376192072 BLAKE2B 56a135681eba576377106b5ee4bad4e0ec7e41e512db8e32297fbafe03455ee4e9e0dafe782588dd3832fde74ecfd9ee5858ec662f3dc2ef3f1e1dab7a9c909d SHA512 3e751d90a8f126e369c5167e2d5ba8b218dd306ccf00907290ae70fb1c3f752f0ad0b973ce356a1a24cd0f19c31a07169cfd5705613a6bbb5918881635650839 +DIST NVIDIA-kernel-module-source-570.211.01.tar.xz 17951900 BLAKE2B d40d2c1b4a92dfe8da95e1000413dfb484c9c96ad232dd5db14246378f6df8e73f04706592a536025c3d5512d5e663e7841de8bda782e3611b4b594b9b107ad4 SHA512 c988270d3aaa707310c3924de83eb5f5bdc4d022d1666eb3f41ed46eff35e98a765d4d6d34c22c02ac507016bed3c34af1da2e1befc285ec9158031a4a1447e4 +DIST nvidia-installer-570.211.01.tar.bz2 169330 BLAKE2B 100cdb3e0cccb19e3bbf69d4289d079a64cbca95fc20f4d48179190b5e61cfdcbfeb5b95c381c70824c185975356a70af4c89efb53ca0cbc5c61fc95d974ca77 SHA512 90efcd442feacd7f9d9bf25fddb77c521b2e7c79063703c320ce2bbd50a5cce950b0937ec926e89081634c6606c18861efda0e6288e24fab5ee31cd5d52d211f +DIST nvidia-modprobe-570.211.01.tar.bz2 41631 BLAKE2B 953113337b742ea246bf24a47cbe679f03d89ecfa48a655f179b0913dd7d9c1742f4b1bd765c4d4263c9d45c352de87bff9f0a5a2c3aa48c86f221177cd5d1fb SHA512 c1bbba303b587f18e824cd2dd9a74341d5a03ee56c6adff67bb33c4f65ed16742f094dca9457a04d68b676c3671756e47d996090523827f42c8780329988e3fb +DIST nvidia-persistenced-570.211.01.tar.bz2 61779 BLAKE2B 02ac6f53eb4c053ca894f79b49d2a4b1b1f8e9f1a349053794542e72112bf0fab87aa2ee317d486758aaf77811c929d0aa8fbbcef9de8cc59836445ef845cb7d SHA512 5cb8feb56bf245e8e51e65d3d6d31f2b588e7b84ca29330e564d3c27ab37ceb67df0f80f8b37dfafb49a9fe8d7fef6b26d6334c6403902737298e8f3b23d1cb3 +DIST nvidia-settings-570.211.01.tar.bz2 1123957 BLAKE2B 7355319d29f96aeeada3cd1ffd08b053fa76a5f2f0dd35fac383ff5c1ffd4abba95d0a7f0f421fc4b74a11f2c94352c9e2db363034e5361a0d18017a321261f2 SHA512 8f29c02597eedd934531e703c617aaa7504effe836257de07c664145e07690b0b34b8c893c01e9e561bf90cb3c15b1b6c116e2a7a88ea1a733f2872490c10441 +DIST nvidia-xconfig-570.211.01.tar.bz2 111263 BLAKE2B 9d6e7e973156d91ce1a213a95aa31269d811024ebf358dfad42c0771cafc6c4f2d4257994d67e67ac637a1107527511d8f8219446e9a57560bab8ba7d4d2684c SHA512 8e8be1e95998fde590bdb5c0246764a426d623c8bf9e705e7bff649f1daebb86726cead4add570622e34aea9a38b697d31d11d7a2fc741dd91af2ccaaa024cd1 diff --git a/sdk_container/src/third_party/coreos-overlay/x11-drivers/old-nvidia-drivers/old-nvidia-drivers-570.211.01.ebuild b/sdk_container/src/third_party/coreos-overlay/x11-drivers/old-nvidia-drivers/old-nvidia-drivers-570.211.01.ebuild new file mode 100644 index 00000000000..521e61bb5de --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/x11-drivers/old-nvidia-drivers/old-nvidia-drivers-570.211.01.ebuild @@ -0,0 +1,592 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODULES_OPTIONAL_IUSE=+modules +inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1 +inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info + +MODULES_KERNEL_MAX=6.18 +NV_URI="https://download.nvidia.com/XFree86/" + +DESCRIPTION="NVIDIA Accelerated Graphics Driver" +HOMEPAGE="https://www.nvidia.com/" +SRC_URI=" + amd64? ( ${NV_URI}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" + +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-compat:3 + dev-libs/openssl:0/3 + ) + sys-libs/glibc + X? ( + media-libs/libglvnd[X,abi_x86_32(-)?] + x11-libs/libX11[abi_x86_32(-)?] + x11-libs/libXext[abi_x86_32(-)?] + ) + powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) + wayland? ( + >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] + >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] + 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_AMD_IOMMU=y, + or DRM_I915=m (among others, consult the kernel config's help)." + 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)" + + # Same as uname -m. + local target_arch + case ${ARCH} in + amd64) target_arch=x86_64 ;; + arm64) target_arch=aarch64 ;; + *) die "Unrecognised architecture: ${ARCH}" ;; + esac + + NV_ARGS=( + PREFIX="${EPREFIX}"/usr + HOST_CC="$(tc-getBUILD_CC)" + HOST_LD="$(tc-getBUILD_LD)" + BUILD_GTK2LIB= + NV_USE_BUNDLED_LIBJANSSON=0 + NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + TARGET_ARCH="${target_arch}" + WAYLAND_AVAILABLE=$(usex wayland 1 0) + XNVCTRL_CFLAGS="${xnvflags}" + ) + + if use modules; then + local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} + + 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}" + TARGET_ARCH="${target_arch}" + + # kernel takes "x86" and "x86_64" as meaning the same, but nvidia + # makes the distinction (since 550.135) and is not happy with "x86" + # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 + $(usev amd64 ARCH=x86_64) + ) + + # temporary workaround for bug #914468 + addpredict "${KV_OUT_DIR}" + + linux-mod-r1_src_compile + CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} + fi + + emake "${NV_ARGS[@]}" -C nvidia-modprobe + use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced + use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig + + if use tools; then + # avoid noisy *very* noisy logs with deprecation warnings + CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ + emake "${NV_ARGS[@]}" -C nvidia-settings + elif use static-libs; then + # pretend GTK+3 is available, not actually used (bug #880879) + emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ + -C nvidia-settings/src out/libXNVCtrl.a + fi +} + +src_install() { + local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) + + NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) + + local -A paths=( + [APPLICATION_PROFILE]=/usr/share/nvidia + [CUDA_ICD]=/etc/OpenCL/vendors + [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d + [FIRMWARE]=/lib/firmware/nvidia/${PV} + [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm + [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d + [OPENGL_DATA]=/usr/share/nvidia + [VULKANSC_ICD_JSON]=/usr/share/vulkansc + [VULKAN_ICD_JSON]=/usr/share/vulkan + [WINE_LIB]=/usr/${libdir}/nvidia/wine + [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d + + [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions + [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules + [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules + ) + + local skip_files=( + $(usev !X "libGLX_nvidia libglxserver_nvidia") + libGLX_indirect # non-glvnd unused fallback + libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source + libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm + libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland + libnvidia-egl-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 && use modules && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then + ewarn "\nOpen 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 "\nNote 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/acct-group/sssd/metadata.xml b/sdk_container/src/third_party/portage-stable/acct-group/sssd/metadata.xml new file mode 100644 index 00000000000..ab72af36d9c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/acct-group/sssd/metadata.xml @@ -0,0 +1,16 @@ + + + + + base-system@gentoo.org + Gentoo Base System + + + salah.coronya@gmail.com + Christopher Byrne + + + proxy-maint@gentoo.org + Proxy Maintainers + + diff --git a/sdk_container/src/third_party/portage-stable/acct-group/sssd/sssd-0.ebuild b/sdk_container/src/third_party/portage-stable/acct-group/sssd/sssd-0.ebuild new file mode 100644 index 00000000000..d3e52a80690 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/acct-group/sssd/sssd-0.ebuild @@ -0,0 +1,10 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit acct-group + +DESCRIPTION="A group for sys-auth/sssd" + +ACCT_GROUP_ID="543" diff --git a/sdk_container/src/third_party/portage-stable/acct-user/sssd/metadata.xml b/sdk_container/src/third_party/portage-stable/acct-user/sssd/metadata.xml new file mode 100644 index 00000000000..ab72af36d9c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/acct-user/sssd/metadata.xml @@ -0,0 +1,16 @@ + + + + + base-system@gentoo.org + Gentoo Base System + + + salah.coronya@gmail.com + Christopher Byrne + + + proxy-maint@gentoo.org + Proxy Maintainers + + diff --git a/sdk_container/src/third_party/portage-stable/acct-user/sssd/sssd-0.ebuild b/sdk_container/src/third_party/portage-stable/acct-user/sssd/sssd-0.ebuild new file mode 100644 index 00000000000..642d60b9017 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/acct-user/sssd/sssd-0.ebuild @@ -0,0 +1,13 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit acct-user + +DESCRIPTION="A user for sys-auth/sssd" + +ACCT_USER_GROUPS=( "sssd" ) +ACCT_USER_ID="543" + +acct-user_add_deps diff --git a/sdk_container/src/third_party/portage-stable/app-admin/sudo/Manifest b/sdk_container/src/third_party/portage-stable/app-admin/sudo/Manifest index 17da9698ff2..377aae810b5 100644 --- a/sdk_container/src/third_party/portage-stable/app-admin/sudo/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-admin/sudo/Manifest @@ -1,4 +1,2 @@ -DIST sudo-1.9.17p1.tar.gz 5449076 BLAKE2B 21771348a8de392767c366bb938951327dcc64a4cedee716a802435899e5135c218468271833a9e3ab9d90bda29e36c0870e27dd333d3a5c64fb8e3a5ebbff58 SHA512 1a9fb27a117b54adf5c99443b3375f7e0eaaf3a2d5a3d409f7c7b10c43432eb301d721df93fb1a8a2e45bf4a4957288d4f153359fc018af00973be57f62a1ebc -DIST sudo-1.9.17p1.tar.gz.sig 566 BLAKE2B b6380c84b82740455a28388925d27bdf9296ddef943653c1883af3c7684ab53571053ef333ac9747ee11330b06fd23adf477856f70bd5fcaa6dbda1c9e432675 SHA512 714ce7c613683689e9d166171b04c03220e21d06f2e66d800f2d075927830014447611933d7293d9c763beeea66fc02255d8175c9ac8cba6d62166750aab50a6 DIST sudo-1.9.17p2.tar.gz 5451682 BLAKE2B dd42ff4fd571ba8489cc59d71a09c7e0483d21daf9faf7e697beedc04d9f170b01e60446af179c949a3da115b616fbec07aff8fbf8b7d502161c24d1b35b7a69 SHA512 c8abd6ca56e54a081c9ef1e9f6579d1db5b93ff857e60d1f58d1f425d7dc23c31c58d40b7819780688f66dfdf87a1f3bbe0a78387b007e2beb1b0e546203ea93 DIST sudo-1.9.17p2.tar.gz.sig 566 BLAKE2B b778061533cd2778eec1093fc37e89f45ea4b2a5e97a71f85fc00fbfc1b550a194e4faa410bc072e3ecbd233a3834f004d7451e020d2be148a36336b35d462e5 SHA512 7ca1949a7ffe0481d7c0f9215fdeae54fff34f0156f06c72a090515b1a97d052e63ce94cffe5a92ca23a723ddd0b0186fabc957cdc22120482c6f9f87d65a5f6 diff --git a/sdk_container/src/third_party/portage-stable/app-admin/sudo/sudo-1.9.17_p1.ebuild b/sdk_container/src/third_party/portage-stable/app-admin/sudo/sudo-1.9.17_p1.ebuild deleted file mode 100644 index a700f720d5c..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-admin/sudo/sudo-1.9.17_p1.ebuild +++ /dev/null @@ -1,289 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit pam tmpfiles toolchain-funcs - -MY_P="${P/_/}" -MY_P="${MY_P/beta/b}" - -DESCRIPTION="Allows users or groups to run commands as other users" -HOMEPAGE="https://www.sudo.ws/" - -if [[ ${PV} == 9999 ]] ; then - inherit autotools mercurial - EHG_REPO_URI="https://www.sudo.ws/repos/sudo" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/sudo.ws.asc - inherit libtool verify-sig - - uri_prefix= - case ${P} in - *_beta*|*_rc*) uri_prefix=beta/ ;; - esac - - SRC_URI=" - https://www.sudo.ws/sudo/dist/${uri_prefix}${MY_P}.tar.gz - verify-sig? ( - https://www.sudo.ws/sudo/dist/${uri_prefix}${MY_P}.tar.gz.sig - ) - " - - if [[ ${PV} != *_beta* && ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - fi - - BDEPEND="verify-sig? ( sec-keys/openpgp-keys-sudo )" -fi - -S="${WORKDIR}/${MY_P}" - -# Basic license is ISC-style as-is, some files are released under -# 3-clause BSD license -LICENSE="ISC BSD" -SLOT="0" -IUSE="gcrypt ldap nls offensive pam sasl +secure-path selinux +sendmail skey ssl sssd" - -DEPEND=" - virtual/zlib:= - virtual/libcrypt:= - gcrypt? ( dev-libs/libgcrypt:= ) - ldap? ( - >=net-nds/openldap-2.1.30-r1:= - sasl? ( - dev-libs/cyrus-sasl - net-nds/openldap:=[sasl] - ) - ) - pam? ( sys-libs/pam ) - sasl? ( dev-libs/cyrus-sasl ) - selinux? ( sys-libs/libselinux ) - skey? ( >=sys-auth/skey-1.1.5-r1 ) - ssl? ( dev-libs/openssl:= ) - sssd? ( sys-auth/sssd[sudo(+)] ) -" -RDEPEND=" - ${DEPEND} - >=app-misc/editor-wrapper-3 - virtual/editor - ldap? ( dev-lang/perl ) - pam? ( sys-auth/pambase ) - selinux? ( sec-policy/selinux-sudo ) - sendmail? ( virtual/mta ) -" -BDEPEND+=" - app-alternatives/yacc - virtual/pkgconfig -" - -REQUIRED_USE=" - ?? ( pam skey ) - ?? ( gcrypt ssl ) -" - -MAKEOPTS+=" SAMPLES=" - -src_prepare() { - default - - if [[ ${PV} == 9999 ]] ; then - eautoreconf - else - elibtoolize - fi -} - -set_secure_path() { - # First extract the default ROOTPATH from build env - SECURE_PATH=$(unset ROOTPATH; . "${EPREFIX}"/etc/profile.env; echo "${ROOTPATH}") - - case "${SECURE_PATH}" in - */usr/sbin*) - ;; - *) - SECURE_PATH=$(unset PATH; . "${EPREFIX}"/etc/profile.env; echo "${PATH}") - ;; - esac - - if [[ -z ${SECURE_PATH} ]] ; then - ewarn " Failed to detect SECURE_PATH, please report this" - fi - - # Then remove duplicate path entries - cleanpath() { - local newpath thisp IFS=: - for thisp in $1 ; do - if [[ :${newpath}: != *:${thisp}:* ]] ; then - newpath+=:${thisp} - else - einfo " Duplicate entry ${thisp} removed..." - fi - done - SECURE_PATH=${newpath#:} - } - cleanpath /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin${SECURE_PATH:+:${SECURE_PATH}} - - # Finally, strip gcc paths, bug #136027 - rmpath() { - local e newpath thisp IFS=: - for thisp in ${SECURE_PATH} ; do - for e ; do - [[ ${thisp} == ${e} ]] && continue 2 ; - done - newpath+=:${thisp} - done - SECURE_PATH=${newpath#:} - } - rmpath '*/gcc-bin/*' '*/gnat-gcc-bin/*' '*/gnat-gcc/*' -} - -src_configure() { - local SECURE_PATH - - set_secure_path - - # bug #767712 - tc-export PKG_CONFIG - - # - audit: somebody got to explain me how I can test this before I - # enable it.. - Diego - # - plugindir: autoconf code is crappy and does not delay evaluation - # until `make` time, so we have to use a full path here rather than - # basing off other values. - local myeconfargs=( - # We set all of the relevant options by ourselves (patched - # into the toolchain) and setting these in the build system - # actually causes a downgrade when using e.g. -D_FORTIFY_SOURCE=3 - # (it'll downgrade to =2). So, this has no functional effect on - # the hardening for users. It's safe. - --disable-hardening - - # requires some python eclass - --disable-python - --enable-tmpfiles.d="${EPREFIX}"/usr/lib/tmpfiles.d - --enable-zlib=system - --with-editor="${EPREFIX}"/usr/libexec/editor - --with-env-editor - --with-plugindir="${EPREFIX}"/usr/$(get_libdir)/sudo - --with-rundir="${EPREFIX}"/run/sudo - --with-vardir="${EPREFIX}"/var/db/sudo - --without-linux-audit - --without-opie - $(use_enable gcrypt) - $(use_enable nls) - $(use_enable sasl) - $(use_enable ssl openssl) - $(use_with ldap) - $(use_with ldap ldap_conf_file /etc/ldap.conf.sudo) - $(use_with offensive insults) - $(use_with offensive all-insults) - $(use_with pam) - $(use_with pam pam-login) - $(use_with secure-path) - "$(use_with secure-path secure-path-value "${SECURE_PATH}")" - $(use_with selinux) - $(use_with sendmail) - $(use_with skey) - $(use_with sssd) - ) - - econf "${myeconfargs[@]}" -} - -src_install() { - default - - if use ldap ; then - dodoc README.LDAP.md - - cat <<-EOF > "${T}"/ldap.conf.sudo - # See ldap.conf(5) and README.LDAP.md for details - # This file should only be readable by root - - # supported directives: host, port, ssl, ldap_version - # uri, binddn, bindpw, sudoers_base, sudoers_debug - # tls_{checkpeer,cacertfile,cacertdir,randfile,ciphers,cert,key} - EOF - - if use sasl ; then - cat <<-EOF >> "${T}"/ldap.conf.sudo - - # SASL directives: use_sasl, sasl_mech, sasl_auth_id - # sasl_secprops, rootuse_sasl, rootsasl_auth_id, krb5_ccname - EOF - fi - - insinto /etc - doins "${T}"/ldap.conf.sudo - fperms 0440 /etc/ldap.conf.sudo - - insinto /etc/openldap/schema - newins docs/schema.OpenLDAP sudo.schema - fi - - if use pam ; then - pamd_mimic system-auth sudo auth account session - pamd_mimic system-auth sudo-i auth account session - fi - - keepdir /var/db/sudo/lectured - fperms 0700 /var/db/sudo/lectured - # bug #652958 - fperms 0711 /var/db/sudo - - # Don't install into /run as that is a tmpfs most of the time - # (bug #504854) - rm -rf "${ED}"/run || die - - # bug #697812 - find "${ED}" -type f -name "*.la" -delete || die -} - -pkg_postinst() { - tmpfiles_process sudo.conf - - # bug #652958 - local sudo_db="${EROOT}/var/db/sudo" - if [[ "$(stat -c %a "${sudo_db}")" -ne 711 ]] ; then - chmod 711 "${sudo_db}" || die - fi - - if use ldap ; then - ewarn - ewarn "sudo uses the ${ROOT}/etc/ldap.conf.sudo file for ldap configuration." - ewarn - if grep -qs '^[[:space:]]*sudoers:' "${ROOT}"/etc/nsswitch.conf ; then - ewarn "In 1.7 series, LDAP is no more consulted, unless explicitly" - ewarn "configured in ${ROOT}/etc/nsswitch.conf." - ewarn - ewarn "To make use of LDAP, add this line to your ${ROOT}/etc/nsswitch.conf:" - ewarn " sudoers: ldap files" - ewarn - fi - fi - if use prefix ; then - ewarn - ewarn "To use sudo on Prefix, you need to change file ownership and permissions" - ewarn "with root privileges, as follows:" - ewarn - ewarn " # chown root:root ${EPREFIX}/usr/bin/sudo" - ewarn " # chown root:root ${EPREFIX}/usr/lib/sudo/sudoers.so" - ewarn " # chown root:root ${EPREFIX}/etc/sudoers" - ewarn " # chown root:root ${EPREFIX}/etc/sudoers.d" - ewarn " # chown root:root ${EPREFIX}/var/db/sudo" - ewarn " # chmod 4111 ${EPREFIX}/usr/bin/sudo" - ewarn - fi - - elog "To use the -A (askpass) option, you need to install a compatible" - elog "password program from the following list. Starred packages will" - elog "automatically register for the use with sudo (but will not force" - elog "the -A option):" - elog "" - elog " [*] net-misc/ssh-askpass-fullscreen" - elog " net-misc/x11-ssh-askpass" - elog "" - elog "You can override the choice by setting the SUDO_ASKPASS environmnent" - elog "variable to the program you want to use." -} diff --git a/sdk_container/src/third_party/portage-stable/app-alternatives/gzip/gzip-0.ebuild b/sdk_container/src/third_party/portage-stable/app-alternatives/gzip/gzip-0.ebuild deleted file mode 100644 index 1515f2e8321..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-alternatives/gzip/gzip-0.ebuild +++ /dev/null @@ -1,44 +0,0 @@ -# Copyright 2022-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -ALTERNATIVES=( - "reference:>=app-arch/gzip-1.12-r3" - "pigz:app-arch/pigz[-symlink(-)]" -) - -inherit app-alternatives - -DESCRIPTION="gzip symlinks" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="split-usr" - -RDEPEND=" - != 10 threads - # https://bugs.gentoo.org/927766 - cat > "${T}"/bin/lrzip <<-EOF || die - #!/bin/sh - exec "$(type -P lrzip)" -p1 "\${@}" - EOF - chmod +x "${T}/bin/lrzip" || die - local -x PATH=${T}/bin:${PATH} - multilib-minimal_src_test -} - -multilib_src_test() { - # sandbox is breaking long symlink behavior - local -x SANDBOX_ON=0 - local -x LD_PRELOAD= - # some locales trigger different output that breaks tests - local -x LC_ALL=C.UTF-8 - emake check -} - -multilib_src_install() { - if multilib_is_native_abi ; then - emake DESTDIR="${D}" install - else - local install_targets=( - install-includeHEADERS - install-libLTLIBRARIES - install-pkgconfigDATA - ) - emake DESTDIR="${D}" "${install_targets[@]}" - fi - - # Libs.private: should be used from libarchive.pc instead - find "${ED}" -type f -name "*.la" -delete || die - # https://github.com/libarchive/libarchive/issues/1766 - sed -e '/Requires\.private/s:iconv::' \ - -i "${ED}/usr/$(get_libdir)/pkgconfig/libarchive.pc" || die -} diff --git a/sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.8.5.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.8.5.ebuild index efb25d05e75..3de4c72ac3e 100644 --- a/sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.8.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.8.5.ebuild @@ -16,7 +16,7 @@ SRC_URI=" LICENSE="BSD BSD-2 BSD-4 public-domain" SLOT="0/13" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE=" acl blake2 +bzip2 +e2fsprogs expat +iconv lz4 +lzma lzo nettle static-libs test xattr +zstd diff --git a/sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.8.6.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.8.6.ebuild index 58b2d5cfe76..99a126cd2e0 100644 --- a/sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.8.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.8.6.ebuild @@ -16,7 +16,7 @@ SRC_URI=" LICENSE="BSD BSD-2 BSD-4 public-domain" SLOT="0/13" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE=" acl blake2 +bzip2 +e2fsprogs expat +iconv lz4 +lzma lzo nettle static-libs test xattr +zstd diff --git a/sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.8.7.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.8.7.ebuild new file mode 100644 index 00000000000..99a126cd2e0 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.8.7.ebuild @@ -0,0 +1,173 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit libtool multilib-minimal toolchain-funcs verify-sig + +DESCRIPTION="Multi-format archive and compression library" +HOMEPAGE=" + https://www.libarchive.org/ + https://github.com/libarchive/libarchive/ +" +SRC_URI=" + https://www.libarchive.de/downloads/${P}.tar.xz + verify-sig? ( https://www.libarchive.de/downloads/${P}.tar.xz.asc ) +" + +LICENSE="BSD BSD-2 BSD-4 public-domain" +SLOT="0/13" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE=" + acl blake2 +bzip2 +e2fsprogs expat +iconv lz4 +lzma lzo nettle + static-libs test xattr +zstd +" +RESTRICT="!test? ( test )" + +RDEPEND=" + virtual/zlib:=[${MULTILIB_USEDEP}] + acl? ( virtual/acl:=[${MULTILIB_USEDEP}] ) + blake2? ( app-crypt/libb2:=[${MULTILIB_USEDEP}] ) + bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] ) + expat? ( dev-libs/expat:=[${MULTILIB_USEDEP}] ) + !expat? ( dev-libs/libxml2:=[${MULTILIB_USEDEP}] ) + iconv? ( virtual/libiconv:=[${MULTILIB_USEDEP}] ) + dev-libs/openssl:=[${MULTILIB_USEDEP}] + lz4? ( >=app-arch/lz4-0_p131:=[${MULTILIB_USEDEP}] ) + lzma? ( >=app-arch/xz-utils-5.2.5-r1:=[${MULTILIB_USEDEP}] ) + lzo? ( >=dev-libs/lzo-2:=[${MULTILIB_USEDEP}] ) + nettle? ( dev-libs/nettle:=[${MULTILIB_USEDEP}] ) + zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] ) +" +DEPEND=" + ${RDEPEND} + virtual/os-headers + elibc_musl? ( sys-libs/queue-standalone ) + e2fsprogs? ( sys-fs/e2fsprogs[${MULTILIB_USEDEP}] ) + test? ( + app-arch/lrzip + app-arch/lz4 + app-arch/lzip + app-arch/lzop + app-arch/xz-utils + app-arch/zstd + lzma? ( app-arch/xz-utils[extra-filters(+)] ) + ) +" +BDEPEND=" + virtual/pkgconfig + verify-sig? ( >=sec-keys/openpgp-keys-libarchive-20251118 ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libarchive.org.asc + +# false positives (checks for libc-defined hash functions) +QA_CONFIG_IMPL_DECL_SKIP=( + SHA256_Init SHA256_Update SHA256_Final + SHA384_Init SHA384_Update SHA384_Final + SHA512_Init SHA512_Update SHA512_Final +) + +PATCHES=( + # https://github.com/libarchive/libarchive/issues/2069 + # (we can simply update the command since we don't support old lrzip) + "${FILESDIR}/${PN}-3.7.2-lrzip.patch" +) + +src_prepare() { + default + + # Needed for flags to be respected w/ LTO + elibtoolize +} + +multilib_src_configure() { + export ac_cv_header_ext2fs_ext2_fs_h=$(usex e2fsprogs) #354923 + + local myconf=( + $(use_enable acl) + $(use_enable static-libs static) + $(use_enable xattr) + $(use_with blake2 libb2) + $(use_with bzip2 bz2lib) + $(use_with expat) + $(use_with !expat xml2) + $(use_with iconv) + $(use_with lz4) + $(use_with lzma) + $(use_with lzo lzo2) + $(use_with nettle) + --with-zlib + $(use_with zstd) + + # Windows-specific + --without-cng + ) + if multilib_is_native_abi ; then + myconf+=( + --enable-bsdcat="$(tc-is-static-only && echo static || echo shared)" + --enable-bsdcpio="$(tc-is-static-only && echo static || echo shared)" + --enable-bsdtar="$(tc-is-static-only && echo static || echo shared)" + --enable-bsdunzip="$(tc-is-static-only && echo static || echo shared)" + ) + else + myconf+=( + --disable-bsdcat + --disable-bsdcpio + --disable-bsdtar + --disable-bsdunzip + ) + fi + + ECONF_SOURCE="${S}" econf "${myconf[@]}" +} + +multilib_src_compile() { + if multilib_is_native_abi ; then + emake + else + emake libarchive.la + fi +} + +src_test() { + mkdir -p "${T}"/bin || die + # tests fail when lbzip2[symlink] is used in place of ref bunzip2 + ln -s "${BROOT}/bin/bunzip2" "${T}"/bin || die + # workaround lrzip broken on 32-bit arches with >= 10 threads + # https://bugs.gentoo.org/927766 + cat > "${T}"/bin/lrzip <<-EOF || die + #!/bin/sh + exec "$(type -P lrzip)" -p1 "\${@}" + EOF + chmod +x "${T}/bin/lrzip" || die + local -x PATH=${T}/bin:${PATH} + multilib-minimal_src_test +} + +multilib_src_test() { + # sandbox is breaking long symlink behavior + local -x SANDBOX_ON=0 + local -x LD_PRELOAD= + # some locales trigger different output that breaks tests + local -x LC_ALL=C.UTF-8 + emake check +} + +multilib_src_install() { + if multilib_is_native_abi ; then + emake DESTDIR="${D}" install + else + local install_targets=( + install-includeHEADERS + install-libLTLIBRARIES + install-pkgconfigDATA + ) + emake DESTDIR="${D}" "${install_targets[@]}" + fi + + # Libs.private: should be used from libarchive.pc instead + find "${ED}" -type f -name "*.la" -delete || die + # https://github.com/libarchive/libarchive/issues/1766 + sed -e '/Requires\.private/s:iconv::' \ + -i "${ED}/usr/$(get_libdir)/pkgconfig/libarchive.pc" || die +} diff --git a/sdk_container/src/third_party/portage-stable/app-arch/lz4/Manifest b/sdk_container/src/third_party/portage-stable/app-arch/lz4/Manifest index 91e1cb9c3f1..3837280527f 100644 --- a/sdk_container/src/third_party/portage-stable/app-arch/lz4/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-arch/lz4/Manifest @@ -1,2 +1 @@ DIST lz4-1.10.0.tar.gz 387114 BLAKE2B c87a939b748b0449e4f1869579ebc109704aa89e8699b6029217f6786c351d1b0329580dd3a955fe509efb113f29aecbafc83084d65d153f5d43610f4840a819 SHA512 8c4ceb217e6dc8e7e0beba99adc736aca8963867bcf9f970d621978ba11ce92855912f8b66138037a1d2ae171e8e17beb7be99281fea840106aa60373c455b28 -DIST lz4-1.9.4.tar.gz 354063 BLAKE2B 2289cdce36acd35283bf2f02ef4d6d8f4805563be6d5a3492f3d6ea7975fb6bd14e1ac2e505df9747776edf8bcf0da7ba4ae7084b150e3ec08a52a9885f92ad5 SHA512 043a9acb2417624019d73db140d83b80f1d7c43a6fd5be839193d68df8fd0b3f610d7ed4d628c2a9184f7cde9a0fd1ba9d075d8251298e3eb4b3a77f52736684 diff --git a/sdk_container/src/third_party/portage-stable/app-arch/lz4/lz4-1.10.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/lz4/lz4-1.10.0-r1.ebuild index 8e94fbf76cd..abd9fa50120 100644 --- a/sdk_container/src/third_party/portage-stable/app-arch/lz4/lz4-1.10.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-arch/lz4/lz4-1.10.0-r1.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit meson-multilib +inherit dot-a meson-multilib DESCRIPTION="Extremely Fast Compression algorithm" HOMEPAGE="https://github.com/lz4/lz4" @@ -23,6 +23,11 @@ PATCHES=( "${FILESDIR}/${PV}-meson-do-not-force-c99-mode.patch" ) +src_configure() { + use static-libs && lto-guarantee-fat + multilib-minimal_src_configure +} + multilib_src_configure() { local emesonargs=( -Dtests=$(usex test true false) @@ -40,3 +45,8 @@ multilib_src_configure() { meson_src_configure } + +multilib_src_install_all() { + einstalldocs + strip-lto-bytecode +} diff --git a/sdk_container/src/third_party/portage-stable/app-arch/lz4/lz4-1.10.0.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/lz4/lz4-1.10.0.ebuild deleted file mode 100644 index 4aa5a3d97b1..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-arch/lz4/lz4-1.10.0.ebuild +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib - -DESCRIPTION="Extremely Fast Compression algorithm" -HOMEPAGE="https://github.com/lz4/lz4" -SRC_URI="https://github.com/lz4/lz4/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="BSD-2 GPL-2" -SLOT="0/1.10.0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="static-libs" - -CMAKE_USE_DIR=${S}/build/cmake - -multilib_src_configure() { - local mycmakeargs=( - -DBUILD_STATIC_LIBS=$(usex static-libs) - ) - - cmake_src_configure -} diff --git a/sdk_container/src/third_party/portage-stable/app-arch/lz4/lz4-1.9.4.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/lz4/lz4-1.9.4.ebuild deleted file mode 100644 index 5c086ce6ed0..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-arch/lz4/lz4-1.9.4.ebuild +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib - -DESCRIPTION="Extremely Fast Compression algorithm" -HOMEPAGE="https://github.com/lz4/lz4" -SRC_URI="https://github.com/lz4/lz4/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="BSD-2 GPL-2" -# https://abi-laboratory.pro/tracker/timeline/lz4/ -SLOT="0/r132" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="static-libs" - -CMAKE_USE_DIR=${S}/build/cmake - -multilib_src_configure() { - local mycmakeargs=( - -DBUILD_STATIC_LIBS=$(usex static-libs) - ) - - cmake_src_configure -} diff --git a/sdk_container/src/third_party/portage-stable/app-arch/rpm2targz/metadata.xml b/sdk_container/src/third_party/portage-stable/app-arch/rpm2targz/metadata.xml index 73dda144f9a..1faf363308a 100644 --- a/sdk_container/src/third_party/portage-stable/app-arch/rpm2targz/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/app-arch/rpm2targz/metadata.xml @@ -1,8 +1,11 @@ - - base-system@gentoo.org - Gentoo Base System - + + base-system@gentoo.org + Gentoo Base System + + + proj/rpm2targz + diff --git a/sdk_container/src/third_party/portage-stable/app-arch/tar/tar-1.35.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/tar/tar-1.35.ebuild index 1959db4feba..99c862078f9 100644 --- a/sdk_container/src/third_party/portage-stable/app-arch/tar/tar-1.35.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-arch/tar/tar-1.35.ebuild @@ -62,6 +62,11 @@ src_configure() { --program-prefix=g ) + # https://savannah.gnu.org/support/?111394 + # This can be removed when we patch dev-build/autoconf, though + # packages w/o eautoreconf will still need it. + [[ ${enable_year2038} == "no" ]] && myeconfargs+=( --disable-year2038 ) + # Drop CONFIG_SHELL hack after 1.35: https://git.savannah.gnu.org/cgit/tar.git/commit/?id=7687bf4acc4dc4554538389383d7fb4c3e6521cd CONFIG_SHELL="${BROOT}"/bin/bash FORCE_UNSAFE_CONFIGURE=1 econf "${myeconfargs[@]}" } diff --git a/sdk_container/src/third_party/portage-stable/app-arch/unzip/files/unzip-6.0-c99-configure.patch b/sdk_container/src/third_party/portage-stable/app-arch/unzip/files/unzip-6.0-c99-configure.patch new file mode 100644 index 00000000000..55c06db3f03 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-arch/unzip/files/unzip-6.0-c99-configure.patch @@ -0,0 +1,64 @@ +--- a/unix/configure ++++ b/unix/configure +@@ -382,7 +382,7 @@ $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null + for func in fchmod fchown lchown nl_langinfo + do + echo Check for $func +- echo "int main(){ $func(); return 0; }" > conftest.c ++ echo "void $func(); int main(){ $func(); return 0; }" > conftest.c + $CC $BFLAG -o conftest conftest.c >/dev/null 2>/dev/null + [ $? -ne 0 ] && CFLAGSR="${CFLAGSR} -DNO_`echo $func | tr '[a-z]' '[A-Z]'`" + done +@@ -401,14 +401,18 @@ ln -s "${temp_link}" "${temp_file}" && \ + rm -f "${temp_file}" + + echo Check for memset +-echo "int main(){ char k; memset(&k,0,0); return 0; }" > conftest.c ++cat > conftest.c << _EOF_ ++#include ++int main(){ char k; memset(&k,0,0); return 0; } ++_EOF_ ++ + $CC -o conftest conftest.c >/dev/null 2>/dev/null + [ $? -ne 0 ] && CFLAGSR="${CFLAGSR} -DZMEM" + + echo Check for errno declaration + cat > conftest.c << _EOF_ + #include +-main() ++int main() + { + errno = 0; + return 0; +@@ -419,6 +423,8 @@ $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null + + echo Check for directory libraries + cat > conftest.c << _EOF_ ++#include ++#include + int main() { return closedir(opendir(".")); } + _EOF_ + +@@ -439,7 +445,11 @@ fi + + # Dynix/ptx 1.3 needed this + echo Check for readlink +-echo "int main(){ return readlink(); }" > conftest.c ++cat > conftest.c << _EOF_ ++#include ++int main(){ return readlink(); } ++_EOF_ ++ + $CC -o conftest conftest.c >/dev/null 2>/dev/null + if [ $? -ne 0 ]; then + $CC -o conftest conftest.c -lseq >/dev/null 2>/dev/null +@@ -523,7 +533,8 @@ fi + # needed for AIX (and others ?) when mmap is used + echo Check for valloc + cat > conftest.c << _EOF_ +-main() ++#include ++int main() + { + #ifdef MMAP + valloc(); diff --git a/sdk_container/src/third_party/portage-stable/app-arch/unzip/unzip-6.0_p29-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/unzip/unzip-6.0_p29-r2.ebuild new file mode 100644 index 00000000000..ff3f481485a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-arch/unzip/unzip-6.0_p29-r2.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic multilib toolchain-funcs + +MY_PV="${PV//.}" +MY_PV="${MY_PV%_p*}" +MY_P="${PN}${MY_PV}" + +DESCRIPTION="unzipper for pkzip-compressed files" +HOMEPAGE="https://infozip.sourceforge.net/UnZip.html" +SRC_URI=" + https://downloads.sourceforge.net/infozip/${MY_P}.tar.gz + mirror://debian/pool/main/u/${PN}/${PN}_${PV/_p/-}.debian.tar.xz +" +S="${WORKDIR}/${MY_P}" + +LICENSE="Info-ZIP" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="bzip2 natspec unicode" + +DEPEND=" + bzip2? ( app-arch/bzip2 ) + natspec? ( dev-libs/libnatspec ) +" +RDEPEND="${DEPEND}" + +PATCHES=( + "${WORKDIR}"/debian/patches + "${FILESDIR}"/${PN}-6.0-no-exec-stack.patch + "${FILESDIR}"/${PN}-6.0-format-security.patch + "${FILESDIR}"/${PN}-6.0-fix-false-overlap-detection-on-32bit-systems.patch + "${FILESDIR}"/${PN}-6.0-c99-configure.patch +) + +src_prepare() { + # bug #275244 + use natspec && PATCHES+=( "${FILESDIR}"/${PN}-6.0-natspec.patch ) + + rm "${WORKDIR}"/debian/patches/02-this-is-debian-unzip.patch || die + + default + + sed -i \ + -e 's:LFLAGS2="-s":LFLAGS2=:' \ + unix/configure || die + sed -i -r \ + -e '/^CFLAGS/d' \ + -e '/CFLAGS/s:-O[0-9]?:$(CFLAGS) $(CPPFLAGS):' \ + -e '/^STRIP/s:=.*:=true:' \ + -e "s:\:CC=\"$(tc-getCC)\":" \ + -e "s:\:LD=\"$(tc-getCC)\":" \ + -e "s:\:AS=\"$(tc-getCC)\":" \ + -e 's:LF2 = -s:LF2 = :' \ + -e 's:LF = :LF = $(LDFLAGS) :' \ + -e 's:SL = :SL = $(LDFLAGS) :' \ + -e 's:FL = :FL = $(LDFLAGS) :' \ + -e "/^#L_BZ2/s:^$(use bzip2 && echo .)::" \ + -e 's:$(AS) :$(AS) $(ASFLAGS) :g' \ + unix/Makefile \ + || die "sed unix/Makefile failed" + + # Delete bundled code to make sure we don't use it. + rm -r bzip2 || die +} + +src_configure() { + case ${CHOST} in + i?86*-*linux*) TARGET="linux_asm" ;; + *linux*) TARGET="linux_noasm" ;; + *-darwin*) TARGET="macosx" ;; + *-solaris*) TARGET="linux_noasm" ;; + *-gnu) TARGET="generic" ;; + # generic may work but there may be a better-suited target + # so we should get people to check. + *) die "Unknown target; please update the ebuild to handle ${CHOST}" ;; + esac + + [[ ${CHOST} == *linux* ]] && append-cppflags -DNO_LCHMOD + [[ ${CHOST} == *-solaris* ]] && append-cppflags -DNO_LCHMOD -DBSD4_4 + use bzip2 && append-cppflags -DUSE_BZIP2 + use unicode && append-cppflags -DUNICODE_SUPPORT -DUNICODE_WCHAR -DUTF8_MAYBE_NATIVE -DUSE_ICONV_MAPPING + + # bug #281473 + append-cppflags -DLARGE_FILE_SUPPORT +} + +src_compile() { + ASFLAGS="${ASFLAGS} $(get_abi_CFLAGS)" emake -f unix/Makefile ${TARGET} +} + +src_install() { + dobin unzip funzip unzipsfx unix/zipgrep + dosym unzip /usr/bin/zipinfo + doman man/*.1 + dodoc BUGS History* README ToDo WHERE +} diff --git a/sdk_container/src/third_party/portage-stable/app-arch/xz-utils/Manifest b/sdk_container/src/third_party/portage-stable/app-arch/xz-utils/Manifest index d962c03c2a2..acd00473a63 100644 --- a/sdk_container/src/third_party/portage-stable/app-arch/xz-utils/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-arch/xz-utils/Manifest @@ -1,8 +1,2 @@ -DIST xz-5.6.4.tar.gz 2280985 BLAKE2B 3d27c143f4856589d501bc47ff5c86c1c49b1d0b8c8fd2143bcbfe86b860ca93f6a103f628e06ce5c2839ce1941cecc7552d91b1aac5c11def40fd9182d93eee SHA512 b966950eb9206e31f284c9dc3bb0a79f2fabbaf515e88c89da53d3da41ddfeebd2fc6d3d3f8fcd150c70caaaefa43dec0bce84aa183e08bf339d1aebbe041751 -DIST xz-5.6.4.tar.gz.sig 566 BLAKE2B 475b576431f573b9ce390ae2c43fc4f307f00ef523a741ec6795f182f5ff2c30f2049b1b4d2a3a7e61769bb7dc568de0f5af89661cb09341a58bbcdcdda3c877 SHA512 1ece59b7a540f6d215206ced14759aa971f192433705f8803b6ad8db0857e246145300c853cb571d8750b8152483d13736c478a7c0abb40d7ed25305d80a841c -DIST xz-5.8.1.tar.gz 2587189 BLAKE2B 430b14bc0f1382e7ba27ae1466ed2bc0c3e74c10b18db38fd899c9a7d315ffbbeb439d02b7b961de88ccba6064ae631c75f6d1cd03e3e58dac2e65a84b635f81 SHA512 151b2a47fdf00274c4fd71ceada8fb6c892bdac44070847ebf3259e602b97c95ee5ee88974e03d7aa821ab4f16d5c38e50dfb2baf660cf39c199878a666e19ad -DIST xz-5.8.1.tar.gz.sig 566 BLAKE2B 66fdf664995781c111349b700918b030af9dacd0612d97b3426913c2d866b459a66bd25558c7ab8121b3f0b07daa46422ea1c4534cf2da7382a94f1553e911a1 SHA512 4a67ed623841d64a5826cef1d5e21f3567ba275ee8f725a1217f76ce2ba25a41c6e22e62f8c7cca74d0d6e8398e8ee8926eab722cc8c1b10c42e990c32765efd -DIST xz-5.8.2.tar.gz 2693526 BLAKE2B 50bf4e9dcd1e4579c70aa06bbdd17636c38c87bce313c6e633932b640b2a92736fc15f1769f6a02f4fe45302ae0d26587ebd312825d4f84220b9780b10372117 SHA512 0b808fc8407e7c50da3a7b2db05be732c2fcd41850b92c7f5647181443483848ff359e176c816ce2038c115273f51575877c14f1356417cc9d53845841acb063 -DIST xz-5.8.2.tar.gz.sig 566 BLAKE2B f0a9bcc55b01e16827972052dc4d84ad47173ba7aa0ae1dad31606b329fb289fcd0061208133398b72591837a73092695f861e901f3b4f97dee9b2ac682f8939 SHA512 91c8d49d8ad0eb1e128203cf2c051fb200ec0e2b5eebea10a39945a998d24f11652a000faefa688d129327593043271314cbf115d78c21eeed738476dd2defb6 -DIST xz-cve-2025-31115.patch 11948 BLAKE2B a84c380aa6bdaa607d5bffe6370f7a2fb603945aa89f59f053d56e4be90a280b2c56d8e5fd6700a533fb24bd9ec54f047fed96364019f62eeea50adcf4e38657 SHA512 951622698f92844151f105821e1cf5bbe4fd71de5a2ac89a2310c6de80afe34528642c65d12dd4331085e1c23ba3887607bbd6185644c740cbf135c869881a33 -DIST xz-cve-2025-31115.patch.sig 566 BLAKE2B d6d4bad23ceaec55b6db04a4454885900f961dd6346c112cb97906e2403b718790e3f893d2502ba67ac1a08832478051ea480bdcf339bbf89d0edd13f40a47b4 SHA512 4002472637389c265fbe0f2ad7d80fe29a79bc4d8c1778af76e7cfd29b80d86c3be947ebf620a282494f45071f61534e385c5bed2192e6095ec2fc1338c31ccb +DIST xz-5.8.3.tar.gz 2771455 BLAKE2B ea52b817b81416e3055fdf7fa1c7691b35a42d4e07d8c568fe43638dcc40849487f39614ef9f6a2122a6094ff985bc6355e5ea60665acff90c056df511b5958b SHA512 bd77164795b5cbfbe864f64021e67e37f39cb9aba9abdd894d53fbb6857abe074923808918d1dc3bb0706253e726b2b9704cd0c3bc744d70e220c7356fa4995e +DIST xz-5.8.3.tar.gz.sig 566 BLAKE2B 378d5efff744211896f5045c3dc5d7f32fe6d5416b879994b5a404913d77df23371c14b3b9e83968a3c444ca9784774259cac6df0a407d8c8d5c92c8ed274641 SHA512 83fc4f00564134a15b7368d566042cea2992c94639ffdc19b8addab144c6413a1d59b1d9dee31c947368b5779537b2a9539bfa59cd6d40ea3fb487a18c0b5bc9 diff --git a/sdk_container/src/third_party/portage-stable/app-arch/xz-utils/xz-utils-5.6.4-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/xz-utils/xz-utils-5.6.4-r2.ebuild deleted file mode 100644 index ace89c53efb..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-arch/xz-utils/xz-utils-5.6.4-r2.ebuild +++ /dev/null @@ -1,215 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Remember: we cannot leverage autotools in this ebuild in order -# to avoid circular deps with autotools - -EAPI=8 - -inherit dot-a flag-o-matic libtool multilib multilib-minimal preserve-libs toolchain-funcs - -if [[ ${PV} == 9999 ]] ; then - # Per tukaani.org, git.tukaani.org is a mirror of github and - # may be behind. - EGIT_REPO_URI=" - https://github.com/tukaani-project/xz - https://git.tukaani.org/xz.git - " - inherit git-r3 autotools - - # bug #272880 and bug #286068 - BDEPEND="sys-devel/gettext >=dev-build/libtool-2" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/lassecollin.asc - inherit verify-sig - - MY_P="${PN/-utils}-${PV/_}" - SRC_URI=" - https://github.com/tukaani-project/xz/releases/download/v${PV/_}/${MY_P}.tar.gz - https://downloads.sourceforge.net/lzmautils/${MY_P}.tar.gz - https://tukaani.org/xz/${MY_P}.tar.gz - https://tukaani.org/xz/xz-cve-2025-31115.patch - verify-sig? ( - https://github.com/tukaani-project/xz/releases/download/v${PV/_}/${MY_P}.tar.gz.sig - https://tukaani.org/xz/${MY_P}.tar.gz.sig - https://tukaani.org/xz/xz-cve-2025-31115.patch.sig - ) - " - - if [[ ${PV} != *_alpha* && ${PV} != *_beta* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" - fi - - S="${WORKDIR}/${MY_P}" -fi - -DESCRIPTION="Utils for managing LZMA compressed files" -HOMEPAGE="https://tukaani.org/xz/" - -# See top-level COPYING file as it outlines the various pieces and their licenses. -LICENSE="0BSD LGPL-2.1+ GPL-2+ doc? ( CC-BY-SA-4.0 )" -SLOT="0" -IUSE="cpu_flags_arm_crc32 doc +extra-filters pgo nls static-libs" - -if [[ ${PV} != 9999 ]] ; then - BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-lassecollin-20250313 )" -fi - -PATCHES=( - "${DISTDIR}"/xz-cve-2025-31115.patch -) - -src_prepare() { - default - - if [[ ${PV} == 9999 ]] ; then - eautopoint - eautoreconf - else - # Allow building shared libs on Solaris/x64 - elibtoolize - fi -} - -src_configure() { - use static-libs && lto-guarantee-fat - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --enable-threads - $(multilib_native_use_enable doc) - $(use_enable nls) - $(use_enable static-libs static) - $(use_enable cpu_flags_arm_crc32 arm64-crc32) - ) - - if ! multilib_is_native_abi ; then - myconf+=( - --disable-{xz,xzdec,lzmadec,lzmainfo,lzma-links,scripts} - ) - fi - - if ! use extra-filters ; then - myconf+=( - # LZMA1 + LZMA2 for standard .lzma & .xz files - --enable-encoders=lzma1,lzma2 - --enable-decoders=lzma1,lzma2 - - # those are used by default, depending on preset - --enable-match-finders=hc3,hc4,bt4 - - # CRC64 is used by default, though 7-Zip uses CRC32 by default. - # Also, XZ Embedded in Linux doesn't support CRC64, so - # kernel modules and friends are CRC32. - --enable-checks=crc32,crc64 - ) - fi - - if [[ ${CHOST} == *-solaris* ]] ; then - export gl_cv_posix_shell="${EPREFIX}"/bin/sh - - # Undo Solaris-based defaults pointing to /usr/xpg4/bin - myconf+=( --disable-path-for-script ) - fi - - ECONF_SOURCE="${S}" econf "${myconf[@]}" -} - -multilib_src_compile() { - # -fprofile-partial-training because upstream note the test suite isn't super comprehensive - # TODO: revisit that now we have the tar/xz loop below? - # See https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo - local pgo_generate_flags=$(usev pgo "-fprofile-update=atomic -fprofile-dir=${T}/${ABI}-pgo -fprofile-generate=${T}/${ABI}-pgo $(test-flags-CC -fprofile-partial-training)") - local pgo_use_flags=$(usev pgo "-fprofile-use=${T}/${ABI}-pgo -fprofile-dir=${T}/${ABI}-pgo $(test-flags-CC -fprofile-partial-training)") - - emake CFLAGS="${CFLAGS} ${pgo_generate_flags}" - - if use pgo ; then - emake CFLAGS="${CFLAGS} ${pgo_generate_flags}" -k check - - local tar_pgo_args=() - - if has_version -b "app-alternatives/tar[gnu]" ; then - tar_pgo_args+=( - --mtime=@2718281828 - --sort=name - ) - fi - - if multilib_is_native_abi ; then - ( - shopt -s globstar - - tar \ - "${tar_pgo_args[@]}" \ - -cf xz-pgo-test-01.tar \ - {"${S}","${BUILD_DIR}"}/**/*.[cho] \ - {"${S}","${BUILD_DIR}"}/**/.libs/* \ - {"${S}","${BUILD_DIR}"}/**/**.txt \ - {"${S}","${BUILD_DIR}"}/tests/files - - stat --printf="xz-pgo-test-01.tar.tar size: %s\n" xz-pgo-test-01.tar || die - md5sum xz-pgo-test-01.tar || die - ) - - local test_variants=( - # Borrowed from ALT Linux - # https://packages.altlinux.org/en/sisyphus/srpms/xz/specfiles/#line-80 - '-0 -C none' - '-2 -C crc32' - "$(usev extra-filters '-6 --arm --lzma2 -C crc64')" - "$(usev extra-filters '-6 --x86 --lzma2=lc=4 -C sha256')" - '-7e --format=lzma' - - # Our own variants - '' - '-e' - "$(usev extra-filters '--x86 --lzma2=preset=6e')" - ) - local test_variant - for test_variant in "${test_variants[@]}" ; do - einfo "Testing '${test_variant}' variant" - "${BUILD_DIR}"/src/xz/xz -c ${test_variant} xz-pgo-test-01.tar | "${BUILD_DIR}"/src/xz/xz -c -d - > /dev/null - assert "Testing '${test_variant}' variant failed" - done - fi - - if tc-is-clang; then - llvm-profdata merge "${T}"/${ABI}-pgo --output="${T}"/${ABI}-pgo/default.profdata || die - fi - - emake clean - emake CFLAGS="${CFLAGS} ${pgo_use_flags}" - fi -} - -multilib_src_install() { - default - - # bug #934370 and bug #450436 (and bug #934515) - if ! tc-is-static-only && [[ ! -f "${ED}/usr/$(get_libdir)/liblzma$(get_libname)" ]] ; then - eerror "Sanity check for liblzma$(get_libname) failed." - eerror "Shared library wasn't built, possible libtool bug" - [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && die "liblzma$(get_libname) not found in build, aborting" - fi -} - -multilib_src_install_all() { - strip-lto-bytecode - - find "${ED}" -type f -name '*.la' -delete || die - - if use doc ; then - rm "${ED}"/usr/share/doc/${PF}/COPYING* || die - fi -} - -pkg_preinst() { - preserve_old_lib /usr/$(get_libdir)/liblzma$(get_libname 0) -} - -pkg_postinst() { - preserve_old_lib_notify /usr/$(get_libdir)/liblzma$(get_libname 0) -} diff --git a/sdk_container/src/third_party/portage-stable/app-arch/xz-utils/xz-utils-5.8.1-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/xz-utils/xz-utils-5.8.1-r1.ebuild deleted file mode 100644 index bd7a75e47f8..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-arch/xz-utils/xz-utils-5.8.1-r1.ebuild +++ /dev/null @@ -1,212 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Remember: we cannot leverage autotools in this ebuild in order -# to avoid circular deps with autotools - -EAPI=8 - -inherit dot-a flag-o-matic libtool multilib multilib-minimal preserve-libs toolchain-funcs - -if [[ ${PV} == 9999 ]] ; then - # Per tukaani.org, git.tukaani.org is a mirror of github and - # may be behind. - EGIT_REPO_URI=" - https://github.com/tukaani-project/xz - https://git.tukaani.org/xz.git - " - inherit git-r3 autotools - - # bug #272880 and bug #286068 - BDEPEND="sys-devel/gettext >=dev-build/libtool-2" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/lassecollin.asc - inherit verify-sig - - MY_P="${PN/-utils}-${PV/_}" - SRC_URI=" - https://github.com/tukaani-project/xz/releases/download/v${PV/_}/${MY_P}.tar.gz - https://downloads.sourceforge.net/lzmautils/${MY_P}.tar.gz - https://tukaani.org/xz/${MY_P}.tar.gz - verify-sig? ( - https://github.com/tukaani-project/xz/releases/download/v${PV/_}/${MY_P}.tar.gz.sig - https://tukaani.org/xz/${MY_P}.tar.gz.sig - ) - " - - if [[ ${PV} != *_alpha* && ${PV} != *_beta* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" - fi - - S="${WORKDIR}/${MY_P}" -fi - -DESCRIPTION="Utils for managing LZMA compressed files" -HOMEPAGE="https://tukaani.org/xz/" - -# See top-level COPYING file as it outlines the various pieces and their licenses. -LICENSE="0BSD LGPL-2.1+ GPL-2+ doc? ( CC-BY-SA-4.0 )" -SLOT="0" -IUSE="cpu_flags_arm_crc32 doc +extra-filters pgo nls static-libs" - -if [[ ${PV} != 9999 ]] ; then - BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-lassecollin-20250313 )" -fi - -src_prepare() { - default - - if [[ ${PV} == 9999 ]] ; then - eautopoint - eautoreconf - else - # Allow building shared libs on Solaris/x64 - elibtoolize - fi -} - -src_configure() { - use static-libs && lto-guarantee-fat - - append-ldflags $(test-flags-CCLD -Wl,--undefined-version) - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --enable-threads - $(multilib_native_use_enable doc) - $(use_enable nls) - $(use_enable static-libs static) - $(use_enable cpu_flags_arm_crc32 arm64-crc32) - ) - - if ! multilib_is_native_abi ; then - myconf+=( - --disable-{xz,xzdec,lzmadec,lzmainfo,lzma-links,scripts} - ) - fi - - if ! use extra-filters ; then - myconf+=( - # LZMA1 + LZMA2 for standard .lzma & .xz files - --enable-encoders=lzma1,lzma2 - --enable-decoders=lzma1,lzma2 - - # those are used by default, depending on preset - --enable-match-finders=hc3,hc4,bt4 - - # CRC64 is used by default, though 7-Zip uses CRC32 by default. - # Also, XZ Embedded in Linux doesn't support CRC64, so - # kernel modules and friends are CRC32. - --enable-checks=crc32,crc64 - ) - fi - - if [[ ${CHOST} == *-solaris* ]] ; then - export gl_cv_posix_shell="${EPREFIX}"/bin/sh - - # Undo Solaris-based defaults pointing to /usr/xpg4/bin - myconf+=( --disable-path-for-script ) - fi - - ECONF_SOURCE="${S}" econf "${myconf[@]}" -} - -multilib_src_compile() { - # -fprofile-partial-training because upstream note the test suite isn't super comprehensive - # TODO: revisit that now we have the tar/xz loop below? - # See https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo - local pgo_generate_flags=$(usev pgo "-fprofile-update=atomic -fprofile-dir=${T}/${ABI}-pgo -fprofile-generate=${T}/${ABI}-pgo $(test-flags-CC -fprofile-partial-training)") - local pgo_use_flags=$(usev pgo "-fprofile-use=${T}/${ABI}-pgo -fprofile-dir=${T}/${ABI}-pgo $(test-flags-CC -fprofile-partial-training)") - - emake CFLAGS="${CFLAGS} ${pgo_generate_flags}" - - if use pgo ; then - emake CFLAGS="${CFLAGS} ${pgo_generate_flags}" -k check - - local tar_pgo_args=() - - if has_version -b "app-alternatives/tar[gnu]" ; then - tar_pgo_args+=( - --mtime=@2718281828 - --sort=name - ) - fi - - if multilib_is_native_abi ; then - ( - shopt -s globstar - - tar \ - "${tar_pgo_args[@]}" \ - -cf xz-pgo-test-01.tar \ - {"${S}","${BUILD_DIR}"}/**/*.[cho] \ - {"${S}","${BUILD_DIR}"}/**/.libs/* \ - {"${S}","${BUILD_DIR}"}/**/**.txt \ - {"${S}","${BUILD_DIR}"}/tests/files - - stat --printf="xz-pgo-test-01.tar.tar size: %s\n" xz-pgo-test-01.tar || die - md5sum xz-pgo-test-01.tar || die - ) - - local test_variants=( - # Borrowed from ALT Linux - # https://packages.altlinux.org/en/sisyphus/srpms/xz/specfiles/#line-80 - '-0 -C none' - '-2 -C crc32' - "$(usev extra-filters '-6 --arm --lzma2 -C crc64')" - "$(usev extra-filters '-6 --x86 --lzma2=lc=4 -C sha256')" - '-7e --format=lzma' - - # Our own variants - '' - '-e' - "$(usev extra-filters '--x86 --lzma2=preset=6e')" - ) - local test_variant - for test_variant in "${test_variants[@]}" ; do - einfo "Testing '${test_variant}' variant" - "${BUILD_DIR}"/src/xz/xz -c ${test_variant} xz-pgo-test-01.tar | "${BUILD_DIR}"/src/xz/xz -c -d - > /dev/null - assert "Testing '${test_variant}' variant failed" - done - fi - - if tc-is-clang; then - llvm-profdata merge "${T}"/${ABI}-pgo --output="${T}"/${ABI}-pgo/default.profdata || die - fi - - emake clean - emake CFLAGS="${CFLAGS} ${pgo_use_flags}" - fi -} - -multilib_src_install() { - default - - # bug #934370 and bug #450436 (and bug #934515) - if ! tc-is-static-only && [[ ! -f "${ED}/usr/$(get_libdir)/liblzma$(get_libname)" ]] ; then - eerror "Sanity check for liblzma$(get_libname) failed." - eerror "Shared library wasn't built, possible libtool bug" - [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && die "liblzma$(get_libname) not found in build, aborting" - fi -} - -multilib_src_install_all() { - strip-lto-bytecode - - find "${ED}" -type f -name '*.la' -delete || die - - if use doc ; then - rm "${ED}"/usr/share/doc/${PF}/COPYING* || die - fi -} - -pkg_preinst() { - preserve_old_lib /usr/$(get_libdir)/liblzma$(get_libname 0) -} - -pkg_postinst() { - preserve_old_lib_notify /usr/$(get_libdir)/liblzma$(get_libname 0) -} diff --git a/sdk_container/src/third_party/portage-stable/app-arch/xz-utils/xz-utils-5.8.2.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/xz-utils/xz-utils-5.8.3.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/app-arch/xz-utils/xz-utils-5.8.2.ebuild rename to sdk_container/src/third_party/portage-stable/app-arch/xz-utils/xz-utils-5.8.3.ebuild diff --git a/sdk_container/src/third_party/portage-stable/app-cdr/cdrtools/cdrtools-3.02_alpha09-r5.ebuild b/sdk_container/src/third_party/portage-stable/app-cdr/cdrtools/cdrtools-3.02_alpha09-r5.ebuild index 6eca1f70867..6be8f567ad6 100644 --- a/sdk_container/src/third_party/portage-stable/app-cdr/cdrtools/cdrtools-3.02_alpha09-r5.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-cdr/cdrtools/cdrtools-3.02_alpha09-r5.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -295,7 +295,7 @@ src_install() { dodoc ChangeLog* TODO # Remove man pages related to the build system - rm -rvf "${ED}"/usr/share/man/man5 || die + rm -r "${ED}"/usr/share/man/man5 || die } pkg_postinst() { diff --git a/sdk_container/src/third_party/portage-stable/app-containers/aardvark-dns/Manifest b/sdk_container/src/third_party/portage-stable/app-containers/aardvark-dns/Manifest index 288ced818b5..9d55d9815e7 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/aardvark-dns/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-containers/aardvark-dns/Manifest @@ -1,4 +1,6 @@ DIST aardvark-dns-1.15.0.crate 59884 BLAKE2B 6be0126b526359b1c402a6f10cfe9b28b9d351621b0f1e9556150fb2477a2c468938dbac1c11bde3eff6deb258ccfa6ed05e6f2a01206d3e08f1e88193016432 SHA512 963d68a662439ea920fbeec08eaa3b9fb486f5e61e46b702b0c9211241c3b1057ce573bac1f75ed558faa0cc99b0f36b7f5299c296e30b6ce6ed046a02cd9782 DIST aardvark-dns-1.17.0.crate 62370 BLAKE2B 7105e4c96e973d6cbda48d7db957423a0743330c53fd694be14951b85ba162624ffa3d96d6737856d7e5d39910a26403a4ab11e912317d6449a85642c8c5d236 SHA512 f8cc4f39b9a16106a7fbe08c94558507e0519018709ceb80474696be24328626f76aedf9bdd12c853be0728f4e9c57e945b442e7f66c22042e25410a690b69e0 +DIST aardvark-dns-1.17.1.crate 62779 BLAKE2B 487b8de4d01df37ca8eef8b911f8231db1df4417a61b921e1c109661af0270115b8941d56493a468a6ecd58174c0074a5c8687c8d4ae6d21bfc028efae45d663 SHA512 eee8ecd47626093dd2f0a60f862593c035efc87fd4ba9fc209c93f75ca624300bc70ecc11a3828198eb36ff97ab0bb32ba090c0708793279117793876ede47a3 DIST aardvark-dns-v1.15.0-vendor.tar.gz 9910590 BLAKE2B 876be4b719cf7d364dbd8ce04a3984d32b24dfba81ece1ce56d1f3e3f80f2607eefd77ff7dece2a678240b1f996cb498ae81f1be06c8f7eaa696eb6001090e4b SHA512 fbe6e77a2d412ed34bcf2c710db3aa8989a5887ab475988c393fb1c49584cac5b09a34b82e880eebe81c59af7817985af87391ffb8421da07abf080704cae5c0 DIST aardvark-dns-v1.17.0-vendor.tar.gz 10267613 BLAKE2B 72b5da08584c5a35188d50646ec98b6463578b09520121224807e3770d6e911b12f61597ca5852be75a8e9de9ade02d507f490ff3a414e681fe31076930dde78 SHA512 b7ec2a2a34d5bb36dbcc55611dc9ec0ff2c1bed4469cc4b12d4eb0bd78bb7d6cae6f80a02ac32ade5c435fdd11e22ddd99646aa4de504c8369ee56cfa470e6a5 +DIST aardvark-dns-v1.17.1-vendor.tar.gz 10267576 BLAKE2B 984a27b5dbd773d9fa2db7123e8bd16f59407249caa1ab203d76bd1626b63e7bbadcf9a32e46b087d8cbb38442e7203bd810ce8d45c988e24c3237ea282def0a SHA512 ce6768f90a731a55511fdb78f8048ed3c5ff4b058d3edfc7832430330a239b58b6250851c6a268706f24b4fc94f47afd6ce4c1e4cbb1132e0dc7a2d0127d62ff diff --git a/sdk_container/src/third_party/portage-stable/app-containers/aardvark-dns/aardvark-dns-1.17.1.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/aardvark-dns/aardvark-dns-1.17.1.ebuild new file mode 100644 index 00000000000..7eae965ad9c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-containers/aardvark-dns/aardvark-dns-1.17.1.ebuild @@ -0,0 +1,49 @@ +# Copyright 2023-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +RUST_MIN_VER="1.88.0" +[[ ${PV} == 9999* ]] || CRATES="${PN}@${PV}" +inherit cargo + +DESCRIPTION="A container-focused DNS server" +HOMEPAGE="https://github.com/containers/aardvark-dns" + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/containers/aardvark-dns.git" +else + SRC_URI="${CARGO_CRATE_URIS}" + SRC_URI+="https://github.com/containers/aardvark-dns/releases/download/v${PV}/${PN}-v${PV}-vendor.tar.gz" + KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv" +fi + +# main +LICENSE="Apache-2.0" +# deps +LICENSE+=" 0BSD Apache-2.0-with-LLVM-exceptions MIT Unlicense Unicode-DFS-2016 ZLIB" +SLOT="0" + +QA_FLAGS_IGNORED="usr/libexec/podman/${PN}" +QA_PRESTRIPPED="usr/libexec/podman/${PN}" +ECARGO_VENDOR="${WORKDIR}/vendor" + +src_unpack() { + if [[ ${PV} == 9999* ]]; then + git-r3_src_unpack + cargo_live_src_unpack + else + cargo_src_unpack + fi +} + +src_prepare() { + default + sed -i -e "s|m0755 bin|m0755 $(cargo_target_dir)|g;" Makefile || die +} + +src_install() { + local -x PREFIX="${EPREFIX}"/usr + default +} 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 6098efd1386..256ddb7b885 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 @@ -9,3 +9,4 @@ DIST containerd-2.1.4.tar.gz 10614131 BLAKE2B b8f4007b4bb368a1fa04c913d606f65d2e DIST containerd-2.1.5.tar.gz 10622156 BLAKE2B b612e9606554d492f59d4665dcbd85b0fdfa3316ecff3a2122357f8d8ef68991a2b77c367e3a7143efb768e9a78ee82ace9ffdc0832a9eb4ec37e98b0f827840 SHA512 6376228edf615b1ff3d40287622d4f72793be091d59d5d7e97f7bdc4f265aa4412f4a5dd1937ef795e54aa5ee8a87d785e859d7c6525a25fa86631b878cefc59 DIST containerd-2.2.0.tar.gz 11475770 BLAKE2B 154d7d547d52925ff46431cea20db38dc72ec87ef90fd112472cb3ec7f2ebd8cfb121f98a3bc3870f8452473b35c3e1c84671b9fc31347f98259b34a70e740f9 SHA512 3121a1e0401e0283ff9d8454e945b427bcb0214e7e67271815117cb82dee1488c4d963c2193eb9c0ab5d395dd2e2705975ac31ce3e400264933d05d62fd0faac DIST containerd-2.2.1.tar.gz 11492859 BLAKE2B 5ee7a5388ec5a247a530be505068162318505741e77ab2a103ba8a33c3e76fbac55a64504429f9c636e41cb4826e1acc6b7f817398928a0d6b8ebd94797b8b7b SHA512 6bbfe356bdb0fd70c5b3ca0d932b790bb34b40832392e6a309a907351dc344e3b6059e2cd583145200aab218b4e8f5160d698f2b3a84d05bbf834d023eea4bd3 +DIST containerd-2.2.2.tar.gz 11531809 BLAKE2B 6605d5d2de275c9485dd92d4e56fc87853a4fe45cdc78e0a5f7d5178525f6e6925ea765e29bf3a4891dc318062a7577c7628fd63df451a2ba404852e0b5f0224 SHA512 4471047360cd1430a189829a74d605dbe89abe092f0e0ba53ad5954269f253c7c277b8097c5d12acb9e0592a39e50e1808c92e73596e3d2d97cf945f15063ca0 diff --git a/sdk_container/src/third_party/portage-stable/app-containers/containerd/containerd-2.2.2.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/containerd/containerd-2.2.2.ebuild new file mode 100644 index 00000000000..d0ccce75887 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-containers/containerd/containerd-2.2.2.ebuild @@ -0,0 +1,81 @@ +# Copyright 2022-2026 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=301b2dac98f15c27117da5c8af12118a041a31d9 + +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 +seccomp selinux test" +# tests require root or docker +RESTRICT="test" + +DEPEND=" + btrfs? ( sys-fs/btrfs-progs ) + seccomp? ( sys-libs/libseccomp ) +" +# recommended minimum version of runc is found in script/setup/runc-version +RDEPEND="${DEPEND} + >=app-containers/runc-1.3.4[apparmor?,seccomp?] +" +BDEPEND=" + dev-go/go-md2man + virtual/pkgconfig +" + +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) + ) + + local myemakeargs=( + BUILDTAGS="${options[*]}" + REVISION="${GIT_REVISION}" + VERSION=v${PV} + ) + + emake "${myemakeargs[@]}" all + + # race condition in man target https://bugs.gentoo.org/765100 + tc-env_build go-env_run emake "${myemakeargs[@]}" man -j1 #nowarn +} + +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/cri-tools/Manifest b/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/Manifest index f5d4cefaa7d..7738b760a47 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/Manifest @@ -1,3 +1,2 @@ -DIST cri-tools-1.27.0.tar.gz 8465050 BLAKE2B d6c0429271ebc4085e75b54d7f3b9f75ab796e63bc9ae7562105296b13bbad8b512293a7d25abf1ab946f4bf54e672016fdb72696c12c730d21ac74724da465c SHA512 b94122e6401eb0c33b9c3d112274b7ab20cbbad05e76a54933e79d2e42ded2d684771cb9ed703a6c1afa381844142b6f1b4dc77d17e915f9a42c236fd8426b9b -DIST cri-tools-1.32.0.tar.gz 7682096 BLAKE2B 125fc9014942e681353ef49d4d397af4fc77500c0fb37d2d1be0850839c37f51f2ef41b5c7d9ca422e814d1fe50f985bfd42d2bba11d391cea66b3bec381dc08 SHA512 654cfd4d546932d48c02e19071e137fa7565a5134ba1845498d61f2dfef45fca722a51dbadb7a467214f7424290c53cb79a2908684d1fbd3820836b55640f66d DIST cri-tools-1.33.0.tar.gz 7754304 BLAKE2B 42011726997a07842fd3c9769335a71e37e1689e443a0d1a99916b5729cc22092593928a6b94bbc3718a0e5f89f3818c3b6d6155970de21e8eee30fc979a294d SHA512 0252243147e32e06328c192f77397461a729aec621bee92083dcf3899e9ffbb62386a944795535cc4a0deb5c88d1017082db8bf221f6627feb7dcd100dc70457 +DIST cri-tools-1.35.0.tar.gz 8074824 BLAKE2B a91dcfc326857e0dc43867189f0c2fac2a12ce112a4439eba61cfe655fba1dec455a3070bd5068cf4934487bf94255cd60197c3f7fd4aa20465ebb1bd4f63b7c SHA512 ea34e736b457f851b610e8091ebbb608ac0f790c80156ad3e1a7080c76df4ea759091300b7ee6b5812a42ec93e165d71b6fa06f12424f46b4b181f5059b100bb diff --git a/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/cri-tools-1.27.0.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/cri-tools-1.27.0.ebuild deleted file mode 100644 index ae910c91f75..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/cri-tools-1.27.0.ebuild +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 2021-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit bash-completion-r1 go-module - -DESCRIPTION="CLI and validation tools for Kubelet Container Runtime (CRI)" -HOMEPAGE="https://github.com/kubernetes-sigs/cri-tools" -SRC_URI="https://github.com/kubernetes-sigs/cri-tools/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0" -SLOT="0" -KEYWORDS="amd64 ~arm64" -RESTRICT="test" - -DOCS=( docs {README,RELEASE,CHANGELOG,CONTRIBUTING}.md ) - -src_compile() { - emake VERSION="${PV}" - find build/ -name crictl -exec cp {} build/bin/ \; || die - ./build/bin/crictl completion bash > "crictl.bash" || die - ./build/bin/crictl completion zsh > "crictl.zsh" || die -} - -src_install() { - einstalldocs - - dobin ./build/bin/crictl - newbashcomp crictl.bash crictl - insinto /usr/share/zsh/site-functions - newins crictl.zsh _crictl -} diff --git a/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/cri-tools-1.32.0.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/cri-tools-1.32.0.ebuild deleted file mode 100644 index ef3ccb4859b..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/cri-tools-1.32.0.ebuild +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 2021-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit bash-completion-r1 go-module - -DESCRIPTION="CLI and validation tools for Kubelet Container Runtime (CRI)" -HOMEPAGE="https://github.com/kubernetes-sigs/cri-tools" -SRC_URI="https://github.com/kubernetes-sigs/cri-tools/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0" -SLOT="0" -KEYWORDS="amd64 ~arm64" -RESTRICT="test" - -DOCS=( docs {README,RELEASE,CHANGELOG,CONTRIBUTING}.md ) - -src_compile() { - emake VERSION="${PV}" - find build/ -name crictl -exec cp {} build/bin/ \; || die - ./build/bin/crictl completion bash > "crictl.bash" || die - ./build/bin/crictl completion zsh > "crictl.zsh" || die -} - -src_install() { - einstalldocs - - dobin ./build/bin/crictl - newbashcomp crictl.bash crictl - insinto /usr/share/zsh/site-functions - newins crictl.zsh _crictl -} diff --git a/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/cri-tools-1.33.0.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/cri-tools-1.33.0.ebuild index f6e80fa3239..5248a34ec7c 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/cri-tools-1.33.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/cri-tools-1.33.0.ebuild @@ -14,6 +14,12 @@ SLOT="0" KEYWORDS="amd64 ~arm64" RESTRICT="test" +BDEPEND=">=dev-lang/go-1.24.1" + +PATCHES=( + "${FILESDIR}"/${PN}-goflags.patch +) + DOCS=( docs {README,RELEASE,CHANGELOG,CONTRIBUTING}.md ) src_compile() { diff --git a/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/cri-tools-1.35.0.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/cri-tools-1.35.0.ebuild new file mode 100644 index 00000000000..883e4f074b6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/cri-tools-1.35.0.ebuild @@ -0,0 +1,39 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-env go-module shell-completion sysroot + +DESCRIPTION="CLI and validation tools for Kubelet Container Runtime (CRI)" +HOMEPAGE="https://github.com/kubernetes-sigs/cri-tools" +SRC_URI="https://github.com/kubernetes-sigs/cri-tools/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64" +RESTRICT="test" + +BDEPEND=">=dev-lang/go-1.26.2" + +PATCHES=( + "${FILESDIR}"/${PN}-goflags.patch +) + +DOCS=( docs {README,RELEASE,CHANGELOG,CONTRIBUTING}.md ) + +src_compile() { + CRICTL="build/bin/${GOOS}/${GOARCH}/crictl" + emake VERSION="${PV}" + + sysroot_try_run_prefixed "${CRICTL}" completion bash > crictl.bash || die + sysroot_try_run_prefixed "${CRICTL}" completion zsh > crictl.zsh || die +} + +src_install() { + einstalldocs + dobin "${CRICTL}" + + [[ -s crictl.bash ]] && newbashcomp crictl.bash crictl + [[ -s crictl.zsh ]] && newzshcomp crictl.zsh _crictl +} diff --git a/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/files/cri-tools-goflags.patch b/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/files/cri-tools-goflags.patch new file mode 100644 index 00000000000..63c68ec2ac9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-containers/cri-tools/files/cri-tools-goflags.patch @@ -0,0 +1,44 @@ +From a1fa6b1f1d54c0739c5940e4da0b9153b3455db3 Mon Sep 17 00:00:00 2001 +From: James Le Cuirot +Date: Mon, 13 Apr 2026 11:20:12 +0100 +Subject: [PATCH] Makefile: Don't explicitly pass GOFLAGS to go commands + +go automatically checks GOFLAGS and filters unknown flags for you, e.g. +it will drop the go run -exec flag when doing go build. Explicitly +passing GOFLAGS breaks this filtering. + +Signed-off-by: James Le Cuirot +--- a/Makefile ++++ b/Makefile +@@ -38,6 +38,7 @@ VERSION ?= $(shell git describe --tags --dirty --always | sed 's/^v//') + CGO_ENABLED ?= 0 + GOFLAGS ?= -trimpath + GO_LDFLAGS := $(GO_LDFLAGS) -X $(PROJECT)/pkg/version.Version=$(VERSION) ++export GOFLAGS + + BUILD_PATH := $(shell pwd)/build + BUILD_BIN_PATH := $(BUILD_PATH)/bin/$(GOOS)/$(GOARCH) +@@ -100,7 +101,6 @@ critest: ## Build the critest binary. + $(CRITEST): + CGO_ENABLED=$(CGO_ENABLED) $(GO_TEST) -c -o $@ \ + -ldflags '$(GO_LDFLAGS)' \ +- $(GOFLAGS) \ + $(PROJECT)/cmd/critest + + .PHONY: crictl +@@ -110,7 +110,6 @@ crictl: ## Build the crictl binary. + $(CRICTL): + CGO_ENABLED=$(CGO_ENABLED) $(GO_BUILD) -o $@ \ + -ldflags '$(GO_LDFLAGS)' \ +- $(GOFLAGS) \ + $(PROJECT)/cmd/crictl + + .PHONY: clean +@@ -200,7 +199,6 @@ test-crictl: $(GINKGO) ## Run the crictl test suite. + # Run go test for templates_test.go and util_test.go + CGO_ENABLED=$(CGO_ENABLED) $(GO_TEST) \ + -ldflags '$(GO_LDFLAGS)' \ +- $(GOFLAGS) \ + $(PROJECT)/cmd/crictl + $(GINKGO) $(TESTFLAGS) \ + -r -p \ 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 8cd8f5ef98c..b8084d727d4 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 @@ -6,3 +6,7 @@ DIST incus-6.21.tar.xz 13298940 BLAKE2B ae898643c02e4e4ba41d7c9326ff67fdaed21f05 DIST incus-6.21.tar.xz.asc 833 BLAKE2B 14aad1deb9976528e0e75426cb46017525fba5f1a728dc34192e0defd417bf93f20fd12ef4005c7111a9be6891af1ff077f34abab9b824451b938ea7d1e92026 SHA512 6baaf74e7f4eb16fcd183ab435235b491081afa35f94b86ea63d4ac51aa63fe0a10f2aa493987c261664c8ef7fdcb2ed09e7265c5bf063e828b40d3618fd4f8c DIST incus-6.22.tar.xz 13452548 BLAKE2B d55cde93ae4b0893eba177711e067c62101d29d9d65a6af043e301b9a6389d1d4ea3027365879777cb3d6cd4044e24d1bdfc044c55be632e25fa5d3ce51b91a7 SHA512 4c945a9ca7ecbbc0f833fb2b768f23ee79b4f3c0975ad6afe1f1887418adcd246c4b6c029238c5447930e2dcf675942552e4d8d33222417e4fef1f5e4b43a849 DIST incus-6.22.tar.xz.asc 833 BLAKE2B 628281aa44f521f44bc8e22725793b656a8b662f2a2ada724fb8b17b99352ab6d46ad85b99319840166d6c45ede11d72b2e69c535fd769411c5c750e30367ba5 SHA512 57dd75642f9875800da09b18995dac60e97f441caa82272fe22bff8120c412f646fae81e0d9e63996bb6945c5ebc2ce4ab820372337e36e04e3f2de4ccb0fe1a +DIST incus-6.23.tar.xz 13510328 BLAKE2B c9c433e32e301518c92dd1ab570871d3a0cf623528ea6ed59c194a4a622f8fa09a98be384b8f52d15b66513e8bdad9258ac586a630e2474002b60773a3fe4bb9 SHA512 1080eb0b6571c6fec8169ee6338feab9020bc2d5cf12bc258532b5d9a0ee3f25118ad73e0eb4fba202dd6ab4c66bae73b8309caff6d5c18d2bbd295825b7b1e3 +DIST incus-6.23.tar.xz.asc 833 BLAKE2B 6f086c10b5bb6ca45f304e16caa76adbdf0a316b500283bcb15c2f4e4d0d86d2ddddba02d470481e3cacc47667c5e4a64db71df078225124eacdb4f2041d95b7 SHA512 1bf734d120b98d1758d900884975234cafa90e1602dcc29e89c8a34915058e2ae1fbe7bbca2f20e9e2018be161c9493786d70a8a46f769c0aee132c3b00548f8 +DIST incus-7.0.0.tar.xz 13911008 BLAKE2B 5906168618bf98434a270a4123cf62ce06d3ccf4a2b99f9d8e50df26dc12a495e479fa061c3c60d0ab3d74b35faf80d63c064904cda1768e097f2ce59e46585c SHA512 02c366a7f19c01e88578e7c2982633935fd8b53ebbf9a89ebab8290523341c5577b77dbf9a4c47db11558a4582d60ad370f34d706808d6f04bbb1675a5867444 +DIST incus-7.0.0.tar.xz.asc 833 BLAKE2B c2b0bf82f37487686fa6051818fbacf4ccac8a8121b467a9c92963c0dce8d9297cd3bf6612c19b180fb944d96ec349bd3e50eb1279b0e75fcb49f4fe2a3cc94d SHA512 4a37b66a85c40242d66ac0ead4aef842b26138e010b880bd4367958ae1068c96d5cb82d8e875acce1c05cf6b53d4eae2f61bbfcbc87139df500e4e9cb9940721 diff --git a/sdk_container/src/third_party/portage-stable/app-containers/incus/files/incus-0.4.service b/sdk_container/src/third_party/portage-stable/app-containers/incus/files/incus-0.4.service deleted file mode 100644 index 17aea1de12b..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-containers/incus/files/incus-0.4.service +++ /dev/null @@ -1,22 +0,0 @@ -[Unit] -Description=Incus - main daemon -After=network-online.target lxcfs.service incus.socket -Requires=network-online.target lxcfs.service incus.socket - -[Service] -EnvironmentFile=-/etc/environment -ExecStart=/usr/sbin/incusd --group incus-admin --syslog -ExecStartPost=/usr/sbin/incusd waitready --timeout=600 -ExecStartPre=/bin/mkdir -p /var/log/incus -ExecStartPre=/bin/chown -R root:incus-admin /var/log/incus -KillMode=process -PermissionsStartOnly=true -TimeoutStartSec=600s -TimeoutStopSec=30s -Restart=on-failure -LimitNOFILE=1048576 -LimitNPROC=infinity -TasksMax=infinity - -[Install] -Also=incus-startup.service incus.socket diff --git a/sdk_container/src/third_party/portage-stable/app-containers/incus/files/incus-6.14-fix-qemu-memory-calculation-logic.patch b/sdk_container/src/third_party/portage-stable/app-containers/incus/files/incus-6.14-fix-qemu-memory-calculation-logic.patch deleted file mode 100644 index dea5b2dc147..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-containers/incus/files/incus-6.14-fix-qemu-memory-calculation-logic.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 60c8f084a7cb9e38b5003fc056538f6631609cb8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?St=C3=A9phane=20Graber?= -Date: Tue, 1 Jul 2025 21:24:04 -0400 -Subject: [PATCH] incusd/instance/qemu: Fix memory calculation logic -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This fixes another issue with the logic where a system with no detected -physical bits would cause a 0 value which would then be decreased, -leading to the maximum value possible of 1TB. - -Signed-off-by: Stéphane Graber ---- - internal/server/instance/drivers/driver_qemu.go | 7 ++----- - 1 file changed, 2 insertions(+), 5 deletions(-) - -diff --git a/internal/server/instance/drivers/driver_qemu.go b/internal/server/instance/drivers/driver_qemu.go -index 995d1d31ed5..2897226d930 100644 ---- a/internal/server/instance/drivers/driver_qemu.go -+++ b/internal/server/instance/drivers/driver_qemu.go -@@ -4183,11 +4183,8 @@ func (d *qemu) addCPUMemoryConfig(conf *[]cfg.Section, cpuType string, cpuInfo * - } - } - -- if cpuType == "host" && lowestPhysBits > 0 { -- // Line up cpuPhysBits with the lowest physical CPU value. -- cpuPhysBits = lowestPhysBits -- } else if lowestPhysBits < cpuPhysBits { -- // Reduce curPhysBits below the default of 39 if a physical CPU uses a lower value. -+ // If a physical address size was detected, either align it with the VM (CPU passthrough) or use it as an upper bound. -+ if lowestPhysBits > 0 && (cpuType == "host" || lowestPhysBits < cpuPhysBits) { - cpuPhysBits = lowestPhysBits - } - diff --git a/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-6.23.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-6.23.ebuild new file mode 100644 index 00000000000..ec2cb83449c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-6.23.ebuild @@ -0,0 +1,283 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-env go-module linux-info optfeature systemd toolchain-funcs verify-sig + +DESCRIPTION="Modern, secure and powerful system container and virtual machine manager" +HOMEPAGE="https://linuxcontainers.org/incus/introduction/ https://github.com/lxc/incus" + +if [[ "${PV}" == 9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/lxc/incus.git" +else + SRC_URI="https://linuxcontainers.org/downloads/incus/${P}.tar.xz + verify-sig? ( https://linuxcontainers.org/downloads/incus/${P}.tar.xz.asc )" + KEYWORDS="~amd64 ~arm64" +fi + +LICENSE="Apache-2.0 BSD LGPL-3 MIT" +SLOT="0/stable" +IUSE="apparmor fuidshift nls qemu selinux" + +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 + ) + selinux? ( sec-policy/selinux-incus )" +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() { + if [[ "${PV}" == 9999* ]]; then + git-r3_src_unpack + go-module_live_vendor + go-env_set_compile_environment + else + verify-sig_src_unpack + go-module_src_unpack + fi +} + +src_prepare() { + export GOPATH="${S}/_dist" + + default + + sed -i \ + -e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/incus:g" \ + -e "s:make:make ${MAKEOPTS}:g" \ + Makefile || die + + sed -i \ + -e "s:/usr/share/OVMF:/usr/share/edk2/OvmfX64:g" \ + -e "s:OVMF_VARS.ms.fd:OVMF_VARS.fd:g" \ + internal/server/instance/drivers/edk2/driver_edk2.go || die "Failed to fix hardcoded ovmf paths." + + cp "${FILESDIR}"/incus-6.14-r1.service "${T}"/incus.service || die + if use apparmor; then + sed -i \ + '/^EnvironmentFile=.*/a ExecStartPre=\/usr\/libexec\/lxc\/lxc-apparmor-load' \ + "${T}"/incus.service || die + fi + + # Disable -Werror's from go modules. + find "${S}" -name "cgo.go" -exec sed -i "s/ -Werror / /g" {} + || die +} + +src_configure() { :; } + +incus_get_bindir() { + local host_arch=${1} + if [[ "${GOARCH}" != "${host_arch}" ]]; then + echo "_dist/bin/linux_${GOARCH}" + else + echo "_dist/bin" + fi +} + +src_compile() { + export GOPATH="${S}/_dist" + export CGO_LDFLAGS_ALLOW="-Wl,-z,now" + + for k in incus-benchmark incus-simplestreams incus-user incus lxc-to-incus lxd-to-incus ; do + ego install -v -x "${S}/cmd/${k}" + done + + if use fuidshift ; then + ego install -v -x "${S}/cmd/fuidshift" + fi + + ego install -v -x -tags libsqlite3 "${S}"/cmd/incusd + + # Needs to be built statically + CGO_ENABLED=0 go install -v -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-migrate + + local bindir=$(incus_get_bindir "$(go-env_goarch "${CBUILD}")") + + # Build the VM agents, statically too + if use amd64 ; then + GOARCH=amd64 CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.linux.x86_64 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + GOARCH=386 CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.linux.i686 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + GOARCH=amd64 GOOS=windows CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.windows.x86_64 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + GOARCH=386 GOOS=windows CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.windows.i686 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + elif use arm64 ; then + GOARCH=arm64 CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.linux.aarch64 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + GOARCH=arm64 GOOS=windows CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.windows.aarch64 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + else + echo "No VM support for this arch." + return + fi + + use nls && emake build-mo +} + +src_test() { + emake check +} + +src_install() { + export GOPATH="${S}/_dist" + + export GOHOSTARCH=$(go-env_goarch "${CBUILD}") + local bindir=$(incus_get_bindir "${GOHOSTARCH}") + + newsbin "${FILESDIR}"/incus-startup-0.4.sh incus-startup + + # Admin tools + for l in incusd incus-user lxd-to-incus ; do + dosbin "${bindir}/${l}" + done + + # User tools + for m in incus-benchmark incus-migrate incus-simplestreams incus lxc-to-incus ; do + dobin "${bindir}/${m}" + done + + # VM Agents + if use amd64 ; then + exeinto /usr/libexec/incus/agents + doexe ${bindir}/incus-agent.linux.x86_64 + doexe ${bindir}/incus-agent.linux.i686 + doexe ${bindir}/incus-agent.windows.x86_64 + doexe ${bindir}/incus-agent.windows.i686 + elif use arm64 ; then + exeinto /usr/libexec/incus/agents + doexe ${bindir}/incus-agent.linux.aarch64 + doexe ${bindir}/incus-agent.windows.aarch64 + fi + + # fuidshift, should be moved under admin tools at some point + if use fuidshift ; then + dosbin ${bindir}/fuidshift + fi + + newconfd "${FILESDIR}"/incus-6.0.confd incus + newinitd "${FILESDIR}"/incus-6.0.initd incus + newinitd "${FILESDIR}"/incus-user-0.4.initd incus-user + + systemd_dounit "${T}"/incus.service + systemd_newunit "${FILESDIR}"/incus-0.4.socket incus.socket + systemd_newunit "${FILESDIR}"/incus-startup-0.4.service incus-startup.service + systemd_newunit "${FILESDIR}"/incus-user-0.4.service incus-user.service + systemd_newunit "${FILESDIR}"/incus-user-0.4.socket incus-user.socket + + if ! tc-is-cross-compiler; then + # Generate and install shell completion files. + mkdir -p "${D}"/usr/share/{bash-completion/completions/,fish/vendor_completions.d/,zsh/site-functions/} || die + "${bindir}"/incus completion bash > "${D}"/usr/share/bash-completion/completions/incus || die + "${bindir}"/incus completion fish > "${D}"/usr/share/fish/vendor_completions.d/incus.fish || die + "${bindir}"/incus completion zsh > "${D}"/usr/share/zsh/site-functions/_incus || die + else + ewarn "Shell completion files not installed! Install them manually with incus completion --help" + fi + + dodoc AUTHORS + dodoc -r doc/* + use nls && domo po/*.mo + + # Incus needs INCUS_EDK2_PATH in env to find OVMF files for virtual machines, #946184, + # and INCUS_AGENT_PATH to find multi-setup agents for VMs, #959878, + # and INCUS_SECURITY_SELINUX=true to enable selinux support (until its enabled by default) + newenvd "${FILESDIR}"/90incus.envd 90incus + if use selinux; then + echo "INCUS_SECURITY_SELINUX=true" >> "${D}"/etc/env.d/90incus + fi +} + +pkg_postinst() { + elog + elog "Please see" + elog " https://wiki.gentoo.org/wiki/Incus" + elog " https://wiki.gentoo.org/wiki/Incus#Migrating_from_LXD" + elog + optfeature "OCI container images support" app-containers/skopeo app-containers/umoci + optfeature "support for ACME certificate issuance" app-crypt/lego + optfeature "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/incus-7.0.0.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-7.0.0.ebuild new file mode 100644 index 00000000000..67330b13161 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-7.0.0.ebuild @@ -0,0 +1,271 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-env go-module linux-info optfeature systemd toolchain-funcs verify-sig + +DESCRIPTION="Modern, secure and powerful system container and virtual machine manager" +HOMEPAGE="https://linuxcontainers.org/incus/introduction/ https://github.com/lxc/incus" +SRC_URI="https://linuxcontainers.org/downloads/incus/${P}.tar.xz + verify-sig? ( https://linuxcontainers.org/downloads/incus/${P}.tar.xz.asc )" + +LICENSE="Apache-2.0 BSD LGPL-3 MIT" +SLOT="0/lts" +KEYWORDS="~amd64 ~arm64" +IUSE="apparmor fuidshift nls qemu selinux" + +DEPEND="acct-group/incus + acct-group/incus-admin + app-arch/xz-utils + >=app-containers/lxc-6.0.0:=[apparmor?,seccomp(+)] + dev-db/sqlite:3 + >=dev-libs/cowsql-1.15.9 + dev-libs/lzo + >=dev-libs/raft-0.22.1:=[lz4] + >=dev-util/xdelta-3.0[lzma(+)] + net-dns/dnsmasq[dhcp] + sys-libs/libcap + virtual/udev" +RDEPEND="${DEPEND} + || ( + net-firewall/iptables + net-firewall/nftables[json] + ) + fuidshift? ( !app-containers/lxd ) + net-firewall/ebtables + sys-apps/iproute2 + sys-fs/fuse:* + >=sys-fs/lxcfs-6.0.0 + sys-fs/squashfs-tools[lzma] + virtual/acl + apparmor? ( sec-policy/apparmor-profiles ) + qemu? ( + app-cdr/cdrtools + app-emulation/qemu[spice,usbredir,virtfs] + sys-apps/gptfdisk + ) + selinux? ( sec-policy/selinux-incus )" +BDEPEND=">=dev-lang/go-1.25.6 + nls? ( sys-devel/gettext ) + verify-sig? ( sec-keys/openpgp-keys-linuxcontainers )" + +CONFIG_CHECK=" + ~AIO + ~CGROUPS + ~IPC_NS + ~NET_NS + ~PID_NS + + ~SECCOMP + ~USER_NS + ~UTS_NS + + ~KVM + ~MACVTAP + ~VHOST_VSOCK +" + +ERROR_AIO="CONFIG_AIO is required." +ERROR_IPC_NS="CONFIG_IPC_NS is required." +ERROR_NET_NS="CONFIG_NET_NS is required." +ERROR_PID_NS="CONFIG_PID_NS is required." +ERROR_SECCOMP="CONFIG_SECCOMP is required." +ERROR_UTS_NS="CONFIG_UTS_NS is required." + +WARNING_KVM="CONFIG_KVM and CONFIG_KVM_AMD/-INTEL is required for virtual machines." +WARNING_MACVTAP="CONFIG_MACVTAP is required for virtual machines." +WARNING_VHOST_VSOCK="CONFIG_VHOST_VSOCK is required for virtual machines." + +# Go magic. +QA_PREBUILT="/usr/bin/incus + /usr/bin/incus-agent + /usr/bin/incus-benchmark + /usr/bin/incus-migrate + /usr/bin/lxc-to-incus + /usr/sbin/fuidshift + /usr/sbin/incusd + /usr/sbin/lxd-to-incus" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/linuxcontainers.asc + +# The testsuite must be run as root. +# make: *** [Makefile:156: check] Error 1 +RESTRICT="test" + +GOPATH="${S}/_dist" + +src_unpack() { + verify-sig_src_unpack + go-module_src_unpack +} + +src_prepare() { + export GOPATH="${S}/_dist" + + default + + sed -i \ + -e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/incus:g" \ + -e "s:make:make ${MAKEOPTS}:g" \ + Makefile || die + + sed -i \ + -e "s:/usr/share/OVMF:/usr/share/edk2/OvmfX64:g" \ + -e "s:OVMF_VARS.ms.fd:OVMF_VARS.fd:g" \ + internal/server/instance/drivers/edk2/driver_edk2.go || die "Failed to fix hardcoded ovmf paths." + + cp "${FILESDIR}"/incus-6.14-r1.service "${T}"/incus.service || die + if use apparmor; then + sed -i \ + '/^EnvironmentFile=.*/a ExecStartPre=\/usr\/libexec\/lxc\/lxc-apparmor-load' \ + "${T}"/incus.service || die + fi + + # Disable -Werror's from go modules. + find "${S}" -name "cgo.go" -exec sed -i "s/ -Werror / /g" {} + || die +} + +src_configure() { :; } + +incus_get_bindir() { + local host_arch=${1} + if [[ "${GOARCH}" != "${host_arch}" ]]; then + echo "_dist/bin/linux_${GOARCH}" + else + echo "_dist/bin" + fi +} + +src_compile() { + export GOPATH="${S}/_dist" + export CGO_LDFLAGS_ALLOW="-Wl,-z,now" + + for k in incus-benchmark incus-simplestreams incus-user incus lxc-to-incus lxd-to-incus ; do + ego install -v -x "${S}/cmd/${k}" + done + + if use fuidshift ; then + ego install -v -x "${S}/cmd/fuidshift" + fi + + ego install -v -x -tags libsqlite3 "${S}"/cmd/incusd + + # Needs to be built statically + CGO_ENABLED=0 go install -v -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-migrate + + local bindir=$(incus_get_bindir "$(go-env_goarch "${CBUILD}")") + + # Build the VM agents, statically too + if use amd64 ; then + GOARCH=amd64 CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.linux.x86_64 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + GOARCH=386 CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.linux.i686 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + GOARCH=amd64 GOOS=windows CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.windows.x86_64 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + GOARCH=386 GOOS=windows CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.windows.i686 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + elif use arm64 ; then + GOARCH=arm64 CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.linux.aarch64 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + GOARCH=arm64 GOOS=windows CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.windows.aarch64 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + else + echo "No VM support for this arch." + return + fi + + use nls && emake build-mo +} + +src_test() { + emake check +} + +src_install() { + export GOPATH="${S}/_dist" + + export GOHOSTARCH=$(go-env_goarch "${CBUILD}") + local bindir=$(incus_get_bindir "${GOHOSTARCH}") + + newsbin "${FILESDIR}"/incus-startup-0.4.sh incus-startup + + # Admin tools + for l in incusd incus-user lxd-to-incus ; do + dosbin "${bindir}/${l}" + done + + # User tools + for m in incus-benchmark incus-migrate incus-simplestreams incus lxc-to-incus ; do + dobin "${bindir}/${m}" + done + + # VM Agents + if use amd64 ; then + exeinto /usr/libexec/incus/agents + doexe ${bindir}/incus-agent.linux.x86_64 + doexe ${bindir}/incus-agent.linux.i686 + doexe ${bindir}/incus-agent.windows.x86_64 + doexe ${bindir}/incus-agent.windows.i686 + elif use arm64 ; then + exeinto /usr/libexec/incus/agents + doexe ${bindir}/incus-agent.linux.aarch64 + doexe ${bindir}/incus-agent.windows.aarch64 + fi + + # fuidshift, should be moved under admin tools at some point + if use fuidshift ; then + dosbin ${bindir}/fuidshift + fi + + newconfd "${FILESDIR}"/incus-6.0.confd incus + newinitd "${FILESDIR}"/incus-6.0.initd incus + newinitd "${FILESDIR}"/incus-user-0.4.initd incus-user + + systemd_dounit "${T}"/incus.service + systemd_newunit "${FILESDIR}"/incus-0.4.socket incus.socket + systemd_newunit "${FILESDIR}"/incus-startup-0.4.service incus-startup.service + systemd_newunit "${FILESDIR}"/incus-user-0.4.service incus-user.service + systemd_newunit "${FILESDIR}"/incus-user-0.4.socket incus-user.socket + + if ! tc-is-cross-compiler; then + # Generate and install shell completion files. + mkdir -p "${D}"/usr/share/{bash-completion/completions/,fish/vendor_completions.d/,zsh/site-functions/} || die + "${bindir}"/incus completion bash > "${D}"/usr/share/bash-completion/completions/incus || die + "${bindir}"/incus completion fish > "${D}"/usr/share/fish/vendor_completions.d/incus.fish || die + "${bindir}"/incus completion zsh > "${D}"/usr/share/zsh/site-functions/_incus || die + else + ewarn "Shell completion files not installed! Install them manually with incus completion --help" + fi + + dodoc AUTHORS + dodoc -r doc/* + use nls && domo po/*.mo + + # Incus needs INCUS_EDK2_PATH in env to find OVMF files for virtual machines, #946184, + # and INCUS_AGENT_PATH to find multi-setup agents for VMs, #959878, + # and INCUS_SECURITY_SELINUX=true to enable selinux support (until its enabled by default) + newenvd "${FILESDIR}"/90incus.envd 90incus + if use selinux; then + echo "INCUS_SECURITY_SELINUX=true" >> "${D}"/etc/env.d/90incus + fi +} + +pkg_postinst() { + elog + elog "Please see" + elog " https://wiki.gentoo.org/wiki/Incus" + elog " https://wiki.gentoo.org/wiki/Incus#Migrating_from_LXD" + elog + optfeature "OCI container images support" app-containers/skopeo app-containers/umoci + optfeature "support for ACME certificate issuance" app-crypt/lego + optfeature "ipv6 support" net-dns/dnsmasq[ipv6] + optfeature "full incus-migrate support" net-misc/rsync + optfeature "btrfs storage backend" sys-fs/btrfs-progs + optfeature "lvm2 storage backend" sys-fs/lvm2 + optfeature "zfs storage backend" sys-fs/zfs + elog + elog "Be sure to add your local user to the incus group." + elog +} diff --git a/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-9999.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-9999.ebuild index 3e097c14019..ec2cb83449c 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-9999.ebuild @@ -50,7 +50,8 @@ RDEPEND="${DEPEND} app-cdr/cdrtools app-emulation/qemu[spice,usbredir,virtfs] sys-apps/gptfdisk - )" + ) + selinux? ( sec-policy/selinux-incus )" BDEPEND=">=dev-lang/go-1.24.7 nls? ( sys-devel/gettext ) verify-sig? ( sec-keys/openpgp-keys-linuxcontainers )" diff --git a/sdk_container/src/third_party/portage-stable/app-containers/lxc/Manifest b/sdk_container/src/third_party/portage-stable/app-containers/lxc/Manifest index b357e2ce378..84a951404c1 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/lxc/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-containers/lxc/Manifest @@ -4,3 +4,5 @@ DIST lxc-6.0.5.tar.gz 958966 BLAKE2B 74ee775f8a23467049f38f0973a24eb12b34b7c7585 DIST lxc-6.0.5.tar.gz.asc 833 BLAKE2B ac1480c0b5588b290ab1ec81bf7bf85990df98a650832363529e9ede8afb7594bd21b58a4a79e7fe9519c381d4860d7a33f4090582612ffff7c448c77e641929 SHA512 8c28da0ebc280ae491bab815105f3c58f2c9cd742586ce86f9b1d2032724db4893811d689f7278bfc8c5570dc45ca6071e4c25b77647d762c77eca59249a15b5 DIST lxc-6.0.6.tar.gz 963412 BLAKE2B 3bd9575f4c1a4b96ce5bea767e6a6b3c15a3021c62ebaf7421065ca55d2093ca467a8e9e86ce5d8316dab4fc9cde0c96dc1acedb73ccf167bd5c3e5484e5ceff SHA512 1d28aa749711be8a439de5e76019960d78e21bf576724bce7e8973ba4f6a3995c040cdc184e3c3a30814eb4cd2daec6851d26422c7d6d9d64ccd95add6c2eb30 DIST lxc-6.0.6.tar.gz.asc 833 BLAKE2B 622a7c53629b3e5117bad956923824662073955ca8c6b3c6fba61b9d37c3b76fa48d55ecfd460fad4a5fe88c074264ad4c97b4193342d9c3a5fa322814a212fd SHA512 3ddaf0796e6888c15a5124141439ffa09c2d611f185cf3c8b2106eea530485a013846548bf9bd5ea9d0b69ee52aad2de9281b293a323ba2510db925c38cce98f +DIST lxc-7.0.0.tar.gz 962710 BLAKE2B 025583e58ba2613bced13fbc7929ecbbf0eb0cd373cc59c80d1794b9398db109ecf35a2797cd08092d72e5718c406dd953d676ca0f29390fc139817c49886bee SHA512 5c7a9fba7313e2d19be649bf906067d99240cf5700e88892dcdb09a216206671db73d647fabad558af3a594ec24054f69627ea5e44638c187c4a0c07067e441a +DIST lxc-7.0.0.tar.gz.asc 833 BLAKE2B e76eef4ca3485f88b1033ff2e044fc89806dfb11b1d0cfe6b73ab7b5ebb487818e2426f8fb21e8165e6633bc16186664cf0a5af6c72f0dc9e41df75c4cd92727 SHA512 6bb8cd64a73ef828275b98ac1657a9d8a4de878fff9fb6f63123974efec17e5143f4829f1d5275a47155005a28b4ea23774a9e5713f930cd4ed4cd951cc1fb06 diff --git a/sdk_container/src/third_party/portage-stable/app-containers/lxc/files/lxc-6.0.4-start-Re-introduce-first-SET_DUMPABLE-call.patch b/sdk_container/src/third_party/portage-stable/app-containers/lxc/files/lxc-6.0.4-start-Re-introduce-first-SET_DUMPABLE-call.patch deleted file mode 100644 index 59475cf7103..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-containers/lxc/files/lxc-6.0.4-start-Re-introduce-first-SET_DUMPABLE-call.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 2663712e8fa8f37e0bb873185e2d4526dc644764 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?St=C3=A9phane=20Graber?= -Date: Sat, 5 Apr 2025 01:11:18 -0400 -Subject: [PATCH] start: Re-introduce first SET_DUMPABLE call -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Without it, we're running into issues with complex hooks like nvidia. - -Signed-off-by: Stéphane Graber ---- - src/lxc/start.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/lxc/start.c b/src/lxc/start.c -index f28bceaba..ee4bf4003 100644 ---- a/src/lxc/start.c -+++ b/src/lxc/start.c -@@ -1125,6 +1125,11 @@ static int do_start(void *data) - if (!lxc_switch_uid_gid(nsuid, nsgid)) - goto out_warn_father; - -+ ret = prctl(PR_SET_DUMPABLE, prctl_arg(1), prctl_arg(0), -+ prctl_arg(0), prctl_arg(0)); -+ if (ret < 0) -+ goto out_warn_father; -+ - /* set{g,u}id() clears deathsignal */ - ret = lxc_set_death_signal(SIGKILL, handler->monitor_pid, status_fd); - if (ret < 0) { --- -2.48.1 - diff --git a/sdk_container/src/third_party/portage-stable/app-containers/lxc/lxc-7.0.0.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/lxc/lxc-7.0.0.ebuild new file mode 100644 index 00000000000..7331b85f0e6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-containers/lxc/lxc-7.0.0.ebuild @@ -0,0 +1,180 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 linux-info meson optfeature systemd verify-sig + +DESCRIPTION="A userspace interface for the Linux kernel containment features" +HOMEPAGE="https://linuxcontainers.org/ https://github.com/lxc/lxc" +SRC_URI="https://linuxcontainers.org/downloads/lxc/${P}.tar.gz + verify-sig? ( https://linuxcontainers.org/downloads/lxc/${P}.tar.gz.asc )" + +LICENSE="GPL-2 LGPL-2.1 LGPL-3" # LGPL-2.1+ is listed, but it's covered by "LGPL-3" +SLOT="0/1.700" # SONAME liblxc.so.1 + ${PV//./} _if_ breaking ABI change while bumping. +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +IUSE="apparmor +caps doc examples io-uring landlock man pam seccomp selinux ssl systemd test +tools" + +REQUIRED_USE="landlock? ( seccomp )" + +RDEPEND="acct-group/lxc + acct-user/lxc + apparmor? ( sys-libs/libapparmor ) + caps? ( sys-libs/libcap ) + io-uring? ( >=sys-libs/liburing-2:= ) + pam? ( sys-libs/pam ) + seccomp? ( sys-libs/libseccomp ) + selinux? ( sys-libs/libselinux ) + ssl? ( dev-libs/openssl:0= ) + systemd? ( + sys-apps/dbus + sys-apps/systemd:= + ) + tools? ( sys-libs/libcap )" +DEPEND="${RDEPEND} + caps? ( sys-libs/libcap[static-libs] ) + tools? ( sys-libs/libcap[static-libs] ) + sys-kernel/linux-headers" +BDEPEND="virtual/pkgconfig + doc? ( app-text/doxygen ) + man? ( app-text/docbook2X ) + verify-sig? ( sec-keys/openpgp-keys-linuxcontainers )" + +RESTRICT="!test? ( test )" + +CONFIG_CHECK="~!NETPRIO_CGROUP + ~CGROUPS + ~CGROUP_CPUACCT + ~CGROUP_DEVICE + ~CGROUP_FREEZER + + ~CGROUP_SCHED + ~CPUSETS + ~IPC_NS + ~MACVLAN + + ~MEMCG + ~NAMESPACES + ~NET_NS + ~PID_NS + + ~POSIX_MQUEUE + ~USER_NS + ~UTS_NS + ~VETH" + +ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER: needed to freeze containers" +ERROR_MACVLAN="CONFIG_MACVLAN: needed for internal (inter-container) networking" +ERROR_MEMCG="CONFIG_MEMCG: needed for memory resource control in containers" +ERROR_NET_NS="CONFIG_NET_NS: needed for unshared network" +ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: needed for lxc-execute command" +ERROR_UTS_NS="CONFIG_UTS_NS: needed to unshare hostnames and uname info" +ERROR_VETH="CONFIG_VETH: needed for internal (host-to-container) networking" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/linuxcontainers.asc + +DOCS=( AUTHORS MAINTAINERS README.md doc/FAQ.txt ) + +pkg_setup() { + if use landlock ; then + WARNING_SECURITY_LANDLOCK="CONFIG_SECURITY_LANDLOCK: needed with landlock" + fi + linux-info_pkg_setup +} + +src_configure() { + + # -Dtools-multicall=false: will create a single binary called 'lxc' that conflicts with LXD. + local emesonargs=( + --localstatedir "${EPREFIX}/var" + + -Dcoverity-build=false + -Dinstall-state-dirs=false + -Doss-fuzz=false + -Dspecfile=false + -Dtools-multicall=false + + -Dcommands=true + -Dinstall-init-files=true + -Dmemfd-rexec=true + -Dthread-safety=true + + $(meson_use apparmor) + $(meson_use caps capabilities) + $(meson_use doc api-docs) + $(meson_use examples) + $(meson_use io-uring io-uring-event-loop) + $(meson_use landlock landlock-monitor) + $(meson_use man) + $(meson_use pam pam-cgroup) + $(meson_use seccomp) + $(meson_use selinux) + $(meson_use ssl openssl) + $(meson_use test tests) + $(meson_use tools) + + $(usex systemd -Ddbus=true -Ddbus=false) + $(usex systemd -Dinit-script="systemd" -Dinit-script="openrc") + + -Ddata-path=/var/lib/lxc + -Ddoc-path=/usr/share/doc/${PF} + -Dlog-path=/var/log/lxc + -Drootfs-mount-path=/var/lib/lxc/rootfs + -Druntime-path=/run + ) + + use tools && local emesonargs+=( -Dcapabilities=true ) + + meson_src_configure +} + +src_install() { + if use doc ; then + local HTML_DOCS=( "${BUILD_DIR}/html/"* ) + fi + meson_src_install + + # The main bash-completion file will collide with lxd, need to relocate and update symlinks. + local lxcbashcompdir="${D}/$(get_bashcompdir)" + mkdir -p "${lxcbashcompdir}" || die "Failed to create bashcompdir." + mv "${lxcbashcompdir}"/_lxc "${lxcbashcompdir}"/lxc-start || die "Failed to move _lxc bash completion file." + + # Build system will install all bash completion files regardless of our 'tools' use flag. + # Though installing them all will add bash completions for commands that don't exist, it's + # cleaner than dealing with individual files based on the use flag status. + bashcomp_alias lxc-start lxc-{attach,autostart,cgroup,checkpoint,config,console,copy,create,destroy,device,execute,freeze,info,ls,monitor,snapshot,stop,top,unfreeze,unshare,update-config,usernsexec,wait} + + find "${ED}" -name '*.la' -delete -o -name '*.a' -delete || die + + # Replace upstream systemd files. + if use systemd ; then + rm -r "${D}$(systemd_get_systemunitdir)" || die "Failed to remove systemd lib dir" + else + # The openrc files aren't installed with correct permissions. + fperms 0755 /etc/init.d/lxc-{containers,net} + fi + + newinitd "${FILESDIR}/${PN}.initd.9" ${PN} + systemd_newunit "${FILESDIR}"/lxc-monitord.service.5.0.0 lxc-monitord.service + systemd_newunit "${FILESDIR}"/lxc-net.service.5.0.0 lxc-net.service + systemd_newunit "${FILESDIR}"/lxc.service-5.0.0 lxc.service + systemd_newunit "${FILESDIR}"/lxc_at.service.5.0.0 "lxc@.service" + + if ! use apparmor; then + sed -i '/lxc-apparmor-load/d' "${D}$(systemd_get_systemunitdir)/lxc.service" || + die "Failed to remove apparmor references from lxc.service systemd unit." + fi +} + +pkg_postinst() { + elog "Please refer to " + elog "https://wiki.gentoo.org/wiki/LXC for introduction and usage guide." + elog + elog "Run 'lxc-checkconfig' to see optional kernel features." + elog + + optfeature "creating your own LXC containers" app-containers/distrobuilder + optfeature "automatic template scripts" app-containers/lxc-templates + optfeature "Debian-based distribution container image support" dev-util/debootstrap + optfeature "snapshot & restore functionality" sys-process/criu +} diff --git a/sdk_container/src/third_party/portage-stable/app-containers/lxc/metadata.xml b/sdk_container/src/third_party/portage-stable/app-containers/lxc/metadata.xml index 025e3688277..7f59180cbe7 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/lxc/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/app-containers/lxc/metadata.xml @@ -10,6 +10,7 @@ Gentoo Virtualization Project + Use Landlock to restrict what the monitor API handlers can do on the system Build and install additional command line tools diff --git a/sdk_container/src/third_party/portage-stable/app-containers/podman/Manifest b/sdk_container/src/third_party/portage-stable/app-containers/podman/Manifest index 7ce7839f832..37d181a5059 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/podman/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-containers/podman/Manifest @@ -1,2 +1 @@ -DIST podman-5.7.0.tar.gz 21261077 BLAKE2B ac67654b0a5d0e0acdfb94701409aecfaaee27ce36bd5329491ab03e28abcca93f76ec22627e9213f9c776b628695845eb0bce20abd682273a8dfa556c55de09 SHA512 e53e3f6d441de7865733e085017ce1c3e0af5cb0ad0cf605f5d15e9813d38e1af22691d59498960ed7bd18e32ef003db4c151a4f4bd5bd0dbac69f4011851ff1 DIST podman-5.7.1.tar.gz 21266433 BLAKE2B 59adb23b18fe453d45d92b0dac22a2fc8db1b1d02074f5eabc65d95bf7764f43a1d835f7316fbd61bbb7d98f3aeb6a3306d53963c5f83b8f55d879c182518534 SHA512 81fd4c27ff1d16dcb85229d4e4fd2cb06943ddfe966b5324fa8a8a957b2d2ec2aed7c5da05d6c009148f53b76545b27b0cba506622c8861f70bf7cad6c214a08 diff --git a/sdk_container/src/third_party/portage-stable/app-containers/podman/podman-5.7.0.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/podman/podman-5.7.0.ebuild deleted file mode 100644 index 866e02a1ca2..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-containers/podman/podman-5.7.0.ebuild +++ /dev/null @@ -1,138 +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 go-module python-any-r1 tmpfiles toolchain-funcs linux-info - -DESCRIPTION="A tool for managing OCI containers and pods with Docker-compatible CLI" -HOMEPAGE="https://github.com/containers/podman/ https://podman.io/" - -if [[ ${PV} == 9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/containers/podman.git" -else - SRC_URI="https://github.com/containers/podman/archive/v${PV/_rc/-rc}.tar.gz -> ${P}.tar.gz" - S="${WORKDIR}/${P/_rc/-rc}" - [[ ${PV} != *rc* ]] && \ - KEYWORDS="amd64 arm64 ~loong ~riscv" -fi - -# main pkg -LICENSE="Apache-2.0" -# deps -LICENSE+=" BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0" -SLOT="0" -IUSE="apparmor btrfs +seccomp selinux systemd wrapper" -RESTRICT="test" - -RDEPEND=" - app-containers/catatonit - >=app-containers/conmon-2.1.10 - >=app-containers/containers-common-0.58.0-r1 - app-crypt/gpgme:= - dev-libs/libassuan:= - dev-libs/libgpg-error:= - sys-apps/shadow:= - - apparmor? ( sys-libs/libapparmor ) - btrfs? ( sys-fs/btrfs-progs ) - wrapper? ( !app-containers/docker-cli ) - seccomp? ( sys-libs/libseccomp:= ) - selinux? ( sec-policy/selinux-podman sys-libs/libselinux:= ) - systemd? ( sys-apps/systemd:= ) -" -DEPEND="${RDEPEND}" -BDEPEND=" - ${PYTHON_DEPS} - dev-go/go-md2man -" - -PATCHES=( - "${FILESDIR}"/${PN}-5.5.2-togglable-seccomp.patch -) - -CONFIG_CHECK=" - ~USER_NS -" - -pkg_setup() { - use btrfs && CONFIG_CHECK+=" ~BTRFS_FS" - linux-info_pkg_setup - python-any-r1_pkg_setup -} - -src_prepare() { - default - - # assure necessary files are present - local file - for file in apparmor_tag btrfs_installed_tag systemd_tag; do - [[ -f hack/"${file}".sh ]] || die - done - - local feature - for feature in apparmor systemd; do - cat <<-EOF > hack/"${feature}"_tag.sh || die - #!/usr/bin/env bash - $(usex ${feature} "echo ${feature}" echo) - EOF - done - - cat <<-EOF > hack/btrfs_installed_tag.sh || die - #!/usr/bin/env bash - $(usex btrfs echo 'echo exclude_graphdriver_btrfs') - EOF -} - -src_compile() { - export PREFIX="${EPREFIX}/usr" BUILD_ORIGIN="Gentoo Portage" - - # For non-live versions, prevent git operations which causes sandbox violations - # https://github.com/gentoo/gentoo/pull/33531#issuecomment-1786107493 - [[ ${PV} != 9999* ]] && export COMMIT_NO="" GIT_COMMIT="" EPOCH_TEST_COMMIT="" - - # Use proper pkg-config to get gpgme cflags and ldflags when - # cross-compiling, bug 930982. - if tc-is-cross-compiler; then - tc-export PKG_CONFIG - fi - - emake BUILDFLAGS="-v -work -x" GOMD2MAN="go-md2man" EXTRA_BUILDTAGS="$(usev seccomp)" SELINUXOPT= \ - all $(usev wrapper docker-docs) -} - -src_install() { - emake DESTDIR="${D}" SELINUXOPT= install install.completions $(usev wrapper install.docker-full) - - if use !systemd; then - newconfd "${FILESDIR}"/podman-5.0.0_rc4.confd podman - newinitd "${FILESDIR}"/podman-5.0.0_rc4.initd podman - - newinitd "${FILESDIR}"/podman-restart-5.0.0_rc4.initd podman-restart - newconfd "${FILESDIR}"/podman-restart-5.0.0_rc4.confd podman-restart - - newinitd "${FILESDIR}"/podman-clean-transient-5.0.0_rc6.initd podman-clean-transient - newconfd "${FILESDIR}"/podman-clean-transient-5.0.0_rc6.confd podman-clean-transient - - exeinto /etc/cron.daily - newexe "${FILESDIR}"/podman-auto-update-5.0.0.cron podman-auto-update - - insinto /etc/logrotate.d - newins "${FILESDIR}/podman.logrotated" podman - - exeinto /etc/user/init.d - newexe "${FILESDIR}/podman-5.0.0_rc4.user.initd" podman - - insinto /etc/user/conf.d - newins "${FILESDIR}/podman-5.0.0_rc4.user.confd" podman - fi - - keepdir /var/lib/containers -} - -pkg_postinst() { - tmpfiles_process podman.conf $(usev wrapper podman-docker.conf) -} diff --git a/sdk_container/src/third_party/portage-stable/app-containers/podman/podman-5.7.1.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/podman/podman-5.7.1.ebuild index 9f80dd3c554..2ef82fc90e2 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/podman/podman-5.7.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/podman/podman-5.7.1.ebuild @@ -89,7 +89,7 @@ src_prepare() { } src_compile() { - export PREFIX="${EPREFIX}/usr" BUILD_ORIGIN="Gentoo Portage" + export ETCDIR="${EPREFIX}/etc" PREFIX="${EPREFIX}/usr" BUILD_ORIGIN="Gentoo Portage" # For non-live versions, prevent git operations which causes sandbox violations # https://github.com/gentoo/gentoo/pull/33531#issuecomment-1786107493 diff --git a/sdk_container/src/third_party/portage-stable/app-containers/podman/podman-9999.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/podman/podman-9999.ebuild index 5cf064395cc..0f40fd4fb52 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/podman/podman-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/podman/podman-9999.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit go-module python-any-r1 tmpfiles toolchain-funcs linux-info @@ -88,7 +88,7 @@ src_prepare() { } src_compile() { - export PREFIX="${EPREFIX}/usr" BUILD_ORIGIN="Gentoo Portage" + export ETCDIR="${EPREFIX}/etc" PREFIX="${EPREFIX}/usr" BUILD_ORIGIN="Gentoo Portage" # For non-live versions, prevent git operations which causes sandbox violations # https://github.com/gentoo/gentoo/pull/33531#issuecomment-1786107493 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 2d9f00e5cde..1ad0600db8b 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 @@ -1,8 +1,3 @@ -DIST runc-1.2.4.tar.gz 2759394 BLAKE2B 02b282c9fbe7f82ad1d4297b9d2576ee99db7f4db193aa6b08b595d1a18f4a0cb41c5fddb8184ca389e77726c71f4b64b686b2ee1b8e8df97179669362c17ff7 SHA512 2a14bfe7759e0cefcf88fac9d756eb2cbed8a9ebf7b6eacb96855467ea151c278ae0d58735d2a5a2d3335fc54eae4625dfcdb641065df58ba10fd1faafbd3119 -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.2.8.tar.gz 2834651 BLAKE2B 5f76e40ee8bda4668758dce318625af1dbb13c0d33a17c9c872bc68aefd6311cac570ed934a69b92b4a327c6084ff6d6d55f8914b105513f9484bbc903107a4d SHA512 8d29a2ca179320f9a01c37383506f10aea1764e18b3321c507787556e3a531e23221f8369696d8caaf30124a523a68d0ad3609bae5ab06aa6c519e644d54d4ef -DIST runc-1.3.0.tar.gz 2858199 BLAKE2B c9402a074b816b9452763267a7ffdc69af6c0cd4cf54fbdfdc91ccbd8bbc5daa783259176775e90f6266fa6a02bf0bad7fbb8eb879b5764309f7f9cd2f246086 SHA512 63422501f6189d0d47f6b2f59565de572bc68b138a65c7dbcc8b5ad42dbc37245ee66e2683ab61971a84c076a15f54f484c37fde4a30815ee19edc9a0d97e9f4 -DIST runc-1.3.1.tar.gz 2860795 BLAKE2B 5711881488dc3d52182377dc09690436aff142552d35728b10c221874a1dafc3b1fe78972891ebfc53e232465aec97eacc78318a453b030c052ca2218c61438d SHA512 0a3007d046fe9711541e29ca07fd72515f19b220c8c79b9df9164f7b88a6b9077ba7a11607593b641823b9e99c0f2e96500a57e2a16e11501bbb7c4690870183 DIST runc-1.3.3.tar.gz 2929410 BLAKE2B 1feddc154836eff606a685a0c0d606c1bbcd5a1a1ec8a288233581a88e0b3b6a95f446125688a8dca5efd5a275bf22931553cb9ab894f6aa0826d5a1274b6f91 SHA512 9ce0af1b79163c44913979c0483322247b154109871a113726163f64c6354141e7cefb5fb6e1225eaa4bb48a1e33ba9a6049cb45cb2af8793134647dad18c8dc DIST runc-1.4.0.tar.gz 2958986 BLAKE2B 9a363986a05c2c19646373373b94944642bf9f74a2a9f10d201baff7d76d54e39e273d6ceb9f94449926246ec22c2b863812ca1e4e8910cb166294b7ea7c4068 SHA512 a5b52d8494a4210d9ff4caefd0513b94b80ef9dd16c6eb369761cde2fce30214f765eee01c3cbb2e0cfd933371362fd89b08656b434d76038ffe1f8a59dea215 diff --git a/sdk_container/src/third_party/portage-stable/app-containers/runc/runc-1.2.4.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/runc/runc-1.2.4.ebuild deleted file mode 100644 index c0dc02bfb11..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-containers/runc/runc-1.2.4.ebuild +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright 1999-2026 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=6c52b3fc541fb26fe8c374d5f58112a0a5dbda66 - -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 +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-containers/runc/runc-1.2.5.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/runc/runc-1.2.5.ebuild deleted file mode 100644 index 624ed29e526..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-containers/runc/runc-1.2.5.ebuild +++ /dev/null @@ -1,71 +0,0 @@ -# Copyright 1999-2026 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=59923ef18c98053ddb1acf23ecba10344056c28e - -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 +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-containers/runc/runc-1.2.6.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/runc/runc-1.2.6.ebuild deleted file mode 100644 index 343d7610160..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-containers/runc/runc-1.2.6.ebuild +++ /dev/null @@ -1,71 +0,0 @@ -# Copyright 1999-2026 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=e89a29929c775025419ab0d218a43588b4c12b9a - -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 +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-containers/runc/runc-1.3.0.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/runc/runc-1.3.0.ebuild deleted file mode 100644 index 3d899e5e292..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-containers/runc/runc-1.3.0.ebuild +++ /dev/null @@ -1,71 +0,0 @@ -# Copyright 1999-2026 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=4ca628d1d4c974f92d24daccb901aa078aad748e - -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 +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-containers/runc/runc-1.3.1.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/runc/runc-1.3.1.ebuild deleted file mode 100644 index e2f03ef2ff3..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-containers/runc/runc-1.3.1.ebuild +++ /dev/null @@ -1,71 +0,0 @@ -# Copyright 1999-2026 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 +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-containers/runc/runc-1.4.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/runc/runc-1.4.0-r1.ebuild index 25e90b7d9b2..783ec475a00 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/runc/runc-1.4.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/runc/runc-1.4.0-r1.ebuild @@ -19,7 +19,7 @@ S="${WORKDIR}/${PN}-${MY_PV}" LICENSE="Apache-2.0 BSD-2 BSD MIT" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +KEYWORDS="amd64 ~arm arm64 ppc64 ~riscv ~x86" IUSE="apparmor +kmem +seccomp selinux test" COMMON_DEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/adcli/adcli-0.9.3.1.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/adcli/adcli-0.9.3.1.ebuild index a500dd880a7..9beaaca6208 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/adcli/adcli-0.9.3.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-crypt/adcli/adcli-0.9.3.1.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://gitlab.freedesktop.org/realmd/adcli/-/archive/${PV}/${P}.tar.bz LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86" +KEYWORDS="amd64 ~arm64 ~x86" IUSE="doc netapi selinux" DEPEND=" 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 d0b687a7409..3e86c6c68b2 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 @@ -3,4 +3,8 @@ DIST gnupg-2.4.9.tar.bz2.sig 147 BLAKE2B fbf956c0659d9e2a5df9ceb6911ebea8591fd1b DIST gnupg-2.5.17.tar.bz2 8308629 BLAKE2B e52c4cf6219a8ce877511c2cfb2e32abf9fafc66c280ddd5f37b7dc6abffaeb60a5ebe925332fd00735a81bb8bb9ebeff79d04d112bd52ec00c2e8692cea6eb0 SHA512 8c1fe6afb04034ed1579080cf8d384f5b331ac1bc277f77c8e9103d29971c944fcb4c072586d2c045630ef34483b355a1b35f1785dded6f8d8da1e4760bef308 DIST gnupg-2.5.17.tar.bz2.sig 119 BLAKE2B b404b6cdff76187c410a7751708e1cbb0ad173658b8c0dde9726063b16c6e9d5c673cb6ae86142e00ca48790dc314968625ec6aa2364ba4a48a3cf0c03e9b06f SHA512 385de45addf2c857ebf054bcc85d03d4fc0ccd70149138baac5cfcefccd7c0b0e48219dd9da757f36b1c6411816dcb43213920442796da03fb38ee59709877a4 DIST gnupg-2.5.18.tar.bz2 8307830 BLAKE2B 5d591f609a580c5e9a023c83707ad4baf3794595ff08eaa571c619bf5469fe32ca787cd39be3d0572cb8021e1dc66135d9523009e92c9c3b862ccd53a7060b12 SHA512 34542728ef09d23d63af21cfbc943e4a81a1c367b2bf4b892afe7428b06eaa3d105e34f5dcec1758e91ec9bac1c13fdd72418d946cd8580e34c07b57a07139a2 -DIST gnupg-2.5.18.tar.bz2.sig 119 BLAKE2B 1634053f0799b64e4d6fba6eab8357f89fdd611ad9853e6677c151b1af5ab231cf27908e2317c76676b86b8047fd5e6388df30312c8243d1f36608750b6d58d6 SHA512 70d8f8a7ce02de5fc73d069b52baac6b74d8440e9d20391779ef0f784375a63058def58f00107de81b676a7ef13afdaa5814ebde7c54a5e4603bbca1d005617c +DIST gnupg-2.5.18.tar.bz2.sig 266 BLAKE2B d7d9de7cf9dd3468e1cc1b03b766b81136cd90149046fe5990c449e055b3228b24c2e51f0d7c2113b3b0dfffd25d9b11df5b0f36e9964a5626795a3499cae784 SHA512 a9d79e92e61ae4e39c13d5659dc07de8f10d042e14faa88f97776ecb77cc65480ae4a687aa74d6c3cc8c102636ac69be7f10fb61ee1da678d6c92b5eefaffa36 +DIST gnupg-2.5.19.tar.bz2 8322515 BLAKE2B 2497ecc9345d7b38d3fd9e5685a1ba047713e95e27c78a5c1bfd9848dd5719506763127625a3550babd0b1e66430a0390a8687ad75b1f57929866fae01ecbad4 SHA512 3f20cd4cbf6cd57e458b3e5e60f9d3d06ae71ae26681257f313ba0fe3a04245560149b5b39220a7ec8fb1f94b67e47a021c72b72c55f2c3f511e32e463df87fa +DIST gnupg-2.5.19.tar.bz2.sig 119 BLAKE2B 0236943996ae324553f7554efac400e8f540be14b42bebe17c6338d0d3e045cdf62fe8533f4a84c1053a29ee475cd69e40045797857db1d213527134e616d642 SHA512 679163b60d0dd91741b1f6ea39203f919ba19b44784709ae6ea95f546f1c2a2b0e5e59b5cac9b3150b66aba0d5be82648244a2aa80bf7b0f2dba3756b164b68a +DIST gnupg-2.5.20.tar.bz2 8327674 BLAKE2B 5a2890203cf4ac52d86897ffb104896c5cbc8ab6f088336f423cb539ae0d917e6df0dcb99b8d51d2d6cdc4068e5570e63982e78c14631a332b4fa87ba0ae16bb SHA512 73e5f3020271069421c220871caffcb6ec05c52a8e12d8dcbd214ce2b14a2b22ce0030d9e1fedf25c60ec1077a33630b0a6bd1cc1043fbbaf7083b998113f90f +DIST gnupg-2.5.20.tar.bz2.sig 119 BLAKE2B fc54197b59aad9cb26cfcef062a25f882cf26e5cf8ca0c9d3672d4501cbe453b3334225291b3d4fbc4a49c7bb52102963a5386e9b59b4ec10a0385fe8be004b6 SHA512 0a54e9df9f1d6aa6d2f5fb841a3ae36d7530d3ab34bc7635892f58020e73e950a420120430206860e5eb4a7dc7b668f03e31eb42e381b25c4bca07f3e5f2f95b diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.9.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.9.ebuild index cdf36c9bd4e..51958f02087 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.9.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.9.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -166,7 +166,7 @@ my_src_compile() { } my_src_test() { - export TESTFLAGS="--parallel=$(makeopts_jobs)" + export TESTFLAGS="--parallel=$(get_makeopts_jobs)" default } diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.17-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.17-r1.ebuild deleted file mode 100644 index 7453a3b2180..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.17-r1.ebuild +++ /dev/null @@ -1,220 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintainers should: -# 1. Join the "Gentoo" project at https://dev.gnupg.org/project/view/27/ -# 2. Subscribe to release tasks like https://dev.gnupg.org/T6159 -# (find the one for the current release then subscribe to it + -# any subsequent ones linked within so you're covered for a while.) - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc -# in-source builds are not supported: https://dev.gnupg.org/T6313#166339 -inherit flag-o-matic out-of-source multiprocessing systemd toolchain-funcs verify-sig - -MY_P="${P/_/-}" - -DESCRIPTION="The GNU Privacy Guard, a GPL OpenPGP implementation" -HOMEPAGE="https://gnupg.org/" -SRC_URI="mirror://gnupg/gnupg/${MY_P}.tar.bz2" -SRC_URI+=" verify-sig? ( mirror://gnupg/gnupg/${P}.tar.bz2.sig )" -S="${WORKDIR}/${MY_P}" - -LICENSE="GPL-3+" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="+alternatives bzip2 doc ldap nls readline selinux +smartcard ssl test +tofu tpm tools usb user-socket wks-server" -RESTRICT="!test? ( test )" -REQUIRED_USE="test? ( tofu )" - -# Existence of executables is checked during configuration. -# Note: On each bump, update dep bounds on each version from configure.ac! -DEPEND=" - >=dev-libs/libassuan-3.0.0-r1:= - >=dev-libs/libgcrypt-1.11.0:= - >=dev-libs/libgpg-error-1.56 - >=dev-libs/libksba-1.6.3 - >=dev-libs/npth-1.2 - virtual/zlib:= - bzip2? ( app-arch/bzip2 ) - ldap? ( net-nds/openldap:= ) - readline? ( sys-libs/readline:0= ) - smartcard? ( usb? ( virtual/libusb:1 ) ) - tofu? ( >=dev-db/sqlite-3.27 ) - tpm? ( >=app-crypt/tpm2-tss-2.4.0:= ) - ssl? ( >=net-libs/gnutls-3.2:0= ) -" -RDEPEND=" - ${DEPEND} - nls? ( virtual/libintl ) - selinux? ( sec-policy/selinux-gpg ) - wks-server? ( virtual/mta ) -" -PDEPEND=" - app-crypt/pinentry - alternatives? ( - app-alternatives/gpg[-freepg(-)] - ) -" -BDEPEND=" - virtual/pkgconfig - doc? ( sys-apps/texinfo ) - nls? ( sys-devel/gettext ) - verify-sig? ( sec-keys/openpgp-keys-gnupg ) -" - -DOCS=( - ChangeLog NEWS README THANKS TODO VERSION - doc/FAQ doc/DETAILS doc/HACKING doc/TRANSLATE doc/OpenPGP doc/KEYSERVER -) - -PATCHES=( - "${FILESDIR}"/${PN}-2.1.20-gpgscm-Use-shorter-socket-path-lengts-to-improve-tes.patch - "${FILESDIR}"/0001-Fix-stub-functions-to-avoid-LTO-linking-bugs.patch - "${FILESDIR}"/0002-Fix-stub-functions-to-avoid-LTO-linking-bugs-followup.patch -) - -src_prepare() { - default - - GNUPG_SYSTEMD_UNITS=( - dirmngr.service - dirmngr.socket - gpg-agent-browser.socket - gpg-agent-extra.socket - gpg-agent.service - gpg-agent.socket - gpg-agent-ssh.socket - ) - - cp "${GNUPG_SYSTEMD_UNITS[@]/#/${FILESDIR}/}" "${T}" || die - - # Inject SSH_AUTH_SOCK into user's sessions after enabling gpg-agent-ssh.socket in systemctl --user mode, - # idea borrowed from libdbus, see - # https://gitlab.freedesktop.org/dbus/dbus/-/blob/master/bus/systemd-user/dbus.socket.in#L6 - # - # This cannot be upstreamed, as it requires determining the exact prefix of 'systemctl', - # which in turn requires discovery in Autoconf, something that upstream deeply resents. - sed -e "/DirectoryMode=/a ExecStartPost=-${EPREFIX}/bin/systemctl --user set-environment SSH_AUTH_SOCK=%t/gnupg/S.gpg-agent.ssh" \ - -i "${T}"/gpg-agent-ssh.socket || die - - # Since 2.5.3, --supervised is called --deprecated-supervised. See - # https://dev.gnupg.org/rGa019a0fcd8dfb9d1eae5bc991fdd54b7cf55641e - sed -i "s/--supervised/--deprecated-supervised/g" "${T}"/*.service || die -} - -my_src_configure() { - local myconf=( - $(use_enable bzip2) - $(use_enable nls) - $(use_enable smartcard scdaemon) - $(use_enable ssl gnutls) - $(use_enable test all-tests) - $(use_enable test tests) - $(use_enable tofu) - $(use_enable tofu keyboxd) - $(use_enable tofu sqlite) - $(usex tpm '--with-tss=intel' '--disable-tpm2d') - $(use smartcard && use_enable usb ccid-driver || echo '--disable-ccid-driver') - $(use_enable wks-server wks-tools) - $(use_with ldap) - $(use_with readline) - - # Hardcode mailprog to /usr/libexec/sendmail even if it does not exist. - # As of GnuPG 2.3, the mailprog substitution is used for the binary called - # by wks-client & wks-server; and if it's autodetected but not not exist at - # build time, then then 'gpg-wks-client --send' functionality will not - # work. This has an unwanted side-effect in stage3 builds: there was a - # [R]DEPEND on virtual/mta, which also brought in virtual/logger, bloating - # the build where the install guide previously make the user chose the - # logger & mta early in the install. - --with-mailprog=/usr/libexec/sendmail - - --disable-ntbtls - --enable-gpgsm - --enable-large-secmem - - CC_FOR_BUILD="$(tc-getBUILD_CC)" - GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" - - $("${S}/configure" --help | grep -o -- '--without-.*-prefix') - ) - - if use prefix && use usb; then - # bug #649598 - append-cppflags -I"${ESYSROOT}/usr/include/libusb-1.0" - fi - - if [[ ${CHOST} == *-solaris* ]] ; then - # these somehow are treated as fatal, but Solaris has different - # types for getpeername with socket_t - append-flags -Wno-incompatible-pointer-types - append-flags -Wno-unused-label - fi - - # bug #663142 - if use user-socket; then - myconf+=( --enable-run-gnupg-user-socket ) - fi - - # glib fails and picks up clang's internal stdint.h causing weird errors - tc-is-clang && export gl_cv_absolute_stdint_h="${ESYSROOT}"/usr/include/stdint.h - - econf "${myconf[@]}" -} - -my_src_compile() { - default - - use doc && emake -C doc html -} - -my_src_test() { - export TESTFLAGS="--parallel=$(makeopts_jobs)" - - default -} - -my_src_install() { - emake DESTDIR="${D}" install - - use tools && dobin tools/{gpgconf,gpgsplit,gpg-check-pattern} tools/make-dns-cert - - if use alternatives; then - # rename for app-alternatives/gpg - mv "${ED}"/usr/bin/gpg{,-reference} || die - mv "${ED}"/usr/bin/gpgv{,-reference} || die - mv "${ED}"/usr/share/man/man1/gpg{,-reference}.1 || die - mv "${ED}"/usr/share/man/man1/gpgv{,-reference}.1 || die - else - dosym gpg /usr/bin/gpg2 - dosym gpgv /usr/bin/gpgv2 - echo ".so man1/gpg.1" > "${ED}"/usr/share/man/man1/gpg2.1 || die - echo ".so man1/gpgv.1" > "${ED}"/usr/share/man/man1/gpgv2.1 || die - fi - - use doc && dodoc doc/gnupg.html/* -} - -my_src_install_all() { - einstalldocs - - use tools && dobin tools/{convert-from-106,mail-signed-keys,lspgpot} - use doc && dodoc doc/*.png - - # Dropped upstream in https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commitdiff;h=eae28f1bd4a5632e8f8e85b7248d1c4d4a10a5ed. - dodoc "${FILESDIR}"/README-systemd - systemd_douserunit "${GNUPG_SYSTEMD_UNITS[@]/#/${T}/}" -} - -pkg_postinst() { - # If /usr/bin/gpg and /usr/bin/gpgv do not exist, provide them. - if [[ ! -e ${EROOT}/usr/bin/gpg ]]; then - ln -sf -- gpg-reference "${EROOT}"/usr/bin/gpg || die - fi - - if [[ ! -e ${EROOT}/usr/bin/gpgv ]]; then - ln -sf -- gpgv-reference "${EROOT}"/usr/bin/gpgv || die - fi -} diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.17-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.17-r2.ebuild index f2c44868c40..c985d9e41e8 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.17-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.17-r2.ebuild @@ -172,7 +172,7 @@ my_src_compile() { } my_src_test() { - export TESTFLAGS="--parallel=$(makeopts_jobs)" + export TESTFLAGS="--parallel=$(get_makeopts_jobs)" default } diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.17.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.17.ebuild deleted file mode 100644 index a535d202dec..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.17.ebuild +++ /dev/null @@ -1,221 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintainers should: -# 1. Join the "Gentoo" project at https://dev.gnupg.org/project/view/27/ -# 2. Subscribe to release tasks like https://dev.gnupg.org/T6159 -# (find the one for the current release then subscribe to it + -# any subsequent ones linked within so you're covered for a while.) - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc -# in-source builds are not supported: https://dev.gnupg.org/T6313#166339 -inherit flag-o-matic out-of-source multiprocessing systemd toolchain-funcs verify-sig - -MY_P="${P/_/-}" - -DESCRIPTION="The GNU Privacy Guard, a GPL OpenPGP implementation" -HOMEPAGE="https://gnupg.org/" -SRC_URI="mirror://gnupg/gnupg/${MY_P}.tar.bz2" -SRC_URI+=" verify-sig? ( mirror://gnupg/gnupg/${P}.tar.bz2.sig )" -S="${WORKDIR}/${MY_P}" - -LICENSE="GPL-3+" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="+alternatives bzip2 doc ldap nls readline selinux +smartcard ssl test +tofu tpm tools usb user-socket wks-server" -RESTRICT="!test? ( test )" -REQUIRED_USE="test? ( tofu )" - -# Existence of executables is checked during configuration. -# Note: On each bump, update dep bounds on each version from configure.ac! -DEPEND=" - >=dev-libs/libassuan-3.0.0-r1:= - >=dev-libs/libgcrypt-1.11.0:= - >=dev-libs/libgpg-error-1.56 - >=dev-libs/libksba-1.6.3 - >=dev-libs/npth-1.2 - virtual/zlib:= - bzip2? ( app-arch/bzip2 ) - ldap? ( net-nds/openldap:= ) - readline? ( sys-libs/readline:0= ) - smartcard? ( usb? ( virtual/libusb:1 ) ) - tofu? ( >=dev-db/sqlite-3.27 ) - tpm? ( >=app-crypt/tpm2-tss-2.4.0:= ) - ssl? ( >=net-libs/gnutls-3.2:0= ) -" -RDEPEND=" - ${DEPEND} - nls? ( virtual/libintl ) - selinux? ( sec-policy/selinux-gpg ) - wks-server? ( virtual/mta ) -" -PDEPEND=" - app-crypt/pinentry - alternatives? ( - app-alternatives/gpg[-freepg(-)] - ) -" -BDEPEND=" - virtual/pkgconfig - doc? ( sys-apps/texinfo ) - nls? ( sys-devel/gettext ) - verify-sig? ( sec-keys/openpgp-keys-gnupg ) -" - -DOCS=( - ChangeLog NEWS README THANKS TODO VERSION - doc/FAQ doc/DETAILS doc/HACKING doc/TRANSLATE doc/OpenPGP doc/KEYSERVER -) - -PATCHES=( - "${FILESDIR}"/${PN}-2.1.20-gpgscm-Use-shorter-socket-path-lengts-to-improve-tes.patch -) - -src_prepare() { - default - - GNUPG_SYSTEMD_UNITS=( - dirmngr.service - dirmngr.socket - gpg-agent-browser.socket - gpg-agent-extra.socket - gpg-agent.service - gpg-agent.socket - gpg-agent-ssh.socket - ) - - cp "${GNUPG_SYSTEMD_UNITS[@]/#/${FILESDIR}/}" "${T}" || die - - # Inject SSH_AUTH_SOCK into user's sessions after enabling gpg-agent-ssh.socket in systemctl --user mode, - # idea borrowed from libdbus, see - # https://gitlab.freedesktop.org/dbus/dbus/-/blob/master/bus/systemd-user/dbus.socket.in#L6 - # - # This cannot be upstreamed, as it requires determining the exact prefix of 'systemctl', - # which in turn requires discovery in Autoconf, something that upstream deeply resents. - sed -e "/DirectoryMode=/a ExecStartPost=-${EPREFIX}/bin/systemctl --user set-environment SSH_AUTH_SOCK=%t/gnupg/S.gpg-agent.ssh" \ - -i "${T}"/gpg-agent-ssh.socket || die - - # Since 2.5.3, --supervised is called --deprecated-supervised. See - # https://dev.gnupg.org/rGa019a0fcd8dfb9d1eae5bc991fdd54b7cf55641e - sed -i "s/--supervised/--deprecated-supervised/g" "${T}"/*.service || die -} - -my_src_configure() { - # Upstream don't support LTO, bug #854222. - filter-lto - - local myconf=( - $(use_enable bzip2) - $(use_enable nls) - $(use_enable smartcard scdaemon) - $(use_enable ssl gnutls) - $(use_enable test all-tests) - $(use_enable test tests) - $(use_enable tofu) - $(use_enable tofu keyboxd) - $(use_enable tofu sqlite) - $(usex tpm '--with-tss=intel' '--disable-tpm2d') - $(use smartcard && use_enable usb ccid-driver || echo '--disable-ccid-driver') - $(use_enable wks-server wks-tools) - $(use_with ldap) - $(use_with readline) - - # Hardcode mailprog to /usr/libexec/sendmail even if it does not exist. - # As of GnuPG 2.3, the mailprog substitution is used for the binary called - # by wks-client & wks-server; and if it's autodetected but not not exist at - # build time, then then 'gpg-wks-client --send' functionality will not - # work. This has an unwanted side-effect in stage3 builds: there was a - # [R]DEPEND on virtual/mta, which also brought in virtual/logger, bloating - # the build where the install guide previously make the user chose the - # logger & mta early in the install. - --with-mailprog=/usr/libexec/sendmail - - --disable-ntbtls - --enable-gpgsm - --enable-large-secmem - - CC_FOR_BUILD="$(tc-getBUILD_CC)" - GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" - - $("${S}/configure" --help | grep -o -- '--without-.*-prefix') - ) - - if use prefix && use usb; then - # bug #649598 - append-cppflags -I"${ESYSROOT}/usr/include/libusb-1.0" - fi - - if [[ ${CHOST} == *-solaris* ]] ; then - # these somehow are treated as fatal, but Solaris has different - # types for getpeername with socket_t - append-flags -Wno-incompatible-pointer-types - append-flags -Wno-unused-label - fi - - # bug #663142 - if use user-socket; then - myconf+=( --enable-run-gnupg-user-socket ) - fi - - # glib fails and picks up clang's internal stdint.h causing weird errors - tc-is-clang && export gl_cv_absolute_stdint_h="${ESYSROOT}"/usr/include/stdint.h - - econf "${myconf[@]}" -} - -my_src_compile() { - default - - use doc && emake -C doc html -} - -my_src_test() { - export TESTFLAGS="--parallel=$(makeopts_jobs)" - - default -} - -my_src_install() { - emake DESTDIR="${D}" install - - use tools && dobin tools/{gpgconf,gpgsplit,gpg-check-pattern} tools/make-dns-cert - - if use alternatives; then - # rename for app-alternatives/gpg - mv "${ED}"/usr/bin/gpg{,-reference} || die - mv "${ED}"/usr/bin/gpgv{,-reference} || die - mv "${ED}"/usr/share/man/man1/gpg{,-reference}.1 || die - mv "${ED}"/usr/share/man/man1/gpgv{,-reference}.1 || die - else - dosym gpg /usr/bin/gpg2 - dosym gpgv /usr/bin/gpgv2 - echo ".so man1/gpg.1" > "${ED}"/usr/share/man/man1/gpg2.1 || die - echo ".so man1/gpgv.1" > "${ED}"/usr/share/man/man1/gpgv2.1 || die - fi - - use doc && dodoc doc/gnupg.html/* -} - -my_src_install_all() { - einstalldocs - - use tools && dobin tools/{convert-from-106,mail-signed-keys,lspgpot} - use doc && dodoc doc/*.png - - # Dropped upstream in https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commitdiff;h=eae28f1bd4a5632e8f8e85b7248d1c4d4a10a5ed. - dodoc "${FILESDIR}"/README-systemd - systemd_douserunit "${GNUPG_SYSTEMD_UNITS[@]/#/${T}/}" -} - -pkg_postinst() { - # If /usr/bin/gpg and /usr/bin/gpgv do not exist, provide them. - if [[ ! -e ${EROOT}/usr/bin/gpg ]]; then - ln -sf -- gpg-reference "${EROOT}"/usr/bin/gpg || die - fi - - if [[ ! -e ${EROOT}/usr/bin/gpgv ]]; then - ln -sf -- gpgv-reference "${EROOT}"/usr/bin/gpgv || die - fi -} diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.18.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.18.ebuild index 2bd0e0dc1b7..000c17b2422 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.18.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.18.ebuild @@ -23,7 +23,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="GPL-3+" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="+alternatives bzip2 doc ldap nls readline selinux +smartcard ssl test +tofu tpm tools usb user-socket wks-server" RESTRICT="!test? ( test )" REQUIRED_USE="test? ( tofu )" @@ -170,7 +170,7 @@ my_src_compile() { } my_src_test() { - export TESTFLAGS="--parallel=$(makeopts_jobs)" + export TESTFLAGS="--parallel=$(get_makeopts_jobs)" default } diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.19.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.19.ebuild new file mode 100644 index 00000000000..c4d71e4158e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.19.ebuild @@ -0,0 +1,218 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintainers should: +# 1. Join the "Gentoo" project at https://dev.gnupg.org/project/view/27/ +# 2. Subscribe to release tasks like https://dev.gnupg.org/T6159 +# (find the one for the current release then subscribe to it + +# any subsequent ones linked within so you're covered for a while.) + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc +# in-source builds are not supported: https://dev.gnupg.org/T6313#166339 +inherit flag-o-matic out-of-source multiprocessing systemd toolchain-funcs verify-sig + +MY_P="${P/_/-}" + +DESCRIPTION="The GNU Privacy Guard, a GPL OpenPGP implementation" +HOMEPAGE="https://gnupg.org/" +SRC_URI="mirror://gnupg/gnupg/${MY_P}.tar.bz2" +SRC_URI+=" verify-sig? ( mirror://gnupg/gnupg/${P}.tar.bz2.sig )" +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="+alternatives bzip2 doc ldap nls readline selinux +smartcard ssl test +tofu tpm tools usb user-socket wks-server" +RESTRICT="!test? ( test )" +REQUIRED_USE="test? ( tofu )" + +# Existence of executables is checked during configuration +DEPEND=" + >=dev-libs/libassuan-3.0.0-r1:= + >=dev-libs/libgcrypt-1.11.0:= + >=dev-libs/libgpg-error-1.56 + >=dev-libs/libksba-1.6.3 + >=dev-libs/npth-1.2 + virtual/zlib:= + bzip2? ( app-arch/bzip2 ) + ldap? ( net-nds/openldap:= ) + readline? ( sys-libs/readline:0= ) + smartcard? ( usb? ( virtual/libusb:1 ) ) + tofu? ( >=dev-db/sqlite-3.27 ) + tpm? ( >=app-crypt/tpm2-tss-2.4.0:= ) + ssl? ( >=net-libs/gnutls-3.2:0= ) +" +RDEPEND=" + ${DEPEND} + nls? ( virtual/libintl ) + selinux? ( sec-policy/selinux-gpg ) + wks-server? ( virtual/mta ) +" +PDEPEND=" + app-crypt/pinentry + alternatives? ( + app-alternatives/gpg[-freepg(-)] + ) +" +BDEPEND=" + virtual/pkgconfig + doc? ( sys-apps/texinfo ) + nls? ( sys-devel/gettext ) + verify-sig? ( sec-keys/openpgp-keys-gnupg ) +" + +DOCS=( + ChangeLog NEWS README THANKS TODO VERSION + doc/FAQ doc/DETAILS doc/HACKING doc/TRANSLATE doc/OpenPGP doc/KEYSERVER +) + +PATCHES=( + "${FILESDIR}"/${PN}-2.1.20-gpgscm-Use-shorter-socket-path-lengts-to-improve-tes.patch + "${FILESDIR}"/0002-Fix-stub-functions-to-avoid-LTO-linking-bugs-followup.patch +) + +src_prepare() { + default + + GNUPG_SYSTEMD_UNITS=( + dirmngr.service + dirmngr.socket + gpg-agent-browser.socket + gpg-agent-extra.socket + gpg-agent.service + gpg-agent.socket + gpg-agent-ssh.socket + ) + + cp "${GNUPG_SYSTEMD_UNITS[@]/#/${FILESDIR}/}" "${T}" || die + + # Inject SSH_AUTH_SOCK into user's sessions after enabling gpg-agent-ssh.socket in systemctl --user mode, + # idea borrowed from libdbus, see + # https://gitlab.freedesktop.org/dbus/dbus/-/blob/master/bus/systemd-user/dbus.socket.in#L6 + # + # This cannot be upstreamed, as it requires determining the exact prefix of 'systemctl', + # which in turn requires discovery in Autoconf, something that upstream deeply resents. + sed -e "/DirectoryMode=/a ExecStartPost=-${EPREFIX}/bin/systemctl --user set-environment SSH_AUTH_SOCK=%t/gnupg/S.gpg-agent.ssh" \ + -i "${T}"/gpg-agent-ssh.socket || die + + # Since 2.5.3, --supervised is called --deprecated-supervised. See + # https://dev.gnupg.org/rGa019a0fcd8dfb9d1eae5bc991fdd54b7cf55641e + sed -i "s/--supervised/--deprecated-supervised/g" "${T}"/*.service || die +} + +my_src_configure() { + local myconf=( + $(use_enable bzip2) + $(use_enable nls) + $(use_enable smartcard scdaemon) + $(use_enable ssl gnutls) + $(use_enable test all-tests) + $(use_enable test tests) + $(use_enable tofu) + $(use_enable tofu keyboxd) + $(use_enable tofu sqlite) + $(usex tpm '--with-tss=intel' '--disable-tpm2d') + $(use smartcard && use_enable usb ccid-driver || echo '--disable-ccid-driver') + $(use_enable wks-server wks-tools) + $(use_with ldap) + $(use_with readline) + + # Hardcode mailprog to /usr/libexec/sendmail even if it does not exist. + # As of GnuPG 2.3, the mailprog substitution is used for the binary called + # by wks-client & wks-server; and if it's autodetected but not not exist at + # build time, then then 'gpg-wks-client --send' functionality will not + # work. This has an unwanted side-effect in stage3 builds: there was a + # [R]DEPEND on virtual/mta, which also brought in virtual/logger, bloating + # the build where the install guide previously make the user chose the + # logger & mta early in the install. + --with-mailprog=/usr/libexec/sendmail + + --disable-ntbtls + --enable-gpgsm + --enable-large-secmem + + CC_FOR_BUILD="$(tc-getBUILD_CC)" + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" + + $("${S}/configure" --help | grep -o -- '--without-.*-prefix') + ) + + if use prefix && use usb; then + # bug #649598 + append-cppflags -I"${ESYSROOT}/usr/include/libusb-1.0" + fi + + if [[ ${CHOST} == *-solaris* ]] ; then + # these somehow are treated as fatal, but Solaris has different + # types for getpeername with socket_t + append-flags -Wno-incompatible-pointer-types + append-flags -Wno-unused-label + fi + + # bug #663142 + if use user-socket; then + myconf+=( --enable-run-gnupg-user-socket ) + fi + + # glib fails and picks up clang's internal stdint.h causing weird errors + tc-is-clang && export gl_cv_absolute_stdint_h="${ESYSROOT}"/usr/include/stdint.h + + econf "${myconf[@]}" +} + +my_src_compile() { + default + + use doc && emake -C doc html +} + +my_src_test() { + export TESTFLAGS="--parallel=$(get_makeopts_jobs)" + + default +} + +my_src_install() { + emake DESTDIR="${D}" install + + use tools && dobin tools/{gpgconf,gpgsplit,gpg-check-pattern} tools/make-dns-cert + + if use alternatives; then + # rename for app-alternatives/gpg + mv "${ED}"/usr/bin/gpg{,-reference} || die + mv "${ED}"/usr/bin/gpgv{,-reference} || die + mv "${ED}"/usr/share/man/man1/gpg{,-reference}.1 || die + mv "${ED}"/usr/share/man/man1/gpgv{,-reference}.1 || die + else + dosym gpg /usr/bin/gpg2 + dosym gpgv /usr/bin/gpgv2 + echo ".so man1/gpg.1" > "${ED}"/usr/share/man/man1/gpg2.1 || die + echo ".so man1/gpgv.1" > "${ED}"/usr/share/man/man1/gpgv2.1 || die + fi + + use doc && dodoc doc/gnupg.html/* +} + +my_src_install_all() { + einstalldocs + + use tools && dobin tools/{convert-from-106,mail-signed-keys,lspgpot} + use doc && dodoc doc/*.png + + # Dropped upstream in https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commitdiff;h=eae28f1bd4a5632e8f8e85b7248d1c4d4a10a5ed. + dodoc "${FILESDIR}"/README-systemd + systemd_douserunit "${GNUPG_SYSTEMD_UNITS[@]/#/${T}/}" +} + +pkg_postinst() { + # If /usr/bin/gpg and /usr/bin/gpgv do not exist, provide them. + if [[ ! -e ${EROOT}/usr/bin/gpg ]]; then + ln -sf -- gpg-reference "${EROOT}"/usr/bin/gpg || die + fi + + if [[ ! -e ${EROOT}/usr/bin/gpgv ]]; then + ln -sf -- gpgv-reference "${EROOT}"/usr/bin/gpgv || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.20.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.20.ebuild new file mode 100644 index 00000000000..e52a6cf4fa4 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.20.ebuild @@ -0,0 +1,221 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintainers should: +# 1. Join the "Gentoo" project at https://dev.gnupg.org/project/view/27/ +# 2. Subscribe to release tasks like https://dev.gnupg.org/T6159 +# (find the one for the current release then subscribe to it + +# any subsequent ones linked within so you're covered for a while.) + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc +# in-source builds are not supported: https://dev.gnupg.org/T6313#166339 +inherit flag-o-matic out-of-source multiprocessing systemd toolchain-funcs verify-sig + +MY_P="${P/_/-}" + +DESCRIPTION="The GNU Privacy Guard, a GPL OpenPGP implementation" +HOMEPAGE="https://gnupg.org/" +SRC_URI="mirror://gnupg/gnupg/${MY_P}.tar.bz2" +SRC_URI+=" verify-sig? ( mirror://gnupg/gnupg/${P}.tar.bz2.sig )" +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="+alternatives bzip2 doc ldap nls readline selinux +smartcard ssl test +tofu tpm tools usb user-socket wks-server" +RESTRICT="!test? ( test )" +REQUIRED_USE="test? ( tofu )" + +# Existence of executables is checked during configuration +DEPEND=" + >=dev-libs/libassuan-3.0.0-r1:= + >=dev-libs/libgcrypt-1.11.0:= + >=dev-libs/libgpg-error-1.56 + >=dev-libs/libksba-1.6.3 + >=dev-libs/npth-1.2 + virtual/zlib:= + bzip2? ( app-arch/bzip2 ) + ldap? ( net-nds/openldap:= ) + readline? ( sys-libs/readline:0= ) + smartcard? ( usb? ( virtual/libusb:1 ) ) + tofu? ( >=dev-db/sqlite-3.27 ) + tpm? ( >=app-crypt/tpm2-tss-2.4.0:= ) + ssl? ( >=net-libs/gnutls-3.2:0= ) +" +RDEPEND=" + ${DEPEND} + nls? ( virtual/libintl ) + selinux? ( sec-policy/selinux-gpg ) + wks-server? ( virtual/mta ) +" +PDEPEND=" + app-crypt/pinentry + alternatives? ( + app-alternatives/gpg[-freepg(-)] + ) +" +BDEPEND=" + virtual/pkgconfig + doc? ( sys-apps/texinfo ) + nls? ( sys-devel/gettext ) + verify-sig? ( sec-keys/openpgp-keys-gnupg ) +" + +DOCS=( + ChangeLog NEWS README THANKS TODO VERSION + doc/FAQ doc/DETAILS doc/HACKING doc/TRANSLATE doc/OpenPGP doc/KEYSERVER +) + +PATCHES=( + "${FILESDIR}"/${PN}-2.1.20-gpgscm-Use-shorter-socket-path-lengts-to-improve-tes.patch + "${FILESDIR}"/0002-Fix-stub-functions-to-avoid-LTO-linking-bugs-followup.patch +) + +src_prepare() { + default + + GNUPG_SYSTEMD_UNITS=( + dirmngr.service + dirmngr.socket + gpg-agent-browser.socket + gpg-agent-extra.socket + gpg-agent.service + gpg-agent.socket + gpg-agent-ssh.socket + ) + + cp "${GNUPG_SYSTEMD_UNITS[@]/#/${FILESDIR}/}" "${T}" || die + + # Inject SSH_AUTH_SOCK into user's sessions after enabling gpg-agent-ssh.socket in systemctl --user mode, + # idea borrowed from libdbus, see + # https://gitlab.freedesktop.org/dbus/dbus/-/blob/master/bus/systemd-user/dbus.socket.in#L6 + # + # This cannot be upstreamed, as it requires determining the exact prefix of 'systemctl', + # which in turn requires discovery in Autoconf, something that upstream deeply resents. + sed -e "/DirectoryMode=/a ExecStartPost=-${EPREFIX}/bin/systemctl --user set-environment SSH_AUTH_SOCK=%t/gnupg/S.gpg-agent.ssh" \ + -i "${T}"/gpg-agent-ssh.socket || die + + # Since 2.5.3, --supervised is called --deprecated-supervised. See + # https://dev.gnupg.org/rGa019a0fcd8dfb9d1eae5bc991fdd54b7cf55641e + sed -i "s/--supervised/--deprecated-supervised/g" "${T}"/*.service || die +} + +my_src_configure() { + local myconf=( + # --enable-selinux controls ENABLE_SELINUX_HACKS which + # prohibits import of secret keys, so doesn't seem desirable + # to have that forced on with USE=selinux. + $(use_enable bzip2) + $(use_enable nls) + $(use_enable smartcard scdaemon) + $(use_enable ssl gnutls) + $(use_enable test all-tests) + $(use_enable test tests) + $(use_enable tofu) + $(use_enable tofu keyboxd) + $(use_enable tofu sqlite) + $(usex tpm '--with-tss=intel' '--disable-tpm2d') + $(use smartcard && use_enable usb ccid-driver || echo '--disable-ccid-driver') + $(use_enable wks-server wks-tools) + $(use_with ldap) + $(use_with readline) + + # Hardcode mailprog to /usr/libexec/sendmail even if it does not exist. + # As of GnuPG 2.3, the mailprog substitution is used for the binary called + # by wks-client & wks-server; and if it's autodetected but not not exist at + # build time, then then 'gpg-wks-client --send' functionality will not + # work. This has an unwanted side-effect in stage3 builds: there was a + # [R]DEPEND on virtual/mta, which also brought in virtual/logger, bloating + # the build where the install guide previously make the user chose the + # logger & mta early in the install. + --with-mailprog=/usr/libexec/sendmail + + --disable-ntbtls + --enable-gpgsm + --enable-large-secmem + + CC_FOR_BUILD="$(tc-getBUILD_CC)" + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" + + $("${S}/configure" --help | grep -o -- '--without-.*-prefix') + ) + + if use prefix && use usb; then + # bug #649598 + append-cppflags -I"${ESYSROOT}/usr/include/libusb-1.0" + fi + + if [[ ${CHOST} == *-solaris* ]] ; then + # these somehow are treated as fatal, but Solaris has different + # types for getpeername with socket_t + append-flags -Wno-incompatible-pointer-types + append-flags -Wno-unused-label + fi + + # bug #663142 + if use user-socket; then + myconf+=( --enable-run-gnupg-user-socket ) + fi + + # glib fails and picks up clang's internal stdint.h causing weird errors + tc-is-clang && export gl_cv_absolute_stdint_h="${ESYSROOT}"/usr/include/stdint.h + + econf "${myconf[@]}" +} + +my_src_compile() { + default + + use doc && emake -C doc html +} + +my_src_test() { + export TESTFLAGS="--parallel=$(get_makeopts_jobs)" + + default +} + +my_src_install() { + emake DESTDIR="${D}" install + + use tools && dobin tools/{gpgconf,gpgsplit,gpg-check-pattern} tools/make-dns-cert + + if use alternatives; then + # rename for app-alternatives/gpg + mv "${ED}"/usr/bin/gpg{,-reference} || die + mv "${ED}"/usr/bin/gpgv{,-reference} || die + mv "${ED}"/usr/share/man/man1/gpg{,-reference}.1 || die + mv "${ED}"/usr/share/man/man1/gpgv{,-reference}.1 || die + else + dosym gpg /usr/bin/gpg2 + dosym gpgv /usr/bin/gpgv2 + echo ".so man1/gpg.1" > "${ED}"/usr/share/man/man1/gpg2.1 || die + echo ".so man1/gpgv.1" > "${ED}"/usr/share/man/man1/gpgv2.1 || die + fi + + use doc && dodoc doc/gnupg.html/* +} + +my_src_install_all() { + einstalldocs + + use tools && dobin tools/{convert-from-106,mail-signed-keys,lspgpot} + use doc && dodoc doc/*.png + + # Dropped upstream in https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commitdiff;h=eae28f1bd4a5632e8f8e85b7248d1c4d4a10a5ed. + dodoc "${FILESDIR}"/README-systemd + systemd_douserunit "${GNUPG_SYSTEMD_UNITS[@]/#/${T}/}" +} + +pkg_postinst() { + # If /usr/bin/gpg and /usr/bin/gpgv do not exist, provide them. + if [[ ! -e ${EROOT}/usr/bin/gpg ]]; then + ln -sf -- gpg-reference "${EROOT}"/usr/bin/gpg || die + fi + + if [[ ! -e ${EROOT}/usr/bin/gpgv ]]; then + ln -sf -- gpgv-reference "${EROOT}"/usr/bin/gpgv || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/libmd/Manifest b/sdk_container/src/third_party/portage-stable/app-crypt/libmd/Manifest index b76f741df08..fce0c686960 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/libmd/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-crypt/libmd/Manifest @@ -1,2 +1,4 @@ -DIST libmd-1.0.4.tar.xz 264472 BLAKE2B ddc2da74635f5cc009c66a58ae82b83e6e0930e18af8a6b0ecec7cbf378246707b493a99fb97d3491d0d626a0d5ef068baea6a3ba2ec311c5a1516ba5b4e2fd5 SHA512 731553ecc5e0e1eb228cced8fccd531fe31fb5c7627ca30013d287e1aeb8222959cf7498fbb7414bbabb967b25d4e8b0edd54fc47f6ccf55fc91087db0725ce3 DIST libmd-1.1.0.tar.xz 271228 BLAKE2B a4dc72be4a46609d41453b19ba3110043e74fd0810d59f872e11151dbe87b0bdab203ef72c9d19255db32493b229bc0d33549e787979a42db08c838a810e1cdc SHA512 5d0da3337038e474fae7377bbc646d17214e72dc848a7aadc157f49333ce7b5ac1456e45d13674bd410ea08477c6115fc4282fed6c8e6a0bf63537a418c0df96 +DIST libmd-1.1.0.tar.xz.asc 833 BLAKE2B b2322ac61f48b2526eebc23690a3ddd0d36c7104d22307416c5ac0b7bab6db757812026064c055b46585467066fdd068adcd0c0a30f8300f1773efdc6830e28c SHA512 b0ff3baa7eedc205ee6f8b844859145fa6922c39e8f62f1e997851a65b2881649b438a37baa5800d140541da6f4dacc9f92a370f945d7461937b8cdedeca1cef +DIST libmd-1.2.0.tar.xz 287992 BLAKE2B ab957404bfdbafe5947c76e2317a4b238d55118fbb31cdb888cf09e4d9e4e635e481520b02e248bd5fd0edb3aa996d4497ecfac11fcd66ba14c0b42c5f5210a9 SHA512 03684ab0c7724bb5cd22026ed39430abc47707e44f6756c372ad317e94b977b1b9d83c0ade614b39be1ca2208a0873e940968659476fe62a32c7195530d022a5 +DIST libmd-1.2.0.tar.xz.asc 931 BLAKE2B cb18a008688071c01ce432bdc246c9a506f33649755aed2f1592ace03c86f81e6d1dafec5069c55592ed1b2ff1e8a342b718d17bb47a3c91102d415eea375b94 SHA512 a8065fc4d9c8a9268b32a307fb17c2feafcce594000a94f3acd596f2b9e4c64c0ee0e6799d46c1b1fa6a66b3a69b4a0b1afbd2e29bf1442244bfaec20bd943c9 diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/libmd/files/libmd-1.0.4-fix-version-script-linker-support-detection.patch b/sdk_container/src/third_party/portage-stable/app-crypt/libmd/files/libmd-1.0.4-fix-version-script-linker-support-detection.patch deleted file mode 100644 index bcee3a06611..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-crypt/libmd/files/libmd-1.0.4-fix-version-script-linker-support-detection.patch +++ /dev/null @@ -1,38 +0,0 @@ -From e408786075b9540f76783f5c3ce87f6d1ece13cf Mon Sep 17 00:00:00 2001 -From: Guillem Jover -Date: Sun, 12 Feb 2023 23:55:09 +0100 -Subject: [PATCH] build: Fix version script linker support detection - -When the linker uses --no-undefined-version either specified by the user -or as the default behavior (such as with newer clang >= 16 releases), a missing symbol definition will cause a linker error if that symbol is -listed in the version script. - - -Bug: https://bugs.gentoo.org/894010 -Upstream issue: https://gitlab.freedesktop.org/libbsd/libmd/-/issues/1 -Upstream commit: https://gitlab.freedesktop.org/libbsd/libmd/-/commit/e408786075b9540f76783f5c3ce87f6d1ece13cf - ---- - m4/libmd-linker.m4 | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/m4/libmd-linker.m4 b/m4/libmd-linker.m4 -index 7d1236a..3d6edcd 100644 ---- a/m4/libmd-linker.m4 -+++ b/m4/libmd-linker.m4 -@@ -8,7 +8,11 @@ AC_DEFUN([LIBMD_LINKER_VERSION_SCRIPT], [ - save_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" - AC_LINK_IFELSE([ -- AC_LANG_PROGRAM([], []) -+ AC_LANG_PROGRAM([[ -+extern int symbol(void); -+int symbol(void) { return 0; } -+]], [[ -+]]) - ], [ - libmd_cv_version_script=yes - ], [ --- -GitLab - diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/libmd/libmd-1.0.4.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/libmd/libmd-1.0.4.ebuild deleted file mode 100644 index c3a80c799a2..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-crypt/libmd/libmd-1.0.4.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools multilib-minimal - -DESCRIPTION="Message Digest functions from BSD systems" -HOMEPAGE="https://www.hadrons.org/software/libmd/" -SRC_URI="https://archive.hadrons.org/software/libmd/${P}.tar.xz" - -LICENSE="|| ( BSD BSD-2 ISC BEER-WARE public-domain )" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - -PATCHES=( - "${FILESDIR}/${P}-fix-version-script-linker-support-detection.patch" -) - -src_prepare() { - default - - # Drop on next release, only needed for lld patch - eautoreconf -} - -multilib_src_configure() { - ECONF_SOURCE="${S}" econf -} - -multilib_src_install_all() { - einstalldocs - find "${ED}" -type f -name '*.la' -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/libmd/libmd-1.1.0.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/libmd/libmd-1.1.0.ebuild index 7b7ee9176d3..c41bca7a5da 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/libmd/libmd-1.1.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-crypt/libmd/libmd-1.1.0.ebuild @@ -1,18 +1,24 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit multilib-minimal +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/guillemjover.asc +inherit multilib-minimal verify-sig DESCRIPTION="Message Digest functions from BSD systems" HOMEPAGE="https://www.hadrons.org/software/libmd/" -SRC_URI="https://archive.hadrons.org/software/libmd/${P}.tar.xz" +SRC_URI=" + https://archive.hadrons.org/software/libmd/${P}.tar.xz + verify-sig? ( https://archive.hadrons.org/software/libmd/${P}.tar.xz.asc ) +" LICENSE="|| ( BSD BSD-2 ISC BEER-WARE public-domain )" SLOT="0" KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-guillemjover )" + multilib_src_configure() { ECONF_SOURCE="${S}" econf } diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/libmd/libmd-1.2.0.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/libmd/libmd-1.2.0.ebuild new file mode 100644 index 00000000000..f58248ef167 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-crypt/libmd/libmd-1.2.0.ebuild @@ -0,0 +1,29 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/guillemjover.asc +inherit multilib-minimal verify-sig + +DESCRIPTION="Message Digest functions from BSD systems" +HOMEPAGE="https://www.hadrons.org/software/libmd/" +SRC_URI=" + https://archive.hadrons.org/software/libmd/${P}.tar.xz + verify-sig? ( https://archive.hadrons.org/software/libmd/${P}.tar.xz.asc ) +" + +LICENSE="|| ( BSD BSD-2 ISC BEER-WARE public-domain )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-guillemjover )" + +multilib_src_configure() { + ECONF_SOURCE="${S}" econf +} + +multilib_src_install_all() { + einstalldocs + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/Manifest b/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/Manifest index b68008a2f10..c2444c03c0f 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/Manifest @@ -1,4 +1,3 @@ DIST krb5-1.21.3.tar.gz 9136145 BLAKE2B e909a55eaedab68e5c829bb7bbd26cec5db2d7b8d97f3b034de94d8f957003f16977ac619afee3b862f288e59f05c5e44f41e65b8883961c8b22a26e2f4733bc SHA512 87bc06607f4d95ff604169cea22180703a42d667af05f66f1569b8bd592670c42820b335e5c279e8b4f066d1e7da20f1948a1e4def7c5d295c170cbfc7f49c71 -DIST krb5-1.22.1.tar.gz 8747101 BLAKE2B aed6a7f511ae7085a81fa6dc553881ea478bb8bb8aa43ab13e1312ead392fb93173998bfdfc730dca4d715b2ed52da6a12f2417f95525d9ff5c4629e8ca5fedc SHA512 c33bfada5e0c035133436031d9818ad97b0ff08578691c832b743c55751a2cf9460501d3cc658ab79655ed7a0f9f4795ba94b363d6b616795d9bdca668825c52 DIST krb5-1.22.2.tar.gz 8747729 BLAKE2B c0fee5d954fee1c10dcd16f37243fbf586b23f1136e58c21202cd38f195586592cf6d5fa1b9eba27c8b5210db4dcc72ea47a20011295980d5eda671861571a7e SHA512 3237cacfb2019285107991a3211e0d74944c605942ab38a8b4b372703b8f02f5779fa2de80c4e201bd59703d557f37ac346bdc5ea14b986b0a0db23eb422fc6f DIST mit-krb5-1.21.3-c23.patch.xz 59948 BLAKE2B f611ccda16ee4e2bcfbdbaf72204f0ede6ebe3517f4df016ae7db9c364bc55d81e1e32aaaa0506197ddca09555a5a4d3ef75f7c33b6434115b6c57bd99f1bcb5 SHA512 35b226b351a81f4610e1ef2be9822a57f94f9cc5017ed082584fb8c85a0f0be78b8e9fda4fc5c78248421be39517df639cee9cae49ddccf3d62f1a0cff4224ae diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/files/mit-krb5-1.22-openssl-4.patch b/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/files/mit-krb5-1.22-openssl-4.patch new file mode 100644 index 00000000000..09f1debb633 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/files/mit-krb5-1.22-openssl-4.patch @@ -0,0 +1,243 @@ +Bug 973539 - Part of commit 5e4e8452328804948d042235bbf58ca457795857 +diff --git a/plugins/preauth/pkinit/pkinit_crypto_openssl.c b/plugins/preauth/pkinit/pkinit_crypto_openssl.c +index d1fe18e5ab..aa969aa37c 100644 +--- a/plugins/preauth/pkinit/pkinit_crypto_openssl.c ++++ b/plugins/preauth/pkinit/pkinit_crypto_openssl.c +@@ -209,13 +209,20 @@ create_identifiers_from_stack(STACK_OF(X509) *sk, + #define EVP_MD_CTX_new EVP_MD_CTX_create + #define EVP_MD_CTX_free EVP_MD_CTX_destroy + #define ASN1_STRING_get0_data ASN1_STRING_data ++#define X509_STORE_CTX_set0_trusted_stack X509_STORE_CTX_trusted_stack + + /* +- * 1.1 adds DHX support, which uses the RFC 3279 DomainParameters encoding we ++ * 1.0.2 adds DHX support, which uses the RFC 3279 DomainParameters encoding we + * need for PKINIT. For 1.0 we must use the original DH type when creating + * EVP_PKEY objects. + */ ++#ifndef EVP_PKEY_DHX + #define EVP_PKEY_DHX EVP_PKEY_DH ++#endif ++ ++/* Make X509_NAME_print_ex() accept a const name pointer by adding a cast. */ ++#define X509_NAME_print_ex(a, b, c, d) \ ++ X509_NAME_print_ex(a, (X509_NAME *)b, c, d) + + /* 1.1 makes many handle types opaque and adds accessors. Add compatibility + * versions of the new accessors we use for pre-1.1. */ +@@ -295,6 +302,10 @@ compat_ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s) + #define EVP_PKEY_get_bits EVP_PKEY_bits + #define EVP_PKEY_get_base_id EVP_PKEY_base_id + ++/* Make X509_dup() accept a const pointer by adding a cast. */ ++#define X509_dup(a) X509_dup((X509 *)a) ++#define i2d_X509_NAME(a, b) i2d_X509_NAME((X509_NAME *)a, b) ++ + /* + * Convert *dh to an EVP_PKEY object, taking ownership of *dh and setting it to + * NULL. On error, return NULL and do not take ownership of or change *dh. +@@ -318,6 +329,11 @@ dh_to_pkey(DH **dh) + } + #endif /* OPENSSL_VERSION_NUMBER < 0x30000000L */ + ++#if OPENSSL_VERSION_NUMBER < 0x40000000L ++/* Make X509V3_EXT_d2i() accept a const pointer by adding a cast. */ ++#define X509V3_EXT_d2i(a) X509V3_EXT_d2i((X509_EXTENSION *)a) ++#endif ++ + /* Encode a bignum as an ASN.1 integer in DER. */ + static int + encode_bn_der(const BIGNUM *bn, uint8_t **der_out, int *len_out) +@@ -1134,6 +1150,13 @@ oerr_cert(krb5_context context, krb5_error_code code, X509_STORE_CTX *certctx, + return oerr(context, code, _("%s (depth %d): %s"), msg, depth, errstr); + } + ++/* Convert an OpenSSL ASN.1 string value to krb5_data, without copying. */ ++static inline krb5_data ++asn1string_to_data(ASN1_STRING *s) ++{ ++ return make_data((char *)ASN1_STRING_get0_data(s), ASN1_STRING_length(s)); ++} ++ + krb5_error_code + pkinit_init_plg_crypto(krb5_context context, + pkinit_plg_crypto_context *cryptoctx) +@@ -1775,7 +1798,7 @@ cms_signeddata_create(krb5_context context, + goto cleanup; + X509_STORE_CTX_init(certctx, certstore, id_cryptoctx->my_cert, + id_cryptoctx->intermediateCAs); +- X509_STORE_CTX_trusted_stack(certctx, id_cryptoctx->trustedCAs); ++ X509_STORE_CTX_set0_trusted_stack(certctx, id_cryptoctx->trustedCAs); + if (!X509_verify_cert(certctx)) { + retval = oerr_cert(context, 0, certctx, + _("Failed to verify own certificate")); +@@ -2002,7 +2025,7 @@ cms_signeddata_verify(krb5_context context, + unsigned char *d; + *is_signed = 0; + octets = CMS_get0_content(cms); +- if (!octets || ((*octets)->type != V_ASN1_OCTET_STRING)) { ++ if (!octets || (ASN1_STRING_type(*octets) != V_ASN1_OCTET_STRING)) { + retval = KRB5KDC_ERR_PREAUTH_FAILED; + krb5_set_error_message(context, retval, + _("Invalid pkinit packet: octet string " +@@ -2058,7 +2081,8 @@ cms_signeddata_verify(krb5_context context, + /* We cannot use CMS_dataInit because there may be no digest */ + octets = CMS_get0_content(cms); + if (octets) +- out = BIO_new_mem_buf((*octets)->data, (*octets)->length); ++ out = BIO_new_mem_buf(ASN1_STRING_get0_data(*octets), ++ ASN1_STRING_length(*octets)); + if (out == NULL) + goto cleanup; + } else { +@@ -2118,7 +2142,7 @@ cms_signeddata_verify(krb5_context context, + + /* add trusted CAs certificates for cert verification */ + if (idctx->trustedCAs != NULL) +- X509_STORE_CTX_trusted_stack(cert_ctx, idctx->trustedCAs); ++ X509_STORE_CTX_set0_trusted_stack(cert_ctx, idctx->trustedCAs); + else { + pkiDebug("unable to find any trusted CAs\n"); + goto cleanup; +@@ -2156,7 +2180,7 @@ cms_signeddata_verify(krb5_context context, + i = X509_verify_cert(cert_ctx); + if (i <= 0) { + int j = X509_STORE_CTX_get_error(cert_ctx); +- X509 *cert; ++ const X509 *cert; + + cert = X509_STORE_CTX_get_current_cert(cert_ctx); + reqctx->received_cert = X509_dup(cert); +@@ -2316,7 +2340,7 @@ crypto_retrieve_X509_sans(krb5_context context, + krb5_principal *princs = NULL; + char **upns = NULL; + unsigned char **dnss = NULL; +- X509_EXTENSION *ext = NULL; ++ const X509_EXTENSION *ext = NULL; + GENERAL_NAMES *ialt = NULL; + GENERAL_NAME *gen = NULL; + +@@ -2379,8 +2403,7 @@ crypto_retrieve_X509_sans(krb5_context context, + gen = sk_GENERAL_NAME_value(ialt, i); + switch (gen->type) { + case GEN_OTHERNAME: +- name.length = gen->d.otherName->value->value.sequence->length; +- name.data = (char *)gen->d.otherName->value->value.sequence->data; ++ name = asn1string_to_data(gen->d.otherName->value->value.sequence); + if (princs != NULL && + OBJ_cmp(plgctx->id_pkinit_san, + gen->d.otherName->type_id) == 0) { +@@ -2414,12 +2437,13 @@ crypto_retrieve_X509_sans(krb5_context context, + case GEN_DNS: + if (dnss != NULL) { + /* Prevent abuse of embedded null characters. */ +- if (memchr(gen->d.dNSName->data, '\0', gen->d.dNSName->length)) ++ if (memchr(ASN1_STRING_get0_data(gen->d.dNSName), '\0', ++ ASN1_STRING_length(gen->d.dNSName))) + break; + pkiDebug("%s: found dns name = %s\n", __FUNCTION__, +- gen->d.dNSName->data); ++ ASN1_STRING_get0_data(gen->d.dNSName)); + dnss[d] = (unsigned char *) +- strdup((char *)gen->d.dNSName->data); ++ strdup((char *)ASN1_STRING_get0_data(gen->d.dNSName)); + if (dnss[d] == NULL) { + pkiDebug("%s: failed to duplicate dns name\n", + __FUNCTION__); +@@ -3094,8 +3118,10 @@ int + pkinit_openssl_init(void) + { + /* Initialize OpenSSL. */ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + ERR_load_crypto_strings(); + OpenSSL_add_all_algorithms(); ++#endif + return 0; + } + +@@ -4766,7 +4792,7 @@ crypto_retrieve_X509_key_usage(krb5_context context, + } + + static krb5_error_code +-rfc2253_name(X509_NAME *name, char **str_out) ++rfc2253_name(const X509_NAME *name, char **str_out) + { + BIO *b = NULL; + char *str; +@@ -5227,7 +5253,7 @@ create_identifiers_from_stack(STACK_OF(X509) *sk, + int i = 0, sk_size = sk_X509_num(sk); + krb5_external_principal_identifier **krb5_cas = NULL; + X509 *x = NULL; +- X509_NAME *xn = NULL; ++ const X509_NAME *xn = NULL; + unsigned char *p = NULL; + int len = 0; + PKCS7_ISSUER_AND_SERIAL *is = NULL; +diff --git a/plugins/tls/k5tls/openssl.c b/plugins/tls/k5tls/openssl.c +index 42d72dc9ec..7763327b7a 100644 +--- a/plugins/tls/k5tls/openssl.c ++++ b/plugins/tls/k5tls/openssl.c +@@ -38,6 +38,24 @@ + #include + #include + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++/* Make X509_get_subject_name() accept a const pointer by adding a cast. */ ++#define X509_get_subject_name(a) X509_get_subject_name((X509 *)a) ++ ++/* OpenSSL 1.0 did not have TLS_client_method(); use the best alternative. */ ++#define TLS_client_method() SSLv23_client_method() ++#endif ++ ++#if OPENSSL_VERSION_NUMBER < 0x40000000L ++/* ++ * OpenSSL 4.0 constifies the result of X509_STORE_CTX_get_current_cert() and ++ * the input of X509_check_host() and X509_check_ip_asc(). For prior versions, ++ * make the latter two functions accept const pointers via a cast. ++ */ ++#define X509_check_host(a, b, c, d, e) X509_check_host((X509 *)a, b, c, d, e) ++#define X509_check_ip_asc(a, b, c) X509_check_ip_asc((X509 *)a, b, c) ++#endif ++ + struct k5_tls_handle_st { + SSL *ssl; + char *servername; +@@ -51,9 +69,11 @@ MAKE_INIT_FUNCTION(init_openssl); + int + init_openssl(void) + { ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + SSL_library_init(); + SSL_load_error_strings(); + OpenSSL_add_all_algorithms(); ++#endif + ex_context_id = SSL_get_ex_new_index(0, NULL, NULL, NULL, NULL); + ex_handle_id = SSL_get_ex_new_index(0, NULL, NULL, NULL, NULL); + return 0; +@@ -72,7 +92,7 @@ flush_errors(krb5_context context) + } + + static krb5_boolean +-check_cert_name_or_ip(X509 *x, const char *expected_name) ++check_cert_name_or_ip(const X509 *x, const char *expected_name) + { + struct in_addr in; + struct in6_addr in6; +@@ -89,7 +109,7 @@ check_cert_name_or_ip(X509 *x, const char *expected_name) + static int + verify_callback(int preverify_ok, X509_STORE_CTX *store_ctx) + { +- X509 *x; ++ const X509 *x; + SSL *ssl; + BIO *bio; + krb5_context context; +@@ -246,7 +266,7 @@ setup(krb5_context context, SOCKET fd, const char *servername, + return KRB5_PLUGIN_OP_NOTSUPP; + + /* Do general SSL library setup. */ +- ctx = SSL_CTX_new(SSLv23_client_method()); ++ ctx = SSL_CTX_new(TLS_client_method()); + if (ctx == NULL) + goto error; + diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/files/mit-krb5-1.22-socket-too-long.patch b/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/files/mit-krb5-1.22-socket-too-long.patch new file mode 100644 index 00000000000..ec56e397ee2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/files/mit-krb5-1.22-socket-too-long.patch @@ -0,0 +1,39 @@ +Use a short tempdir for UNIX-domain sockets in t_changepw.py. + +Otherwise, we get a UNIX domain socket path too long error. +Mirror the approach already used by t_ccache.py / t_otp.py + +--- a/tests/t_changepw.py ++++ b/tests/t_changepw.py +@@ -1,10 +1,14 @@ + from k5test import * ++import tempfile + +-# Also listen on a UNIX domain sockets for kpasswd. ++# sun_path is limited to 108 bytes on Linux; the portage build path ++# can push $testdir/*.sock past that limit. Use a short tempdir ++# instead, matching what t_ccache.py / t_otp.py already do. ++sockdir = tempfile.mkdtemp() + unix_conf = {'realms': {'$realm': { +- 'kdc_listen': '$port0, $testdir/krb5.sock', +- 'kadmind_listen': '$port1, $testdir/kadmin.sock', +- 'kpasswd_listen': '$port2, $testdir/kpasswd.sock'}}} ++ 'kdc_listen': '$port0, %s/k' % sockdir, ++ 'kadmind_listen': '$port1, %s/a' % sockdir, ++ 'kpasswd_listen': '$port2, %s/p' % sockdir}}} + realm = K5Realm(create_host=False,get_creds=False, kdc_conf=unix_conf) + realm.start_kadmind() + realm.prep_kadmin() +@@ -56,9 +60,9 @@ realm.run([kadminl, 'delprinc', 'testprinc']) + mark('password change over UNIX domain socket') + + unix_cli_conf = {'realms': {'$realm': { +- 'kdc': '$testdir/krb5.sock', +- 'admin_server': '$testdir/kadmin.sock', +- 'kpasswd_server': '$testdir/kpasswd.sock'}}} ++ 'kdc': '%s/k' % sockdir, ++ 'admin_server': '%s/a' % sockdir, ++ 'kpasswd_server': '%s/p' % sockdir}}} + unix_cli = realm.special_env('unix_cli', False, krb5_conf=unix_cli_conf) + + realm.run([kadminl, 'addprinc', '-pw', 'pw1', 'testprinc']) diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.22.1.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.22.1.ebuild deleted file mode 100644 index 008665a16e9..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.22.1.ebuild +++ /dev/null @@ -1,155 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{12..14} ) -inherit autotools flag-o-matic python-any-r1 systemd toolchain-funcs multilib-minimal - -MY_P="${P/mit-}" -P_DIR=$(ver_cut 1-2) -DESCRIPTION="MIT Kerberos V" -HOMEPAGE="https://web.mit.edu/kerberos/www/" -SRC_URI="https://web.mit.edu/kerberos/dist/krb5/${P_DIR}/${MY_P}.tar.gz" -S=${WORKDIR}/${MY_P}/src - -LICENSE="openafs-krb5-a BSD MIT OPENLDAP BSD-2 HPND BSD-4 ISC RSA CC-BY-SA-3.0 || ( BSD-2 GPL-2+ )" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="cpu_flags_x86_aes doc +keyutils lmdb nls openldap +pkinit selinux test xinetd" - -RESTRICT="!test? ( test )" - -DEPEND=" - !!app-crypt/heimdal - >=sys-fs/e2fsprogs-1.46.4-r51[${MULTILIB_USEDEP}] - || ( - >=dev-libs/libverto-0.2.5[libev,${MULTILIB_USEDEP}] - >=dev-libs/libverto-0.2.5[libevent,${MULTILIB_USEDEP}] - ) - keyutils? ( >=sys-apps/keyutils-1.5.8:=[${MULTILIB_USEDEP}] ) - lmdb? ( dev-db/lmdb:= ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - openldap? ( >=net-nds/openldap-2.4.38-r1:=[${MULTILIB_USEDEP}] ) - pkinit? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) - xinetd? ( sys-apps/xinetd ) - " -BDEPEND=" - ${PYTHON_DEPS} - app-alternatives/yacc - >=sys-fs/e2fsprogs-1.46.4-r51 - cpu_flags_x86_aes? ( - amd64? ( dev-lang/yasm ) - x86? ( dev-lang/yasm ) - ) - doc? ( virtual/latex-base ) - test? ( dev-util/cmocka ) - " -RDEPEND="${DEPEND} - selinux? ( sec-policy/selinux-kerberos )" - -PATCHES=( - "${FILESDIR}/${PN}-1.12_warn_cflags.patch" - "${FILESDIR}/${PN}_dont_create_rundir.patch" - "${FILESDIR}/${PN}-1.18.2-krb5-config.patch" -) - -MULTILIB_CHOST_TOOLS=( - /usr/bin/krb5-config -) - -src_prepare() { - default - # Make sure we always use the system copies. - rm -rf util/{et,ss,verto} - sed -i 's:^[[:space:]]*util/verto$::' configure.ac || die - - eautoreconf -} - -src_configure() { - # lto-type-mismatch (bug #854225) - filter-lto - - multilib-minimal_src_configure -} - -multilib_src_configure() { - ECONF_SOURCE=${S} \ - AR="$(tc-getAR)" \ - WARN_CFLAGS="set" \ - econf \ - $(use_with openldap ldap) \ - $(use_enable nls) \ - $(use_enable pkinit) \ - $(use_with lmdb) \ - $(use_with keyutils) \ - --without-hesiod \ - --enable-shared \ - --with-system-et \ - --with-system-ss \ - --enable-dns-for-realm \ - --enable-kdc-lookaside-cache \ - --with-system-verto \ - --enable-thread-support \ - --disable-rpath -} - -multilib_src_compile() { - emake -j1 -} - -multilib_src_test() { - multilib_is_native_abi && emake -j1 check -} - -multilib_src_install() { - emake \ - DESTDIR="${D}" \ - EXAMPLEDIR="${EPREFIX}/usr/share/doc/${PF}/examples" \ - install -} - -multilib_src_install_all() { - # default database dir - keepdir /var/lib/krb5kdc - - cd .. - dodoc README - - newinitd "${FILESDIR}"/mit-krb5kadmind.initd-r2 mit-krb5kadmind - newinitd "${FILESDIR}"/mit-krb5kdc.initd-r2 mit-krb5kdc - newinitd "${FILESDIR}"/mit-krb5kpropd.initd-r2 mit-krb5kpropd - newconfd "${FILESDIR}"/mit-krb5kadmind.confd mit-krb5kadmind - newconfd "${FILESDIR}"/mit-krb5kdc.confd mit-krb5kdc - newconfd "${FILESDIR}"/mit-krb5kpropd.confd mit-krb5kpropd - - systemd_newunit "${FILESDIR}"/mit-krb5kadmind.service mit-krb5kadmind.service - systemd_newunit "${FILESDIR}"/mit-krb5kdc.service mit-krb5kdc.service - systemd_newunit "${FILESDIR}"/mit-krb5kpropd.service mit-krb5kpropd.service - systemd_newunit "${FILESDIR}"/mit-krb5kpropd_at.service "mit-krb5kpropd@.service" - systemd_newunit "${FILESDIR}"/mit-krb5kpropd.socket mit-krb5kpropd.socket - - insinto /etc - newins "${ED}/usr/share/doc/${PF}/examples/krb5.conf" krb5.conf.example - insinto /var/lib/krb5kdc - newins "${ED}/usr/share/doc/${PF}/examples/kdc.conf" kdc.conf.example - - if use openldap ; then - dodoc "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.ldif" - dodoc "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.openldap.ldif" - insinto /etc/openldap/schema - doins "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.schema" - fi - - if use xinetd ; then - insinto /etc/xinetd.d - newins "${FILESDIR}/kpropd.xinetd" kpropd - fi - - if use doc; then - dodoc -r doc/html - docinto pdf - dodoc doc/pdf/*.pdf - fi -} diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.22.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.22.2-r1.ebuild new file mode 100644 index 00000000000..a9b51a01787 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.22.2-r1.ebuild @@ -0,0 +1,162 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..14} ) +inherit autotools flag-o-matic python-any-r1 systemd toolchain-funcs multilib-minimal + +MY_P="${P/mit-}" +P_DIR=$(ver_cut 1-2) +DESCRIPTION="MIT Kerberos V" +HOMEPAGE="https://web.mit.edu/kerberos/www/" +SRC_URI="https://web.mit.edu/kerberos/dist/krb5/${P_DIR}/${MY_P}.tar.gz" +S=${WORKDIR}/${MY_P}/src + +LICENSE="openafs-krb5-a BSD MIT OPENLDAP BSD-2 HPND BSD-4 ISC RSA CC-BY-SA-3.0 || ( BSD-2 GPL-2+ )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="cpu_flags_x86_aes doc +keyutils lmdb nls openldap +pkinit selinux test xinetd" + +RESTRICT="!test? ( test )" + +DEPEND=" + !!app-crypt/heimdal + >=sys-fs/e2fsprogs-1.46.4-r51[${MULTILIB_USEDEP}] + || ( + >=dev-libs/libverto-0.2.5[libev,${MULTILIB_USEDEP}] + >=dev-libs/libverto-0.2.5[libevent,${MULTILIB_USEDEP}] + ) + keyutils? ( >=sys-apps/keyutils-1.5.8:=[${MULTILIB_USEDEP}] ) + lmdb? ( dev-db/lmdb:= ) + nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) + openldap? ( >=net-nds/openldap-2.4.38-r1:=[${MULTILIB_USEDEP}] ) + pkinit? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) + xinetd? ( sys-apps/xinetd ) + " +BDEPEND=" + ${PYTHON_DEPS} + app-alternatives/yacc + >=sys-fs/e2fsprogs-1.46.4-r51 + cpu_flags_x86_aes? ( + amd64? ( dev-lang/yasm ) + x86? ( dev-lang/yasm ) + ) + doc? ( virtual/latex-base ) + test? ( dev-util/cmocka ) + " +RDEPEND="${DEPEND} + selinux? ( sec-policy/selinux-kerberos )" + +PATCHES=( + "${FILESDIR}/${PN}-1.12_warn_cflags.patch" + "${FILESDIR}/${PN}_dont_create_rundir.patch" + "${FILESDIR}/${PN}-1.18.2-krb5-config.patch" +) + +MULTILIB_CHOST_TOOLS=( + /usr/bin/krb5-config +) + +src_prepare() { + default + # Make sure we always use the system copies. + rm -rf util/{et,ss,verto} + sed -i 's:^[[:space:]]*util/verto$::' configure.ac || die + + eautoreconf +} + +src_configure() { + # lto-type-mismatch (bug #854225) + filter-lto + + if tc-is-cross-compiler; then + # assume modern system + export krb5_cv_attr_constructor_destructor=y + export ac_cv_printf_positional=y + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + ECONF_SOURCE=${S} \ + AR="$(tc-getAR)" \ + WARN_CFLAGS="set" \ + econf \ + $(use_with openldap ldap) \ + $(use_enable nls) \ + $(use_enable pkinit) \ + $(use_enable cpu_flags_x86_aes aesni) \ + $(use_with lmdb) \ + $(use_with keyutils) \ + --without-hesiod \ + --enable-shared \ + --with-system-et \ + --with-system-ss \ + --enable-dns-for-realm \ + --enable-kdc-lookaside-cache \ + --with-system-verto \ + --enable-thread-support \ + --disable-rpath +} + +multilib_src_compile() { + emake -j1 +} + +multilib_src_test() { + multilib_is_native_abi && emake -j1 check +} + +multilib_src_install() { + emake \ + DESTDIR="${D}" \ + EXAMPLEDIR="${EPREFIX}/usr/share/doc/${PF}/examples" \ + install +} + +multilib_src_install_all() { + # default database dir + keepdir /var/lib/krb5kdc + + cd .. + dodoc README + + newinitd "${FILESDIR}"/mit-krb5kadmind.initd-r2 mit-krb5kadmind + newinitd "${FILESDIR}"/mit-krb5kdc.initd-r2 mit-krb5kdc + newinitd "${FILESDIR}"/mit-krb5kpropd.initd-r2 mit-krb5kpropd + newconfd "${FILESDIR}"/mit-krb5kadmind.confd mit-krb5kadmind + newconfd "${FILESDIR}"/mit-krb5kdc.confd mit-krb5kdc + newconfd "${FILESDIR}"/mit-krb5kpropd.confd mit-krb5kpropd + + systemd_newunit "${FILESDIR}"/mit-krb5kadmind.service mit-krb5kadmind.service + systemd_newunit "${FILESDIR}"/mit-krb5kdc.service mit-krb5kdc.service + systemd_newunit "${FILESDIR}"/mit-krb5kpropd.service mit-krb5kpropd.service + systemd_newunit "${FILESDIR}"/mit-krb5kpropd_at.service "mit-krb5kpropd@.service" + systemd_newunit "${FILESDIR}"/mit-krb5kpropd.socket mit-krb5kpropd.socket + + insinto /etc + newins "${ED}/usr/share/doc/${PF}/examples/krb5.conf" krb5.conf.example + insinto /var/lib/krb5kdc + newins "${ED}/usr/share/doc/${PF}/examples/kdc.conf" kdc.conf.example + + if use openldap ; then + dodoc "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.ldif" + dodoc "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.openldap.ldif" + insinto /etc/openldap/schema + doins "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.schema" + fi + + if use xinetd ; then + insinto /etc/xinetd.d + newins "${FILESDIR}/kpropd.xinetd" kpropd + fi + + if use doc; then + dodoc -r doc/html + docinto pdf + dodoc doc/pdf/*.pdf + fi +} diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.22.2-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.22.2-r2.ebuild new file mode 100644 index 00000000000..ad39940b990 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.22.2-r2.ebuild @@ -0,0 +1,164 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..14} ) +inherit autotools flag-o-matic python-any-r1 systemd toolchain-funcs multilib-minimal + +MY_P="${P/mit-}" +P_DIR=$(ver_cut 1-2) +DESCRIPTION="MIT Kerberos V" +HOMEPAGE="https://web.mit.edu/kerberos/www/" +SRC_URI="https://web.mit.edu/kerberos/dist/krb5/${P_DIR}/${MY_P}.tar.gz" +S=${WORKDIR}/${MY_P}/src + +LICENSE="openafs-krb5-a BSD MIT OPENLDAP BSD-2 HPND BSD-4 ISC RSA CC-BY-SA-3.0 || ( BSD-2 GPL-2+ )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="cpu_flags_x86_aes doc +keyutils lmdb nls openldap +pkinit selinux test xinetd" + +RESTRICT="!test? ( test )" + +DEPEND=" + !!app-crypt/heimdal + >=sys-fs/e2fsprogs-1.46.4-r51[${MULTILIB_USEDEP}] + || ( + >=dev-libs/libverto-0.2.5[libev,${MULTILIB_USEDEP}] + >=dev-libs/libverto-0.2.5[libevent,${MULTILIB_USEDEP}] + ) + keyutils? ( >=sys-apps/keyutils-1.5.8:=[${MULTILIB_USEDEP}] ) + lmdb? ( dev-db/lmdb:=[${MULTILIB_USEDEP}] ) + nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) + openldap? ( >=net-nds/openldap-2.4.38-r1:=[${MULTILIB_USEDEP}] ) + pkinit? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) + xinetd? ( sys-apps/xinetd ) + " +BDEPEND=" + ${PYTHON_DEPS} + app-alternatives/yacc + >=sys-fs/e2fsprogs-1.46.4-r51 + cpu_flags_x86_aes? ( + amd64? ( dev-lang/yasm ) + x86? ( dev-lang/yasm ) + ) + doc? ( virtual/latex-base ) + test? ( dev-util/cmocka ) + " +RDEPEND="${DEPEND} + selinux? ( sec-policy/selinux-kerberos )" + +PATCHES=( + "${FILESDIR}/${PN}-1.12_warn_cflags.patch" + "${FILESDIR}/${PN}_dont_create_rundir.patch" + "${FILESDIR}/${PN}-1.18.2-krb5-config.patch" + "${FILESDIR}/${PN}-1.22-openssl-4.patch" + "${FILESDIR}/${PN}-1.22-socket-too-long.patch" +) + +MULTILIB_CHOST_TOOLS=( + /usr/bin/krb5-config +) + +src_prepare() { + default + # Make sure we always use the system copies. + rm -rf util/{et,ss,verto} + sed -i 's:^[[:space:]]*util/verto$::' configure.ac || die + + eautoreconf +} + +src_configure() { + # lto-type-mismatch (bug #854225) + filter-lto + + if tc-is-cross-compiler; then + # assume modern system + export krb5_cv_attr_constructor_destructor=y + export ac_cv_printf_positional=y + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + ECONF_SOURCE=${S} \ + AR="$(tc-getAR)" \ + WARN_CFLAGS="set" \ + econf \ + $(use_with openldap ldap) \ + $(use_enable nls) \ + $(use_enable pkinit) \ + $(use_enable cpu_flags_x86_aes aesni) \ + $(use_with lmdb) \ + $(use_with keyutils) \ + --without-hesiod \ + --enable-shared \ + --with-system-et \ + --with-system-ss \ + --enable-dns-for-realm \ + --enable-kdc-lookaside-cache \ + --with-system-verto \ + --enable-thread-support \ + --disable-rpath +} + +multilib_src_compile() { + emake -j1 +} + +multilib_src_test() { + multilib_is_native_abi && emake -j1 check +} + +multilib_src_install() { + emake \ + DESTDIR="${D}" \ + EXAMPLEDIR="${EPREFIX}/usr/share/doc/${PF}/examples" \ + install +} + +multilib_src_install_all() { + # default database dir + keepdir /var/lib/krb5kdc + + cd .. + dodoc README + + newinitd "${FILESDIR}"/mit-krb5kadmind.initd-r2 mit-krb5kadmind + newinitd "${FILESDIR}"/mit-krb5kdc.initd-r2 mit-krb5kdc + newinitd "${FILESDIR}"/mit-krb5kpropd.initd-r2 mit-krb5kpropd + newconfd "${FILESDIR}"/mit-krb5kadmind.confd mit-krb5kadmind + newconfd "${FILESDIR}"/mit-krb5kdc.confd mit-krb5kdc + newconfd "${FILESDIR}"/mit-krb5kpropd.confd mit-krb5kpropd + + systemd_newunit "${FILESDIR}"/mit-krb5kadmind.service mit-krb5kadmind.service + systemd_newunit "${FILESDIR}"/mit-krb5kdc.service mit-krb5kdc.service + systemd_newunit "${FILESDIR}"/mit-krb5kpropd.service mit-krb5kpropd.service + systemd_newunit "${FILESDIR}"/mit-krb5kpropd_at.service "mit-krb5kpropd@.service" + systemd_newunit "${FILESDIR}"/mit-krb5kpropd.socket mit-krb5kpropd.socket + + insinto /etc + newins "${ED}/usr/share/doc/${PF}/examples/krb5.conf" krb5.conf.example + insinto /var/lib/krb5kdc + newins "${ED}/usr/share/doc/${PF}/examples/kdc.conf" kdc.conf.example + + if use openldap ; then + dodoc "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.ldif" + dodoc "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.openldap.ldif" + insinto /etc/openldap/schema + doins "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.schema" + fi + + if use xinetd ; then + insinto /etc/xinetd.d + newins "${FILESDIR}/kpropd.xinetd" kpropd + fi + + if use doc; then + dodoc -r doc/html + docinto pdf + dodoc doc/pdf/*.pdf + fi +} 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 e26fd4144a9..c9d1e6e9526 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,5 +1,2 @@ -DIST p11-kit-0.25.10.tar.xz 1053532 BLAKE2B 9f5a1be36a5b67ac35b294afdacf1b3a5c1c579b04e3407ea7bc6899cfe74330682653da50975a13e443b3a79379fdf6c6ed2a778933cf5dbba4fdf6dc52c99a SHA512 c5a5dfb6bd46e8964a70f2fc601bd5b61bf88f79d1011c70e6f37a62130c4aad692d8bac83aff2fd2728543274e198d2946ded7a53636835aefb13b9a3155527 -DIST p11-kit-0.25.10.tar.xz.sig 119 BLAKE2B f299d5988284ebb5e8f4919e44e719f694d1c9fcdf7f2b11dc87d6042349993017880c31940167fd5f42a1422e497ca9c5c85c543eb5fe7c0e1aad392c151679 SHA512 c6271ad03454bd44faff7675d5ac305afa40aefabf492df90f4624a241537869029829f43a4a90c3d6b5b83886f009a33b24f097c21cf8745a30cb3263010dbe -DIST p11-kit-0.25.5.tar.xz 1002056 BLAKE2B 96d6a9c2807586abafae4da4df89f566672733963997d6a83e00aaf83a7a0c0e2995638f505e98fb87a90c60bde28814f1e8b7d5071bf0af96bb0467105a1ddc SHA512 177ec6ff5eb891901078306dce2bf3f5c1a0e5c2a8c493bdf5a08ae1ff1240fdf6952961e973c373f80ac3d1d5a9927e07f4da49e4ff92269d992e744889fc94 DIST p11-kit-0.26.2.tar.xz 1069216 BLAKE2B a10eab0fe405ea1f99aaac823bdb48d09caa09decd6bfe134aa702430ed5c09af2416db503ea8954467179c30ab754cc2811b4d8e28ac02cf3847fa021e1a2e2 SHA512 662c77e3133a9ee00f155fc2c1f12fdb16492920f992ab6e9de587c8abf76f990d442643bf8464cc08ad4d1c584f4d6f8d3a006aa7fc791010fa9cb7acaf6b7b DIST p11-kit-0.26.2.tar.xz.sig 119 BLAKE2B f94f0269f327aeaf7f417f1eb6185fe0df9d61a447e942de11250a6d41d579126ac103a35da45bc1a0aab2f04279a9fec118241122df955268b61a449340355f SHA512 84f5d5363eb38a6a501b34103b5c1df08c88b80897fdd4f966c0692131cca0f21f590a58a7810b9e87e86656641ac4e0f4224b0327840890af4a4baf5186e264 diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/p11-kit-0.25.10.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/p11-kit-0.25.10.ebuild deleted file mode 100644 index 98f384fc256..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/p11-kit-0.25.10.ebuild +++ /dev/null @@ -1,81 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..14} ) -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/p11-kit.asc -inherit shell-completion meson-multilib python-any-r1 verify-sig - -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 - verify-sig? ( https://github.com/p11-glue/p11-kit/releases/download/${PV}/${P}.tar.xz.sig ) -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~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 ) - verify-sig? ( sec-keys/openpgp-keys-p11-kit ) -" - -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-crypt/p11-kit/p11-kit-0.25.5.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/p11-kit-0.25.5.ebuild deleted file mode 100644 index fa41b20915f..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/p11-kit-0.25.5.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 bash-completion-r1 flag-o-matic 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 ~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() { - # https://github.com/p11-glue/p11-kit/issues/664 - append-cflags -std=gnu17 - - # 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}" - -Dbashcompdir="$(get_bashcompdir)" - -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-crypt/tpm2-tools/tpm2-tools-5.7.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/tpm2-tools/tpm2-tools-5.7.ebuild index 530587f97e2..3b02c17fdcd 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/tpm2-tools/tpm2-tools-5.7.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-crypt/tpm2-tools/tpm2-tools-5.7.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit autotools bash-completion-r1 flag-o-matic python-any-r1 DESCRIPTION="Tools for the TPM 2.0 TSS" diff --git a/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/Manifest b/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/Manifest index c1187f0369e..188278b7511 100644 --- a/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/Manifest @@ -1 +1 @@ -DIST eclass-manpages-20260124.tar.xz 511500 BLAKE2B ef3e5d5c8eb39478701931eb1e2c6f81edf2600e266b9d285519f5aa72893eca40a15e1a3e60db863c42234a65bfe2c5363b98280d56257e2a31e062b5618a34 SHA512 d058cd4984b01d441659e14f5933c7c0be7cfcd06e4024dd8463912c8ecdc6e124945f8291b11b3c13bdf5c452b759aab9163bce7436ea209f4b7ab8d80300b3 +DIST eclass-manpages-20260426.tar.xz 516192 BLAKE2B 5fd40d3839fefcd90bce77c763b3a6b9ac53eca40f412c01e1bcf1a6744d376d11810a941541783dd901eb4f49ae656e1b78c9bd7ce01f7a6ed3069e29f19513 SHA512 dfc6a5ef6a9ad3bf12857618412146ac5081878fe1d2416b28fc37de85bc9f2ce4a25d3a087b5aff6953e79a3d6f9220be325d68e5b27c8d68fac62a12952aec diff --git a/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20260124.ebuild b/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20260426.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20260124.ebuild rename to sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20260426.ebuild diff --git a/sdk_container/src/third_party/portage-stable/app-editors/nano/Manifest b/sdk_container/src/third_party/portage-stable/app-editors/nano/Manifest index c716a24a634..90350ce4a2c 100644 --- a/sdk_container/src/third_party/portage-stable/app-editors/nano/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-editors/nano/Manifest @@ -1,5 +1,4 @@ -DIST nano-8.6.tar.xz 1707688 BLAKE2B f7e17085d237ec3512b21bb732c2ebcf71a96991344acd0efc3592a650be856aed3ad958df59e27f332f750ac5e46ba7ed06b23093c8b68c4bf0a94aeecd2af0 SHA512 f783c59d2fb47e121c63779c4ce8c6d5e90c31184ca28449c6c9270933d02e19ee60d29b6c9a1122fe59de1132d56d9e402cc63fc88f847cea2b4af6302524ea DIST nano-8.7.1.tar.xz 1726976 BLAKE2B 25c73945c385c6615ad547cad65d6b7edc0098d5310951d09bd91991c93ef09ef2f58a5dec8a00a17c0326a64bce18a1819d2073af94a8afcf43df747843da3b SHA512 13ad1bfc7cbc43687d097b35f481d73021c3ef09c51753ac9e388661f3afe2b1f87c47f62cb51f19818f1f3abf9d2ee80424c44888c0bb3223112dd9b18a0a44 DIST nano-8.7.1.tar.xz.asc 833 BLAKE2B 6d8e96c24cc9a5cf490d1ea8259fc26365fe2a923804e63eb079b3da4acb99bfb12b9adc37d9bdec0ca3f2ef3337b8c651e325962a5ef875e983614195489657 SHA512 71293b248d858b24fca5c150425f1fb89e572f76aa7cac1bec0689acfd6acda64b0f1ef8bb09a871a7f699e1dbd0e6ae277f5ff8dd201aabbff8fc8ed68fe0e1 -DIST nano-8.7.tar.xz 1710220 BLAKE2B 4a7a67f854969960c96d1e3b2c7184f9d9c9fb305a14ff9764a39a8103ca5f5878f9e344b0dc522e27643f93e57582881ea8e664ac9c6eaa99c3b2d9632febdc SHA512 0aac5b1708b05a882cba57f718154e42a6cd8a57f1e1c13c76598fe85645c49703f0c17d2e650da90348eb60c2bdbe349925415b6511c27e5b1bea77d107ab37 -DIST nano-8.7.tar.xz.asc 833 BLAKE2B c5c12598bfa787ddcfcf48a0b6685f98f2577771d64eb7bec16e68767cfcbb928334bd4c729e7dd4fc919a49bf6a7f5ba145e0cb16b9af5b3c15d63c19b76ab6 SHA512 b525ae9bdd69eae326c364ffd76a03592f4012132fdbff061ec804741857f6cb7428ffa4ebb65ab584a3eb1ce310bf9865d4ad2f73b11d2b156b55bd2ade23c1 +DIST nano-9.0.tar.xz 1743088 BLAKE2B 6df92e9f1b0ba8c2ec3dfdd8b4605a34c08f33c747746d8d3b4145894f0cc64b705c59f2b5aee120050eb32292adf78bf267c568a266c17e2f99e48026d38106 SHA512 b684a20b676676900275b37f8dd652589574dd8ea4bf8c1cc97594ce85f8e504c5d746a009c99461308a4aa386aca2fb8e1d462a472fef7d5991d3f7bda6cbc4 +DIST nano-9.0.tar.xz.asc 833 BLAKE2B 4abe90209698d6a9f750032af00cd42304dbd61c8de002099fe58da978fbd8fd504952dffb41a1f7261b79deb8fe9bd654b4c6244848b131c5823856a47ea4ff SHA512 969f7a5cc04c58a10a47c052e12abcad5ad1e3db66b2da99f9e4428e754bcdf1da619b4c16ebf3ae44af701827bba6a5c54f8e470ebc366ad12c6af86d6a9d1b diff --git a/sdk_container/src/third_party/portage-stable/app-editors/nano/files/nano-8.7-glibc-2.43-c23.patch b/sdk_container/src/third_party/portage-stable/app-editors/nano/files/nano-8.7-glibc-2.43-c23.patch deleted file mode 100644 index 1f375ec03c2..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/nano/files/nano-8.7-glibc-2.43-c23.patch +++ /dev/null @@ -1,142 +0,0 @@ -https://bugs.gentoo.org/969220 -https://src.fedoraproject.org/rpms/nano/blob/rawhide/f/nano-8.7-gnulib-c23.patch - -From c028b6f1804a8fef398d7642d8ccb7d8f73150fb Mon Sep 17 00:00:00 2001 -From: Paul Eggert -Date: Sun, 23 Nov 2025 00:50:40 -0800 -Subject: [PATCH] Port to C23 qualifier-generic fns like strchr -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This ports Gnulib to strict C23 platforms that reject code -like ‘char *q = strchr (P, 'x');’ when P is a pointer to const, -because in C23 strchr is a qualifier-generic function so -strchr (P, 'x') returns char const *. -This patch does not attempt to do the following two things, -which might be useful in the future: -1. When compiling on non-C23 platforms, check user code for -portability to platforms that define qualifier-generic functions. -2. Port Gnulib to platforms that have qualifier-generic functions -not listed in the C23 standard, e.g., strchrnul. I don’t know -of any such platforms. -* lib/c++defs.h (_GL_FUNCDECL_SYS_NAME): New macro. -* lib/c++defs.h (_GL_FUNCDECL_SYS): -* lib/stdlib.in.h (bsearch): -Use it, to prevent C23 names like strchr from acting like macros. -* lib/string.in.h (memchr, strchr, strpbrk, strrchr): -Do not #undef when GNULIB_POSIXCHECK is defined, as this could -cause conforming C23 code to fail to conform. It’s not clear why -_GL_WARN_ON_USE_CXX; perhaps it was needed but isn’t any more? -But for now, limit the removal of #undef to these four functions -where #undeffing is clearly undesirable in C23. -* lib/wchar.in.h (wmemchr): Parenthesize function name in decl, -to prevent it from acting like a macro. - -Cherry-picked-by: Lukáš Zaoral -Upstream-commit: df17f4f37ed3ca373d23ad42eae51122bdb96626 ---- - lib/c++defs.h | 12 +++++++++++- - lib/stdlib.in.h | 6 +++--- - lib/string.in.h | 4 ---- - lib/wchar.in.h | 2 +- - 4 files changed, 15 insertions(+), 9 deletions(-) - -diff --git a/lib/c++defs.h b/lib/c++defs.h -index b77979a..7384457 100644 ---- a/lib/c++defs.h -+++ b/lib/c++defs.h -@@ -127,6 +127,16 @@ - #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -+/* _GL_FUNCDECL_SYS_NAME (func) expands to plain func if C++, and to -+ parenthsized func otherwise. Parenthesization is needed in C23 if -+ the function is like strchr and so is a qualifier-generic macro -+ that expands to something more complicated. */ -+#ifdef __cplusplus -+# define _GL_FUNCDECL_SYS_NAME(func) func -+#else -+# define _GL_FUNCDECL_SYS_NAME(func) (func) -+#endif -+ - /* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. -@@ -139,7 +149,7 @@ - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ - #define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ -- _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters -+ _GL_EXTERN_C_FUNC __VA_ARGS__ rettype _GL_FUNCDECL_SYS_NAME (func) parameters - - /* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func -diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h -index bef0aaa..fd0e1e0 100644 ---- a/lib/stdlib.in.h -+++ b/lib/stdlib.in.h -@@ -224,9 +224,9 @@ _GL_INLINE_HEADER_BEGIN - - /* Declarations for ISO C N3322. */ - #if defined __GNUC__ && __GNUC__ >= 15 && !defined __clang__ --_GL_EXTERN_C void *bsearch (const void *__key, -- const void *__base, size_t __nmemb, size_t __size, -- int (*__compare) (const void *, const void *)) -+_GL_EXTERN_C void *_GL_FUNCDECL_SYS_NAME (bsearch) -+ (const void *__key, const void *__base, size_t __nmemb, size_t __size, -+ int (*__compare) (const void *, const void *)) - _GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3) _GL_ARG_NONNULL ((5)); - _GL_EXTERN_C void qsort (void *__base, size_t __nmemb, size_t __size, - int (*__compare) (const void *, const void *)) -diff --git a/lib/string.in.h b/lib/string.in.h -index fdcdd21..8b56acf 100644 ---- a/lib/string.in.h -+++ b/lib/string.in.h -@@ -409,7 +409,6 @@ _GL_CXXALIASWARN1 (memchr, void const *, - _GL_CXXALIASWARN (memchr); - # endif - #elif defined GNULIB_POSIXCHECK --# undef memchr - /* Assume memchr is always declared. */ - _GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - " - "use gnulib module memchr for portability" ); -@@ -674,7 +673,6 @@ _GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - " - #if defined GNULIB_POSIXCHECK - /* strchr() does not work with multibyte strings if the locale encoding is - GB18030 and the character to be searched is a digit. */ --# undef strchr - /* Assume strchr is always declared. */ - _GL_WARN_ON_USE_CXX (strchr, - const char *, char *, (const char *, int), -@@ -981,7 +979,6 @@ _GL_CXXALIASWARN (strpbrk); - Even in this simple case, it does not work with multibyte strings if the - locale encoding is GB18030 and one of the characters to be searched is a - digit. */ --# undef strpbrk - _GL_WARN_ON_USE_CXX (strpbrk, - const char *, char *, (const char *, const char *), - "strpbrk cannot work correctly on character strings " -@@ -1011,7 +1008,6 @@ _GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings " - #if defined GNULIB_POSIXCHECK - /* strrchr() does not work with multibyte strings if the locale encoding is - GB18030 and the character to be searched is a digit. */ --# undef strrchr - /* Assume strrchr is always declared. */ - _GL_WARN_ON_USE_CXX (strrchr, - const char *, char *, (const char *, int), -diff --git a/lib/wchar.in.h b/lib/wchar.in.h -index ab602a2..6be4515 100644 ---- a/lib/wchar.in.h -+++ b/lib/wchar.in.h -@@ -301,7 +301,7 @@ _GL_EXTERN_C int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) - _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3) - _GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3); - # ifndef __cplusplus --_GL_EXTERN_C wchar_t *wmemchr (const wchar_t *__s, wchar_t __wc, size_t __n) -+_GL_EXTERN_C wchar_t *(wmemchr) (const wchar_t *__s, wchar_t __wc, size_t __n) - _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3); - # endif - _GL_EXTERN_C wchar_t *wmemset (wchar_t *__s, wchar_t __wc, size_t __n) --- -2.52.0 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 deleted file mode 100644 index ab2720ef44c..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.6.ebuild +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://git.savannah.gnu.org/git/nano.git" - inherit autotools git-r3 -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 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="GNU GPL'd Pico clone with more functionality" -HOMEPAGE="https://www.nano-editor.org/ https://wiki.gentoo.org/wiki/Nano/Guide" - -LICENSE="GPL-3+ LGPL-2.1+ || ( GPL-3+ FDL-1.2+ )" -SLOT="0" -IUSE="debug justify magic minimal ncurses nls +spell unicode" - -RDEPEND=" - >=sys-libs/ncurses-5.9-r1:=[unicode(+)?] - magic? ( sys-apps/file ) - nls? ( virtual/libintl ) -" -DEPEND="${RDEPEND}" -BDEPEND=" - nls? ( sys-devel/gettext ) - virtual/pkgconfig -" - -REQUIRED_USE=" - magic? ( !minimal ) -" - -# gnulib FPs -QA_CONFIG_IMPL_DECL_SKIP=( unreachable MIN static_assert ) - -src_prepare() { - default - - if [[ ${PV} == 9999 ]] ; then - eautoreconf - fi -} - -src_configure() { - local myconfargs=( - --bindir="${EPREFIX}"/bin - --htmldir=/trash - $(use_enable !minimal color) - $(use_enable !minimal multibuffer) - $(use_enable !minimal nanorc) - $(use_enable magic libmagic) - $(use_enable spell speller) - $(use_enable justify) - $(use_enable debug) - $(use_enable nls) - $(use_enable unicode utf8) - $(use_enable minimal tiny) - ) - - econf "${myconfargs[@]}" -} - -src_install() { - default - - # Don't use "${ED}" here or things break (#654534) - rm -r "${D}"/trash || die - - dodoc doc/sample.nanorc - docinto html - dodoc doc/faq.html - insinto /etc - newins doc/sample.nanorc nanorc - - if ! use minimal ; then - # Enable colorization by default. - sed -i \ - -e '/^# include /s:# *::' \ - "${ED}"/etc/nanorc || die - - # Since nano-5.0 these are no longer being "enabled" by default - # (bug #736848) - local rcdir="/usr/share/nano" - mv "${ED}"${rcdir}/extra/* "${ED}"/${rcdir}/ || die - rmdir "${ED}"${rcdir}/extra || die - - insinto "${rcdir}" - newins "${FILESDIR}/gentoo.nanorc-r1" gentoo.nanorc - fi -} - -pkg_postrm() { - [[ -n ${REPLACED_BY_VERSION} ]] && return - - local e - e=$(unset EDITOR; . "${EROOT}"/etc/profile &>/dev/null; echo "${EDITOR}") - if [[ ${e##*/} == nano ]]; then - ewarn "The EDITOR variable is still set to ${e}." - ewarn "You can update it with \"eselect editor\"." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.7-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.7-r1.ebuild deleted file mode 100644 index 9cb7919fc34..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.7-r1.ebuild +++ /dev/null @@ -1,117 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://git.savannah.gnu.org/git/nano.git" - inherit autotools git-r3 -else - MY_P="${PN}-${PV/_}" - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bennoschulenberg.asc - inherit verify-sig - - SRC_URI=" - https://www.nano-editor.org/dist/v${PV:0:1}/${MY_P}.tar.xz - verify-sig? ( https://www.nano-editor.org/dist/v${PV:0:1}/${MY_P}.tar.xz.asc ) - " - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" - - BDEPEND="verify-sig? ( sec-keys/openpgp-keys-bennoschulenberg )" -fi - -DESCRIPTION="GNU GPL'd Pico clone with more functionality" -HOMEPAGE="https://www.nano-editor.org/ https://wiki.gentoo.org/wiki/Nano/Guide" - -LICENSE="GPL-3+ LGPL-2.1+ || ( GPL-3+ FDL-1.2+ )" -SLOT="0" -IUSE="debug justify magic minimal ncurses nls +spell unicode" - -RDEPEND=" - >=sys-libs/ncurses-5.9-r1:=[unicode(+)?] - magic? ( sys-apps/file ) - nls? ( virtual/libintl ) -" -DEPEND="${RDEPEND}" -BDEPEND+=" - virtual/pkgconfig - nls? ( sys-devel/gettext ) -" - -REQUIRED_USE=" - magic? ( !minimal ) -" - -# gnulib FPs -QA_CONFIG_IMPL_DECL_SKIP=( unreachable MIN static_assert ) - -PATCHES=( - "${FILESDIR}"/${PN}-8.7-glibc-2.43-c23.patch -) - -src_prepare() { - default - - if [[ ${PV} == 9999 ]] ; then - eautoreconf - fi -} - -src_configure() { - local myconfargs=( - --bindir="${EPREFIX}"/bin - --htmldir=/trash - $(use_enable !minimal color) - $(use_enable !minimal multibuffer) - $(use_enable !minimal nanorc) - $(use_enable magic libmagic) - $(use_enable spell speller) - $(use_enable justify) - $(use_enable debug) - $(use_enable nls) - $(use_enable unicode utf8) - $(use_enable minimal tiny) - ) - - econf "${myconfargs[@]}" -} - -src_install() { - default - - # Don't use "${ED}" here or things break (#654534) - rm -r "${D}"/trash || die - - dodoc doc/sample.nanorc - docinto html - dodoc doc/faq.html - insinto /etc - newins doc/sample.nanorc nanorc - - if ! use minimal ; then - # Enable colorization by default. - sed -i \ - -e '/^# include /s:# *::' \ - "${ED}"/etc/nanorc || die - - # Since nano-5.0 these are no longer being "enabled" by default - # (bug #736848) - local rcdir="/usr/share/nano" - mv "${ED}"${rcdir}/extra/* "${ED}"/${rcdir}/ || die - rmdir "${ED}"${rcdir}/extra || die - - insinto "${rcdir}" - newins "${FILESDIR}/gentoo.nanorc-r1" gentoo.nanorc - fi -} - -pkg_postrm() { - [[ -n ${REPLACED_BY_VERSION} ]] && return - - local e - e=$(unset EDITOR; . "${EROOT}"/etc/profile &>/dev/null; echo "${EDITOR}") - if [[ ${e##*/} == nano ]]; then - ewarn "The EDITOR variable is still set to ${e}." - ewarn "You can update it with \"eselect editor\"." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.7.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-9.0.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.7.ebuild rename to sdk_container/src/third_party/portage-stable/app-editors/nano/nano-9.0.ebuild diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/Manifest b/sdk_container/src/third_party/portage-stable/app-editors/vim-core/Manifest index b538ca863bc..5d2dad07d4b 100644 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-editors/vim-core/Manifest @@ -1,6 +1,2 @@ -DIST vim-9.0.2092-patches.tar.xz 2640 BLAKE2B 3a4b2bc57712de3b92b0e8d9b2d428e4d576665a183927051eddd53d019a5ca413c74dc10aff09917ee3120bd2e2ba441219d7238994f0d5ba14fc9c31180199 SHA512 ec27e4056460948ff86bc48a21de239a84b53757a8283144ec121654096796d970ad832234d6591a132bcd38bc12dc507cc7795a11cd383d20f08b4d9bcb051f -DIST vim-9.1.0794.tar.gz 18235753 BLAKE2B 6ab377e6e0661ff8d4f0de2526b29b1c58c128babff662144425665582d390f772b9ded38ec21db4c32c4d68441b566500c434139f23f1ea79af8b7ecd693953 SHA512 38106d56c774b8f1dfed16953c07ff09c411bba5c7ab69e696ee9423dabdec9b0b405665fbd2411122f9963d3af8f9a259cc56b2954443ab41a14a8f2476624a -DIST vim-9.1.1436.tar.gz 18860692 BLAKE2B ae0471654446ff4101f2df698f46c59c9d634336a6dd762732e46238e97bb6fd00a42b56cad3ae5cce572da2fc3cc65490cd10a024419940352fddd285bd6e23 SHA512 c6007fecf7e8ba2134246b0072ebfa8ce0f85666ac96a6ccc1a81e23a4e46a6b75c136823cdf6dccb6dfdf703affaede9ce83988cf8fe7e5542087a769e61961 -DIST vim-9.1.1500.tar.gz 18567738 BLAKE2B 9222c3245eed55b71b228562ee768857207b3198d738dddfab0fdbb3bb8e497a906fedc497f55a416d4e05c5dda4cd0d373298557fe05c554a03c28732c06bba SHA512 f36a80bf76ea2813aba64d5ce7c6d60241609409bdb70d3a1a622fdcab826d9c8d61a611379125428136afc64b309ca92c33c265dfc276a1bebfc0d4f5d71253 DIST vim-9.1.1652.tar.gz 18776578 BLAKE2B c4cc711ee996d6b7268c243c1fae01600d104763f6eee2abbe342f2cf9ee90fb6ee3f0b44fe4814ff47ae13c5a391510c3b711c92acbee591e290da621289029 SHA512 f1dfb1dc0fd834fa3ffb40c31f48de78b48225c9d67667f069ff8b23a6a76d534f3e228b936141616a33a0d73445626dcd2ff52a8571e9f4370a8fbcad9771d7 DIST vim-patches-vim-9.1.1432-patches.tar.bz2 2618 BLAKE2B fe7c302c71fbf66f1921e1b55e2f67914ed104ab86e2a6cf2e6bf67c98214f13f1d8ff1ed7015ec41a5665c692946e20ec5bdf4806e789a70e34c0c888472739 SHA512 a794a7e4d9014d5508db7b205404f5a4b44748a82c5599a26c1ec6b06d3105f6cebf9a93a058f65ad853bbadf432034fc8257a7c77b4f3446331b9d66c19b3af diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/files/vimrc-r7 b/sdk_container/src/third_party/portage-stable/app-editors/vim-core/files/vimrc-r7 deleted file mode 100644 index 39a30d6f295..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/files/vimrc-r7 +++ /dev/null @@ -1,210 +0,0 @@ -scriptencoding utf-8 -" ^^ Please leave the above line at the start of the file. - -" Default configuration file for Vim - -" Written by Aron Griffis -" Modified by Ryan Phillips -" Modified some more by Ciaran McCreesh -" Added Redhat's vimrc info by Seemant Kulleen - -" You can override any of these settings on a global basis via the -" "/etc/vim/vimrc.local" file, and on a per-user basis via "~/.vimrc". You may -" need to create these. - -" {{{ General settings -" The following are some sensible defaults for Vim for most users. -" We attempt to change as little as possible from Vim's defaults, -" deviating only where it makes sense -set nocompatible " Use Vim defaults (much better!) -set bs=2 " Allow backspacing over everything in insert mode -set ai " Always set auto-indenting on -set history=50 " keep 50 lines of command history -set ruler " Show the cursor position all the time - -set viminfo='20,\"500 " Keep a .viminfo file. - -" Don't use Ex mode, use Q for formatting -map Q gq - -" When doing tab completion, give the following files lower priority. You may -" wish to set 'wildignore' to completely ignore files, and 'wildmenu' to enable -" enhanced tab completion. These can be done in the user vimrc file. -set suffixes+=.info,.aux,.log,.dvi,.bbl,.out,.o,.lo - -" When displaying line numbers, don't use an annoyingly wide number column. This -" doesn't enable line numbers -- :set number will do that. The value given is a -" minimum width to use for the number column, not a fixed size. -if v:version >= 700 - set numberwidth=3 -endif -" }}} - -" {{{ Modeline settings -" We don't allow modelines by default. See bug #14088 and bug #73715. -" If you're not concerned about these, you can enable them on a per-user -" basis by adding "set modeline" to your ~/.vimrc file. -set nomodeline -" }}} - -" {{{ Locale settings -" Try to come up with some nice sane GUI fonts. Also try to set a sensible -" value for fileencodings based upon locale. These can all be overridden in -" the user vimrc file. -if v:lang =~? "^ko" - set fileencodings=euc-kr - set guifontset=-*-*-medium-r-normal--16-*-*-*-*-*-*-* -elseif v:lang =~? "^ja_JP" - set fileencodings=euc-jp - set guifontset=-misc-fixed-medium-r-normal--14-*-*-*-*-*-*-* -elseif v:lang =~? "^zh_TW" - set fileencodings=big5 - set guifontset=-sony-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-1,-taipei-fixed-medium-r-normal--16-150-75-75-c-160-big5-0 -elseif v:lang =~? "^zh_CN" - set fileencodings=gb2312 - set guifontset=*-r-* -endif - -" If we have a BOM, always honour that rather than trying to guess. -if &fileencodings !~? "ucs-bom" - set fileencodings^=ucs-bom -endif - -" Always check for UTF-8 when trying to determine encodings. -if &fileencodings !~? "utf-8" - " If we have to add this, the default encoding is not Unicode. - " We use this fact later to revert to the default encoding in plaintext/empty - " files. - let g:added_fenc_utf8 = 1 - set fileencodings+=utf-8 -endif - -" Make sure we have a sane fallback for encoding detection -if &fileencodings !~? "default" - set fileencodings+=default -endif -" }}} - -" {{{ Syntax highlighting settings -" Switch syntax highlighting on, when the terminal has colors -" Also switch on highlighting the last used search pattern. -if &t_Co > 2 || has("gui_running") - syntax on - set hlsearch -endif -" }}} - -" {{{ Terminal fixes -if &term ==? "xterm" - set t_Sb=^[4%dm - set t_Sf=^[3%dm - set ttymouse=xterm2 -endif - -if &term ==? "gnome" && has("eval") - " Set useful keys that vim doesn't discover via termcap but are in the - " builtin xterm termcap. See bug #122562. We use exec to avoid having to - " include raw escapes in the file. - exec "set =\eO5D" - exec "set =\eO5C" -endif -" }}} - -" {{{ Filetype plugin settings -" Enable plugin-provided filetype settings, but only if the ftplugin -" directory exists (which it won't on livecds, for example). -if isdirectory(expand("$VIMRUNTIME/ftplugin")) - filetype plugin on - - " Uncomment the next line (or copy to your ~/.vimrc) for plugin-provided - " indent settings. Some people don't like these, so we won't turn them on by - " default. - " filetype indent on -endif -" }}} - -" {{{ Fix &shell, see bug #101665. -if "" == &shell - if executable("@GENTOO_PORTAGE_EPREFIX@/bin/bash") - set shell=@GENTOO_PORTAGE_EPREFIX@/bin/bash - elseif executable("@GENTOO_PORTAGE_EPREFIX@/bin/sh") - set shell=@GENTOO_PORTAGE_EPREFIX@/bin/sh - endif -endif -"}}} - -" {{{ Our default /bin/sh is bash, not ksh, so syntax highlighting for .sh -" files should default to bash. See :help sh-syntax and bug #101819. -if has("eval") - let is_bash=1 -endif -" }}} - -" {{{ Autocommands -if has("autocmd") - -augroup gentoo - au! - - " Gentoo-specific settings for ebuilds. These are the federally-mandated - " required tab settings. See the following for more information: - " http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml - " Note that the rules below are very minimal and don't cover everything. - " Better to emerge app-vim/gentoo-syntax, which provides full syntax, - " filetype and indent settings for all things Gentoo. - au BufRead,BufNewFile *.e{build,class} let is_bash=1|setfiletype sh - au BufRead,BufNewFile *.e{build,class} set ts=4 sw=4 noexpandtab - - " When editing a file, always jump to the last cursor position - autocmd BufReadPost * - \ if ! exists("g:leave_my_cursor_position_alone") | - \ if line("'\"") > 0 && line ("'\"") <= line("$") | - \ exe "normal! g'\"" | - \ endif | - \ endif - - " When editing a crontab file, set backupcopy to yes rather than auto. See - " :help crontab and bug #53437. - autocmd FileType crontab set backupcopy=yes - - " If we previously detected that the default encoding is not UTF-8 - " (g:added_fenc_utf8), assume that a file with only ASCII characters (or no - " characters at all) isn't a Unicode file, but is in the default encoding. - " Except of course if a byte-order mark is in effect. - autocmd BufReadPost * - \ if exists("g:added_fenc_utf8") && &fileencoding == "utf-8" && - \ ! &bomb && search('[\x80-\xFF]','nw') == 0 && &modifiable | - \ set fileencoding= | - \ endif - -augroup END - -endif " has("autocmd") -" }}} - -" We don't want VIM to load their own built-in defaults, preferring ours here -" instead. This option cannot apply to minimal builds, so it is guarded by a -" test that's guaranteed to fail for those, owing to the lack of +eval. -if 1 - let g:skip_defaults_vim = 1 -endif - -" Enable Omni completion when opening a file only if a specific plugin does -" not already exist for that filetype. This allows Omni completion -" (Ctrl-x/Ctrl-o) to work with any programming language if and only if a syntax -" file exists for the said language. -if exists("+omnifunc") - autocmd Filetype * - \ if &omnifunc == "" | - \ setlocal omnifunc=syntaxcomplete#Complete | - \ endif -endif - -" {{{ vimrc.local -if filereadable("@GENTOO_PORTAGE_EPREFIX@/etc/vim/vimrc.local") - source @GENTOO_PORTAGE_EPREFIX@/etc/vim/vimrc.local -endif -" }}} - -" vim: set fenc=utf-8 tw=80 sw=2 sts=2 et foldmethod=marker : - diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/files/xxd-completion b/sdk_container/src/third_party/portage-stable/app-editors/vim-core/files/xxd-completion deleted file mode 100644 index 174a4093f39..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/files/xxd-completion +++ /dev/null @@ -1,25 +0,0 @@ -# Author: Ciaran McCreesh -# -# completion for xxd - -_xxd() -{ - local cur prev cmd args - - COMPREPLY=() - cur=${COMP_WORDS[COMP_CWORD]} - prev=${COMP_WORDS[COMP_CWORD-1]} - cmd=${COMP_WORDS[0]} - - if [[ "${cur}" == -* ]] ; then - args='-a -b -c -E -g -h -i -l -ps -r -s -u -v' - COMPREPLY=( $( compgen -W "${args}" -- $cur ) ) - else - _filedir - fi -} - -complete -F _xxd xxd - -# vim: set ft=sh sw=4 et sts=4 : - diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.0794.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.0794.ebuild deleted file mode 100644 index f668fd39e2d..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.0794.ebuild +++ /dev/null @@ -1,236 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Please bump with app-editors/vim and app-editors/gvim - -VIM_VERSION="9.1" -VIM_PATCHES_VERSION="9.0.2092" -inherit bash-completion-r1 desktop flag-o-matic prefix toolchain-funcs vim-doc xdg-utils - -if [[ ${PV} == 9999* ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/vim/vim.git" - EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${PV} -else - SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz - https://git.sr.ht/~xxc3nsoredxx/vim-patches/refs/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.xz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="vim and gvim shared files" -HOMEPAGE="https://www.vim.org https://github.com/vim/vim" -S="${WORKDIR}/vim-${PV}" - -LICENSE="vim" -SLOT="0" -IUSE="nls acl minimal" - -# ncurses is only needed by ./configure, so no subslot operator required -DEPEND=">=sys-libs/ncurses-5.2-r2:0" -BDEPEND="dev-build/autoconf" - -if [[ ${PV} != 9999* ]]; then - # Gentoo patches to fix runtime issues, cross-compile errors, etc - PATCHES=( - "${WORKDIR}/vim-${VIM_PATCHES_VERSION}-patches" - ) -fi - -# platform-specific checks (bug #898406): -# - acl() -- Solaris -# - statacl() -- AIX -QA_CONFIG_IMPL_DECL_SKIP=( - 'acl' - 'statacl' -) - -pkg_setup() { - # people with broken alphabets run into trouble. bug #82186. - unset LANG LC_ALL - export LC_COLLATE="C" -} - -src_prepare() { - default - - # Fixup a script to use awk instead of nawk - sed -i \ - -e '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \ - "${S}"/runtime/tools/mve.awk || die "sed failed" - - # See bug #77841. We remove this file after the tarball extraction. - rm -v "${S}"/runtime/tools/vimspell.sh || die "rm failed" - - # Read vimrc and gvimrc from /etc/vim - echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' >> "${S}"/src/feature.h || die - echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h || die - - # Use exuberant ctags which installs as /usr/bin/exuberant-ctags. - # Hopefully this pattern won't break for a while at least. - # This fixes bug #29398 (27 Sep 2003 agriffis) - sed -i 's/\> "$c" || die "echo failed" - done - - # Try to avoid sandbox problems. Bug #114475. - if [[ -d "${S}"/src/po ]]; then - sed -i -e \ - '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ - "${S}"/src/po/Makefile || die "sed failed" - fi - - cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed" - - # Fix bug #76331: -O3 causes problems, use -O2 instead. We'll do this for - # everyone since previous flag filtering bugs have turned out to affect - # multiple archs... - replace-flags -O3 -O2 - - # Fix bug #18245: Prevent "make" from the following chain: - # (1) Notice configure.ac is newer than auto/configure - # (2) Rebuild auto/configure - # (3) Notice auto/configure is newer than auto/config.mk - # (4) Run ./configure (with wrong args) to remake auto/config.mk - sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" - - # Remove src/auto/configure file. - rm -v src/auto/configure || die "rm configure failed" - - # bug 908961 - if use elibc_musl ; then - sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die - fi -} - -src_configure() { - # Fix bug #37354: Disallow -funroll-all-loops on amd64 - # Bug 57859 suggests that we want to do this for all archs - filter-flags -funroll-all-loops - - emake -j1 -C src autoconf - - # This should fix a sandbox violation (see bug 24447). The hvc - # things are for ppc64, see bug 86433. - for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do - if [[ -e "${file}" ]]; then - addwrite ${file} - fi - done - - # Let Portage do the stripping. Some people like that. - export ac_cv_prog_STRIP="$(type -P true ) faking strip" - - local myconf=( - --with-modified-by="Gentoo-${PVR} (RIP Bram)" - --enable-gui=no - --without-x - --disable-darwin - --disable-perlinterp - --disable-pythoninterp - --disable-rubyinterp - --disable-gpm - --disable-selinux - $(use_enable nls) - $(use_enable acl) - ) - - # Keep Gentoo Prefix env contained within the EPREFIX - use prefix && myconf+=( --without-local-dir ) - - if tc-is-cross-compiler ; then - export vim_cv_getcwd_broken=no \ - vim_cv_memmove_handles_overlap=yes \ - vim_cv_stat_ignores_slash=yes \ - vim_cv_terminfo=yes \ - vim_cv_toupper_broken=no - fi - - econf "${myconf[@]}" -} - -src_compile() { - emake -j1 -C src auto/osdef.h objects - emake tools -} - -src_test() { :; } - -src_install() { - local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} - - dodir /usr/{bin,share/{man/man1,vim}} - emake -C src \ - installruntime \ - installmanlinks \ - installmacros \ - installtutor \ - installtutorbin \ - installtools \ - install-languages \ - DESTDIR="${D}" \ - BINDIR="${EPREFIX}"/usr/bin \ - MANDIR="${EPREFIX}"/usr/share/man \ - DATADIR="${EPREFIX}"/usr/share - - keepdir ${vimfiles}/keymap - - # default vimrc is installed by vim-core since it applies to - # both vim and gvim - insinto /etc/vim/ - newins "${FILESDIR}"/vimrc-r7 vimrc - eprefixify "${ED}"/etc/vim/vimrc - - if use minimal; then - # To save space, install only a subset of the files. - # Helps minimalize the livecd, bug 65144. - rm -rv "${ED}${vimfiles}"/{compiler,doc,ftplugin,indent} || die - rm -rv "${ED}${vimfiles}"/{macros,print,tools,tutor} || die - rm -v "${ED}"/usr/bin/vimtutor || die - - for f in "${ED}${vimfiles}"/colors/*.vim; do - if [[ ${f} != */@(default).vim ]] ; then - printf '%s\0' "${f}" - fi - done | xargs -0 rm -f || die - - for f in "${ED}${vimfiles}"/syntax/*.vim; do - if [[ ${f} != */@(conf|crontab|fstab|inittab|resolv|sshdconfig|syntax|nosyntax|synload).vim ]] ; then - printf '%s\0' "${f}" - fi - done | xargs -0 rm -f || die - fi - - newbashcomp "${FILESDIR}"/xxd-completion xxd - - # install gvim icon since both vim/gvim desktop files reference it - doicon -s scalable "${FILESDIR}"/gvim.svg -} - -pkg_postinst() { - # update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # update icon cache - xdg_icon_cache_update -} - -pkg_postrm() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # update icon cache - xdg_icon_cache_update -} diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1436-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1436-r1.ebuild deleted file mode 100644 index 34fe3b0930a..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1436-r1.ebuild +++ /dev/null @@ -1,233 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Please bump with app-editors/vim and app-editors/gvim - -VIM_VERSION="9.1" -VIM_PATCHES_VERSION="9.1.1432" -inherit bash-completion-r1 desktop flag-o-matic prefix toolchain-funcs vim-doc xdg-utils - -if [[ ${PV} == 9999* ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/vim/vim.git" - EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${PV} -else - SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz - https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2" - # https://github.com/douglarek/gentoo-vim-patches/releases/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="vim and gvim shared files" -HOMEPAGE="https://www.vim.org https://github.com/vim/vim" -S="${WORKDIR}/vim-${PV}" - -LICENSE="vim" -SLOT="0" -IUSE="nls acl minimal" - -# ncurses is only needed by ./configure, so no subslot operator required -DEPEND=">=sys-libs/ncurses-5.2-r2:0" -BDEPEND="dev-build/autoconf" - -if [[ ${PV} != 9999* ]]; then - # Gentoo patches to fix runtime issues, cross-compile errors, etc - PATCHES=( - "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches" - ) -fi - -# platform-specific checks (bug #898406): -# - acl() -- Solaris -# - statacl() -- AIX -QA_CONFIG_IMPL_DECL_SKIP=( - 'acl' - 'statacl' -) - -pkg_setup() { - # people with broken alphabets run into trouble. bug #82186. - unset LANG LC_ALL - export LC_COLLATE="C" -} - -src_prepare() { - default - - # Fixup a script to use awk instead of nawk - sed -i \ - -e '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \ - "${S}"/runtime/tools/mve.awk || die "sed failed" - - # See bug #77841. We remove this file after the tarball extraction. - rm -v "${S}"/runtime/tools/vimspell.sh || die "rm failed" - - # Read vimrc and gvimrc from /etc/vim - echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' >> "${S}"/src/feature.h || die - echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h || die - - # Use exuberant ctags which installs as /usr/bin/exuberant-ctags. - # Hopefully this pattern won't break for a while at least. - # This fixes bug #29398 (27 Sep 2003 agriffis) - sed -i 's/\> "$c" || die "echo failed" - done - - # Try to avoid sandbox problems. Bug #114475. - if [[ -d "${S}"/src/po ]]; then - sed -i -e \ - '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ - "${S}"/src/po/Makefile || die "sed failed" - fi - - cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed" - - # Fix bug #76331: -O3 causes problems, use -O2 instead. We'll do this for - # everyone since previous flag filtering bugs have turned out to affect - # multiple archs... - replace-flags -O3 -O2 - - # Fix bug #18245: Prevent "make" from the following chain: - # (1) Notice configure.ac is newer than auto/configure - # (2) Rebuild auto/configure - # (3) Notice auto/configure is newer than auto/config.mk - # (4) Run ./configure (with wrong args) to remake auto/config.mk - sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" - - # Remove src/auto/configure file. - rm -v src/auto/configure || die "rm configure failed" - - # bug 908961 - if use elibc_musl ; then - sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die - fi -} - -src_configure() { - emake -j1 -C src autoconf - - # This should fix a sandbox violation (see bug 24447). The hvc - # things are for ppc64, see bug 86433. - for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do - if [[ -e "${file}" ]]; then - addwrite ${file} - fi - done - - # Let Portage do the stripping. Some people like that. - export ac_cv_prog_STRIP="$(type -P true ) faking strip" - - local myconf=( - --with-modified-by="Gentoo-${PVR} (RIP Bram)" - --enable-gui=no - --without-x - --disable-darwin - --disable-perlinterp - --disable-pythoninterp - --disable-rubyinterp - --disable-gpm - --disable-selinux - $(use_enable nls) - $(use_enable acl) - ) - - # Keep Gentoo Prefix env contained within the EPREFIX - use prefix && myconf+=( --without-local-dir ) - - if tc-is-cross-compiler ; then - export vim_cv_getcwd_broken=no \ - vim_cv_memmove_handles_overlap=yes \ - vim_cv_stat_ignores_slash=yes \ - vim_cv_terminfo=yes \ - vim_cv_toupper_broken=no - fi - - econf "${myconf[@]}" -} - -src_compile() { - emake -j1 -C src auto/osdef.h objects - emake tools -} - -src_test() { :; } - -src_install() { - local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} - - dodir /usr/{bin,share/{man/man1,vim}} - emake -C src \ - installruntime \ - installmanlinks \ - installmacros \ - installtutor \ - installtutorbin \ - installtools \ - install-languages \ - DESTDIR="${D}" \ - BINDIR="${EPREFIX}"/usr/bin \ - MANDIR="${EPREFIX}"/usr/share/man \ - DATADIR="${EPREFIX}"/usr/share - - keepdir ${vimfiles}/keymap - - # default vimrc is installed by vim-core since it applies to - # both vim and gvim - insinto /etc/vim/ - newins "${FILESDIR}"/vimrc-r7 vimrc - eprefixify "${ED}"/etc/vim/vimrc - - if use minimal; then - # To save space, install only a subset of the files. - # Helps minimalize the livecd, bug 65144. - rm -rv "${ED}${vimfiles}"/{compiler,doc,ftplugin,indent} || die - rm -rv "${ED}${vimfiles}"/{macros,print,tools,tutor} || die - rm -v "${ED}"/usr/bin/vimtutor || die - - for f in "${ED}${vimfiles}"/colors/*.vim; do - if [[ ${f} != */@(default).vim ]] ; then - printf '%s\0' "${f}" - fi - done | xargs -0 rm -f || die - - for f in "${ED}${vimfiles}"/syntax/*.vim; do - if [[ ${f} != */@(conf|crontab|fstab|inittab|resolv|sshdconfig|syntax|nosyntax|synload).vim ]] ; then - printf '%s\0' "${f}" - fi - done | xargs -0 rm -f || die - fi - - newbashcomp "${FILESDIR}"/xxd-completion xxd - - # install gvim icon since both vim/gvim desktop files reference it - doicon -s scalable "${FILESDIR}"/gvim.svg -} - -pkg_postinst() { - # update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # update icon cache - xdg_icon_cache_update -} - -pkg_postrm() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # update icon cache - xdg_icon_cache_update -} diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1436.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1436.ebuild deleted file mode 100644 index 8e7c665af2d..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1436.ebuild +++ /dev/null @@ -1,237 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Please bump with app-editors/vim and app-editors/gvim - -VIM_VERSION="9.1" -VIM_PATCHES_VERSION="9.1.1432" -inherit bash-completion-r1 desktop flag-o-matic prefix toolchain-funcs vim-doc xdg-utils - -if [[ ${PV} == 9999* ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/vim/vim.git" - EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${PV} -else - SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz - https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2" - # https://github.com/douglarek/gentoo-vim-patches/releases/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="vim and gvim shared files" -HOMEPAGE="https://www.vim.org https://github.com/vim/vim" -S="${WORKDIR}/vim-${PV}" - -LICENSE="vim" -SLOT="0" -IUSE="nls acl minimal" - -# ncurses is only needed by ./configure, so no subslot operator required -DEPEND=">=sys-libs/ncurses-5.2-r2:0" -BDEPEND="dev-build/autoconf" - -if [[ ${PV} != 9999* ]]; then - # Gentoo patches to fix runtime issues, cross-compile errors, etc - PATCHES=( - "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches" - ) -fi - -# platform-specific checks (bug #898406): -# - acl() -- Solaris -# - statacl() -- AIX -QA_CONFIG_IMPL_DECL_SKIP=( - 'acl' - 'statacl' -) - -pkg_setup() { - # people with broken alphabets run into trouble. bug #82186. - unset LANG LC_ALL - export LC_COLLATE="C" -} - -src_prepare() { - default - - # Fixup a script to use awk instead of nawk - sed -i \ - -e '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \ - "${S}"/runtime/tools/mve.awk || die "sed failed" - - # See bug #77841. We remove this file after the tarball extraction. - rm -v "${S}"/runtime/tools/vimspell.sh || die "rm failed" - - # Read vimrc and gvimrc from /etc/vim - echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' >> "${S}"/src/feature.h || die - echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h || die - - # Use exuberant ctags which installs as /usr/bin/exuberant-ctags. - # Hopefully this pattern won't break for a while at least. - # This fixes bug #29398 (27 Sep 2003 agriffis) - sed -i 's/\> "$c" || die "echo failed" - done - - # Try to avoid sandbox problems. Bug #114475. - if [[ -d "${S}"/src/po ]]; then - sed -i -e \ - '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ - "${S}"/src/po/Makefile || die "sed failed" - fi - - cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed" - - # Fix bug #76331: -O3 causes problems, use -O2 instead. We'll do this for - # everyone since previous flag filtering bugs have turned out to affect - # multiple archs... - replace-flags -O3 -O2 - - # Fix bug #18245: Prevent "make" from the following chain: - # (1) Notice configure.ac is newer than auto/configure - # (2) Rebuild auto/configure - # (3) Notice auto/configure is newer than auto/config.mk - # (4) Run ./configure (with wrong args) to remake auto/config.mk - sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" - - # Remove src/auto/configure file. - rm -v src/auto/configure || die "rm configure failed" - - # bug 908961 - if use elibc_musl ; then - sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die - fi -} - -src_configure() { - # Fix bug #37354: Disallow -funroll-all-loops on amd64 - # Bug 57859 suggests that we want to do this for all archs - filter-flags -funroll-all-loops - - emake -j1 -C src autoconf - - # This should fix a sandbox violation (see bug 24447). The hvc - # things are for ppc64, see bug 86433. - for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do - if [[ -e "${file}" ]]; then - addwrite ${file} - fi - done - - # Let Portage do the stripping. Some people like that. - export ac_cv_prog_STRIP="$(type -P true ) faking strip" - - local myconf=( - --with-modified-by="Gentoo-${PVR} (RIP Bram)" - --enable-gui=no - --without-x - --disable-darwin - --disable-perlinterp - --disable-pythoninterp - --disable-rubyinterp - --disable-gpm - --disable-selinux - $(use_enable nls) - $(use_enable acl) - ) - - # Keep Gentoo Prefix env contained within the EPREFIX - use prefix && myconf+=( --without-local-dir ) - - if tc-is-cross-compiler ; then - export vim_cv_getcwd_broken=no \ - vim_cv_memmove_handles_overlap=yes \ - vim_cv_stat_ignores_slash=yes \ - vim_cv_terminfo=yes \ - vim_cv_toupper_broken=no - fi - - econf "${myconf[@]}" -} - -src_compile() { - emake -j1 -C src auto/osdef.h objects - emake tools -} - -src_test() { :; } - -src_install() { - local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} - - dodir /usr/{bin,share/{man/man1,vim}} - emake -C src \ - installruntime \ - installmanlinks \ - installmacros \ - installtutor \ - installtutorbin \ - installtools \ - install-languages \ - DESTDIR="${D}" \ - BINDIR="${EPREFIX}"/usr/bin \ - MANDIR="${EPREFIX}"/usr/share/man \ - DATADIR="${EPREFIX}"/usr/share - - keepdir ${vimfiles}/keymap - - # default vimrc is installed by vim-core since it applies to - # both vim and gvim - insinto /etc/vim/ - newins "${FILESDIR}"/vimrc-r7 vimrc - eprefixify "${ED}"/etc/vim/vimrc - - if use minimal; then - # To save space, install only a subset of the files. - # Helps minimalize the livecd, bug 65144. - rm -rv "${ED}${vimfiles}"/{compiler,doc,ftplugin,indent} || die - rm -rv "${ED}${vimfiles}"/{macros,print,tools,tutor} || die - rm -v "${ED}"/usr/bin/vimtutor || die - - for f in "${ED}${vimfiles}"/colors/*.vim; do - if [[ ${f} != */@(default).vim ]] ; then - printf '%s\0' "${f}" - fi - done | xargs -0 rm -f || die - - for f in "${ED}${vimfiles}"/syntax/*.vim; do - if [[ ${f} != */@(conf|crontab|fstab|inittab|resolv|sshdconfig|syntax|nosyntax|synload).vim ]] ; then - printf '%s\0' "${f}" - fi - done | xargs -0 rm -f || die - fi - - newbashcomp "${FILESDIR}"/xxd-completion xxd - - # install gvim icon since both vim/gvim desktop files reference it - doicon -s scalable "${FILESDIR}"/gvim.svg -} - -pkg_postinst() { - # update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # update icon cache - xdg_icon_cache_update -} - -pkg_postrm() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # update icon cache - xdg_icon_cache_update -} diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1500.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1500.ebuild deleted file mode 100644 index 34fe3b0930a..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1500.ebuild +++ /dev/null @@ -1,233 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Please bump with app-editors/vim and app-editors/gvim - -VIM_VERSION="9.1" -VIM_PATCHES_VERSION="9.1.1432" -inherit bash-completion-r1 desktop flag-o-matic prefix toolchain-funcs vim-doc xdg-utils - -if [[ ${PV} == 9999* ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/vim/vim.git" - EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${PV} -else - SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz - https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2" - # https://github.com/douglarek/gentoo-vim-patches/releases/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="vim and gvim shared files" -HOMEPAGE="https://www.vim.org https://github.com/vim/vim" -S="${WORKDIR}/vim-${PV}" - -LICENSE="vim" -SLOT="0" -IUSE="nls acl minimal" - -# ncurses is only needed by ./configure, so no subslot operator required -DEPEND=">=sys-libs/ncurses-5.2-r2:0" -BDEPEND="dev-build/autoconf" - -if [[ ${PV} != 9999* ]]; then - # Gentoo patches to fix runtime issues, cross-compile errors, etc - PATCHES=( - "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches" - ) -fi - -# platform-specific checks (bug #898406): -# - acl() -- Solaris -# - statacl() -- AIX -QA_CONFIG_IMPL_DECL_SKIP=( - 'acl' - 'statacl' -) - -pkg_setup() { - # people with broken alphabets run into trouble. bug #82186. - unset LANG LC_ALL - export LC_COLLATE="C" -} - -src_prepare() { - default - - # Fixup a script to use awk instead of nawk - sed -i \ - -e '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \ - "${S}"/runtime/tools/mve.awk || die "sed failed" - - # See bug #77841. We remove this file after the tarball extraction. - rm -v "${S}"/runtime/tools/vimspell.sh || die "rm failed" - - # Read vimrc and gvimrc from /etc/vim - echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' >> "${S}"/src/feature.h || die - echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h || die - - # Use exuberant ctags which installs as /usr/bin/exuberant-ctags. - # Hopefully this pattern won't break for a while at least. - # This fixes bug #29398 (27 Sep 2003 agriffis) - sed -i 's/\> "$c" || die "echo failed" - done - - # Try to avoid sandbox problems. Bug #114475. - if [[ -d "${S}"/src/po ]]; then - sed -i -e \ - '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ - "${S}"/src/po/Makefile || die "sed failed" - fi - - cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed" - - # Fix bug #76331: -O3 causes problems, use -O2 instead. We'll do this for - # everyone since previous flag filtering bugs have turned out to affect - # multiple archs... - replace-flags -O3 -O2 - - # Fix bug #18245: Prevent "make" from the following chain: - # (1) Notice configure.ac is newer than auto/configure - # (2) Rebuild auto/configure - # (3) Notice auto/configure is newer than auto/config.mk - # (4) Run ./configure (with wrong args) to remake auto/config.mk - sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" - - # Remove src/auto/configure file. - rm -v src/auto/configure || die "rm configure failed" - - # bug 908961 - if use elibc_musl ; then - sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die - fi -} - -src_configure() { - emake -j1 -C src autoconf - - # This should fix a sandbox violation (see bug 24447). The hvc - # things are for ppc64, see bug 86433. - for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do - if [[ -e "${file}" ]]; then - addwrite ${file} - fi - done - - # Let Portage do the stripping. Some people like that. - export ac_cv_prog_STRIP="$(type -P true ) faking strip" - - local myconf=( - --with-modified-by="Gentoo-${PVR} (RIP Bram)" - --enable-gui=no - --without-x - --disable-darwin - --disable-perlinterp - --disable-pythoninterp - --disable-rubyinterp - --disable-gpm - --disable-selinux - $(use_enable nls) - $(use_enable acl) - ) - - # Keep Gentoo Prefix env contained within the EPREFIX - use prefix && myconf+=( --without-local-dir ) - - if tc-is-cross-compiler ; then - export vim_cv_getcwd_broken=no \ - vim_cv_memmove_handles_overlap=yes \ - vim_cv_stat_ignores_slash=yes \ - vim_cv_terminfo=yes \ - vim_cv_toupper_broken=no - fi - - econf "${myconf[@]}" -} - -src_compile() { - emake -j1 -C src auto/osdef.h objects - emake tools -} - -src_test() { :; } - -src_install() { - local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} - - dodir /usr/{bin,share/{man/man1,vim}} - emake -C src \ - installruntime \ - installmanlinks \ - installmacros \ - installtutor \ - installtutorbin \ - installtools \ - install-languages \ - DESTDIR="${D}" \ - BINDIR="${EPREFIX}"/usr/bin \ - MANDIR="${EPREFIX}"/usr/share/man \ - DATADIR="${EPREFIX}"/usr/share - - keepdir ${vimfiles}/keymap - - # default vimrc is installed by vim-core since it applies to - # both vim and gvim - insinto /etc/vim/ - newins "${FILESDIR}"/vimrc-r7 vimrc - eprefixify "${ED}"/etc/vim/vimrc - - if use minimal; then - # To save space, install only a subset of the files. - # Helps minimalize the livecd, bug 65144. - rm -rv "${ED}${vimfiles}"/{compiler,doc,ftplugin,indent} || die - rm -rv "${ED}${vimfiles}"/{macros,print,tools,tutor} || die - rm -v "${ED}"/usr/bin/vimtutor || die - - for f in "${ED}${vimfiles}"/colors/*.vim; do - if [[ ${f} != */@(default).vim ]] ; then - printf '%s\0' "${f}" - fi - done | xargs -0 rm -f || die - - for f in "${ED}${vimfiles}"/syntax/*.vim; do - if [[ ${f} != */@(conf|crontab|fstab|inittab|resolv|sshdconfig|syntax|nosyntax|synload).vim ]] ; then - printf '%s\0' "${f}" - fi - done | xargs -0 rm -f || die - fi - - newbashcomp "${FILESDIR}"/xxd-completion xxd - - # install gvim icon since both vim/gvim desktop files reference it - doicon -s scalable "${FILESDIR}"/gvim.svg -} - -pkg_postinst() { - # update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # update icon cache - xdg_icon_cache_update -} - -pkg_postrm() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # update icon cache - xdg_icon_cache_update -} diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1652-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1652-r1.ebuild deleted file mode 100644 index 0410afeec37..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1652-r1.ebuild +++ /dev/null @@ -1,234 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Please bump with app-editors/vim and app-editors/gvim - -VIM_VERSION="9.1" -VIM_PATCHES_VERSION="9.1.1432" -inherit desktop flag-o-matic prefix toolchain-funcs vim-doc xdg-utils - -if [[ ${PV} == 9999* ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/vim/vim.git" - EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${PV} -else - SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz - https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2" - # https://github.com/douglarek/gentoo-vim-patches/releases/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="vim and gvim shared files" -HOMEPAGE="https://www.vim.org https://github.com/vim/vim" -S="${WORKDIR}/vim-${PV}" - -LICENSE="vim" -SLOT="0" -IUSE="nls acl minimal" - -RDEPEND="dev-util/xxd" -# ncurses is only needed by ./configure, so no subslot operator required -DEPEND=">=sys-libs/ncurses-5.2-r2:0" -BDEPEND="dev-build/autoconf" - -if [[ ${PV} != 9999* ]]; then - # Gentoo patches to fix runtime issues, cross-compile errors, etc - PATCHES=( - "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches" - ) -fi - -# unbundle xxd -PATCHES+=( "${FILESDIR}/vim-core-9.1.1652-r1-unbundle-xxd.patch" ) - -# platform-specific checks (bug #898406): -# - acl() -- Solaris -# - statacl() -- AIX -QA_CONFIG_IMPL_DECL_SKIP=( - 'acl' - 'statacl' -) - -pkg_setup() { - # people with broken alphabets run into trouble. bug #82186. - unset LANG LC_ALL - export LC_COLLATE="C" -} - -src_prepare() { - default - - # Fixup a script to use awk instead of nawk - sed -i \ - -e '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \ - "${S}"/runtime/tools/mve.awk || die "sed failed" - - # See bug #77841. We remove this file after the tarball extraction. - rm -v "${S}"/runtime/tools/vimspell.sh || die "rm failed" - - # Read vimrc and gvimrc from /etc/vim - echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' >> "${S}"/src/feature.h || die - echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h || die - - # Use exuberant ctags which installs as /usr/bin/exuberant-ctags. - # Hopefully this pattern won't break for a while at least. - # This fixes bug #29398 (27 Sep 2003 agriffis) - sed -i 's/\> "$c" || die "echo failed" - done - - # Try to avoid sandbox problems. Bug #114475. - if [[ -d "${S}"/src/po ]]; then - sed -i -e \ - '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ - "${S}"/src/po/Makefile || die "sed failed" - fi - - cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed" - - # Fix bug #76331: -O3 causes problems, use -O2 instead. We'll do this for - # everyone since previous flag filtering bugs have turned out to affect - # multiple archs... - replace-flags -O3 -O2 - - # Fix bug #18245: Prevent "make" from the following chain: - # (1) Notice configure.ac is newer than auto/configure - # (2) Rebuild auto/configure - # (3) Notice auto/configure is newer than auto/config.mk - # (4) Run ./configure (with wrong args) to remake auto/config.mk - sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" - - # Remove src/auto/configure file. - rm -v src/auto/configure || die "rm configure failed" - - # bug 908961 - if use elibc_musl ; then - sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die - fi -} - -src_configure() { - emake -j1 -C src autoconf - - # This should fix a sandbox violation (see bug 24447). The hvc - # things are for ppc64, see bug 86433. - for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do - if [[ -e "${file}" ]]; then - addwrite ${file} - fi - done - - # Let Portage do the stripping. Some people like that. - export ac_cv_prog_STRIP="$(type -P true ) faking strip" - - local myconf=( - --with-modified-by="Gentoo-${PVR} (RIP Bram)" - --enable-gui=no - --without-x - --disable-darwin - --disable-perlinterp - --disable-pythoninterp - --disable-rubyinterp - --disable-gpm - --disable-selinux - $(use_enable nls) - $(use_enable acl) - ) - - # Keep Gentoo Prefix env contained within the EPREFIX - use prefix && myconf+=( --without-local-dir ) - - if tc-is-cross-compiler ; then - export vim_cv_getcwd_broken=no \ - vim_cv_memmove_handles_overlap=yes \ - vim_cv_stat_ignores_slash=yes \ - vim_cv_terminfo=yes \ - vim_cv_toupper_broken=no - fi - - econf "${myconf[@]}" -} - -src_compile() { - emake -j1 -C src auto/osdef.h objects -} - -src_test() { :; } - -src_install() { - local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} - - dodir /usr/{bin,share/{man/man1,vim}} - emake -C src \ - installruntime \ - installmanlinks \ - installmacros \ - installtutor \ - installtutorbin \ - installtools \ - install-languages \ - DESTDIR="${D}" \ - BINDIR="${EPREFIX}"/usr/bin \ - MANDIR="${EPREFIX}"/usr/share/man \ - DATADIR="${EPREFIX}"/usr/share - - keepdir ${vimfiles}/keymap - - # default vimrc is installed by vim-core since it applies to - # both vim and gvim - insinto /etc/vim/ - newins "${FILESDIR}"/vimrc-r7 vimrc - eprefixify "${ED}"/etc/vim/vimrc - - if use minimal; then - # To save space, install only a subset of the files. - # Helps minimalize the livecd, bug 65144. - rm -rv "${ED}${vimfiles}"/{compiler,doc,ftplugin,indent} || die - rm -rv "${ED}${vimfiles}"/{macros,print,tools,tutor} || die - rm -v "${ED}"/usr/bin/vimtutor || die - - for f in "${ED}${vimfiles}"/colors/*.vim; do - if [[ ${f} != */@(default).vim ]] ; then - printf '%s\0' "${f}" - fi - done | xargs -0 rm -f || die - - for f in "${ED}${vimfiles}"/syntax/*.vim; do - if [[ ${f} != */@(conf|crontab|fstab|inittab|resolv|sshdconfig|syntax|nosyntax|synload).vim ]] ; then - printf '%s\0' "${f}" - fi - done | xargs -0 rm -f || die - fi - - # install gvim icon since both vim/gvim desktop files reference it - doicon -s scalable "${FILESDIR}"/gvim.svg -} - -pkg_postinst() { - # update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # update icon cache - xdg_icon_cache_update -} - -pkg_postrm() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # update icon cache - xdg_icon_cache_update -} diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1652-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1652-r2.ebuild deleted file mode 100644 index e42b15db976..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1652-r2.ebuild +++ /dev/null @@ -1,234 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Please bump with app-editors/vim and app-editors/gvim - -VIM_VERSION="9.1" -VIM_PATCHES_VERSION="9.1.1432" -inherit desktop flag-o-matic prefix toolchain-funcs vim-doc xdg-utils - -if [[ ${PV} == 9999* ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/vim/vim.git" - EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${PV} -else - SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz - https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2" - # https://github.com/douglarek/gentoo-vim-patches/releases/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="vim and gvim shared files" -HOMEPAGE="https://www.vim.org https://github.com/vim/vim" -S="${WORKDIR}/vim-${PV}" - -LICENSE="vim" -SLOT="0" -IUSE="nls acl minimal" - -RDEPEND="dev-util/xxd" -# ncurses is only needed by ./configure, so no subslot operator required -DEPEND=">=sys-libs/ncurses-5.2-r2:0" -BDEPEND="dev-build/autoconf" - -if [[ ${PV} != 9999* ]]; then - # Gentoo patches to fix runtime issues, cross-compile errors, etc - PATCHES=( - "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches" - ) -fi - -# unbundle xxd -PATCHES+=( "${FILESDIR}/vim-core-9.1.1652-r1-unbundle-xxd.patch" ) - -# platform-specific checks (bug #898406): -# - acl() -- Solaris -# - statacl() -- AIX -QA_CONFIG_IMPL_DECL_SKIP=( - 'acl' - 'statacl' -) - -pkg_setup() { - # people with broken alphabets run into trouble. bug #82186. - unset LANG LC_ALL - export LC_COLLATE="C" -} - -src_prepare() { - default - - # Fixup a script to use awk instead of nawk - sed -i \ - -e '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \ - "${S}"/runtime/tools/mve.awk || die "sed failed" - - # See bug #77841. We remove this file after the tarball extraction. - rm -v "${S}"/runtime/tools/vimspell.sh || die "rm failed" - - # Read vimrc and gvimrc from /etc/vim - echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' >> "${S}"/src/feature.h || die - echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h || die - - # Use exuberant ctags which installs as /usr/bin/exuberant-ctags. - # Hopefully this pattern won't break for a while at least. - # This fixes bug #29398 (27 Sep 2003 agriffis) - sed -i 's/\> "$c" || die "echo failed" - done - - # Try to avoid sandbox problems. Bug #114475. - if [[ -d "${S}"/src/po ]]; then - sed -i -e \ - '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ - "${S}"/src/po/Makefile || die "sed failed" - fi - - cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed" - - # Fix bug #76331: -O3 causes problems, use -O2 instead. We'll do this for - # everyone since previous flag filtering bugs have turned out to affect - # multiple archs... - replace-flags -O3 -O2 - - # Fix bug #18245: Prevent "make" from the following chain: - # (1) Notice configure.ac is newer than auto/configure - # (2) Rebuild auto/configure - # (3) Notice auto/configure is newer than auto/config.mk - # (4) Run ./configure (with wrong args) to remake auto/config.mk - sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" - - # Remove src/auto/configure file. - rm -v src/auto/configure || die "rm configure failed" - - # bug 908961 - if use elibc_musl ; then - sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die - fi -} - -src_configure() { - emake -j1 -C src autoconf - - # This should fix a sandbox violation (see bug 24447). The hvc - # things are for ppc64, see bug 86433. - for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do - if [[ -e "${file}" ]]; then - addwrite ${file} - fi - done - - # Let Portage do the stripping. Some people like that. - export ac_cv_prog_STRIP="$(type -P true ) faking strip" - - local myconf=( - --with-modified-by="Gentoo-${PVR} (RIP Bram)" - --enable-gui=no - --without-x - --disable-darwin - --disable-perlinterp - --disable-pythoninterp - --disable-rubyinterp - --disable-gpm - --disable-selinux - $(use_enable nls) - $(use_enable acl) - ) - - # Keep Gentoo Prefix env contained within the EPREFIX - use prefix && myconf+=( --without-local-dir ) - - if tc-is-cross-compiler ; then - export vim_cv_getcwd_broken=no \ - vim_cv_memmove_handles_overlap=yes \ - vim_cv_stat_ignores_slash=yes \ - vim_cv_terminfo=yes \ - vim_cv_toupper_broken=no - fi - - econf "${myconf[@]}" -} - -src_compile() { - emake -j1 -C src auto/osdef.h objects -} - -src_test() { :; } - -src_install() { - local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} - - dodir /usr/{bin,share/{man/man1,vim}} - emake -C src \ - installruntime \ - installmanlinks \ - installmacros \ - installtutor \ - installtutorbin \ - installtools \ - install-languages \ - DESTDIR="${D}" \ - BINDIR="${EPREFIX}"/usr/bin \ - MANDIR="${EPREFIX}"/usr/share/man \ - DATADIR="${EPREFIX}"/usr/share - - keepdir ${vimfiles}/keymap - - # default vimrc is installed by vim-core since it applies to - # both vim and gvim - insinto /etc/vim/ - newins "${FILESDIR}"/vimrc-r8 vimrc - eprefixify "${ED}"/etc/vim/vimrc - - if use minimal; then - # To save space, install only a subset of the files. - # Helps minimalize the livecd, bug 65144. - rm -rv "${ED}${vimfiles}"/{compiler,doc,ftplugin,indent} || die - rm -rv "${ED}${vimfiles}"/{macros,print,tools,tutor} || die - rm -v "${ED}"/usr/bin/vimtutor || die - - for f in "${ED}${vimfiles}"/colors/*.vim; do - if [[ ${f} != */@(default).vim ]] ; then - printf '%s\0' "${f}" - fi - done | xargs -0 rm -f || die - - for f in "${ED}${vimfiles}"/syntax/*.vim; do - if [[ ${f} != */@(conf|crontab|fstab|inittab|resolv|sshdconfig|syntax|nosyntax|synload).vim ]] ; then - printf '%s\0' "${f}" - fi - done | xargs -0 rm -f || die - fi - - # install gvim icon since both vim/gvim desktop files reference it - doicon -s scalable "${FILESDIR}"/gvim.svg -} - -pkg_postinst() { - # update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # update icon cache - xdg_icon_cache_update -} - -pkg_postrm() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # update icon cache - xdg_icon_cache_update -} diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1652.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1652.ebuild deleted file mode 100644 index 25b6e388ea4..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1652.ebuild +++ /dev/null @@ -1,233 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Please bump with app-editors/vim and app-editors/gvim - -VIM_VERSION="9.1" -VIM_PATCHES_VERSION="9.1.1432" -inherit bash-completion-r1 desktop flag-o-matic prefix toolchain-funcs vim-doc xdg-utils - -if [[ ${PV} == 9999* ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/vim/vim.git" - EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${PV} -else - SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz - https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2" - # https://github.com/douglarek/gentoo-vim-patches/releases/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="vim and gvim shared files" -HOMEPAGE="https://www.vim.org https://github.com/vim/vim" -S="${WORKDIR}/vim-${PV}" - -LICENSE="vim" -SLOT="0" -IUSE="nls acl minimal" - -# ncurses is only needed by ./configure, so no subslot operator required -DEPEND=">=sys-libs/ncurses-5.2-r2:0" -BDEPEND="dev-build/autoconf" - -if [[ ${PV} != 9999* ]]; then - # Gentoo patches to fix runtime issues, cross-compile errors, etc - PATCHES=( - "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches" - ) -fi - -# platform-specific checks (bug #898406): -# - acl() -- Solaris -# - statacl() -- AIX -QA_CONFIG_IMPL_DECL_SKIP=( - 'acl' - 'statacl' -) - -pkg_setup() { - # people with broken alphabets run into trouble. bug #82186. - unset LANG LC_ALL - export LC_COLLATE="C" -} - -src_prepare() { - default - - # Fixup a script to use awk instead of nawk - sed -i \ - -e '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \ - "${S}"/runtime/tools/mve.awk || die "sed failed" - - # See bug #77841. We remove this file after the tarball extraction. - rm -v "${S}"/runtime/tools/vimspell.sh || die "rm failed" - - # Read vimrc and gvimrc from /etc/vim - echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' >> "${S}"/src/feature.h || die - echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h || die - - # Use exuberant ctags which installs as /usr/bin/exuberant-ctags. - # Hopefully this pattern won't break for a while at least. - # This fixes bug #29398 (27 Sep 2003 agriffis) - sed -i 's/\> "$c" || die "echo failed" - done - - # Try to avoid sandbox problems. Bug #114475. - if [[ -d "${S}"/src/po ]]; then - sed -i -e \ - '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ - "${S}"/src/po/Makefile || die "sed failed" - fi - - cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed" - - # Fix bug #76331: -O3 causes problems, use -O2 instead. We'll do this for - # everyone since previous flag filtering bugs have turned out to affect - # multiple archs... - replace-flags -O3 -O2 - - # Fix bug #18245: Prevent "make" from the following chain: - # (1) Notice configure.ac is newer than auto/configure - # (2) Rebuild auto/configure - # (3) Notice auto/configure is newer than auto/config.mk - # (4) Run ./configure (with wrong args) to remake auto/config.mk - sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" - - # Remove src/auto/configure file. - rm -v src/auto/configure || die "rm configure failed" - - # bug 908961 - if use elibc_musl ; then - sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die - fi -} - -src_configure() { - emake -j1 -C src autoconf - - # This should fix a sandbox violation (see bug 24447). The hvc - # things are for ppc64, see bug 86433. - for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do - if [[ -e "${file}" ]]; then - addwrite ${file} - fi - done - - # Let Portage do the stripping. Some people like that. - export ac_cv_prog_STRIP="$(type -P true ) faking strip" - - local myconf=( - --with-modified-by="Gentoo-${PVR} (RIP Bram)" - --enable-gui=no - --without-x - --disable-darwin - --disable-perlinterp - --disable-pythoninterp - --disable-rubyinterp - --disable-gpm - --disable-selinux - $(use_enable nls) - $(use_enable acl) - ) - - # Keep Gentoo Prefix env contained within the EPREFIX - use prefix && myconf+=( --without-local-dir ) - - if tc-is-cross-compiler ; then - export vim_cv_getcwd_broken=no \ - vim_cv_memmove_handles_overlap=yes \ - vim_cv_stat_ignores_slash=yes \ - vim_cv_terminfo=yes \ - vim_cv_toupper_broken=no - fi - - econf "${myconf[@]}" -} - -src_compile() { - emake -j1 -C src auto/osdef.h objects - emake tools -} - -src_test() { :; } - -src_install() { - local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} - - dodir /usr/{bin,share/{man/man1,vim}} - emake -C src \ - installruntime \ - installmanlinks \ - installmacros \ - installtutor \ - installtutorbin \ - installtools \ - install-languages \ - DESTDIR="${D}" \ - BINDIR="${EPREFIX}"/usr/bin \ - MANDIR="${EPREFIX}"/usr/share/man \ - DATADIR="${EPREFIX}"/usr/share - - keepdir ${vimfiles}/keymap - - # default vimrc is installed by vim-core since it applies to - # both vim and gvim - insinto /etc/vim/ - newins "${FILESDIR}"/vimrc-r7 vimrc - eprefixify "${ED}"/etc/vim/vimrc - - if use minimal; then - # To save space, install only a subset of the files. - # Helps minimalize the livecd, bug 65144. - rm -rv "${ED}${vimfiles}"/{compiler,doc,ftplugin,indent} || die - rm -rv "${ED}${vimfiles}"/{macros,print,tools,tutor} || die - rm -v "${ED}"/usr/bin/vimtutor || die - - for f in "${ED}${vimfiles}"/colors/*.vim; do - if [[ ${f} != */@(default).vim ]] ; then - printf '%s\0' "${f}" - fi - done | xargs -0 rm -f || die - - for f in "${ED}${vimfiles}"/syntax/*.vim; do - if [[ ${f} != */@(conf|crontab|fstab|inittab|resolv|sshdconfig|syntax|nosyntax|synload).vim ]] ; then - printf '%s\0' "${f}" - fi - done | xargs -0 rm -f || die - fi - - newbashcomp "${FILESDIR}"/xxd-completion xxd - - # install gvim icon since both vim/gvim desktop files reference it - doicon -s scalable "${FILESDIR}"/gvim.svg -} - -pkg_postinst() { - # update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # update icon cache - xdg_icon_cache_update -} - -pkg_postrm() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # update icon cache - xdg_icon_cache_update -} diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9999.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9999.ebuild index 33c4d2bce55..696ffd61be6 100644 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 # Please bump with app-editors/vim and app-editors/gvim VIM_VERSION="9.1" -VIM_PATCHES_VERSION="9.0.2092" +VIM_PATCHES_VERSION="9.1.1432" inherit desktop flag-o-matic prefix toolchain-funcs vim-doc xdg-utils if [[ ${PV} == 9999* ]] ; then @@ -16,7 +16,8 @@ if [[ ${PV} == 9999* ]] ; then else SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" + # https://github.com/douglarek/gentoo-vim-patches/releases/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.gz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" fi DESCRIPTION="vim and gvim shared files" @@ -134,8 +135,9 @@ src_configure() { export ac_cv_prog_STRIP="$(type -P true ) faking strip" local myconf=( - --with-modified-by=Gentoo-${PVR} + --with-modified-by="Gentoo-${PVR} (RIP Bram)" --enable-gui=no + --without-wayland --without-x --disable-darwin --disable-perlinterp diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim/Manifest b/sdk_container/src/third_party/portage-stable/app-editors/vim/Manifest index 45fc21d7a36..5d2dad07d4b 100644 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-editors/vim/Manifest @@ -1,4 +1,2 @@ -DIST vim-9.1.1436.tar.gz 18860692 BLAKE2B ae0471654446ff4101f2df698f46c59c9d634336a6dd762732e46238e97bb6fd00a42b56cad3ae5cce572da2fc3cc65490cd10a024419940352fddd285bd6e23 SHA512 c6007fecf7e8ba2134246b0072ebfa8ce0f85666ac96a6ccc1a81e23a4e46a6b75c136823cdf6dccb6dfdf703affaede9ce83988cf8fe7e5542087a769e61961 -DIST vim-9.1.1500.tar.gz 18567738 BLAKE2B 9222c3245eed55b71b228562ee768857207b3198d738dddfab0fdbb3bb8e497a906fedc497f55a416d4e05c5dda4cd0d373298557fe05c554a03c28732c06bba SHA512 f36a80bf76ea2813aba64d5ce7c6d60241609409bdb70d3a1a622fdcab826d9c8d61a611379125428136afc64b309ca92c33c265dfc276a1bebfc0d4f5d71253 DIST vim-9.1.1652.tar.gz 18776578 BLAKE2B c4cc711ee996d6b7268c243c1fae01600d104763f6eee2abbe342f2cf9ee90fb6ee3f0b44fe4814ff47ae13c5a391510c3b711c92acbee591e290da621289029 SHA512 f1dfb1dc0fd834fa3ffb40c31f48de78b48225c9d67667f069ff8b23a6a76d534f3e228b936141616a33a0d73445626dcd2ff52a8571e9f4370a8fbcad9771d7 DIST vim-patches-vim-9.1.1432-patches.tar.bz2 2618 BLAKE2B fe7c302c71fbf66f1921e1b55e2f67914ed104ab86e2a6cf2e6bf67c98214f13f1d8ff1ed7015ec41a5665c692946e20ec5bdf4806e789a70e34c0c888472739 SHA512 a794a7e4d9014d5508db7b205404f5a4b44748a82c5599a26c1ec6b06d3105f6cebf9a93a058f65ad853bbadf432034fc8257a7c77b4f3446331b9d66c19b3af diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1436-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1436-r1.ebuild deleted file mode 100644 index dab363c4318..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1436-r1.ebuild +++ /dev/null @@ -1,370 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Please bump with app-editors/vim-core and app-editors/gvim - -VIM_VERSION="9.1" -VIM_PATCHES_VERSION="9.1.1432" - -LUA_COMPAT=( lua5-{1..4} luajit ) -PYTHON_COMPAT=( python3_{10..14} ) -PYTHON_REQ_USE="threads(+)" -USE_RUBY="ruby31 ruby32" - -inherit vim-doc flag-o-matic bash-completion-r1 lua-single python-single-r1 ruby-single toolchain-funcs desktop xdg-utils - -if [[ ${PV} == 9999* ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/vim/vim.git" -else - SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> ${P}.tar.gz - https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2" - # https://github.com/douglarek/gentoo-vim-patches/releases/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="Vim, an improved vi-style text editor" -HOMEPAGE="https://www.vim.org https://github.com/vim/vim" - -LICENSE="vim" -SLOT="0" -IUSE="X acl crypt cscope debug gpm lua minimal nls perl python racket ruby selinux sound tcl terminal vim-pager" -REQUIRED_USE=" - lua? ( ${LUA_REQUIRED_USE} ) - python? ( ${PYTHON_REQUIRED_USE} ) - vim-pager? ( !minimal ) -" - -RDEPEND=" - >=app-eselect/eselect-vi-1.1 - >=sys-libs/ncurses-5.2-r2:0= - nls? ( virtual/libintl ) - acl? ( kernel_linux? ( sys-apps/acl ) ) - crypt? ( dev-libs/libsodium:= ) - cscope? ( dev-util/cscope ) - gpm? ( >=sys-libs/gpm-1.19.3 ) - lua? ( ${LUA_DEPS} - $(lua_gen_impl_dep 'deprecated' lua5-1) - ) - ~app-editors/vim-core-${PV} - vim-pager? ( app-editors/vim-core[-minimal] ) - perl? ( dev-lang/perl:= ) - python? ( ${PYTHON_DEPS} ) - racket? ( dev-scheme/racket ) - ruby? ( ${RUBY_DEPS} ) - selinux? ( sys-libs/libselinux ) - sound? ( media-libs/libcanberra ) - tcl? ( dev-lang/tcl:0= ) - X? ( x11-libs/libXt ) -" -DEPEND="${RDEPEND} - X? ( x11-base/xorg-proto ) -" -# configure runs the Lua interpreter -BDEPEND=" - dev-build/autoconf - lua? ( ${LUA_DEPS} ) - nls? ( sys-devel/gettext ) -" -PDEPEND="!minimal? ( app-vim/gentoo-syntax )" - -if [[ ${PV} != 9999* ]]; then - # Gentoo patches to fix runtime issues, cross-compile errors, etc - PATCHES=( - "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches" - ) -fi - -# platform-specific checks (bug #898452): -# - acl() -- Solaris -# - statacl() -- AIX -QA_CONFIG_IMPL_DECL_SKIP=( - 'acl' - 'statacl' -) - -pkg_setup() { - # people with broken alphabets run into trouble. bug #82186. - unset LANG LC_ALL - export LC_COLLATE="C" - - use lua && lua-single_pkg_setup - use python && python-single-r1_pkg_setup -} - -src_prepare() { - default - - # Fixup a script to use awk instead of nawk - sed -i -e \ - '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \ - "${S}"/runtime/tools/mve.awk || die "mve.awk sed failed" - - # Read vimrc and gvimrc from /etc/vim - echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \ - >> "${S}"/src/feature.h || die "echo failed" - echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \ - >> "${S}"/src/feature.h || die "echo failed" - - # Use exuberant ctags which installs as /usr/bin/exuberant-ctags. - # Hopefully this pattern won't break for a while at least. - # This fixes bug #29398 (27 Sep 2003 agriffis) - sed -i -e \ - 's/\> "$c" || die "echo failed" - done - - # conditionally make the manpager.sh script - if use vim-pager; then - cat > "${S}"/runtime/macros/manpager.sh <<-_EOF_ || die "cat EOF failed" - #!/bin/sh - sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | \\ - vim \\ - -c 'let no_plugin_maps = 1' \\ - -c 'set nolist nomod ft=man ts=8' \\ - -c 'let g:showmarks_enable=0' \\ - -c 'runtime! macros/less.vim' - - _EOF_ - fi - - # Try to avoid sandbox problems. Bug #114475. - if [[ -d "${S}"/src/po ]]; then - sed -i -e \ - '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ - "${S}"/src/po/Makefile || die "sed failed" - fi - - cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed" - - # Fix bug 18245: Prevent "make" from the following chain: - # (1) Notice configure.ac is newer than auto/configure - # (2) Rebuild auto/configure - # (3) Notice auto/configure is newer than auto/config.mk - # (4) Run ./configure (with wrong args) to remake auto/config.mk - sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" - rm src/auto/configure || die "rm failed" - - # bug 908961 - if use elibc_musl ; then - sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die - fi -} - -src_configure() { - emake -j1 -C src autoconf - - # This should fix a sandbox violation (see bug #24447). The hvc - # things are for ppc64, see bug #86433. - for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do - if [[ -e "${file}" ]]; then - addwrite ${file} - fi - done - - local myconf=() - if use minimal; then - myconf=( - --with-features=tiny - --disable-nls - --disable-canberra - --disable-acl - --enable-gui=no - --without-x - --disable-darwin - --disable-luainterp - --disable-perlinterp - --disable-pythoninterp - --disable-mzschemeinterp - --disable-rubyinterp - --disable-selinux - --disable-tclinterp - --disable-gpm - ) - else - use debug && append-flags "-DDEBUG" - - myconf=( - --with-features=huge - $(use_enable sound canberra) - $(use_enable acl) - $(use_enable crypt libsodium) - $(use_enable cscope) - $(use_enable gpm) - $(use_enable nls) - $(use_enable perl perlinterp) - $(use_enable python python3interp) - $(use_with python python3-command "${PYTHON}") - $(use_enable racket mzschemeinterp) - $(use_enable ruby rubyinterp) - $(use_enable selinux) - $(use_enable tcl tclinterp) - $(use_enable terminal) - ) - - # --with-features=huge forces on cscope even if we --disable it. We need - # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm) - if ! use cscope; then - sed -i -e \ - '/# define FEAT_CSCOPE/d' src/feature.h || die "sed failed" - fi - - if use lua; then - # -DLUA_COMPAT_OPENLIB=1 is required to enable the - # deprecated (in 5.1) luaL_openlib API (#874690) - use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1 - - myconf+=( - --enable-luainterp - $(use_with lua_single_target_luajit luajit) - --with-lua-prefix="${EPREFIX}/usr" - ) - fi - - # don't test USE=X here ... see bug #19115 - # but need to provide a way to link against X ... see bug #20093 - myconf+=( - --enable-gui=no - --disable-darwin - $(use_with X x) - ) - fi - - # let package manager strip binaries - export ac_cv_prog_STRIP="$(type -P true ) faking strip" - - # keep prefix env contained within the EPREFIX - use prefix && myconf+=( --without-local-dir ) - - if tc-is-cross-compiler ; then - export vim_cv_getcwd_broken=no \ - vim_cv_memmove_handles_overlap=yes \ - vim_cv_stat_ignores_slash=yes \ - vim_cv_terminfo=yes \ - vim_cv_toupper_broken=no - fi - - econf \ - --with-modified-by="Gentoo-${PVR} (RIP Bram)" \ - "${myconf[@]}" -} - -src_compile() { - # The following allows emake to be used - emake -j1 -C src auto/osdef.h objects - - emake -} - -src_test() { - einfo - einfo "Starting vim tests. Several error messages will be shown" - einfo "while the tests run. This is normal behaviour and does not" - einfo "indicate a fault." - einfo - ewarn "If the tests fail, your terminal may be left in a strange" - ewarn "state. Usually, running 'reset' will fix this." - einfo - - # Don't let vim talk to X - unset DISPLAY - - # Arch and opensuse seem to do this and at this point, I'm willing - # to try anything to avoid random test hangs! - export TERM=xterm - - # See https://github.com/vim/vim/blob/f08b0eb8691ff09f98bc4beef986ece1c521655f/src/testdir/runtest.vim#L5 - # for more information on test variables we can use. - # Note that certain variables need vim-compatible regex (not PCRE), see e.g. - # http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml. - # - # Skipped tests: - # - Test_expand_star_star - # Hangs because of a recursive symlink in /usr/include/nodejs (bug #616680) - # - Test_exrc - # Looks in wrong location? (bug #742710) - # - Test_job_tty_in_out - # Fragile and depends on TERM(?) - # - Test_spelldump_bang - # Hangs. - # - Test_fuzzy_completion_env - # Too sensitive to leaked environment variables. - # - Test_term_mouse_multiple_clicks_to_select_mode - # Hangs. - # - Test_spelldump - # Hangs. - # - Test_glvs_* - # Depends on local network. - export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\|Test_spelldump\|Test_glvs_\)' - - emake -j1 -C src/testdir nongui -} - -# Call eselect vi update with --if-unset -# to respect user's choice (bug #187449) -eselect_vi_update() { - ebegin "Calling eselect vi update" - eselect vi update --if-unset - eend $? -} - -src_install() { - local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} - - # Note: Do not install symlinks for 'vi', 'ex', or 'view', as these are - # managed by eselect-vi - dobin src/vim - if ! use minimal ; then - dosym vim /usr/bin/vimdiff - fi - dosym vim /usr/bin/rvim - dosym vim /usr/bin/rview - if use vim-pager ; then - dosym ${vimfiles}/macros/less.sh /usr/bin/vimpager - dosym ${vimfiles}/macros/manpager.sh /usr/bin/vimmanpager - insinto ${vimfiles}/macros - doins runtime/macros/manpager.sh - fperms a+x ${vimfiles}/macros/manpager.sh - fi - - domenu runtime/vim.desktop - - newbashcomp "${FILESDIR}"/${PN}-completion ${PN} - - # keep in sync with 'complete ... -F' list - bashcomp_alias vim ex vi view rvim rview vimdiff -} - -pkg_postinst() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # Call eselect vi update - eselect_vi_update - - # update desktop file mime cache - xdg_desktop_database_update -} - -pkg_postrm() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # Call eselect vi update - eselect_vi_update - - # update desktop file mime cache - xdg_desktop_database_update -} diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1436.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1436.ebuild deleted file mode 100644 index deb6ee7ebc9..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1436.ebuild +++ /dev/null @@ -1,380 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Please bump with app-editors/vim-core and app-editors/gvim - -VIM_VERSION="9.1" -VIM_PATCHES_VERSION="9.1.1432" - -LUA_COMPAT=( lua5-{1..4} luajit ) -PYTHON_COMPAT=( python3_{10..14} ) -PYTHON_REQ_USE="threads(+)" -USE_RUBY="ruby31 ruby32" - -inherit vim-doc flag-o-matic bash-completion-r1 lua-single python-single-r1 ruby-single toolchain-funcs desktop xdg-utils - -if [[ ${PV} == 9999* ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/vim/vim.git" -else - SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> ${P}.tar.gz - https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2" - # https://github.com/douglarek/gentoo-vim-patches/releases/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="Vim, an improved vi-style text editor" -HOMEPAGE="https://www.vim.org https://github.com/vim/vim" - -LICENSE="vim" -SLOT="0" -IUSE="X acl crypt cscope debug gpm lua minimal nls perl python racket ruby selinux sound tcl terminal vim-pager" -REQUIRED_USE=" - lua? ( ${LUA_REQUIRED_USE} ) - python? ( ${PYTHON_REQUIRED_USE} ) - vim-pager? ( !minimal ) -" - -RDEPEND=" - >=app-eselect/eselect-vi-1.1 - >=sys-libs/ncurses-5.2-r2:0= - nls? ( virtual/libintl ) - acl? ( kernel_linux? ( sys-apps/acl ) ) - crypt? ( dev-libs/libsodium:= ) - cscope? ( dev-util/cscope ) - gpm? ( >=sys-libs/gpm-1.19.3 ) - lua? ( ${LUA_DEPS} - $(lua_gen_impl_dep 'deprecated' lua5-1) - ) - ~app-editors/vim-core-${PV} - vim-pager? ( app-editors/vim-core[-minimal] ) - perl? ( dev-lang/perl:= ) - python? ( ${PYTHON_DEPS} ) - racket? ( dev-scheme/racket ) - ruby? ( ${RUBY_DEPS} ) - selinux? ( sys-libs/libselinux ) - sound? ( media-libs/libcanberra ) - tcl? ( dev-lang/tcl:0= ) - X? ( x11-libs/libXt ) -" -DEPEND="${RDEPEND} - X? ( x11-base/xorg-proto ) -" -# configure runs the Lua interpreter -BDEPEND=" - dev-build/autoconf - lua? ( ${LUA_DEPS} ) - nls? ( sys-devel/gettext ) -" -PDEPEND="!minimal? ( app-vim/gentoo-syntax )" - -if [[ ${PV} != 9999* ]]; then - # Gentoo patches to fix runtime issues, cross-compile errors, etc - PATCHES=( - "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches" - ) -fi - -# platform-specific checks (bug #898452): -# - acl() -- Solaris -# - statacl() -- AIX -QA_CONFIG_IMPL_DECL_SKIP=( - 'acl' - 'statacl' -) - -pkg_setup() { - # people with broken alphabets run into trouble. bug #82186. - unset LANG LC_ALL - export LC_COLLATE="C" - - use lua && lua-single_pkg_setup - use python && python-single-r1_pkg_setup -} - -src_prepare() { - default - - # Fixup a script to use awk instead of nawk - sed -i -e \ - '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \ - "${S}"/runtime/tools/mve.awk || die "mve.awk sed failed" - - # Read vimrc and gvimrc from /etc/vim - echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \ - >> "${S}"/src/feature.h || die "echo failed" - echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \ - >> "${S}"/src/feature.h || die "echo failed" - - # Use exuberant ctags which installs as /usr/bin/exuberant-ctags. - # Hopefully this pattern won't break for a while at least. - # This fixes bug #29398 (27 Sep 2003 agriffis) - sed -i -e \ - 's/\> "$c" || die "echo failed" - done - - # conditionally make the manpager.sh script - if use vim-pager; then - cat > "${S}"/runtime/macros/manpager.sh <<-_EOF_ || die "cat EOF failed" - #!/bin/sh - sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | \\ - vim \\ - -c 'let no_plugin_maps = 1' \\ - -c 'set nolist nomod ft=man ts=8' \\ - -c 'let g:showmarks_enable=0' \\ - -c 'runtime! macros/less.vim' - - _EOF_ - fi - - # Try to avoid sandbox problems. Bug #114475. - if [[ -d "${S}"/src/po ]]; then - sed -i -e \ - '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ - "${S}"/src/po/Makefile || die "sed failed" - fi - - cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed" - - # Fix bug 18245: Prevent "make" from the following chain: - # (1) Notice configure.ac is newer than auto/configure - # (2) Rebuild auto/configure - # (3) Notice auto/configure is newer than auto/config.mk - # (4) Run ./configure (with wrong args) to remake auto/config.mk - sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" - rm src/auto/configure || die "rm failed" - - # bug 908961 - if use elibc_musl ; then - sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die - fi -} - -src_configure() { - - # Fix bug #37354: Disallow -funroll-all-loops on amd64 - # Bug #57859 suggests that we want to do this for all archs - filter-flags -funroll-all-loops - - # Fix bug 76331: -O3 causes problems, use -O2 instead. We'll do this for - # everyone since previous flag filtering bugs have turned out to affect - # multiple archs... - replace-flags -O3 -O2 - - emake -j1 -C src autoconf - - # This should fix a sandbox violation (see bug #24447). The hvc - # things are for ppc64, see bug #86433. - for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do - if [[ -e "${file}" ]]; then - addwrite ${file} - fi - done - - local myconf=() - if use minimal; then - myconf=( - --with-features=tiny - --disable-nls - --disable-canberra - --disable-acl - --enable-gui=no - --without-x - --disable-darwin - --disable-luainterp - --disable-perlinterp - --disable-pythoninterp - --disable-mzschemeinterp - --disable-rubyinterp - --disable-selinux - --disable-tclinterp - --disable-gpm - ) - else - use debug && append-flags "-DDEBUG" - - myconf=( - --with-features=huge - $(use_enable sound canberra) - $(use_enable acl) - $(use_enable crypt libsodium) - $(use_enable cscope) - $(use_enable gpm) - $(use_enable nls) - $(use_enable perl perlinterp) - $(use_enable python python3interp) - $(use_with python python3-command "${PYTHON}") - $(use_enable racket mzschemeinterp) - $(use_enable ruby rubyinterp) - $(use_enable selinux) - $(use_enable tcl tclinterp) - $(use_enable terminal) - ) - - # --with-features=huge forces on cscope even if we --disable it. We need - # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm) - if ! use cscope; then - sed -i -e \ - '/# define FEAT_CSCOPE/d' src/feature.h || die "sed failed" - fi - - if use lua; then - # -DLUA_COMPAT_OPENLIB=1 is required to enable the - # deprecated (in 5.1) luaL_openlib API (#874690) - use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1 - - myconf+=( - --enable-luainterp - $(use_with lua_single_target_luajit luajit) - --with-lua-prefix="${EPREFIX}/usr" - ) - fi - - # don't test USE=X here ... see bug #19115 - # but need to provide a way to link against X ... see bug #20093 - myconf+=( - --enable-gui=no - --disable-darwin - $(use_with X x) - ) - fi - - # let package manager strip binaries - export ac_cv_prog_STRIP="$(type -P true ) faking strip" - - # keep prefix env contained within the EPREFIX - use prefix && myconf+=( --without-local-dir ) - - if tc-is-cross-compiler ; then - export vim_cv_getcwd_broken=no \ - vim_cv_memmove_handles_overlap=yes \ - vim_cv_stat_ignores_slash=yes \ - vim_cv_terminfo=yes \ - vim_cv_toupper_broken=no - fi - - econf \ - --with-modified-by="Gentoo-${PVR} (RIP Bram)" \ - "${myconf[@]}" -} - -src_compile() { - # The following allows emake to be used - emake -j1 -C src auto/osdef.h objects - - emake -} - -src_test() { - einfo - einfo "Starting vim tests. Several error messages will be shown" - einfo "while the tests run. This is normal behaviour and does not" - einfo "indicate a fault." - einfo - ewarn "If the tests fail, your terminal may be left in a strange" - ewarn "state. Usually, running 'reset' will fix this." - einfo - - # Don't let vim talk to X - unset DISPLAY - - # Arch and opensuse seem to do this and at this point, I'm willing - # to try anything to avoid random test hangs! - export TERM=xterm - - # See https://github.com/vim/vim/blob/f08b0eb8691ff09f98bc4beef986ece1c521655f/src/testdir/runtest.vim#L5 - # for more information on test variables we can use. - # Note that certain variables need vim-compatible regex (not PCRE), see e.g. - # http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml. - # - # Skipped tests: - # - Test_expand_star_star - # Hangs because of a recursive symlink in /usr/include/nodejs (bug #616680) - # - Test_exrc - # Looks in wrong location? (bug #742710) - # - Test_job_tty_in_out - # Fragile and depends on TERM(?) - # - Test_spelldump_bang - # Hangs. - # - Test_fuzzy_completion_env - # Too sensitive to leaked environment variables. - # - Test_term_mouse_multiple_clicks_to_select_mode - # Hangs. - # - Test_spelldump - # Hangs. - # - Test_glvs_* - # Depends on local network. - export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\|Test_spelldump\|Test_glvs_\)' - - emake -j1 -C src/testdir nongui -} - -# Call eselect vi update with --if-unset -# to respect user's choice (bug #187449) -eselect_vi_update() { - ebegin "Calling eselect vi update" - eselect vi update --if-unset - eend $? -} - -src_install() { - local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} - - # Note: Do not install symlinks for 'vi', 'ex', or 'view', as these are - # managed by eselect-vi - dobin src/vim - if ! use minimal ; then - dosym vim /usr/bin/vimdiff - fi - dosym vim /usr/bin/rvim - dosym vim /usr/bin/rview - if use vim-pager ; then - dosym ${vimfiles}/macros/less.sh /usr/bin/vimpager - dosym ${vimfiles}/macros/manpager.sh /usr/bin/vimmanpager - insinto ${vimfiles}/macros - doins runtime/macros/manpager.sh - fperms a+x ${vimfiles}/macros/manpager.sh - fi - - domenu runtime/vim.desktop - - newbashcomp "${FILESDIR}"/${PN}-completion ${PN} - - # keep in sync with 'complete ... -F' list - bashcomp_alias vim ex vi view rvim rview vimdiff -} - -pkg_postinst() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # Call eselect vi update - eselect_vi_update - - # update desktop file mime cache - xdg_desktop_database_update -} - -pkg_postrm() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # Call eselect vi update - eselect_vi_update - - # update desktop file mime cache - xdg_desktop_database_update -} diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1500.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1500.ebuild deleted file mode 100644 index dab363c4318..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1500.ebuild +++ /dev/null @@ -1,370 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Please bump with app-editors/vim-core and app-editors/gvim - -VIM_VERSION="9.1" -VIM_PATCHES_VERSION="9.1.1432" - -LUA_COMPAT=( lua5-{1..4} luajit ) -PYTHON_COMPAT=( python3_{10..14} ) -PYTHON_REQ_USE="threads(+)" -USE_RUBY="ruby31 ruby32" - -inherit vim-doc flag-o-matic bash-completion-r1 lua-single python-single-r1 ruby-single toolchain-funcs desktop xdg-utils - -if [[ ${PV} == 9999* ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/vim/vim.git" -else - SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> ${P}.tar.gz - https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2" - # https://github.com/douglarek/gentoo-vim-patches/releases/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="Vim, an improved vi-style text editor" -HOMEPAGE="https://www.vim.org https://github.com/vim/vim" - -LICENSE="vim" -SLOT="0" -IUSE="X acl crypt cscope debug gpm lua minimal nls perl python racket ruby selinux sound tcl terminal vim-pager" -REQUIRED_USE=" - lua? ( ${LUA_REQUIRED_USE} ) - python? ( ${PYTHON_REQUIRED_USE} ) - vim-pager? ( !minimal ) -" - -RDEPEND=" - >=app-eselect/eselect-vi-1.1 - >=sys-libs/ncurses-5.2-r2:0= - nls? ( virtual/libintl ) - acl? ( kernel_linux? ( sys-apps/acl ) ) - crypt? ( dev-libs/libsodium:= ) - cscope? ( dev-util/cscope ) - gpm? ( >=sys-libs/gpm-1.19.3 ) - lua? ( ${LUA_DEPS} - $(lua_gen_impl_dep 'deprecated' lua5-1) - ) - ~app-editors/vim-core-${PV} - vim-pager? ( app-editors/vim-core[-minimal] ) - perl? ( dev-lang/perl:= ) - python? ( ${PYTHON_DEPS} ) - racket? ( dev-scheme/racket ) - ruby? ( ${RUBY_DEPS} ) - selinux? ( sys-libs/libselinux ) - sound? ( media-libs/libcanberra ) - tcl? ( dev-lang/tcl:0= ) - X? ( x11-libs/libXt ) -" -DEPEND="${RDEPEND} - X? ( x11-base/xorg-proto ) -" -# configure runs the Lua interpreter -BDEPEND=" - dev-build/autoconf - lua? ( ${LUA_DEPS} ) - nls? ( sys-devel/gettext ) -" -PDEPEND="!minimal? ( app-vim/gentoo-syntax )" - -if [[ ${PV} != 9999* ]]; then - # Gentoo patches to fix runtime issues, cross-compile errors, etc - PATCHES=( - "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches" - ) -fi - -# platform-specific checks (bug #898452): -# - acl() -- Solaris -# - statacl() -- AIX -QA_CONFIG_IMPL_DECL_SKIP=( - 'acl' - 'statacl' -) - -pkg_setup() { - # people with broken alphabets run into trouble. bug #82186. - unset LANG LC_ALL - export LC_COLLATE="C" - - use lua && lua-single_pkg_setup - use python && python-single-r1_pkg_setup -} - -src_prepare() { - default - - # Fixup a script to use awk instead of nawk - sed -i -e \ - '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \ - "${S}"/runtime/tools/mve.awk || die "mve.awk sed failed" - - # Read vimrc and gvimrc from /etc/vim - echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \ - >> "${S}"/src/feature.h || die "echo failed" - echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \ - >> "${S}"/src/feature.h || die "echo failed" - - # Use exuberant ctags which installs as /usr/bin/exuberant-ctags. - # Hopefully this pattern won't break for a while at least. - # This fixes bug #29398 (27 Sep 2003 agriffis) - sed -i -e \ - 's/\> "$c" || die "echo failed" - done - - # conditionally make the manpager.sh script - if use vim-pager; then - cat > "${S}"/runtime/macros/manpager.sh <<-_EOF_ || die "cat EOF failed" - #!/bin/sh - sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | \\ - vim \\ - -c 'let no_plugin_maps = 1' \\ - -c 'set nolist nomod ft=man ts=8' \\ - -c 'let g:showmarks_enable=0' \\ - -c 'runtime! macros/less.vim' - - _EOF_ - fi - - # Try to avoid sandbox problems. Bug #114475. - if [[ -d "${S}"/src/po ]]; then - sed -i -e \ - '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ - "${S}"/src/po/Makefile || die "sed failed" - fi - - cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed" - - # Fix bug 18245: Prevent "make" from the following chain: - # (1) Notice configure.ac is newer than auto/configure - # (2) Rebuild auto/configure - # (3) Notice auto/configure is newer than auto/config.mk - # (4) Run ./configure (with wrong args) to remake auto/config.mk - sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" - rm src/auto/configure || die "rm failed" - - # bug 908961 - if use elibc_musl ; then - sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die - fi -} - -src_configure() { - emake -j1 -C src autoconf - - # This should fix a sandbox violation (see bug #24447). The hvc - # things are for ppc64, see bug #86433. - for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do - if [[ -e "${file}" ]]; then - addwrite ${file} - fi - done - - local myconf=() - if use minimal; then - myconf=( - --with-features=tiny - --disable-nls - --disable-canberra - --disable-acl - --enable-gui=no - --without-x - --disable-darwin - --disable-luainterp - --disable-perlinterp - --disable-pythoninterp - --disable-mzschemeinterp - --disable-rubyinterp - --disable-selinux - --disable-tclinterp - --disable-gpm - ) - else - use debug && append-flags "-DDEBUG" - - myconf=( - --with-features=huge - $(use_enable sound canberra) - $(use_enable acl) - $(use_enable crypt libsodium) - $(use_enable cscope) - $(use_enable gpm) - $(use_enable nls) - $(use_enable perl perlinterp) - $(use_enable python python3interp) - $(use_with python python3-command "${PYTHON}") - $(use_enable racket mzschemeinterp) - $(use_enable ruby rubyinterp) - $(use_enable selinux) - $(use_enable tcl tclinterp) - $(use_enable terminal) - ) - - # --with-features=huge forces on cscope even if we --disable it. We need - # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm) - if ! use cscope; then - sed -i -e \ - '/# define FEAT_CSCOPE/d' src/feature.h || die "sed failed" - fi - - if use lua; then - # -DLUA_COMPAT_OPENLIB=1 is required to enable the - # deprecated (in 5.1) luaL_openlib API (#874690) - use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1 - - myconf+=( - --enable-luainterp - $(use_with lua_single_target_luajit luajit) - --with-lua-prefix="${EPREFIX}/usr" - ) - fi - - # don't test USE=X here ... see bug #19115 - # but need to provide a way to link against X ... see bug #20093 - myconf+=( - --enable-gui=no - --disable-darwin - $(use_with X x) - ) - fi - - # let package manager strip binaries - export ac_cv_prog_STRIP="$(type -P true ) faking strip" - - # keep prefix env contained within the EPREFIX - use prefix && myconf+=( --without-local-dir ) - - if tc-is-cross-compiler ; then - export vim_cv_getcwd_broken=no \ - vim_cv_memmove_handles_overlap=yes \ - vim_cv_stat_ignores_slash=yes \ - vim_cv_terminfo=yes \ - vim_cv_toupper_broken=no - fi - - econf \ - --with-modified-by="Gentoo-${PVR} (RIP Bram)" \ - "${myconf[@]}" -} - -src_compile() { - # The following allows emake to be used - emake -j1 -C src auto/osdef.h objects - - emake -} - -src_test() { - einfo - einfo "Starting vim tests. Several error messages will be shown" - einfo "while the tests run. This is normal behaviour and does not" - einfo "indicate a fault." - einfo - ewarn "If the tests fail, your terminal may be left in a strange" - ewarn "state. Usually, running 'reset' will fix this." - einfo - - # Don't let vim talk to X - unset DISPLAY - - # Arch and opensuse seem to do this and at this point, I'm willing - # to try anything to avoid random test hangs! - export TERM=xterm - - # See https://github.com/vim/vim/blob/f08b0eb8691ff09f98bc4beef986ece1c521655f/src/testdir/runtest.vim#L5 - # for more information on test variables we can use. - # Note that certain variables need vim-compatible regex (not PCRE), see e.g. - # http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml. - # - # Skipped tests: - # - Test_expand_star_star - # Hangs because of a recursive symlink in /usr/include/nodejs (bug #616680) - # - Test_exrc - # Looks in wrong location? (bug #742710) - # - Test_job_tty_in_out - # Fragile and depends on TERM(?) - # - Test_spelldump_bang - # Hangs. - # - Test_fuzzy_completion_env - # Too sensitive to leaked environment variables. - # - Test_term_mouse_multiple_clicks_to_select_mode - # Hangs. - # - Test_spelldump - # Hangs. - # - Test_glvs_* - # Depends on local network. - export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\|Test_spelldump\|Test_glvs_\)' - - emake -j1 -C src/testdir nongui -} - -# Call eselect vi update with --if-unset -# to respect user's choice (bug #187449) -eselect_vi_update() { - ebegin "Calling eselect vi update" - eselect vi update --if-unset - eend $? -} - -src_install() { - local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} - - # Note: Do not install symlinks for 'vi', 'ex', or 'view', as these are - # managed by eselect-vi - dobin src/vim - if ! use minimal ; then - dosym vim /usr/bin/vimdiff - fi - dosym vim /usr/bin/rvim - dosym vim /usr/bin/rview - if use vim-pager ; then - dosym ${vimfiles}/macros/less.sh /usr/bin/vimpager - dosym ${vimfiles}/macros/manpager.sh /usr/bin/vimmanpager - insinto ${vimfiles}/macros - doins runtime/macros/manpager.sh - fperms a+x ${vimfiles}/macros/manpager.sh - fi - - domenu runtime/vim.desktop - - newbashcomp "${FILESDIR}"/${PN}-completion ${PN} - - # keep in sync with 'complete ... -F' list - bashcomp_alias vim ex vi view rvim rview vimdiff -} - -pkg_postinst() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # Call eselect vi update - eselect_vi_update - - # update desktop file mime cache - xdg_desktop_database_update -} - -pkg_postrm() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # Call eselect vi update - eselect_vi_update - - # update desktop file mime cache - xdg_desktop_database_update -} diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1652-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1652-r1.ebuild deleted file mode 100644 index 335b3961c04..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1652-r1.ebuild +++ /dev/null @@ -1,377 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Please bump with app-editors/vim-core and app-editors/gvim - -VIM_VERSION="9.1" -VIM_PATCHES_VERSION="9.1.1432" - -LUA_COMPAT=( lua5-{1..4} luajit ) -PYTHON_COMPAT=( python3_{11..14} ) -PYTHON_REQ_USE="threads(+)" -USE_RUBY="ruby31 ruby32" -GENTOO_DEPEND_ON_PERL=no - -inherit vim-doc flag-o-matic bash-completion-r1 lua-single perl-module python-single-r1 ruby-single toolchain-funcs desktop xdg-utils - -if [[ ${PV} == 9999* ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/vim/vim.git" -else - SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> ${P}.tar.gz - https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2" - # https://github.com/douglarek/gentoo-vim-patches/releases/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="Vim, an improved vi-style text editor" -HOMEPAGE="https://www.vim.org https://github.com/vim/vim" - -LICENSE="vim" -SLOT="0" -IUSE="X acl crypt cscope debug gpm lua minimal nls perl python racket ruby selinux sound tcl terminal vim-pager ${GENTOO_PERL_USESTRING}" -REQUIRED_USE=" - lua? ( ${LUA_REQUIRED_USE} ) - python? ( ${PYTHON_REQUIRED_USE} ) - vim-pager? ( !minimal ) -" - -RDEPEND=" - >=app-eselect/eselect-vi-1.1 - >=sys-libs/ncurses-5.2-r2:0= - nls? ( virtual/libintl ) - acl? ( kernel_linux? ( sys-apps/acl ) ) - crypt? ( dev-libs/libsodium:= ) - cscope? ( dev-util/cscope ) - gpm? ( >=sys-libs/gpm-1.19.3 ) - lua? ( ${LUA_DEPS} - $(lua_gen_impl_dep 'deprecated' lua5-1) - ) - ~app-editors/vim-core-${PV} - vim-pager? ( app-editors/vim-core[-minimal] ) - perl? ( - ${GENTOO_PERL_DEPSTRING} - dev-lang/perl:= - ) - python? ( ${PYTHON_DEPS} ) - racket? ( dev-scheme/racket ) - ruby? ( ${RUBY_DEPS} ) - selinux? ( sys-libs/libselinux ) - sound? ( media-libs/libcanberra ) - tcl? ( dev-lang/tcl:0= ) - X? ( x11-libs/libXt ) -" -DEPEND="${RDEPEND} - X? ( x11-base/xorg-proto ) -" -# configure runs the Lua interpreter -BDEPEND=" - dev-build/autoconf - lua? ( ${LUA_DEPS} ) - nls? ( sys-devel/gettext ) -" -PDEPEND="!minimal? ( app-vim/gentoo-syntax )" - -if [[ ${PV} != 9999* ]]; then - # Gentoo patches to fix runtime issues, cross-compile errors, etc - PATCHES=( - "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches" - ) -fi - -# platform-specific checks (bug #898452): -# - acl() -- Solaris -# - statacl() -- AIX -QA_CONFIG_IMPL_DECL_SKIP=( - 'acl' - 'statacl' -) - -pkg_setup() { - # people with broken alphabets run into trouble. bug #82186. - unset LANG LC_ALL - export LC_COLLATE="C" - - use lua && lua-single_pkg_setup - use python && python-single-r1_pkg_setup -} - -src_prepare() { - default - - # Fixup a script to use awk instead of nawk - sed -i -e \ - '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \ - "${S}"/runtime/tools/mve.awk || die "mve.awk sed failed" - - # Read vimrc and gvimrc from /etc/vim - echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \ - >> "${S}"/src/feature.h || die "echo failed" - echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \ - >> "${S}"/src/feature.h || die "echo failed" - - # Use exuberant ctags which installs as /usr/bin/exuberant-ctags. - # Hopefully this pattern won't break for a while at least. - # This fixes bug #29398 (27 Sep 2003 agriffis) - sed -i -e \ - 's/\> "$c" || die "echo failed" - done - - # conditionally make the manpager.sh script - if use vim-pager; then - cat > "${S}"/runtime/macros/manpager.sh <<-_EOF_ || die "cat EOF failed" - #!/bin/sh - sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | \\ - vim \\ - -c 'let no_plugin_maps = 1' \\ - -c 'set nolist nomod ft=man ts=8' \\ - -c 'let g:showmarks_enable=0' \\ - -c 'runtime! macros/less.vim' - - _EOF_ - fi - - # Try to avoid sandbox problems. Bug #114475. - if [[ -d "${S}"/src/po ]]; then - sed -i -e \ - '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ - "${S}"/src/po/Makefile || die "sed failed" - fi - - cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed" - - # Fix bug 18245: Prevent "make" from the following chain: - # (1) Notice configure.ac is newer than auto/configure - # (2) Rebuild auto/configure - # (3) Notice auto/configure is newer than auto/config.mk - # (4) Run ./configure (with wrong args) to remake auto/config.mk - sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" - rm src/auto/configure || die "rm failed" - - # bug 908961 - if use elibc_musl ; then - sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die - fi -} - -src_configure() { - emake -j1 -C src autoconf - - # This should fix a sandbox violation (see bug #24447). The hvc - # things are for ppc64, see bug #86433. - for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do - if [[ -e "${file}" ]]; then - addwrite ${file} - fi - done - - local myconf=() - if use minimal; then - myconf=( - --with-features=tiny - --disable-nls - --disable-canberra - --disable-acl - --enable-gui=no - --without-x - --disable-darwin - --disable-luainterp - --disable-perlinterp - --disable-pythoninterp - --disable-mzschemeinterp - --disable-rubyinterp - --disable-selinux - --disable-tclinterp - --disable-gpm - ) - else - use debug && append-flags "-DDEBUG" - - myconf=( - --with-features=huge - $(use_enable sound canberra) - $(use_enable acl) - $(use_enable crypt libsodium) - $(use_enable cscope) - $(use_enable gpm) - $(use_enable nls) - $(use_enable perl perlinterp) - $(use_enable python python3interp) - $(use_with python python3-command "${PYTHON}") - $(use_enable racket mzschemeinterp) - $(use_enable ruby rubyinterp) - $(use_enable selinux) - $(use_enable tcl tclinterp) - $(use_enable terminal) - ) - - # --with-features=huge forces on cscope even if we --disable it. We need - # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm) - if ! use cscope; then - sed -i -e \ - '/# define FEAT_CSCOPE/d' src/feature.h || die "sed failed" - fi - - if use lua; then - # -DLUA_COMPAT_OPENLIB=1 is required to enable the - # deprecated (in 5.1) luaL_openlib API (#874690) - use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1 - - myconf+=( - --enable-luainterp - $(use_with lua_single_target_luajit luajit) - --with-lua-prefix="${EPREFIX}/usr" - ) - fi - - # don't test USE=X here ... see bug #19115 - # but need to provide a way to link against X ... see bug #20093 - myconf+=( - --enable-gui=no - --disable-darwin - $(use_with X x) - ) - fi - - # let package manager strip binaries - export ac_cv_prog_STRIP="$(type -P true ) faking strip" - - # keep prefix env contained within the EPREFIX - use prefix && myconf+=( --without-local-dir ) - - if tc-is-cross-compiler ; then - export vim_cv_getcwd_broken=no \ - vim_cv_memmove_handles_overlap=yes \ - vim_cv_stat_ignores_slash=yes \ - vim_cv_terminfo=yes \ - vim_cv_toupper_broken=no - fi - - econf \ - --with-modified-by="Gentoo-${PVR} (RIP Bram)" \ - "${myconf[@]}" -} - -src_compile() { - # The following allows emake to be used - emake -j1 -C src auto/osdef.h objects - - emake -} - -src_test() { - einfo - einfo "Starting vim tests. Several error messages will be shown" - einfo "while the tests run. This is normal behaviour and does not" - einfo "indicate a fault." - einfo - ewarn "If the tests fail, your terminal may be left in a strange" - ewarn "state. Usually, running 'reset' will fix this." - einfo - - # Don't let vim talk to X - unset DISPLAY - - # Arch and opensuse seem to do this and at this point, I'm willing - # to try anything to avoid random test hangs! - export TERM=xterm - - # See https://github.com/vim/vim/blob/f08b0eb8691ff09f98bc4beef986ece1c521655f/src/testdir/runtest.vim#L5 - # for more information on test variables we can use. - # Note that certain variables need vim-compatible regex (not PCRE), see e.g. - # http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml. - # - # Skipped tests: - # - Test_expand_star_star - # Hangs because of a recursive symlink in /usr/include/nodejs (bug #616680) - # - Test_exrc - # Looks in wrong location? (bug #742710) - # - Test_job_tty_in_out - # Fragile and depends on TERM(?) - # - Test_spelldump_bang - # Hangs. - # - Test_fuzzy_completion_env - # Too sensitive to leaked environment variables. - # - Test_term_mouse_multiple_clicks_to_select_mode - # Hangs. - # - Test_spelldump - # Hangs. - # - Test_glvs_* - # Depends on local network. - export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\|Test_spelldump\|Test_glvs_\)' - - echo "throw 'Skipped: needs X'" > src/testdir/test_clientserver.vim || die - echo "throw 'Skipped: needs X'" > src/testdir/test_vim9_builtin.vim || die - - emake -j1 -C src/testdir nongui -} - -# Call eselect vi update with --if-unset -# to respect user's choice (bug #187449) -eselect_vi_update() { - ebegin "Calling eselect vi update" - eselect vi update --if-unset - eend $? -} - -src_install() { - local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} - - # Note: Do not install symlinks for 'vi', 'ex', or 'view', as these are - # managed by eselect-vi - dobin src/vim - if ! use minimal ; then - dosym vim /usr/bin/vimdiff - fi - dosym vim /usr/bin/rvim - dosym vim /usr/bin/rview - if use vim-pager ; then - dosym ${vimfiles}/macros/less.sh /usr/bin/vimpager - dosym ${vimfiles}/macros/manpager.sh /usr/bin/vimmanpager - insinto ${vimfiles}/macros - doins runtime/macros/manpager.sh - fperms a+x ${vimfiles}/macros/manpager.sh - fi - - domenu runtime/vim.desktop - - newbashcomp "${FILESDIR}"/${PN}-completion ${PN} - - # keep in sync with 'complete ... -F' list - bashcomp_alias vim ex vi view rvim rview vimdiff -} - -pkg_postinst() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # Call eselect vi update - eselect_vi_update - - # update desktop file mime cache - xdg_desktop_database_update -} - -pkg_postrm() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # Call eselect vi update - eselect_vi_update - - # update desktop file mime cache - xdg_desktop_database_update -} diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1652-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1652-r2.ebuild index 7ca6f051a71..37d10cd8e97 100644 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1652-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1652-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -11,7 +11,7 @@ VIM_PATCHES_VERSION="9.1.1432" LUA_COMPAT=( lua5-{1..4} luajit ) PYTHON_COMPAT=( python3_{11..14} ) PYTHON_REQ_USE="threads(+)" -USE_RUBY="ruby31 ruby32" +USE_RUBY="ruby32 ruby33" GENTOO_DEPEND_ON_PERL=no inherit vim-doc flag-o-matic bash-completion-r1 lua-single perl-module python-single-r1 ruby-single toolchain-funcs desktop xdg-utils diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1652.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1652.ebuild deleted file mode 100644 index 8d4c06ff38e..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1652.ebuild +++ /dev/null @@ -1,373 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Please bump with app-editors/vim-core and app-editors/gvim - -VIM_VERSION="9.1" -VIM_PATCHES_VERSION="9.1.1432" - -LUA_COMPAT=( lua5-{1..4} luajit ) -PYTHON_COMPAT=( python3_{11..14} ) -PYTHON_REQ_USE="threads(+)" -USE_RUBY="ruby31 ruby32" - -inherit vim-doc flag-o-matic bash-completion-r1 lua-single python-single-r1 ruby-single toolchain-funcs desktop xdg-utils - -if [[ ${PV} == 9999* ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/vim/vim.git" -else - SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> ${P}.tar.gz - https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2" - # https://github.com/douglarek/gentoo-vim-patches/releases/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="Vim, an improved vi-style text editor" -HOMEPAGE="https://www.vim.org https://github.com/vim/vim" - -LICENSE="vim" -SLOT="0" -IUSE="X acl crypt cscope debug gpm lua minimal nls perl python racket ruby selinux sound tcl terminal vim-pager" -REQUIRED_USE=" - lua? ( ${LUA_REQUIRED_USE} ) - python? ( ${PYTHON_REQUIRED_USE} ) - vim-pager? ( !minimal ) -" - -RDEPEND=" - >=app-eselect/eselect-vi-1.1 - >=sys-libs/ncurses-5.2-r2:0= - nls? ( virtual/libintl ) - acl? ( kernel_linux? ( sys-apps/acl ) ) - crypt? ( dev-libs/libsodium:= ) - cscope? ( dev-util/cscope ) - gpm? ( >=sys-libs/gpm-1.19.3 ) - lua? ( ${LUA_DEPS} - $(lua_gen_impl_dep 'deprecated' lua5-1) - ) - ~app-editors/vim-core-${PV} - vim-pager? ( app-editors/vim-core[-minimal] ) - perl? ( dev-lang/perl:= ) - python? ( ${PYTHON_DEPS} ) - racket? ( dev-scheme/racket ) - ruby? ( ${RUBY_DEPS} ) - selinux? ( sys-libs/libselinux ) - sound? ( media-libs/libcanberra ) - tcl? ( dev-lang/tcl:0= ) - X? ( x11-libs/libXt ) -" -DEPEND="${RDEPEND} - X? ( x11-base/xorg-proto ) -" -# configure runs the Lua interpreter -BDEPEND=" - dev-build/autoconf - lua? ( ${LUA_DEPS} ) - nls? ( sys-devel/gettext ) -" -PDEPEND="!minimal? ( app-vim/gentoo-syntax )" - -if [[ ${PV} != 9999* ]]; then - # Gentoo patches to fix runtime issues, cross-compile errors, etc - PATCHES=( - "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches" - ) -fi - -# platform-specific checks (bug #898452): -# - acl() -- Solaris -# - statacl() -- AIX -QA_CONFIG_IMPL_DECL_SKIP=( - 'acl' - 'statacl' -) - -pkg_setup() { - # people with broken alphabets run into trouble. bug #82186. - unset LANG LC_ALL - export LC_COLLATE="C" - - use lua && lua-single_pkg_setup - use python && python-single-r1_pkg_setup -} - -src_prepare() { - default - - # Fixup a script to use awk instead of nawk - sed -i -e \ - '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \ - "${S}"/runtime/tools/mve.awk || die "mve.awk sed failed" - - # Read vimrc and gvimrc from /etc/vim - echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \ - >> "${S}"/src/feature.h || die "echo failed" - echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \ - >> "${S}"/src/feature.h || die "echo failed" - - # Use exuberant ctags which installs as /usr/bin/exuberant-ctags. - # Hopefully this pattern won't break for a while at least. - # This fixes bug #29398 (27 Sep 2003 agriffis) - sed -i -e \ - 's/\> "$c" || die "echo failed" - done - - # conditionally make the manpager.sh script - if use vim-pager; then - cat > "${S}"/runtime/macros/manpager.sh <<-_EOF_ || die "cat EOF failed" - #!/bin/sh - sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | \\ - vim \\ - -c 'let no_plugin_maps = 1' \\ - -c 'set nolist nomod ft=man ts=8' \\ - -c 'let g:showmarks_enable=0' \\ - -c 'runtime! macros/less.vim' - - _EOF_ - fi - - # Try to avoid sandbox problems. Bug #114475. - if [[ -d "${S}"/src/po ]]; then - sed -i -e \ - '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ - "${S}"/src/po/Makefile || die "sed failed" - fi - - cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed" - - # Fix bug 18245: Prevent "make" from the following chain: - # (1) Notice configure.ac is newer than auto/configure - # (2) Rebuild auto/configure - # (3) Notice auto/configure is newer than auto/config.mk - # (4) Run ./configure (with wrong args) to remake auto/config.mk - sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" - rm src/auto/configure || die "rm failed" - - # bug 908961 - if use elibc_musl ; then - sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die - fi -} - -src_configure() { - emake -j1 -C src autoconf - - # This should fix a sandbox violation (see bug #24447). The hvc - # things are for ppc64, see bug #86433. - for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do - if [[ -e "${file}" ]]; then - addwrite ${file} - fi - done - - local myconf=() - if use minimal; then - myconf=( - --with-features=tiny - --disable-nls - --disable-canberra - --disable-acl - --enable-gui=no - --without-x - --disable-darwin - --disable-luainterp - --disable-perlinterp - --disable-pythoninterp - --disable-mzschemeinterp - --disable-rubyinterp - --disable-selinux - --disable-tclinterp - --disable-gpm - ) - else - use debug && append-flags "-DDEBUG" - - myconf=( - --with-features=huge - $(use_enable sound canberra) - $(use_enable acl) - $(use_enable crypt libsodium) - $(use_enable cscope) - $(use_enable gpm) - $(use_enable nls) - $(use_enable perl perlinterp) - $(use_enable python python3interp) - $(use_with python python3-command "${PYTHON}") - $(use_enable racket mzschemeinterp) - $(use_enable ruby rubyinterp) - $(use_enable selinux) - $(use_enable tcl tclinterp) - $(use_enable terminal) - ) - - # --with-features=huge forces on cscope even if we --disable it. We need - # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm) - if ! use cscope; then - sed -i -e \ - '/# define FEAT_CSCOPE/d' src/feature.h || die "sed failed" - fi - - if use lua; then - # -DLUA_COMPAT_OPENLIB=1 is required to enable the - # deprecated (in 5.1) luaL_openlib API (#874690) - use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1 - - myconf+=( - --enable-luainterp - $(use_with lua_single_target_luajit luajit) - --with-lua-prefix="${EPREFIX}/usr" - ) - fi - - # don't test USE=X here ... see bug #19115 - # but need to provide a way to link against X ... see bug #20093 - myconf+=( - --enable-gui=no - --disable-darwin - $(use_with X x) - ) - fi - - # let package manager strip binaries - export ac_cv_prog_STRIP="$(type -P true ) faking strip" - - # keep prefix env contained within the EPREFIX - use prefix && myconf+=( --without-local-dir ) - - if tc-is-cross-compiler ; then - export vim_cv_getcwd_broken=no \ - vim_cv_memmove_handles_overlap=yes \ - vim_cv_stat_ignores_slash=yes \ - vim_cv_terminfo=yes \ - vim_cv_toupper_broken=no - fi - - econf \ - --with-modified-by="Gentoo-${PVR} (RIP Bram)" \ - "${myconf[@]}" -} - -src_compile() { - # The following allows emake to be used - emake -j1 -C src auto/osdef.h objects - - emake -} - -src_test() { - einfo - einfo "Starting vim tests. Several error messages will be shown" - einfo "while the tests run. This is normal behaviour and does not" - einfo "indicate a fault." - einfo - ewarn "If the tests fail, your terminal may be left in a strange" - ewarn "state. Usually, running 'reset' will fix this." - einfo - - # Don't let vim talk to X - unset DISPLAY - - # Arch and opensuse seem to do this and at this point, I'm willing - # to try anything to avoid random test hangs! - export TERM=xterm - - # See https://github.com/vim/vim/blob/f08b0eb8691ff09f98bc4beef986ece1c521655f/src/testdir/runtest.vim#L5 - # for more information on test variables we can use. - # Note that certain variables need vim-compatible regex (not PCRE), see e.g. - # http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml. - # - # Skipped tests: - # - Test_expand_star_star - # Hangs because of a recursive symlink in /usr/include/nodejs (bug #616680) - # - Test_exrc - # Looks in wrong location? (bug #742710) - # - Test_job_tty_in_out - # Fragile and depends on TERM(?) - # - Test_spelldump_bang - # Hangs. - # - Test_fuzzy_completion_env - # Too sensitive to leaked environment variables. - # - Test_term_mouse_multiple_clicks_to_select_mode - # Hangs. - # - Test_spelldump - # Hangs. - # - Test_glvs_* - # Depends on local network. - export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\|Test_spelldump\|Test_glvs_\)' - - echo "throw 'Skipped: needs X'" > src/testdir/test_clientserver.vim || die - echo "throw 'Skipped: needs X'" > src/testdir/test_vim9_builtin.vim || die - - emake -j1 -C src/testdir nongui -} - -# Call eselect vi update with --if-unset -# to respect user's choice (bug #187449) -eselect_vi_update() { - ebegin "Calling eselect vi update" - eselect vi update --if-unset - eend $? -} - -src_install() { - local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} - - # Note: Do not install symlinks for 'vi', 'ex', or 'view', as these are - # managed by eselect-vi - dobin src/vim - if ! use minimal ; then - dosym vim /usr/bin/vimdiff - fi - dosym vim /usr/bin/rvim - dosym vim /usr/bin/rview - if use vim-pager ; then - dosym ${vimfiles}/macros/less.sh /usr/bin/vimpager - dosym ${vimfiles}/macros/manpager.sh /usr/bin/vimmanpager - insinto ${vimfiles}/macros - doins runtime/macros/manpager.sh - fperms a+x ${vimfiles}/macros/manpager.sh - fi - - domenu runtime/vim.desktop - - newbashcomp "${FILESDIR}"/${PN}-completion ${PN} - - # keep in sync with 'complete ... -F' list - bashcomp_alias vim ex vi view rvim rview vimdiff -} - -pkg_postinst() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # Call eselect vi update - eselect_vi_update - - # update desktop file mime cache - xdg_desktop_database_update -} - -pkg_postrm() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # Call eselect vi update - eselect_vi_update - - # update desktop file mime cache - xdg_desktop_database_update -} diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9999.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9999.ebuild index 716d3ae9c2a..38a3579b49d 100644 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,22 +6,23 @@ EAPI=8 # Please bump with app-editors/vim-core and app-editors/gvim VIM_VERSION="9.1" -VIM_PATCHES_VERSION="9.0.2092" +VIM_PATCHES_VERSION="9.1.1432" LUA_COMPAT=( lua5-{1..4} luajit ) PYTHON_COMPAT=( python3_{11..14} ) PYTHON_REQ_USE="threads(+)" -USE_RUBY="ruby31 ruby32" +USE_RUBY="ruby32 ruby33" GENTOO_DEPEND_ON_PERL=no -inherit bash-completion-r1 flag-o-matic lua-single desktop perl-module python-single-r1 ruby-single toolchain-funcs vim-doc xdg-utils +inherit vim-doc flag-o-matic bash-completion-r1 lua-single perl-module python-single-r1 ruby-single toolchain-funcs desktop xdg-utils -if [[ ${PV} == 9999* ]]; then +if [[ ${PV} == 9999* ]] ; then inherit git-r3 EGIT_REPO_URI="https://github.com/vim/vim.git" else SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> ${P}.tar.gz - https://git.sr.ht/~xxc3nsoredxx/vim-patches/refs/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.xz" + https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2" + # https://github.com/douglarek/gentoo-vim-patches/releases/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.gz" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" fi @@ -30,7 +31,7 @@ HOMEPAGE="https://www.vim.org https://github.com/vim/vim" LICENSE="vim" SLOT="0" -IUSE="acl crypt cscope debug gpm lua minimal nls perl python racket ruby selinux sound tcl terminal vim-pager X ${GENTOO_PERL_USESTRING}" +IUSE="X acl crypt cscope debug gpm lua minimal nls perl python racket ruby selinux sound tcl terminal vim-pager wayland ${GENTOO_PERL_USESTRING}" REQUIRED_USE=" lua? ( ${LUA_REQUIRED_USE} ) python? ( ${PYTHON_REQUIRED_USE} ) @@ -38,18 +39,18 @@ REQUIRED_USE=" " RDEPEND=" - ~app-editors/vim-core-${PV} >=app-eselect/eselect-vi-1.1 >=sys-libs/ncurses-5.2-r2:0= + nls? ( virtual/libintl ) acl? ( kernel_linux? ( sys-apps/acl ) ) crypt? ( dev-libs/libsodium:= ) cscope? ( dev-util/cscope ) gpm? ( >=sys-libs/gpm-1.19.3 ) - lua? ( - ${LUA_DEPS} + lua? ( ${LUA_DEPS} $(lua_gen_impl_dep 'deprecated' lua5-1) ) - nls? ( virtual/libintl ) + ~app-editors/vim-core-${PV} + vim-pager? ( app-editors/vim-core[-minimal] ) perl? ( ${GENTOO_PERL_DEPSTRING} dev-lang/perl:= @@ -60,7 +61,7 @@ RDEPEND=" selinux? ( sys-libs/libselinux ) sound? ( media-libs/libcanberra ) tcl? ( dev-lang/tcl:0= ) - vim-pager? ( app-editors/vim-core[-minimal] ) + wayland? ( dev-libs/wayland ) X? ( x11-libs/libXt ) " DEPEND="${RDEPEND} @@ -77,11 +78,11 @@ PDEPEND="!minimal? ( app-vim/gentoo-syntax )" if [[ ${PV} != 9999* ]]; then # Gentoo patches to fix runtime issues, cross-compile errors, etc PATCHES=( - "${WORKDIR}/vim-${VIM_PATCHES_VERSION}-patches" + "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches" ) fi -# platform-specific checks (bug #898450 #898452): +# platform-specific checks (bug #898452): # - acl() -- Solaris # - statacl() -- AIX QA_CONFIG_IMPL_DECL_SKIP=( @@ -158,17 +159,9 @@ src_prepare() { # (2) Rebuild auto/configure # (3) Notice auto/configure is newer than auto/config.mk # (4) Run ./configure (with wrong args) to remake auto/config.mk - sed -i -e \ - 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" + sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" rm src/auto/configure || die "rm failed" - # --with-features=huge forces on cscope even if we --disable it. We need - # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm) - if ! use cscope; then - sed -i -e \ - '/# define FEAT_CSCOPE/d' src/feature.h || die "couldn't disable cscope" - fi - # bug 908961 if use elibc_musl ; then sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die @@ -180,26 +173,23 @@ src_configure() { # This should fix a sandbox violation (see bug #24447). The hvc # things are for ppc64, see bug #86433. - local file for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do - if [[ -e ${file} ]]; then + if [[ -e "${file}" ]]; then addwrite ${file} fi done - local myconf=( - --with-modified-by="Gentoo-${PVR} (RIP Bram)" - --enable-gui=no - --disable-darwin - ) - + local myconf=() if use minimal; then - myconf+=( + myconf=( --with-features=tiny --disable-nls --disable-canberra --disable-acl + --enable-gui=no + --without-wayland --without-x + --disable-darwin --disable-luainterp --disable-perlinterp --disable-pythoninterp @@ -212,7 +202,7 @@ src_configure() { else use debug && append-flags "-DDEBUG" - myconf+=( + myconf=( --with-features=huge $(use_enable sound canberra) $(use_enable acl) @@ -228,8 +218,16 @@ src_configure() { $(use_enable selinux) $(use_enable tcl tclinterp) $(use_enable terminal) + $(use_with wayland) ) + # --with-features=huge forces on cscope even if we --disable it. We need + # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm) + if ! use cscope; then + sed -i -e \ + '/# define FEAT_CSCOPE/d' src/feature.h || die "sed failed" + fi + if use lua; then # -DLUA_COMPAT_OPENLIB=1 is required to enable the # deprecated (in 5.1) luaL_openlib API (#874690) @@ -245,6 +243,8 @@ src_configure() { # don't test USE=X here ... see bug #19115 # but need to provide a way to link against X ... see bug #20093 myconf+=( + --enable-gui=no + --disable-darwin $(use_with X x) ) fi @@ -263,7 +263,9 @@ src_configure() { vim_cv_toupper_broken=no fi - econf "${myconf[@]}" + econf \ + --with-modified-by="Gentoo-${PVR} (RIP Bram)" \ + "${myconf[@]}" } src_compile() { @@ -314,7 +316,9 @@ src_test() { # Depends on local network. export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\|Test_spelldump\|Test_glvs_\)' - # Don't do additional GUI tests. + echo "throw 'Skipped: needs X'" > src/testdir/test_clientserver.vim || die + echo "throw 'Skipped: needs X'" > src/testdir/test_vim9_builtin.vim || die + emake -j1 -C src/testdir nongui } @@ -354,23 +358,23 @@ src_install() { } pkg_postinst() { - # update documentation tags (from vim-doc.eclass) + # Update documentation tags (from vim-doc.eclass) update_vim_helptags + # Call eselect vi update + eselect_vi_update + # update desktop file mime cache xdg_desktop_database_update - - # call eselect vi update - eselect_vi_update } pkg_postrm() { - # update documentation tags (from vim-doc.eclass) + # Update documentation tags (from vim-doc.eclass) update_vim_helptags + # Call eselect vi update + eselect_vi_update + # update desktop file mime cache xdg_desktop_database_update - - # call eselect vi update - eselect_vi_update } diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/Manifest b/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/Manifest index 26575199136..2a52565e751 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/Manifest @@ -1,2 +1,3 @@ +DIST qemu-10.2.2.tar.xz 141119364 BLAKE2B 810efae886e5ba56900882455cc8714923378e34995dceaec8177ba5cc7f922547b7cbf68f7ac3804e498b3b4b3895165646c81ff9ad50b09c8286e8b2293a72 SHA512 c5409530505c2d1e69a80f1750e377261cea8fee42516a0a89d0343b19d55f9d33579cef181d7cc04d51519e50a55dff1b89175e7685bb803468c8ce03929591 DIST qemu-8.2.0.tar.xz 130008888 BLAKE2B a63667042e1e19c635568072d8dcc117320117e81e374a93cfb79e2363ebf505df3217fb098638e53c899eb6f83435221e8031f2aae003c27ec25af8654683b3 SHA512 92ec41196ff145cdbb98948f6b6e43214fa4b4419554a8a1927fb4527080c8212ccb703e184baf8ee0bdfa50ad7a84689e8f5a69eba1bd7bbbdfd69e3b91256c DIST qemu-9.2.0.tar.xz 135188800 BLAKE2B 5800556f356e4324124e250c02a07857eef3a6f22995a819fe972061fa750ebf7233da64ae4c0a3e775b1639c870be4b7312d86d9866fedf2bc99074aad0a10a SHA512 f92548623e4e31400c823a2d78417a8a4ecfccb07f3ee4883e2f2ad33054539d2a37d076dbc64df42c6c86c08fa7c2c975cd6e823aa14d5f20cef83348006813 diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/qemu-guest-agent-10.2.2.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/qemu-guest-agent-10.2.2.ebuild new file mode 100644 index 00000000000..a5d0017489f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/qemu-guest-agent-10.2.2.ebuild @@ -0,0 +1,114 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..14} ) +PYTHON_REQ_USE="ensurepip(-),ncurses,readline" + +inherit edo linux-info python-any-r1 systemd toolchain-funcs udev + +MY_PN="qemu" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="QEMU Guest Agent (qemu-ga) for use when running inside a VM" +HOMEPAGE="https://wiki.qemu.org/Features/GuestAgent" +SRC_URI="https://download.qemu.org/${MY_P}.tar.xz" +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-2 BSD-2" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86" + +RDEPEND="dev-libs/glib" +DEPEND="${RDEPEND}" +BDEPEND=" + ${PYTHON_DEPS} + $(python_gen_any_dep ' + dev-python/distlib[${PYTHON_USEDEP}] + ') + dev-lang/perl + app-alternatives/ninja +" + +QA_CONFIG_IMPL_DECL_SKIP=( + # FreeBSD & OpenBSD + elf_aux_info +) + +PATCHES=( + "${FILESDIR}"/qemu-8.1.0-find-sphinx.patch +) + +python_check_deps() { + python_has_version "dev-python/distlib[${PYTHON_USEDEP}]" +} + +pkg_setup() { + # While qemu-ga supports multiple modes, virtio-serial is the + # default. Make sure it's enabled in kernel. + CONFIG_CHECK="~VIRTIO_CONSOLE" + linux-info_pkg_setup + python-any-r1_pkg_setup +} + +src_configure() { + tc-export AR LD OBJCOPY RANLIB + + local myconf=( + --prefix=/usr + --sysconfdir=/etc + --libdir="/usr/$(get_libdir)" + --localstatedir=/ + --disable-bsd-user + --disable-linux-user + --disable-system + --disable-strip + --enable-tools + --disable-werror + --without-default-features + --enable-guest-agent + --python="${PYTHON}" + --cc="$(tc-getCC)" + --cxx="$(tc-getCXX)" + --host-cc="$(tc-getBUILD_CC)" + ) + + # Meson will not use a cross-file unless cross_prefix is set. + tc-is-cross-compiler && myconf+=( --cross-prefix="${CHOST}-" ) + + edo ./configure "${myconf[@]}" +} + +src_test() { + # qga only uses generic code covered by qobject tests, + # the full test suite requires at least one softmmu binary + emake check-unit +} + +src_install() { + dobin build/qga/qemu-ga + + # Normal init stuff + newinitd "${FILESDIR}/qemu-ga.init-r2" qemu-guest-agent + newconfd "${FILESDIR}/qemu-ga.conf-r1" qemu-guest-agent + + insinto /etc/logrotate.d + newins "${FILESDIR}/qemu-ga.logrotate" qemu-guest-agent + + # systemd stuff + udev_newrules "${FILESDIR}/qemu-ga-systemd.udev" 99-qemu-guest-agent.rules + + systemd_newunit "${FILESDIR}/qemu-ga-systemd.service" \ + qemu-guest-agent.service +} + +pkg_postinst() { + elog "You should add 'qemu-guest-agent' to the default runlevel." + elog "e.g. rc-update add qemu-guest-agent default" + udev_reload +} + +pkg_postrm() { + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/qemu-guest-agent-9.2.0.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/qemu-guest-agent-9.2.0.ebuild index 5e8b6e54b61..cf7a4297572 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/qemu-guest-agent-9.2.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu-guest-agent/qemu-guest-agent-9.2.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -31,6 +31,11 @@ BDEPEND=" app-alternatives/ninja " +QA_CONFIG_IMPL_DECL_SKIP=( + # FreeBSD & OpenBSD + elf_aux_info +) + PATCHES=( "${FILESDIR}"/qemu-8.1.0-find-sphinx.patch ) 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 5c08d2191fa..07870a7f969 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 @@ -1,16 +1,11 @@ DIST berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037.tar.bz2 84094 BLAKE2B 396f9df2e6ad559545054e89916915c3a3c8ff80e5e409498fec497b564d8b3ac9dd3cb966e26dce232ddff82af18a0e84e864ca18a80c2a2f4fe47e320249c2 SHA512 93c20d50a356c90f4293d8c7593611b2e0a9bc7567b6d946319f8ae06962ae1e297c8788f66fd38a1d3a0d44661bff9a07a63eaa84c8bb40ae01a45476be446c DIST berkeley-testfloat-3-e7af9751d9f9fd3b47911f51a5cfd08af256a9ab.tar.bz2 90020 BLAKE2B 3dda1ba90c4a5ad5cbce2acf35e93f7adbd387ae0e0f929b2cd4cbdf263f95183103118f32be38e8c80de49d7df44c26319ee2f465061d004ae7e64e43eeeb3e SHA512 65f41f42ea563b2cdceb6c71633f41e6694a79ffd02afed4540353a8e73668ae40118dfc108163aae751acbaa7c49630ed99f423465089503c03aee76b07f221 DIST keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6.tar.bz2 27971 BLAKE2B 0ed69ad24c53bd459c8753565814bcc1cd858f20d3a046c38912a35bcb0ba6d388ef5d2b93157cd028959284b330caf5467d82071c3df56a405dd8e08fd177c7 SHA512 8f2cc14e8bd46cb045e3ebfe32e463793ab7472ebda9b57b8ea0b06fa107a1a99c3ebcacb9c4548e30698d8ec154c0e56f789385201182b680819b8068a103f2 -DIST qemu-10-termios2-patches.tar.xz 6376 BLAKE2B f45fcf463f441e081b5e063423604fd5d2bcb529175f748aef7324d33bc6f5ba15b4ee7b88e95d1108071a53b83d22a6993ee4a6d08a4d66594e514c553bd401 SHA512 bb88bcf4d2dcf00473fa5dd61803b5fbe49bbaa6bd2e7a48d523292a752b4c3e51d8c9406606ae8bf0cbcf109d123802538f7a26b5a9c4eb702ff8c82ff51dd0 DIST qemu-10.0.0-docs.tar.xz 2651472 BLAKE2B 38be083c0c046e975a829df28089428425904cf66a3ea99cebc99b6f51eebdedf10a60be0c4f6bfb9e6f6cbc5dff1724dcd3b8d0982b5c421158258d869db4f3 SHA512 5f9332340bf68b3c0da4b48174330674f5235b98c3e275792fcbeec4bacca2faa84865c01c0cdd1e95388d9656a5dbf1d6baca2d1c8b2996c42511c966d9edd7 -DIST qemu-10.0.5.tar.xz 141642600 BLAKE2B bd7abfd5a977cf47862f0a7b26ce4e36c857dd858e0d0def652c00e9186fe476f461005b673bac6031162b5de47d412c1b7faebdbf4456487501f6d4a37f69b7 SHA512 c87948868910f458aeb724ebfe71db10f0ca1e9e0e6b4c4f082c2776d1c8f64c36f65bc5714d4625f6919d4064452f4378a7578273b69db6d4295d90b75fc86f DIST qemu-10.0.7.tar.xz 141766020 BLAKE2B 13016dfe09da81417f3359f980b2b62a857a28e6acce2b01eba3f397b985c422e52f3c68724bfad73ce6fbeec65cabb02d2df09f08340f9dad68578d5e3f801e SHA512 6def50d5ed08fde787e982a5ae668f97323d40f1996bc299c4c79fbd2944eb14c3f4d1ceab977a0fe6f80298825a5285decc20afca1966a738900932fbfeb31d DIST qemu-10.1.0-docs.tar.xz 2788092 BLAKE2B c9f1138e6eb19966da05b5be6e28640cabf698cb7c4247e0a69b29ed71d462423ba356efc8c0f26a727a58b4adc84edc3eefbff12a35e0c93e475f0ab51e6ff7 SHA512 96d9133d83991014c3ce9a57273a017f45bf29ae3f7029c5b926c8c5fbfd0e8da80dbbecca038b981312cec68b931a0471837a0aebd3e5dbc1648eb49e28ecc9 DIST qemu-10.1.3.tar.xz 142006316 BLAKE2B d0e3781a7fe84190eb96e9dd34860222b74fd73da182684f289c359c2555e8b02c0f3e77d3342837fe2ff5c5ce3ad81dac642fae9eab1d9e52f2bcac28ffe6c0 SHA512 67608a5a422c93c494159d649a0afb296231ec2d96a6fc03b119375da4180162ba25a74bb6204a8cb36375709c1f682ef56c42961816dc2107f4d67bb8e10db4 DIST qemu-10.2.0-docs.tar.xz 2858324 BLAKE2B 0c7a66f401ace63568cb9bb09fbfa4a456037f2d9712576211c57674d3aa6dacf9c22e92f1b92bc92794b61f0bc674fa4e1c415fd4873330df4befc492395382 SHA512 f078f0a219a52a3bcb18d046b3b0b297cfba5dc1181ee67db45919fede46db2c0d83288ab430bff1673fca8ae39cb99d10d9b770b52970e324f4b6d94374c937 -DIST qemu-10.2.0.tar.xz 141093360 BLAKE2B f0522a35221fbb4b2b2703c3a75be663e13a10357816ea60562323481c41bb18a93bf7202697df8a8b8f44e7685299ab3ffdc6bb791d785d8e4146658134d600 SHA512 cd910090cf8146fdd30151bded8bebe43d9e7fce8b84d9f87130a99d0bd908f310f4bef5484b53a56c29dd7a08410890d02d0a7ab90ce6af73522ff8ba5b364e -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-10.2.2.tar.xz 141119364 BLAKE2B 810efae886e5ba56900882455cc8714923378e34995dceaec8177ba5cc7f922547b7cbf68f7ac3804e498b3b4b3895165646c81ff9ad50b09c8286e8b2293a72 SHA512 c5409530505c2d1e69a80f1750e377261cea8fee42516a0a89d0343b19d55f9d33579cef181d7cc04d51519e50a55dff1b89175e7685bb803468c8ce03929591 DIST qemu-9.2.0-docs.tar.xz 2431076 BLAKE2B 420148b9d7cafbdc9aea21b0d0a84a53ca0d17fb99fc34ae4c0786fa7d4ce40838f4b3173508b90742d6dfbfd4b58dda25b2e5cd1394241b0b56a64fe5705d9b SHA512 88816e326e9eac9acf0a1c73e677552845d6885e220b55e795241c40d2c1bd1b1994a22e56f95046e420225e0b7dc839d459f1c1e5318c8c36392727a86b3008 -DIST qemu-9.2.3.tar.xz 134755248 BLAKE2B cdc7300288d2efc50262c605707caab64638fbf1d7528576a0bce71efc1403ccd6aa647a984c84a5ab8ebca28ea9ee7cd8682b4098ca2e63a2f76d2de577c181 SHA512 941a4337a115c65de2fca042932efb31886114f4300226fcf55f04c2c5471bd2b5ce220c4b17e01c3679bd55ba08a1aa7ce399de15e3e5f28c17da52030b139e DIST qemu-9.2.4.tar.xz 134782772 BLAKE2B 40b85e1204da263da16031dd9edd833062d632e437c0699ac582a641e7a7f85525b800649591d57930eafd01b799cde306f62a236e1ff3b54648f3d28f7924b2 SHA512 5aa2ea23d234dd896de73f778defde93f3b490bd22947c396091fdd2231ce5ccd17767c910170a952be88a5593725f1c31b15a6d19b3d30637465d17fb69651c 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 deleted file mode 100644 index 3c80ef7cb33..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-10.0.5-hppa1.1.patch +++ /dev/null @@ -1,44 +0,0 @@ -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/files/qemu-10.2.2-optionrom-pass-Wl-no-error-rwx-segments.patch b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-10.2.2-optionrom-pass-Wl-no-error-rwx-segments.patch new file mode 100644 index 00000000000..7fbdb637f4d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-10.2.2-optionrom-pass-Wl-no-error-rwx-segments.patch @@ -0,0 +1,31 @@ +https://mail.gnu.org/archive/html/qemu-devel/2025-02/msg04327.html + +From eca5286f01652fd5801ba89b7752a7895620a852 Mon Sep 17 00:00:00 2001 +Message-ID: +From: Sam James +Date: Thu, 20 Feb 2025 17:05:59 +0000 +Subject: [PATCH] optionrom: pass -Wl,--no-error-rwx-segments + +If GNU Binutils is configured with --enable-error-rwx-segments=yes, one +gets the following for optionrom: +``` +.../bin/ld: error: pvh.img has a LOAD segment with RWX permissions +.../bin/ld: final link faile +``` + +Pass -Wl,--no-error-rwx-segments to suppress that. +--- a/pc-bios/optionrom/Makefile ++++ b/pc-bios/optionrom/Makefile +@@ -37,6 +37,7 @@ config-cc.mak: Makefile + -include config-cc.mak + + override LDFLAGS = -nostdlib -Wl,--build-id=none,-T,$(SRC_DIR)/flat.lds,-m,elf_i386 ++override LDFLAGS += -Wl,--no-error-rwx-segments + + pvh.img: pvh.o pvh_main.o + + +base-commit: 40efe733e10cc00e4fb4f9f5790a28e744e63c62 +-- +2.48.1 + diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-9.0.0-also-build-virtfs-proxy-helper.patch b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-9.0.0-also-build-virtfs-proxy-helper.patch deleted file mode 100644 index 603d20c42fc..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-9.0.0-also-build-virtfs-proxy-helper.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 951325a0c9519d4910d80cc6c7a5728c0dbc4946 Mon Sep 17 00:00:00 2001 -Message-ID: <951325a0c9519d4910d80cc6c7a5728c0dbc4946.1714317553.git.mprivozn@redhat.com> -From: Matthias Maier -Date: Mon, 4 Apr 2022 12:56:59 +0200 -Subject: [PATCH] also build virtfs-proxy-helper - -The Gentoo ebuild splits the qemu build into a softmmu, user and tool -phase in order to be able to build and link some of the qemu emulators -statically. This unfortunately has the consequence that we never -configure with "have_virtfs" and "have_tools" at the same time. - -As a workaround, simply build the virtfs userland unconditionally. After -all, it is a tiny executable. - -Signed-off-by: Michal Privoznik ---- - meson.build | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/meson.build b/meson.build -index c3a2be7b2d..50a5cfcf4e 100644 ---- a/meson.build -+++ b/meson.build -@@ -2116,8 +2116,6 @@ have_virtfs = get_option('virtfs') \ - .allowed() - - have_virtfs_proxy_helper = get_option('virtfs_proxy_helper') \ -- .require(host_os != 'darwin', error_message: 'the virtfs proxy helper is incompatible with macOS') \ -- .require(have_virtfs, error_message: 'the virtfs proxy helper requires that virtfs is enabled') \ - .disable_auto_if(not have_tools) \ - .require(libcap_ng.found(), error_message: 'the virtfs proxy helper requires libcap-ng') \ - .allowed() --- -2.43.2 - diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-9.0.0-glibc-2.41.patch b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-9.0.0-glibc-2.41.patch deleted file mode 100644 index 00ffd0a1bbf..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-9.0.0-glibc-2.41.patch +++ /dev/null @@ -1,46 +0,0 @@ -https://bugs.gentoo.org/949098 -https://gitlab.com/qemu-project/qemu/-/issues/2799 -https://lists.nongnu.org/archive/html/qemu-devel/2024-10/msg02221.html - -glibc 2.41+ has added [1] definitions for sched_setattr and sched_getattr functions -and struct sched_attr. Therefore, it needs to be checked for here as well before -defining sched_attr - -Define sched_attr conditionally on SCHED_ATTR_SIZE_VER0 - -Fixes builds with glibc/trunk - -[1] -https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=21571ca0d70302909cf72707b2a7736cf12190a0;hp=298bc488fdc047da37482f4003023cb9adef78f8 - -Signed-off-by: Khem Raj -Cc: Laurent Vivier -Cc: Paolo Bonzini ---- -v2: Use SCHED_ATTR_SIZE_VER0 instead of glibc version check - - linux-user/syscall.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 1ce4c79..a407d4a 100644 ---- a/linux-user/syscall.c -+++ b/linux-user/syscall.c -@@ -358,7 +358,8 @@ _syscall3(int, sys_sched_getaffinity, pid_t, pid, unsigned int, len, - #define __NR_sys_sched_setaffinity __NR_sched_setaffinity - _syscall3(int, sys_sched_setaffinity, pid_t, pid, unsigned int, len, - unsigned long *, user_mask_ptr); --/* sched_attr is not defined in glibc */ -+/* sched_attr is not defined in glibc < 2.41 */ -+#ifndef SCHED_ATTR_SIZE_VER0 - struct sched_attr { - uint32_t size; - uint32_t sched_policy; -@@ -371,6 +372,7 @@ struct sched_attr { - uint32_t sched_util_min; - uint32_t sched_util_max; - }; -+#endif - #define __NR_sys_sched_getattr __NR_sched_getattr - _syscall4(int, sys_sched_getattr, pid_t, pid, struct sched_attr *, attr, - unsigned int, size, unsigned int, flags); diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-9.1.0-capstone-include-path.patch b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-9.1.0-capstone-include-path.patch deleted file mode 100644 index 7bb6a004d86..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-9.1.0-capstone-include-path.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: Sam James -Date: Sun, 6 Oct 2024 09:47:03 +0100 -Subject: [PATCH] Forward ported from qemu-7.1.0-capstone-include-path.patch. - -Bug: https://bugs.gentoo.org/873157 -Signed-off-by: Sam James ---- - include/disas/capstone.h | 2 +- - meson.build | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - ---- a/include/disas/capstone.h -+++ b/include/disas/capstone.h -@@ -4,7 +4,7 @@ - #ifdef CONFIG_CAPSTONE - - #define CAPSTONE_AARCH64_COMPAT_HEADER --#include -+#include - - #else - ---- a/meson.build -+++ b/meson.build -@@ -1769,7 +1769,7 @@ if not get_option('capstone').auto() or have_system or have_user - # that reports a wrong -I path, causing the #include to - # fail later. If the system has such a broken version - # do not use it. -- if capstone.found() and not cc.compiles('#include ', -+ if capstone.found() and not cc.compiles('#include ', - dependencies: [capstone]) - capstone = not_found - if get_option('capstone').enabled() diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-9.2.3-virtio-net.patch b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-9.2.3-virtio-net.patch deleted file mode 100644 index 7adff23b255..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-9.2.3-virtio-net.patch +++ /dev/null @@ -1,221 +0,0 @@ -https://bugs.gentoo.org/955587 -https://gitlab.com/qemu-project/qemu/-/commit/ff765e490eef83480d07673e115060228b01d55e -https://gitlab.com/qemu-project/qemu/-/commit/af01cf195ba106fe039ab320ce9e8074b4ddd841 - -From ff765e490eef83480d07673e115060228b01d55e Mon Sep 17 00:00:00 2001 -From: Akihiko Odaki -Date: Wed, 8 Jan 2025 21:13:29 +0900 -Subject: [PATCH] virtio-net: Fix num_buffers for version 1 - -The specification says the device MUST set num_buffers to 1 if -VIRTIO_NET_F_MRG_RXBUF has not been negotiated. - -Fixes: df91055db5c9 ("virtio-net: enable virtio 1.0") -Signed-off-by: Akihiko Odaki -Message-Id: <20250108-buffers-v1-1-a0c85ff31aeb@daynix.com> -Reviewed-by: Michael S. Tsirkin -Signed-off-by: Michael S. Tsirkin -Tested-by: Lei Yang -Reviewed-by: Michael S. Tsirkin -Signed-off-by: Michael S. Tsirkin -(cherry picked from commit c17ad4b11bd268a35506cd976884562df6ca69d7) -Signed-off-by: Michael Tokarev ---- - hw/net/virtio-net.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c -index f8c6ccbec45..78b7d88756c 100644 ---- a/hw/net/virtio-net.c -+++ b/hw/net/virtio-net.c -@@ -1999,6 +1999,8 @@ static ssize_t virtio_net_receive_rcu(NetClientState *nc, const uint8_t *buf, - offsetof(typeof(hdr), - virtio_net.hdr.num_buffers), - sizeof(hdr.virtio_net.hdr.num_buffers)); -+ } else { -+ hdr.virtio_net.hdr.num_buffers = cpu_to_le16(1); - } - - guest_offset = n->has_vnet_hdr ? --- -GitLab - -From af01cf195ba106fe039ab320ce9e8074b4ddd841 Mon Sep 17 00:00:00 2001 -From: Antoine Damhet -Date: Tue, 8 Apr 2025 16:53:33 +0200 -Subject: [PATCH] Revert "virtio-net: Copy received header to buffer" - -This reverts commit 7987d2be5a8bc3a502f89ba8cf3ac3e09f64d1ce. - -The goal was to remove the need to patch the (const) input buffer -with a recomputed UDP checksum by copying headers to a RW region and -inject the checksum there. The patch computed the checksum only from the -header fields (missing the rest of the payload) producing an invalid one -and making guests fail to acquire a DHCP lease. - -Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2727 -Cc: qemu-stable@nongnu.org -Signed-off-by: Antoine Damhet -Acked-by: Michael S. Tsirkin -Message-ID: <20250408145345.142947-1-adamhet@scaleway.com> -Signed-off-by: Stefan Hajnoczi -(cherry picked from commit e28fbd1c525db21f0502b85517f49504c9f9dcd8) -Signed-off-by: Michael Tokarev ---- - hw/net/virtio-net.c | 87 +++++++++++++++++++++------------------------ - 1 file changed, 40 insertions(+), 47 deletions(-) - -diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c -index 78b7d88756c..09ff80c9953 100644 ---- a/hw/net/virtio-net.c -+++ b/hw/net/virtio-net.c -@@ -1702,44 +1702,41 @@ static void virtio_net_hdr_swap(VirtIODevice *vdev, struct virtio_net_hdr *hdr) - * cache. - */ - static void work_around_broken_dhclient(struct virtio_net_hdr *hdr, -- size_t *hdr_len, const uint8_t *buf, -- size_t buf_size, size_t *buf_offset) -+ uint8_t *buf, size_t size) - { - size_t csum_size = ETH_HLEN + sizeof(struct ip_header) + - sizeof(struct udp_header); - -- buf += *buf_offset; -- buf_size -= *buf_offset; -- - if ((hdr->flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) && /* missing csum */ -- (buf_size >= csum_size && buf_size < 1500) && /* normal sized MTU */ -+ (size >= csum_size && size < 1500) && /* normal sized MTU */ - (buf[12] == 0x08 && buf[13] == 0x00) && /* ethertype == IPv4 */ - (buf[23] == 17) && /* ip.protocol == UDP */ - (buf[34] == 0 && buf[35] == 67)) { /* udp.srcport == bootps */ -- memcpy((uint8_t *)hdr + *hdr_len, buf, csum_size); -- net_checksum_calculate((uint8_t *)hdr + *hdr_len, csum_size, CSUM_UDP); -+ net_checksum_calculate(buf, size, CSUM_UDP); - hdr->flags &= ~VIRTIO_NET_HDR_F_NEEDS_CSUM; -- *hdr_len += csum_size; -- *buf_offset += csum_size; - } - } - --static size_t receive_header(VirtIONet *n, struct virtio_net_hdr *hdr, -- const void *buf, size_t buf_size, -- size_t *buf_offset) -+static void receive_header(VirtIONet *n, const struct iovec *iov, int iov_cnt, -+ const void *buf, size_t size) - { -- size_t hdr_len = n->guest_hdr_len; -- -- memcpy(hdr, buf, sizeof(struct virtio_net_hdr)); -- -- *buf_offset = n->host_hdr_len; -- work_around_broken_dhclient(hdr, &hdr_len, buf, buf_size, buf_offset); -+ if (n->has_vnet_hdr) { -+ /* FIXME this cast is evil */ -+ void *wbuf = (void *)buf; -+ work_around_broken_dhclient(wbuf, wbuf + n->host_hdr_len, -+ size - n->host_hdr_len); - -- if (n->needs_vnet_hdr_swap) { -- virtio_net_hdr_swap(VIRTIO_DEVICE(n), hdr); -+ if (n->needs_vnet_hdr_swap) { -+ virtio_net_hdr_swap(VIRTIO_DEVICE(n), wbuf); -+ } -+ iov_from_buf(iov, iov_cnt, 0, buf, sizeof(struct virtio_net_hdr)); -+ } else { -+ struct virtio_net_hdr hdr = { -+ .flags = 0, -+ .gso_type = VIRTIO_NET_HDR_GSO_NONE -+ }; -+ iov_from_buf(iov, iov_cnt, 0, &hdr, sizeof hdr); - } -- -- return hdr_len; - } - - static int receive_filter(VirtIONet *n, const uint8_t *buf, int size) -@@ -1907,13 +1904,6 @@ static int virtio_net_process_rss(NetClientState *nc, const uint8_t *buf, - return (index == new_index) ? -1 : new_index; - } - --typedef struct Header { -- struct virtio_net_hdr_v1_hash virtio_net; -- struct eth_header eth; -- struct ip_header ip; -- struct udp_header udp; --} Header; -- - static ssize_t virtio_net_receive_rcu(NetClientState *nc, const uint8_t *buf, - size_t size) - { -@@ -1923,15 +1913,15 @@ static ssize_t virtio_net_receive_rcu(NetClientState *nc, const uint8_t *buf, - VirtQueueElement *elems[VIRTQUEUE_MAX_SIZE]; - size_t lens[VIRTQUEUE_MAX_SIZE]; - struct iovec mhdr_sg[VIRTQUEUE_MAX_SIZE]; -- Header hdr; -+ struct virtio_net_hdr_v1_hash extra_hdr; - unsigned mhdr_cnt = 0; - size_t offset, i, guest_offset, j; - ssize_t err; - -- memset(&hdr.virtio_net, 0, sizeof(hdr.virtio_net)); -+ memset(&extra_hdr, 0, sizeof(extra_hdr)); - - if (n->rss_data.enabled && n->rss_data.enabled_software_rss) { -- int index = virtio_net_process_rss(nc, buf, size, &hdr.virtio_net); -+ int index = virtio_net_process_rss(nc, buf, size, &extra_hdr); - if (index >= 0) { - nc = qemu_get_subqueue(n->nic, index % n->curr_queue_pairs); - } -@@ -1996,20 +1986,23 @@ static ssize_t virtio_net_receive_rcu(NetClientState *nc, const uint8_t *buf, - if (n->mergeable_rx_bufs) { - mhdr_cnt = iov_copy(mhdr_sg, ARRAY_SIZE(mhdr_sg), - sg, elem->in_num, -- offsetof(typeof(hdr), -- virtio_net.hdr.num_buffers), -- sizeof(hdr.virtio_net.hdr.num_buffers)); -+ offsetof(typeof(extra_hdr), hdr.num_buffers), -+ sizeof(extra_hdr.hdr.num_buffers)); - } else { -- hdr.virtio_net.hdr.num_buffers = cpu_to_le16(1); -+ extra_hdr.hdr.num_buffers = cpu_to_le16(1); - } - -- guest_offset = n->has_vnet_hdr ? -- receive_header(n, (struct virtio_net_hdr *)&hdr, -- buf, size, &offset) : -- n->guest_hdr_len; -- -- iov_from_buf(sg, elem->in_num, 0, &hdr, guest_offset); -- total += guest_offset; -+ receive_header(n, sg, elem->in_num, buf, size); -+ if (n->rss_data.populate_hash) { -+ offset = offsetof(typeof(extra_hdr), hash_value); -+ iov_from_buf(sg, elem->in_num, offset, -+ (char *)&extra_hdr + offset, -+ sizeof(extra_hdr.hash_value) + -+ sizeof(extra_hdr.hash_report)); -+ } -+ offset = n->host_hdr_len; -+ total += n->guest_hdr_len; -+ guest_offset = n->guest_hdr_len; - } else { - guest_offset = 0; - } -@@ -2035,11 +2028,11 @@ static ssize_t virtio_net_receive_rcu(NetClientState *nc, const uint8_t *buf, - } - - if (mhdr_cnt) { -- virtio_stw_p(vdev, &hdr.virtio_net.hdr.num_buffers, i); -+ virtio_stw_p(vdev, &extra_hdr.hdr.num_buffers, i); - iov_from_buf(mhdr_sg, mhdr_cnt, - 0, -- &hdr.virtio_net.hdr.num_buffers, -- sizeof hdr.virtio_net.hdr.num_buffers); -+ &extra_hdr.hdr.num_buffers, -+ sizeof extra_hdr.hdr.num_buffers); - } - - for (j = 0; j < i; j++) { --- -GitLab 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 deleted file mode 100644 index 2d0c5d1ec10..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.5.ebuild +++ /dev/null @@ -1,1015 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-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_{12..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(+)] - virtual/zlib:=[static-libs(+)] - python? ( ${PYTHON_DEPS} ) - systemtap? ( dev-debug/systemtap ) - xattr? ( sys-apps/attr[static-libs(+)] ) -" - -# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) -# softmmu targets (qemu-system-*). -SOFTMMU_TOOLS_DEPEND=" - >=x11-libs/pixman-0.28.0[static-libs(+)] - accessibility? ( - app-accessibility/brltty[api] - app-accessibility/brltty[static-libs(+)] - ) - aio? ( dev-libs/libaio[static-libs(+)] ) - alsa? ( >=media-libs/alsa-lib-1.0.13 ) - bpf? ( >=dev-libs/libbpf-1.1.0:= ) - bzip2? ( app-arch/bzip2[static-libs(+)] ) - capstone? ( dev-libs/capstone:=[static-libs(+)] ) - curl? ( >=net-misc/curl-7.15.4[static-libs(+)] ) - fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] ) - fuse? ( >=sys-fs/fuse-3.1:3=[static-libs(+)] ) - glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] ) - gnutls? ( - >=net-libs/gnutls-3.0:=[static-libs(+)] - dev-libs/nettle:=[static-libs(+)] - ) - gtk? ( - x11-libs/gtk+:3[wayland?,X?] - vte? ( x11-libs/vte:2.91 ) - ) - infiniband? ( sys-cluster/rdma-core[static-libs(+)] ) - iscsi? ( net-libs/libiscsi ) - io-uring? ( sys-libs/liburing:=[static-libs(+)] ) - jack? ( virtual/jack ) - jemalloc? ( dev-libs/jemalloc ) - jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] ) - kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] ) - keyutils? ( sys-apps/keyutils[static-libs(+)] ) - lzo? ( dev-libs/lzo:2[static-libs(+)] ) - multipath? ( sys-fs/multipath-tools ) - ncurses? ( - sys-libs/ncurses:=[unicode(+)] - sys-libs/ncurses:=[static-libs(+)] - ) - nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] ) - numa? ( sys-process/numactl[static-libs(+)] ) - opengl? ( - virtual/opengl - media-libs/libepoxy[static-libs(+)] - media-libs/mesa[static-libs(+)] - media-libs/mesa[egl(+),gbm(+)] - ) - pam? ( sys-libs/pam ) - pipewire? ( >=media-video/pipewire-0.3.60 ) - png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] ) - pulseaudio? ( media-libs/libpulse ) - rbd? ( sys-cluster/ceph ) - sasl? ( dev-libs/cyrus-sasl[static-libs(+)] ) - sdl? ( - media-libs/libsdl2[video] - media-libs/libsdl2[static-libs(+)] - ) - sdl-image? ( media-libs/sdl2-image[static-libs(+)] ) - seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] ) - slirp? ( net-libs/libslirp[static-libs(+)] ) - smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] ) - snappy? ( app-arch/snappy:= ) - spice? ( - >=app-emulation/spice-protocol-0.14.0 - >=app-emulation/spice-0.14.0[static-libs(+)] - ) - ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] ) - udev? ( virtual/libudev:= ) - usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] ) - usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] ) - vde? ( net-misc/vde[static-libs(+)] ) - virgl? ( media-libs/virglrenderer[static-libs(+)] ) - virtfs? ( sys-libs/libcap ) - xdp? ( net-libs/xdp-tools ) - xen? ( app-emulation/xen-tools:= ) - zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] ) -" - -# -# With USE=+pin-upstream-blobs we pin firmware versions to known good -# version in order to minimize the frequency of disruptive changes. This -# avoids unnecessary frustration on user side because changing the firmware -# version can break resume of hibernated guest, inhibit live migrations, -# and might have other unwanted consequences. For now, let us try to -# synchronize firmware blobs with the ones bundled in upstream qemu. Simply -# check the upstream git repository for any changes, for example: -# https://github.com/qemu/qemu/tree/v10.0.2/roms for the 10.0.2 release. -# -# When changing pinned firmware versions -# - create a separate ebuild with revision -r50 -# - update the FIRMWARE_ABI_VERSION to the current package version -# - -FIRMWARE_ABI_VERSION="10.0.2" -EDK2_OVMF_VERSION="202408" -SEABIOS_VERSION="1.16.3" - -X86_FIRMWARE_DEPEND=" - pin-upstream-blobs? ( - ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} - ~sys-firmware/ipxe-1.21.1_p20230601[binary,qemu] - ~sys-firmware/seabios-bin-${SEABIOS_VERSION} - ~sys-firmware/sgabios-0.1_pre10[binary] - ) - !pin-upstream-blobs? ( - || ( - >=sys-firmware/edk2-${EDK2_OVMF_VERSION} - >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} - ) - sys-firmware/ipxe[qemu] - || ( - >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] - >=sys-firmware/seabios-bin-${SEABIOS_VERSION} - ) - sys-firmware/sgabios - ) -" -PPC_FIRMWARE_DEPEND=" - pin-upstream-blobs? ( - ~sys-firmware/seabios-bin-${SEABIOS_VERSION} - ) - !pin-upstream-blobs? ( - || ( - >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] - >=sys-firmware/seabios-bin-${SEABIOS_VERSION} - ) - ) -" - -# See bug #913084 for pip dep -BDEPEND=" - ${PYTHON_DEPS} - dev-python/distlib[${PYTHON_USEDEP}] - dev-lang/perl - >=dev-build/meson-0.63.0 - >=dev-util/gdbus-codegen-2.80.5-r1 - 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; 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.0.7.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.7.ebuild index b05e04c2ea3..3458f11d155 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.7.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.7.ebuild @@ -44,7 +44,7 @@ else fi S="${WORKDIR}/${MY_P}" - [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" + [[ "${PV}" != *_rc* ]] && KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86" fi DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools" @@ -258,7 +258,7 @@ SEABIOS_VERSION="1.16.3" X86_FIRMWARE_DEPEND=" pin-upstream-blobs? ( - ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION}[qemu_softmmu_targets_x86_64(+)] ~sys-firmware/ipxe-1.21.1_p20230601[binary,qemu] ~sys-firmware/seabios-bin-${SEABIOS_VERSION} ~sys-firmware/sgabios-0.1_pre10[binary] @@ -266,7 +266,7 @@ X86_FIRMWARE_DEPEND=" !pin-upstream-blobs? ( || ( >=sys-firmware/edk2-${EDK2_OVMF_VERSION} - >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION}[qemu_softmmu_targets_x86_64(+)] ) sys-firmware/ipxe[qemu] || ( diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.1.3-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.1.3-r1.ebuild index 7a3319f7088..fe40d7ac04a 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.1.3-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.1.3-r1.ebuild @@ -259,7 +259,7 @@ SEABIOS_VERSION="1.16.3" X86_FIRMWARE_DEPEND=" pin-upstream-blobs? ( - ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION}[qemu_softmmu_targets_x86_64(+)] ~sys-firmware/ipxe-1.21.1_p20230601[binary,qemu] ~sys-firmware/seabios-bin-${SEABIOS_VERSION} ~sys-firmware/sgabios-0.1_pre10[binary] @@ -267,7 +267,7 @@ X86_FIRMWARE_DEPEND=" !pin-upstream-blobs? ( || ( >=sys-firmware/edk2-${EDK2_OVMF_VERSION} - >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION}[qemu_softmmu_targets_x86_64(+)] ) sys-firmware/ipxe[qemu] || ( diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.2.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.2.0-r1.ebuild deleted file mode 100644 index 327e5f4fc96..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.2.0-r1.ebuild +++ /dev/null @@ -1,1034 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-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_{12..14} ) -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 - -# this is still required to support glibc-2.42 in qemu-user, bug 961307 -# source: https://gitlab.com/qemu-project/qemu/-/issues/3065#note_2969046870 -# -SRC_URI+=" https://dev.gentoo.org/~dilfridge/distfiles/qemu-10-termios2-patches.tar.xz" - -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(+)] - virtual/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.7.5:=[static-libs(+)] - >=dev-libs/nettle-3.7.3:=[static-libs(+)] - ) - gtk? ( - x11-libs/gtk+:3[wayland?,X?] - vte? ( x11-libs/vte:2.91 ) - ) - infiniband? ( sys-cluster/rdma-core[static-libs(+)] ) - iscsi? ( net-libs/libiscsi ) - io-uring? ( sys-libs/liburing:=[static-libs(+)] ) - jack? ( virtual/jack ) - jemalloc? ( dev-libs/jemalloc ) - jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] ) - kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] ) - keyutils? ( sys-apps/keyutils[static-libs(+)] ) - lzo? ( dev-libs/lzo:2[static-libs(+)] ) - multipath? ( sys-fs/multipath-tools ) - ncurses? ( - sys-libs/ncurses:=[unicode(+)] - sys-libs/ncurses:=[static-libs(+)] - ) - nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] ) - numa? ( sys-process/numactl[static-libs(+)] ) - opengl? ( - virtual/opengl - media-libs/libepoxy[static-libs(+)] - media-libs/mesa[static-libs(+)] - media-libs/mesa[egl(+),gbm(+)] - ) - pam? ( sys-libs/pam ) - passt? ( net-misc/passt ) - pipewire? ( >=media-video/pipewire-0.3.60 ) - png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] ) - pulseaudio? ( media-libs/libpulse ) - rbd? ( sys-cluster/ceph ) - sasl? ( dev-libs/cyrus-sasl[static-libs(+)] ) - sdl? ( - media-libs/libsdl2[video] - media-libs/libsdl2[static-libs(+)] - ) - sdl-image? ( media-libs/sdl2-image[static-libs(+)] ) - seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] ) - slirp? ( net-libs/libslirp[static-libs(+)] ) - smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] ) - snappy? ( app-arch/snappy:= ) - spice? ( - >=app-emulation/spice-protocol-0.14.0 - >=app-emulation/spice-0.14.0[static-libs(+)] - ) - ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] ) - udev? ( virtual/libudev:= ) - usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] ) - usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] ) - vde? ( net-misc/vde[static-libs(+)] ) - virgl? ( media-libs/virglrenderer[static-libs(+)] ) - virtfs? ( sys-libs/libcap ) - xdp? ( net-libs/xdp-tools ) - xen? ( app-emulation/xen-tools:= ) - zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] ) -" - -# -# With USE=+pin-upstream-blobs we pin firmware versions to known good -# version in order to minimize the frequency of disruptive changes. This -# avoids unnecessary frustration on user side because changing the firmware -# version can break resume of hibernated guest, inhibit live migrations, -# and might have other unwanted consequences. For now, let us try to -# synchronize firmware blobs with the ones bundled in upstream qemu. Simply -# check the upstream git repository for any changes, for example: -# https://github.com/qemu/qemu/tree/v10.0.2/roms for the 10.0.2 release. -# -# When changing pinned firmware versions -# - create a separate ebuild with revision -r50 -# - update the FIRMWARE_ABI_VERSION to the current package version -# - -FIRMWARE_ABI_VERSION="10.0.2" -EDK2_OVMF_VERSION="202408" -SEABIOS_VERSION="1.16.3" - -X86_FIRMWARE_DEPEND=" - pin-upstream-blobs? ( - ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} - ~sys-firmware/ipxe-1.21.1_p20230601[binary,qemu] - ~sys-firmware/seabios-bin-${SEABIOS_VERSION} - ~sys-firmware/sgabios-0.1_pre10[binary] - ) - !pin-upstream-blobs? ( - || ( - >=sys-firmware/edk2-${EDK2_OVMF_VERSION} - >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} - ) - sys-firmware/ipxe[qemu] - || ( - >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] - >=sys-firmware/seabios-bin-${SEABIOS_VERSION} - ) - sys-firmware/sgabios - ) -" -PPC_FIRMWARE_DEPEND=" - pin-upstream-blobs? ( - ~sys-firmware/seabios-bin-${SEABIOS_VERSION} - ) - !pin-upstream-blobs? ( - || ( - >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] - >=sys-firmware/seabios-bin-${SEABIOS_VERSION} - ) - ) -" - -# See bug #913084 for pip dep -BDEPEND=" - ${PYTHON_DEPS} - dev-python/distlib[${PYTHON_USEDEP}] - dev-lang/perl - >=dev-build/meson-0.63.0 - >=dev-util/gdbus-codegen-2.80.5-r1 - app-alternatives/ninja - virtual/pkgconfig - doc? ( - >=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}] - dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] - ) - gtk? ( nls? ( sys-devel/gettext ) ) - test? ( - app-alternatives/bc - dev-libs/glib[utils] - dev-python/pycotap[${PYTHON_USEDEP}] - ) -" -CDEPEND=" - ${ALL_DEPEND//\[static-libs(+)]} - ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]} - qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} ) - qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} ) - qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} ) - qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} ) -" -DEPEND=" - ${CDEPEND} - kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 ) - static-user? ( ${ALL_DEPEND} ) - valgrind? ( dev-debug/valgrind ) -" -RDEPEND=" - ${CDEPEND} - acct-group/kvm - selinux? ( - sec-policy/selinux-qemu - sys-libs/libselinux - ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-10.1.2-fix_passt.patch - "${FILESDIR}"/${PN}-9.0.0-disable-keymap.patch - "${FILESDIR}"/${PN}-9.2.0-capstone-include-path.patch - "${FILESDIR}"/${PN}-8.1.0-skip-tests.patch - "${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch - "${FILESDIR}"/${PN}-7.2.16-optionrom-pass-Wl-no-error-rwx-segments.patch -) - -QA_PREBUILT=" - usr/share/qemu/hppa-firmware.img - usr/share/qemu/hppa-firmware64.img - usr/share/qemu/openbios-ppc - usr/share/qemu/openbios-sparc64 - usr/share/qemu/openbios-sparc32 - usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf - usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf - usr/share/qemu/palcode-clipper - usr/share/qemu/s390-ccw.img - usr/share/qemu/s390-netboot.img - usr/share/qemu/u-boot.e500 -" - -QA_WX_LOAD=" - usr/bin/qemu-i386 - usr/bin/qemu-x86_64 - usr/bin/qemu-alpha - usr/bin/qemu-arm - usr/bin/qemu-cris - usr/bin/qemu-m68k - usr/bin/qemu-microblaze - usr/bin/qemu-microblazeel - usr/bin/qemu-mips - usr/bin/qemu-mipsel - usr/bin/qemu-or1k - usr/bin/qemu-ppc - usr/bin/qemu-ppc64 - usr/bin/qemu-sh4 - usr/bin/qemu-sh4eb - usr/bin/qemu-sparc - usr/bin/qemu-sparc64 - usr/bin/qemu-armeb - usr/bin/qemu-sparc32plus - usr/bin/qemu-s390x - usr/bin/qemu-unicore32 -" - -DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the -kernel module loaded before running kvm. The easiest way to ensure that the -kernel module is loaded is to load it on boot. - For AMD CPUs the module is called 'kvm-amd'. - For Intel CPUs the module is called 'kvm-intel'. -Please review /etc/conf.d/modules for how to load these. - -Make sure your user is in the 'kvm' group. Just run - # gpasswd -a kvm -then have re-login. - -For brand new installs, the default permissions on /dev/kvm might not let -you access it. You can tell udev to reset ownership/perms: - # udevadm trigger -c add /dev/kvm - -If you want to register binfmt handlers for qemu user targets: -For openrc: - # rc-update add qemu-binfmt -For systemd: - # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf" - -pkg_pretend() { - if use kernel_linux && kernel_is lt 2 6 25; then - eerror "This version of KVM requires a host kernel of 2.6.25 or higher." - elif use kernel_linux; then - if ! linux_config_exists; then - eerror "Unable to check your kernel for KVM support" - else - CONFIG_CHECK="~KVM ~TUN ~BRIDGE" - ERROR_KVM="You must enable KVM in your kernel to continue" - ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in" - ERROR_KVM_AMD+=" your kernel configuration." - ERROR_KVM_INTEL="If you have an Intel CPU, you must enable" - ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration." - ERROR_TUN="You will need the Universal TUN/TAP driver compiled" - ERROR_TUN+=" into your kernel or loaded as a module to use the" - ERROR_TUN+=" virtual network device if using -net tap." - ERROR_BRIDGE="You will also need support for 802.1d" - ERROR_BRIDGE+=" Ethernet Bridging for some network configurations." - use vhost-net && CONFIG_CHECK+=" ~VHOST_NET" - ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net" - ERROR_VHOST_NET+=" support" - use test && CONFIG_CHECK+=" IP_MULTICAST" - ERROR_IP_MULTICAST="Test suite requires IP_MULTICAST" - - if use amd64 || use x86; 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 - - # this is still required to support glibc-2.42 in qemu-user - eapply "${WORKDIR}/termios2-patches"/*.patch - - # 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 - # used by passt and spice, enable it because glib is required anyway - conf_opts+=( - --enable-gio - ) - # 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 - - # suid in src_install to allow FEATURES=suidctl to work properly - fperms u+s /usr/libexec/qemu-bridge-helper - - # 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.2.2.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.2.2.ebuild new file mode 100644 index 00000000000..490f00cd059 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.2.2.ebuild @@ -0,0 +1,1026 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-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_{12..14} ) +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(+)] + virtual/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.7.5:=[static-libs(+)] + >=dev-libs/nettle-3.7.3:=[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}[qemu_softmmu_targets_x86_64(+)] + ~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}[qemu_softmmu_targets_x86_64(+)] + ) + sys-firmware/ipxe[qemu] + || ( + >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] + >=sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + sys-firmware/sgabios + ) +" +PPC_FIRMWARE_DEPEND=" + pin-upstream-blobs? ( + ~sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + !pin-upstream-blobs? ( + || ( + >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] + >=sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + ) +" + +# See bug #913084 for pip dep +BDEPEND=" + ${PYTHON_DEPS} + dev-python/distlib[${PYTHON_USEDEP}] + dev-lang/perl + >=dev-build/meson-0.63.0 + >=dev-util/gdbus-codegen-2.80.5-r1 + app-alternatives/ninja + virtual/pkgconfig + doc? ( + >=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}] + dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] + ) + gtk? ( nls? ( sys-devel/gettext ) ) + test? ( + app-alternatives/bc + dev-libs/glib[utils] + dev-python/pycotap[${PYTHON_USEDEP}] + ) +" +CDEPEND=" + ${ALL_DEPEND//\[static-libs(+)]} + ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]} + qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} ) +" +DEPEND=" + ${CDEPEND} + kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 ) + static-user? ( ${ALL_DEPEND} ) + valgrind? ( dev-debug/valgrind ) +" +RDEPEND=" + ${CDEPEND} + acct-group/kvm + selinux? ( + sec-policy/selinux-qemu + sys-libs/libselinux + ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-10.1.2-fix_passt.patch + "${FILESDIR}"/${PN}-9.0.0-disable-keymap.patch + "${FILESDIR}"/${PN}-9.2.0-capstone-include-path.patch + "${FILESDIR}"/${PN}-8.1.0-skip-tests.patch + "${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch + "${FILESDIR}"/${PN}-10.2.2-optionrom-pass-Wl-no-error-rwx-segments.patch +) + +QA_PREBUILT=" + usr/share/qemu/hppa-firmware.img + usr/share/qemu/hppa-firmware64.img + usr/share/qemu/openbios-ppc + usr/share/qemu/openbios-sparc64 + usr/share/qemu/openbios-sparc32 + usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf + usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf + usr/share/qemu/palcode-clipper + usr/share/qemu/s390-ccw.img + usr/share/qemu/s390-netboot.img + usr/share/qemu/u-boot.e500 +" + +QA_WX_LOAD=" + usr/bin/qemu-i386 + usr/bin/qemu-x86_64 + usr/bin/qemu-alpha + usr/bin/qemu-arm + usr/bin/qemu-cris + usr/bin/qemu-m68k + usr/bin/qemu-microblaze + usr/bin/qemu-microblazeel + usr/bin/qemu-mips + usr/bin/qemu-mipsel + usr/bin/qemu-or1k + usr/bin/qemu-ppc + usr/bin/qemu-ppc64 + usr/bin/qemu-sh4 + usr/bin/qemu-sh4eb + usr/bin/qemu-sparc + usr/bin/qemu-sparc64 + usr/bin/qemu-armeb + usr/bin/qemu-sparc32plus + usr/bin/qemu-s390x + usr/bin/qemu-unicore32 +" + +DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the +kernel module loaded before running kvm. The easiest way to ensure that the +kernel module is loaded is to load it on boot. + For AMD CPUs the module is called 'kvm-amd'. + For Intel CPUs the module is called 'kvm-intel'. +Please review /etc/conf.d/modules for how to load these. + +Make sure your user is in the 'kvm' group. Just run + # gpasswd -a kvm +then have re-login. + +For brand new installs, the default permissions on /dev/kvm might not let +you access it. You can tell udev to reset ownership/perms: + # udevadm trigger -c add /dev/kvm + +If you want to register binfmt handlers for qemu user targets: +For openrc: + # rc-update add qemu-binfmt +For systemd: + # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf" + +pkg_pretend() { + if use kernel_linux && kernel_is lt 2 6 25; then + eerror "This version of KVM requires a host kernel of 2.6.25 or higher." + elif use kernel_linux; then + if ! linux_config_exists; then + eerror "Unable to check your kernel for KVM support" + else + CONFIG_CHECK="~KVM ~TUN ~BRIDGE" + ERROR_KVM="You must enable KVM in your kernel to continue" + ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in" + ERROR_KVM_AMD+=" your kernel configuration." + ERROR_KVM_INTEL="If you have an Intel CPU, you must enable" + ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration." + ERROR_TUN="You will need the Universal TUN/TAP driver compiled" + ERROR_TUN+=" into your kernel or loaded as a module to use the" + ERROR_TUN+=" virtual network device if using -net tap." + ERROR_BRIDGE="You will also need support for 802.1d" + ERROR_BRIDGE+=" Ethernet Bridging for some network configurations." + use vhost-net && CONFIG_CHECK+=" ~VHOST_NET" + ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net" + ERROR_VHOST_NET+=" support" + use test && CONFIG_CHECK+=" IP_MULTICAST" + ERROR_IP_MULTICAST="Test suite requires IP_MULTICAST" + + if use amd64 || use x86; 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 + # used by passt and spice, enable it because glib is required anyway + conf_opts+=( + --enable-gio + ) + # 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 + + # suid in src_install to allow FEATURES=suidctl to work properly + fperms u+s /usr/libexec/qemu-bridge-helper + + # Install config file example for qemu-bridge-helper + insinto "/etc/qemu" + doins "${FILESDIR}/bridge.conf" + + cd "${S}" || die + dodoc MAINTAINERS + newdoc pc-bios/README README.pc-bios + + # Disallow stripping of prebuilt firmware files. + dostrip -x ${QA_PREBUILT} + + if [[ -n ${softmmu_targets} ]]; then + # Remove SeaBIOS since we're using the SeaBIOS packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin + fi + + # Remove vgabios since we're using the seavgabios packaged one + rm "${ED}/usr/share/qemu/vgabios.bin" + rm "${ED}/usr/share/qemu/vgabios-cirrus.bin" + rm "${ED}/usr/share/qemu/vgabios-qxl.bin" + rm "${ED}/usr/share/qemu/vgabios-stdvga.bin" + rm "${ED}/usr/share/qemu/vgabios-virtio.bin" + rm "${ED}/usr/share/qemu/vgabios-vmware.bin" + + # PPC/PPC64 loads vgabios-stdvga + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then + dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin + dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin + dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin + dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin + dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin + dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin + fi + + # Remove sgabios since we're using the sgabios packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin + fi + + # Remove iPXE since we're using the iPXE packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom + dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom + dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom + dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom + dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom + dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom + fi + fi + + DISABLE_AUTOFORMATTING=true + readme.gentoo_create_doc +} + +pkg_postinst() { + if [[ -n ${softmmu_targets} ]] && use kernel_linux; then + udev_reload + fi + + xdg_icon_cache_update + + [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \ + fcaps -M u-s cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper + + DISABLE_AUTOFORMATTING=true + readme.gentoo_print_elog + + if use pin-upstream-blobs && ver_replacing -lt ${FIRMWARE_ABI_VERSION}; then + ewarn "This version of qemu pins new versions of firmware blobs:" + + if has_version 'sys-firmware/edk2-bin'; then + ewarn " $(best_version sys-firmware/edk2-bin)" + else + ewarn " $(best_version sys-firmware/edk2)" + fi + + if has_version 'sys-firmware/seabios-bin'; then + ewarn " $(best_version sys-firmware/seabios-bin)" + else + ewarn " $(best_version sys-firmware/seabios)" + fi + + ewarn " $(best_version sys-firmware/ipxe)" + ewarn " $(best_version sys-firmware/sgabios)" + ewarn "This might break resume of hibernated guests (started with a different" + ewarn "firmware version) and live migration to/from qemu versions with different" + ewarn "firmware. Please (cold) restart all running guests. For functional" + ewarn "guest migration ensure that all hosts run at least" + ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}." + fi +} + +pkg_info() { + echo "Using:" + echo " $(best_version app-emulation/spice-protocol)" + + if has_version 'sys-firmware/edk2-bin'; then + echo " $(best_version sys-firmware/edk2-bin)" + else + echo " $(best_version sys-firmware/edk2)" + fi + + if has_version 'sys-firmware/seabios-bin'; then + echo " $(best_version sys-firmware/seabios-bin)" + else + echo " $(best_version sys-firmware/seabios)" + fi + + echo " $(best_version sys-firmware/ipxe)" + echo " $(best_version sys-firmware/sgabios)" +} + +pkg_postrm() { + xdg_icon_cache_update + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.1.3-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.1.3-r2.ebuild deleted file mode 100644 index 1677d478900..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.1.3-r2.ebuild +++ /dev/null @@ -1,1012 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-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_{12..13} ) -PYTHON_REQ_USE="ensurepip(-),ncurses,readline" - -FIRMWARE_ABI_VERSION="7.2.0" - -inherit 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 - cris - 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(+)] - virtual/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(+)] ) -" - -EDK2_OVMF_VERSION="202202" -SEABIOS_VERSION="1.16.3" - -X86_FIRMWARE_DEPEND=" - pin-upstream-blobs? ( - ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} - ~sys-firmware/ipxe-1.21.1[binary,qemu] - ~sys-firmware/seabios-bin-${SEABIOS_VERSION} - ~sys-firmware/sgabios-0.1_pre10[binary] - ) - !pin-upstream-blobs? ( - || ( - >=sys-firmware/edk2-${EDK2_OVMF_VERSION} - >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} - ) - sys-firmware/ipxe[qemu] - || ( - >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] - >=sys-firmware/seabios-bin-${SEABIOS_VERSION} - ) - sys-firmware/sgabios - ) -" -PPC_FIRMWARE_DEPEND=" - pin-upstream-blobs? ( - ~sys-firmware/seabios-bin-${SEABIOS_VERSION} - ) - !pin-upstream-blobs? ( - || ( - >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] - >=sys-firmware/seabios-bin-${SEABIOS_VERSION} - ) - ) -" - -# See bug #913084 for pip dep -BDEPEND=" - ${PYTHON_DEPS} - dev-python/distlib[${PYTHON_USEDEP}] - dev-lang/perl - >=dev-build/meson-0.63.0 - >=dev-util/gdbus-codegen-2.80.5-r1 - 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? ( - dev-libs/glib[utils] - app-alternatives/bc - ) -" -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.1.0-capstone-include-path.patch - "${FILESDIR}"/${PN}-9.0.0-also-build-virtfs-proxy-helper.patch - "${FILESDIR}"/${PN}-8.1.0-skip-tests.patch - "${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch - "${FILESDIR}"/${PN}-9.0.0-glibc-2.41.patch - "${FILESDIR}"/${PN}-7.2.16-optionrom-pass-Wl-no-error-rwx-segments.patch -) - -QA_PREBUILT=" - usr/share/qemu/hppa-firmware.img - usr/share/qemu/hppa-firmware64.img - usr/share/qemu/openbios-ppc - usr/share/qemu/openbios-sparc64 - usr/share/qemu/openbios-sparc32 - usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf - usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf - usr/share/qemu/palcode-clipper - usr/share/qemu/s390-ccw.img - usr/share/qemu/s390-netboot.img - usr/share/qemu/u-boot.e500 -" - -QA_WX_LOAD=" - usr/bin/qemu-i386 - usr/bin/qemu-x86_64 - usr/bin/qemu-alpha - usr/bin/qemu-arm - usr/bin/qemu-cris - usr/bin/qemu-m68k - usr/bin/qemu-microblaze - usr/bin/qemu-microblazeel - usr/bin/qemu-mips - usr/bin/qemu-mipsel - usr/bin/qemu-or1k - usr/bin/qemu-ppc - usr/bin/qemu-ppc64 - usr/bin/qemu-sh4 - usr/bin/qemu-sh4eb - usr/bin/qemu-sparc - usr/bin/qemu-sparc64 - usr/bin/qemu-armeb - usr/bin/qemu-sparc32plus - usr/bin/qemu-s390x - usr/bin/qemu-unicore32 -" - -DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the -kernel module loaded before running kvm. The easiest way to ensure that the -kernel module is loaded is to load it on boot. - For AMD CPUs the module is called 'kvm-amd'. - For Intel CPUs the module is called 'kvm-intel'. -Please review /etc/conf.d/modules for how to load these. - -Make sure your user is in the 'kvm' group. Just run - $ gpasswd -a kvm -then have re-login. - -For brand new installs, the default permissions on /dev/kvm might not let -you access it. You can tell udev to reset ownership/perms: - $ udevadm trigger -c add /dev/kvm - -If you want to register binfmt handlers for qemu user targets: -For openrc: - # rc-update add qemu-binfmt -For systemd: - # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf" - -pkg_pretend() { - if use kernel_linux && kernel_is lt 2 6 25; then - eerror "This version of KVM requires a host kernel of 2.6.25 or higher." - elif use kernel_linux; then - if ! linux_config_exists; then - eerror "Unable to check your kernel for KVM support" - else - CONFIG_CHECK="~KVM ~TUN ~BRIDGE" - ERROR_KVM="You must enable KVM in your kernel to continue" - ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in" - ERROR_KVM_AMD+=" your kernel configuration." - ERROR_KVM_INTEL="If you have an Intel CPU, you must enable" - ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration." - ERROR_TUN="You will need the Universal TUN/TAP driver compiled" - ERROR_TUN+=" into your kernel or loaded as a module to use the" - ERROR_TUN+=" virtual network device if using -net tap." - ERROR_BRIDGE="You will also need support for 802.1d" - ERROR_BRIDGE+=" Ethernet Bridging for some network configurations." - use vhost-net && CONFIG_CHECK+=" ~VHOST_NET" - ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net" - ERROR_VHOST_NET+=" support" - use test && CONFIG_CHECK+=" IP_MULTICAST" - ERROR_IP_MULTICAST="Test suite requires IP_MULTICAST" - - if use amd64 || use x86; 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-cppflags -DGENTOO_GTK_HIDE_X11 - use wayland || append-cppflags -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 - ) - 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 -} - -firmware_abi_change() { - local pv - for pv in ${REPLACING_VERSIONS}; do - if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then - return 0 - fi - done - return 1 -} - -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 && firmware_abi_change; 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" - ewarn "hosts run at least" - ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}." - fi -} - -pkg_info() { - echo "Using:" - echo " $(best_version app-emulation/spice-protocol)" - - if has_version 'sys-firmware/edk2-bin'; then - echo " $(best_version sys-firmware/edk2-bin)" - else - echo " $(best_version sys-firmware/edk2)" - fi - - if has_version 'sys-firmware/seabios-bin'; then - echo " $(best_version sys-firmware/seabios-bin)" - else - echo " $(best_version sys-firmware/seabios)" - fi - - echo " $(best_version sys-firmware/ipxe)" - echo " $(best_version sys-firmware/sgabios)" -} - -pkg_postrm() { - xdg_icon_cache_update - udev_reload -} diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.2.3-r3.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.2.3-r3.ebuild deleted file mode 100644 index c42206d85ed..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.2.3-r3.ebuild +++ /dev/null @@ -1,1002 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-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_{12..13} ) -PYTHON_REQ_USE="ensurepip(-),ncurses,readline" - -FIRMWARE_ABI_VERSION="7.2.0" - -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(+)] - virtual/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(+)] ) -" - -EDK2_OVMF_VERSION="202202" -SEABIOS_VERSION="1.16.3" - -X86_FIRMWARE_DEPEND=" - pin-upstream-blobs? ( - ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} - ~sys-firmware/ipxe-1.21.1[binary,qemu] - ~sys-firmware/seabios-bin-${SEABIOS_VERSION} - ~sys-firmware/sgabios-0.1_pre10[binary] - ) - !pin-upstream-blobs? ( - || ( - >=sys-firmware/edk2-${EDK2_OVMF_VERSION} - >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} - ) - sys-firmware/ipxe[qemu] - || ( - >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] - >=sys-firmware/seabios-bin-${SEABIOS_VERSION} - ) - sys-firmware/sgabios - ) -" -PPC_FIRMWARE_DEPEND=" - pin-upstream-blobs? ( - ~sys-firmware/seabios-bin-${SEABIOS_VERSION} - ) - !pin-upstream-blobs? ( - || ( - >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] - >=sys-firmware/seabios-bin-${SEABIOS_VERSION} - ) - ) -" - -# See bug #913084 for pip dep -BDEPEND=" - ${PYTHON_DEPS} - dev-python/distlib[${PYTHON_USEDEP}] - dev-lang/perl - >=dev-build/meson-0.63.0 - >=dev-util/gdbus-codegen-2.80.5-r1 - 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}-9.2.3-virtio-net.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; 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" - ewarn "hosts run at least" - ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}." - fi -} - -pkg_info() { - echo "Using:" - echo " $(best_version app-emulation/spice-protocol)" - - if has_version 'sys-firmware/edk2-bin'; then - echo " $(best_version sys-firmware/edk2-bin)" - else - echo " $(best_version sys-firmware/edk2)" - fi - - if has_version 'sys-firmware/seabios-bin'; then - echo " $(best_version sys-firmware/seabios-bin)" - else - echo " $(best_version sys-firmware/seabios)" - fi - - echo " $(best_version sys-firmware/ipxe)" - echo " $(best_version sys-firmware/sgabios)" -} - -pkg_postrm() { - xdg_icon_cache_update - udev_reload -} diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.2.4.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.2.4.ebuild index 952d5b7e626..ce50310c3e5 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.2.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.2.4.ebuild @@ -46,7 +46,7 @@ else fi S="${WORKDIR}/${MY_P}" - [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" + [[ "${PV}" != *_rc* ]] && KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86" fi DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools" @@ -244,7 +244,7 @@ SEABIOS_VERSION="1.16.3" X86_FIRMWARE_DEPEND=" pin-upstream-blobs? ( - ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION}[qemu_softmmu_targets_x86_64(+)] ~sys-firmware/ipxe-1.21.1[binary,qemu] ~sys-firmware/seabios-bin-${SEABIOS_VERSION} ~sys-firmware/sgabios-0.1_pre10[binary] @@ -252,7 +252,7 @@ X86_FIRMWARE_DEPEND=" !pin-upstream-blobs? ( || ( >=sys-firmware/edk2-${EDK2_OVMF_VERSION} - >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION}[qemu_softmmu_targets_x86_64(+)] ) sys-firmware/ipxe[qemu] || ( diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9999.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9999.ebuild index 27dbfa44dc7..c3ede67f21b 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9999.ebuild @@ -47,11 +47,6 @@ else [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" fi -# this is still required to support glibc-2.42 in qemu-user, bug 961307 -# source: https://gitlab.com/qemu-project/qemu/-/issues/3065#note_2969046870 -# -SRC_URI+=" https://dev.gentoo.org/~dilfridge/distfiles/qemu-10-termios2-patches.tar.xz" - DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools" HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org" @@ -80,7 +75,6 @@ COMMON_TARGETS=" loongarch64 m68k microblaze - microblazeel mips mips64 mips64el @@ -110,6 +104,7 @@ IUSE_USER_TARGETS=" aarch64_be armeb hexagon + microblazeel mipsn32 mipsn32el ppc64le @@ -264,7 +259,7 @@ SEABIOS_VERSION="1.16.3" X86_FIRMWARE_DEPEND=" pin-upstream-blobs? ( - ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION}[qemu_softmmu_targets_x86_64(+)] ~sys-firmware/ipxe-1.21.1_p20230601[binary,qemu] ~sys-firmware/seabios-bin-${SEABIOS_VERSION} ~sys-firmware/sgabios-0.1_pre10[binary] @@ -272,7 +267,7 @@ X86_FIRMWARE_DEPEND=" !pin-upstream-blobs? ( || ( >=sys-firmware/edk2-${EDK2_OVMF_VERSION} - >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION}[qemu_softmmu_targets_x86_64(+)] ) sys-firmware/ipxe[qemu] || ( @@ -343,7 +338,7 @@ PATCHES=( "${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.2.2-optionrom-pass-Wl-no-error-rwx-segments.patch ) QA_PREBUILT=" @@ -497,9 +492,6 @@ src_prepare() { default - # this is still required to support glibc-2.42 in qemu-user - eapply "${WORKDIR}/termios2-patches"/*.patch - # Use correct toolchain to fix cross-compiling tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS export WINDRES=${CHOST}-windres diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/Manifest b/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/Manifest index dccccdf8626..78c1d9c880f 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/Manifest @@ -1,5 +1,4 @@ -DIST virt_firmware-24.11.tar.gz 115385 BLAKE2B 2edfe718fd60dcd8a13b143f9fcf5f6beb604737ef4855cb0f16376e625f5bf2965bb08b7ddd037a6b8b6420c928abceefe1034135ab66763695fa8c359786b5 SHA512 0c6b4d34d518835b4489404c784b263cd6ac8348834ba654d27ae3741d3d229ea5f6036870399390fa4fa33e01c8113d64faba0c6068e4b2fb5bbdd9429bf72f DIST virt_firmware-25.10.tar.gz 137685 BLAKE2B d1ab74eae907048549e2129aa256597752c5219110606bd623e0e6f0b90f88dd38226d8b7a992fe05ef49ab8c4ddf3a917184051715ebd6224cdbda4303754a5 SHA512 2fdf609f0ba335d6064cb595c5e4b465b0a148f258f87292f0b82d1aa653f5bfd1f9b851d36f1c46a94fb8be36d6cd6c5c3f5d633e86d34b8f6159186f872908 DIST virt_firmware-25.12.tar.gz 143352 BLAKE2B f456a444e529ed7abf9fbba4491b56b1b1f76bf9c9d76c3a82e1c3a716b88c952bd494330680a4b21576a792a516e69b74203126dc4bac688e083185f1589924 SHA512 faa2f8abd0f8f633f2c620a2b7fd6ff91809e2a546b01088154e48d5151426f5b7b6134de0325664028419fe50376214b575f9da25095d2522edb814024ff8dc -DIST virt_firmware-25.4.1.tar.gz 120061 BLAKE2B ef22266944cae225cf817c9b67a7aae5ee95908be419b870f451f6eba391998be082b1cf8f2dad62ed84551323cb56854b785a93d0c0ff83340fdb9a5f571aeb SHA512 2f82299415a0bf5dd8874764fe7d71cfe9a12e489657237f6a889288294e69fed9076219ae91a2d60084ae1ffac6bc4f3e2760999e8030aad045cb59ea152367 DIST virt_firmware-26.2.tar.gz 143457 BLAKE2B fd0b977539af0cde4059e67e86ddf97c6dcffc3f7b1cf5975d181dd51b698334c8b22b2c6a951da2e39327a0dd43b44d03a05d0ff56be6defb4a48f872ac4e80 SHA512 6e7fa94009da095e15880b6be850b130ea3097394572c01fe0404b6d4bc11117b9ae730ca43408cb02b5ae9dc2671ef5635520dd2c8776bb2b6b68c8246d06c7 +DIST virt_firmware-26.5.4.tar.gz 151249 BLAKE2B 05724cb57e33ef4d30cf987bdc7cf71b49be0b32437b27cec5fb43d39fe9fd0456f104da3ecac05e251f8249a974f18286f162f041247de2267436c993864be9 SHA512 5a61d4cf9e4aa025a12eab17f5f61ada197a7fc5c18d1ecdf0a6282d26cec8d261112a88ea24fbcdfd4ef69421667225ad8df1645cd30a1c1c374c8475e5c532 diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/virt-firmware-24.11.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/virt-firmware-24.11.ebuild deleted file mode 100644 index 23ca73207ad..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/virt-firmware-24.11.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 2024-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..13} ) -DISTUTILS_USE_PEP517=setuptools - -inherit distutils-r1 optfeature pypi systemd - -DESCRIPTION="Tools for ovmf/armvirt firmware volumes" -HOMEPAGE=" - https://gitlab.com/kraxel/virt-firmware - https://pypi.org/project/virt-firmware/ -" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 arm arm64 ~loong ~riscv x86" - -RDEPEND=" - dev-python/cryptography[${PYTHON_USEDEP}] - dev-python/pefile[${PYTHON_USEDEP}] -" - -# Need systemd-detect-virt -BDEPEND=" - test? ( - sys-apps/systemd - ) -" - -distutils_enable_tests unittest - -python_test() { - eunittest tests -} - -python_install_all() { - distutils-r1_python_install_all - - doman man/*.1 - - doinitd "${FILESDIR}/kernel-bootcfg-boot-successful" - systemd_dounit systemd/kernel-bootcfg-boot-successful.service - - # Use our own provided by sys-kernel/installkernel[efistub,systemd] - #exeinto /usr/lib/kernel/install.d - #doexe systemd/99-uki-uefi-setup.install -} - -pkg_postinst() { - optfeature "automatically updating UEFI configuration on each kernel installation or removal" \ - "sys-kernel/installkernel[systemd,efistub]" -} diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/virt-firmware-25.4.1.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/virt-firmware-25.4.1.ebuild deleted file mode 100644 index 3481311f677..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/virt-firmware-25.4.1.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 2024-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..13} ) -DISTUTILS_USE_PEP517=setuptools - -inherit distutils-r1 optfeature pypi systemd - -DESCRIPTION="Tools for ovmf/armvirt firmware volumes" -HOMEPAGE=" - https://gitlab.com/kraxel/virt-firmware - https://pypi.org/project/virt-firmware/ -" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86" - -RDEPEND=" - dev-python/cryptography[${PYTHON_USEDEP}] - dev-python/pefile[${PYTHON_USEDEP}] -" - -# Need systemd-detect-virt -BDEPEND=" - test? ( - sys-apps/systemd - ) -" - -distutils_enable_tests unittest - -python_test() { - eunittest tests -} - -python_install_all() { - distutils-r1_python_install_all - - doman man/*.1 - - doinitd "${FILESDIR}/kernel-bootcfg-boot-successful" - systemd_dounit systemd/kernel-bootcfg-boot-successful.service - - # Use our own provided by sys-kernel/installkernel[efistub,systemd] - #exeinto /usr/lib/kernel/install.d - #doexe systemd/99-uki-uefi-setup.install -} - -pkg_postinst() { - optfeature "automatically updating UEFI configuration on each kernel installation or removal" \ - "sys-kernel/installkernel[systemd,efistub]" -} diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/virt-firmware-26.2.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/virt-firmware-26.2.ebuild index 2460c7c17d0..2c647c10b8e 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/virt-firmware-26.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/virt-firmware-26.2.ebuild @@ -16,7 +16,7 @@ HOMEPAGE=" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86" +KEYWORDS="amd64 arm arm64 ~loong ~riscv x86" RDEPEND=" dev-python/cryptography[${PYTHON_USEDEP}] diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/virt-firmware-26.5.4.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/virt-firmware-26.5.4.ebuild new file mode 100644 index 00000000000..79551565198 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/virt-firmware-26.5.4.ebuild @@ -0,0 +1,65 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +DISTUTILS_USE_PEP517=setuptools + +inherit distutils-r1 optfeature pypi systemd + +DESCRIPTION="Tools for ovmf/armvirt firmware volumes" +HOMEPAGE=" + https://gitlab.com/kraxel/virt-firmware + https://pypi.org/project/virt-firmware/ +" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86" + +RDEPEND=" + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/pefile[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] +" + +# Need systemd-detect-virt +BDEPEND=" + test? ( + sys-apps/systemd + ) +" + +distutils_enable_tests unittest + +python_prepare_all() { + # Requires crypt module removed in py3.13 + rm virt/qemutest/cloudinit.py || die + sed -e '/from virt.qemutest.cloudinit import CloudInitISO/d' \ + -i tests/tests.py || die + + distutils-r1_python_prepare_all +} + +python_test() { + eunittest tests +} + +python_install_all() { + distutils-r1_python_install_all + + doman man/*.1 + + doinitd "${FILESDIR}/kernel-bootcfg-boot-successful" + systemd_dounit systemd/kernel-bootcfg-boot-successful.service + + # Use our own provided by sys-kernel/installkernel[efistub,systemd] + #exeinto /usr/lib/kernel/install.d + #doexe systemd/99-uki-uefi-setup.install +} + +pkg_postinst() { + optfeature "automatically updating UEFI configuration on each kernel installation or removal" \ + "sys-kernel/installkernel[systemd,efistub]" +} diff --git a/sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-9999.ebuild b/sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-9999.ebuild index 3585ab0fe83..50135d2a449 100644 --- a/sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 2022-2025 Gentoo Authors +# Copyright 2022-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -22,8 +22,7 @@ if [[ ${PV} == 9999 ]]; then IUSE+=" +man" else SRC_URI=" - https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz - https://dev.gentoo.org/~vapier/dist/${P}.tar.xz + https://distfiles.gentoo.org/pub/proj/toolchain/pax-utils/${P}.tar.xz " KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE+=" man" 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 aa713f10727..5672ad21410 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,3 +1 @@ -DIST gentoolkit-0.6.11.tar.bz2 3190283 BLAKE2B 57e671c0f3a5fab9f19cbc9659bfabc5d58e53c73871aa5c51d1af06c08ca5b841e8b0c54e5e572f8563d7c7f132f951ea951a1a03b251d308f859eadb54d6e2 SHA512 5f75ca5409dd1b6d52a2a53e7f8cec5a7def2662bdb0a0cd601dc38ad27a6fafa376acd1074f6b6ce496815872a2874109430cb13c0772c977bc370c6e80e6b7 -DIST gentoolkit-0.6.8.tar.bz2 3190065 BLAKE2B 2f792d174a25c03e0f1b895fe06282412d383561e5456d5b4d2d918f7648790846fa9390b3bb9c862618ffefe749d9ccc236682be9fecde12ef8fda17c79359d SHA512 91ba97d8000d90350ea63c4d3be69dda919795b62ae84fe264ae8fee24ce6f6250599e03b086a334344df402781372ba9ced4cedb1c2fc66e2a4f6115ee57fc5 -DIST gentoolkit-0.7.1.tar.bz2 3191162 BLAKE2B 0c76aa32d8ba59776dc02a5a04337c175822cddb3857e3cc060d50de166e0e8996a72fb132bec06a44f694f867a781c72a6f0e3a120a93e771f6683d314ec319 SHA512 b0d6f5a567290d106bbb093a3fba7fe9e90aaeea885c6369962f4f830a20ffed02380024bbc6ae4bbe541a222adde56c52b199c2127f686a9e4532994d16feed +DIST gentoolkit-0.7.2.tar.bz2 3190909 BLAKE2B b8646c98858cd4e7c1c4dee5656319fd30b2668ea0b6739e327b94fc9955bb0fd8591769df0168fae46a98e28a96d1a95ff28fa35fe4a146cb100c554cd8a55a SHA512 9afe0e249bcee9f184cf5e691dd841756d00ac4ea63de223d89bc6a4a457f30a7def4390afe2e3f6f83425828f4c22086d381930e35b161000dea4c7146d5cd2 diff --git a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.6.8.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.6.8.ebuild deleted file mode 100644 index b0044db25ed..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.6.8.ebuild +++ /dev/null @@ -1,130 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{12..13} ) -PYTHON_REQ_USE="xml(+),threads(+)" - -inherit meson python-r1 tmpfiles - -if [[ ${PV} = 9999* ]]; then - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/gentoolkit.git - https://github.com/gentoo/gentoolkit - " - inherit git-r3 -else - SRC_URI="https://gitweb.gentoo.org/proj/gentoolkit.git/snapshot/${P}.tar.bz2" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="Collection of administration scripts for Gentoo" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage-Tools" - -LICENSE="GPL-2" -SLOT="0" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" -IUSE="test" -RESTRICT="!test? ( test )" - -# Need newer Portage for eclean-pkg API, bug #900224 -DEPEND=" - >=sys-apps/portage-3.0.57[${PYTHON_USEDEP}] -" -RDEPEND=" - ${DEPEND} - ${PYTHON_DEPS} - app-alternatives/awk - sys-apps/gentoo-functions -" - -# setuptools is still needed as a workaround for Python 3.12+ for now. -# https://github.com/mesonbuild/meson/issues/7702 -# -# >=meson-1.2.1-r1 for bug #912051 -BDEPEND=" - ${PYTHON_DEPS} - >=dev-build/meson-1.2.1-r1 - $(python_gen_cond_dep ' - dev-python/setuptools[${PYTHON_USEDEP}] - ' python3_12) - test? ( - dev-python/pytest[${PYTHON_USEDEP}] - ) -" - -src_prepare() { - default - if use prefix-guest ; then - # use correct repo name, bug #632223 - sed -i \ - -e "/load_profile_data/s/repo='gentoo'/repo='gentoo_prefix'/" \ - pym/gentoolkit/profile.py || die - fi -} - -src_configure() { - local code_only=false - python_foreach_impl my_src_configure -} - -my_src_configure() { - local emesonargs=( - -Dcode-only=${code_only} - $(meson_use test tests) - -Deprefix="${EPREFIX}" - -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" - ) - - meson_src_configure - code_only=true -} - -src_compile() { - python_foreach_impl meson_src_compile -} - -src_test() { - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - python_foreach_impl epytest -} - -src_install() { - python_foreach_impl my_src_install - dotmpfiles data/tmpfiles.d/revdep-rebuild.conf - - local scripts - mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/bin/* || die) - python_replicate_script "${scripts[@]}" -} - -my_src_install() { - local pydirs=( - "${D}$(python_get_sitedir)" - ) - - meson_src_install - python_optimize "${pydirs[@]}" -} - -pkg_postinst() { - tmpfiles_process revdep-rebuild.conf - - # Only show the elog information on a new install - if [[ ! ${REPLACING_VERSIONS} ]]; then - elog - elog "For further information on gentoolkit, please read the gentoolkit" - elog "guide: https://wiki.gentoo.org/wiki/Gentoolkit" - elog - elog "Another alternative to equery is app-portage/portage-utils" - elog - elog "Additional tools that may be of interest:" - elog - elog " app-admin/eclean-kernel" - elog " app-portage/diffmask" - elog " app-portage/flaggie" - elog " app-portage/portpeek" - elog " app-portage/smart-live-rebuild" - fi -} diff --git a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.7.1.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.7.1.ebuild deleted file mode 100644 index fe7fac2130e..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.7.1.ebuild +++ /dev/null @@ -1,130 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{12..14} ) -PYTHON_REQ_USE="xml(+),threads(+)" - -inherit meson python-r1 tmpfiles - -if [[ ${PV} = 9999* ]]; then - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/gentoolkit.git - https://github.com/gentoo/gentoolkit - " - inherit git-r3 -else - SRC_URI="https://gitweb.gentoo.org/proj/gentoolkit.git/snapshot/${P}.tar.bz2" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="Collection of administration scripts for Gentoo" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage-Tools" - -LICENSE="GPL-2" -SLOT="0" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" -IUSE="test" -RESTRICT="!test? ( test )" - -# Need newer Portage for eclean-pkg API, bug #900224 -DEPEND=" - >=sys-apps/portage-3.0.57[${PYTHON_USEDEP}] -" -RDEPEND=" - ${DEPEND} - ${PYTHON_DEPS} - app-alternatives/awk - sys-apps/gentoo-functions -" - -# setuptools is still needed as a workaround for Python 3.12+ for now. -# https://github.com/mesonbuild/meson/issues/7702 -# -# >=meson-1.2.1-r1 for bug #912051 -BDEPEND=" - ${PYTHON_DEPS} - >=dev-build/meson-1.2.1-r1 - $(python_gen_cond_dep ' - dev-python/setuptools[${PYTHON_USEDEP}] - ' python3_12) - test? ( - dev-python/pytest[${PYTHON_USEDEP}] - ) -" - -src_prepare() { - default - if use prefix-guest ; then - # use correct repo name, bug #632223 - sed -i \ - -e "/load_profile_data/s/repo='gentoo'/repo='gentoo_prefix'/" \ - pym/gentoolkit/profile.py || die - fi -} - -src_configure() { - local code_only=false - python_foreach_impl my_src_configure -} - -my_src_configure() { - local emesonargs=( - -Dcode-only=${code_only} - $(meson_use test tests) - -Deprefix="${EPREFIX}" - -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" - ) - - meson_src_configure - code_only=true -} - -src_compile() { - python_foreach_impl meson_src_compile -} - -src_test() { - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - python_foreach_impl epytest -} - -src_install() { - python_foreach_impl my_src_install - dotmpfiles data/tmpfiles.d/revdep-rebuild.conf - - local scripts - mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/bin/* || die) - python_replicate_script "${scripts[@]}" -} - -my_src_install() { - local pydirs=( - "${D}$(python_get_sitedir)" - ) - - meson_src_install - python_optimize "${pydirs[@]}" -} - -pkg_postinst() { - tmpfiles_process revdep-rebuild.conf - - # Only show the elog information on a new install - if [[ ! ${REPLACING_VERSIONS} ]]; then - elog - elog "For further information on gentoolkit, please read the gentoolkit" - elog "guide: https://wiki.gentoo.org/wiki/Gentoolkit" - elog - elog "Another alternative to equery is app-portage/portage-utils" - elog - elog "Additional tools that may be of interest:" - elog - elog " app-admin/eclean-kernel" - elog " app-portage/diffmask" - elog " app-portage/flaggie" - elog " app-portage/portpeek" - elog " app-portage/smart-live-rebuild" - fi -} diff --git a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.6.11.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.7.2.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.6.11.ebuild rename to sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.7.2.ebuild 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 92617d99bc6..86c50e0efbc 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,2 +1,4 @@ DIST getuto-1.15.tar.gz 10749 BLAKE2B 535a400a2ebdf2cee2d00466557863a1d1ab5f409c3fa12e8d0bb08379331d5684ba9f9aed5da67e761b9373aa8d675810ff7b803a993a606982bfc56cbe9195 SHA512 98f6c8900fa4469fb76bae42712e8457a3cf07b8c0ca99aa24ece2691677a06b6952b714d3a04f6f102880c5dd7fe390352b4474cdd39647d88cb7d7b7c776c7 +DIST getuto-1.18.tar.gz 11096 BLAKE2B dc0bf33459f3fab1894cd40fb5dcd749d38790a65e5a5476460903229a373284e6246bae4ad13f2fca44cd9d545e11d70554c4635e07bf95941a3182e73b2944 SHA512 1886dad9ff361377e9f1fc392569e2227c71af9636b1bc333f4f1c7e322328e6dda8384508f129c79e0e6588180d0d25015c3df03e2749d63b5009adc6eb1a30 +DIST getuto-1.19.1.tar.gz 11149 BLAKE2B 8f3ea5378ae1741b7608457f7451d6a5b18b2752842a62d728690d33212746df81c595a068ddc1aad6f346f30497018a6aec09876563940333965c3fd4757505 SHA512 86dd4c53dffcb079825c51783a593d0fbed76134446fdd674fc98ab5f1beef3429c05ed2003b926efcaed29f93e0237a621648a738d64bce6b97f579eacf3229 DIST getuto-23.0-libc-1-r1-1.gpkg.tar 20480 BLAKE2B a6f9284131690c39ff63a6046b19478a9f460d4115b1bd306d2996b631026fe9c4c4b2e3be23f30d2668794302d2a1686680738dd052a53e2d4c3ecb2a513070 SHA512 a692817ea63fb69c7cbb5e32fcba21e78bd87dd4e670d4c1ac9105e390ef63ea0f3660464e573adb28320b0a9cb0a78c52fe895ecdfd62a24986b1d79d2c692e diff --git a/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.18.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.18.ebuild new file mode 100644 index 00000000000..c806519f761 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.18.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2026 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" +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 )" + +# gpg[sequoia] fails w/ 0.13.1 because of missing --lsign-key +# https://gitlab.com/sequoia-pgp/sequoia-chameleon-gnupg/-/work_items/152 +RDEPEND=" + || ( + app-alternatives/gpg[reference] + app-alternatives/gpg[freepg(-)] + ) + 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_test() { + # The default portage tempdir is too long for AF_UNIX sockets + local -x TMPDIR + TMPDIR="$(mktemp -d --tmpdir=/tmp ${PF}-XXX || die)" + + default +} + +src_install() { + dobin getuto +} diff --git a/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.19.1.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.19.1.ebuild new file mode 100644 index 00000000000..d3a88caccdf --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.19.1.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2026 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" +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 )" + +# gpg[sequoia] fails w/ 0.13.1 because of missing --lsign-key +# https://gitlab.com/sequoia-pgp/sequoia-chameleon-gnupg/-/work_items/152 +RDEPEND=" + || ( + app-alternatives/gpg[reference] + app-alternatives/gpg[freepg(-)] + ) + 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_test() { + # The default portage tempdir is too long for AF_UNIX sockets + local -x TMPDIR + TMPDIR="$(mktemp -d --tmpdir=/tmp ${PF}-XXX || die)" + + default +} + +src_install() { + dobin getuto +} diff --git a/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-9999.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-9999.ebuild index f62e5bbad8c..d3a88caccdf 100644 --- a/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-9999.ebuild @@ -50,6 +50,14 @@ src_unpack() { fi } +src_test() { + # The default portage tempdir is too long for AF_UNIX sockets + local -x TMPDIR + TMPDIR="$(mktemp -d --tmpdir=/tmp ${PF}-XXX || die)" + + default +} + src_install() { dobin getuto } diff --git a/sdk_container/src/third_party/portage-stable/app-portage/portage-utils/portage-utils-0.97.1.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/portage-utils/portage-utils-0.97.1.ebuild index 78a1975446b..fb77adb215f 100644 --- a/sdk_container/src/third_party/portage-stable/app-portage/portage-utils/portage-utils-0.97.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-portage/portage-utils/portage-utils-0.97.1.ebuild @@ -13,7 +13,7 @@ if [[ ${PV} == *9999 ]]; then EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/portage-utils.git" else SRC_URI="https://dev.gentoo.org/~grobian/distfiles/${P}.tar.xz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" fi LICENSE="GPL-2" diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p9-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p9-r1.ebuild new file mode 100644 index 00000000000..dc19f60f380 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p9-r1.ebuild @@ -0,0 +1,482 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/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. See https://ftp.gnu.org/gnu/bash/bash-5.3-patches/. +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 +# 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 )) && [[ ${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" ) + + # 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 ~arm64-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}/ + + # bug #971782 + "${FILESDIR}"/${PN}-5.3_p9-general-workaround-aliasing-violation-in-REVERSE_LIS.patch + + # 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 )) && [[ ${BASH_COMMIT} ]]; 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. 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 + # https://lists.gnu.org/archive/html/bug-bash/2025-05/msg00029.html + export CFLAGS_FOR_BUILD="${BUILD_CFLAGS} -std=gnu17" + + if use kernel_Hurd ; then + # Necessary for cross-built bash for Hurd, otherwise + # config.status generation at end of configure will hang + # natively. + # + # https://lists.debian.org/debian-cross/2023/11/msg00000.html + # https://lists.gnu.org/archive/html/bug-bash/2024-11/msg00202.html + # https://lists.gnu.org/archive/html/bug-bash/2005-04/msg00074.html + cat <<-EOF > builtins/psize.sh || die + #!/bin/sh + echo "#define PIPESIZE 16384" + EOF + chmod +x builtins/psize.sh || die + fi + 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\"\' \ + -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 \ + -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-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-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 + 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 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 + + 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 + + { + 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 +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 + 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 directory 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_p9-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p9-r2.ebuild new file mode 100644 index 00000000000..e42f6276d05 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p9-r2.ebuild @@ -0,0 +1,485 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/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. See https://ftp.gnu.org/gnu/bash/bash-5.3-patches/. +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 +# 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 )) && [[ ${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" ) + + # 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 ~arm64-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}/ + + # bug #971782 + "${FILESDIR}"/${PN}-5.3_p9-general-workaround-aliasing-violation-in-REVERSE_LIS.patch + + # bug #965423, bug #970713 + "${FILESDIR}"/${PN}-5.3_p9-pid-reuse.patch + + # 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 )) && [[ ${BASH_COMMIT} ]]; 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. 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 + # https://lists.gnu.org/archive/html/bug-bash/2025-05/msg00029.html + export CFLAGS_FOR_BUILD="${BUILD_CFLAGS} -std=gnu17" + + if use kernel_Hurd ; then + # Necessary for cross-built bash for Hurd, otherwise + # config.status generation at end of configure will hang + # natively. + # + # https://lists.debian.org/debian-cross/2023/11/msg00000.html + # https://lists.gnu.org/archive/html/bug-bash/2024-11/msg00202.html + # https://lists.gnu.org/archive/html/bug-bash/2005-04/msg00074.html + cat <<-EOF > builtins/psize.sh || die + #!/bin/sh + echo "#define PIPESIZE 16384" + EOF + chmod +x builtins/psize.sh || die + fi + 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\"\' \ + -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 \ + -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-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-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 + 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 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 + + 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 + + { + 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 +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 + 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 directory 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_pre20251202-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251202-r1.ebuild new file mode 100644 index 00000000000..81176677a9d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251202-r1.ebuild @@ -0,0 +1,487 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/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 + if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then + BASH_COMMIT="5a104e96d869e2bbf0f7f364f45d21e6fc151721" + fi + ;; + *_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 )) && [[ ${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" ) + + # 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 ~arm64-macos ~x64-macos ~x64-solaris" +fi +IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline" +# As of 5.4_alpha_pre20251016, bash tests finally exit non-0 on failure. +# The differences look harmless but need investigation and fixing. +RESTRICT="test" + +DEPEND=" + >=sys-libs/ncurses-5.2-r2:= + 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}/ + + # bug #971782 + "${FILESDIR}"/${PN}-5.3_p9-general-workaround-aliasing-violation-in-REVERSE_LIS.patch + + # 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 )) && [[ ${BASH_COMMIT} ]]; 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. 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 + # https://lists.gnu.org/archive/html/bug-bash/2025-05/msg00029.html + export CFLAGS_FOR_BUILD="${BUILD_CFLAGS} -std=gnu17" + + if use kernel_Hurd ; then + # Necessary for cross-built bash for Hurd, otherwise + # config.status generation at end of configure will hang + # natively. + # + # https://lists.debian.org/debian-cross/2023/11/msg00000.html + # https://lists.gnu.org/archive/html/bug-bash/2024-11/msg00202.html + # https://lists.gnu.org/archive/html/bug-bash/2005-04/msg00074.html + cat <<-EOF > builtins/psize.sh || die + #!/bin/sh + echo "#define PIPESIZE 16384" + EOF + chmod +x builtins/psize.sh || die + fi + 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\"\' \ + -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 \ + -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 + + # Testsuite isn't expected to pass for bash right now, but it + # also doesn't matter for PGO. + nonfatal emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check + + if tc-is-clang; then + llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die + 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-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-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 + 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 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 + + 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 + + { + 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 +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 + 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 directory 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_pre20251202.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251202.ebuild deleted file mode 100644 index 8c08d6cff53..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251202.ebuild +++ /dev/null @@ -1,484 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/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 - if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then - BASH_COMMIT="5a104e96d869e2bbf0f7f364f45d21e6fc151721" - fi - ;; - *_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 )) && [[ ${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" ) - - # 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 ~arm64-macos ~x64-macos ~x64-solaris" -fi -IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline" -# As of 5.4_alpha_pre20251016, bash tests finally exit non-0 on failure. -# The differences look harmless but need investigation and fixing. -RESTRICT="test" - -DEPEND=" - >=sys-libs/ncurses-5.2-r2:= - 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 )) && [[ ${BASH_COMMIT} ]]; 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. 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 - # https://lists.gnu.org/archive/html/bug-bash/2025-05/msg00029.html - export CFLAGS_FOR_BUILD="${BUILD_CFLAGS} -std=gnu17" - - if use kernel_Hurd ; then - # Necessary for cross-built bash for Hurd, otherwise - # config.status generation at end of configure will hang - # natively. - # - # https://lists.debian.org/debian-cross/2023/11/msg00000.html - # https://lists.gnu.org/archive/html/bug-bash/2024-11/msg00202.html - # https://lists.gnu.org/archive/html/bug-bash/2005-04/msg00074.html - cat <<-EOF > builtins/psize.sh || die - #!/bin/sh - echo "#define PIPESIZE 16384" - EOF - chmod +x builtins/psize.sh || die - fi - 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\"\' \ - -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 \ - -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 - - # Testsuite isn't expected to pass for bash right now, but it - # also doesn't matter for PGO. - nonfatal emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check - - if tc-is-clang; then - llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die - 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-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-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 - 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 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 - - 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 - - { - 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 -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 - 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 directory 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 65666522a2a..0c592a0178c 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 @@ -104,6 +104,9 @@ QA_CONFIGURE_OPTIONS="--disable-static" PATCHES=( #"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/ + # bug #971782 + "${FILESDIR}"/${PN}-5.3_p9-general-workaround-aliasing-violation-in-REVERSE_LIS.patch + # Patches to or from Chet, posted to the bug-bash mailing list. "${FILESDIR}/${PN}-5.0-syslog-history-extern.patch" ) diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bash-5.3_p9-general-workaround-aliasing-violation-in-REVERSE_LIS.patch b/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bash-5.3_p9-general-workaround-aliasing-violation-in-REVERSE_LIS.patch new file mode 100644 index 00000000000..d844f646322 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bash-5.3_p9-general-workaround-aliasing-violation-in-REVERSE_LIS.patch @@ -0,0 +1,53 @@ +https://lists.gnu.org/archive/html/bug-bash/2026-03/msg00069.html + +From 7309ee9f263dfcaf11eeca679cfec5cf5c8f9455 Mon Sep 17 00:00:00 2001 +Message-ID: <7309ee9f263dfcaf11eeca679cfec5cf5c8f9455.1774896688.git.sam@gentoo.org> +From: Sam James +Date: Mon, 30 Mar 2026 19:19:33 +0100 +Subject: [PATCH] general: workaround aliasing violation in REVERSE_LIST macro + +In jobs.c, say, we have: +``` + p->next = (PROCESS *)NULL; + newjob->pipe = REVERSE_LIST (the_pipeline, PROCESS *); + for (p = newjob->pipe; p->next; p = p->next) +``` + +REVERSE_LIST (-> list_reverse) reverses the linked list `the_pipeline` +while doing accesses as GENERIC_LIST*, but the original elements are PROCESS*. + +I think GCC has an exemption for doing this with void* but even that isn't +required to work by the standard. I think it either needs to be done with char* +or with GENERIC_LIST marked with __attribute__((may_alias)) +(though that isn't portable). + +For Gentoo, the alias approach is fine until this gets fixed upstream, +so do that. + +This fixes bash being miscompiled by GCC 16 with -O2 -flto and USE=-plugins +(for -rdynamic to be dropped). + +Bug: https://bugs.gentoo.org/971782 +Signed-off-by: Sam James +--- + general.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/general.h b/general.h +index 5b1eac08..883939a7 100644 +--- general.h ++++ general.h +@@ -122,7 +122,7 @@ extern char *strcpy (char *, const char *); + can be written to handle the general case for linked lists. */ + typedef struct g_list { + struct g_list *next; +-} GENERIC_LIST; ++} __attribute__((may_alias)) GENERIC_LIST; + + /* Here is a generic structure for associating character strings + with integers. It is used in the parser for shell tokenization. */ + +base-commit: 637f5c8696a6adc9b4519f1cd74aa78492266b7f +-- +2.53.0 + diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bash-5.3_p9-pid-reuse.patch b/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bash-5.3_p9-pid-reuse.patch new file mode 100644 index 00000000000..afde63b57fa --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bash-5.3_p9-pid-reuse.patch @@ -0,0 +1,44 @@ +https://bugs.gentoo.org/970713 + +From e359bdc261f9493d91b3cf792fe4fc480ecd6dc3 Mon Sep 17 00:00:00 2001 +From: Kerin Millar +Date: Thu, 13 Nov 2025 18:39:28 +0000 +Subject: [PATCH] jobs.c: only call bgp_delete on a newly-created pid if + asynchronous + +This is a backport of the following change from the devel branch. + +jobs.c + - make_child: only call bgp_delete on a newly-created pid if that + process is asynchronous, since that is what will cause it to be + put into the bgpids table. This mostly matters for procsubs and + asynchronous jobs, but will happen for comsubs in async jobs + and coprocs as well. + +Bug: https://bugs.gentoo.org/965423 +Signed-off-by: Kerin Millar +--- + jobs.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/jobs.c b/jobs.c +index cbcc2c15..bafa7c26 100644 +--- jobs.c ++++ jobs.c +@@ -2482,9 +2482,11 @@ make_child (char *command, int flags) + been reused. */ + delete_old_job (pid); + +- /* Perform the check for pid reuse unconditionally. Some systems reuse +- PIDs before giving a process CHILD_MAX/_SC_CHILD_MAX unique ones. */ +- bgp_delete (pid); /* new process, discard any saved status */ ++ /* Perform the check for background pid reuse unconditionally. ++ Some systems reuse PIDs before giving a process ++ CHILD_MAX/_SC_CHILD_MAX unique ones. */ ++ if (async_p) ++ bgp_delete (pid); /* new background process, discard any saved status */ + + last_made_pid = pid; + +-- +2.51.2 diff --git a/sdk_container/src/third_party/portage-stable/dev-build/autoconf-wrapper/autoconf-wrapper-20260320.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/autoconf-wrapper/autoconf-wrapper-20260320.ebuild index c5328599214..5a2de4e3841 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/autoconf-wrapper/autoconf-wrapper-20260320.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/autoconf-wrapper/autoconf-wrapper-20260320.ebuild @@ -20,7 +20,7 @@ else SRC_URI="https://gitweb.gentoo.org/proj/autotools-wrappers.git/snapshot/${MY_P}.tar.gz" S="${WORKDIR}/${MY_P}" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" fi LICENSE="GPL-2" diff --git a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.73-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.73-r1.ebuild new file mode 100644 index 00000000000..13d5a52addf --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.73-r1.ebuild @@ -0,0 +1,112 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Bumping notes: +# * Remember to modify LAST_KNOWN_VER 'upstream' in dev-build/autoconf-wrapper +# on new autoconf releases, as well as the dependency in RDEPEND below too. +# * Update _WANT_AUTOCONF and _autoconf_atom case statement in autotools.eclass. + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/autoconf.git" + inherit git-r3 + AUTOCONF_SLOT="9999" +else + #PATCH_TARBALL_NAME="${PN}-2.70-patches-01" + + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/zackweinberg.asc + inherit verify-sig + + SRC_URI=" + mirror://gnu/${PN}/${P}.tar.xz + https://alpha.gnu.org/gnu/${PN}/${P}.tar.xz + https://meyering.net/ac/${P}.tar.xz + verify-sig? ( + https://alpha.gnu.org/gnu/${PN}/${P}.tar.xz.sig + mirror://gnu/${PN}/${P}.tar.xz.sig + ) + " + + AUTOCONF_EXTRA_VER=$(ver_cut 3) + if [[ ${AUTOCONF_EXTRA_VER} -ge 90 ]] ; then + # Prereleases get no keywords and their slot bumped up + # e.g. SLOT for 2.72(.90) -> 2.73 + AUTOCONF_SLOT=$(ver_cut 1).$((($(ver_cut 2) + 1))) + else + AUTOCONF_SLOT=$(ver_cut 1-2) + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + fi + + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-zackweinberg )" +fi + +inherit toolchain-autoconf multiprocessing + +DESCRIPTION="Used to create autoconfiguration files" +HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html" + +LICENSE="GPL-3+" +SLOT="${AUTOCONF_SLOT}" + +BDEPEND+=" + >=dev-lang/perl-5.10 + >=sys-devel/m4-1.4.16 +" +RDEPEND=" + ${BDEPEND} + >=dev-build/autoconf-wrapper-20260320 + sys-devel/gnuconfig + !~${CATEGORY}/${P}:2.5 +" +[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3" + +PATCHES=( + "${FILESDIR}"/${PN}-2.73-maintainer-mode-autoheader.patch +) + +src_prepare() { + if [[ ${PV} == *9999 ]] ; then + # Avoid the "dirty" suffix in the git version by generating it + # before we run later stages which might modify source files. + local ver=$(./build-aux/git-version-gen .tarball-version) + echo "${ver}" > .tarball-version || die + + export WANT_AUTOCONF=2.5 + export WANT_AUTOMAKE=1.17 + # Don't try wrapping the autotools - this thing runs as it tends + # to be a bit esoteric, and the script does `set -e` itself. + ./bootstrap || die + fi + + # usr/bin/libtool is provided by binutils-apple, need gnu libtool + if [[ ${CHOST} == *-darwin* ]] ; then + PATCHES+=( "${FILESDIR}"/${PN}-2.73-darwin.patch ) + fi + + # Save timestamp to avoid later makeinfo call + touch -r doc/{,old_}autoconf.texi || die + + toolchain-autoconf_src_prepare + + # Restore timestamp to avoid makeinfo call + # We already have an up to date autoconf.info page at this point. + touch -r doc/{old_,}autoconf.texi || die +} + +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 + + local f + for f in config.{guess,sub} ; do + ln -fs ../../gnuconfig/${f} \ + "${ED}"/usr/share/autoconf-*/build-aux/${f} || die + done +} 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 ec41a181b66..13d5a52addf 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 @@ -55,12 +55,16 @@ BDEPEND+=" " RDEPEND=" ${BDEPEND} - >=dev-build/autoconf-wrapper-20231224 + >=dev-build/autoconf-wrapper-20260320 sys-devel/gnuconfig !~${CATEGORY}/${P}:2.5 " [[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3" +PATCHES=( + "${FILESDIR}"/${PN}-2.73-maintainer-mode-autoheader.patch +) + src_prepare() { if [[ ${PV} == *9999 ]] ; then # Avoid the "dirty" suffix in the git version by generating it @@ -77,7 +81,7 @@ src_prepare() { # usr/bin/libtool is provided by binutils-apple, need gnu libtool if [[ ${CHOST} == *-darwin* ]] ; then - PATCHES+=( "${FILESDIR}"/${PN}-2.71-darwin.patch ) + PATCHES+=( "${FILESDIR}"/${PN}-2.73-darwin.patch ) fi # Save timestamp to avoid later makeinfo call diff --git a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/files/autoconf-2.73-darwin.patch b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/files/autoconf-2.73-darwin.patch new file mode 100644 index 00000000000..94007e9ad45 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/files/autoconf-2.73-darwin.patch @@ -0,0 +1,13 @@ +We rename libtoolize -> glibtoolize on macOS to avoid conflicting with +the system tool. +--- a/bin/autoreconf.in ++++ b/bin/autoreconf.in +@@ -130,7 +130,7 @@ my %C = ( + autom4te => $ENV{'AUTOM4TE'} || '@bindir@/@autom4te-name@', + automake => $ENV{'AUTOMAKE'} || 'automake', + aclocal => $ENV{'ACLOCAL'} || 'aclocal', +- libtoolize => $ENV{'LIBTOOLIZE'} || 'libtoolize', ++ libtoolize => $ENV{'LIBTOOLIZE'} || 'glibtoolize', + intltoolize => $ENV{'INTLTOOLIZE'} || 'intltoolize', + gtkdocize => $ENV{'GTKDOCIZE'} || 'gtkdocize', + autopoint => $ENV{'AUTOPOINT'} || 'autopoint', diff --git a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/files/autoconf-2.73-maintainer-mode-autoheader.patch b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/files/autoconf-2.73-maintainer-mode-autoheader.patch new file mode 100644 index 00000000000..4fce66d9490 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/files/autoconf-2.73-maintainer-mode-autoheader.patch @@ -0,0 +1,12 @@ +https://savannah.gnu.org/support/index.php?111396 +--- a/bin/autoheader.in ++++ b/bin/autoheader.in +@@ -232,7 +232,7 @@ if (open (my $fh, "<", $config_h_in)) + # If the file is empty, $firstline will be undef. We _do_ want to + # go ahead and update it in that case. + if (defined $firstline +- && $firstline !~ /^\/\* .*\. Generated from .* by autoheader\. \*\// ++ && $firstline !~ /^\/\* .*\. Generated( automatically)? from .* by autoheader\. \*\// + && !$replace_handwritten) + { + msg 'override', "${config_h_in} was not generated by autoheader"; 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 74a1e55ea06..9ee401c8d60 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,13 +1,19 @@ DIST cmake-4.0.0_rc1-docs.tar.xz 577536 BLAKE2B 74a742ffef8e1af1652746e1c177d4198155145a039635e6a0ea40af463f3a2d45b6c6ce7d3a9b1fee24f0c1cfd1c3aa95c27669ca3c6281d54e701fc0ece202 SHA512 74c20067d3b82493024b2f2711b55b93998ce3b5f35ab5a154f33a8268a35a29d01127c55ce6b85b80ff252d15284ed1065e1338422124f6722a4190a984637c -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 DIST cmake-4.1.4-SHA-256.txt 2015 BLAKE2B 6e8b2f7c769fbf7b5dbdec081edd8c9169f80fb9b16119b5ace3e5596a14394abe8287f45c537dc2ded972e521745c909d9b33e242c1d8fe34abda9791cec71d SHA512 c806bc17dbad51b5bd90354bf3df31232bd39f7a8dee30205807cc7e2ba63eaddc1138f8512c860e86d21cc7075f58cda85f4f9f3f9001810a243e6ebef0261c DIST cmake-4.1.4-SHA-256.txt.asc 833 BLAKE2B e2685feadb1565a5d14eea89eb5e505dd3988a10f3539d40d44411f425db7baba7fea7cabe894a706e86f58ff8c7332ed26a56711113d099ab27f874177036c3 SHA512 b316dec0ed3f5df1d03b8fdd17afa997df5da723072c4958fe728d4abf5156b36c9e79e0344735a20d31d4a2366aa22b4ae23f334b831ce67ed6bf23183631da DIST cmake-4.1.4.tar.gz 12051840 BLAKE2B 0d43042b70b1fe27bb1e1eeb2bda1b24923887cb0fdaca2fff11771c980b7a9b24637559315f58c53066a53aa40dd3e2127de8cf4fd7eb0d25844e27a7a08f17 SHA512 c8a5eb269f98f70db1f52675822e1b371864fa86037ed4f1714f77abaf5c7b3fae307bfc4392add29c2c600b502d8876d7d1bb260e331ee6607cb02356a7e8a8 -DIST cmake-4.2.1-SHA-256.txt 2015 BLAKE2B 6896490b0da207448bdcda863296b47fa6be38069743f00e77065427cd68bd7fb7b8893ce4e6dc6213f9d7fe34bc764bd5e48cf32fccbaf24350870188a7dc33 SHA512 1adeac1b105bd16b9f593e87ba3d8ffbf285ec78a36f565549b97c2e796a4bbb594f00184809e0118ad71137b33c9d3298a673d296cf42b7a37ab32b9c05b882 -DIST cmake-4.2.1-SHA-256.txt.asc 833 BLAKE2B 8dbb976c39be74f680070cb9b23689d334daf7518317548fe3ab8eace7007329161b6307aca441238222a8f1cd5674f01e117bab143364eb87876a50e5ca6b1a SHA512 4a07deb385ab72aa20b1fe7d5defa790101e0e6454ef66bdf125feab5ab363e58e856884ebcdbe75677978a616dc99eb181dfdeb9bcc4a67fd8a28ce48019410 -DIST cmake-4.2.1.tar.gz 12341564 BLAKE2B ba5f7acf8b0c8acadab93b159171b12ee866215a2f16f01d424c05520b97dcc7ad19acb19ed047d38cd4e5766e4676b43df0d092ae18db6be7218df58c4933cc SHA512 75617692e975f5974bc015d62983e48d0dedaed2daa1e25d93807d25c6ed836e73e37de064e1e924078162fc20f38f9210ac1c4d699c9bd795050119abc848ce -DIST cmake-4.2.3-SHA-256.txt 2015 BLAKE2B e04b03570ca74d7c3a2f2137afef4b4d26e83c43b434490171423cf0cb44719067f92a05d602a3d9f72ad483afee57c5155e416309b37afe5a19ce37265382e6 SHA512 d548f8154d5f346029bbc2222260b97e92e3064d91fcb5bf13716a5d1444c6bacefebabc9dca0ffb7db8730272afdf8bf786700af8e3e2add1479b875fe3c348 -DIST cmake-4.2.3-SHA-256.txt.asc 833 BLAKE2B d9f53c59b44adff483ef3f552c8df4862dff07872dca73414a8233f5ddbb2de80d176ef1e8d89c9bd729f6e0cd4cda87bd94ff5bd7c13dcec4da8db7a85ca684 SHA512 e4b4a0f2db36814b138127ccd5677c2c6171a8e4e5bf5c03c3d0d7113fe2e61be767521a9999af5126c0475105b6a8105320f4d41e3490bfb9b15f738c0e7c1d -DIST cmake-4.2.3.tar.gz 12345147 BLAKE2B b2bbd1fddc0516808fc340c978dd95bfa64ff9ae80f4fab44d1a3c0cdeb9c8e1e0098545050d085b991e0e13dae1705f1973dfcb244215610e6d5d8684e2ed94 SHA512 56cac755277bc3fcf190d6c947c99a718ee555b0524132427989a5d2d51d030c76c07f198ddeea0d9c7e57b24488d352e9b29bb106c1ad15397b92fb4487a88f +DIST cmake-4.1.5-SHA-256.txt 2015 BLAKE2B 1859a418346eb7409e661e4addb72c62adca9c781fb0568083437b8861031b6b732c6a84ceb509f1b894dfe8c024eb0a51fba41f201b2d301c306b13717b43ce SHA512 07b34031e95bd74275ce73f86b8731432885065f9869d1b12424318bdc557ad90871bfaa73087cd4a2880e84c52977c16f0e52887b551437c8041a2a01ba78c7 +DIST cmake-4.1.5-SHA-256.txt.asc 833 BLAKE2B 789375e7d65bdabd4fde8fae0b06bef4bed99689565deb834b447daf6aff9b7836a04db198ebd0c6d88aaa51e224f01c6a78757d42e3a06cd15dfe9d31297232 SHA512 f3e989f0ac81b08297665620efb926774d387bb9ea607a61ec7e1a040332ef0e9174eeab8f28d176e34ef278e0f627a27d9d70d4935a765d3f6f535ab242a2a4 +DIST cmake-4.1.5.tar.gz 12048837 BLAKE2B c62c615a480edfd60c694003e26f70a6d2365d0c7a934eabf3e29c44decab0ce91ee35a1c8a900ee57de86e4222a2fd7575561ce2029e310c145607fd8ce46a8 SHA512 25c585a07b20dab2cb483616b6de03f6338add3a320f28321c46efd4b9b2d41fa3fc3e71991ea75fb20a64dddd2b858f9828a64d860f4b9095288dedc6d429b2 +DIST cmake-4.2.4-SHA-256.txt 2015 BLAKE2B 2f53c1aaedbb9e7421312ecf843f35f7538ad72e6bf4dd41271d8cef6eeab0375d45969c09ff255e0587562276711d77f334e670441a08892ad6bf3ce8e0ed16 SHA512 778023fbd242da7de84d8c3a312466022160cc58206fe9945e97b570fc8011db188c2996d6a47f6b6092345b123197c9d083af56b7002acffb4465c08aab601f +DIST cmake-4.2.4-SHA-256.txt.asc 833 BLAKE2B 63ad10bdfba3408d2c23c33130519b6404c2e796d0d84cdb46b0bf18567954ef35768ba69343adabfea701fdad73db308ae751c4bffe9679d834f78b1eb0ab5a SHA512 11819ed1c70938f8980597d2a62c89f393efd2e6ca4e2e4b472fc7e78ad89a7f59c3a92cec03ee2baeb551fcbe6a720edeab7790a300e6339b71a9e5efb607d1 +DIST cmake-4.2.4.tar.gz 12348311 BLAKE2B 367f75fb2493caf2c137ffe04857843e4a94ea01b7ac1c3128e18ab550a97db83eda49f2d8e1600dbcf81a528330bb7517ab3a82ab32cbc0936054cda8b07c09 SHA512 255838f89ef5dd01936bbc13252d099e41d99a681e4279d305e3a3b0ddd85597e7e0334b87052d4766a77e7d5ef189dd77259a194e27d1a6f19a0d0a0e8e7d76 +DIST cmake-4.3.1-SHA-256.txt 2015 BLAKE2B f642be0fe25f036e3200587d38b013258b41d3abd9794376611b1bc9b176485bde415e6587f3776f028b9e7f82b6901a6d01cd31aab8a83887edf08555d79161 SHA512 dce1e1a3701962f0e3b7e69ef004d52093a070affba3f4d8dea428e0118562c7c27cd90883fbff0b039ff7fb2e3dbb1986e4827ecad4f10b0685728acd3bbaca +DIST cmake-4.3.1-SHA-256.txt.asc 833 BLAKE2B 2b8d29633dfb27affcad468258a1d4b529380c4e3a94e5fb25034f3f77bc6f77ade58314e3f5a81e605bbe15077d549f692658605d2fa8a76c0d77d47c2b4305 SHA512 cf8a9ac2e0c9f37d07fc69556933eae56dd8fdc03838060908f1fa64ce4e9d9cede8f46c4a8b73829c3384ad50db804daff3ac6d6af8f5d9c17fa03c961211b4 +DIST cmake-4.3.1.tar.gz 12966559 BLAKE2B 5685a52e9dacc69e267c0616564c8198424ce2a471822d05c63834fed8fe1931e0c9123a4f8f7ab86bb9954d29b2cff0d927d66d1748b8f3fd92a1d0fb8fc1c5 SHA512 010744f82b5448e589a8cbcaa45aea43280e529cafc1897ff311f5c21598c71ee4e822ef7fd679cdf0e49c4d22941f83a3fe21ffde08b2e39bbb92fb94d83ba3 +DIST cmake-4.3.2-SHA-256.txt 2015 BLAKE2B d8dec4928b25922b7d94bf577cefe9f2998f802fc36285df2589aa55de56d035d2c9cc62bb91e556886c92d80ee74fa09e80379702d921b04b70f5979d87b21d SHA512 04ccb8f71544d0923ebe636acd777621dbd7a899bcf782974139131e68e3ad871fba77096917ba3dd1c34b3220c7c63f703c83f9ab1ead821cf5c09fef4ae5cc +DIST cmake-4.3.2-SHA-256.txt.asc 833 BLAKE2B 5957e0be571c42ebfee57dcb933dfeea78e8103fa364f18dcd65c8ae182538e7054c9fed7446684888f9ede2bcaa8c617c9003e8d1775194f9dc001b8cb82542 SHA512 3e86faa633989affa1e301e045092350750be2943e166c4f29778aee162bc80c9f716da5e806133f4a7fb1cf1d4bcca0d1955764933a473b30e5888be781f17e +DIST cmake-4.3.2.tar.gz 12968608 BLAKE2B 58e48f7dd618b8732da960fdb3373618dded50d6d57af30f590c2ee77f657744e998b526b3e8f08463e0d9ff7514d14e3e96ad42284fcea0971ed1b52a0a16cf SHA512 ee78390be3907f4ce398e41ece9067952a25c2cba2edd9cb17f12827466d5bf2476ad8a2bba5df95b3d7950bb5122cb1754d005b6544e43901949869adf8c74a +DIST cmake-4.3.3-SHA-256.txt 2015 BLAKE2B a73f3dfd4a95a353e95cf75c8fe68343020b3936f78da4c1579d49f4bf51360d952193aaf744accd820f9da22e180cfd1f13b029bf13deda293e74306869377f SHA512 23c9851300aa16881cd32d22df69db4189ac2288cc3cdb6cc9534c7de5f2abc0d1d5e53f2b1bdbfce81c4901cb7ea5857019598edd53f95ad0f6554028c65720 +DIST cmake-4.3.3-SHA-256.txt.asc 833 BLAKE2B ff69825df8b777894ef200a418f2b6f1d1cf534d040c54f5b2399aa9a63069d70bb72deeb118245484c00da9a471c8c93a2ea7da26cfe5a3aee3ce23609473e1 SHA512 f1a018f80aa42c62836bd3aeb1a3866d11815041b26adcc3e0f2f0bba482f7564b426a805c3ccf02ff3ad375382ad1a47f0df327c736d2c0428c1573eede33a4 +DIST cmake-4.3.3.tar.gz 12971567 BLAKE2B 30de7da05576d0cc44d67320a2d6fa250c44f5262f73a9e7c3a568cb7f9bda9aee578486911e6dfe2881c55ac618fb7c4443755aec4a105ac54ac304d005a4af SHA512 7f6af59cc53ea412311d54aeb52ad6981c46c53bac1ce0d3bf5944e85952534888267ea952596ad612e2b582f6897a818566963c85b88099f698df0803fe29d9 diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.2-r1.ebuild deleted file mode 100644 index aadcc889f5c..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.2-r1.ebuild +++ /dev/null @@ -1,324 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs -# Set to 1 if prebuilt, 0 if not -# (the construct below is to allow overriding from env for script) -: ${CMAKE_DOCS_PREBUILT:=1} - -CMAKE_DOCS_PREBUILT_DEV=sam -CMAKE_DOCS_VERSION=4.0.0_rc1 -#CMAKE_DOCS_VERSION=${PV} -#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 -# Default to generating docs (inc. man pages) if no prebuilt; overridden later -# See bug #784815 -CMAKE_DOCS_USEFLAG="+doc" - -CMAKE_QA_COMPAT_SKIP=1 # bug #964514; cmake itself is the last pkg we worry about - -# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja -# ... but seems fine as of 3.22.3? -# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759. -CMAKE_MAKEFILE_GENERATOR="emake" -CMAKE_REMOVE_MODULES_LIST=() -inherit bash-completion-r1 cmake flag-o-matic multiprocessing \ - toolchain-funcs xdg-utils - -MY_P="${P/_/-}" - -DESCRIPTION="Cross platform Make" -HOMEPAGE="https://cmake.org/" -if [[ ${PV} == *9999* ]] ; then - CMAKE_DOCS_PREBUILT=0 - - EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git" - inherit git-r3 -else - SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz" - - if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then - SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )" - fi - - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc - inherit verify-sig - - SRC_URI+=" verify-sig? ( - https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt - https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc - https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt - https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc - )" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" - fi - - BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )" -fi - -[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc" - -S="${WORKDIR}/${MY_P}" - -LICENSE="BSD" -SLOT="0" -IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" -RESTRICT="!test? ( test )" - -# >= 1.51.0-r1 for ppc32 workaround (bug #941738) -RDEPEND=" - >=app-arch/libarchive-3.3.3:= - app-crypt/rhash:0= - >=dev-libs/expat-2.0.1 - >=dev-libs/jsoncpp-1.9.2-r2:0= - >=dev-libs/libuv-1.51.0-r1:= - >=net-misc/curl-7.21.5[ssl] - virtual/zlib:= - virtual/pkgconfig - dap? ( dev-cpp/cppdap ) - gui? ( dev-qt/qtbase:6[gui,widgets] ) - ncurses? ( sys-libs/ncurses:= ) -" -DEPEND="${RDEPEND}" -BDEPEND+=" - doc? ( - dev-python/requests - dev-python/sphinx - ) - test? ( app-arch/libarchive[zstd] ) -" - -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) -) - -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.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.4.ebuild index ed81b01d705..5f815951e2e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.4.ebuild @@ -53,7 +53,7 @@ else )" if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" fi BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )" @@ -122,7 +122,7 @@ cmake_src_bootstrap() { # bootstrap script isn't exactly /bin/sh compatible tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ --prefix="${T}/cmakestrap/" \ - --parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \ + --parallel=$(get_makeopts_jobs "$(get_nproc)") \ || die "Bootstrap failed" } @@ -265,21 +265,31 @@ src_test() { 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 CMAKE_SKIP_TESTS=( + # BootstrapTest: we actually bootstrap it every time so why test it? + "BootstrapTest" + # BundleUtilities: bundle creation broken + "BundleUtilities" + # CMakeOnly.AllFindModules: pthread issues + "CMakeOnly.AllFindModules" + # TODO + "CompileOptions" + # CTest.updatecvs: which fails to commit as root + "CTest.UpdateCVS" + # Fortran: requires fortran + "Fortran" + # RunCMake.CompilerLauncher: also requires fortran + "RunCMake.CompilerLauncher" + # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because + # debugedit binary is not in the expected location + # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because + # it can't find a deb package that owns libc + # RunCMake.CPack_TGZ: requires 64-bit time_t (bug #967480) + "RunCMake.CPack_(DEB|RPM|TGZ)" + # TestUpload, which requires network access + "TestUpload" + # RunCMake.CMP0125, known failure reported upstream (bug #829414) + "RunCMake.CMP0125" ) local -x QT_QPA_PLATFORM=offscreen diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.5.ebuild new file mode 100644 index 00000000000..a3917f21387 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.5.ebuild @@ -0,0 +1,334 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs +# Set to 1 if prebuilt, 0 if not +# (the construct below is to allow overriding from env for script) +: ${CMAKE_DOCS_PREBUILT:=1} + +CMAKE_DOCS_PREBUILT_DEV=sam +CMAKE_DOCS_VERSION=4.0.0_rc1 +#CMAKE_DOCS_VERSION=${PV} +#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 +# Default to generating docs (inc. man pages) if no prebuilt; overridden later +# See bug #784815 +CMAKE_DOCS_USEFLAG="+doc" + +CMAKE_QA_COMPAT_SKIP=1 # bug #964514; cmake itself is the last pkg we worry about + +# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja +# ... but seems fine as of 3.22.3? +# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759. +CMAKE_MAKEFILE_GENERATOR="emake" +CMAKE_REMOVE_MODULES_LIST=() +inherit bash-completion-r1 cmake flag-o-matic multiprocessing \ + toolchain-funcs xdg-utils + +MY_P="${P/_/-}" + +DESCRIPTION="Cross platform Make" +HOMEPAGE="https://cmake.org/" +if [[ ${PV} == *9999* ]] ; then + CMAKE_DOCS_PREBUILT=0 + + EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git" + inherit git-r3 +else + SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz" + + if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then + SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )" + fi + + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc + inherit verify-sig + + SRC_URI+=" verify-sig? ( + https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt + https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc + https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt + https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc + )" + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + fi + + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )" +fi + +[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc" + +S="${WORKDIR}/${MY_P}" + +LICENSE="BSD" +SLOT="0" +IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" +RESTRICT="!test? ( test )" + +# >= 1.51.0-r1 for ppc32 workaround (bug #941738) +RDEPEND=" + >=app-arch/libarchive-3.3.3:= + app-crypt/rhash:0= + >=dev-libs/expat-2.0.1 + >=dev-libs/jsoncpp-1.9.2-r2:0= + >=dev-libs/libuv-1.51.0-r1:= + >=net-misc/curl-7.21.5[ssl] + virtual/zlib:= + virtual/pkgconfig + dap? ( dev-cpp/cppdap ) + gui? ( dev-qt/qtbase:6[gui,widgets] ) + ncurses? ( sys-libs/ncurses:= ) +" +DEPEND="${RDEPEND}" +BDEPEND+=" + doc? ( + dev-python/requests + dev-python/sphinx + ) + test? ( app-arch/libarchive[zstd] ) +" + +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) +) + +cmake_src_bootstrap() { + # disable running of cmake in bootstrap command + sed -i \ + -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \ + bootstrap || die "sed failed" + + # execinfo.h on Solaris isn't quite what it is on Darwin + if [[ ${CHOST} == *-solaris* ]] ; then + sed -i -e 's/execinfo\.h/blablabla.h/' \ + Source/kwsys/CMakeLists.txt || die + fi + + # bootstrap script isn't exactly /bin/sh compatible + tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ + --prefix="${T}/cmakestrap/" \ + --parallel=$(get_makeopts_jobs "$(get_nproc)") \ + || die "Bootstrap failed" +} + +pkg_pretend() { + if [[ -z ${EPREFIX} ]] ; then + local file + local errant_files=() + + # See bug #599684 and bug #753581 (at least) + for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do + if [[ -e ${file} ]]; then + errant_files+=( "${file}" ) + fi + done + + # If errant files exist + if [[ ${#errant_files[@]} -gt 0 ]]; then + eerror "Errant files found!" + eerror "The presence of these files is known to confuse CMake's" + eerror "library path logic. Please (re)move these files:" + + for file in "${errant_files[@]}"; do + eerror " mv ${file} ${file}.bak" + done + + die "Stray files found in /etc/, see above message" + fi + fi +} + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then + default + else + cd "${DISTDIR}" || die + + # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature + verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc} + verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz + + cd "${WORKDIR}" || die + + default + fi +} + +src_prepare() { + cmake_src_prepare + + if [[ ${CHOST} == *-darwin* ]] ; then + # Disable Xcode hooks, bug #652134 + sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \ + Source/CMakeLists.txt || die + sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \ + -e '/cmGlobalXCodeGenerator.h/d' \ + Source/cmake.cxx || die + # Disable system integration, bug #933744 + sed -i -e 's/__APPLE__/__DISABLED__/' \ + Source/cmFindProgramCommand.cxx \ + Source/CPack/cmCPackGeneratorFactory.cxx || die + sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \ + Source/cmMachO.cxx || die + sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \ + Source/CMakeLists.txt || die + + # Disable isysroot usage with GCC, we've properly instructed + # where things are via GCC configuration and ldwrapper + sed -i -e '/cmake_gnu_set_sysroot_flag/d' \ + Modules/Platform/Apple-GNU-*.cmake || die + # Disable isysroot usage with clang as well + sed -i -e '/_SYSROOT_FLAG/d' \ + Modules/Platform/Apple-Clang.cmake || die + # Don't set a POSIX standard, system headers don't like that, #757426 + sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ + Source/cmLoadCommandCommand.cxx \ + Source/cmStandardLexer.h \ + Source/cmSystemTools.cxx \ + Source/cmTimestamp.cxx + sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ + Source/cmStandardLexer.h + fi + + # Add gcc libs to the default link paths + sed -i \ + -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \ + -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \ + -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \ + Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed" + + ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must* + ## handle them as part of bootstrapping, sadly. + + # Fix linking on Solaris + [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl + + # ODR warnings, bug #858335 + # https://gitlab.kitware.com/cmake/cmake/-/issues/20740 + filter-lto + + # 4.0.0_rc1 is missing this, fails to configure + # https://gitlab.kitware.com/cmake/cmake/-/issues/26712 + touch .clang-tidy Utilities/.clang-tidy || die + + if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then + CMAKE_BINARY="${S}/Bootstrap.cmk/cmake" + cmake_src_bootstrap + fi +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_USE_SYSTEM_LIBRARIES=ON + -DCMake_ENABLE_DEBUGGER=$(usex dap) + -DCMAKE_DOC_DIR=/share/doc/${PF} + -DCMAKE_MAN_DIR=/share/man + -DCMAKE_DATA_DIR=/share/${PN} + -DSPHINX_MAN=$(usex doc) + -DSPHINX_HTML=$(usex doc) + -DBUILD_CursesDialog="$(usex ncurses)" + -DBUILD_TESTING=$(usex test) + -DBUILD_QtDialog=$(usex gui) + ) + + use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 ) + + cmake_src_configure +} + +src_test() { + # Fix OutDir and SelectLibraryConfigurations tests + # these are altered thanks to our eclass + sed -i -e 's:^#_cmake_modify_IGNORE ::g' \ + "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \ + || die + + unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS + + pushd "${BUILD_DIR}" > /dev/null || die + + # Excluded tests: + local CMAKE_SKIP_TESTS=( + # BootstrapTest: we actually bootstrap it every time so why test it? + "BootstrapTest" + # BundleUtilities: bundle creation broken + "BundleUtilities" + # CMakeOnly.AllFindModules: pthread issues + "CMakeOnly.AllFindModules" + # TODO + "CompileOptions" + # CTest.updatecvs: which fails to commit as root + "CTest.UpdateCVS" + # Fortran: requires fortran + "Fortran" + # RunCMake.CompilerLauncher: also requires fortran + "RunCMake.CompilerLauncher" + # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because + # debugedit binary is not in the expected location + # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because + # it can't find a deb package that owns libc + # RunCMake.CPack_TGZ: requires 64-bit time_t (bug #967480) + "RunCMake.CPack_(DEB|RPM|TGZ)" + # TestUpload, which requires network access + "TestUpload" + # RunCMake.CMP0125, known failure reported upstream (bug #829414) + "RunCMake.CMP0125" + ) + + local -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.2.1-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.2.1-r1.ebuild deleted file mode 100644 index f9c756e86b3..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.2.1-r1.ebuild +++ /dev/null @@ -1,323 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs -# Set to 1 if prebuilt, 0 if not -# (the construct below is to allow overriding from env for script) -: ${CMAKE_DOCS_PREBUILT:=1} - -CMAKE_DOCS_PREBUILT_DEV=sam -CMAKE_DOCS_VERSION=4.0.0_rc1 -#CMAKE_DOCS_VERSION=${PV} -#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 -# Default to generating docs (inc. man pages) if no prebuilt; overridden later -# See bug #784815 -CMAKE_DOCS_USEFLAG="+doc" - -CMAKE_QA_COMPAT_SKIP=1 # bug #964514; cmake itself is the last pkg we worry about - -# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja -# ... but seems fine as of 3.22.3? -# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759. -CMAKE_MAKEFILE_GENERATOR="emake" -CMAKE_REMOVE_MODULES_LIST=() -inherit bash-completion-r1 cmake flag-o-matic multiprocessing \ - toolchain-funcs xdg-utils - -MY_P="${P/_/-}" - -DESCRIPTION="Cross platform Make" -HOMEPAGE="https://cmake.org/" -if [[ ${PV} == *9999* ]] ; then - CMAKE_DOCS_PREBUILT=0 - - EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git" - inherit git-r3 -else - SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz" - - if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then - SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )" - fi - - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc - inherit verify-sig - - SRC_URI+=" verify-sig? ( - https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt - https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc - https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt - https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc - )" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" - fi - - BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )" -fi - -[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc" - -S="${WORKDIR}/${MY_P}" - -LICENSE="BSD" -SLOT="0" -IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" -RESTRICT="!test? ( test )" - -# >= 1.51.0-r1 for ppc32 workaround (bug #941738) -RDEPEND=" - >=app-arch/libarchive-3.3.3:= - app-crypt/rhash:0= - >=dev-libs/expat-2.0.1 - >=dev-libs/jsoncpp-1.9.2-r2:0= - >=dev-libs/libuv-1.51.0-r1:= - >=net-misc/curl-7.21.5[ssl] - virtual/zlib:= - virtual/pkgconfig - dap? ( dev-cpp/cppdap ) - gui? ( dev-qt/qtbase:6[gui,widgets] ) - ncurses? ( sys-libs/ncurses:= ) -" -DEPEND="${RDEPEND}" -BDEPEND+=" - doc? ( - dev-python/requests - dev-python/sphinx - ) - test? ( app-arch/libarchive[zstd] ) -" - -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-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch - # Cuda - "${FILESDIR}/${PN}-3.30.3-cudahostld.patch" - - # Upstream fixes (can usually be removed with a version bump) -) - -cmake_src_bootstrap() { - # disable running of cmake in bootstrap command - sed -i \ - -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \ - bootstrap || die "sed failed" - - # execinfo.h on Solaris isn't quite what it is on Darwin - if [[ ${CHOST} == *-solaris* ]] ; then - sed -i -e 's/execinfo\.h/blablabla.h/' \ - Source/kwsys/CMakeLists.txt || die - fi - - # bootstrap script isn't exactly /bin/sh compatible - tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ - --prefix="${T}/cmakestrap/" \ - --parallel=$(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.2.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.2.3.ebuild deleted file mode 100644 index f9c756e86b3..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.2.3.ebuild +++ /dev/null @@ -1,323 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs -# Set to 1 if prebuilt, 0 if not -# (the construct below is to allow overriding from env for script) -: ${CMAKE_DOCS_PREBUILT:=1} - -CMAKE_DOCS_PREBUILT_DEV=sam -CMAKE_DOCS_VERSION=4.0.0_rc1 -#CMAKE_DOCS_VERSION=${PV} -#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 -# Default to generating docs (inc. man pages) if no prebuilt; overridden later -# See bug #784815 -CMAKE_DOCS_USEFLAG="+doc" - -CMAKE_QA_COMPAT_SKIP=1 # bug #964514; cmake itself is the last pkg we worry about - -# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja -# ... but seems fine as of 3.22.3? -# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759. -CMAKE_MAKEFILE_GENERATOR="emake" -CMAKE_REMOVE_MODULES_LIST=() -inherit bash-completion-r1 cmake flag-o-matic multiprocessing \ - toolchain-funcs xdg-utils - -MY_P="${P/_/-}" - -DESCRIPTION="Cross platform Make" -HOMEPAGE="https://cmake.org/" -if [[ ${PV} == *9999* ]] ; then - CMAKE_DOCS_PREBUILT=0 - - EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git" - inherit git-r3 -else - SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz" - - if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then - SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )" - fi - - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc - inherit verify-sig - - SRC_URI+=" verify-sig? ( - https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt - https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc - https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt - https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc - )" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" - fi - - BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )" -fi - -[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc" - -S="${WORKDIR}/${MY_P}" - -LICENSE="BSD" -SLOT="0" -IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" -RESTRICT="!test? ( test )" - -# >= 1.51.0-r1 for ppc32 workaround (bug #941738) -RDEPEND=" - >=app-arch/libarchive-3.3.3:= - app-crypt/rhash:0= - >=dev-libs/expat-2.0.1 - >=dev-libs/jsoncpp-1.9.2-r2:0= - >=dev-libs/libuv-1.51.0-r1:= - >=net-misc/curl-7.21.5[ssl] - virtual/zlib:= - virtual/pkgconfig - dap? ( dev-cpp/cppdap ) - gui? ( dev-qt/qtbase:6[gui,widgets] ) - ncurses? ( sys-libs/ncurses:= ) -" -DEPEND="${RDEPEND}" -BDEPEND+=" - doc? ( - dev-python/requests - dev-python/sphinx - ) - test? ( app-arch/libarchive[zstd] ) -" - -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-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch - # Cuda - "${FILESDIR}/${PN}-3.30.3-cudahostld.patch" - - # Upstream fixes (can usually be removed with a version bump) -) - -cmake_src_bootstrap() { - # disable running of cmake in bootstrap command - sed -i \ - -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \ - bootstrap || die "sed failed" - - # execinfo.h on Solaris isn't quite what it is on Darwin - if [[ ${CHOST} == *-solaris* ]] ; then - sed -i -e 's/execinfo\.h/blablabla.h/' \ - Source/kwsys/CMakeLists.txt || die - fi - - # bootstrap script isn't exactly /bin/sh compatible - tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ - --prefix="${T}/cmakestrap/" \ - --parallel=$(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.2.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.2.4.ebuild new file mode 100644 index 00000000000..0bf58953c50 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.2.4.ebuild @@ -0,0 +1,333 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs +# Set to 1 if prebuilt, 0 if not +# (the construct below is to allow overriding from env for script) +: ${CMAKE_DOCS_PREBUILT:=1} + +CMAKE_DOCS_PREBUILT_DEV=sam +CMAKE_DOCS_VERSION=4.0.0_rc1 +#CMAKE_DOCS_VERSION=${PV} +#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 +# Default to generating docs (inc. man pages) if no prebuilt; overridden later +# See bug #784815 +CMAKE_DOCS_USEFLAG="+doc" + +CMAKE_QA_COMPAT_SKIP=1 # bug #964514; cmake itself is the last pkg we worry about + +# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja +# ... but seems fine as of 3.22.3? +# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759. +CMAKE_MAKEFILE_GENERATOR="emake" +CMAKE_REMOVE_MODULES_LIST=() +inherit bash-completion-r1 cmake flag-o-matic multiprocessing \ + toolchain-funcs xdg-utils + +MY_P="${P/_/-}" + +DESCRIPTION="Cross platform Make" +HOMEPAGE="https://cmake.org/" +if [[ ${PV} == *9999* ]] ; then + CMAKE_DOCS_PREBUILT=0 + + EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git" + inherit git-r3 +else + SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz" + + if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then + SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )" + fi + + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc + inherit verify-sig + + SRC_URI+=" verify-sig? ( + https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt + https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc + https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt + https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc + )" + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + fi + + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )" +fi + +[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc" + +S="${WORKDIR}/${MY_P}" + +LICENSE="BSD" +SLOT="0" +IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" +RESTRICT="!test? ( test )" + +# >= 1.51.0-r1 for ppc32 workaround (bug #941738) +RDEPEND=" + >=app-arch/libarchive-3.3.3:= + app-crypt/rhash:0= + >=dev-libs/expat-2.0.1 + >=dev-libs/jsoncpp-1.9.2-r2:0= + >=dev-libs/libuv-1.51.0-r1:= + >=net-misc/curl-7.21.5[ssl] + virtual/zlib:= + virtual/pkgconfig + dap? ( dev-cpp/cppdap ) + gui? ( dev-qt/qtbase:6[gui,widgets] ) + ncurses? ( sys-libs/ncurses:= ) +" +DEPEND="${RDEPEND}" +BDEPEND+=" + doc? ( + dev-python/requests + dev-python/sphinx + ) + test? ( app-arch/libarchive[zstd] ) +" + +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-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch + "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch + # Cuda + "${FILESDIR}/${PN}-3.30.3-cudahostld.patch" + + # Upstream fixes (can usually be removed with a version bump) +) + +cmake_src_bootstrap() { + # disable running of cmake in bootstrap command + sed -i \ + -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \ + bootstrap || die "sed failed" + + # execinfo.h on Solaris isn't quite what it is on Darwin + if [[ ${CHOST} == *-solaris* ]] ; then + sed -i -e 's/execinfo\.h/blablabla.h/' \ + Source/kwsys/CMakeLists.txt || die + fi + + # bootstrap script isn't exactly /bin/sh compatible + tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ + --prefix="${T}/cmakestrap/" \ + --parallel=$(get_makeopts_jobs "$(get_nproc)") \ + || die "Bootstrap failed" +} + +pkg_pretend() { + if [[ -z ${EPREFIX} ]] ; then + local file + local errant_files=() + + # See bug #599684 and bug #753581 (at least) + for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do + if [[ -e ${file} ]]; then + errant_files+=( "${file}" ) + fi + done + + # If errant files exist + if [[ ${#errant_files[@]} -gt 0 ]]; then + eerror "Errant files found!" + eerror "The presence of these files is known to confuse CMake's" + eerror "library path logic. Please (re)move these files:" + + for file in "${errant_files[@]}"; do + eerror " mv ${file} ${file}.bak" + done + + die "Stray files found in /etc/, see above message" + fi + fi +} + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then + default + else + cd "${DISTDIR}" || die + + # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature + verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc} + verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz + + cd "${WORKDIR}" || die + + default + fi +} + +src_prepare() { + cmake_src_prepare + + if [[ ${CHOST} == *-darwin* ]] ; then + # Disable Xcode hooks, bug #652134 + sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \ + Source/CMakeLists.txt || die + sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \ + -e '/cmGlobalXCodeGenerator.h/d' \ + Source/cmake.cxx || die + # Disable system integration, bug #933744 + sed -i -e 's/__APPLE__/__DISABLED__/' \ + Source/cmFindProgramCommand.cxx \ + Source/CPack/cmCPackGeneratorFactory.cxx || die + sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \ + Source/cmMachO.cxx || die + sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \ + Source/CMakeLists.txt || die + + # Disable isysroot usage with GCC, we've properly instructed + # where things are via GCC configuration and ldwrapper + sed -i -e '/cmake_gnu_set_sysroot_flag/d' \ + Modules/Platform/Apple-GNU-*.cmake || die + # Disable isysroot usage with clang as well + sed -i -e '/_SYSROOT_FLAG/d' \ + Modules/Platform/Apple-Clang.cmake || die + # Don't set a POSIX standard, system headers don't like that, #757426 + sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ + Source/cmLoadCommandCommand.cxx \ + Source/cmStandardLexer.h \ + Source/cmSystemTools.cxx \ + Source/cmTimestamp.cxx + sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ + Source/cmStandardLexer.h + fi + + # Add gcc libs to the default link paths + sed -i \ + -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \ + -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \ + -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \ + Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed" + + ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must* + ## handle them as part of bootstrapping, sadly. + + # Fix linking on Solaris + [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl + + # ODR warnings, bug #858335 + # https://gitlab.kitware.com/cmake/cmake/-/issues/20740 + filter-lto + + # 4.0.0_rc1 is missing this, fails to configure + # https://gitlab.kitware.com/cmake/cmake/-/issues/26712 + touch .clang-tidy Utilities/.clang-tidy || die + + if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then + CMAKE_BINARY="${S}/Bootstrap.cmk/cmake" + cmake_src_bootstrap + fi +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_USE_SYSTEM_LIBRARIES=ON + -DCMake_ENABLE_DEBUGGER=$(usex dap) + -DCMAKE_DOC_DIR=/share/doc/${PF} + -DCMAKE_MAN_DIR=/share/man + -DCMAKE_DATA_DIR=/share/${PN} + -DSPHINX_MAN=$(usex doc) + -DSPHINX_HTML=$(usex doc) + -DBUILD_CursesDialog="$(usex ncurses)" + -DBUILD_TESTING=$(usex test) + -DBUILD_QtDialog=$(usex gui) + ) + + use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 ) + + cmake_src_configure +} + +src_test() { + # Fix OutDir and SelectLibraryConfigurations tests + # these are altered thanks to our eclass + sed -i -e 's:^#_cmake_modify_IGNORE ::g' \ + "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \ + || die + + unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS + + pushd "${BUILD_DIR}" > /dev/null || die + + # Excluded tests: + local CMAKE_SKIP_TESTS=( + # BootstrapTest: we actually bootstrap it every time so why test it? + "BootstrapTest" + # BundleUtilities: bundle creation broken + "BundleUtilities" + # CMakeOnly.AllFindModules: pthread issues + "CMakeOnly.AllFindModules" + # TODO + "CompileOptions" + # CTest.updatecvs: which fails to commit as root + "CTest.UpdateCVS" + # Fortran: requires fortran + "Fortran" + # RunCMake.CompilerLauncher: also requires fortran + "RunCMake.CompilerLauncher" + # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because + # debugedit binary is not in the expected location + # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because + # it can't find a deb package that owns libc + # RunCMake.CPack_TGZ: requires 64-bit time_t (bug #967480) + "RunCMake.CPack_(DEB|RPM|TGZ)" + # TestUpload, which requires network access + "TestUpload" + # RunCMake.CMP0125, known failure reported upstream (bug #829414) + "RunCMake.CMP0125" + ) + + local -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.3.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.3.1.ebuild new file mode 100644 index 00000000000..c2fda1de812 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.3.1.ebuild @@ -0,0 +1,333 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs +# Set to 1 if prebuilt, 0 if not +# (the construct below is to allow overriding from env for script) +: ${CMAKE_DOCS_PREBUILT:=1} + +CMAKE_DOCS_PREBUILT_DEV=sam +CMAKE_DOCS_VERSION=4.0.0_rc1 +#CMAKE_DOCS_VERSION=${PV} +#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 +# Default to generating docs (inc. man pages) if no prebuilt; overridden later +# See bug #784815 +CMAKE_DOCS_USEFLAG="+doc" + +CMAKE_QA_COMPAT_SKIP=1 # bug #964514; cmake itself is the last pkg we worry about + +# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja +# ... but seems fine as of 3.22.3? +# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759. +CMAKE_MAKEFILE_GENERATOR="emake" +CMAKE_REMOVE_MODULES_LIST=() +inherit bash-completion-r1 cmake flag-o-matic multiprocessing \ + toolchain-funcs xdg-utils + +MY_P="${P/_/-}" + +DESCRIPTION="Cross platform Make" +HOMEPAGE="https://cmake.org/" +if [[ ${PV} == *9999* ]] ; then + CMAKE_DOCS_PREBUILT=0 + + EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git" + inherit git-r3 +else + SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz" + + if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then + SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )" + fi + + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc + inherit verify-sig + + SRC_URI+=" verify-sig? ( + https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt + https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc + https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt + https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc + )" + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + fi + + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )" +fi + +[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc" + +S="${WORKDIR}/${MY_P}" + +LICENSE="BSD" +SLOT="0" +IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" +RESTRICT="!test? ( test )" + +# >= 1.51.0-r1 for ppc32 workaround (bug #941738) +RDEPEND=" + >=app-arch/libarchive-3.3.3:= + app-crypt/rhash:0= + >=dev-libs/expat-2.0.1 + >=dev-libs/jsoncpp-1.9.2-r2:0= + >=dev-libs/libuv-1.51.0-r1:= + >=net-misc/curl-7.21.5[ssl] + virtual/zlib:= + virtual/pkgconfig + dap? ( dev-cpp/cppdap ) + gui? ( dev-qt/qtbase:6[gui,widgets] ) + ncurses? ( sys-libs/ncurses:= ) +" +DEPEND="${RDEPEND}" +BDEPEND+=" + doc? ( + dev-python/requests + dev-python/sphinx + ) + test? ( app-arch/libarchive[zstd] ) +" + +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-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch + "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch + # Cuda + "${FILESDIR}/${PN}-3.30.3-cudahostld.patch" + + # Upstream fixes (can usually be removed with a version bump) +) + +cmake_src_bootstrap() { + # disable running of cmake in bootstrap command + sed -i \ + -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \ + bootstrap || die "sed failed" + + # execinfo.h on Solaris isn't quite what it is on Darwin + if [[ ${CHOST} == *-solaris* ]] ; then + sed -i -e 's/execinfo\.h/blablabla.h/' \ + Source/kwsys/CMakeLists.txt || die + fi + + # bootstrap script isn't exactly /bin/sh compatible + tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ + --prefix="${T}/cmakestrap/" \ + --parallel=$(get_makeopts_jobs "$(get_nproc)") \ + || die "Bootstrap failed" +} + +pkg_pretend() { + if [[ -z ${EPREFIX} ]] ; then + local file + local errant_files=() + + # See bug #599684 and bug #753581 (at least) + for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do + if [[ -e ${file} ]]; then + errant_files+=( "${file}" ) + fi + done + + # If errant files exist + if [[ ${#errant_files[@]} -gt 0 ]]; then + eerror "Errant files found!" + eerror "The presence of these files is known to confuse CMake's" + eerror "library path logic. Please (re)move these files:" + + for file in "${errant_files[@]}"; do + eerror " mv ${file} ${file}.bak" + done + + die "Stray files found in /etc/, see above message" + fi + fi +} + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then + default + else + cd "${DISTDIR}" || die + + # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature + verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc} + verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz + + cd "${WORKDIR}" || die + + default + fi +} + +src_prepare() { + cmake_src_prepare + + if [[ ${CHOST} == *-darwin* ]] ; then + # Disable Xcode hooks, bug #652134 + sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \ + Source/CMakeLists.txt || die + sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \ + -e '/cmGlobalXCodeGenerator.h/d' \ + Source/cmake.cxx || die + # Disable system integration, bug #933744 + sed -i -e 's/__APPLE__/__DISABLED__/' \ + Source/cmFindProgramCommand.cxx \ + Source/CPack/cmCPackGeneratorFactory.cxx || die + sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \ + Source/cmMachO.cxx || die + sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \ + Source/CMakeLists.txt || die + + # Disable isysroot usage with GCC, we've properly instructed + # where things are via GCC configuration and ldwrapper + sed -i -e '/cmake_gnu_set_sysroot_flag/d' \ + Modules/Platform/Apple-GNU-*.cmake || die + # Disable isysroot usage with clang as well + sed -i -e '/_SYSROOT_FLAG/d' \ + Modules/Platform/Apple-Clang.cmake || die + # Don't set a POSIX standard, system headers don't like that, #757426 + sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ + Source/cmLoadCommandCommand.cxx \ + Source/cmStandardLexer.h \ + Source/cmSystemTools.cxx \ + Source/cmTimestamp.cxx + sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ + Source/cmStandardLexer.h + fi + + # Add gcc libs to the default link paths + sed -i \ + -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \ + -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \ + -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \ + Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed" + + ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must* + ## handle them as part of bootstrapping, sadly. + + # Fix linking on Solaris + [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl + + # ODR warnings, bug #858335 + # https://gitlab.kitware.com/cmake/cmake/-/issues/20740 + filter-lto + + # 4.0.0_rc1 is missing this, fails to configure + # https://gitlab.kitware.com/cmake/cmake/-/issues/26712 + touch .clang-tidy Utilities/.clang-tidy || die + + if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then + CMAKE_BINARY="${S}/Bootstrap.cmk/cmake" + cmake_src_bootstrap + fi +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_USE_SYSTEM_LIBRARIES=ON + -DCMake_ENABLE_DEBUGGER=$(usex dap) + -DCMAKE_DOC_DIR=/share/doc/${PF} + -DCMAKE_MAN_DIR=/share/man + -DCMAKE_DATA_DIR=/share/${PN} + -DSPHINX_MAN=$(usex doc) + -DSPHINX_HTML=$(usex doc) + -DBUILD_CursesDialog="$(usex ncurses)" + -DBUILD_TESTING=$(usex test) + -DBUILD_QtDialog=$(usex gui) + ) + + use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 ) + + cmake_src_configure +} + +src_test() { + # Fix OutDir and SelectLibraryConfigurations tests + # these are altered thanks to our eclass + sed -i -e 's:^#_cmake_modify_IGNORE ::g' \ + "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \ + || die + + unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS + + pushd "${BUILD_DIR}" > /dev/null || die + + # Excluded tests: + local CMAKE_SKIP_TESTS=( + # BootstrapTest: we actually bootstrap it every time so why test it? + "BootstrapTest" + # BundleUtilities: bundle creation broken + "BundleUtilities" + # CMakeOnly.AllFindModules: pthread issues + "CMakeOnly.AllFindModules" + # TODO + "CompileOptions" + # CTest.updatecvs: which fails to commit as root + "CTest.UpdateCVS" + # Fortran: requires fortran + "Fortran" + # RunCMake.CompilerLauncher: also requires fortran + "RunCMake.CompilerLauncher" + # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because + # debugedit binary is not in the expected location + # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because + # it can't find a deb package that owns libc + # RunCMake.CPack_TGZ: requires 64-bit time_t (bug #967480) + "RunCMake.CPack_(DEB|RPM|TGZ)" + # TestUpload, which requires network access + "TestUpload" + # RunCMake.CMP0125, known failure reported upstream (bug #829414) + "RunCMake.CMP0125" + ) + + local -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.3.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.3.2.ebuild new file mode 100644 index 00000000000..c2fda1de812 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.3.2.ebuild @@ -0,0 +1,333 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs +# Set to 1 if prebuilt, 0 if not +# (the construct below is to allow overriding from env for script) +: ${CMAKE_DOCS_PREBUILT:=1} + +CMAKE_DOCS_PREBUILT_DEV=sam +CMAKE_DOCS_VERSION=4.0.0_rc1 +#CMAKE_DOCS_VERSION=${PV} +#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 +# Default to generating docs (inc. man pages) if no prebuilt; overridden later +# See bug #784815 +CMAKE_DOCS_USEFLAG="+doc" + +CMAKE_QA_COMPAT_SKIP=1 # bug #964514; cmake itself is the last pkg we worry about + +# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja +# ... but seems fine as of 3.22.3? +# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759. +CMAKE_MAKEFILE_GENERATOR="emake" +CMAKE_REMOVE_MODULES_LIST=() +inherit bash-completion-r1 cmake flag-o-matic multiprocessing \ + toolchain-funcs xdg-utils + +MY_P="${P/_/-}" + +DESCRIPTION="Cross platform Make" +HOMEPAGE="https://cmake.org/" +if [[ ${PV} == *9999* ]] ; then + CMAKE_DOCS_PREBUILT=0 + + EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git" + inherit git-r3 +else + SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz" + + if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then + SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )" + fi + + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc + inherit verify-sig + + SRC_URI+=" verify-sig? ( + https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt + https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc + https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt + https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc + )" + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + fi + + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )" +fi + +[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc" + +S="${WORKDIR}/${MY_P}" + +LICENSE="BSD" +SLOT="0" +IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" +RESTRICT="!test? ( test )" + +# >= 1.51.0-r1 for ppc32 workaround (bug #941738) +RDEPEND=" + >=app-arch/libarchive-3.3.3:= + app-crypt/rhash:0= + >=dev-libs/expat-2.0.1 + >=dev-libs/jsoncpp-1.9.2-r2:0= + >=dev-libs/libuv-1.51.0-r1:= + >=net-misc/curl-7.21.5[ssl] + virtual/zlib:= + virtual/pkgconfig + dap? ( dev-cpp/cppdap ) + gui? ( dev-qt/qtbase:6[gui,widgets] ) + ncurses? ( sys-libs/ncurses:= ) +" +DEPEND="${RDEPEND}" +BDEPEND+=" + doc? ( + dev-python/requests + dev-python/sphinx + ) + test? ( app-arch/libarchive[zstd] ) +" + +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-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch + "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch + # Cuda + "${FILESDIR}/${PN}-3.30.3-cudahostld.patch" + + # Upstream fixes (can usually be removed with a version bump) +) + +cmake_src_bootstrap() { + # disable running of cmake in bootstrap command + sed -i \ + -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \ + bootstrap || die "sed failed" + + # execinfo.h on Solaris isn't quite what it is on Darwin + if [[ ${CHOST} == *-solaris* ]] ; then + sed -i -e 's/execinfo\.h/blablabla.h/' \ + Source/kwsys/CMakeLists.txt || die + fi + + # bootstrap script isn't exactly /bin/sh compatible + tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ + --prefix="${T}/cmakestrap/" \ + --parallel=$(get_makeopts_jobs "$(get_nproc)") \ + || die "Bootstrap failed" +} + +pkg_pretend() { + if [[ -z ${EPREFIX} ]] ; then + local file + local errant_files=() + + # See bug #599684 and bug #753581 (at least) + for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do + if [[ -e ${file} ]]; then + errant_files+=( "${file}" ) + fi + done + + # If errant files exist + if [[ ${#errant_files[@]} -gt 0 ]]; then + eerror "Errant files found!" + eerror "The presence of these files is known to confuse CMake's" + eerror "library path logic. Please (re)move these files:" + + for file in "${errant_files[@]}"; do + eerror " mv ${file} ${file}.bak" + done + + die "Stray files found in /etc/, see above message" + fi + fi +} + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then + default + else + cd "${DISTDIR}" || die + + # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature + verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc} + verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz + + cd "${WORKDIR}" || die + + default + fi +} + +src_prepare() { + cmake_src_prepare + + if [[ ${CHOST} == *-darwin* ]] ; then + # Disable Xcode hooks, bug #652134 + sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \ + Source/CMakeLists.txt || die + sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \ + -e '/cmGlobalXCodeGenerator.h/d' \ + Source/cmake.cxx || die + # Disable system integration, bug #933744 + sed -i -e 's/__APPLE__/__DISABLED__/' \ + Source/cmFindProgramCommand.cxx \ + Source/CPack/cmCPackGeneratorFactory.cxx || die + sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \ + Source/cmMachO.cxx || die + sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \ + Source/CMakeLists.txt || die + + # Disable isysroot usage with GCC, we've properly instructed + # where things are via GCC configuration and ldwrapper + sed -i -e '/cmake_gnu_set_sysroot_flag/d' \ + Modules/Platform/Apple-GNU-*.cmake || die + # Disable isysroot usage with clang as well + sed -i -e '/_SYSROOT_FLAG/d' \ + Modules/Platform/Apple-Clang.cmake || die + # Don't set a POSIX standard, system headers don't like that, #757426 + sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ + Source/cmLoadCommandCommand.cxx \ + Source/cmStandardLexer.h \ + Source/cmSystemTools.cxx \ + Source/cmTimestamp.cxx + sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ + Source/cmStandardLexer.h + fi + + # Add gcc libs to the default link paths + sed -i \ + -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \ + -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \ + -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \ + Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed" + + ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must* + ## handle them as part of bootstrapping, sadly. + + # Fix linking on Solaris + [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl + + # ODR warnings, bug #858335 + # https://gitlab.kitware.com/cmake/cmake/-/issues/20740 + filter-lto + + # 4.0.0_rc1 is missing this, fails to configure + # https://gitlab.kitware.com/cmake/cmake/-/issues/26712 + touch .clang-tidy Utilities/.clang-tidy || die + + if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then + CMAKE_BINARY="${S}/Bootstrap.cmk/cmake" + cmake_src_bootstrap + fi +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_USE_SYSTEM_LIBRARIES=ON + -DCMake_ENABLE_DEBUGGER=$(usex dap) + -DCMAKE_DOC_DIR=/share/doc/${PF} + -DCMAKE_MAN_DIR=/share/man + -DCMAKE_DATA_DIR=/share/${PN} + -DSPHINX_MAN=$(usex doc) + -DSPHINX_HTML=$(usex doc) + -DBUILD_CursesDialog="$(usex ncurses)" + -DBUILD_TESTING=$(usex test) + -DBUILD_QtDialog=$(usex gui) + ) + + use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 ) + + cmake_src_configure +} + +src_test() { + # Fix OutDir and SelectLibraryConfigurations tests + # these are altered thanks to our eclass + sed -i -e 's:^#_cmake_modify_IGNORE ::g' \ + "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \ + || die + + unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS + + pushd "${BUILD_DIR}" > /dev/null || die + + # Excluded tests: + local CMAKE_SKIP_TESTS=( + # BootstrapTest: we actually bootstrap it every time so why test it? + "BootstrapTest" + # BundleUtilities: bundle creation broken + "BundleUtilities" + # CMakeOnly.AllFindModules: pthread issues + "CMakeOnly.AllFindModules" + # TODO + "CompileOptions" + # CTest.updatecvs: which fails to commit as root + "CTest.UpdateCVS" + # Fortran: requires fortran + "Fortran" + # RunCMake.CompilerLauncher: also requires fortran + "RunCMake.CompilerLauncher" + # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because + # debugedit binary is not in the expected location + # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because + # it can't find a deb package that owns libc + # RunCMake.CPack_TGZ: requires 64-bit time_t (bug #967480) + "RunCMake.CPack_(DEB|RPM|TGZ)" + # TestUpload, which requires network access + "TestUpload" + # RunCMake.CMP0125, known failure reported upstream (bug #829414) + "RunCMake.CMP0125" + ) + + local -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.3.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.3.3.ebuild new file mode 100644 index 00000000000..0bf58953c50 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.3.3.ebuild @@ -0,0 +1,333 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs +# Set to 1 if prebuilt, 0 if not +# (the construct below is to allow overriding from env for script) +: ${CMAKE_DOCS_PREBUILT:=1} + +CMAKE_DOCS_PREBUILT_DEV=sam +CMAKE_DOCS_VERSION=4.0.0_rc1 +#CMAKE_DOCS_VERSION=${PV} +#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 +# Default to generating docs (inc. man pages) if no prebuilt; overridden later +# See bug #784815 +CMAKE_DOCS_USEFLAG="+doc" + +CMAKE_QA_COMPAT_SKIP=1 # bug #964514; cmake itself is the last pkg we worry about + +# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja +# ... but seems fine as of 3.22.3? +# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759. +CMAKE_MAKEFILE_GENERATOR="emake" +CMAKE_REMOVE_MODULES_LIST=() +inherit bash-completion-r1 cmake flag-o-matic multiprocessing \ + toolchain-funcs xdg-utils + +MY_P="${P/_/-}" + +DESCRIPTION="Cross platform Make" +HOMEPAGE="https://cmake.org/" +if [[ ${PV} == *9999* ]] ; then + CMAKE_DOCS_PREBUILT=0 + + EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git" + inherit git-r3 +else + SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz" + + if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then + SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )" + fi + + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc + inherit verify-sig + + SRC_URI+=" verify-sig? ( + https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt + https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc + https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt + https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc + )" + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + fi + + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )" +fi + +[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc" + +S="${WORKDIR}/${MY_P}" + +LICENSE="BSD" +SLOT="0" +IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" +RESTRICT="!test? ( test )" + +# >= 1.51.0-r1 for ppc32 workaround (bug #941738) +RDEPEND=" + >=app-arch/libarchive-3.3.3:= + app-crypt/rhash:0= + >=dev-libs/expat-2.0.1 + >=dev-libs/jsoncpp-1.9.2-r2:0= + >=dev-libs/libuv-1.51.0-r1:= + >=net-misc/curl-7.21.5[ssl] + virtual/zlib:= + virtual/pkgconfig + dap? ( dev-cpp/cppdap ) + gui? ( dev-qt/qtbase:6[gui,widgets] ) + ncurses? ( sys-libs/ncurses:= ) +" +DEPEND="${RDEPEND}" +BDEPEND+=" + doc? ( + dev-python/requests + dev-python/sphinx + ) + test? ( app-arch/libarchive[zstd] ) +" + +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-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch + "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch + # Cuda + "${FILESDIR}/${PN}-3.30.3-cudahostld.patch" + + # Upstream fixes (can usually be removed with a version bump) +) + +cmake_src_bootstrap() { + # disable running of cmake in bootstrap command + sed -i \ + -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \ + bootstrap || die "sed failed" + + # execinfo.h on Solaris isn't quite what it is on Darwin + if [[ ${CHOST} == *-solaris* ]] ; then + sed -i -e 's/execinfo\.h/blablabla.h/' \ + Source/kwsys/CMakeLists.txt || die + fi + + # bootstrap script isn't exactly /bin/sh compatible + tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ + --prefix="${T}/cmakestrap/" \ + --parallel=$(get_makeopts_jobs "$(get_nproc)") \ + || die "Bootstrap failed" +} + +pkg_pretend() { + if [[ -z ${EPREFIX} ]] ; then + local file + local errant_files=() + + # See bug #599684 and bug #753581 (at least) + for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do + if [[ -e ${file} ]]; then + errant_files+=( "${file}" ) + fi + done + + # If errant files exist + if [[ ${#errant_files[@]} -gt 0 ]]; then + eerror "Errant files found!" + eerror "The presence of these files is known to confuse CMake's" + eerror "library path logic. Please (re)move these files:" + + for file in "${errant_files[@]}"; do + eerror " mv ${file} ${file}.bak" + done + + die "Stray files found in /etc/, see above message" + fi + fi +} + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then + default + else + cd "${DISTDIR}" || die + + # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature + verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc} + verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz + + cd "${WORKDIR}" || die + + default + fi +} + +src_prepare() { + cmake_src_prepare + + if [[ ${CHOST} == *-darwin* ]] ; then + # Disable Xcode hooks, bug #652134 + sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \ + Source/CMakeLists.txt || die + sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \ + -e '/cmGlobalXCodeGenerator.h/d' \ + Source/cmake.cxx || die + # Disable system integration, bug #933744 + sed -i -e 's/__APPLE__/__DISABLED__/' \ + Source/cmFindProgramCommand.cxx \ + Source/CPack/cmCPackGeneratorFactory.cxx || die + sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \ + Source/cmMachO.cxx || die + sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \ + Source/CMakeLists.txt || die + + # Disable isysroot usage with GCC, we've properly instructed + # where things are via GCC configuration and ldwrapper + sed -i -e '/cmake_gnu_set_sysroot_flag/d' \ + Modules/Platform/Apple-GNU-*.cmake || die + # Disable isysroot usage with clang as well + sed -i -e '/_SYSROOT_FLAG/d' \ + Modules/Platform/Apple-Clang.cmake || die + # Don't set a POSIX standard, system headers don't like that, #757426 + sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ + Source/cmLoadCommandCommand.cxx \ + Source/cmStandardLexer.h \ + Source/cmSystemTools.cxx \ + Source/cmTimestamp.cxx + sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ + Source/cmStandardLexer.h + fi + + # Add gcc libs to the default link paths + sed -i \ + -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \ + -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \ + -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \ + Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed" + + ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must* + ## handle them as part of bootstrapping, sadly. + + # Fix linking on Solaris + [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl + + # ODR warnings, bug #858335 + # https://gitlab.kitware.com/cmake/cmake/-/issues/20740 + filter-lto + + # 4.0.0_rc1 is missing this, fails to configure + # https://gitlab.kitware.com/cmake/cmake/-/issues/26712 + touch .clang-tidy Utilities/.clang-tidy || die + + if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then + CMAKE_BINARY="${S}/Bootstrap.cmk/cmake" + cmake_src_bootstrap + fi +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_USE_SYSTEM_LIBRARIES=ON + -DCMake_ENABLE_DEBUGGER=$(usex dap) + -DCMAKE_DOC_DIR=/share/doc/${PF} + -DCMAKE_MAN_DIR=/share/man + -DCMAKE_DATA_DIR=/share/${PN} + -DSPHINX_MAN=$(usex doc) + -DSPHINX_HTML=$(usex doc) + -DBUILD_CursesDialog="$(usex ncurses)" + -DBUILD_TESTING=$(usex test) + -DBUILD_QtDialog=$(usex gui) + ) + + use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 ) + + cmake_src_configure +} + +src_test() { + # Fix OutDir and SelectLibraryConfigurations tests + # these are altered thanks to our eclass + sed -i -e 's:^#_cmake_modify_IGNORE ::g' \ + "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \ + || die + + unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS + + pushd "${BUILD_DIR}" > /dev/null || die + + # Excluded tests: + local CMAKE_SKIP_TESTS=( + # BootstrapTest: we actually bootstrap it every time so why test it? + "BootstrapTest" + # BundleUtilities: bundle creation broken + "BundleUtilities" + # CMakeOnly.AllFindModules: pthread issues + "CMakeOnly.AllFindModules" + # TODO + "CompileOptions" + # CTest.updatecvs: which fails to commit as root + "CTest.UpdateCVS" + # Fortran: requires fortran + "Fortran" + # RunCMake.CompilerLauncher: also requires fortran + "RunCMake.CompilerLauncher" + # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because + # debugedit binary is not in the expected location + # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because + # it can't find a deb package that owns libc + # RunCMake.CPack_TGZ: requires 64-bit time_t (bug #967480) + "RunCMake.CPack_(DEB|RPM|TGZ)" + # TestUpload, which requires network access + "TestUpload" + # RunCMake.CMP0125, known failure reported upstream (bug #829414) + "RunCMake.CMP0125" + ) + + local -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-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-9999.ebuild index f9c756e86b3..c2fda1de812 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 @@ -121,7 +121,7 @@ cmake_src_bootstrap() { # bootstrap script isn't exactly /bin/sh compatible tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ --prefix="${T}/cmakestrap/" \ - --parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \ + --parallel=$(get_makeopts_jobs "$(get_nproc)") \ || die "Bootstrap failed" } @@ -264,21 +264,31 @@ src_test() { 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 CMAKE_SKIP_TESTS=( + # BootstrapTest: we actually bootstrap it every time so why test it? + "BootstrapTest" + # BundleUtilities: bundle creation broken + "BundleUtilities" + # CMakeOnly.AllFindModules: pthread issues + "CMakeOnly.AllFindModules" + # TODO + "CompileOptions" + # CTest.updatecvs: which fails to commit as root + "CTest.UpdateCVS" + # Fortran: requires fortran + "Fortran" + # RunCMake.CompilerLauncher: also requires fortran + "RunCMake.CompilerLauncher" + # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because + # debugedit binary is not in the expected location + # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because + # it can't find a deb package that owns libc + # RunCMake.CPack_TGZ: requires 64-bit time_t (bug #967480) + "RunCMake.CPack_(DEB|RPM|TGZ)" + # TestUpload, which requires network access + "TestUpload" + # RunCMake.CMP0125, known failure reported upstream (bug #829414) + "RunCMake.CMP0125" ) local -x QT_QPA_PLATFORM=offscreen diff --git a/sdk_container/src/third_party/portage-stable/dev-build/libtool/libtool-2.5.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/libtool/libtool-2.5.4.ebuild index 01567ffc793..d7896fb21db 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/libtool/libtool-2.5.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/libtool/libtool-2.5.4.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -23,7 +23,7 @@ fi DESCRIPTION="A shared library tool for developers" HOMEPAGE="https://www.gnu.org/software/libtool/" -LICENSE="GPL-2" +LICENSE="GPL-2+" SLOT="2" IUSE="vanilla" diff --git a/sdk_container/src/third_party/portage-stable/dev-build/libtool/libtool-2.6.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/libtool/libtool-2.6.0.ebuild index f7106f6f6ba..55d747089de 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/libtool/libtool-2.6.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/libtool/libtool-2.6.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -24,7 +24,7 @@ fi DESCRIPTION="A shared library tool for developers" HOMEPAGE="https://www.gnu.org/software/libtool/" -LICENSE="GPL-2" +LICENSE="GPL-2+" SLOT="2" IUSE="vanilla" diff --git a/sdk_container/src/third_party/portage-stable/dev-build/libtool/libtool-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/libtool/libtool-9999.ebuild index 3fbdd5dd71c..4a3cad397c0 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/libtool/libtool-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/libtool/libtool-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -23,7 +23,7 @@ fi DESCRIPTION="A shared library tool for developers" HOMEPAGE="https://www.gnu.org/software/libtool/" -LICENSE="GPL-2" +LICENSE="GPL-2+" SLOT="2" IUSE="vanilla" 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 3d45b82e03a..d8e9d339368 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 @@ -1,36 +1,12 @@ -DIST meson-1.1.1.tar.gz 2125503 BLAKE2B 295b46d19c8a1d64d326a6c826e2abe11d9768902ed2f8816df18677e7f3f58decc0c660925821825ecd9a4955a65bda8b2aa66a7bb1961810d8f78f92a3fd8a SHA512 c6259d73566d2532b87e8a23951363103f7be2aacdf120e50946273a2fed6b1602104a3ffbfda159138ac8f780d2c3e67a6fe2c8c228b73c1266775491797adb -DIST meson-1.1.1.tar.gz.asc 833 BLAKE2B 165f3a0e8093995e82efcdea78b8cf0d2479505aeec145cf0c4bf3448dd74f0b5d1631e574e7d945d5b5976e11c065043ab0a6efe5646484a5bcd6386050a073 SHA512 004ec7e530ad21b012e461c8d50322295e4ec96a1a3197dbcbeb24b8bd6465a34008541e6fc547e451a50dce53f7ce170ec1bfd8c465ded56a5924e880aa0539 -DIST meson-1.10.0.tar.gz 2412381 BLAKE2B 5344f3e6990618d226038a34b99c2f0d56fd539c17fed8fa51aef6e5389566436040cb223bd8b53709e1552d0d59fde5e77349ecc61540ff2572d6bd74045466 SHA512 4e6ad56e18c7d5b244b94b99c7e42489b8d4e79634abb97607c3f277f74b0c3c1cb043ba48816f444d2960fe96dc38459c404207e415a1401f5fad7c6f5d60e5 -DIST meson-1.10.0.tar.gz.asc 833 BLAKE2B cfbb66ea439bb5993b121d32a72f73588b9ba5085f932ddfa7fe79887cadd8550994af2f01ebf42d9bfe7b9bb3197256affd68c809379bc5085f1ac36453968a SHA512 0bd520d1e3e452e0973b396808bfb6b1f80a13d4e950c33fcb61ef83b7151e10ce9348509700b04d5cedfaa6f6d94ce0972a06d32848e510b186cc4e9c4495fc -DIST meson-1.10.1.tar.gz 2413969 BLAKE2B 0d99736cdc1b3576026bce775a15c805c8178e2b21615829e028a05f5265cb5c72bd04a9ac5a45a9cf247d54f37f25a98f094efb5e1addb78e9a6ff863629642 SHA512 69fe938dad22728a969d1848f1e3ba43c72a2083158431fd639eb51ebce4f2b38e4a2797663d2e4bb251ed0870533bfab57705da6ae941f541769290b126fd45 -DIST meson-1.10.1.tar.gz.asc 833 BLAKE2B b217b03c8e56526a2489487ababbee3fa59de9f7d515f32a34c6d4410b3d74416df1896468039997d664fddd2b657888f77371f630bdef550208b494f38b1a3a SHA512 984e49a7e20721f839fc1d79cfc74bd585481b4a878556523c01e9760dd444a95a7e148402be585f300e0604fd79811e4bb87f312ebaf2f0d8025eaa9f2cb5a3 DIST meson-1.10.2.tar.gz 2422765 BLAKE2B 0c6966640988985f8c0af165cb89e0302b0d5e2d506a4c24639971b854dd7e2fe2ea4e4f52be65e0a1524a2c9a4ed71d13093f4881612c82e885ab34d5c46a7a SHA512 43d408fde7390c81eaef63b835deb4acfcae279cf05bcd63a368c4bc1de69b7fb620f801a7700345d4c41e155a4429a43cdef12e60322aa20a33edfaeb5ce7e9 DIST meson-1.10.2.tar.gz.asc 833 BLAKE2B f4609f3e51f32d290582f3b339e7b008bf244c3cded918fc115393d0f4644485eb7da1b3b56f1743ca3690665f5314486bbbdfa36ecc65019fca14958ef2c4f8 SHA512 55dbfe41eb8b29206536fa71d36eb483a4be35b7528f15ef00c660b828816c72deb34e63bca52c2641f4134917494ff55761835a9dae187986aa9cef7989bf06 -DIST meson-1.2.3.tar.gz 2184484 BLAKE2B 7d76c54bddba249ab97ebd5dd0afc448177ff9fa70812a8ca0cc9fe308c9b145b3fbc3ee068acae0fdc73edff42134b7a0b618cd80a05347a424aca7bc8bbef8 SHA512 cdcadc731effc1ffb2de98b795ba37955f934ed9b54b9f7f3ac5fe96ab33268d4de4fce734a4c2ef7d2ecc5051616df127e1f8665e197ff954310bf1483b81fc -DIST meson-1.2.3.tar.gz.asc 833 BLAKE2B 1416c49302aab80b5f647cc1d6cd18c36f6199e79c7d13ea284143b2423267b5823850218578626937c14589ebcdf19069b310394c63bc762ab8f59d7ebe3780 SHA512 852c031ecfe032cb48d284bb270597d114294b7d1be5dd0df6ec2f78a62e1a5ba82711bc14ae410e47ced54f99a639055a1628b0acf7aa07a3a80034fce5ebc9 -DIST meson-1.3.2.tar.gz 2223798 BLAKE2B 72b061598a0cb22517460de4df25394a9dfbddb536c5b8e75b7267ae21292fe2a6a3ec16d64aa81cde63d33022decebcc051cf2d87d677f9b40eb2f4106a40cd SHA512 6369c6d64f91c769f0f4d3e2445bb3615785998489d41acba2134b44ec89abd04bd97a3d3d17c64779eb40b0bf4808e3419eb47638169446a98824d680f37a7b -DIST meson-1.3.2.tar.gz.asc 833 BLAKE2B b11ae2be4e9cb0278be9cafd304146432e606a5fd23379d08116943676286f240fb8cc1d5f897cbd4c2bacfe298802afb1a847e447d71250f58cee5dec38083b SHA512 0cb9575fb599cba4ae77c1954599a24b1f079c46cf255bb8d581ef434598503db6e08af6a95b7c00bc54c165ec8fd9834310e2d4874afe01c5d44e72cef496b3 -DIST meson-1.4.2.tar.gz 2227701 BLAKE2B 11d98d8c84545390bd35b393ae02db7876a38dad56c363471b5be59521f08c0b70da5dc5b3f991e5c715d6b59f4752738515bd8dc2412a6dc5ca1fa42e7cd63b SHA512 4aed1a5f133de2c6839bab361a0e911dd5697f5dac2a8f100df69d43a8880a810dcfa1aa6402cdfb9c5e14fdceec76925f0496c301c31ba733a32618c403eaf0 -DIST meson-1.4.2.tar.gz.asc 833 BLAKE2B 64ce1fc0fecdd6aa76bb89d88ff7497548d82afc00805c083a0bca7ce4cee41dc50be50368e333649ae7e863c03ea780fe24a48c525281fbbcab679b540f4254 SHA512 51d3245f9443cb398e2e8f225f00a853848bde1bfba02bae6334d47115e36ad96c8ec03244f6169c89d73162b86a73158a7f8d08d5bd6b3d28e8369ce7b55093 -DIST meson-1.5.2.tar.gz 2265788 BLAKE2B bda0742cf053cb235833b347e66b8706983815fda5d62815aa6455980837e061fb0db2f7472966e6e09a199b0850477a3b448b6ad3b7db717da6b43906cbe2ac SHA512 9f601bdadaf2dae312ff02caa9dcd3fe13659a101e601417bdb908d8b91cdd4a12302433b00c188c1562287a06ada656044d79821d0beb0e0e41c63ab5d48112 -DIST meson-1.5.2.tar.gz.asc 833 BLAKE2B 0ea6af017430568b2834081a60d0153cc80cb55d835b1f570e27ae6220a163aff9f4607654fe87841df112c78763b4d45dabd45072e398cdf901762095ce52e7 SHA512 7b7c0ee2b872c83d98954079fc27665b3a9ec5464aa8decc5919ff4e1c4134d7006494bd64b901dc2ade408131ea512eefef9416f3c57d1460c9308cb6683fc8 -DIST meson-1.6.1.tar.gz 2276144 BLAKE2B 7ccdb3bf3f701fc787fabf91413db8301a8658b89e08c1d712711bd35845dc2468211e4b666cf46ad68ad9462e62b12b62d60c3767a2804f9b695b4390bb8235 SHA512 b4ca7a3b667db0ad370110abd8b20467b1c74ae7777a068db33f8974602c123881a7130b2340664abb52e36fe5195989a5cc8fa7de6212c37abf5b0900554425 -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.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-1.11.0.tar.gz 2461494 BLAKE2B 121589b9d5e42430b28a3226f6bdd46697e2b9271c512ae849aa648ba4268359b85daf11717666a78cff021cf710fc907fd3aa172275d6553767d5b8f1909f69 SHA512 9a4c678c523388d51e47ae1f1a506368f539fab0a9c1eb51ae6e148aeb6418ab26bae758c10c4c3d6f41bfc00949003ec52aabbcd7a9dc7bd33de8fa02477926 +DIST meson-1.11.0.tar.gz.asc 833 BLAKE2B 21d00c6901384c79c2c028a0a64e61fd552054c67287f20bcafec24998aea44e5483fc2407b7408c3274f88b51d2ba272c587510c788fa13a218469d73a20186 SHA512 f8e7868cfbfa322e9ff82b53de89130e064e21a80a7b9a70d15490a564b3050c954251395895aa6b278a6a77911cf18bdfdaefd766c59c418d5e91734c4f7a9e +DIST meson-1.11.1.tar.gz 5190321 BLAKE2B 3fcedb28ae3646e1c6bc1b9596ec3f04af1752bef7de9a0a1086aa103d8e0e91b22c66b85f66751447571d2d8815cf3582aacb1e252ea4af59aa18ae1bbede13 SHA512 c30c98714ab595ca1b5241fbb546c9c5fbb3eada53bfe782652a5734b04d45d66944a5fc8673ee602797c8173e27473036bcb01e09032bbc518567ee89dd6d70 +DIST meson-1.11.1.tar.gz.asc 395 BLAKE2B ed30367a763c06bc4dd241629b31dd416c9ff898a12e72ce4285608f0b1b66ff62a06b42bb90682f45e9d3298a112342fd451ca45fbf2397b30668ff28e5d5e6 SHA512 9115834e1dffefd5468206fb4539ebd4bdbe94d35a86ef2d62947d9268ffab6848994e75878d73d4b7b5880bdb0ab9ed648b77dd37321020461aaa89f11b6b45 DIST meson-1.9.2.tar.gz 2382854 BLAKE2B f099352abbc0fa8d358cbe406955ddf817453cdc244b36f322e11b5b3020013641d162c68c9bce119cf866e8082a14a3f7db9930b66dfba15805afb32440f555 SHA512 3237e55bb8374f65f40dccd8a93493a42fc425337758b8600b377c5e9795a1bdc97942fc19fedd4c3cb697f87c1d54364a637110704a5dc1a391d712be1463bc DIST meson-1.9.2.tar.gz.asc 833 BLAKE2B f161b2918c341172de5f141ac367d7d62a60f2d0eadd793f71fb6a19e8944b4ad6bbfbb25d233862066eec8e422295d46e03ce8aca26e1081f2bcb456b7c1057 SHA512 c8cace334e31d5ba3e4f2da687ed945182e3039dc8bbea94015caa82d373c4b4d96a425eccb7617793fd471040705711b00ab37705dcd2070be6ba089586652b -DIST meson-reference-1.10.0.3 365875 BLAKE2B 2f180158dd31e1bf527947407425d211cf95ab84cd7f4f4c2063036dd46dda4318435b69097d7fae6b812ab402358c438b1d264f1d90716ea471293f70d56e60 SHA512 98f03a9976fee84f9e53987611e524f98d490c6cbe4de652b770e15a3c95cb578ce806b3c17cb75a702f9ee361e20549e2e797692310af8e36177a53e13eec4d -DIST meson-reference-1.10.1.3 365875 BLAKE2B 8b24e9370b3356c3f3ff23f5c4c0c977abe5936b67425e9e3e37597d96db14e6800bc97083f4c77b011c1f9304adc26e71409a35fd888df70fbcacea0515879b SHA512 6cf65dc7aaf56e53cb543bf7e64a64df90b2595009174ac99688e0c3488b6718c439740d494dc0fbf49f2f669ebf43ef16557de0a3e3661e3f6259637e3c828a DIST meson-reference-1.10.2.3 366569 BLAKE2B 28b37c33cb94f3cad8de68eeaaf210a470d14df68fa00d8fe18b79ab9acee71a725fa9cbcf57c9c470f98acd540123612dfd9974fb67121ce72fdc70168cfab8 SHA512 1defa912aeac9a5768e7f3ad669d4471a457c6fc70ead30c428ecc335d3a06db56314a5ad343aff7805b1a46388cbfba5b4188e2ef55d10b35767c046dcb0f36 -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.5.3 345964 BLAKE2B df514085c03c6cd84e31b1ea1aea18d34fdd5aebbcfa3ca96b31ca7dc97c89649f0b26e927288ed71beb3500a46d53cf6c42b740d9a8b3a22d75258cdf99c3c6 SHA512 ef8c4479b13bea4510dd57b0e18a4b86255853885763ae0a2ee19b3e0e846c6619bb6a646d656266650a58bc2afc7b1fa91b05bfc6f8fec9dcd73a7627a369fe -DIST meson-reference-1.9.1.3 347286 BLAKE2B cae2e9a97bcb7fc6894723156280306ea0fb35d9cbe68d31785ac0678b17b8a4bdfdf2362834b9daf3c01e0ff8dd67c0f1d384595ef4e93858064bdad3e46840 SHA512 d79a772f4fdd55309acda104087d0bbdc707e8fd2816b516daf0b8d1c034892ddb0bec9a383d6f65184e9509a358e2a8b392a484b65ab9d26c0e68a02fd6db95 +DIST meson-reference-1.11.0.3 383896 BLAKE2B 76f4a93c9f168bb2b2bb852918b4f4bd506df3c49ef31d34541a312a0ebb812abde4bc15e3525f795289b80a6a83df7827d10850e83fc32544a0aa0731119172 SHA512 0f9c095a41cb1a050439e68e1478ffccc4147094455103e4929275ffb0233e28fb8f7e6f8948b039bcc5a9ea3879156305a3e1b795760ac5bf54ac524c430b08 +DIST meson-reference-1.11.1.3 383896 BLAKE2B 6262239b32c9be67eb426f2c208f7395ddb7894869d2d96618aec035a60e1529273c0e22f8fe141393465a96a962f3f307cad2353569dd0d7006e79cd9e36f41 SHA512 52a6efd4b52b389986c7ce346b5ccb2abc9e2afc66dcc83ee3b2d981a81c7052520afbbc34c483e6db53660048fb14925ca6fb5718c76768c6773458b8adf814 DIST meson-reference-1.9.2.3 347286 BLAKE2B ece5e2075e1d1aabe9daf09e8dbdd4c22d0940b957cc61443c9ea0136e54c9f39244cc082f7a784209bb1bb81b116acae74f02501a9cd16df6d06ff9dcda08c0 SHA512 dbf57730e6c6ac6d3ebfba70f4c4b479d8e1a502854343c776f5ba0e9c7a4ba10bf75758b3434dd418041019ab7d704fe1424f49adaf41e260f652b58fd9cb23 diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/files/0001-ninja-backend-don-t-hide-all-compiler-warnings-for-t.patch b/sdk_container/src/third_party/portage-stable/dev-build/meson/files/0001-ninja-backend-don-t-hide-all-compiler-warnings-for-t.patch deleted file mode 100644 index 652ffd25228..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/files/0001-ninja-backend-don-t-hide-all-compiler-warnings-for-t.patch +++ /dev/null @@ -1,250 +0,0 @@ -From 5f659af870011e74299d1455a65c2cd5f5ace51f Mon Sep 17 00:00:00 2001 -From: Eli Schwartz -Date: Tue, 5 Dec 2023 14:26:54 -0500 -Subject: [PATCH] ninja backend: don't hide all compiler warnings for - transpiled languages - -This was originally added for vala only, with the rationale that vala -generates bad code that has warnings. Unfortunately, the rationale was -fatally flawed. The compiler warns about a number of things, which the -user can control depending on their code (or their code generator's -code), but some of those things are absolutely critical to warn about. - -In particular, GCC 14 and clang 17 are updating their defaults to warn --- and error by default for -- invalid C code that breaks the standard, -but has been silently accepted for over 20 years "because lots of people -do it". The code in question is UB, and compilers will generate faulty -machine code that behaves erroneously and probably has a mass of CVEs -waiting to happen. - -Compiler warnings are NOT safe to just... universally turn off. Compiler -warnings could be either: - -- coding style lints - -- threatening statements that the code is factually and behaviorally wrong - -There is no magic bullet to ignore the former while respecting the -latter. And the very last thing we should ever do is pass `-w`, since -that causes ALL warnings to be disabled, even the manually added -`-Werror=XXX`. - -If vala generated code creates warnings, then the vala compiler can -decrease the log level by generating better code, or by adding warning -suppression pragmas for *specific* issues, such as unused functions. ---- - mesonbuild/backend/backends.py | 13 ++----- - mesonbuild/backend/ninjabackend.py | 19 ++++------ - .../failing build/1 vala c werror/meson.build | 10 ----- - .../failing build/1 vala c werror/prog.vala | 7 ---- - .../1 vala c werror/unused-var.c | 8 ---- - test cases/vala/5 target glib/meson.build | 4 -- - unittests/linuxliketests.py | 37 ------------------- - 7 files changed, 11 insertions(+), 87 deletions(-) - delete mode 100644 test cases/failing build/1 vala c werror/meson.build - delete mode 100644 test cases/failing build/1 vala c werror/prog.vala - delete mode 100644 test cases/failing build/1 vala c werror/unused-var.c - -diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py -index 2c24e4c31..639e07b2a 100644 ---- a/mesonbuild/backend/backends.py -+++ b/mesonbuild/backend/backends.py -@@ -986,7 +986,7 @@ class Backend: - return compiler.get_no_stdinc_args() - return [] - -- def generate_basic_compiler_args(self, target: build.BuildTarget, compiler: 'Compiler', no_warn_args: bool = False) -> 'CompilerArgs': -+ def generate_basic_compiler_args(self, target: build.BuildTarget, compiler: 'Compiler') -> 'CompilerArgs': - # Create an empty commands list, and start adding arguments from - # various sources in the order in which they must override each other - # starting from hard-coded defaults followed by build options and so on. -@@ -999,17 +999,12 @@ class Backend: - commands += self.get_no_stdlib_args(target, compiler) - # Add things like /NOLOGO or -pipe; usually can't be overridden - commands += compiler.get_always_args() -- # Only add warning-flags by default if the buildtype enables it, and if -- # we weren't explicitly asked to not emit warnings (for Vala, f.ex) -- if no_warn_args: -- commands += compiler.get_no_warn_args() -- else: -- # warning_level is a string, but mypy can't determine that -- commands += compiler.get_warn_args(T.cast('str', target.get_option(OptionKey('warning_level')))) -+ # warning_level is a string, but mypy can't determine that -+ commands += compiler.get_warn_args(T.cast('str', target.get_option(OptionKey('warning_level')))) - # Add -Werror if werror=true is set in the build options set on the - # command-line or default_options inside project(). This only sets the - # action to be done for warnings if/when they are emitted, so it's ok -- # to set it after get_no_warn_args() or get_warn_args(). -+ # to set it after or get_warn_args(). - if target.get_option(OptionKey('werror')): - commands += compiler.get_werror_args() - # Add compile args for c_* or cpp_* build options set on the -diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py -index 049ae253f..cdb747d73 100644 ---- a/mesonbuild/backend/ninjabackend.py -+++ b/mesonbuild/backend/ninjabackend.py -@@ -1939,7 +1939,7 @@ class NinjaBackend(backends.Backend): - if cratetype in {'bin', 'dylib'}: - args.extend(rustc.get_linker_always_args()) - -- args += self.generate_basic_compiler_args(target, rustc, False) -+ args += self.generate_basic_compiler_args(target, rustc) - # Rustc replaces - with _. spaces or dots are not allowed, so we replace them with underscores - args += ['--crate-name', target.name.replace('-', '_').replace(' ', '_').replace('.', '_')] - depfile = os.path.join(target.subdir, target.name + '.d') -@@ -2804,10 +2804,9 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47485''')) - bargs = [] - return (sargs, bargs) - -- def _generate_single_compile(self, target: build.BuildTarget, compiler: 'Compiler', -- is_generated: bool = False) -> 'CompilerArgs': -+ def _generate_single_compile(self, target: build.BuildTarget, compiler: Compiler) -> CompilerArgs: - commands = self._generate_single_compile_base_args(target, compiler) -- commands += self._generate_single_compile_target_args(target, compiler, is_generated) -+ commands += self._generate_single_compile_target_args(target, compiler) - return commands - - def _generate_single_compile_base_args(self, target: build.BuildTarget, compiler: 'Compiler') -> 'CompilerArgs': -@@ -2825,14 +2824,10 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47485''')) - return commands - - @lru_cache(maxsize=None) -- def _generate_single_compile_target_args(self, target: build.BuildTarget, compiler: 'Compiler', -- is_generated: bool = False) -> 'ImmutableListProtocol[str]': -- # The code generated by valac is usually crap and has tons of unused -- # variables and such, so disable warnings for Vala C sources. -- no_warn_args = is_generated == 'vala' -+ def _generate_single_compile_target_args(self, target: build.BuildTarget, compiler: Compiler) -> ImmutableListProtocol[str]: - # Add compiler args and include paths from several sources; defaults, - # build options, external dependencies, etc. -- commands = self.generate_basic_compiler_args(target, compiler, no_warn_args) -+ commands = self.generate_basic_compiler_args(target, compiler) - # Add custom target dirs as includes automatically, but before - # target-specific include directories. - if target.implicit_include_directories: -@@ -2901,7 +2896,7 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47485''')) - if use_pch and 'mw' not in compiler.id: - commands += self.get_pch_include_args(compiler, target) - -- commands += self._generate_single_compile_target_args(target, compiler, is_generated=False) -+ commands += self._generate_single_compile_target_args(target, compiler) - - # Metrowerks compilers require PCH include args to come after intraprocedural analysis args - if use_pch and 'mw' in compiler.id: -@@ -2935,7 +2930,7 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47485''')) - if use_pch and 'mw' not in compiler.id: - commands += self.get_pch_include_args(compiler, target) - -- commands += self._generate_single_compile_target_args(target, compiler, is_generated) -+ commands += self._generate_single_compile_target_args(target, compiler) - - # Metrowerks compilers require PCH include args to come after intraprocedural analysis args - if use_pch and 'mw' in compiler.id: -diff --git a/test cases/failing build/1 vala c werror/meson.build b/test cases/failing build/1 vala c werror/meson.build -deleted file mode 100644 -index 736d7aa43..000000000 ---- a/test cases/failing build/1 vala c werror/meson.build -+++ /dev/null -@@ -1,10 +0,0 @@ --project('valatest', 'c', default_options : 'werror=true') -- --if find_program('valac', required : false).found() -- add_languages('vala') -- valadeps = [dependency('glib-2.0'), dependency('gobject-2.0')] -- # Must fail due to -Werror and unused variable in C file -- executable('valaprog', 'prog.vala', 'unused-var.c', dependencies : valadeps) --else -- executable('failprog', 'unused-var.c') --endif -diff --git a/test cases/failing build/1 vala c werror/prog.vala b/test cases/failing build/1 vala c werror/prog.vala -deleted file mode 100644 -index 638e77660..000000000 ---- a/test cases/failing build/1 vala c werror/prog.vala -+++ /dev/null -@@ -1,7 +0,0 @@ --class MainProg : GLib.Object { -- -- public static int main(string[] args) { -- stdout.printf("Vala is working.\n"); -- return 0; -- } --} -diff --git a/test cases/failing build/1 vala c werror/unused-var.c b/test cases/failing build/1 vala c werror/unused-var.c -deleted file mode 100644 -index 6b85078c9..000000000 ---- a/test cases/failing build/1 vala c werror/unused-var.c -+++ /dev/null -@@ -1,8 +0,0 @@ --#warning "something" -- --int --somelib(void) --{ -- int unused_var; -- return 33; --} -diff --git a/test cases/vala/5 target glib/meson.build b/test cases/vala/5 target glib/meson.build -index f285d9f16..089bb3c97 100644 ---- a/test cases/vala/5 target glib/meson.build -+++ b/test cases/vala/5 target glib/meson.build -@@ -1,9 +1,5 @@ - project('valatest', 'vala', 'c') - --if not meson.is_unity() -- add_global_arguments('-Werror', language : 'c') --endif -- - valadeps = [dependency('glib-2.0', version : '>=2.32'), dependency('gobject-2.0')] - - e = executable('valaprog', 'GLib.Thread.vala', 'retcode.c', dependencies : valadeps) -diff --git a/unittests/linuxliketests.py b/unittests/linuxliketests.py -index 4fcf52e09..a02c99e8f 100644 ---- a/unittests/linuxliketests.py -+++ b/unittests/linuxliketests.py -@@ -298,43 +298,6 @@ class LinuxlikeTests(BasePlatformTests): - self.build() - self._run(self.mtest_command) - -- def test_vala_c_warnings(self): -- ''' -- Test that no warnings are emitted for C code generated by Vala. This -- can't be an ordinary test case because we need to inspect the compiler -- database. -- https://github.com/mesonbuild/meson/issues/864 -- ''' -- if not shutil.which('valac'): -- raise SkipTest('valac not installed.') -- testdir = os.path.join(self.vala_test_dir, '5 target glib') -- self.init(testdir) -- compdb = self.get_compdb() -- vala_command = None -- c_command = None -- for each in compdb: -- if each['file'].endswith('GLib.Thread.c'): -- vala_command = each['command'] -- elif each['file'].endswith('GLib.Thread.vala'): -- continue -- elif each['file'].endswith('retcode.c'): -- c_command = each['command'] -- else: -- m = 'Unknown file {!r} in vala_c_warnings test'.format(each['file']) -- raise AssertionError(m) -- self.assertIsNotNone(vala_command) -- self.assertIsNotNone(c_command) -- # -w suppresses all warnings, should be there in Vala but not in C -- self.assertIn(" -w ", vala_command) -- self.assertNotIn(" -w ", c_command) -- # -Wall enables all warnings, should be there in C but not in Vala -- self.assertNotIn(" -Wall ", vala_command) -- self.assertIn(" -Wall ", c_command) -- # -Werror converts warnings to errors, should always be there since it's -- # injected by an unrelated piece of code and the project has werror=true -- self.assertIn(" -Werror ", vala_command) -- self.assertIn(" -Werror ", c_command) -- - @skipIfNoPkgconfig - def test_qtdependency_pkgconfig_detection(self): - ''' --- -2.41.0 - diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/files/meson-0.63-xtools-support.patch b/sdk_container/src/third_party/portage-stable/dev-build/meson/files/meson-0.63-xtools-support.patch deleted file mode 100644 index ea1e8597b00..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/files/meson-0.63-xtools-support.patch +++ /dev/null @@ -1,26 +0,0 @@ -linkers_detect: detect xtools (Apple ld64 derivative) - -xtools is in use on x86_64 and ppc based darwin Prefix installs. Pick -it up as a valid linker. - -Meson is the only thing known at this point to try and figure out what -linker is in use exactly, so instead of changing the linker (xtools), -just teach Meson about xtools. - -Author: Fabian Groffen -Bug: https://bugs.gentoo.org/868516 - ---- a/mesonbuild/linkers/detect.py -+++ b/mesonbuild/linkers/detect.py -@@ -188,6 +188,11 @@ - v = search_version(o) - - linker = LLVMDynamicLinker(compiler, for_machine, comp_class.LINKER_PREFIX, override, version=v) -+ # detect xtools first, bug #868516 -+ elif 'xtools-' in o.split('\n')[0]: -+ xtools = o.split(' ')[0] -+ v = xtools.split('-')[1] -+ linker = AppleDynamicLinker(compiler, for_machine, comp_class.LINKER_PREFIX, override, version=v) - # first might be apple clang, second is for real gcc, the third is icc - elif e.endswith('(use -v to see invocation)\n') or 'macosx_version' in e or 'ld: unknown option:' in e: - if isinstance(comp_class.LINKER_PREFIX, str): diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/files/unbreak-setuptools-test_installed.patch b/sdk_container/src/third_party/portage-stable/dev-build/meson/files/unbreak-setuptools-test_installed.patch deleted file mode 100644 index 522b8ae81be..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/files/unbreak-setuptools-test_installed.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 23e4e2f20ca698f4070f7da79f5e06249d34b622 Mon Sep 17 00:00:00 2001 -From: Eli Schwartz -Date: Sat, 24 May 2025 22:38:44 -0400 -Subject: [PATCH] Unbreak "Fix setuptools 49 test. (fixes #7452)" - -This unbreaks commit 59910c437a81b94c72e3cbdfc2c3612fae576d6e. - -It kind of maybe appears to fix something but does break it all quite -terribly too. Totally random subdirectories of site-packages/ should -certainly not be added to PYTHONPATH regardless of anything else as that -may include mesonbuild/, leading to `import ast` finding mesonbuild.ast -instead... - -The underlying issue here is that egg .pth is not loaded from PYTHONPATH -at all, which means depending on versions of e.g. setuptools this test -may end up solely testing system-installed meson, or fail entirely. So -we can fix this by manually adding eggs specifically. ---- - run_meson_command_tests.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/run_meson_command_tests.py b/run_meson_command_tests.py -index f9faca9af6fe..7265d3e031e2 100755 ---- a/run_meson_command_tests.py -+++ b/run_meson_command_tests.py -@@ -143,7 +143,7 @@ def test_meson_installed(self): - os.environ['PATH'] = str(bindir) + os.pathsep + os.environ['PATH'] - self._run(python_command + ['setup.py', 'install', '--prefix', str(prefix)]) - # Fix importlib-metadata by appending all dirs in pylibdir -- PYTHONPATHS = [pylibdir] + [x for x in pylibdir.iterdir()] -+ PYTHONPATHS = [pylibdir] + [x for x in pylibdir.iterdir() if x.name.endswith('.egg')] - PYTHONPATHS = [os.path.join(str(x), '') for x in PYTHONPATHS] - os.environ['PYTHONPATH'] = os.pathsep.join(PYTHONPATHS) - # Check that all the files were installed correctly diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.1.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.1.1.ebuild deleted file mode 100644 index 76850ff9752..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.1.1.ebuild +++ /dev/null @@ -1,127 +0,0 @@ -# Copyright 2016-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..12} ) -DISTUTILS_USE_PEP517=setuptools - -if [[ ${PV} = *9999* ]]; then - EGIT_REPO_URI="https://github.com/mesonbuild/meson" - inherit git-r3 -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 ) - " - 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 ~arm64-macos ~x64-macos ~x64-solaris" - fi -fi - -inherit shell-completion distutils-r1 toolchain-funcs - -DESCRIPTION="Open source build system" -HOMEPAGE="https://mesonbuild.com/" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND=" - test? ( - dev-libs/glib:2 - >=dev-libs/gobject-introspection-1.82.0-r2 - app-alternatives/ninja - dev-vcs/git - virtual/zlib:=[static-libs(+)] - virtual/pkgconfig - ) -" -RDEPEND=" - virtual/pkgconfig -" - -PATCHES=( - "${FILESDIR}"/${PN}-0.63-xtools-support.patch -) - -python_prepare_all() { - local disable_unittests=( - # ASAN and sandbox both want control over LD_PRELOAD - # https://bugs.gentoo.org/673016 - -e 's/test_generate_gir_with_address_sanitizer/_&/' - - # ASAN is unsupported on some targets - # https://bugs.gentoo.org/692822 - -e 's/test_pch_with_address_sanitizer/_&/' - - # https://github.com/mesonbuild/meson/issues/7203 - -e 's/test_templates/_&/' - - # Broken due to python2 wrapper - -e 's/test_python_module/_&/' - ) - - sed -i "${disable_unittests[@]}" unittests/*.py || die - - # Broken due to python2 script created by python_wrapper_setup - rm -r "test cases/frameworks/1 boost" || die - - distutils-r1_python_prepare_all -} - -src_test() { - tc-export PKG_CONFIG - if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then - ewarn "Found Qt5Core but not Qt5Gui; skipping tests" - else - distutils-r1_src_test - fi -} - -python_test() { - ( - # test_meson_installed - unset PYTHONDONTWRITEBYTECODE - - # https://bugs.gentoo.org/687792 - unset PKG_CONFIG - - # test_cross_file_system_paths - unset XDG_DATA_HOME - - # 'test cases/unit/73 summary' expects 80 columns - export COLUMNS=80 - - # If JAVA_HOME is not set, meson looks for javac in PATH. - # If javac is in /usr/bin, meson assumes /usr/include is a valid - # JDK include path. Setting JAVA_HOME works around this broken - # autodetection. If no JDK is installed, we should end up with an empty - # value in JAVA_HOME, and the tests should get skipped. - export JAVA_HOME=$(java-config -O 2>/dev/null) - - # Call python3 instead of EPYTHON to satisfy test_meson_uninstalled. - python3 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 -} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.10.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.10.0.ebuild deleted file mode 100644 index 0a2f94bea5f..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.10.0.ebuild +++ /dev/null @@ -1,232 +0,0 @@ -# Copyright 2016-2026 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-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 ~arm64-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-1.82.0-r2 - app-alternatives/ninja - dev-vcs/git - virtual/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[cxx,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-2.80.5-r1 - 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.10.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.10.1.ebuild deleted file mode 100644 index 0a2f94bea5f..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.10.1.ebuild +++ /dev/null @@ -1,232 +0,0 @@ -# Copyright 2016-2026 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-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 ~arm64-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-1.82.0-r2 - app-alternatives/ninja - dev-vcs/git - virtual/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[cxx,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-2.80.5-r1 - 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.10.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.10.2.ebuild index 0a2f94bea5f..c11d7f38bda 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.10.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.10.2.ebuild @@ -50,6 +50,15 @@ IUSE="test test-full" RESTRICT="!test? ( test )" REQUIRED_USE="test-full? ( test )" +# test-full contains various test dependencies, for optional test cases of +# frameworks Meson has support for. These will *usually* get skipped +# automatically if uninstalled. The dep allows: +# - guaranteeing the whole test suite runs transparently without skips +# - reducing brittleness of frameworks that straddle multiple packages +# - Qt is a particular example of this. qt5 is deprecated, but we need qtbase +# consistently installed as long as it isn't masked for removal. TODO: drop +# dev-qt/*:5 from DEPEND once they are masked. + DEPEND=" test? ( dev-libs/glib:2 @@ -85,8 +94,6 @@ DEPEND=" 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.11.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.11.0.ebuild new file mode 100644 index 00000000000..c11d7f38bda --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.11.0.ebuild @@ -0,0 +1,239 @@ +# Copyright 2016-2026 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-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 ~arm64-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 )" + +# test-full contains various test dependencies, for optional test cases of +# frameworks Meson has support for. These will *usually* get skipped +# automatically if uninstalled. The dep allows: +# - guaranteeing the whole test suite runs transparently without skips +# - reducing brittleness of frameworks that straddle multiple packages +# - Qt is a particular example of this. qt5 is deprecated, but we need qtbase +# consistently installed as long as it isn't masked for removal. TODO: drop +# dev-qt/*:5 from DEPEND once they are masked. + +DEPEND=" + test? ( + dev-libs/glib:2 + >=dev-libs/gobject-introspection-1.82.0-r2 + app-alternatives/ninja + dev-vcs/git + virtual/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[cxx,fortran] + sci-libs/netcdf + sys-cluster/openmpi[fortran] + sys-devel/bison + sys-devel/flex + + dev-qt/qtbase:6[gui,widgets] + dev-qt/qtdeclarative:6 + dev-qt/qttools:6 + >=dev-util/gdbus-codegen-2.80.5-r1 + 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.11.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.11.1.ebuild new file mode 100644 index 00000000000..d232bd7fea9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.11.1.ebuild @@ -0,0 +1,242 @@ +# Copyright 2016-2026 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 vala + +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-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 ~arm64-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 )" + +# test-full contains various test dependencies, for optional test cases of +# frameworks Meson has support for. These will *usually* get skipped +# automatically if uninstalled. The dep allows: +# - guaranteeing the whole test suite runs transparently without skips +# - reducing brittleness of frameworks that straddle multiple packages +# - Qt is a particular example of this. qt5 is deprecated, but we need qtbase +# consistently installed as long as it isn't masked for removal. TODO: drop +# dev-qt/*:5 from DEPEND once they are masked. + +DEPEND=" + test? ( + dev-libs/glib:2 + >=dev-libs/gobject-introspection-1.82.0-r2 + app-alternatives/ninja + dev-vcs/git + virtual/zlib:=[static-libs(+)] + virtual/pkgconfig + dev-build/cmake + ) + test-full? ( + || ( dev-lang/rust dev-lang/rust-bin ) + dev-lang/nasm + >=dev-lang/pypy-3 + $(vala_depend) + 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[cxx,fortran] + sci-libs/netcdf + sys-cluster/openmpi[fortran] + sys-devel/bison + sys-devel/flex + + dev-qt/qtbase:6[gui,widgets] + dev-qt/qtdeclarative:6 + dev-qt/qttools:6 + >=dev-util/gdbus-codegen-2.80.5-r1 + 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.2.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.2.3.ebuild deleted file mode 100644 index 0f224856e43..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.2.3.ebuild +++ /dev/null @@ -1,127 +0,0 @@ -# Copyright 2016-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..12} ) -DISTUTILS_USE_PEP517=setuptools - -if [[ ${PV} = *9999* ]]; then - EGIT_REPO_URI="https://github.com/mesonbuild/meson" - inherit git-r3 -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 ) - " - 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 ~arm64-macos ~x64-macos ~x64-solaris" - fi -fi - -inherit shell-completion distutils-r1 toolchain-funcs - -DESCRIPTION="Open source build system" -HOMEPAGE="https://mesonbuild.com/" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND=" - test? ( - dev-libs/glib:2 - >=dev-libs/gobject-introspection-1.82.0-r2 - app-alternatives/ninja - dev-vcs/git - virtual/zlib:=[static-libs(+)] - virtual/pkgconfig - ) -" -RDEPEND=" - virtual/pkgconfig -" - -PATCHES=( - "${FILESDIR}"/${PN}-1.2.1-python-path.patch -) - -python_prepare_all() { - local disable_unittests=( - # ASAN and sandbox both want control over LD_PRELOAD - # https://bugs.gentoo.org/673016 - -e 's/test_generate_gir_with_address_sanitizer/_&/' - - # ASAN is unsupported on some targets - # https://bugs.gentoo.org/692822 - -e 's/test_pch_with_address_sanitizer/_&/' - - # https://github.com/mesonbuild/meson/issues/7203 - -e 's/test_templates/_&/' - - # Broken due to python2 wrapper - -e 's/test_python_module/_&/' - ) - - sed -i "${disable_unittests[@]}" unittests/*.py || die - - # Broken due to python2 script created by python_wrapper_setup - rm -r "test cases/frameworks/1 boost" || die - - distutils-r1_python_prepare_all -} - -src_test() { - tc-export PKG_CONFIG - if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then - ewarn "Found Qt5Core but not Qt5Gui; skipping tests" - else - distutils-r1_src_test - fi -} - -python_test() { - ( - # test_meson_installed - unset PYTHONDONTWRITEBYTECODE - - # https://bugs.gentoo.org/687792 - unset PKG_CONFIG - - # test_cross_file_system_paths - unset XDG_DATA_HOME - - # 'test cases/unit/73 summary' expects 80 columns - export COLUMNS=80 - - # If JAVA_HOME is not set, meson looks for javac in PATH. - # If javac is in /usr/bin, meson assumes /usr/include is a valid - # JDK include path. Setting JAVA_HOME works around this broken - # autodetection. If no JDK is installed, we should end up with an empty - # value in JAVA_HOME, and the tests should get skipped. - export JAVA_HOME=$(java-config -O 2>/dev/null) - - # Call python3 instead of EPYTHON to satisfy test_meson_uninstalled. - python3 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 -} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.3.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.3.2.ebuild deleted file mode 100644 index a6f1cf8ebca..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.3.2.ebuild +++ /dev/null @@ -1,128 +0,0 @@ -# Copyright 2016-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..12} ) -DISTUTILS_USE_PEP517=setuptools - -if [[ ${PV} = *9999* ]]; then - EGIT_REPO_URI="https://github.com/mesonbuild/meson" - inherit git-r3 -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 ) - " - 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 ~arm64-macos ~x64-macos ~x64-solaris" - fi -fi - -inherit shell-completion distutils-r1 toolchain-funcs - -DESCRIPTION="Open source build system" -HOMEPAGE="https://mesonbuild.com/" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND=" - test? ( - dev-libs/glib:2 - >=dev-libs/gobject-introspection-1.82.0-r2 - app-alternatives/ninja - dev-vcs/git - virtual/zlib:=[static-libs(+)] - virtual/pkgconfig - ) -" -RDEPEND=" - virtual/pkgconfig -" - -PATCHES=( - "${FILESDIR}"/${PN}-1.2.1-python-path.patch - - # backport fix for hiding compiler warnings (such as Modern C) in vala and cython - "${FILESDIR}"/0001-ninja-backend-don-t-hide-all-compiler-warnings-for-t.patch -) - -python_prepare_all() { - local disable_unittests=( - # ASAN and sandbox both want control over LD_PRELOAD - # https://bugs.gentoo.org/673016 - -e 's/test_generate_gir_with_address_sanitizer/_&/' - - # ASAN is unsupported on some targets - # https://bugs.gentoo.org/692822 - -e 's/test_pch_with_address_sanitizer/_&/' - ) - - sed -i "${disable_unittests[@]}" unittests/*.py || die - - # Broken due to python2 script created by python_wrapper_setup - rm -r "test cases/frameworks/1 boost" || die - - distutils-r1_python_prepare_all -} - -src_test() { - tc-export PKG_CONFIG - if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then - ewarn "Found Qt5Core but not Qt5Gui; skipping tests" - else - distutils-r1_src_test - fi -} - -python_test() { - ( - # remove unwanted python_wrapper_setup contents - # We actually do want to non-error if python2 is installed and tested. - remove="${T}/${EPYTHON}/bin:" - PATH=${PATH/${remove}/} - - # test_meson_installed - unset PYTHONDONTWRITEBYTECODE - - # https://bugs.gentoo.org/687792 - unset PKG_CONFIG - - # test_cross_file_system_paths - unset XDG_DATA_HOME - - # 'test cases/unit/73 summary' expects 80 columns - export COLUMNS=80 - - # If JAVA_HOME is not set, meson looks for javac in PATH. - # If javac is in /usr/bin, meson assumes /usr/include is a valid - # JDK include path. Setting JAVA_HOME works around this broken - # autodetection. If no JDK is installed, we should end up with an empty - # value in JAVA_HOME, and the tests should get skipped. - export JAVA_HOME=$(java-config -O 2>/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 -} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.4.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.4.2.ebuild deleted file mode 100644 index 3045d66bbb5..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.4.2.ebuild +++ /dev/null @@ -1,192 +0,0 @@ -# Copyright 2016-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..12} ) -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 - " - 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 ~arm64-macos ~x64-macos ~x64-solaris" - fi -fi - -DESCRIPTION="Open source build system" -HOMEPAGE="https://mesonbuild.com/" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND=" - test? ( - dev-libs/glib:2 - >=dev-libs/gobject-introspection-1.82.0-r2 - app-alternatives/ninja - dev-vcs/git - virtual/zlib:=[static-libs(+)] - virtual/pkgconfig - ) -" -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-${PV}.3 meson-reference.3 - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.5.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.5.2.ebuild deleted file mode 100644 index b3882be5ccd..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.5.2.ebuild +++ /dev/null @@ -1,188 +0,0 @@ -# Copyright 2016-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..13} ) -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 - " - 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 ~arm64-macos ~x64-macos ~x64-solaris" - fi -fi - -DESCRIPTION="Open source build system" -HOMEPAGE="https://mesonbuild.com/" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND=" - test? ( - dev-libs/glib:2 - >=dev-libs/gobject-introspection-1.82.0-r2 - app-alternatives/ninja - dev-vcs/git - virtual/zlib:=[static-libs(+)] - virtual/pkgconfig - ) -" -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.6.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.6.1.ebuild deleted file mode 100644 index 8c244c30782..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.6.1.ebuild +++ /dev/null @@ -1,225 +0,0 @@ -# Copyright 2016-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..13} ) -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 - " - 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 ~arm64-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-1.82.0-r2 - app-alternatives/ninja - dev-vcs/git - virtual/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/qttools:6 - >=dev-util/gdbus-codegen-2.80.5-r1 - 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.7.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.7.2.ebuild deleted file mode 100644 index 82761148749..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.7.2.ebuild +++ /dev/null @@ -1,230 +0,0 @@ -# Copyright 2016-2026 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-eschwartz-20250723-r1 )" - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eschwartz.asc - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" - fi -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-1.82.0-r2 - app-alternatives/ninja - dev-vcs/git - virtual/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-2.80.5-r1 - 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.8.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.8.5.ebuild deleted file mode 100644 index 24f3e1159a0..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.8.5.ebuild +++ /dev/null @@ -1,232 +0,0 @@ -# Copyright 2016-2026 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-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 ~arm64-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-1.82.0-r2 - app-alternatives/ninja - dev-vcs/git - virtual/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-2.80.5-r1 - 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.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.9.1.ebuild deleted file mode 100644 index ee0a748e903..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.9.1.ebuild +++ /dev/null @@ -1,232 +0,0 @@ -# Copyright 2016-2026 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-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 ~arm64-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-1.82.0-r2 - app-alternatives/ninja - dev-vcs/git - virtual/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[cxx,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-2.80.5-r1 - 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.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.9.2.ebuild index 6a076c6a137..eda64cd0e24 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.9.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.9.2.ebuild @@ -50,6 +50,15 @@ IUSE="test test-full" RESTRICT="!test? ( test )" REQUIRED_USE="test-full? ( test )" +# test-full contains various test dependencies, for optional test cases of +# frameworks Meson has support for. These will *usually* get skipped +# automatically if uninstalled. The dep allows: +# - guaranteeing the whole test suite runs transparently without skips +# - reducing brittleness of frameworks that straddle multiple packages +# - Qt is a particular example of this. qt5 is deprecated, but we need qtbase +# consistently installed as long as it isn't masked for removal. TODO: drop +# dev-qt/*:5 from DEPEND once they are masked. + DEPEND=" test? ( dev-libs/glib:2 @@ -85,8 +94,6 @@ DEPEND=" 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-9999.ebuild index 0a2f94bea5f..17a5b79633c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-9999.ebuild @@ -6,7 +6,7 @@ EAPI=8 PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) DISTUTILS_USE_PEP517=setuptools -inherit shell-completion edo distutils-r1 flag-o-matic toolchain-funcs +inherit shell-completion edo distutils-r1 flag-o-matic toolchain-funcs vala if [[ ${PV} = *9999* ]]; then EGIT_REPO_URI="https://github.com/mesonbuild/meson" @@ -50,6 +50,15 @@ IUSE="test test-full" RESTRICT="!test? ( test )" REQUIRED_USE="test-full? ( test )" +# test-full contains various test dependencies, for optional test cases of +# frameworks Meson has support for. These will *usually* get skipped +# automatically if uninstalled. The dep allows: +# - guaranteeing the whole test suite runs transparently without skips +# - reducing brittleness of frameworks that straddle multiple packages +# - Qt is a particular example of this. qt5 is deprecated, but we need qtbase +# consistently installed as long as it isn't masked for removal. TODO: drop +# dev-qt/*:5 from DEPEND once they are masked. + DEPEND=" test? ( dev-libs/glib:2 @@ -64,7 +73,7 @@ DEPEND=" || ( dev-lang/rust dev-lang/rust-bin ) dev-lang/nasm >=dev-lang/pypy-3 - dev-lang/vala + $(vala_depend) dev-python/cython virtual/fortran virtual/jdk @@ -85,8 +94,6 @@ DEPEND=" 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 @@ -187,6 +194,9 @@ python_test() { # breaks rust. filter-lto + # bug 513658 + has_version -b dev-lang/vala && vala_setup + # remove unwanted python_wrapper_setup contents # We actually do want to non-error if python2 is installed and tested. remove="${T}/${EPYTHON}/bin:" 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 7fb81a86d65..5ebbc2a1286 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,3 @@ DIST azure-sdk-for-cpp-1144e4ad18f63bc2084552e1b4fbf737c974261a.tar.gz 3420176 BLAKE2B 3e1953e823894bc788827dd0091334609daf3f73aa2279704a4b8b43c639f8d729430ad15503a6f0be894af8aae05c89014aba6196b4ce0cf78f5f5e8f940c7b SHA512 96919f4c25ca7af915038a460e48adbd448dc44dc0f75ab3121af62f895c7f6493efa82b34dde40cbc6d99e3d10c88d27ad2ac5be4053585f10f6ed4a372707a DIST azure-sdk-for-cpp-11a2a38aa79daf573c2a16353dd9121536ac9fc1.tar.gz 3375477 BLAKE2B ee381975a7464c62b6a2d6a7aeaa52118cf6941a6c91b81eb8e056cc5deef9cd0d23dc7e56f273796fa906a064e9e23acb763762013b9c27837788cc261253ce SHA512 892223ff787bf68dd782e058962120b06f12891383fe26e157d9efd59ecc4d5d216f4fb1df6d46a46a57167ec1c3cfe864757e4e198a3c8a6a721603d7c51695 +DIST azure-sdk-for-cpp-3522b7024942ab10212b9f2df072e4473e6399e2.tar.gz 3453209 BLAKE2B b87b07573b233d4639764a0455c6bd16af3596a6335a08412ccf51147396e093c52e16bc10338734a17835da663e324cbbb1c413ce479b7f7bdbf7c3c48b42c7 SHA512 f0ca0b472f36b54c6cbee7cc748a3078d4c00f9e6a4fbb2eab7226754a48543adfa22ec854a0d8eebd3156b813bd3c7187f4cf9d6f662b6e118f8bd44f694776 diff --git a/sdk_container/src/third_party/portage-stable/dev-cpp/azure-core/azure-core-1.16.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-cpp/azure-core/azure-core-1.16.3.ebuild new file mode 100644 index 00000000000..9c8239ab29c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-cpp/azure-core/azure-core-1.16.3.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +COMMIT="3522b7024942ab10212b9f2df072e4473e6399e2" +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 ~arm64" +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-db/sqlite/Manifest b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/Manifest index 7c86fce1e24..bc4f208bd4c 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,6 @@ DIST sqlite-doc-3510200.zip 11620595 BLAKE2B c799fc3285b61200ff4cbdbfd0cd126183d84fe71db9f1bcb59db93117deadd38f9a5ca719768ba0cd923daa2f68da759dc887cc18923fedb83b5cb40707e74b SHA512 7f6151f61748c6b9c081be5b52755f963a913009864e667cadd014744d14009f28e8ff61e940e971f9db69144106a51e87e88c25a12d5b157decc58178e63d59 DIST sqlite-doc-3510300.zip 11638860 BLAKE2B f60c59023f9c6ceaeedf16ca20b71720c962ed5b3f2550c54f8c06b156f6d2ef38e9673a833e60f7df2072fcbb2ba1dd5c7b61bc6827a06b333ae92abb7a013e SHA512 331905c02fb0f7840d76bc75706790767caf9468ef642877c00830aee4622b0bdf4b484d48749b4400bc27f7f865309b7371ee2042a03dca12ef75e330f4e5e9 +DIST sqlite-doc-3530100.zip 11796231 BLAKE2B aff3462d5d9ccdac9cb7bed65d4ed1b52ae8268c6eff738804ba32bb6852fee4ce0a934ccaf47259cd86b0d832dc57571652816159411493d435d6f5f4029ed0 SHA512 fe1234a91408536c899991cd50633fc755544206931560e0308cf9aa9114f4161fe33eb6046eb3f4c62a0d94439108ad32c2ef5cedb410c59c89d70c1260118a DIST sqlite-src-3510200.zip 14202690 BLAKE2B d723603b6ba38a980442c730827c8ac3b6fef2a3e431ce9afefc3814c184873794e5005850a4e75ced56fab4a062a072ff9005b08febed1119fa5e2fda1de14e SHA512 89e1c76d6cae41f2ececb85af2e8bfd5cf60e8b9e3d8a48f98f3913513762bc8846f6b5c28e76cca12505ce670cdaf6ca95ecb2267b9527e47929fb928847605 DIST sqlite-src-3510300.zip 14206164 BLAKE2B e9526059cc84153a3564ec2a42484f6219985006130d5291c2c20d063c0002ea607fa5da2293db658e0f36388e44c98a1882185c35dca09d32d8b24a7365892e SHA512 2bf2d0fd824580a5f4d4312c1c350459fce9342de45ba33ba521f539ef455ce0afe35ea58aefc3f39f7a353f998f4b9b98ffafe56d65582ef6ae78c2ec503125 +DIST sqlite-src-3530100.zip 14515734 BLAKE2B 4677b83156ded5d65336161dc6b565268ba5d39bf110e3b69a71809b7a9ae1511684a2150d268c298f9991a316ac2cda7adea2bd692292d75a78f05d5807cd0d SHA512 e6b429dbec2056e1e90557896940f46b0976b9c4a3cfa6890d23f690fcab4d7cff2f2dea3a3d2cfc5faf87d0d6feb318c70212ec101008416d106189c6bc0133 diff --git a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.51.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.51.3.ebuild index 92381ac6747..87282ea0581 100644 --- a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.51.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.51.3.ebuild @@ -24,7 +24,7 @@ else " S="${WORKDIR}/${PN}-src-${SRC_PV}" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" fi LICENSE="public-domain" @@ -372,7 +372,11 @@ multilib_src_test() { addpredict "/ÿ.db" emake tclextension - emake -Onone $(usex test-full 'xdevtest' 'test') + if multilib_is_native_abi; then + emake -Onone $(usex test-full 'xdevtest' 'test') + else + emake srctree-check fuzztest sourcetest $TESTPROGS testrunner + fi } multilib_src_install() { diff --git a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.53.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.53.1.ebuild new file mode 100644 index 00000000000..992e2a6461d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.53.1.ebuild @@ -0,0 +1,445 @@ +# Copyright 1999-2026 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/2026/${PN}-src-${SRC_PV}.zip + doc? ( https://sqlite.org/2026/${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 ~arm64-macos ~x64-macos ~x64-solaris" +fi + +LICENSE="public-domain" +SLOT="3" +IUSE="debug doc icu +readline secure-delete static-libs tcl test test-full tools" +REQUIRED_USE="test-full? ( test )" +RESTRICT="!test? ( test )" + +RDEPEND=" + virtual/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 + +_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_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 tclextension + if multilib_is_native_abi; then + emake -Onone $(usex test-full 'xdevtest' 'test') + else + emake srctree-check fuzztest sourcetest $TESTPROGS testrunner + fi +} + +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_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 17dbb4dac38..7ec59dcc8c0 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,2 +1,3 @@ DIST gdb-16.3.tar.xz 24434444 BLAKE2B a75c8655b39580a7f6e0d85ef663f60932fbed9a92ade6d58a2e99bc8b1416b36f8410c66c23bdada83e221a65c1cdfdeb7bb7ae9a930c443557864a1769dbee SHA512 fffd6689c3405466a179670b04720dc825e4f210a761f63dd2b33027432f8cd5d1c059c431a5ec9e165eedd1901220b5329d73c522f9a444788888c731b29e9c DIST gdb-17.1.tar.xz 24663896 BLAKE2B 35de074a50c747e6ed42faee8a87b3898b57d33e9667c9001eaf8b54c8cce555f7b16642d1583c1b4aabb45fc5e5db8c33d9f5786351e736f2db2f90d28a07ed SHA512 f1a6751e439a2128fecf3eae8b57c1608a0dc7cfe79b4356a937874e5a42bb2df0aba36eb6a9452c41966908b9a59076c7cad9720f684688ab956b65080f1d7c +DIST gdb-17.2.tar.xz 24658624 BLAKE2B 3c6c893e1d26d534918fb07b64f2e5b368825a64f888171f07443c5ebed456e7c26ed223d78bf304ee5f145c6f3c08c790c993c7b955d168e2fd8e656c6e1e9a SHA512 7794c5a185be7ed5e7ad1000c4ff7d8497c80425a1bc108aab8fd3dd8ecdde034e294dfd65b25c6b0dcd8ed2a240caf07293f3e73791b6cfc890d580d0af4581 diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-16.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-16.3.ebuild index 251ee127c64..8f574e53c23 100644 --- a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-16.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-16.3.ebuild @@ -37,7 +37,7 @@ case ${PV} in 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 + https://distfiles.gentoo.org/pub/proj/toolchain/gdb/snapshots/gdb-weekly-${MY_PV}.tar.xz " S="${WORKDIR}/${PN}-${MY_PV}" @@ -51,7 +51,7 @@ case ${PV} in 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 + https://distfiles.gentoo.org/pub/proj/toolchain/gdb/snapshots/gdb-${MY_PV}.tar.xz " S="${WORKDIR}/${PN}-${MY_PV}" ;; @@ -71,8 +71,7 @@ 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} + ${PATCH_DEV:+https://distfiles.gentoo.org/pub/proj/toolchain/gdb/patches/${P}-patches-${PATCH_VER}.tar.xz} " LICENSE="GPL-3+ LGPL-2.1+" diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-17.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-17.1.ebuild index eb6b1de2d3c..b4197abd6a0 100644 --- a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-17.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-17.1.ebuild @@ -37,7 +37,7 @@ case ${PV} in 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 + https://distfiles.gentoo.org/pub/proj/toolchain/gdb/snapshots/gdb-weekly-${MY_PV}.tar.xz " S="${WORKDIR}/${PN}-${MY_PV}" @@ -51,7 +51,7 @@ case ${PV} in 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 + https://distfiles.gentoo.org/pub/proj/toolchain/gdb/snapshots/gdb-${MY_PV}.tar.xz " S="${WORKDIR}/${PN}-${MY_PV}" ;; @@ -71,8 +71,7 @@ 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} + ${PATCH_DEV:+https://distfiles.gentoo.org/pub/proj/toolchain/gdb/patches/${P}-patches-${PATCH_VER}.tar.xz} " LICENSE="GPL-3+ LGPL-2.1+" diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-17.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-17.2.ebuild new file mode 100644 index 00000000000..9352858cc0f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-17.2.ebuild @@ -0,0 +1,354 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# See https://sourceware.org/gdb/wiki/DistroAdvice for general packaging +# tips & notes. + +GUILE_COMPAT=( 2-2 3-0 ) +PYTHON_COMPAT=( python3_{11..14} ) +inherit flag-o-matic guile-single linux-info python-single-r1 strip-linguas toolchain-funcs + +export CTARGET=${CTARGET:-${CHOST}} + +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } + +case ${PV} in + 9999*) + # live git tree + EGIT_REPO_URI=" + https://sourceware.org/git/binutils-gdb.git + https://git.sr.ht/~sourceware/binutils-gdb + https://gitlab.com/x86-binutils/binutils-gdb.git + " + inherit git-r3 + SRC_URI="" + ;; + *.*.50_p2???????|*.*.90_p2???????) + # Weekly snapshots + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-weekly-${MY_PV}.tar.xz + https://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${MY_PV}.tar.xz + https://distfiles.gentoo.org/pub/proj/toolchain/gdb/snapshots/gdb-weekly-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" + + # e.g. 13.1.90_p20230325 is a snapshot on the stable branch, so it's fine + if [[ ${PV} == *.[123456789].9?_p2??????? ]] ; then + REGULAR_RELEASE=1 + fi + ;; + *.*.9?) + # Prereleases + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-${MY_PV}.tar.xz + https://distfiles.gentoo.org/pub/proj/toolchain/gdb/snapshots/gdb-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" + ;; + *) + # Normal upstream release + SRC_URI=" + mirror://gnu/gdb/${P}.tar.xz + https://sourceware.org/pub/gdb/releases/${P}.tar.xz + " + + REGULAR_RELEASE=1 +esac + +PATCH_DEV="" +PATCH_VER="" +DESCRIPTION="GNU debugger" +HOMEPAGE="https://sourceware.org/gdb/" +SRC_URI=" + ${SRC_URI} + ${PATCH_DEV:+https://distfiles.gentoo.org/pub/proj/toolchain/gdb/patches/${P}-patches-${PATCH_VER}.tar.xz} +" + +LICENSE="GPL-3+ LGPL-2.1+" +SLOT="0" +IUSE="babeltrace cet +debuginfod guile lzma multitarget nls +python rocm +server sim source-highlight test vanilla +xml xxhash zstd" +if [[ -n ${REGULAR_RELEASE} ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" +fi +REQUIRED_USE=" + guile? ( ${GUILE_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) + rocm? ( multitarget ) +" +RESTRICT="!test? ( test )" + +# Enable dev-libs/libaio support for tracing Asynchronous I/O operations - - Enable stack backtraces (-k flag) via sys-libs/libunwind - Enable stack backtraces (-k flag) via dev-libs/elfutils + + Make color support available via sys-libs/ncurses. + At runtime, if enabled, defaults to 'auto', but can be + disabled with --color never. + + + Enable stack backtraces (-k flag) via sys-libs/libunwind + strace/strace diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.16.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.16.ebuild deleted file mode 100644 index 9cb61932f36..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.16.ebuild +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools edo flag-o-matic toolchain-funcs verify-sig - -DESCRIPTION="Useful diagnostic, instructional, and debugging tool" -HOMEPAGE="https://strace.io/" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://github.com/strace/strace.git" - inherit git-r3 -else - SRC_URI=" - https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz - verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz.asc ) - " - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -fi - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc - -LICENSE="LGPL-2.1+ test? ( GPL-2+ )" -SLOT="0" -IUSE="aio perl selinux static test unwind elfutils" -RESTRICT="!test? ( test )" -REQUIRED_USE="?? ( unwind elfutils )" - -BDEPEND=" - virtual/pkgconfig - verify-sig? ( >=sec-keys/openpgp-keys-strace-20151021 ) -" -LIB_DEPEND=" - unwind? ( sys-libs/libunwind[static-libs(+)] ) - elfutils? ( dev-libs/elfutils[static-libs(+)] ) - selinux? ( sys-libs/libselinux[static-libs(+)] ) -" -# strace only uses the header from libaio to decode structs -DEPEND=" - static? ( ${LIB_DEPEND} ) - aio? ( >=dev-libs/libaio-0.3.106 ) -" -RDEPEND=" - !static? ( ${LIB_DEPEND//\[static-libs(+)]} ) - perl? ( dev-lang/perl ) -" - -PATCHES=( - "${FILESDIR}/${PN}-6.5-static.patch" -) - -src_prepare() { - default - - if [[ ! -e configure ]] ; then - # git generation - sed /autoreconf/d -i bootstrap || die - edo ./bootstrap - [[ ! -e CREDITS ]] && cp CREDITS{.in,} - fi - - eautoreconf - - # Stub out the -k test since it's known to be flaky. bug #545812 - sed -i '1iexit 77' tests*/strace-k.test || die -} - -src_configure() { - # Set up the default build settings, and then use the names strace expects. - tc-export_build_env BUILD_{CC,CPP} - local v bv - for v in CC CPP {C,CPP,LD}FLAGS ; do - bv="BUILD_${v}" - export "${v}_FOR_BUILD=${!bv}" - done - - filter-lfs-flags # configure handles this sanely - - export ac_cv_header_libaio_h=$(usex aio) - use elibc_musl && export ac_cv_header_stdc=no - - local myeconfargs=( - --disable-gcc-Werror - - # Don't require mpers support on non-multilib systems. #649560 - --enable-mpers=check - - # We don't want to pin to exact linux-headers versions (bug #950309) - --enable-bundled=yes - - $(use_enable static) - $(use_with unwind libunwind) - $(use_with elfutils libdw) - $(use_with selinux libselinux) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - if has usersandbox ${FEATURES} ; then - # bug #643044 - ewarn "Test suite is known to fail with FEATURES=usersandbox -- skipping ..." - return 0 - fi - - default -} - -src_install() { - default - - if use perl ; then - exeinto /usr/bin - doexe src/strace-graph - fi - - dodoc CREDITS -} diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.17.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.17.ebuild deleted file mode 100644 index 9cb61932f36..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.17.ebuild +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools edo flag-o-matic toolchain-funcs verify-sig - -DESCRIPTION="Useful diagnostic, instructional, and debugging tool" -HOMEPAGE="https://strace.io/" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://github.com/strace/strace.git" - inherit git-r3 -else - SRC_URI=" - https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz - verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz.asc ) - " - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -fi - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc - -LICENSE="LGPL-2.1+ test? ( GPL-2+ )" -SLOT="0" -IUSE="aio perl selinux static test unwind elfutils" -RESTRICT="!test? ( test )" -REQUIRED_USE="?? ( unwind elfutils )" - -BDEPEND=" - virtual/pkgconfig - verify-sig? ( >=sec-keys/openpgp-keys-strace-20151021 ) -" -LIB_DEPEND=" - unwind? ( sys-libs/libunwind[static-libs(+)] ) - elfutils? ( dev-libs/elfutils[static-libs(+)] ) - selinux? ( sys-libs/libselinux[static-libs(+)] ) -" -# strace only uses the header from libaio to decode structs -DEPEND=" - static? ( ${LIB_DEPEND} ) - aio? ( >=dev-libs/libaio-0.3.106 ) -" -RDEPEND=" - !static? ( ${LIB_DEPEND//\[static-libs(+)]} ) - perl? ( dev-lang/perl ) -" - -PATCHES=( - "${FILESDIR}/${PN}-6.5-static.patch" -) - -src_prepare() { - default - - if [[ ! -e configure ]] ; then - # git generation - sed /autoreconf/d -i bootstrap || die - edo ./bootstrap - [[ ! -e CREDITS ]] && cp CREDITS{.in,} - fi - - eautoreconf - - # Stub out the -k test since it's known to be flaky. bug #545812 - sed -i '1iexit 77' tests*/strace-k.test || die -} - -src_configure() { - # Set up the default build settings, and then use the names strace expects. - tc-export_build_env BUILD_{CC,CPP} - local v bv - for v in CC CPP {C,CPP,LD}FLAGS ; do - bv="BUILD_${v}" - export "${v}_FOR_BUILD=${!bv}" - done - - filter-lfs-flags # configure handles this sanely - - export ac_cv_header_libaio_h=$(usex aio) - use elibc_musl && export ac_cv_header_stdc=no - - local myeconfargs=( - --disable-gcc-Werror - - # Don't require mpers support on non-multilib systems. #649560 - --enable-mpers=check - - # We don't want to pin to exact linux-headers versions (bug #950309) - --enable-bundled=yes - - $(use_enable static) - $(use_with unwind libunwind) - $(use_with elfutils libdw) - $(use_with selinux libselinux) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - if has usersandbox ${FEATURES} ; then - # bug #643044 - ewarn "Test suite is known to fail with FEATURES=usersandbox -- skipping ..." - return 0 - fi - - default -} - -src_install() { - default - - if use perl ; then - exeinto /usr/bin - doexe src/strace-graph - fi - - dodoc CREDITS -} diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.18.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.18.ebuild deleted file mode 100644 index 559d09c1bc4..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.18.ebuild +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools edo flag-o-matic toolchain-funcs verify-sig - -DESCRIPTION="Useful diagnostic, instructional, and debugging tool" -HOMEPAGE="https://strace.io/" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://github.com/strace/strace.git" - inherit git-r3 -else - SRC_URI=" - https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz - verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz.asc ) - " - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -fi - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc - -LICENSE="LGPL-2.1+ test? ( GPL-2+ )" -SLOT="0" -IUSE="aio perl selinux static test unwind elfutils" -RESTRICT="!test? ( test )" -REQUIRED_USE="?? ( unwind elfutils )" - -BDEPEND=" - virtual/pkgconfig - verify-sig? ( >=sec-keys/openpgp-keys-strace-20251130 ) -" -LIB_DEPEND=" - unwind? ( sys-libs/libunwind[static-libs(+)] ) - elfutils? ( dev-libs/elfutils[static-libs(+)] ) - selinux? ( sys-libs/libselinux[static-libs(+)] ) -" -# strace only uses the header from libaio to decode structs -DEPEND=" - static? ( ${LIB_DEPEND} ) - aio? ( >=dev-libs/libaio-0.3.106 ) -" -RDEPEND=" - !static? ( ${LIB_DEPEND//\[static-libs(+)]} ) - perl? ( dev-lang/perl ) -" - -PATCHES=( - "${FILESDIR}/${PN}-6.5-static.patch" -) - -src_prepare() { - default - - if [[ ! -e configure ]] ; then - # git generation - sed /autoreconf/d -i bootstrap || die - edo ./bootstrap - [[ ! -e CREDITS ]] && cp CREDITS{.in,} - fi - - eautoreconf - - # Stub out the -k test since it's known to be flaky. bug #545812 - sed -i '1iexit 77' tests*/strace-k.test || die -} - -src_configure() { - # Set up the default build settings, and then use the names strace expects. - tc-export_build_env BUILD_{CC,CPP} - local v bv - for v in CC CPP {C,CPP,LD}FLAGS ; do - bv="BUILD_${v}" - export "${v}_FOR_BUILD=${!bv}" - done - - filter-lfs-flags # configure handles this sanely - - export ac_cv_header_libaio_h=$(usex aio) - use elibc_musl && export ac_cv_header_stdc=no - - local myeconfargs=( - --disable-gcc-Werror - - # Don't require mpers support on non-multilib systems. #649560 - --enable-mpers=check - - # We don't want to pin to exact linux-headers versions (bug #950309) - --enable-bundled=yes - - $(use_enable static) - $(use_with unwind libunwind) - $(use_with elfutils libdw) - $(use_with selinux libselinux) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - if has usersandbox ${FEATURES} ; then - # bug #643044 - ewarn "Test suite is known to fail with FEATURES=usersandbox -- skipping ..." - return 0 - fi - - default -} - -src_install() { - default - - if use perl ; then - exeinto /usr/bin - doexe src/strace-graph - fi - - dodoc CREDITS -} diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-7.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-7.0-r1.ebuild new file mode 100644 index 00000000000..81359e48de5 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-7.0-r1.ebuild @@ -0,0 +1,129 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools edo flag-o-matic toolchain-funcs verify-sig + +DESCRIPTION="Useful diagnostic, instructional, and debugging tool" +HOMEPAGE="https://strace.io/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/strace/strace.git" + inherit git-r3 +else + SRC_URI=" + https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz + verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz.asc ) + " + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc + +LICENSE="LGPL-2.1+ test? ( GPL-2+ )" +SLOT="0" +IUSE="aio ncurses perl selinux static test unwind elfutils" +RESTRICT="!test? ( test )" +REQUIRED_USE="?? ( unwind elfutils )" + +BDEPEND=" + virtual/pkgconfig + verify-sig? ( >=sec-keys/openpgp-keys-strace-20251130 ) +" +STATIC_DEPEND=" + elfutils? ( dev-libs/elfutils[static-libs(+)] ) + ncurses? ( sys-libs/ncurses[static-libs(+)] ) + selinux? ( sys-libs/libselinux[static-libs(+)] ) + unwind? ( sys-libs/libunwind[static-libs(+)] ) +" +LIB_DEPEND=" + elfutils? ( dev-libs/elfutils ) + ncurses? ( sys-libs/ncurses:= ) + selinux? ( sys-libs/libselinux ) + unwind? ( sys-libs/libunwind:= ) +" +# strace only uses the header from libaio to decode structs +DEPEND=" + static? ( ${STATIC_DEPEND} ) + !static? ( ${LIB_DEPEND} ) + aio? ( >=dev-libs/libaio-0.3.106 ) +" +RDEPEND=" + !static? ( ${LIB_DEPEND} ) + perl? ( dev-lang/perl ) +" + +PATCHES=( + "${FILESDIR}/${PN}-6.5-static.patch" +) + +src_prepare() { + default + + if [[ ! -e configure ]] ; then + # git generation + sed /autoreconf/d -i bootstrap || die + edo ./bootstrap + [[ ! -e CREDITS ]] && cp CREDITS{.in,} + fi + + eautoreconf + + # Stub out the -k test since it's known to be flaky. bug #545812 + sed -i '1iexit 77' tests*/strace-k.test || die +} + +src_configure() { + # Set up the default build settings, and then use the names strace expects. + tc-export_build_env BUILD_{CC,CPP} + local v bv + for v in CC CPP {C,CPP,LD}FLAGS ; do + bv="BUILD_${v}" + export "${v}_FOR_BUILD=${!bv}" + done + + filter-lfs-flags # configure handles this sanely + + export ac_cv_header_libaio_h=$(usex aio) + export ac_cv_header_termcap_h=$(usex ncurses) + use elibc_musl && export ac_cv_header_stdc=no + + local myeconfargs=( + --disable-gcc-Werror + + # Don't require mpers support on non-multilib systems. #649560 + --enable-mpers=check + + # We don't want to pin to exact linux-headers versions (bug #950309) + --enable-bundled=yes + + $(use_enable static) + $(use_with unwind libunwind) + $(use_with elfutils libdw) + $(use_with selinux libselinux) + ) + + econf "${myeconfargs[@]}" +} + +src_test() { + if has usersandbox ${FEATURES} ; then + # bug #643044 + ewarn "Test suite is known to fail with FEATURES=usersandbox -- skipping ..." + return 0 + fi + + default +} + +src_install() { + default + + if use perl ; then + exeinto /usr/bin + doexe src/strace-graph + fi + + dodoc CREDITS +} diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-9999.ebuild index 1f92cf7fe7e..81359e48de5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -23,7 +23,7 @@ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc LICENSE="LGPL-2.1+ test? ( GPL-2+ )" SLOT="0" -IUSE="aio perl selinux static test unwind elfutils" +IUSE="aio ncurses perl selinux static test unwind elfutils" RESTRICT="!test? ( test )" REQUIRED_USE="?? ( unwind elfutils )" @@ -31,18 +31,26 @@ BDEPEND=" virtual/pkgconfig verify-sig? ( >=sec-keys/openpgp-keys-strace-20251130 ) " -LIB_DEPEND=" - unwind? ( sys-libs/libunwind[static-libs(+)] ) +STATIC_DEPEND=" elfutils? ( dev-libs/elfutils[static-libs(+)] ) + ncurses? ( sys-libs/ncurses[static-libs(+)] ) selinux? ( sys-libs/libselinux[static-libs(+)] ) + unwind? ( sys-libs/libunwind[static-libs(+)] ) +" +LIB_DEPEND=" + elfutils? ( dev-libs/elfutils ) + ncurses? ( sys-libs/ncurses:= ) + selinux? ( sys-libs/libselinux ) + unwind? ( sys-libs/libunwind:= ) " # strace only uses the header from libaio to decode structs DEPEND=" - static? ( ${LIB_DEPEND} ) + static? ( ${STATIC_DEPEND} ) + !static? ( ${LIB_DEPEND} ) aio? ( >=dev-libs/libaio-0.3.106 ) " RDEPEND=" - !static? ( ${LIB_DEPEND//\[static-libs(+)]} ) + !static? ( ${LIB_DEPEND} ) perl? ( dev-lang/perl ) " @@ -78,6 +86,7 @@ src_configure() { filter-lfs-flags # configure handles this sanely export ac_cv_header_libaio_h=$(usex aio) + export ac_cv_header_termcap_h=$(usex ncurses) use elibc_musl && export ac_cv_header_stdc=no local myeconfargs=( diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go-bootstrap/go-bootstrap-1.24.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go-bootstrap/go-bootstrap-1.24.6.ebuild index cb70daab317..2dcea26e7aa 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go-bootstrap/go-bootstrap-1.24.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/go-bootstrap/go-bootstrap-1.24.6.ebuild @@ -35,7 +35,7 @@ SRC_URI=" LICENSE="BSD" SLOT="0" -KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="-* amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="abi_mips_n64 abi_mips_o32 big-endian" RESTRICT="strip" QA_PREBUILT="*" diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/Manifest b/sdk_container/src/third_party/portage-stable/dev-lang/go/Manifest index 5757ce83257..ebd9553fd26 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-lang/go/Manifest @@ -1,6 +1,10 @@ DIST go1.24.11.src.tar.gz 30801851 BLAKE2B 04463c4a238b0303df88ad2d7670bdb208deced4f38c9bfc2b98ec04cc2e182a03fcf029334481507efa766b17e81c92bac9d63fc93948f94ee2b2c8adff40b4 SHA512 9344039d231e50b63f52acbdd6cf2f483a4052d95b5fcc3e8a6d8fde80f0195f66ac5588302809ff0425de4d7c6b428ae842ec33b468c7020873acedbdea16ef DIST go1.24.12.src.tar.gz 30803950 BLAKE2B b3f7d2f1392d3337e6645c4fa53e2e53c4258aa9ecf12b38a10305d172f0c2172d98d273dd030c17f82df17fa3cd5ec464986836261ffdb3324e8f97b2f2b437 SHA512 2de51c56f7ca04003b16d0fecc4cb35a3c5a42bd54f4da1f1e49d45b702d7a872057756d389f2283b4f7283fb33f0618465e231a6333b7cb6cfff98f67b2454e +DIST go1.25.10.src.tar.gz 32000721 BLAKE2B 020336996667a6bb5fd9f3b4af8a8a2012d4c1f162301b83db65f62820945a4f927c76cfc8b5ec183b7ddb12587d74aecbdf17a0c4dd3e66ddc461e7af716919 SHA512 4a938b18d00af583d1ab8592386b8c71385997b1c8fab661549232ee84ac2f42716dc8304c38f1f462335a12048da19611bb614a7007d8201e6818a11f187487 DIST go1.25.5.src.tar.gz 31983405 BLAKE2B b6349931e6174b1b11c00360fb7a3040a80f3d3d463894b29393a464548398bad37be685923c725eb8a3fb71d42849254319102c833418f81eca477f52579222 SHA512 97ec368521253bce610e1e3a6f10460f4a38eba440289553a40ab27afcdf2bb9b426d150ffaa3be8db50e84a00a4eb723a631ebc4f39168bc133bf7b2f1ccf66 DIST go1.25.6.src.tar.gz 31987986 BLAKE2B f9937808018f058d0f50fd0c0c1fa8f5a0f25d983a477e158e310d46dea30e33f3e0ea3d97ab550b6e5ed8d9f3b5354e76923b539ddb16a081f42e24fd3e4cfc SHA512 214b2d82b5322d544e80d7202db9169c24e5f097338f2d0e6d34189bd5bde9e7c1656f06611062c78a156181f03956181971b346172fc14617726bfece5e61e9 DIST go1.25.8.src.tar.gz 31991986 BLAKE2B c8a18a74a8903e53954bcc39ce804518e94bd6b2ee0b8a0cc4b5cd87f5d1760d6b1235233d2bf2804e3ec55a42cf6f5345a6fe4382e7406483915101ca107c97 SHA512 2f5c9f314d18169985a9a4b19346e00dd5d4b396c8c17bfffe5719e51f27d834cc9649d0165f7eeb7367d3b6d384f49917325a40b49ba4da65e22f2c5362c739 +DIST go1.25.9.src.tar.gz 31997830 BLAKE2B aa5baa0892d730d850ad622ff1168086d8069e8e789140520492f39d6a69cc394149130dfbaafd006a9b7110041cfd9d7f84d38bd6ab6748f1395f318444a61f SHA512 b1a89da9f53db56f59716814adf412f10fcb7e72aa9fa0df216ad7200082731f18b449bc669d340f59b80355e66a6e2f156567a45ffd2e138df45bf8bce8dd8f DIST go1.26.1.src.tar.gz 34108253 BLAKE2B 3128218a9c24dfacfbe2f0f5fa7fc3feb86a1954ba11bdad3b3a9af0e3359bb98dce79453d8fdaedaf5403dc15b3cb233883d0815520f094662ca7dcf9f509b2 SHA512 7bab2a762b4aff1c2c3a3cf3ad20bce63fabff28c7ff63b18cb8b0ce427a7bc1781cfd3fa291f4bff499247b1f0fd56f1698bb19bc7c1be7d7d2f38716438d41 +DIST go1.26.2.src.tar.gz 34120738 BLAKE2B 86586f1d5e9d27e235219110023f8005388c5002784eb8f5c23c78e2594f21e495fbf2697d5945c61577896f00a2ca29cbbc51017053d65670c3fd730b165251 SHA512 370773727c0e6fbf0acd534726938aaaa03ff785f0634c258c94a7a896e9a27acc0ba57120967f711a942e9e275cec46251a194d6f84ba15f28b5dcf0efed673 +DIST go1.26.3.src.tar.gz 34119059 BLAKE2B 985d0739d18c5dac0fc9f661006449dc20e76a157a9974a7dcfba2c43ec3c92c5ca3b785795af101e1b2df2b4d57349ea9ee2ca3b0c56d9df400686b0118329b SHA512 9c673a9ec7783a345b6294984486a5c76ba52de3eb72c95cbd68626312d100c50adb7a3ed15c93d1dc9ce9969b0f6fb4b86c87771118091cc7b0297afaf74fec diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.10.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.10.ebuild new file mode 100644 index 00000000000..e217c802596 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.10.ebuild @@ -0,0 +1,148 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} + +# See "Bootstrap" in release notes +GO_BOOTSTRAP_MIN=1.22.12 +MY_PV=${PV/_/} + +inherit flag-o-matic go-env toolchain-funcs + +case ${PV} in +*9999*) + EGIT_REPO_URI="https://github.com/golang/go.git" + inherit git-r3 + ;; +*) + SRC_URI="https://go.dev/dl/go${MY_PV}.src.tar.gz " + S="${WORKDIR}"/go + KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~x64-macos ~x64-solaris" + ;; +esac + +DESCRIPTION="A concurrent garbage collected and typesafe programming language" +HOMEPAGE="https://go.dev" + +LICENSE="BSD" +SLOT="0/${PV}" +IUSE="cpu_flags_x86_sse2" + +BDEPEND="|| ( + >=dev-lang/go-${GO_BOOTSTRAP_MIN} + >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )" + +# the *.syso files have writable/executable stacks +QA_EXECSTACK='*.syso' + +# Do not complain about CFLAGS, etc, since Go doesn't use them. +QA_FLAGS_IGNORED='.*' + +# The tools in /usr/lib/go should not cause the multilib-strict check to fail. +QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*" + +# This package triggers "unrecognized elf file(s)" notices on riscv. +# https://bugs.gentoo.org/794046 +QA_PREBUILT="*" +QA_PRESTRIPPED="*.syso" + +# The Go data race detector (go test -race) requires an unstripped Go toolchain. +# https://bugs.gentoo.org/961618 +RESTRICT="strip" + +DOCS=( + CONTRIBUTING.md + PATENTS + README.md + SECURITY.md +) + +go_tuple() { + echo "$(go-env_goos $@)_$(go-env_goarch $@)" +} + +go_cross_compile() { + [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]] +} + +PATCHES=( + "${FILESDIR}"/go-1.24-skip-gdb-tests.patch + "${FILESDIR}"/go-1.25-no-dwarf5.patch + "${FILESDIR}"/go-1.25-strip-top-level-const.patch + "${FILESDIR}"/go-never-download-newer-toolchains.patch +) + +src_compile() { + if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then + export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go" + elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then + export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap" + else + eerror "Go cannot be built without go or go-bootstrap installed" + die "Should not be here, please report a bug" + fi + + if tc-is-gcc ; then + # XXX: Hack for checking ICE (bug #912152, gcc PR113204) + # + # For either USE=debug or an unreleased compiler, non-default + # checking will trigger. + if has_version -b "sys-devel/gcc[debug]" || [[ $(gcc-minor-version) -eq 0 ]] ; then + rm src/cmd/link/cgo_test.go || die + fi + + # bug #929219 + replace-flags -g3 -g + replace-flags -ggdb3 -ggdb + fi + + # Go's build script does not use BUILD/HOST/TARGET consistently. :( + export GOHOSTARCH=$(go-env_goarch ${CBUILD}) + export GOHOSTOS=$(go-env_goos ${CBUILD}) + export CC=$(tc-getBUILD_CC) + + export GOARCH=$(go-env_goarch) + export GOOS=$(go-env_goos) + export CC_FOR_TARGET=$(tc-getCC) + export CXX_FOR_TARGET=$(tc-getCXX) + use arm && export GOARM=$(go-env_goarm) + use x86 && export GO386=$(go-env_go386) + + cd src + bash -x ./make.bash || die "build failed" +} + +src_test() { + go_cross_compile && return 0 + cd src + PATH="${GOBIN}:${PATH}" \ + ./run.bash -no-rebuild -k || die "tests failed" +} + +src_install() { + dodir /usr/lib/go + # The use of cp is deliberate in order to retain permissions + cp -R . "${ED}"/usr/lib/go + einstalldocs + + # testdata directories are not needed on the installed system + # The other files we remove are installed by einstalldocs + rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die + rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die + rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die + + local bin_path + if go_cross_compile; then + bin_path="bin/$(go_tuple)" + else + bin_path=bin + fi + local f x + for x in ${bin_path}/*; do + f=${x##*/} + dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} + done +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.9.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.9.ebuild new file mode 100644 index 00000000000..7920d9cab23 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.9.ebuild @@ -0,0 +1,149 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} + +# See "Bootstrap" in release notes +GO_BOOTSTRAP_MIN=1.22.12 +MY_PV=${PV/_/} + +inherit flag-o-matic go-env toolchain-funcs + +case ${PV} in +*9999*) + EGIT_REPO_URI="https://github.com/golang/go.git" + inherit git-r3 + ;; +*) + SRC_URI="https://go.dev/dl/go${MY_PV}.src.tar.gz " + S="${WORKDIR}"/go + KEYWORDS="-* amd64 ~arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~x64-macos ~x64-solaris" + ;; +esac + +DESCRIPTION="A concurrent garbage collected and typesafe programming language" +HOMEPAGE="https://go.dev" + +LICENSE="BSD" +SLOT="0/${PV}" +IUSE="cpu_flags_x86_sse2" + +BDEPEND="|| ( + >=dev-lang/go-${GO_BOOTSTRAP_MIN} + >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )" + +# the *.syso files have writable/executable stacks +QA_EXECSTACK='*.syso' + +# Do not complain about CFLAGS, etc, since Go doesn't use them. +QA_FLAGS_IGNORED='.*' + +# The tools in /usr/lib/go should not cause the multilib-strict check to fail. +QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*" + +# This package triggers "unrecognized elf file(s)" notices on riscv. +# https://bugs.gentoo.org/794046 +QA_PREBUILT="*" +QA_PRESTRIPPED="*.syso" + +# The Go data race detector (go test -race) requires an unstripped Go toolchain. +# https://bugs.gentoo.org/961618 +RESTRICT="strip" + +DOCS=( + CONTRIBUTING.md + PATENTS + README.md + SECURITY.md +) + +go_tuple() { + echo "$(go-env_goos $@)_$(go-env_goarch $@)" +} + +go_cross_compile() { + [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]] +} + +PATCHES=( + "${FILESDIR}"/go-1.24-skip-gdb-tests.patch + "${FILESDIR}"/go-1.24-dont-force-gold-arm.patch + "${FILESDIR}"/go-1.25-no-dwarf5.patch + "${FILESDIR}"/go-1.25-strip-top-level-const.patch + "${FILESDIR}"/go-never-download-newer-toolchains.patch +) + +src_compile() { + if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then + export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go" + elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then + export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap" + else + eerror "Go cannot be built without go or go-bootstrap installed" + die "Should not be here, please report a bug" + fi + + if tc-is-gcc ; then + # XXX: Hack for checking ICE (bug #912152, gcc PR113204) + # + # For either USE=debug or an unreleased compiler, non-default + # checking will trigger. + if has_version -b "sys-devel/gcc[debug]" || [[ $(gcc-minor-version) -eq 0 ]] ; then + rm src/cmd/link/cgo_test.go || die + fi + + # bug #929219 + replace-flags -g3 -g + replace-flags -ggdb3 -ggdb + fi + + # Go's build script does not use BUILD/HOST/TARGET consistently. :( + export GOHOSTARCH=$(go-env_goarch ${CBUILD}) + export GOHOSTOS=$(go-env_goos ${CBUILD}) + export CC=$(tc-getBUILD_CC) + + export GOARCH=$(go-env_goarch) + export GOOS=$(go-env_goos) + export CC_FOR_TARGET=$(tc-getCC) + export CXX_FOR_TARGET=$(tc-getCXX) + use arm && export GOARM=$(go-env_goarm) + use x86 && export GO386=$(go-env_go386) + + cd src + bash -x ./make.bash || die "build failed" +} + +src_test() { + go_cross_compile && return 0 + cd src + PATH="${GOBIN}:${PATH}" \ + ./run.bash -no-rebuild -k || die "tests failed" +} + +src_install() { + dodir /usr/lib/go + # The use of cp is deliberate in order to retain permissions + cp -R . "${ED}"/usr/lib/go + einstalldocs + + # testdata directories are not needed on the installed system + # The other files we remove are installed by einstalldocs + rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die + rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die + rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die + + local bin_path + if go_cross_compile; then + bin_path="bin/$(go_tuple)" + else + bin_path=bin + fi + local f x + for x in ${bin_path}/*; do + f=${x##*/} + dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} + done +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.2.ebuild new file mode 100644 index 00000000000..746935ca16a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.2.ebuild @@ -0,0 +1,148 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} + +# See "Bootstrap" in release notes +GO_BOOTSTRAP_MIN=1.24.6 +MY_PV=${PV/_/} + +inherit flag-o-matic go-env toolchain-funcs + +case ${PV} in +*9999*) + EGIT_REPO_URI="https://github.com/golang/go.git" + inherit git-r3 + ;; +*) + SRC_URI="https://go.dev/dl/go${MY_PV}.src.tar.gz " + S="${WORKDIR}"/go + KEYWORDS="-* amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~x64-macos ~x64-solaris" + ;; +esac + +DESCRIPTION="A concurrent garbage collected and typesafe programming language" +HOMEPAGE="https://go.dev" + +LICENSE="BSD" +SLOT="0/${PV}" +IUSE="cpu_flags_x86_sse2" + +BDEPEND="|| ( + >=dev-lang/go-${GO_BOOTSTRAP_MIN} + >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )" + +# the *.syso files have writable/executable stacks +QA_EXECSTACK='*.syso' + +# Do not complain about CFLAGS, etc, since Go doesn't use them. +QA_FLAGS_IGNORED='.*' + +# The tools in /usr/lib/go should not cause the multilib-strict check to fail. +QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*" + +# This package triggers "unrecognized elf file(s)" notices on riscv. +# https://bugs.gentoo.org/794046 +QA_PREBUILT="*" +QA_PRESTRIPPED="*.syso" + +# The Go data race detector (go test -race) requires an unstripped Go toolchain. +# https://bugs.gentoo.org/961618 +RESTRICT="strip" + +DOCS=( + CONTRIBUTING.md + PATENTS + README.md + SECURITY.md +) + +go_tuple() { + echo "$(go-env_goos $@)_$(go-env_goarch $@)" +} + +go_cross_compile() { + [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]] +} + +PATCHES=( + "${FILESDIR}"/go-1.24-skip-gdb-tests.patch + "${FILESDIR}"/go-1.24-dont-force-gold-arm.patch + "${FILESDIR}"/go-1.25-no-dwarf5.patch + "${FILESDIR}"/go-never-download-newer-toolchains.patch +) + +src_compile() { + if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then + export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go" + elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then + export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap" + else + eerror "Go cannot be built without go or go-bootstrap installed" + die "Should not be here, please report a bug" + fi + + if tc-is-gcc ; then + # XXX: Hack for checking ICE (bug #912152, gcc PR113204) + # + # For either USE=debug or an unreleased compiler, non-default + # checking will trigger. + if has_version -b "sys-devel/gcc[debug]" || [[ $(gcc-minor-version) -eq 0 ]] ; then + rm src/cmd/link/cgo_test.go || die + fi + + # bug #929219 + replace-flags -g3 -g + replace-flags -ggdb3 -ggdb + fi + + # Go's build script does not use BUILD/HOST/TARGET consistently. :( + export GOHOSTARCH=$(go-env_goarch ${CBUILD}) + export GOHOSTOS=$(go-env_goos ${CBUILD}) + export CC=$(tc-getBUILD_CC) + + export GOARCH=$(go-env_goarch) + export GOOS=$(go-env_goos) + export CC_FOR_TARGET=$(tc-getCC) + export CXX_FOR_TARGET=$(tc-getCXX) + use arm && export GOARM=$(go-env_goarm) + use x86 && export GO386=$(go-env_go386) + + cd src + bash -x ./make.bash || die "build failed" +} + +src_test() { + go_cross_compile && return 0 + cd src + PATH="${GOBIN}:${PATH}" \ + ./run.bash -no-rebuild -k || die "tests failed" +} + +src_install() { + dodir /usr/lib/go + # The use of cp is deliberate in order to retain permissions + cp -R . "${ED}"/usr/lib/go + einstalldocs + + # testdata directories are not needed on the installed system + # The other files we remove are installed by einstalldocs + rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die + rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die + rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die + + local bin_path + if go_cross_compile; then + bin_path="bin/$(go_tuple)" + else + bin_path=bin + fi + local f x + for x in ${bin_path}/*; do + f=${x##*/} + dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} + done +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.3.ebuild new file mode 100644 index 00000000000..516348a63cc --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.3.ebuild @@ -0,0 +1,147 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} + +# See "Bootstrap" in release notes +GO_BOOTSTRAP_MIN=1.24.6 +MY_PV=${PV/_/} + +inherit flag-o-matic go-env toolchain-funcs + +case ${PV} in +*9999*) + EGIT_REPO_URI="https://github.com/golang/go.git" + inherit git-r3 + ;; +*) + SRC_URI="https://go.dev/dl/go${MY_PV}.src.tar.gz " + S="${WORKDIR}"/go + KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~x64-macos ~x64-solaris" + ;; +esac + +DESCRIPTION="A concurrent garbage collected and typesafe programming language" +HOMEPAGE="https://go.dev" + +LICENSE="BSD" +SLOT="0/${PV}" +IUSE="cpu_flags_x86_sse2" + +BDEPEND="|| ( + >=dev-lang/go-${GO_BOOTSTRAP_MIN} + >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )" + +# the *.syso files have writable/executable stacks +QA_EXECSTACK='*.syso' + +# Do not complain about CFLAGS, etc, since Go doesn't use them. +QA_FLAGS_IGNORED='.*' + +# The tools in /usr/lib/go should not cause the multilib-strict check to fail. +QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*" + +# This package triggers "unrecognized elf file(s)" notices on riscv. +# https://bugs.gentoo.org/794046 +QA_PREBUILT="*" +QA_PRESTRIPPED="*.syso" + +# The Go data race detector (go test -race) requires an unstripped Go toolchain. +# https://bugs.gentoo.org/961618 +RESTRICT="strip" + +DOCS=( + CONTRIBUTING.md + PATENTS + README.md + SECURITY.md +) + +go_tuple() { + echo "$(go-env_goos $@)_$(go-env_goarch $@)" +} + +go_cross_compile() { + [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]] +} + +PATCHES=( + "${FILESDIR}"/go-1.24-skip-gdb-tests.patch + "${FILESDIR}"/go-1.25-no-dwarf5.patch + "${FILESDIR}"/go-never-download-newer-toolchains.patch +) + +src_compile() { + if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then + export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go" + elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then + export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap" + else + eerror "Go cannot be built without go or go-bootstrap installed" + die "Should not be here, please report a bug" + fi + + if tc-is-gcc ; then + # XXX: Hack for checking ICE (bug #912152, gcc PR113204) + # + # For either USE=debug or an unreleased compiler, non-default + # checking will trigger. + if has_version -b "sys-devel/gcc[debug]" || [[ $(gcc-minor-version) -eq 0 ]] ; then + rm src/cmd/link/cgo_test.go || die + fi + + # bug #929219 + replace-flags -g3 -g + replace-flags -ggdb3 -ggdb + fi + + # Go's build script does not use BUILD/HOST/TARGET consistently. :( + export GOHOSTARCH=$(go-env_goarch ${CBUILD}) + export GOHOSTOS=$(go-env_goos ${CBUILD}) + export CC=$(tc-getBUILD_CC) + + export GOARCH=$(go-env_goarch) + export GOOS=$(go-env_goos) + export CC_FOR_TARGET=$(tc-getCC) + export CXX_FOR_TARGET=$(tc-getCXX) + use arm && export GOARM=$(go-env_goarm) + use x86 && export GO386=$(go-env_go386) + + cd src + bash -x ./make.bash || die "build failed" +} + +src_test() { + go_cross_compile && return 0 + cd src + PATH="${GOBIN}:${PATH}" \ + ./run.bash -no-rebuild -k || die "tests failed" +} + +src_install() { + dodir /usr/lib/go + # The use of cp is deliberate in order to retain permissions + cp -R . "${ED}"/usr/lib/go + einstalldocs + + # testdata directories are not needed on the installed system + # The other files we remove are installed by einstalldocs + rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die + rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die + rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die + + local bin_path + if go_cross_compile; then + bin_path="bin/$(go_tuple)" + else + bin_path=bin + fi + local f x + for x in ${bin_path}/*; do + f=${x##*/} + dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} + done +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-9999.ebuild index e246d6f0ee2..7721c71ad41 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-9999.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=8 +EAPI=9 export CBUILD=${CBUILD:-${CHOST}} export CTARGET=${CTARGET:-${CHOST}} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/perl/Manifest b/sdk_container/src/third_party/portage-stable/dev-lang/perl/Manifest index e38604ded99..d1191fee244 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/perl/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-lang/perl/Manifest @@ -1,10 +1,8 @@ DIST perl-5.40.0-patches-2.tar.xz 17072 BLAKE2B 7cc1085a0a701f72cf1fce2b7f18ac949eb03a9e40716c37082396483045df577ef13bbca58ef06f20868e52e9c78e18fa5b8a3434ceea272ff49832a086a1f5 SHA512 d31a25894e3b34c8e80f439ebd423dd8f28eac056ce42d69376882c1655b1f7289ef22f8aa8d30147eaebbe6693f4d86d1570e153b55d58d7b30e5832e7bea60 -DIST perl-5.40.0.tar.xz 13804184 BLAKE2B cf191c3ccaf6f395c0c7d08c2ad3456c1dd622d4fe78e7fb3a74c741e9a84f1d39a55f5bc6adbea54c9520b1b387e72e957f9a7544ab8f24968d233cd5b959ae SHA512 a2fb1a24c6367b4043f4e929b2d74fc3bad1415e53b791ed1f219f1701064ae21b2bd3164ba95fcf24eaf458bd54433024ccae43725c0bb82a1ec6a98dc7052d -DIST perl-5.40.1.tar.xz 13930924 BLAKE2B 2f421a9eb6c68e2f12b95e6ac70ede3819c0d31c6f25ec5e45337faa053eaf21911413573624e3e84d82e4d863ed21799dbf471865c7e04519dcb81eac9c5c36 SHA512 3ff16b3462ce43ff38dab21b3dfc20f81772b8c9eac19ab96ba2d5e6cbb390e2302fa76c4879f915249357cd11c7ec0d548bcbf3ab2c156df1b9fca95da3f545 DIST perl-5.40.2.tar.xz 13923524 BLAKE2B e37d0a71fcf91c065f7d6a75077be257c679eb1b8f167a569e4cfd532baa7af621ff887691293a3ec39cd35b960aa3de59f826f3351938994d77d00b44501bca SHA512 1324b119e4370bbeb47a343d152f46c637addb0373ff07f0e214aa9d5912c03cd2bd23987a6e86d43453166412d3a03a52e780201941f679ef4186df16590e41 DIST perl-5.42.0-patches-1.tar.xz 17108 BLAKE2B 0ac95f8c2665a087215dc896c3e00ccfe4103a781c05eff2f4f80bda4ffc36b5745e190dd85056934d340726a6c25885fda458e560581175531f17fe1e27ae22 SHA512 7e1efa62911229f48250a97f7479d15155e94f577bf257020a7a280b38b7547a3b4a397c212dbfcf5a2d187caa29c6006e76f95c66fe5dd59d3c333680c55986 DIST perl-5.42.0.tar.xz 14400988 BLAKE2B 51c31bfd924e6fb4fca5e149986575cb9b455a40ae2a3e03935423612b34491c8382866ca2f3b1ea9cb6ed415f0c570c817612265335bff2603be721c145da61 SHA512 b10f74d1245a879ae51d3ad93ad519a148df126ec865715474c801548ccfc3f542ef3bbb1f59568cea2ec77302d428dc772aba605357d7faf13eb6a351917275 -DIST perl-cross-1.6.1.tar.gz 124122 BLAKE2B b1b78b30f2cf8c5ba12e3df6177b7d102033c8eaceeea9f12a1aeb2bfdf97edda83842e32de797b7ffa3ef6bc66dfba6ccbbacc25367b6f7bc2d137ce58aca93 SHA512 35a4f7966f1f94ef0b6bfe7a82e8a50e0daf6e5e0c1ed99c7c4767aa4f0708db05e8cc01a883257f970703991f617a189609cd57eec63767e2e73de3d6155bdf +DIST perl-5.42.2.tar.xz 14483976 BLAKE2B 459a623377ff9a824b948fd53708594ea77b19577da8f2ffd8fe7c6034467353f1e45269171c3fc7153a2b02a9b14d8a33e7a1535bfee0ec7c3f84b123315dcf SHA512 3c77dbede22df1a7ab3714c7dc6d675f14cb99b084fcc4e4d9b65aed1a080ac4d5ecf2cbf4759b2565f6452e52b337633f870dbcbf152dc66833cfe71f04fffc DIST perl-cross-1.6.2.tar.gz 123761 BLAKE2B c3c51d5a86940914c3a037d1cace49c6def531cdc380771f968461a3552c0200c8a802f4ff74ddb5fcd494ab1e1b582a4c1c5214be4faae8712fc506b19ca04f SHA512 51b45bf972304634d706d09e27d457636e43f9f27f739004eca529b21245ba78612dcb08b54225fc7ca19511983642c37915939ea8aa1c1a4560093474d9e76b DIST perl-cross-1.6.3.tar.gz 121133 BLAKE2B 2362a53928230e13c607dd481e5614f80b210f7a5127cac05baa3daf69a263410d05eb50855f063b1bd7d4e3693d01369fdb512fb713c854beda2eece71844d1 SHA512 eb8aa2d57121ef288e253f9443bd4f53ad8b23152096265a0f8211ca4f2a61fdf3fdd03ca1e7d1e1c4a8a408421c7254cfaf12d1f81333aa4a0bf53d74cfa223 -DIST perl-cross-1.6.tar.gz 121973 BLAKE2B b3a17d92dd7621a3bc253a6c4e56eccd3adec2c2b52e606c956a08f48d786a16a3ac5beb056a732ba3df92227f210193b0f516fd9d73cac362a04ec52efab029 SHA512 980af804513ec126e40eb9d8200ca54ba805bbb13b38d20a45daaf8d98d6b257e2eebc1ecad56cd47f60e235fa1141f6df9518d748db4f18d5219180750ca615 +DIST perl-cross-1.6.4.tar.gz 119502 BLAKE2B 4a087fc2e4d4488a77b4d889b4d60f7aeb9f00a10ed0161207c86037f62206b908e6448f31f6d24d250c5b2e9344d6c7d9effd9f8cc9b8ae449dd352118744ed SHA512 0a6152cfaef1da7611554fa8fc93ff1edb3ece83f0c8a746cf2e0006624f2dd0908cf84a53bb06b048995d14923aa0b4783ad3696f8a2e3d4f742107966e9923 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.40.0-alignment.patch b/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.40.0-alignment.patch deleted file mode 100644 index 661ed59f2a5..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.40.0-alignment.patch +++ /dev/null @@ -1,70 +0,0 @@ -https://bugs.gentoo.org/936468 -https://github.com/Perl/perl5/issues/22577 -https://github.com/Perl/perl5/pull/22609 - -From ffbda81ab95a3db3eff972ad22b633c60365bb8e Mon Sep 17 00:00:00 2001 -From: Tony Cook -Date: Wed, 18 Sep 2024 16:32:34 +1000 -Subject: [PATCH] bodies_by_type[SVt_PVNV]: handle __float128 NV alignment on - 32-bit - -Perl SV body structures include xmg_stash and xmg_u fields at the -front, which are only valid for type SVt_PVMG and higher. - -This allows those fields to be at a constant offset from the start -of the body. - -To save memory perl generally allocates the bodies where -type < SVt_PVMG without the space needed for these two fields, -offsetting the body pointer back by the size of the two fields. At -least for the first body in an arena this is technically -undefined behaviour, but we've done it forever. - -With -msse __float128 requires 16 byte alignment, but for XPVNV -bodies the hack used here means that the base of the XPVNV -body ends up mis-aligned on 32-bit systems. - -On 64-bit systems the combined size of those fields is 16-bytes so -the modified pointer is still properly aligned. - -To fix this allocate the full XPVNV structure when 16 byte alignment -is required for NV, NV is more than 8 bytes and pointers are small -enough that the NV would have been mis-aligned. - -Fixes #22577 ---- - sv_inline.h | 15 ++++++++++++++- - 1 file changed, 14 insertions(+), 1 deletion(-) - -diff --git a/sv_inline.h b/sv_inline.h -index a0fe8ec870c2..7cbca95feef7 100644 ---- a/sv_inline.h -+++ b/sv_inline.h -@@ -218,12 +218,25 @@ static const struct body_details bodies_by_type[] = { - SVt_PVIV, FALSE, NONV, HASARENA, - FIT_ARENA(0, sizeof(XPVIV) - STRUCT_OFFSET(XPV, xpv_cur)) }, - -+#if NVSIZE > 8 && PTRSIZE < 8 && MEM_ALIGNBYTES > 8 -+ /* NV may need strict 16 byte alignment. -+ -+ On 64-bit systems the NV ends up aligned despite the hack -+ avoiding allocation of xmg_stash and xmg_u, so only do this -+ for 32-bit systems. -+ */ -+ { sizeof(XPVNV), -+ sizeof(XPVNV), -+ 0, -+ SVt_PVNV, FALSE, HADNV, HASARENA, -+ FIT_ARENA(0, sizeof(XPVNV)) }, -+#else - { sizeof(XPVNV) - STRUCT_OFFSET(XPV, xpv_cur), - copy_length(XPVNV, xnv_u) - STRUCT_OFFSET(XPV, xpv_cur), - + STRUCT_OFFSET(XPV, xpv_cur), - SVt_PVNV, FALSE, HADNV, HASARENA, - FIT_ARENA(0, sizeof(XPVNV) - STRUCT_OFFSET(XPV, xpv_cur)) }, -- -+#endif - { sizeof(XPVMG), copy_length(XPVMG, xnv_u), 0, SVt_PVMG, FALSE, HADNV, - HASARENA, FIT_ARENA(0, sizeof(XPVMG)) }, - - diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.40.0-fix-compilation-in-eprefix-bug-939014.patch b/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.40.0-fix-compilation-in-eprefix-bug-939014.patch deleted file mode 100644 index 3362947876b..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.40.0-fix-compilation-in-eprefix-bug-939014.patch +++ /dev/null @@ -1,51 +0,0 @@ -https://bugs.gentoo.org/939014 -https://github.com/Perl/perl5/pull/22569 - -From bd0ab509f890a6638bd5033ef58526f8c74f7e4b Mon Sep 17 00:00:00 2001 -From: Andrei Horodniceanu -Date: Wed, 4 Sep 2024 12:46:44 +0300 -Subject: [PATCH] locale.c: Fix compilation on platforms with only a C locale - -Signed-off-by: Andrei Horodniceanu ---- a/AUTHORS -+++ b/AUTHORS -@@ -103,6 +103,7 @@ Andreas König - Andreas Marienborg - Andreas Schwab - Andreas Voegele -+Andrei Horodniceanu - Andrei Yelistratov - Andrej Borsenkow - Andrew Bettison ---- a/locale.c -+++ b/locale.c -@@ -8963,6 +8963,7 @@ Perl_init_i18nl10n(pTHX_ int printwarn) - * categories into our internal indices. */ - if (map_LC_ALL_position_to_index[0] == LC_ALL_INDEX_) { - -+# ifdef PERL_LC_ALL_CATEGORY_POSITIONS_INIT - /* Use this array, initialized by a config.h constant */ - int lc_all_category_positions[] = PERL_LC_ALL_CATEGORY_POSITIONS_INIT; - STATIC_ASSERT_STMT( C_ARRAY_LENGTH(lc_all_category_positions) -@@ -8975,6 +8976,21 @@ Perl_init_i18nl10n(pTHX_ int printwarn) - map_LC_ALL_position_to_index[i] = - get_category_index(lc_all_category_positions[i]); - } -+# else -+ /* It is possible for both PERL_LC_ALL_USES_NAME_VALUE_PAIRS and -+ * PERL_LC_ALL_CATEGORY_POSITIONS_INIT not to be defined, e.g. on -+ * systems with only a C locale during ./Configure. Assume that this -+ * can only happen as part of some sort of bootstrapping so allow -+ * compilation to succeed by ignoring correctness. -+ */ -+ for (unsigned int i = 0; -+ i < C_ARRAY_LENGTH(map_LC_ALL_position_to_index); -+ i++) -+ { -+ map_LC_ALL_position_to_index[i] = 0; -+ } -+# endif -+ - } - - LOCALE_UNLOCK; diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.42.0-cross-no-lto.patch b/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.42.0-cross-no-lto.patch new file mode 100644 index 00000000000..8399561a7bb --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.42.0-cross-no-lto.patch @@ -0,0 +1,14 @@ +https://github.com/arsv/perl-cross/issues/148 + +LTO confuses the configure tests. +--- a/cnf/configure__f.sh ++++ b/cnf/configure__f.sh +@@ -276,7 +276,7 @@ try_compile() { + require 'cc' + require '_o' + try_dump +- run $cc $ccflags "$@" -c -o try$_o try.c >> $cfglog 2>&1 ++ run $cc $ccflags -fno-lto "$@" -c -o try$_o try.c >> $cfglog 2>&1 + } + + # an equivalent of try_compile with -Werror, but without diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.42.2-cross.patch b/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.42.2-cross.patch new file mode 100644 index 00000000000..72602d4607c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.42.2-cross.patch @@ -0,0 +1,111 @@ +https://github.com/arsv/perl-cross/pull/174 + +From a373a825324f809ae89a60322c38fe94af47da83 Mon Sep 17 00:00:00 2001 +From: Francois Perrad +Date: Wed, 29 Apr 2026 12:43:32 +0200 +Subject: [PATCH] patches for perl-5.42.2 + +--- + cnf/diffs/perl5-5.42.2/constant.patch | 1 + + cnf/diffs/perl5-5.42.2/dynaloader.patch | 1 + + cnf/diffs/perl5-5.42.2/findext.patch | 1 + + cnf/diffs/perl5-5.42.2/installscripts.patch | 1 + + cnf/diffs/perl5-5.42.2/liblist.patch | 1 + + cnf/diffs/perl5-5.42.2/makemaker.patch | 1 + + cnf/diffs/perl5-5.42.2/posix-makefile.patch | 1 + + cnf/diffs/perl5-5.42.2/test-checkcase.patch | 1 + + cnf/diffs/perl5-5.42.2/test-makemaker.patch | 1 + + cnf/diffs/perl5-5.42.2/xconfig.patch | 1 + + 10 files changed, 10 insertions(+) + create mode 120000 cnf/diffs/perl5-5.42.2/constant.patch + create mode 120000 cnf/diffs/perl5-5.42.2/dynaloader.patch + create mode 120000 cnf/diffs/perl5-5.42.2/findext.patch + create mode 120000 cnf/diffs/perl5-5.42.2/installscripts.patch + create mode 120000 cnf/diffs/perl5-5.42.2/liblist.patch + create mode 120000 cnf/diffs/perl5-5.42.2/makemaker.patch + create mode 120000 cnf/diffs/perl5-5.42.2/posix-makefile.patch + create mode 120000 cnf/diffs/perl5-5.42.2/test-checkcase.patch + create mode 120000 cnf/diffs/perl5-5.42.2/test-makemaker.patch + create mode 120000 cnf/diffs/perl5-5.42.2/xconfig.patch + +diff --git a/cnf/diffs/perl5-5.42.2/constant.patch b/cnf/diffs/perl5-5.42.2/constant.patch +new file mode 120000 +index 0000000..065e198 +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.2/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.2/dynaloader.patch b/cnf/diffs/perl5-5.42.2/dynaloader.patch +new file mode 120000 +index 0000000..ffb73eb +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.2/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.2/findext.patch b/cnf/diffs/perl5-5.42.2/findext.patch +new file mode 120000 +index 0000000..9efbe5b +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.2/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.2/installscripts.patch b/cnf/diffs/perl5-5.42.2/installscripts.patch +new file mode 120000 +index 0000000..1c05e0f +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.2/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.2/liblist.patch b/cnf/diffs/perl5-5.42.2/liblist.patch +new file mode 120000 +index 0000000..5037380 +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.2/liblist.patch +@@ -0,0 +1 @@ ++../perl5-5.42.0/liblist.patch +\ No newline at end of file +diff --git a/cnf/diffs/perl5-5.42.2/makemaker.patch b/cnf/diffs/perl5-5.42.2/makemaker.patch +new file mode 120000 +index 0000000..d7bd609 +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.2/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.2/posix-makefile.patch b/cnf/diffs/perl5-5.42.2/posix-makefile.patch +new file mode 120000 +index 0000000..29463b7 +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.2/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.2/test-checkcase.patch b/cnf/diffs/perl5-5.42.2/test-checkcase.patch +new file mode 120000 +index 0000000..36c5186 +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.2/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.2/test-makemaker.patch b/cnf/diffs/perl5-5.42.2/test-makemaker.patch +new file mode 120000 +index 0000000..4e970ff +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.2/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.2/xconfig.patch b/cnf/diffs/perl5-5.42.2/xconfig.patch +new file mode 120000 +index 0000000..87ac501 +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.2/xconfig.patch +@@ -0,0 +1 @@ ++../perl5-5.42.0/xconfig.patch +\ No newline at end of file + diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.40.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.40.0-r1.ebuild deleted file mode 100644 index 2b4c76bb9de..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.40.0-r1.ebuild +++ /dev/null @@ -1,873 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing - -PATCH_VER=2 -CROSS_VER=1.6 -PATCH_BASE="perl-5.40.0-patches-${PATCH_VER}" -PATCH_DEV=dilfridge - -DIST_AUTHOR=HAARG - -# Greatest first, don't include yourself -# Devel point-releases are not ABI-intercompatible, but stable point releases are -# BIN_OLDVERSEN contains only C-ABI-intercompatible versions -PERL_BIN_OLDVERSEN="" - -if [[ "${PV##*.}" == "9999" ]]; then - DIST_VERSION=5.40.0 -else - DIST_VERSION="${PV/_rc/-RC}" -fi -SHORT_PV="${DIST_VERSION%.*}" - -# Even numbered major versions are ABI intercompatible -# Odd numbered major versions are not -if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then - SUBSLOT="${DIST_VERSION%-RC*}" -else - SUBSLOT="${DIST_VERSION%.*}" -fi - -# Used only in tar paths -MY_P="perl-${DIST_VERSION}" -# Used in library paths -MY_PV="${DIST_VERSION%-RC*}" - -DESCRIPTION="Larry Wall's Practical Extraction and Report Language" - -HOMEPAGE="https://www.perl.org/" - -SRC_URI=" - mirror://cpan/src/5.0/${MY_P}.tar.xz - mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz - https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz - https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz -" - -S="${WORKDIR}/${MY_P}" - -LICENSE="|| ( Artistic GPL-1+ )" - -SLOT="0/${SUBSLOT}" - -if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -IUSE="berkdb perl_features_debug doc gdbm perl_features_ithreads minimal perl_features_quadmath" - -RDEPEND=" - berkdb? ( sys-libs/db:= ) - gdbm? ( >=sys-libs/gdbm-1.8.3:= ) - app-arch/bzip2 - >=virtual/zlib-1.2.12:= - virtual/libcrypt:= -" -DEPEND="${RDEPEND}" -BDEPEND="${RDEPEND}" -PDEPEND=" - !minimal? ( - >=app-admin/perl-cleaner-2.31 - >=virtual/perl-CPAN-2.290.0 - >=virtual/perl-Encode-3.120.0 - >=virtual/perl-File-Temp-0.230.400-r2 - >=virtual/perl-Data-Dumper-2.154.0 - >=virtual/perl-Math-BigInt-1.999.842 - virtual/perl-Test-Harness - ) -" - -PATCHES=( - "${FILESDIR}/${P}-fix-compilation-in-eprefix-bug-939014.patch" - "${FILESDIR}/${PN}-5.40.0-alignment.patch" -) - -# bug 390719, bug 523624 -# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker - -dual_scripts() { - src_remove_dual perl-core/Archive-Tar 3.20.10_rc ptar ptardiff ptargrep - src_remove_dual perl-core/CPAN 2.360.0 cpan - src_remove_dual perl-core/Digest-SHA 6.40.0 shasum - src_remove_dual perl-core/Encode 3.210.0 enc2xs piconv - src_remove_dual perl-core/ExtUtils-MakeMaker 7.700.0 instmodsh - src_remove_dual perl-core/ExtUtils-ParseXS 3.510.0 xsubpp - src_remove_dual perl-core/IO-Compress 2.212.0 zipdetails - src_remove_dual perl-core/JSON-PP 4.160.0 json_pp - src_remove_dual perl-core/Module-CoreList 5.202.406.90 corelist - src_remove_dual perl-core/Pod-Checker 1.770.0 podchecker - src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc - src_remove_dual perl-core/Pod-Usage 2.30.0 pod2usage - src_remove_dual perl-core/Test-Harness 3.480.0 prove - src_remove_dual perl-core/podlators 5.10.200_rc pod2man pod2text - src_remove_dual_man perl-core/podlators 5.10.200_rc /usr/share/man/man1/perlpodstyle.1 -} - -check_rebuild() { - # Fresh install - if [[ -z ${REPLACING_VERSIONS} ]]; then - return 0 - fi - - # Major Upgrade - local v - for v in ${REPLACING_VERSIONS}; do - [[ ${v%.*} == "${SHORT_PV}" ]] && continue - echo "" - ewarn "UPDATE THE PERL MODULES:" - ewarn "After updating dev-lang/perl the installed Perl modules" - ewarn "have to be re-installed. In most cases, this is done automatically" - ewarn "by the package manager, but subsequent steps are still recommended" - ewarn "to ensure system consistency." - ewarn - ewarn "You should start with a depclean to remove any unused perl dependencies" - ewarn "that may confuse portage in future. Regular depcleans are also encouraged" - ewarn "as part of your regular update cycle, as that will keep perl upgrades working." - ewarn "Recommended: emerge --depclean -va" - ewarn - ewarn "You should then call perl-cleaner to clean up any old files and trigger any" - ewarn "remaining rebuilds portage may have missed." - ewarn "Use: perl-cleaner --all" - return 0 - done - - # Reinstall w/ USE Change - if - ( use perl_features_ithreads && ( has_version '=dev-lang/perl-5.38.2-r3[-perl_features_ithreads]' ) ) || \ - ( ! use perl_features_ithreads && ( has_version '=dev-lang/perl-5.38.2-r3[perl_features_ithreads]' ) ) || \ - ( use perl_features_quadmath && ( has_version '=dev-lang/perl-5.38.2-r3[-perl_features_quadmath]' ) ) || \ - ( ! use perl_features_quadmath && ( has_version '=dev-lang/perl-5.38.2-r3[perl_features_quadmath]' ) ) || \ - ( use perl_features_debug && ( has_version '=dev-lang/perl-5.38.2-r3[-perl_features_debug]' ) ) || \ - ( ! use perl_features_debug && ( has_version '=dev-lang/perl-5.38.2-r3[perl_features_debug]' ) ) ; then - echo "" - ewarn "TOGGLED PERL FEATURES WARNING:" - ewarn "You changed one of the PERL_FEATURES flags ithreads, quadmath, or debug." - ewarn "You must rebuild all perl-modules installed. Mostly this should be done automatically" - ewarn "via the flag changes of the packages. If the rebuild fails, use perl-cleaner." - ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl" - ewarn - ewarn "NOTE: Previous to perl-5.38.2-r3, these flags were useflags for dev-lang/perl." - ewarn "If you just upgraded and do not intend to change anything, carry the same settings over" - ewarn "into a global PERL_FEATURES variable set in make.conf. E.g., " - ewarn "dev-lang/perl[ithreads,quadmath] becomes PERL_FEATURES=\"ithreads quadmath\"" - fi -} - -pkg_pretend() { - if \ - ( use perl_features_ithreads && has_version ' "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc" - fi - if [[ $# -gt 0 ]]; then - # Note: when $@ is more than one element, this emits a - # line for each element - printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs" - fi -} - -# Remove a patch using a glob expr -# eg: -# rm_patch *-darwin-Use-CC* -# -rm_patch() { - local patchdir="${WORKDIR}/patches" - local expr="$1" - local patch="$( cd "${patchdir}"; echo $expr )" - einfo "Removing $patch ($expr) from patch bundle" - if [[ -e "${patchdir}/${patch}" ]]; then - rm -f "${patchdir}/${patch}" || die "Can't remove ${patch} ( $expr )" - else - ewarn "No ${expr} found in ${patchdir} to remove" - fi -} - -# Yes, this is a reasonable amount of code for something seemingly simple -# but this is far easier to debug when things go wrong, and things went wrong -# multiple times while I was getting the exact number of slashes right, which -# requires circumnavigating both bash and sed escape mechanisms. -c_escape_string() { - local slash dquote - slash='\' - dquote='"' - re_slash="${slash}${slash}" - re_dquote="${slash}${dquote}" - - # Convert \ to \\, - # " to \" - echo "$1" |\ - sed "s|${re_slash}|${re_slash}${re_slash}|g" |\ - sed "s|${re_dquote}|${re_slash}${re_dquote}|g" -} -c_escape_file() { - c_escape_string "$(cat "$1")" -} - -apply_patchdir() { - local patchdir="${WORKDIR}/patches" - local infodir="${WORKDIR}/patch-info" - local patchoutput="patchlevel-gentoo.h" - - # Inject Patch-Level info into description for patchlevel.h patch - # to show in -V - local patch_expr="*List-packaged-patches*" - local patch="$( cd "${patchdir}"; echo $patch_expr )"; - einfo "Injecting patch-level info into ${patch}.desc ( $patch_expr )" - - if [[ -e "${patchdir}/${patch}" ]]; then - printf "List packaged patches for %s(%s) in patchlevel.h" "${PF}" "${PATCH_BASE}"\ - >"${infodir}/${patch}.desc" || die "Can't rewrite ${patch}.desc" - else - eerror "No $patch_expr found in ${patchdir}" - fi - - # Compute patch list to apply - # different name other than PATCHES to stop default - # reapplying it - # Single depth is currently only supported, as artifacts can reside - # from the old layout being multiple-directories, as well as it grossly - # simplifying the patchlevel_gentoo.h generation. - local PERL_PATCHES=($( - find "${patchdir}" -maxdepth 1 -mindepth 1 -type f -printf "%f\n" |\ - grep -E '[.](diff|patch)$' |\ - sort -n - )) - - for patch in "${PERL_PATCHES[@]}"; do - eapply "${WORKDIR}"/patches/${patch} - done - - einfo "Generating $patchoutput" - - # This code creates a header file, each iteration - # creates one-or-more-lines for each entry found in PERL_PATCHES - # and STDOUT is redirected to the .h file - for patch in "${PERL_PATCHES[@]}"; do - local desc_f="${infodir}/${patch}.desc" - local bugs_f="${infodir}/${patch}.bugs" - - printf ',"%s"\n' "${patch}" - if [[ ! -e "${desc_f}" ]]; then - ewarn "No description provided for ${patch} (expected: ${desc_f} )" - else - local desc="$(c_escape_file "${desc_f}")" - printf ',"- %s"\n' "${desc}" - fi - if [[ -e "${bugs_f}" ]]; then - while read -d $'\n' -r line; do - local esc_line="$(c_escape_string "${line}")" - printf ',"- Bug: %s"\n' "${esc_line}" - done <"${bugs_f}" - fi - done > "${S}/${patchoutput}" - printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST" - -} - -src_prepare() { - - local patchdir="${WORKDIR}/patches" - - # mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patches" "${WORKDIR}/patches" || die - # mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patch-info" "${WORKDIR}/patch-info" || die - - # Prepare Patch dir with additional patches / remove unwanted patches - # Inject bug/desc entries for perl -V - # Old example: - # add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\ - # "Fix broken miniperl on hppa"\ - # "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162" - - if [[ ${CHOST} == *-solaris* ]] ; then - # do NOT mess with nsl, on Solaris this is always necessary, - # when -lsocket is used e.g. to get h_errno - rm_patch "*-nsl-and-cl*" - fi - - apply_patchdir - - tc-is-cross-compiler && src_prepare_perlcross - - tc-is-static-only || src_prepare_dynamic - - if use gdbm; then - sed -i "s:INC => .*:INC => \"-I${ESYSROOT}/usr/include/gdbm\":g" \ - ext/NDBM_File/Makefile.PL || die - fi - - # Use errno.h from prefix rather than from host system, bug #645804 - if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then - sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die - fi - - if [[ ${CHOST} == *-solaris* ]] ; then - # set a soname, fix linking against just built libperl - sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die - fi - - if [[ ${CHOST} == *-darwin* ]] ; then - # fix install_name (soname) not to reference $D - sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die - - # fix environ linkage absence (only a real issue on Darwin9) - if [[ ${CHOST##*-darwin} -le 9 ]] ; then - sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \ - Makefile.SH || die - fi - fi - - default -} - -myconf() { - # the myconf array is declared in src_configure - myconf=( "${myconf[@]}" "$@" ) -} - -# Outputs a list of versions which have been seen in any of the -# primary perl @INC prefix paths, such as: -# /usr/lib64/perl5/ -# /usr/local/lib64/perl5/ -# /usr/lib64/perl5/vendor_perl/ -# -# All values of NUMBER must be like "5.x.y" or like "5.x" -# -find_candidate_inc_versions() { - local regex='.*/5[.][0-9]+\([.][0-9]+\|\)$' - local dirs=( - "${EROOT}${PRIV_BASE}" - "${EROOT}${SITE_BASE}" - "${EROOT}${VENDOR_BASE}" - ) - for dir in "${dirs[@]}"; do - if [[ ! -e "${dir}" ]]; then - continue - fi - # Without access to readdir() on these dirs, find will not be able - # to reveal any @INC directories inside them, and will subsequently prune - # them from the built perl's @INC support, breaking our compatiblity options - # entirely. - if [[ ! -r "${dir}" || ! -x "${dir}" ]]; then - eerror "Bad permissions on ${dir}, this will probably break things" - eerror "Ensure ${dir} is +rx for at least uid=$EUID" - eerror "Recommended permission is +rx for all" - eerror "> chmod o+rx ${dir}" - fi - done - einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}" - find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null -} - -# Sort versions passed versiony-ly, remove self-version if present -# dedup. Takes each version as an argument -sanitize_inc_versions() { - local vexclude="${SUBSLOT}" - einfo "Normalizing/Sorting candidate list: $*" - einfo " to remove '${vexclude}'" - # Note, general numeric sort has to be used - # for the last component, or unique will convert - # 5.30.0 + 5.30 into just 5.30 - printf "%s\n" "$@" |\ - grep -vxF "${vexclude}" |\ - sort -u -nr -t'.' -k1,1rn -k2,2rn -k3,3rg -} - -versions_to_inclist() { - local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}" - - for v; do - has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ "; - echo -n "${v}/ "; - done -} - -versions_to_gentoolibdirs() { - local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}" - local root - local v - for v; do - for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do - local fullpath="${EROOT}${root}/${v}" - if [[ -e "${fullpath}" ]]; then - has "${v}" ${oldv} && printf "%s:" "${fullpath}/${myarch}${mythreading}"; - printf "%s:" "${fullpath}" - fi - done - done -} - -src_configure() { - declare -a myconf - - export LC_ALL="C" - [[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091 - - # Perl has problems compiling with -Os in your flags with glibc - replace-flags "-Os" "-O2" - - # xlocale.h is going away in glibc-2.26, so it's counterproductive - # if we use it and include it in CORE/perl.h ... Perl builds just - # fine with glibc and locale.h only. - # However, the darwin prefix people have no locale.h ... - use elibc_glibc && myconf -Ui_xlocale - - # Perl relies on -fwrapv semantics - filter-flags -ftrapv - - # This flag makes compiling crash in interesting ways - filter-flags "-malign-double" - - # On musl we dont want to use largefile *64 types, since 1) normal - # types are 64bit / largefile anyway and 2) the *64 types are going - # away in 1.2.4... bug #911233 - use elibc_musl && myconf -Ud_off64_t - - use sparc && myconf -Ud_longdbl - - # This urgently needs debugging - on m68k, miniperl crashes during - # build otherwise.. - use m68k && append-ldflags -Wl,-z,norelro - - export BUILD_BZIP2=0 - export BZIP2_INCLUDE=${ESYSROOT}/usr/include - export BZIP2_LIB=${ESYSROOT}/usr/$(get_libdir) - - export BUILD_ZLIB=False - export ZLIB_INCLUDE=${ESYSROOT}/usr/include - export ZLIB_LIB=${ESYSROOT}/usr/$(get_libdir) - - # allow either gdbm to provide ndbm (in ) or db1 - myndbm='U' - mygdbm='U' - mydb='U' - if use gdbm ; then - mygdbm='D' - if use berkdb ; then - myndbm='D' - fi - fi - if use berkdb ; then - mydb='D' - has_version '=sys-libs/db-1*' && myndbm='D' - fi - - myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db" - - if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then - ewarn "Perl will not be built with berkdb support, use gcc if you need it..." - myconf -Ui_db -Ui_ndbm - fi - - use perl_features_ithreads && myconf -Dusethreads - - use perl_features_quadmath && myconf -Dusequadmath - - if use perl_features_debug ; then - append-cflags "-g" - myconf -DDEBUGGING - elif [[ ${CFLAGS} == *-g* ]] ; then - myconf -DDEBUGGING=-g - else - myconf -DDEBUGGING=none - fi - - # modifying 'optimize' prevents cross configure script from appending required flags - if tc-is-cross-compiler; then - append-cflags "-fwrapv" - tc-export_build_env - - # Needed for the CHOST build too (bug #932385) - export CFLAGS="${CFLAGS} -D_GNU_SOURCE" - - # bug #913171 - export \ - HOSTCC=$(tc-getBUILD_CC) \ - HOSTCFLAGS="${CFLAGS_FOR_BUILD} -D_GNU_SOURCE" \ - HOSTLDFLAGS="${LDFLAGS_FOR_BUILD}" - fi - - # bug #877659, bug #821577 - append-cflags -fno-strict-aliasing - - # Autodiscover all old version directories, some of them will even be newer - # if you downgrade - if [[ -z ${PERL_OLDVERSEN} ]]; then - PERL_OLDVERSEN="$( find_candidate_inc_versions )" - fi - - # Fixup versions, removing self match, fixing order and dupes - PERL_OLDVERSEN="$( sanitize_inc_versions ${PERL_OLDVERSEN} )" - - # Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string - if [[ -n "${PERL_OLDVERSEN// }" ]]; then - local inclist="$( versions_to_inclist ${PERL_OLDVERSEN} )" - einfo "This version of perl may partially support modules previously" - einfo "installed in any of the following paths:" - for incpath in ${inclist}; do - [[ -e "${EROOT}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT}${VENDOR_BASE}/${incpath}" - [[ -e "${EROOT}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROOT}${PRIV_BASE}/${incpath}" - [[ -e "${EROOT}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT}${SITE_BASE}/${incpath}" - done - einfo "This is a temporary measure and you should aim to cleanup these paths" - einfo "via world updates and perl-cleaner" - # myconf -Dinc_version_list="${inclist}" - myconf -Dgentoolibdirs="$( versions_to_gentoolibdirs ${PERL_OLDVERSEN} )" - fi - - [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a" - - # Make sure we can do the final link #523730, need to set deployment - # target to override hardcoded 10.3 which breaks on modern OSX - [[ ${CHOST} == *-darwin* ]] && \ - myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)" - - # Older macOS with non-Apple GCC chokes on inline in system headers - # using c89 mode as injected by cflags.SH, in addition, we override - # cflags, so we loose PERL_DARWIN which enables compat code that - # apparently on more recent macOS releases is no longer necessary - [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \ - append-cflags -Dinline=__inline__ -DPERL_DARWIN - - # Prefix: the host system needs not to follow Gentoo multilib stuff, and in - # Prefix itself we don't do multilib either, so make sure perl can find - # something compatible. - if use prefix ; then - # Set a hook to check for each detected library whether it actually works. - export libscheck=" - ( echo 'int main(){}' > '${T}'/conftest.c && - $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null - ) || xxx=/dev/null" - - # Use all host paths that might contain useful stuff, the hook above will filter out bad choices. - local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib" - myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}" - elif [[ $(get_libdir) != "lib" ]] ; then - # We need to use " and not ', as the written config.sh use ' ... - myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)" - fi - - # don't try building ODBM, bug #354453 - disabled_extensions="ODBM_File" - - if ! use gdbm ; then - # workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm" - disabled_extensions="${disabled_extensions} GDBM_File NDBM_File" - fi - - myconf -Dnoextensions="${disabled_extensions}" - - [[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly - - [[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF} - # allow fiddling via EXTRA_ECONF, bug 558070 - eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})" - - myconf \ - -Duseshrplib \ - -Darchname="${myarch}" \ - -Dar="$(tc-getAR)" \ - -Dcc="$(tc-getCC)" \ - -Dcpp="$(tc-getCPP)" \ - -Dld="$(tc-getCC)" \ - -Dnm="$(tc-getNM)" \ - -Dranlib="$(tc-getRANLIB)" \ - -Accflags="${CFLAGS} -DNO_PERL_RAND_SEED" \ - -Doptimize="${CFLAGS}" \ - -Dldflags="${LDFLAGS}" \ - -Dprefix="${EPREFIX}"'/usr' \ - -Dsiteprefix="${EPREFIX}"'/usr/local' \ - -Dvendorprefix="${EPREFIX}"'/usr' \ - -Dscriptdir="${EPREFIX}"'/usr/bin' \ - -Dprivlib="${EPREFIX}${PRIV_LIB}" \ - -Darchlib="${EPREFIX}${ARCH_LIB}" \ - -Dsitelib="${EPREFIX}${SITE_LIB}" \ - -Dsitearch="${EPREFIX}${SITE_ARCH}" \ - -Dvendorlib="${EPREFIX}${VENDOR_LIB}" \ - -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \ - -Dman1dir="${EPREFIX}"/usr/share/man/man1 \ - -Dman3dir="${EPREFIX}"/usr/share/man/man3 \ - -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \ - -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \ - -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \ - -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \ - -Dman1ext='1' \ - -Dman3ext='3pm' \ - -Dlibperl="${LIBPERL}" \ - -Dlocincpth="${EPREFIX}"'/usr/include ' \ - -Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \ - -Duselargefiles \ - -Dd_semctl_semun \ - -Dcf_by='Gentoo' \ - -Dmyhostname='localhost' \ - -Dperladmin='root@localhost' \ - -Ud_csh \ - -Dsh="${BROOT}"/bin/sh \ - -Dtargetsh="${EPREFIX}"/bin/sh \ - -Uusenm \ - "${EXTRA_ECONF[@]}" - - if tc-is-cross-compiler; then - ./configure \ - --target="${CHOST}" \ - --build="${CBUILD}" \ - -Dinstallprefix='' \ - -Dinstallusrbinperl='undef' \ - -Dusevendorprefix='define' \ - "${myconf[@]}" \ - || die "Unable to configure" - else - sh Configure \ - -des \ - -Dinstallprefix="${EPREFIX}"'/usr' \ - -Dinstallusrbinperl='n' \ - "${myconf[@]}" \ - || die "Unable to configure" - fi -} - -src_test() { - export NO_GENTOO_NETWORK_TESTS=1; - export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}" - export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}" - if [[ ${EUID} == 0 ]] ; then - ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..." - return 0 - fi - TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed" -} - -src_install() { - local i - local coredir="${ARCH_LIB}/CORE" - - emake DESTDIR="${D}" install - - rm -f "${ED}/usr/bin/perl${MY_PV}" - ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die - - if ! tc-is-static-only ; then - dolib.so "${ED}"${coredir}/${LIBPERL} - rm -f "${ED}"${coredir}/${LIBPERL} - ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die - ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die - - ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die - ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die - ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die - fi - - rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages" - - # This removes ${D} from Config.pm - for i in $(find "${D}" -iname "Config.pm" ) ; do - einfo "Removing ${D} from ${i}..." - sed -i -e "s:${D}::" "${i}" || die "Sed failed" - done - - dodoc Changes* README AUTHORS - - if use doc ; then - # HTML Documentation - # We expect errors, warnings, and such with the following. - - dodir /usr/share/doc/${PF}/html - LD_LIBRARY_PATH=. ./perl installhtml \ - --podroot='.' \ - --podpath='lib:ext:pod:vms' \ - --recurse \ - --htmldir="${ED}/usr/share/doc/${PF}/html" - fi - - [[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local - - dual_scripts -} - -pkg_preinst() { - check_rebuild -} - -pkg_postinst() { - dual_scripts - - if [[ -z "${ROOT}" ]] ; then - local INC DIR file - INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }') - einfo "Removing old .ph files" - for DIR in ${INC} ; do - if [[ -d "${DIR}" ]] ; then - for file in $(find "${DIR}" -name "*.ph" -type f ) ; do - rm -f "${file}" - einfo "<< ${file}" - done - fi - done - # Silently remove the now empty dirs - for DIR in ${INC} ; do - if [[ -d "${DIR}" ]] ; then - find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null - fi - done - - fi -} - -pkg_postrm() { - dual_scripts -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.40.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.40.1.ebuild deleted file mode 100644 index a5eba21c6ab..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.40.1.ebuild +++ /dev/null @@ -1,868 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing - -PATCH_VER=2 -CROSS_VER=1.6.1 -PATCH_BASE="perl-5.40.0-patches-${PATCH_VER}" -PATCH_DEV=dilfridge - -DIST_AUTHOR=SHAY - -# Greatest first, don't include yourself -# Devel point-releases are not ABI-intercompatible, but stable point releases are -# BIN_OLDVERSEN contains only C-ABI-intercompatible versions -PERL_BIN_OLDVERSEN="" - -if [[ "${PV##*.}" == "9999" ]]; then - DIST_VERSION=5.40.0 -else - DIST_VERSION="${PV/_rc/-RC}" -fi -SHORT_PV="${DIST_VERSION%.*}" - -# Even numbered major versions are ABI intercompatible -# Odd numbered major versions are not -if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then - SUBSLOT="${DIST_VERSION%-RC*}" -else - SUBSLOT="${DIST_VERSION%.*}" -fi - -# Used only in tar paths -MY_P="perl-${DIST_VERSION}" -# Used in library paths -MY_PV="${DIST_VERSION%-RC*}" - -DESCRIPTION="Larry Wall's Practical Extraction and Report Language" - -HOMEPAGE="https://www.perl.org/" - -SRC_URI=" - mirror://cpan/src/5.0/${MY_P}.tar.xz - mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz - https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz - https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz -" - -S="${WORKDIR}/${MY_P}" - -LICENSE="|| ( Artistic GPL-1+ )" - -SLOT="0/${SUBSLOT}" - -if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -IUSE="berkdb perl_features_debug doc gdbm perl_features_ithreads minimal perl_features_quadmath" - -RDEPEND=" - berkdb? ( sys-libs/db:= ) - gdbm? ( >=sys-libs/gdbm-1.8.3:= ) - app-arch/bzip2 - >=virtual/zlib-1.2.12:= - virtual/libcrypt:= -" -DEPEND="${RDEPEND}" -BDEPEND="${RDEPEND}" -PDEPEND=" - !minimal? ( - >=app-admin/perl-cleaner-2.31 - >=virtual/perl-CPAN-2.290.0 - >=virtual/perl-Encode-3.120.0 - >=virtual/perl-File-Temp-0.230.400-r2 - >=virtual/perl-Data-Dumper-2.154.0 - >=virtual/perl-Math-BigInt-1.999.842 - virtual/perl-Test-Harness - ) -" - -# bug 390719, bug 523624 -# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker - -dual_scripts() { - src_remove_dual perl-core/Archive-Tar 3.20.10_rc ptar ptardiff ptargrep - src_remove_dual perl-core/CPAN 2.360.0 cpan - src_remove_dual perl-core/Digest-SHA 6.40.0 shasum - src_remove_dual perl-core/Encode 3.210.0 enc2xs piconv - src_remove_dual perl-core/ExtUtils-MakeMaker 7.700.0 instmodsh - src_remove_dual perl-core/ExtUtils-ParseXS 3.510.0 xsubpp - src_remove_dual perl-core/IO-Compress 2.212.0 zipdetails - src_remove_dual perl-core/JSON-PP 4.160.0 json_pp - src_remove_dual perl-core/Module-CoreList 5.202.501.184_rc corelist - src_remove_dual perl-core/Pod-Checker 1.770.0 podchecker - src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc - src_remove_dual perl-core/Pod-Usage 2.30.0 pod2usage - src_remove_dual perl-core/Test-Harness 3.480.0 prove - src_remove_dual perl-core/podlators 5.10.200_rc pod2man pod2text - src_remove_dual_man perl-core/podlators 5.10.200_rc /usr/share/man/man1/perlpodstyle.1 -} - -check_rebuild() { - # Fresh install - if [[ -z ${REPLACING_VERSIONS} ]]; then - return 0 - fi - - # Major Upgrade - local v - for v in ${REPLACING_VERSIONS}; do - [[ ${v%.*} == "${SHORT_PV}" ]] && continue - echo "" - ewarn "UPDATE THE PERL MODULES:" - ewarn "After updating dev-lang/perl the installed Perl modules" - ewarn "have to be re-installed. In most cases, this is done automatically" - ewarn "by the package manager, but subsequent steps are still recommended" - ewarn "to ensure system consistency." - ewarn - ewarn "You should start with a depclean to remove any unused perl dependencies" - ewarn "that may confuse portage in future. Regular depcleans are also encouraged" - ewarn "as part of your regular update cycle, as that will keep perl upgrades working." - ewarn "Recommended: emerge --depclean -va" - ewarn - ewarn "You should then call perl-cleaner to clean up any old files and trigger any" - ewarn "remaining rebuilds portage may have missed." - ewarn "Use: perl-cleaner --all" - return 0 - done - - # Reinstall w/ USE Change - if - ( use perl_features_ithreads && ( has_version '=dev-lang/perl-5.38.2-r3[-perl_features_ithreads]' ) ) || \ - ( ! use perl_features_ithreads && ( has_version '=dev-lang/perl-5.38.2-r3[perl_features_ithreads]' ) ) || \ - ( use perl_features_quadmath && ( has_version '=dev-lang/perl-5.38.2-r3[-perl_features_quadmath]' ) ) || \ - ( ! use perl_features_quadmath && ( has_version '=dev-lang/perl-5.38.2-r3[perl_features_quadmath]' ) ) || \ - ( use perl_features_debug && ( has_version '=dev-lang/perl-5.38.2-r3[-perl_features_debug]' ) ) || \ - ( ! use perl_features_debug && ( has_version '=dev-lang/perl-5.38.2-r3[perl_features_debug]' ) ) ; then - echo "" - ewarn "TOGGLED PERL FEATURES WARNING:" - ewarn "You changed one of the PERL_FEATURES flags ithreads, quadmath, or debug." - ewarn "You must rebuild all perl-modules installed. Mostly this should be done automatically" - ewarn "via the flag changes of the packages. If the rebuild fails, use perl-cleaner." - ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl" - ewarn - ewarn "NOTE: Previous to perl-5.38.2-r3, these flags were useflags for dev-lang/perl." - ewarn "If you just upgraded and do not intend to change anything, carry the same settings over" - ewarn "into a global PERL_FEATURES variable set in make.conf. E.g., " - ewarn "dev-lang/perl[ithreads,quadmath] becomes PERL_FEATURES=\"ithreads quadmath\"" - fi -} - -pkg_pretend() { - if \ - ( use perl_features_ithreads && has_version ' "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc" - fi - if [[ $# -gt 0 ]]; then - # Note: when $@ is more than one element, this emits a - # line for each element - printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs" - fi -} - -# Remove a patch using a glob expr -# eg: -# rm_patch *-darwin-Use-CC* -# -rm_patch() { - local patchdir="${WORKDIR}/patches" - local expr="$1" - local patch="$( cd "${patchdir}"; echo $expr )" - einfo "Removing $patch ($expr) from patch bundle" - if [[ -e "${patchdir}/${patch}" ]]; then - rm -f "${patchdir}/${patch}" || die "Can't remove ${patch} ( $expr )" - else - ewarn "No ${expr} found in ${patchdir} to remove" - fi -} - -# Yes, this is a reasonable amount of code for something seemingly simple -# but this is far easier to debug when things go wrong, and things went wrong -# multiple times while I was getting the exact number of slashes right, which -# requires circumnavigating both bash and sed escape mechanisms. -c_escape_string() { - local slash dquote - slash='\' - dquote='"' - re_slash="${slash}${slash}" - re_dquote="${slash}${dquote}" - - # Convert \ to \\, - # " to \" - echo "$1" |\ - sed "s|${re_slash}|${re_slash}${re_slash}|g" |\ - sed "s|${re_dquote}|${re_slash}${re_dquote}|g" -} -c_escape_file() { - c_escape_string "$(cat "$1")" -} - -apply_patchdir() { - local patchdir="${WORKDIR}/patches" - local infodir="${WORKDIR}/patch-info" - local patchoutput="patchlevel-gentoo.h" - - # Inject Patch-Level info into description for patchlevel.h patch - # to show in -V - local patch_expr="*List-packaged-patches*" - local patch="$( cd "${patchdir}"; echo $patch_expr )"; - einfo "Injecting patch-level info into ${patch}.desc ( $patch_expr )" - - if [[ -e "${patchdir}/${patch}" ]]; then - printf "List packaged patches for %s(%s) in patchlevel.h" "${PF}" "${PATCH_BASE}"\ - >"${infodir}/${patch}.desc" || die "Can't rewrite ${patch}.desc" - else - eerror "No $patch_expr found in ${patchdir}" - fi - - # Compute patch list to apply - # different name other than PATCHES to stop default - # reapplying it - # Single depth is currently only supported, as artifacts can reside - # from the old layout being multiple-directories, as well as it grossly - # simplifying the patchlevel_gentoo.h generation. - local PERL_PATCHES=($( - find "${patchdir}" -maxdepth 1 -mindepth 1 -type f -printf "%f\n" |\ - grep -E '[.](diff|patch)$' |\ - sort -n - )) - - for patch in "${PERL_PATCHES[@]}"; do - eapply "${WORKDIR}"/patches/${patch} - done - - einfo "Generating $patchoutput" - - # This code creates a header file, each iteration - # creates one-or-more-lines for each entry found in PERL_PATCHES - # and STDOUT is redirected to the .h file - for patch in "${PERL_PATCHES[@]}"; do - local desc_f="${infodir}/${patch}.desc" - local bugs_f="${infodir}/${patch}.bugs" - - printf ',"%s"\n' "${patch}" - if [[ ! -e "${desc_f}" ]]; then - ewarn "No description provided for ${patch} (expected: ${desc_f} )" - else - local desc="$(c_escape_file "${desc_f}")" - printf ',"- %s"\n' "${desc}" - fi - if [[ -e "${bugs_f}" ]]; then - while read -d $'\n' -r line; do - local esc_line="$(c_escape_string "${line}")" - printf ',"- Bug: %s"\n' "${esc_line}" - done <"${bugs_f}" - fi - done > "${S}/${patchoutput}" - printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST" - -} - -src_prepare() { - - local patchdir="${WORKDIR}/patches" - - # mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patches" "${WORKDIR}/patches" || die - # mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patch-info" "${WORKDIR}/patch-info" || die - - # Prepare Patch dir with additional patches / remove unwanted patches - # Inject bug/desc entries for perl -V - # Old example: - # add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\ - # "Fix broken miniperl on hppa"\ - # "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162" - - if [[ ${CHOST} == *-solaris* ]] ; then - # do NOT mess with nsl, on Solaris this is always necessary, - # when -lsocket is used e.g. to get h_errno - rm_patch "*-nsl-and-cl*" - fi - - apply_patchdir - - tc-is-cross-compiler && src_prepare_perlcross - - tc-is-static-only || src_prepare_dynamic - - if use gdbm; then - sed -i "s:INC => .*:INC => \"-I${ESYSROOT}/usr/include/gdbm\":g" \ - ext/NDBM_File/Makefile.PL || die - fi - - # Use errno.h from prefix rather than from host system, bug #645804 - if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then - sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die - fi - - if [[ ${CHOST} == *-solaris* ]] ; then - # set a soname, fix linking against just built libperl - sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die - fi - - if [[ ${CHOST} == *-darwin* ]] ; then - # fix install_name (soname) not to reference $D - sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die - - # fix environ linkage absence (only a real issue on Darwin9) - if [[ ${CHOST##*-darwin} -le 9 ]] ; then - sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \ - Makefile.SH || die - fi - fi - - default -} - -myconf() { - # the myconf array is declared in src_configure - myconf=( "${myconf[@]}" "$@" ) -} - -# Outputs a list of versions which have been seen in any of the -# primary perl @INC prefix paths, such as: -# /usr/lib64/perl5/ -# /usr/local/lib64/perl5/ -# /usr/lib64/perl5/vendor_perl/ -# -# All values of NUMBER must be like "5.x.y" or like "5.x" -# -find_candidate_inc_versions() { - local regex='.*/5[.][0-9]+\([.][0-9]+\|\)$' - local dirs=( - "${EROOT}${PRIV_BASE}" - "${EROOT}${SITE_BASE}" - "${EROOT}${VENDOR_BASE}" - ) - for dir in "${dirs[@]}"; do - if [[ ! -e "${dir}" ]]; then - continue - fi - # Without access to readdir() on these dirs, find will not be able - # to reveal any @INC directories inside them, and will subsequently prune - # them from the built perl's @INC support, breaking our compatiblity options - # entirely. - if [[ ! -r "${dir}" || ! -x "${dir}" ]]; then - eerror "Bad permissions on ${dir}, this will probably break things" - eerror "Ensure ${dir} is +rx for at least uid=$EUID" - eerror "Recommended permission is +rx for all" - eerror "> chmod o+rx ${dir}" - fi - done - einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}" - find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null -} - -# Sort versions passed versiony-ly, remove self-version if present -# dedup. Takes each version as an argument -sanitize_inc_versions() { - local vexclude="${SUBSLOT}" - einfo "Normalizing/Sorting candidate list: $*" - einfo " to remove '${vexclude}'" - # Note, general numeric sort has to be used - # for the last component, or unique will convert - # 5.30.0 + 5.30 into just 5.30 - printf "%s\n" "$@" |\ - grep -vxF "${vexclude}" |\ - sort -u -nr -t'.' -k1,1rn -k2,2rn -k3,3rg -} - -versions_to_inclist() { - local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}" - - for v; do - has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ "; - echo -n "${v}/ "; - done -} - -versions_to_gentoolibdirs() { - local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}" - local root - local v - for v; do - for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do - local fullpath="${EROOT}${root}/${v}" - if [[ -e "${fullpath}" ]]; then - has "${v}" ${oldv} && printf "%s:" "${fullpath}/${myarch}${mythreading}"; - printf "%s:" "${fullpath}" - fi - done - done -} - -src_configure() { - declare -a myconf - - export LC_ALL="C" - [[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091 - - # Perl has problems compiling with -Os in your flags with glibc - replace-flags "-Os" "-O2" - - # xlocale.h is going away in glibc-2.26, so it's counterproductive - # if we use it and include it in CORE/perl.h ... Perl builds just - # fine with glibc and locale.h only. - # However, the darwin prefix people have no locale.h ... - use elibc_glibc && myconf -Ui_xlocale - - # Perl relies on -fwrapv semantics - filter-flags -ftrapv - - # This flag makes compiling crash in interesting ways - filter-flags "-malign-double" - - # On musl we dont want to use largefile *64 types, since 1) normal - # types are 64bit / largefile anyway and 2) the *64 types are going - # away in 1.2.4... bug #911233 - use elibc_musl && myconf -Ud_off64_t - - use sparc && myconf -Ud_longdbl - - # This urgently needs debugging - on m68k, miniperl crashes during - # build otherwise.. - use m68k && append-ldflags -Wl,-z,norelro - - export BUILD_BZIP2=0 - export BZIP2_INCLUDE=${ESYSROOT}/usr/include - export BZIP2_LIB=${ESYSROOT}/usr/$(get_libdir) - - export BUILD_ZLIB=False - export ZLIB_INCLUDE=${ESYSROOT}/usr/include - export ZLIB_LIB=${ESYSROOT}/usr/$(get_libdir) - - # allow either gdbm to provide ndbm (in ) or db1 - myndbm='U' - mygdbm='U' - mydb='U' - if use gdbm ; then - mygdbm='D' - if use berkdb ; then - myndbm='D' - fi - fi - if use berkdb ; then - mydb='D' - has_version '=sys-libs/db-1*' && myndbm='D' - fi - - myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db" - - if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then - ewarn "Perl will not be built with berkdb support, use gcc if you need it..." - myconf -Ui_db -Ui_ndbm - fi - - use perl_features_ithreads && myconf -Dusethreads - - use perl_features_quadmath && myconf -Dusequadmath - - if use perl_features_debug ; then - append-cflags "-g" - myconf -DDEBUGGING - elif [[ ${CFLAGS} == *-g* ]] ; then - myconf -DDEBUGGING=-g - else - myconf -DDEBUGGING=none - fi - - # modifying 'optimize' prevents cross configure script from appending required flags - if tc-is-cross-compiler; then - append-cflags "-fwrapv" - tc-export_build_env - - # Needed for the CHOST build too (bug #932385) - export CFLAGS="${CFLAGS} -D_GNU_SOURCE" - - # bug #913171 - export \ - HOSTCC=$(tc-getBUILD_CC) \ - HOSTCFLAGS="${CFLAGS_FOR_BUILD} -D_GNU_SOURCE" \ - HOSTLDFLAGS="${LDFLAGS_FOR_BUILD}" - fi - - # bug #877659, bug #821577 - append-cflags -fno-strict-aliasing - - # Autodiscover all old version directories, some of them will even be newer - # if you downgrade - if [[ -z ${PERL_OLDVERSEN} ]]; then - PERL_OLDVERSEN="$( find_candidate_inc_versions )" - fi - - # Fixup versions, removing self match, fixing order and dupes - PERL_OLDVERSEN="$( sanitize_inc_versions ${PERL_OLDVERSEN} )" - - # Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string - if [[ -n "${PERL_OLDVERSEN// }" ]]; then - local inclist="$( versions_to_inclist ${PERL_OLDVERSEN} )" - einfo "This version of perl may partially support modules previously" - einfo "installed in any of the following paths:" - for incpath in ${inclist}; do - [[ -e "${EROOT}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT}${VENDOR_BASE}/${incpath}" - [[ -e "${EROOT}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROOT}${PRIV_BASE}/${incpath}" - [[ -e "${EROOT}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT}${SITE_BASE}/${incpath}" - done - einfo "This is a temporary measure and you should aim to cleanup these paths" - einfo "via world updates and perl-cleaner" - # myconf -Dinc_version_list="${inclist}" - myconf -Dgentoolibdirs="$( versions_to_gentoolibdirs ${PERL_OLDVERSEN} )" - fi - - [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a" - - # Make sure we can do the final link #523730, need to set deployment - # target to override hardcoded 10.3 which breaks on modern OSX - [[ ${CHOST} == *-darwin* ]] && \ - myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)" - - # Older macOS with non-Apple GCC chokes on inline in system headers - # using c89 mode as injected by cflags.SH, in addition, we override - # cflags, so we loose PERL_DARWIN which enables compat code that - # apparently on more recent macOS releases is no longer necessary - [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \ - append-cflags -Dinline=__inline__ -DPERL_DARWIN - - # Prefix: the host system needs not to follow Gentoo multilib stuff, and in - # Prefix itself we don't do multilib either, so make sure perl can find - # something compatible. - if use prefix ; then - # Set a hook to check for each detected library whether it actually works. - export libscheck=" - ( echo 'int main(){}' > '${T}'/conftest.c && - $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null - ) || xxx=/dev/null" - - # Use all host paths that might contain useful stuff, the hook above will filter out bad choices. - local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib" - myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}" - elif [[ $(get_libdir) != "lib" ]] ; then - # We need to use " and not ', as the written config.sh use ' ... - myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)" - fi - - # don't try building ODBM, bug #354453 - disabled_extensions="ODBM_File" - - if ! use gdbm ; then - # workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm" - disabled_extensions="${disabled_extensions} GDBM_File NDBM_File" - fi - - myconf -Dnoextensions="${disabled_extensions}" - - [[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly - - [[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF} - # allow fiddling via EXTRA_ECONF, bug 558070 - eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})" - - myconf \ - -Duseshrplib \ - -Darchname="${myarch}" \ - -Dar="$(tc-getAR)" \ - -Dcc="$(tc-getCC)" \ - -Dcpp="$(tc-getCPP)" \ - -Dld="$(tc-getCC)" \ - -Dnm="$(tc-getNM)" \ - -Dranlib="$(tc-getRANLIB)" \ - -Accflags="${CFLAGS} -DNO_PERL_RAND_SEED" \ - -Doptimize="${CFLAGS}" \ - -Dldflags="${LDFLAGS}" \ - -Dprefix="${EPREFIX}"'/usr' \ - -Dsiteprefix="${EPREFIX}"'/usr/local' \ - -Dvendorprefix="${EPREFIX}"'/usr' \ - -Dscriptdir="${EPREFIX}"'/usr/bin' \ - -Dprivlib="${EPREFIX}${PRIV_LIB}" \ - -Darchlib="${EPREFIX}${ARCH_LIB}" \ - -Dsitelib="${EPREFIX}${SITE_LIB}" \ - -Dsitearch="${EPREFIX}${SITE_ARCH}" \ - -Dvendorlib="${EPREFIX}${VENDOR_LIB}" \ - -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \ - -Dman1dir="${EPREFIX}"/usr/share/man/man1 \ - -Dman3dir="${EPREFIX}"/usr/share/man/man3 \ - -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \ - -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \ - -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \ - -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \ - -Dman1ext='1' \ - -Dman3ext='3pm' \ - -Dlibperl="${LIBPERL}" \ - -Dlocincpth="${EPREFIX}"'/usr/include ' \ - -Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \ - -Duselargefiles \ - -Dd_semctl_semun \ - -Dcf_by='Gentoo' \ - -Dmyhostname='localhost' \ - -Dperladmin='root@localhost' \ - -Ud_csh \ - -Dsh="${BROOT}"/bin/sh \ - -Dtargetsh="${EPREFIX}"/bin/sh \ - -Uusenm \ - "${EXTRA_ECONF[@]}" - - if tc-is-cross-compiler; then - ./configure \ - --target="${CHOST}" \ - --build="${CBUILD}" \ - -Dinstallprefix='' \ - -Dinstallusrbinperl='undef' \ - -Dusevendorprefix='define' \ - "${myconf[@]}" \ - || die "Unable to configure" - else - sh Configure \ - -des \ - -Dinstallprefix="${EPREFIX}"'/usr' \ - -Dinstallusrbinperl='n' \ - "${myconf[@]}" \ - || die "Unable to configure" - fi -} - -src_test() { - export NO_GENTOO_NETWORK_TESTS=1; - export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}" - export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}" - if [[ ${EUID} == 0 ]] ; then - ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..." - return 0 - fi - TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed" -} - -src_install() { - local i - local coredir="${ARCH_LIB}/CORE" - - emake DESTDIR="${D}" install - - rm -f "${ED}/usr/bin/perl${MY_PV}" - ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die - - if ! tc-is-static-only ; then - dolib.so "${ED}"${coredir}/${LIBPERL} - rm -f "${ED}"${coredir}/${LIBPERL} - ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die - ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die - - ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die - ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die - ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die - fi - - rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages" - - # This removes ${D} from Config.pm - for i in $(find "${D}" -iname "Config.pm" ) ; do - einfo "Removing ${D} from ${i}..." - sed -i -e "s:${D}::" "${i}" || die "Sed failed" - done - - dodoc Changes* README AUTHORS - - if use doc ; then - # HTML Documentation - # We expect errors, warnings, and such with the following. - - dodir /usr/share/doc/${PF}/html - LD_LIBRARY_PATH=. ./perl installhtml \ - --podroot='.' \ - --podpath='lib:ext:pod:vms' \ - --recurse \ - --htmldir="${ED}/usr/share/doc/${PF}/html" - fi - - [[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local - - dual_scripts -} - -pkg_preinst() { - check_rebuild -} - -pkg_postinst() { - dual_scripts - - if [[ -z "${ROOT}" ]] ; then - local INC DIR file - INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }') - einfo "Removing old .ph files" - for DIR in ${INC} ; do - if [[ -d "${DIR}" ]] ; then - for file in $(find "${DIR}" -name "*.ph" -type f ) ; do - rm -f "${file}" - einfo "<< ${file}" - done - fi - done - # Silently remove the now empty dirs - for DIR in ${INC} ; do - if [[ -d "${DIR}" ]] ; then - find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null - fi - done - - fi -} - -pkg_postrm() { - dual_scripts -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0-r1.ebuild index 445607f0744..32cf3722bc6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -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" + # fix cross-compilation configure tests w/ lto + eapply "${FILESDIR}/perl-5.42.0-cross-no-lto.patch" # bug 604072 MAKEOPTS+=" -j1" 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 deleted file mode 100644 index 93f520dab7c..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0.ebuild +++ /dev/null @@ -1,866 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing - -PATCH_VER=1 -CROSS_VER=1.6.2 -PATCH_BASE="perl-5.42.0-patches-${PATCH_VER}" -PATCH_DEV=dilfridge - -DIST_AUTHOR=BOOK - -# Greatest first, don't include yourself -# Devel point-releases are not ABI-intercompatible, but stable point releases are -# BIN_OLDVERSEN contains only C-ABI-intercompatible versions -PERL_BIN_OLDVERSEN="" - -if [[ "${PV##*.}" == "9999" ]]; then - DIST_VERSION=5.42.0 -else - DIST_VERSION="${PV/_rc/-RC}" -fi -SHORT_PV="${DIST_VERSION%.*}" - -# Even numbered major versions are ABI intercompatible -# Odd numbered major versions are not -if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then - SUBSLOT="${DIST_VERSION%-RC*}" -else - SUBSLOT="${DIST_VERSION%.*}" -fi - -# Used only in tar paths -MY_P="perl-${DIST_VERSION}" -# Used in library paths -MY_PV="${DIST_VERSION%-RC*}" - -DESCRIPTION="Larry Wall's Practical Extraction and Report Language" - -HOMEPAGE="https://www.perl.org/" - -SRC_URI=" - mirror://cpan/src/5.0/${MY_P}.tar.xz - mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz - https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz - https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz -" - -S="${WORKDIR}/${MY_P}" - -LICENSE="|| ( Artistic GPL-1+ )" - -SLOT="0/${SUBSLOT}" - -if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -IUSE="berkdb perl_features_debug doc gdbm perl_features_ithreads minimal perl_features_quadmath" - -RDEPEND=" - berkdb? ( sys-libs/db:= ) - gdbm? ( >=sys-libs/gdbm-1.8.3:= ) - app-arch/bzip2 - >=virtual/zlib-1.2.12:= - virtual/libcrypt:= -" -DEPEND="${RDEPEND}" -BDEPEND="${RDEPEND}" -PDEPEND=" - !minimal? ( - >=app-admin/perl-cleaner-2.31 - >=virtual/perl-CPAN-2.290.0 - >=virtual/perl-Encode-3.120.0 - >=virtual/perl-File-Temp-0.230.400-r2 - >=virtual/perl-Data-Dumper-2.154.0 - >=virtual/perl-Math-BigInt-1.999.842 - virtual/perl-Test-Harness - ) -" - -# bug 390719, bug 523624 -# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker - -dual_scripts() { - src_remove_dual perl-core/Archive-Tar 3.40.0 ptar ptardiff ptargrep - src_remove_dual perl-core/CPAN 2.380.0 cpan - src_remove_dual perl-core/Digest-SHA 6.40.0 shasum - src_remove_dual perl-core/Encode 3.210.0 enc2xs piconv - src_remove_dual perl-core/ExtUtils-MakeMaker 7.760.0 instmodsh - src_remove_dual perl-core/ExtUtils-ParseXS 3.570.0 xsubpp - src_remove_dual perl-core/IO-Compress 2.213.0 zipdetails - src_remove_dual perl-core/JSON-PP 4.160.0 json_pp - src_remove_dual perl-core/Module-CoreList 5.202.507.20 corelist - src_remove_dual perl-core/Pod-Checker 1.770.0 podchecker - src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc - src_remove_dual perl-core/Pod-Usage 2.50.0 pod2usage - src_remove_dual perl-core/Test-Harness 3.500.0 prove - src_remove_dual perl-core/podlators 6.0.2 pod2man pod2text - src_remove_dual_man perl-core/podlators 6.0.2 /usr/share/man/man1/perlpodstyle.1 -} - -check_rebuild() { - # Fresh install - if [[ -z ${REPLACING_VERSIONS} ]]; then - return 0 - fi - - # Major Upgrade - local v - for v in ${REPLACING_VERSIONS}; do - [[ ${v%.*} == "${SHORT_PV}" ]] && continue - echo "" - ewarn "UPDATE THE PERL MODULES:" - ewarn "After updating dev-lang/perl to a new major version the installed Perl modules" - ewarn "have to be re-installed. In most cases, this is done automatically" - ewarn "by the package manager." - ewarn - ewarn "ONLY if you encounter problems, call perl-cleaner to clean up any old files" - ewarn "and trigger any remaining rebuilds portage may have missed." - ewarn "Use: perl-cleaner --all" - return 0 - done - - # Reinstall w/ USE Change - if - ( use perl_features_ithreads && ( has_version '=dev-lang/perl-5.38.2-r3[-perl_features_ithreads]' ) ) || \ - ( ! use perl_features_ithreads && ( has_version '=dev-lang/perl-5.38.2-r3[perl_features_ithreads]' ) ) || \ - ( use perl_features_quadmath && ( has_version '=dev-lang/perl-5.38.2-r3[-perl_features_quadmath]' ) ) || \ - ( ! use perl_features_quadmath && ( has_version '=dev-lang/perl-5.38.2-r3[perl_features_quadmath]' ) ) || \ - ( use perl_features_debug && ( has_version '=dev-lang/perl-5.38.2-r3[-perl_features_debug]' ) ) || \ - ( ! use perl_features_debug && ( has_version '=dev-lang/perl-5.38.2-r3[perl_features_debug]' ) ) ; then - echo "" - ewarn "TOGGLED PERL FEATURES WARNING:" - ewarn "You changed one of the PERL_FEATURES flags ithreads, quadmath, or debug." - ewarn "You must rebuild all perl-modules installed. Mostly this should be done automatically" - ewarn "via the flag changes of the packages. If the rebuild fails, use perl-cleaner." - ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl" - ewarn - ewarn "NOTE: Previous to perl-5.38.2-r3, these flags were useflags for dev-lang/perl." - ewarn "If you just upgraded and do not intend to change anything, carry the same settings over" - ewarn "into a global PERL_FEATURES variable set in make.conf. E.g., " - ewarn "dev-lang/perl[ithreads,quadmath] becomes PERL_FEATURES=\"ithreads quadmath\"" - fi -} - -pkg_pretend() { - if \ - ( use perl_features_ithreads && has_version ' "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc" - fi - if [[ $# -gt 0 ]]; then - # Note: when $@ is more than one element, this emits a - # line for each element - printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs" - fi -} - -# Remove a patch using a glob expr -# eg: -# rm_patch *-darwin-Use-CC* -# -rm_patch() { - local patchdir="${WORKDIR}/patches" - local expr="$1" - local patch="$( cd "${patchdir}"; echo $expr )" - einfo "Removing $patch ($expr) from patch bundle" - if [[ -e "${patchdir}/${patch}" ]]; then - rm -f "${patchdir}/${patch}" || die "Can't remove ${patch} ( $expr )" - else - ewarn "No ${expr} found in ${patchdir} to remove" - fi -} - -# Yes, this is a reasonable amount of code for something seemingly simple -# but this is far easier to debug when things go wrong, and things went wrong -# multiple times while I was getting the exact number of slashes right, which -# requires circumnavigating both bash and sed escape mechanisms. -c_escape_string() { - local slash dquote - slash='\' - dquote='"' - re_slash="${slash}${slash}" - re_dquote="${slash}${dquote}" - - # Convert \ to \\, - # " to \" - echo "$1" |\ - sed "s|${re_slash}|${re_slash}${re_slash}|g" |\ - sed "s|${re_dquote}|${re_slash}${re_dquote}|g" -} -c_escape_file() { - c_escape_string "$(cat "$1")" -} - -apply_patchdir() { - local patchdir="${WORKDIR}/patches" - local infodir="${WORKDIR}/patch-info" - local patchoutput="patchlevel-gentoo.h" - - # Inject Patch-Level info into description for patchlevel.h patch - # to show in -V - local patch_expr="*List-packaged-patches*" - local patch="$( cd "${patchdir}"; echo $patch_expr )"; - einfo "Injecting patch-level info into ${patch}.desc ( $patch_expr )" - - if [[ -e "${patchdir}/${patch}" ]]; then - printf "List packaged patches for %s(%s) in patchlevel.h" "${PF}" "${PATCH_BASE}"\ - >"${infodir}/${patch}.desc" || die "Can't rewrite ${patch}.desc" - else - eerror "No $patch_expr found in ${patchdir}" - fi - - # Compute patch list to apply - # different name other than PATCHES to stop default - # reapplying it - # Single depth is currently only supported, as artifacts can reside - # from the old layout being multiple-directories, as well as it grossly - # simplifying the patchlevel_gentoo.h generation. - local PERL_PATCHES=($( - find "${patchdir}" -maxdepth 1 -mindepth 1 -type f -printf "%f\n" |\ - grep -E '[.](diff|patch)$' |\ - sort -n - )) - - for patch in "${PERL_PATCHES[@]}"; do - eapply "${WORKDIR}"/patches/${patch} - done - - einfo "Generating $patchoutput" - - # This code creates a header file, each iteration - # creates one-or-more-lines for each entry found in PERL_PATCHES - # and STDOUT is redirected to the .h file - for patch in "${PERL_PATCHES[@]}"; do - local desc_f="${infodir}/${patch}.desc" - local bugs_f="${infodir}/${patch}.bugs" - - printf ',"%s"\n' "${patch}" - if [[ ! -e "${desc_f}" ]]; then - ewarn "No description provided for ${patch} (expected: ${desc_f} )" - else - local desc="$(c_escape_file "${desc_f}")" - printf ',"- %s"\n' "${desc}" - fi - if [[ -e "${bugs_f}" ]]; then - while read -d $'\n' -r line; do - local esc_line="$(c_escape_string "${line}")" - printf ',"- Bug: %s"\n' "${esc_line}" - done <"${bugs_f}" - fi - done > "${S}/${patchoutput}" - printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST" - -} - -src_prepare() { - - local patchdir="${WORKDIR}/patches" - - # mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patches" "${WORKDIR}/patches" || die - # mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patch-info" "${WORKDIR}/patch-info" || die - - # Prepare Patch dir with additional patches / remove unwanted patches - # Inject bug/desc entries for perl -V - # Old example: - # add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\ - # "Fix broken miniperl on hppa"\ - # "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162" - - if [[ ${CHOST} == *-solaris* ]] ; then - # do NOT mess with nsl, on Solaris this is always necessary, - # when -lsocket is used e.g. to get h_errno - rm_patch "*-nsl-and-cl*" - fi - - apply_patchdir - - tc-is-cross-compiler && src_prepare_perlcross - - tc-is-static-only || src_prepare_dynamic - - if use gdbm; then - sed -i "s:INC => .*:INC => \"-I${ESYSROOT}/usr/include/gdbm\":g" \ - ext/NDBM_File/Makefile.PL || die - fi - - # Use errno.h from prefix rather than from host system, bug #645804 - if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then - sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die - fi - - if [[ ${CHOST} == *-solaris* ]] ; then - # set a soname, fix linking against just built libperl - sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die - fi - - if [[ ${CHOST} == *-darwin* ]] ; then - # fix install_name (soname) not to reference $D - sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die - - # fix environ linkage absence (only a real issue on Darwin9) - if [[ ${CHOST##*-darwin} -le 9 ]] ; then - sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \ - Makefile.SH || die - fi - fi - - default -} - -myconf() { - # the myconf array is declared in src_configure - myconf=( "${myconf[@]}" "$@" ) -} - -# Outputs a list of versions which have been seen in any of the -# primary perl @INC prefix paths, such as: -# /usr/lib64/perl5/ -# /usr/local/lib64/perl5/ -# /usr/lib64/perl5/vendor_perl/ -# -# All values of NUMBER must be like "5.x.y" or like "5.x" -# -find_candidate_inc_versions() { - local regex='.*/5[.][0-9]+\([.][0-9]+\|\)$' - local dirs=( - "${EROOT}${PRIV_BASE}" - "${EROOT}${SITE_BASE}" - "${EROOT}${VENDOR_BASE}" - ) - for dir in "${dirs[@]}"; do - if [[ ! -e "${dir}" ]]; then - continue - fi - # Without access to readdir() on these dirs, find will not be able - # to reveal any @INC directories inside them, and will subsequently prune - # them from the built perl's @INC support, breaking our compatiblity options - # entirely. - if [[ ! -r "${dir}" || ! -x "${dir}" ]]; then - eerror "Bad permissions on ${dir}, this will probably break things" - eerror "Ensure ${dir} is +rx for at least uid=$EUID" - eerror "Recommended permission is +rx for all" - eerror "> chmod o+rx ${dir}" - fi - done - einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}" - find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null -} - -# Sort versions passed versiony-ly, remove self-version if present -# dedup. Takes each version as an argument -sanitize_inc_versions() { - local vexclude="${SUBSLOT}" - einfo "Normalizing/Sorting candidate list: $*" - einfo " to remove '${vexclude}'" - # Note, general numeric sort has to be used - # for the last component, or unique will convert - # 5.30.0 + 5.30 into just 5.30 - printf "%s\n" "$@" |\ - grep -vxF "${vexclude}" |\ - sort -u -nr -t'.' -k1,1rn -k2,2rn -k3,3rg -} - -versions_to_inclist() { - local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}" - - for v; do - has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ "; - echo -n "${v}/ "; - done -} - -versions_to_gentoolibdirs() { - local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}" - local root - local v - for v; do - for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do - local fullpath="${EROOT}${root}/${v}" - if [[ -e "${fullpath}" ]]; then - has "${v}" ${oldv} && printf "%s:" "${fullpath}/${myarch}${mythreading}"; - printf "%s:" "${fullpath}" - fi - done - done -} - -src_configure() { - declare -a myconf - - export LC_ALL="C" - [[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091 - - # Perl has problems compiling with -Os in your flags with glibc - replace-flags "-Os" "-O2" - - # xlocale.h is going away in glibc-2.26, so it's counterproductive - # if we use it and include it in CORE/perl.h ... Perl builds just - # fine with glibc and locale.h only. - # However, the darwin prefix people have no locale.h ... - use elibc_glibc && myconf -Ui_xlocale - - # Perl relies on -fwrapv semantics - filter-flags -ftrapv - - # This flag makes compiling crash in interesting ways - filter-flags "-malign-double" - - # On musl we dont want to use largefile *64 types, since 1) normal - # types are 64bit / largefile anyway and 2) the *64 types are going - # away in 1.2.4... bug #911233 - use elibc_musl && myconf -Ud_off64_t - - use sparc && myconf -Ud_longdbl - - # This urgently needs debugging - on m68k, miniperl crashes during - # build otherwise.. - use m68k && append-ldflags -Wl,-z,norelro - - export BUILD_BZIP2=0 - export BZIP2_INCLUDE=${ESYSROOT}/usr/include - export BZIP2_LIB=${ESYSROOT}/usr/$(get_libdir) - - export BUILD_ZLIB=False - export ZLIB_INCLUDE=${ESYSROOT}/usr/include - export ZLIB_LIB=${ESYSROOT}/usr/$(get_libdir) - - # allow either gdbm to provide ndbm (in ) or db1 - myndbm='U' - mygdbm='U' - mydb='U' - if use gdbm ; then - mygdbm='D' - if use berkdb ; then - myndbm='D' - fi - fi - if use berkdb ; then - mydb='D' - has_version '=sys-libs/db-1*' && myndbm='D' - fi - - myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db" - - if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then - ewarn "Perl will not be built with berkdb support, use gcc if you need it..." - myconf -Ui_db -Ui_ndbm - fi - - use perl_features_ithreads && myconf -Dusethreads - - use perl_features_quadmath && myconf -Dusequadmath - - if use perl_features_debug ; then - append-cflags "-g" - myconf -DDEBUGGING - elif [[ ${CFLAGS} == *-g* ]] ; then - myconf -DDEBUGGING=-g - else - myconf -DDEBUGGING=none - fi - - # modifying 'optimize' prevents cross configure script from appending required flags - if tc-is-cross-compiler; then - append-cflags "-fwrapv" - tc-export_build_env - - # Needed for the CHOST build too (bug #932385) - export CFLAGS="${CFLAGS} -D_GNU_SOURCE" - - # bug #913171 - export \ - HOSTCC=$(tc-getBUILD_CC) \ - HOSTCFLAGS="${CFLAGS_FOR_BUILD} -D_GNU_SOURCE" \ - HOSTLDFLAGS="${LDFLAGS_FOR_BUILD}" - fi - - # bug #877659, bug #821577 - append-cflags -fno-strict-aliasing - - # Autodiscover all old version directories, some of them will even be newer - # if you downgrade - if [[ -z ${PERL_OLDVERSEN} ]]; then - PERL_OLDVERSEN="$( find_candidate_inc_versions )" - fi - - # Fixup versions, removing self match, fixing order and dupes - PERL_OLDVERSEN="$( sanitize_inc_versions ${PERL_OLDVERSEN} )" - - # Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string - if [[ -n "${PERL_OLDVERSEN// }" ]]; then - local inclist="$( versions_to_inclist ${PERL_OLDVERSEN} )" - einfo "This version of perl may partially support modules previously" - einfo "installed in any of the following paths:" - for incpath in ${inclist}; do - [[ -e "${EROOT}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT}${VENDOR_BASE}/${incpath}" - [[ -e "${EROOT}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROOT}${PRIV_BASE}/${incpath}" - [[ -e "${EROOT}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT}${SITE_BASE}/${incpath}" - done - einfo "This is a temporary measure and you should aim to cleanup these paths" - einfo "via world updates and perl-cleaner" - # myconf -Dinc_version_list="${inclist}" - myconf -Dgentoolibdirs="$( versions_to_gentoolibdirs ${PERL_OLDVERSEN} )" - fi - - [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a" - - # Make sure we can do the final link #523730, need to set deployment - # target to override hardcoded 10.3 which breaks on modern OSX - [[ ${CHOST} == *-darwin* ]] && \ - myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)" - - # Older macOS with non-Apple GCC chokes on inline in system headers - # using c89 mode as injected by cflags.SH, in addition, we override - # cflags, so we loose PERL_DARWIN which enables compat code that - # apparently on more recent macOS releases is no longer necessary - [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \ - append-cflags -Dinline=__inline__ -DPERL_DARWIN - - # Prefix: the host system needs not to follow Gentoo multilib stuff, and in - # Prefix itself we don't do multilib either, so make sure perl can find - # something compatible. - if use prefix ; then - # Set a hook to check for each detected library whether it actually works. - export libscheck=" - ( echo 'int main(){}' > '${T}'/conftest.c && - $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null - ) || xxx=/dev/null" - - # Use all host paths that might contain useful stuff, the hook above will filter out bad choices. - local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib" - myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}" - elif [[ $(get_libdir) != "lib" ]] ; then - # We need to use " and not ', as the written config.sh use ' ... - myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)" - fi - - # don't try building ODBM, bug #354453 - disabled_extensions="ODBM_File" - - if ! use gdbm ; then - # workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm" - disabled_extensions="${disabled_extensions} GDBM_File NDBM_File" - fi - - myconf -Dnoextensions="${disabled_extensions}" - - [[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly - - [[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF} - # allow fiddling via EXTRA_ECONF, bug 558070 - eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})" - - myconf \ - -Duseshrplib \ - -Darchname="${myarch}" \ - -Dar="$(tc-getAR)" \ - -Dcc="$(tc-getCC)" \ - -Dcpp="$(tc-getCPP)" \ - -Dld="$(tc-getCC)" \ - -Dnm="$(tc-getNM)" \ - -Dranlib="$(tc-getRANLIB)" \ - -Accflags="${CFLAGS} -DNO_PERL_RAND_SEED" \ - -Doptimize="${CFLAGS}" \ - -Dldflags="${LDFLAGS}" \ - -Dprefix="${EPREFIX}"'/usr' \ - -Dsiteprefix="${EPREFIX}"'/usr/local' \ - -Dvendorprefix="${EPREFIX}"'/usr' \ - -Dscriptdir="${EPREFIX}"'/usr/bin' \ - -Dprivlib="${EPREFIX}${PRIV_LIB}" \ - -Darchlib="${EPREFIX}${ARCH_LIB}" \ - -Dsitelib="${EPREFIX}${SITE_LIB}" \ - -Dsitearch="${EPREFIX}${SITE_ARCH}" \ - -Dvendorlib="${EPREFIX}${VENDOR_LIB}" \ - -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \ - -Dman1dir="${EPREFIX}"/usr/share/man/man1 \ - -Dman3dir="${EPREFIX}"/usr/share/man/man3 \ - -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \ - -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \ - -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \ - -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \ - -Dman1ext='1' \ - -Dman3ext='3pm' \ - -Dlibperl="${LIBPERL}" \ - -Dlocincpth="${EPREFIX}"'/usr/include ' \ - -Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \ - -Duselargefiles \ - -Duse64bitint \ - -Dd_semctl_semun \ - -Dcf_by='Gentoo' \ - -Dmyhostname='localhost' \ - -Dperladmin='root@localhost' \ - -Ud_csh \ - -Dsh="${BROOT}"/bin/sh \ - -Dtargetsh="${EPREFIX}"/bin/sh \ - -Uusenm \ - "${EXTRA_ECONF[@]}" - - if tc-is-cross-compiler; then - ./configure \ - --target="${CHOST}" \ - --build="${CBUILD}" \ - -Dinstallprefix='' \ - -Dinstallusrbinperl='undef' \ - -Dusevendorprefix='define' \ - "${myconf[@]}" \ - || die "Unable to configure" - else - sh Configure \ - -des \ - -Dinstallprefix="${EPREFIX}"'/usr' \ - -Dinstallusrbinperl='n' \ - "${myconf[@]}" \ - || die "Unable to configure" - fi -} - -src_test() { - export NO_GENTOO_NETWORK_TESTS=1; - export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}" - export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}" - if [[ ${EUID} == 0 ]] ; then - ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..." - return 0 - fi - TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed" -} - -src_install() { - local i - local coredir="${ARCH_LIB}/CORE" - - emake DESTDIR="${D}" install - - rm -f "${ED}/usr/bin/perl${MY_PV}" - ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die - - if ! tc-is-static-only ; then - dolib.so "${ED}"${coredir}/${LIBPERL} - rm -f "${ED}"${coredir}/${LIBPERL} - ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die - ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die - - ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die - ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die - ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die - fi - - rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages" - - # This removes ${D} from Config.pm - for i in $(find "${D}" -iname "Config.pm" ) ; do - einfo "Removing ${D} from ${i}..." - sed -i -e "s:${D}::" "${i}" || die "Sed failed" - done - - dodoc Changes* README AUTHORS - - if use doc ; then - # HTML Documentation - # We expect errors, warnings, and such with the following. - - dodir /usr/share/doc/${PF}/html - LD_LIBRARY_PATH=. ./perl installhtml \ - --podroot='.' \ - --podpath='lib:ext:pod:vms' \ - --recurse \ - --htmldir="${ED}/usr/share/doc/${PF}/html" - fi - - [[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local - - dual_scripts -} - -pkg_preinst() { - check_rebuild -} - -pkg_postinst() { - dual_scripts - - if [[ -z "${ROOT}" ]] ; then - local INC DIR file - INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }') - einfo "Removing old .ph files" - for DIR in ${INC} ; do - if [[ -d "${DIR}" ]] ; then - for file in $(find "${DIR}" -name "*.ph" -type f ) ; do - rm -f "${file}" - einfo "<< ${file}" - done - fi - done - # Silently remove the now empty dirs - for DIR in ${INC} ; do - if [[ -d "${DIR}" ]] ; then - find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null - fi - done - - fi -} - -pkg_postrm() { - dual_scripts -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.2.ebuild new file mode 100644 index 00000000000..00998d772e3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.2.ebuild @@ -0,0 +1,873 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing + +PATCH_VER=1 +CROSS_VER=1.6.4 +PATCH_BASE="perl-5.42.0-patches-${PATCH_VER}" +PATCH_DEV=dilfridge + +DIST_AUTHOR=SHAY + +# Greatest first, don't include yourself +# Devel point-releases are not ABI-intercompatible, but stable point releases are +# BIN_OLDVERSEN contains only C-ABI-intercompatible versions +PERL_BIN_OLDVERSEN="" + +if [[ "${PV##*.}" == "9999" ]]; then + DIST_VERSION=5.42.0 +else + DIST_VERSION="${PV/_rc/-RC}" +fi +SHORT_PV="${DIST_VERSION%.*}" + +# Even numbered major versions are ABI intercompatible +# Odd numbered major versions are not +if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then + SUBSLOT="${DIST_VERSION%-RC*}" +else + SUBSLOT="${DIST_VERSION%.*}" +fi + +# Used only in tar paths +MY_P="perl-${DIST_VERSION}" +# Used in library paths +MY_PV="${DIST_VERSION%-RC*}" + +DESCRIPTION="Larry Wall's Practical Extraction and Report Language" + +HOMEPAGE="https://www.perl.org/" + +SRC_URI=" + mirror://cpan/src/5.0/${MY_P}.tar.xz + mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz + https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz + https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz +" + +S="${WORKDIR}/${MY_P}" + +LICENSE="|| ( Artistic GPL-1+ )" + +SLOT="0/${SUBSLOT}" + +if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +fi + +IUSE="berkdb perl_features_debug doc gdbm perl_features_ithreads minimal perl_features_quadmath" + +RDEPEND=" + berkdb? ( sys-libs/db:= ) + gdbm? ( >=sys-libs/gdbm-1.8.3:= ) + app-arch/bzip2 + >=virtual/zlib-1.2.12:= + virtual/libcrypt:= +" +DEPEND="${RDEPEND}" +BDEPEND="${RDEPEND}" +PDEPEND=" + !minimal? ( + >=app-admin/perl-cleaner-2.31 + >=virtual/perl-CPAN-2.290.0 + >=virtual/perl-Encode-3.120.0 + >=virtual/perl-File-Temp-0.230.400-r2 + >=virtual/perl-Data-Dumper-2.154.0 + >=virtual/perl-Math-BigInt-1.999.842 + virtual/perl-Test-Harness + ) +" + +# bug 390719, bug 523624 +# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker + +dual_scripts() { + src_remove_dual perl-core/Archive-Tar 3.40.0 ptar ptardiff ptargrep + src_remove_dual perl-core/CPAN 2.380.0 cpan + src_remove_dual perl-core/Digest-SHA 6.40.0 shasum + src_remove_dual perl-core/Encode 3.210.0 enc2xs piconv + src_remove_dual perl-core/ExtUtils-MakeMaker 7.760.0 instmodsh + src_remove_dual perl-core/ExtUtils-ParseXS 3.570.0 xsubpp + src_remove_dual perl-core/IO-Compress 2.213.0 zipdetails + src_remove_dual perl-core/JSON-PP 4.160.0 json_pp + src_remove_dual perl-core/Module-CoreList 5.202.507.20 corelist + src_remove_dual perl-core/Pod-Checker 1.770.0 podchecker + src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc + src_remove_dual perl-core/Pod-Usage 2.50.0 pod2usage + src_remove_dual perl-core/Test-Harness 3.500.0 prove + src_remove_dual perl-core/podlators 6.0.2 pod2man pod2text + src_remove_dual_man perl-core/podlators 6.0.2 /usr/share/man/man1/perlpodstyle.1 +} + +check_rebuild() { + # Fresh install + if [[ -z ${REPLACING_VERSIONS} ]]; then + return 0 + fi + + # Major Upgrade + local v + for v in ${REPLACING_VERSIONS}; do + [[ ${v%.*} == "${SHORT_PV}" ]] && continue + echo "" + ewarn "UPDATE THE PERL MODULES:" + ewarn "After updating dev-lang/perl to a new major version the installed Perl modules" + ewarn "have to be re-installed. In most cases, this is done automatically" + ewarn "by the package manager." + ewarn + ewarn "ONLY if you encounter problems, call perl-cleaner to clean up any old files" + ewarn "and trigger any remaining rebuilds portage may have missed." + ewarn "Use: perl-cleaner --all" + return 0 + done + + # Reinstall w/ USE Change + if + ( use perl_features_ithreads && ( has_version '=dev-lang/perl-5.38.2-r3[-perl_features_ithreads]' ) ) || \ + ( ! use perl_features_ithreads && ( has_version '=dev-lang/perl-5.38.2-r3[perl_features_ithreads]' ) ) || \ + ( use perl_features_quadmath && ( has_version '=dev-lang/perl-5.38.2-r3[-perl_features_quadmath]' ) ) || \ + ( ! use perl_features_quadmath && ( has_version '=dev-lang/perl-5.38.2-r3[perl_features_quadmath]' ) ) || \ + ( use perl_features_debug && ( has_version '=dev-lang/perl-5.38.2-r3[-perl_features_debug]' ) ) || \ + ( ! use perl_features_debug && ( has_version '=dev-lang/perl-5.38.2-r3[perl_features_debug]' ) ) ; then + echo "" + ewarn "TOGGLED PERL FEATURES WARNING:" + ewarn "You changed one of the PERL_FEATURES flags ithreads, quadmath, or debug." + ewarn "You must rebuild all perl-modules installed. Mostly this should be done automatically" + ewarn "via the flag changes of the packages. If the rebuild fails, use perl-cleaner." + ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl" + ewarn + ewarn "NOTE: Previous to perl-5.38.2-r3, these flags were useflags for dev-lang/perl." + ewarn "If you just upgraded and do not intend to change anything, carry the same settings over" + ewarn "into a global PERL_FEATURES variable set in make.conf. E.g., " + ewarn "dev-lang/perl[ithreads,quadmath] becomes PERL_FEATURES=\"ithreads quadmath\"" + fi +} + +pkg_pretend() { + if \ + ( use perl_features_ithreads && has_version ' "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc" + fi + if [[ $# -gt 0 ]]; then + # Note: when $@ is more than one element, this emits a + # line for each element + printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs" + fi +} + +# Remove a patch using a glob expr +# eg: +# rm_patch *-darwin-Use-CC* +# +rm_patch() { + local patchdir="${WORKDIR}/patches" + local expr="$1" + local patch="$( cd "${patchdir}"; echo $expr )" + einfo "Removing $patch ($expr) from patch bundle" + if [[ -e "${patchdir}/${patch}" ]]; then + rm -f "${patchdir}/${patch}" || die "Can't remove ${patch} ( $expr )" + else + ewarn "No ${expr} found in ${patchdir} to remove" + fi +} + +# Yes, this is a reasonable amount of code for something seemingly simple +# but this is far easier to debug when things go wrong, and things went wrong +# multiple times while I was getting the exact number of slashes right, which +# requires circumnavigating both bash and sed escape mechanisms. +c_escape_string() { + local slash dquote + slash='\' + dquote='"' + re_slash="${slash}${slash}" + re_dquote="${slash}${dquote}" + + # Convert \ to \\, + # " to \" + echo "$1" |\ + sed "s|${re_slash}|${re_slash}${re_slash}|g" |\ + sed "s|${re_dquote}|${re_slash}${re_dquote}|g" +} +c_escape_file() { + c_escape_string "$(cat "$1")" +} + +apply_patchdir() { + local patchdir="${WORKDIR}/patches" + local infodir="${WORKDIR}/patch-info" + local patchoutput="patchlevel-gentoo.h" + + # Inject Patch-Level info into description for patchlevel.h patch + # to show in -V + local patch_expr="*List-packaged-patches*" + local patch="$( cd "${patchdir}"; echo $patch_expr )"; + einfo "Injecting patch-level info into ${patch}.desc ( $patch_expr )" + + if [[ -e "${patchdir}/${patch}" ]]; then + printf "List packaged patches for %s(%s) in patchlevel.h" "${PF}" "${PATCH_BASE}"\ + >"${infodir}/${patch}.desc" || die "Can't rewrite ${patch}.desc" + else + eerror "No $patch_expr found in ${patchdir}" + fi + + # Compute patch list to apply + # different name other than PATCHES to stop default + # reapplying it + # Single depth is currently only supported, as artifacts can reside + # from the old layout being multiple-directories, as well as it grossly + # simplifying the patchlevel_gentoo.h generation. + local PERL_PATCHES=($( + find "${patchdir}" -maxdepth 1 -mindepth 1 -type f -printf "%f\n" |\ + grep -E '[.](diff|patch)$' |\ + sort -n + )) + + for patch in "${PERL_PATCHES[@]}"; do + eapply "${WORKDIR}"/patches/${patch} + done + + einfo "Generating $patchoutput" + + # This code creates a header file, each iteration + # creates one-or-more-lines for each entry found in PERL_PATCHES + # and STDOUT is redirected to the .h file + for patch in "${PERL_PATCHES[@]}"; do + local desc_f="${infodir}/${patch}.desc" + local bugs_f="${infodir}/${patch}.bugs" + + printf ',"%s"\n' "${patch}" + if [[ ! -e "${desc_f}" ]]; then + ewarn "No description provided for ${patch} (expected: ${desc_f} )" + else + local desc="$(c_escape_file "${desc_f}")" + printf ',"- %s"\n' "${desc}" + fi + if [[ -e "${bugs_f}" ]]; then + while read -d $'\n' -r line; do + local esc_line="$(c_escape_string "${line}")" + printf ',"- Bug: %s"\n' "${esc_line}" + done <"${bugs_f}" + fi + done > "${S}/${patchoutput}" + printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST" + +} + +src_prepare() { + + local patchdir="${WORKDIR}/patches" + + # mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patches" "${WORKDIR}/patches" || die + # mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patch-info" "${WORKDIR}/patch-info" || die + + # Prepare Patch dir with additional patches / remove unwanted patches + # Inject bug/desc entries for perl -V + # Old example: + # add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\ + # "Fix broken miniperl on hppa"\ + # "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162" + + # Backports from 5.42.0-votes.xml as of 2025-11-22 + add_patch "${FILESDIR}/5.42.0/0004-Turn-off-POSIX-2008-locales-on-AIX.patch" \ + "103-Turn-off-POSIX-2008-locales-on-AIX.patch" \ + "Turn off POSIX 2008 locales on AIX" \ + "https://github.com/Perl/perl5/issues/23825" + + if [[ ${CHOST} == *-solaris* ]] ; then + # do NOT mess with nsl, on Solaris this is always necessary, + # when -lsocket is used e.g. to get h_errno + rm_patch "*-nsl-and-cl*" + fi + + apply_patchdir + + tc-is-cross-compiler && src_prepare_perlcross + + tc-is-static-only || src_prepare_dynamic + + if use gdbm; then + sed -i "s:INC => .*:INC => \"-I${ESYSROOT}/usr/include/gdbm\":g" \ + ext/NDBM_File/Makefile.PL || die + fi + + # Use errno.h from prefix rather than from host system, bug #645804 + if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then + sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die + fi + + if [[ ${CHOST} == *-solaris* ]] ; then + # set a soname, fix linking against just built libperl + sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die + fi + + if [[ ${CHOST} == *-darwin* ]] ; then + # fix install_name (soname) not to reference $D + sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die + + # fix environ linkage absence (only a real issue on Darwin9) + if [[ ${CHOST##*-darwin} -le 9 ]] ; then + sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \ + Makefile.SH || die + fi + fi + + default +} + +myconf() { + # the myconf array is declared in src_configure + myconf=( "${myconf[@]}" "$@" ) +} + +# Outputs a list of versions which have been seen in any of the +# primary perl @INC prefix paths, such as: +# /usr/lib64/perl5/ +# /usr/local/lib64/perl5/ +# /usr/lib64/perl5/vendor_perl/ +# +# All values of NUMBER must be like "5.x.y" or like "5.x" +# +find_candidate_inc_versions() { + local regex='.*/5[.][0-9]+\([.][0-9]+\|\)$' + local dirs=( + "${EROOT}${PRIV_BASE}" + "${EROOT}${SITE_BASE}" + "${EROOT}${VENDOR_BASE}" + ) + for dir in "${dirs[@]}"; do + if [[ ! -e "${dir}" ]]; then + continue + fi + # Without access to readdir() on these dirs, find will not be able + # to reveal any @INC directories inside them, and will subsequently prune + # them from the built perl's @INC support, breaking our compatiblity options + # entirely. + if [[ ! -r "${dir}" || ! -x "${dir}" ]]; then + eerror "Bad permissions on ${dir}, this will probably break things" + eerror "Ensure ${dir} is +rx for at least uid=$EUID" + eerror "Recommended permission is +rx for all" + eerror "> chmod o+rx ${dir}" + fi + done + einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}" + find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null +} + +# Sort versions passed versiony-ly, remove self-version if present +# dedup. Takes each version as an argument +sanitize_inc_versions() { + local vexclude="${SUBSLOT}" + einfo "Normalizing/Sorting candidate list: $*" + einfo " to remove '${vexclude}'" + # Note, general numeric sort has to be used + # for the last component, or unique will convert + # 5.30.0 + 5.30 into just 5.30 + printf "%s\n" "$@" |\ + grep -vxF "${vexclude}" |\ + sort -u -nr -t'.' -k1,1rn -k2,2rn -k3,3rg +} + +versions_to_inclist() { + local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}" + + for v; do + has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ "; + echo -n "${v}/ "; + done +} + +versions_to_gentoolibdirs() { + local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}" + local root + local v + for v; do + for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do + local fullpath="${EROOT}${root}/${v}" + if [[ -e "${fullpath}" ]]; then + has "${v}" ${oldv} && printf "%s:" "${fullpath}/${myarch}${mythreading}"; + printf "%s:" "${fullpath}" + fi + done + done +} + +src_configure() { + declare -a myconf + + export LC_ALL="C" + [[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091 + + # Perl has problems compiling with -Os in your flags with glibc + replace-flags "-Os" "-O2" + + # xlocale.h is going away in glibc-2.26, so it's counterproductive + # if we use it and include it in CORE/perl.h ... Perl builds just + # fine with glibc and locale.h only. + # However, the darwin prefix people have no locale.h ... + use elibc_glibc && myconf -Ui_xlocale + + # Perl relies on -fwrapv semantics + filter-flags -ftrapv + + # This flag makes compiling crash in interesting ways + filter-flags "-malign-double" + + # On musl we dont want to use largefile *64 types, since 1) normal + # types are 64bit / largefile anyway and 2) the *64 types are going + # away in 1.2.4... bug #911233 + use elibc_musl && myconf -Ud_off64_t + + use sparc && myconf -Ud_longdbl + + # This urgently needs debugging - on m68k, miniperl crashes during + # build otherwise.. + use m68k && append-ldflags -Wl,-z,norelro + + export BUILD_BZIP2=0 + export BZIP2_INCLUDE=${ESYSROOT}/usr/include + export BZIP2_LIB=${ESYSROOT}/usr/$(get_libdir) + + export BUILD_ZLIB=False + export ZLIB_INCLUDE=${ESYSROOT}/usr/include + export ZLIB_LIB=${ESYSROOT}/usr/$(get_libdir) + + # allow either gdbm to provide ndbm (in ) or db1 + myndbm='U' + mygdbm='U' + mydb='U' + if use gdbm ; then + mygdbm='D' + if use berkdb ; then + myndbm='D' + fi + fi + if use berkdb ; then + mydb='D' + has_version '=sys-libs/db-1*' && myndbm='D' + fi + + myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db" + + if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then + ewarn "Perl will not be built with berkdb support, use gcc if you need it..." + myconf -Ui_db -Ui_ndbm + fi + + use perl_features_ithreads && myconf -Dusethreads + + use perl_features_quadmath && myconf -Dusequadmath + + if use perl_features_debug ; then + append-cflags "-g" + myconf -DDEBUGGING + elif [[ ${CFLAGS} == *-g* ]] ; then + myconf -DDEBUGGING=-g + else + myconf -DDEBUGGING=none + fi + + # modifying 'optimize' prevents cross configure script from appending required flags + if tc-is-cross-compiler; then + append-cflags "-fwrapv" + tc-export_build_env + + # Needed for the CHOST build too (bug #932385) + export CFLAGS="${CFLAGS} -D_GNU_SOURCE" + + # bug #913171 + export \ + HOSTCC=$(tc-getBUILD_CC) \ + HOSTCFLAGS="${CFLAGS_FOR_BUILD} -D_GNU_SOURCE" \ + HOSTLDFLAGS="${LDFLAGS_FOR_BUILD}" + fi + + # bug #877659, bug #821577 + append-cflags -fno-strict-aliasing + + # Autodiscover all old version directories, some of them will even be newer + # if you downgrade + if [[ -z ${PERL_OLDVERSEN} ]]; then + PERL_OLDVERSEN="$( find_candidate_inc_versions )" + fi + + # Fixup versions, removing self match, fixing order and dupes + PERL_OLDVERSEN="$( sanitize_inc_versions ${PERL_OLDVERSEN} )" + + # Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string + if [[ -n "${PERL_OLDVERSEN// }" ]]; then + local inclist="$( versions_to_inclist ${PERL_OLDVERSEN} )" + einfo "This version of perl may partially support modules previously" + einfo "installed in any of the following paths:" + for incpath in ${inclist}; do + [[ -e "${EROOT}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT}${VENDOR_BASE}/${incpath}" + [[ -e "${EROOT}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROOT}${PRIV_BASE}/${incpath}" + [[ -e "${EROOT}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT}${SITE_BASE}/${incpath}" + done + einfo "This is a temporary measure and you should aim to cleanup these paths" + einfo "via world updates and perl-cleaner" + # myconf -Dinc_version_list="${inclist}" + myconf -Dgentoolibdirs="$( versions_to_gentoolibdirs ${PERL_OLDVERSEN} )" + fi + + [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a" + + # Make sure we can do the final link #523730, need to set deployment + # target to override hardcoded 10.3 which breaks on modern OSX + [[ ${CHOST} == *-darwin* ]] && \ + myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)" + + # Older macOS with non-Apple GCC chokes on inline in system headers + # using c89 mode as injected by cflags.SH, in addition, we override + # cflags, so we loose PERL_DARWIN which enables compat code that + # apparently on more recent macOS releases is no longer necessary + [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \ + append-cflags -Dinline=__inline__ -DPERL_DARWIN + + # Prefix: the host system needs not to follow Gentoo multilib stuff, and in + # Prefix itself we don't do multilib either, so make sure perl can find + # something compatible. + if use prefix ; then + # Set a hook to check for each detected library whether it actually works. + export libscheck=" + ( echo 'int main(){}' > '${T}'/conftest.c && + $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null + ) || xxx=/dev/null" + + # Use all host paths that might contain useful stuff, the hook above will filter out bad choices. + local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib" + myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}" + elif [[ $(get_libdir) != "lib" ]] ; then + # We need to use " and not ', as the written config.sh use ' ... + myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)" + fi + + # don't try building ODBM, bug #354453 + disabled_extensions="ODBM_File" + + if ! use gdbm ; then + # workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm" + disabled_extensions="${disabled_extensions} GDBM_File NDBM_File" + fi + + myconf -Dnoextensions="${disabled_extensions}" + + [[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly + + [[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF} + # allow fiddling via EXTRA_ECONF, bug 558070 + eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})" + + myconf \ + -Duseshrplib \ + -Darchname="${myarch}" \ + -Dar="$(tc-getAR)" \ + -Dcc="$(tc-getCC)" \ + -Dcpp="$(tc-getCPP)" \ + -Dld="$(tc-getCC)" \ + -Dnm="$(tc-getNM)" \ + -Dranlib="$(tc-getRANLIB)" \ + -Accflags="${CFLAGS} -DNO_PERL_RAND_SEED" \ + -Doptimize="${CFLAGS}" \ + -Dldflags="${LDFLAGS}" \ + -Dprefix="${EPREFIX}"'/usr' \ + -Dsiteprefix="${EPREFIX}"'/usr/local' \ + -Dvendorprefix="${EPREFIX}"'/usr' \ + -Dscriptdir="${EPREFIX}"'/usr/bin' \ + -Dprivlib="${EPREFIX}${PRIV_LIB}" \ + -Darchlib="${EPREFIX}${ARCH_LIB}" \ + -Dsitelib="${EPREFIX}${SITE_LIB}" \ + -Dsitearch="${EPREFIX}${SITE_ARCH}" \ + -Dvendorlib="${EPREFIX}${VENDOR_LIB}" \ + -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \ + -Dman1dir="${EPREFIX}"/usr/share/man/man1 \ + -Dman3dir="${EPREFIX}"/usr/share/man/man3 \ + -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \ + -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \ + -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \ + -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \ + -Dman1ext='1' \ + -Dman3ext='3pm' \ + -Dlibperl="${LIBPERL}" \ + -Dlocincpth="${EPREFIX}"'/usr/include ' \ + -Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \ + -Duselargefiles \ + -Duse64bitint \ + -Dd_semctl_semun \ + -Dcf_by='Gentoo' \ + -Dmyhostname='localhost' \ + -Dperladmin='root@localhost' \ + -Ud_csh \ + -Dsh="${BROOT}"/bin/sh \ + -Dtargetsh="${EPREFIX}"/bin/sh \ + -Uusenm \ + "${EXTRA_ECONF[@]}" + + if tc-is-cross-compiler; then + ./configure \ + --target="${CHOST}" \ + --build="${CBUILD}" \ + -Dinstallprefix='' \ + -Dinstallusrbinperl='undef' \ + -Dusevendorprefix='define' \ + "${myconf[@]}" \ + || die "Unable to configure" + else + sh Configure \ + -des \ + -Dinstallprefix="${EPREFIX}"'/usr' \ + -Dinstallusrbinperl='n' \ + "${myconf[@]}" \ + || die "Unable to configure" + fi +} + +src_test() { + export NO_GENTOO_NETWORK_TESTS=1; + export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}" + export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}" + if [[ ${EUID} == 0 ]] ; then + ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..." + return 0 + fi + TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed" +} + +src_install() { + local i + local coredir="${ARCH_LIB}/CORE" + + emake DESTDIR="${D}" install + + rm -f "${ED}/usr/bin/perl${MY_PV}" + ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die + + if ! tc-is-static-only ; then + dolib.so "${ED}"${coredir}/${LIBPERL} + rm -f "${ED}"${coredir}/${LIBPERL} + ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die + ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die + + ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die + ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die + ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die + fi + + rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages" + + # This removes ${D} from Config.pm + for i in $(find "${D}" -iname "Config.pm" ) ; do + einfo "Removing ${D} from ${i}..." + sed -i -e "s:${D}::" "${i}" || die "Sed failed" + done + + dodoc Changes* README AUTHORS + + if use doc ; then + # HTML Documentation + # We expect errors, warnings, and such with the following. + + dodir /usr/share/doc/${PF}/html + LD_LIBRARY_PATH=. ./perl installhtml \ + --podroot='.' \ + --podpath='lib:ext:pod:vms' \ + --recurse \ + --htmldir="${ED}/usr/share/doc/${PF}/html" + fi + + [[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local + + dual_scripts +} + +pkg_preinst() { + check_rebuild +} + +pkg_postinst() { + dual_scripts + + if [[ -z "${ROOT}" ]] ; then + local INC DIR file + INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }') + einfo "Removing old .ph files" + for DIR in ${INC} ; do + if [[ -d "${DIR}" ]] ; then + for file in $(find "${DIR}" -name "*.ph" -type f ) ; do + rm -f "${file}" + einfo "<< ${file}" + done + fi + done + # Silently remove the now empty dirs + for DIR in ${INC} ; do + if [[ -d "${DIR}" ]] ; then + find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null + fi + done + + fi +} + +pkg_postrm() { + dual_scripts +} 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 ee1f5221160..cd640712137 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 @@ -1,59 +1,39 @@ DIST Python-2.7.18.tar.xz 12854736 BLAKE2B 060a621c91dd8e3d321aec99d44c17aa67381998256a1a002d316b38288349884d5960de35c49352d03129ed0bae599e641ec2225898158ebce50a7a2fd74d2c SHA512 a7bb62b51f48ff0b6df0b18f5b0312a523e3110f49c3237936bfe56ed0e26838c0274ff5401bda6fc21bf24337477ccac49e8026c5d651e4b4cafb5eb5086f6c DIST Python-2.7.18.tar.xz.asc 833 BLAKE2B 1d98770e46171971fb99994508d238c01d2755281d2f94353314014d9e83e0ec5f0b3e3950ea1fdf5fce9ba6b8f55312355845c2a3fc4291c27ee56fe6215448 SHA512 c2a5f5a52f47dec52460ad3275758d4e5de6e7075c3def4353c988d74d563a39b42cae2d5eb24e2a23a6247cef69100f91620b11a49c2359fbf99b203c9cbda8 -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.10.20.tar.xz 19868028 BLAKE2B 2c87aba3688454eeba9828689f7d6b4cd31d12b23cff8849f6565ba3731030a726f00285d95c301f4cd6ea4316a0b63b10b2d551e03c7eaf7750f69a422626e1 SHA512 591d3acf7ef47307b8c58fec9516731b374bcdf6eb21883410f67402f823a183f1abffec1116583e394610730f414d5a98b4c3437ea5174a4d2adbb99b8f6e5b DIST Python-3.10.20.tar.xz.asc 833 BLAKE2B a0c698708b74cc9510374c07cc65b69fd492aeef1e910e58289f7f197edf5d42b4a14a09971c36fd8e8d01b744197a58ce081a8830610009306136ee3dc279ff SHA512 cb90ce514c63c63adc10cbb3db778eae626b922461715954daf08b3a3a99b8b4c750fded624787b7d28fc10a203b0e0e5494b91e5305ef56a23fda46c023c203 -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.11.15.tar.xz 20332596 BLAKE2B 8be4dd30aff7a2615fd37754dc6ed1caede1507ef7716e500a2e1d1aa421668e810a2c13dfc743bcd47576a7715588476bd8c3d42275a24215a85109d6da7062 SHA512 1667f4839acfd23d05917a12993983b7dc3ab4438a37c72496fd040ac6981f4dea9dc95461ca701a6862beedb56c423fb83398b8b18e39e1efe12f539fced1c1 DIST Python-3.11.15.tar.xz.asc 833 BLAKE2B dd4134701ef36d22c7bca8ea16794d3e85dc2a2b6323b2babfdeb2652ade1db8b7d4256cb68a40ee1c1a2b5885666e25791c1e4d6c044cc8d49f68693ec65887 SHA512 673822ca037acb521bf7d3e7433f83cc2d60c8d102cfbf6695234e2a50ce12a7003040ad4017438510ebbb1ff0ba6727253fae250b07bc0e3d24b5578e80be52 -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.12.13.tar.xz 20801708 BLAKE2B 94b99c75e3aba1d1a953b5447f8ad6b7ebec921bc8cf32a9dfd449e574e4b7e2a010f0f267c31c859acec0092669203c71c90386c80203968126d9dbfb6ae85d SHA512 e1eb66f0b34581f0155e3ce25ba72cf0b4b1107672ed0ad3e86bcfe616945c9204c41ffc492f32b1066b9154913ff88343038967ad8711dd05e6f2332fdb735b DIST Python-3.12.13.tar.xz.asc 963 BLAKE2B e6bc572fd207fe203cf8018bca89777c7033e46d25cc598b5715658f556d26b6f3b1652f13518850ad62a37254ab4ecf5f770197cb847306ffef96b747840e88 SHA512 903fd3baa7e29891bb00fb159ec9c43804a71002c4cd38902d25bf4e5167f856b37d211a5b1098ee60e1ea41f8a10a1596dd2382edc6d7367d55dd4154807fc7 -DIST Python-3.13.11.tar.xz 22704352 BLAKE2B 6c9c4dddcda36a0210155b759c01101b0429b17622d76a50881533b454335298e9f71ba300710afea2039425a08e4e1ea7eab27a18dc871950c3a32ad93ce663 SHA512 11a910785bb3edeb3888331f29d2514d539f08b07d3125186364ab0e261dab29c7e7c70fe08d89718c38b6053cbe932ac4a6062ac291871e6f4173d29425264a -DIST Python-3.13.11.tar.xz.asc 963 BLAKE2B a6e21908f8161ed014455a609004b9bce461cae61f1b3b26d56c2582e01134f7adb1634c12dc99a8c3a290564a42e5b1bdbec6cb6faaf3ea41245e8a2e17ed1c SHA512 10beaba6d0e84f0335c0add480114e98a64133ec70d320593349de86091ccbdd69743559297f9c8c5e9926089890fd0e7881388e86084f46a413e9579c59d23c -DIST Python-3.13.12.tar.xz 22926488 BLAKE2B a744a81e39e4897abcaf11d6186c106d703c668ca41beefc8d56003d3b37b84a64284f0e9ca9dcc26a6b7ac6faf495b98e5172159ff91e8c01d52993cdc354b7 SHA512 5edecdf13999d8629f31543dffdcba521dbb5633577e481ee49275e377509a2f6d700624c26f95b57a8ff9501378d10d7c07c1d0e7e19be0d6c88f05b6315a13 -DIST Python-3.13.12.tar.xz.asc 963 BLAKE2B c3e70ac00672c04692ff773d1dc0ae5495bc863782f65e20c8804c7888968471f9a16f42277ca88e1d256abb7d17cdcbc70b311ad35834054cf5be2445930eb5 SHA512 6d42bc51b3658e1b092e7ab44306f6fc968646a7a9aeb63a3c443d1f75e27153a2138e88c15cebf8d559ce6d7744acecd4e6026c6d0be6fde070f804042d4aea -DIST Python-3.13.9.tar.xz 22681368 BLAKE2B 8fbf9b9e0dcc480a5bac82d5c18d6fdb630769364c6963d40a86f222a5b77b2b596a743c771e710f4ada9c5dada5b65fcbf2fdf3601179ad7aea4fddb61fbadd SHA512 ffc9b6e545bf5cf8f3b945f85442eb4bd28cca9adb92d8c253f44078ec2e9758f802bf72c48e0d7e503c02b2dc754c58ee913cd3b7d8e8808fac2a0aa4e006a8 -DIST Python-3.13.9.tar.xz.asc 963 BLAKE2B 7989940e3dfc62c553016f9d2b9aef447e770d63b2508f287e14495ba3e98326279d2bdb3b96bbc65ff2a859253bc43d8ce5387873842f656a66abef8380a3b7 SHA512 c33fba3a6b22dccc08beb7f13bd61a25a30f609a54da7c8dfd3b3b4a3490a7b24c11f9617a835388f22709fb09375d35febc417cf104a18f5bec3b43ec999e82 -DIST Python-3.14.0.tar.xz 23595844 BLAKE2B 0fe495d62819c9066240927ceff022dc36920cfd9aa7f80f09fd82a6baf42fe0ef85aed7087418ad9769504e62dc0592cf9c06a542335d83ab65fc6399b5ac76 SHA512 46e9e205c3a084cba68bf7f267ab2fd0862a05430165e0eb713f2d6b3a1a4452f72f563de5de55caea824be9df56f66dd568f4814941667a9bb0954229772c53 -DIST Python-3.14.0.tar.xz.sigstore 5374 BLAKE2B 50ed6dada3a7dfcfeb47e0cc55568c0e2ea01a5710f341d6423bb5b0982897b13a7a7c91d8b7c995499f687b17a6cf432fdcd3338b0ac658d19a8ad032438957 SHA512 147bf060a55b9108efb6f6a7f478c0b4dc1e7b1e215b842fb8adfe1b96bbe8d1b49ad352455e047d694638130f8533e3ea1c3a246e9ed0fde0d08e80113a6c44 -DIST Python-3.14.2.tar.xz 23566248 BLAKE2B f010a11192ba8e2e4a5e6e3b1aa67c56e67af3114892b3f7741a3b6fa7b8465b4f4ed573968a17e45ec39e90e44e8af11e98f4087d134065c789126efa26c691 SHA512 165256b4c713e0262767cd7a2c65622f3f086423524646a39bfa64912376be9e5b70863d5a3c95224b516152d0b79e7ccbfe2f2cf35b809d132f2c38ebb3ab3b -DIST Python-3.14.2.tar.xz.sigstore 5119 BLAKE2B 7a975c9a2956cc672889bb08cacbae3f1d6024df72ef47de3a1438a7561daae3b67489c04851a97199f82ee047bac8cec00c3964deb80e9849a3a5373aa9dc9b SHA512 85e62f237d03d6065dcb0d0d7fdadfc6a3b9f55fd96bc3312178a1359c08b1931fd288a87f215b19ed610aeae3316cd4ee1ceda079d8447dd076fd867008c7f5 -DIST Python-3.14.3.tar.xz 23778568 BLAKE2B 9312d28b8bd44c642eeb2d608827984610154f3adba0cdb318b959fc643f58a90f7e10c84b485a844577b1fe1f374ec85d585e6664b5b532531b60f77c951e27 SHA512 9fd875f7a1d96d64e7150913ef38b72b0aeecfcbc24ba46967e57b6495146b0cba6b940c273561fc4d656b6d0ce2e23ffb7bd32bcd0b61fd59a6d90585998c07 -DIST Python-3.14.3.tar.xz.sigstore 5215 BLAKE2B bb6b0aae97c9b7312b7a6f6bf3fc200a95432ae28d49e6b8bbf2ff97d6c6c65f3a60d3adad96eee3bf5f18163dda0a46768f22c6cf18b3be83fda536d73ac048 SHA512 0eda4ba0e9920ef927882507dc41e5bb35758ada6b5d54d312715ffd258a281edd776695109577f8ec54c915b5d4dcf19c2ba79efc2cb3dc3b3d85c82acf49f0 -DIST Python-3.15.0a5.tar.xz 34829268 BLAKE2B adda3409a5b3308da1f39effc0b01b317b21922bda739b65587007bd912f10540bc02637afa48e1a5630d44e23ed9a82df8bbbb6e766547d1ae66d08f43c5123 SHA512 c09f004cbd629d676e626ffc707a971d85147f3a03df1a666916473908cc25884237ba1a56edd15c679619ccf044cab9913118a0e67da5610dc406c8e2597b96 -DIST Python-3.15.0a5.tar.xz.sigstore 5311 BLAKE2B e214228fe5211d5df51fb7cd85b2c22b616f01f5f9ea75a8312fd08a37dd7e5444935b8ade81c44b1cf92dd8c61e0a15c3a929e9ecd71ee164d38936e76628d6 SHA512 b395e2e61a6bc0d406b28583f9aecea731fa13ada39936b7474baa24a6d1674dd3f83f54ab0ca5e38e1cda211ddaded71117e3c733dfd4373a3ba161053060b2 -DIST Python-3.15.0a6.tar.xz 34950024 BLAKE2B 96fb82a52bb504df886dd89d7a04538eb60285f5ad84a736a3eff8fa19ade1c2026a327c336fd1c249c7016e6a0c5e3d6d7275a499e6b99f72ce386f27a1c4b8 SHA512 d941b26a57b292f388b425186af9584843d220ca729b8b4cea1874831496eeb2a6e3432ca81722134fb86f3e7078cd955ff5774e79b44749bf01994e4349624d -DIST Python-3.15.0a6.tar.xz.sigstore 5171 BLAKE2B 368f3e18c48b3dd0c1f4281b9bb4a28a9f5e5f7d138990bbccd80637c29f1fad5ca793dd09e49b0c7998fba8c4b9338990910e9bc99b2b71a64114f633727d82 SHA512 098b60d659b72f6f06b428619ddc9bb6b1c2ee3d3c6b5860436c507737f8efbe71a76d3758e53e760392df08b103740c5fd6e84f98f8e0e314300ccbc27a641e -DIST Python-3.15.0a7.tar.xz 35004684 BLAKE2B 5d694099cb0b5839c14f9cb36a42947993abd381769392d064dee15fb0cc73e5e70a8a8c3465f5ba2cd7da132d4422d6112e236001004f81ebcd7282d1ac40e6 SHA512 81a5a96ab85217c9f8ec2841bc0e219b798824ade5dcb57919db027c08858f42d64c2a585f305c7efb3837c1bae071970ce4ed135d494f19b51ece4f2a236343 -DIST Python-3.15.0a7.tar.xz.sigstore 5168 BLAKE2B 5ca2623f70d21ffe7a2645e4ecc31a7007654523d7021fefb4d626111d2aac6fe4d251314e6e1ec086b1057040b43e4be59491c74a7672234e1267ab67539100 SHA512 7fd76fd554b5476727f5413d9941884ad55665ad8a12b089f64ff85281cd4041d523d896fd20e2c2249839e33e7d983e17247e2e7f74cfdcded6a4f3f837ad6a +DIST Python-3.13.13.tar.xz 22957612 BLAKE2B ea7761b9c47df08949798fb7b618ecc111f2d352b0ca317f3b6320d227c4728d18e1d63c45a2d5958bcf73e47d38b71d94b057c74d5a016110f9eee7337e6c22 SHA512 0ef615150a52865fe7ca0d0e106cf98488f113a56e5ae1b1437673f03880423839d04abe1999006f9835c77d8802d5ae94a1bdf63d18074a9a19c81e6f7b69e8 +DIST Python-3.13.13.tar.xz.asc 963 BLAKE2B d8f5d8bfc3e0e7140669f5478d846e5d6d2c44a805f6e44fcfa8fa1f72575771695719179a20c6e42994f27b144e9a61ba8d5fa25805f40fbcaf6421c322e81d SHA512 21e5235cd9a9df3546370feb55ac32539e08601b79ee7b1e39006028f192be6be0434f2f8384fdcc993b70bde7471be3b36ce9850abf0473d1fe2c7cdc98304b +DIST Python-3.14.4.tar.xz 23855332 BLAKE2B cb96ace0b3a0316ffc8f2fca1e9b67dc8df7d9fe81c1daff1d8883634683703a0e458d6eea61f01b3641bb76997b9e39c939a0c8c28ce5edd7b166e41b2cc1f8 SHA512 89a7f8b8a31f48d150badb4751df137d47d9014c9c422649a1a55aef5618aa7f0259dd18c151e6804fa8312c6a21544332a9f630ee81150dc00505637e62bb8c +DIST Python-3.14.4.tar.xz.sigstore 5219 BLAKE2B 5d4e076139082e525c2758a64ca2cc4c05c69e601ffc9c402d5a041f8b867ee5f37264ded3bfa014cc979ccd3c573c208d2321ac5a3be93b906116bd0d8a5c37 SHA512 ec41d0d25fa3cd87cf62adcbe6b9e575cecc49f947a64ca997aa792ed22d93ef1bbc4dc2848e365dfb43b6c447dcf47417f9c68a5881d0ede8750fece9f97a87 +DIST Python-3.14.5.tar.xz 23903332 BLAKE2B 1b26d61d320ec1b3681d739231bc0e016336ba565063dbf3b270368c08aaa870fb4e2c731c5460e840278293cc72fee5bac003dfc05a8bacb080f684dabcd677 SHA512 efbaf629703cd004f6b7bc75fb16df794185589adaf8807cd45928f212271045a399df3cd9573e47c8708fb5c5002f9d4efe4e41dde4313b81a3e9d73158769f +DIST Python-3.14.5.tar.xz.sigstore 5411 BLAKE2B e0fb33b98c39b6759f6bfa99ea44dd93cc92dcc8a897a0faef318b1ba4a3b285a7cfe725076cc3f355e1b627c85b41e9e71579fee97b7e61fc6c79780e9d8d10 SHA512 459f6d648fde31e55a4d53d6a9e878e3d2361c33c9ce0d7e2e2b8f8df81325bb7d0764742364745c448a1102f5b3873d9ae3634bf1a8f88bbc8b12fe2ac6acd8 +DIST Python-3.14.5rc1.tar.xz 23894408 BLAKE2B 7b894cc9fbc6df9255ad04aed506cc7751a8f59295a1d491e150731b34b2197802f3d12cc51c6412247c5a23c051f3f90ce69b969e0bc0a74cffb11e62de58e9 SHA512 67ede84d59046e3b413643449a7eced8cefcd908238b8a34d2ac38507d967201695c62c22464f1bfd51669daf306995262279c7bbfc5a25998ed867a3d743b38 +DIST Python-3.14.5rc1.tar.xz.sigstore 5363 BLAKE2B ad8ed1f9076ce67c33b290cdb6e24846de1642ce2deece0ec42d8adca67e7b403a53f7d64064c8c9d6d7ce05f8f1a62f5069a2cc85721160902b98cfebd254f9 SHA512 26a9129b8df1d5b83f6d81bdc49c78a5f45542ff9e56a3ecfc5b9480b5a0e0ee44b2fd3d1dd7775458c9076b4b27d891f149f3b24304f2456b5a0c5615e6ea12 +DIST Python-3.15.0b1.tar.xz 35178032 BLAKE2B 1bbfdeb373fa3a26b9d957084edc9bfb7f81ae579cd9bf9fba1a43a3bf409a2e01512c56c642eb47b6e1a3c0fe44f182d72a15498b90a75d424b6325d0fd97a1 SHA512 ce486f903aa8690f1725565c3fdc0034a983a60952a96a950fa7c89ab899a71cabed4a9252c497e0474f206f83ff02e2793cf975c345825324b85bced750c270 +DIST Python-3.15.0b1.tar.xz.sigstore 5411 BLAKE2B a1697c5239559c6871d3299c3dfa77edf0319ee03be12f6b3bd0b424e05a81b19249a98a316e5e6f8d403b04392ba69910ab8cef4ed86cf0d4a92fe04501a651 SHA512 72a4e1cfd48ba7ead6d5896d1441cf8c0991549beb28bc546534c4e1296495c9874dc7941239f8f5ed833b038bd66437868fd121c89a123d62cad157b744a4c2 DIST Python-3.8.20.tar.xz 18962788 BLAKE2B 715c75e0c0a3d3b77af7f07478311bb0554b80aac72915be703aa2d0dd6459a972e5669808e64da14a0b91bb183e00655055c1726f302dc3ccd8721e3b4ae3e6 SHA512 3c9341ee1fd33cb687958dcf2b7c0c7700489726c4d530c3e9d9537d46a6ab534541a4b312232d8505bea395a07e4518c42d75fb7571103e6b266f8f44115c61 DIST Python-3.8.20.tar.xz.asc 833 BLAKE2B 5c86c15a1090b42e42bb7512565b1a7ad9d2137d59e9fd1ab0f83fdfc37dfcf184389418d6703db809e9c8c04a169af292665a2b58bf5dc61b7724ecbb4132d9 SHA512 a751ae0407a593d97acac4d5f8a0456580c753efa12a7d960125c219b4897fdb26fc1ffd43d8ea33ad1449162dd3b2904c16b6c51c57561ba73de3ffa62e0eed DIST Python-3.9.25.tar.xz 20183236 BLAKE2B 01c5af78659324e2a596611c11c0fa982f81faf9b401afe1a96399b58321e39c41e46a932e1e4437f3f2bb2d76d8482e852fc66e6f960a4928f7fc99b62dfb7e SHA512 33fd65952cc3ce5df83825aa32a103935815bdd5a016e5fd9896cafb068a3f89b3a6134458a2694e4f0f4f8a9fbe84739b53116264728b32cde0f03ab210cb19 DIST Python-3.9.25.tar.xz.asc 833 BLAKE2B 3ab506f78b53aed0b3ebbeb620e3763857aafca7756f0f9a594fdc27c2fc8b002e338ae34d54f7e9e5a52fa701d3ab4de44ab4f4328034d77a207f066abafc2e SHA512 83f0a0e558aa89a106bdffeeb9b0fa2685fbd7be5c5954f9176c59c6c7023716207b07239f202b3508cbb98ca34572161955f0bfd3732fdb9265721cd6723dbe DIST python-gentoo-patches-2.7.18_p16.tar.xz 35448 BLAKE2B 0139c0944f62f9cdd236f6a8557e0ed19704c7d72869af1cb7d8bd3e646a746cd4a0201e1b44232a5e78ef49f254db20b0d0271bf744fbfd4fe0f1e99b8f3e6c SHA512 810be590d0e06fab4b2165e6852ca49662f09dcd7e20b47a29f613ad7653252c8dfac3f0eb228d77c8a914efa7c08788b2fbd552a4b47504f5fd0ec17450c48f DIST python-gentoo-patches-3.10.18.tar.xz 29664 BLAKE2B dd69f7866cebad2536b41056571d74cbd90800062b06612b7509c9ce8f258aef66586f3c6e08f52caaceb7b0a01a52502b9c763b6f7d94caac0e929d9d77219b SHA512 b4cf4ff2d7e5b73e1102acc2183c4da3e734bdbec1c284d1fef8aceba0d49246dcdc954d3e4119521fde1e895bab0754b34b346b736b46ce45aff1afc6d38cef -DIST python-gentoo-patches-3.10.19.tar.xz 29136 BLAKE2B 3dc3719a4e36d34529f81107c4b57a905df68c072732999cc701b8c8323361eef554b3b8db45d82eecb2eafff65892355ff85b19a3963c9a04077f660fd242b0 SHA512 3f55917563f3adf62c7e11e7411ddfc28ac1fdca1ba7d567c770897a4ae969a10911344c5808564b99bce1839a87bfc98bf41ce42719ba2885c2d35644cf260b DIST python-gentoo-patches-3.10.20.tar.xz 29180 BLAKE2B 3179a983fd4f744a6d29cb345f9e3ee1348c4feeaf2eb67ff2f3069811764129b5fc10f728c2cbc3731c7d3bbe566f08d8d4b564b907d2492ea063c284424c1a SHA512 bd7c8fea81d3e7eada0e01ff60cf37133f66d61fab3d39778ded88f445f7830493c3ef2cfbd136bc1d15526730f4b4455d6b0adbefb6a275e6b8cfe53255eb34 DIST python-gentoo-patches-3.11.13.tar.xz 16492 BLAKE2B 8b188742dd3f25974cead290e5793c31f02741a901dce65137c596045fa2fbd5baaef332204af90f95ddcd864ee542b252c00b190e15c25af60a7bda771b116f SHA512 b5abad341d2eede81df445b56a98720466ec23df40a8a2e99a04dba5a106205655c8e2b64df0ca2630f036c8fe457ba64524280d137bbc99f52e4fd8e6bbd5ae -DIST python-gentoo-patches-3.11.14.tar.xz 15968 BLAKE2B 5bd091046feee03afd59a87b72c44b3a0874b23f89eb98020cc057f5651d31857721eb095bd056dae8bef85220dbe5aff2900cf8411dceb14e8775a4a2f09a93 SHA512 760df16f98c1a91164b43c13eb36073c74169321569791125fdad8682419b818736fe02e40c1aa1232a11081b1007c923a8fd2afd002eb4fdff0800da92d03e2 DIST python-gentoo-patches-3.11.15.tar.xz 15988 BLAKE2B 16e98450749ebd1c617acbb9aba380fff50a8f7dba19f3f99edd3bd387c1a5d61d78cbf493cf003dfe03d2be59374ad89077b39fe203059bbbb881ae02a72ea5 SHA512 b705c72a585e315eb3ba69ffbf2a80836f0fc894fa8ae2c22768e6aa8ac2a23aada5def3d2635193793f58e3da81f0f10281c47bd8e129e1fd2c9167d292265b DIST python-gentoo-patches-3.12.11.tar.xz 12020 BLAKE2B b419d32b1d7bef9408027edda7eac9a920a877e1b8f521483df595199bad1bbadd9dd9500079c09beab63286a801bfb25da5f93a5d31462ed3e457a6e40ad6af SHA512 1b0eaff4c0df06554525a50576da7eadb4067c4f2970851e5c9e3e527a9ccc4216cbd65c45fd562af4a1cedc2c66278a74bee5cf5c1a65df8feb22f34f5a19e4 -DIST python-gentoo-patches-3.12.12.tar.xz 12012 BLAKE2B 4a030f976e73160f74dd760a8cac55a5889bf821e998b717962aac8b79780c314dfbabf93a6919daa75565c3ef31dcf6af87f3ec6768db0ff02154c4c112ab08 SHA512 d5ee32b93fb4a1910a8e3aa0486ae284885c05bd03ada3540f4990b4f12c837cd154e76511db663542dde74d652c3d1d279098319dcc991e7195e8db5befea12 DIST python-gentoo-patches-3.12.13_p1.tar.xz 12408 BLAKE2B 2b232c2742eafcb803713c837b4ddaa38f45c88e707ec272571739570f9e2e5c94644681369d887992eadf5f0c1178489f1aa3a7d8163a2aa4ce6a86732e73da SHA512 e06d78ad24c9fbc3fa9c47b25ba722342ddd140aa30f624b41d605dae40d00ab956d879a247db2d7980c063a1472de40587a0d3cd6947e560aa7e8d0e4f89309 -DIST python-gentoo-patches-3.13.11.tar.xz 8948 BLAKE2B bb6402400f931fed5d0fa2530f816ba78d7f6aff766e72692884a391929df76cedcc9a9b7a709d8ebffb38fe9256dd78a2b668d49951e07bf61a5388bce49b34 SHA512 f184a682a888a8781aa1a4eb3983d5861d4eec2d0c0729ab95f867aa4a901c65865cc429e9b871c62d5d113509c3f621c7c81d7c7e4600b8a712a8ec256270a9 -DIST python-gentoo-patches-3.13.12.tar.xz 8992 BLAKE2B e7a26ddbd76f337a0f3958e55d6f77864308d3db5b5b8bec36aa50c1845d28284c6d0ce4c847eb0ca2a51367baaf454be9c62bc1932ffdff5a4ee06c9701c3b4 SHA512 ef87942f8d1d145112b2275d1fce9f6faea19c37ed3e37fd8762f4470ecaa1d87f5a471f287d3e1bf7507af351894c15872ceea0ea41d4903707c12d4cf0c4d0 +DIST python-gentoo-patches-3.13.13_p1.tar.xz 9920 BLAKE2B 81ecba755005b288fcbd8fa1b6a1f24ae0b19d8c8f9c54fd37935526145a458605b04b8492d1e15da4146313e7e2dd86fdabf509e8cf3ca2f48a23dac055145b SHA512 3b6f801296726a03ca6026e1434d7fbbc6d2aeb6cd9f0a83378d3be8cd011afce71e8341306feb8e521fe60f0f960b9885d6152fed44f2d0b604761101735d74 DIST python-gentoo-patches-3.13.4.tar.xz 8912 BLAKE2B e3d9f2a12f801dc75e09c5301757f35216d712b5e5394f2ec3ce1d79d0cb57571dbca525e3d5c35b90fa059c2b78ee24341b6a51cbe9691deac84c9ee0578824 SHA512 1a7141accb7aa70c7bd8dd12528f7de031dfeab9ff089f3d044da0b7b52461e2d6d7d1467161e0fe1e259d9fa06d70bcf107d86ad3590e8cf73aa1132ef3aaf9 -DIST python-gentoo-patches-3.13.9.tar.xz 8952 BLAKE2B 9941b3dd241adcdde64b38bdc3a610e8f3a820b0b4ff03b06ed6d1c26c91af0567cd1e979a8f1d0cfcd05a1568a182ee87944b27ecef22ec139de001e9085624 SHA512 bd12075b144300f1f922175077345fe38a7067282c057fbc256ef646a3e58dca68c029f1449ce4c40d6e7b62444579d6f892f28d73ddc8f859b48636012e3814 -DIST python-gentoo-patches-3.14.0_p1.tar.xz 8952 BLAKE2B d53c5a055be72e3f92a63e18cf75d2f6eb1e352a7529f7ce8256aaf0fa5ac92443646fe07bdbc707a28c1ed395c4c2edd29db0b8fc591679c7602aedfc968489 SHA512 ec03a259281d675063ad82dfd9c0fcb08402120663b9c2a56e37de45bb03e678fccd0c3723b6deffc4f5b8ea4ad17492040a98c7434853da2007f31cdb549bdd DIST python-gentoo-patches-3.14.0b1.tar.xz 5680 BLAKE2B 514b3edc3025e5bf675d371b5ada17dea426856edf1fb6095c2ee400eae95bd4265ef81fe593ae9338e801e7d0a25b1d5ba2d05ca563fd9dd020114b13575746 SHA512 74289e42cf532b54bb1b66a283ec19156f8a36ba38764209c133842314c9efb2ce2ebcba5aa9213bcf7fc0c8a5ca9b6e7adbd5dbfa4397233136d7cd55f53ee7 -DIST python-gentoo-patches-3.14.2.tar.xz 8008 BLAKE2B aa454e26901a36a34dedb1deabfc4f6766ef2ee099443ea2d155061f1d005f883528d4a6984d22af0f3feaaee6fc1acf66f144ae701ce60b1e5b0b225600f42e SHA512 3cee495d3b7d579a75a30ed8747d7ba1fe70c0abc06b868d68b26e64452b014c7c6c51ff9782673702375ece87abf8a3e3f5dbd2ea48257ea14416fa8794ea53 -DIST python-gentoo-patches-3.14.3.tar.xz 8012 BLAKE2B a8106360a6c77e0e19ecdf55e924b85cfd6dae65d54b7c306a793b08da5214993631b92b1cff385c2d995799055a4e4ca3a461d4e1e049ada38e97b4eae54a31 SHA512 1747a99cdc2ec29b985bc75f53f9f4cbd6f9377bfb06f6576b2970bd30ae8461a39ba870021866cf0f79320e2775047b2f70d53a06c5687ebac23b3ae68c157a -DIST python-gentoo-patches-3.15.0a5.tar.xz 3392 BLAKE2B 3016725f3a460c35ce7ef872939449dc4385f19cb88f3047e0cb50d33bf155898933573d25d10490f83d1669a96cb86c9be7e5071a55abc40d439df972a5e468 SHA512 f7940891fd2f2e8b691dde7007b59016a04e0557207cf4272d20e72d248dfe48f604fa3abaf0bc4cb085ae5d9bb56781a51e5b6e604ef7f3be1f14519f7fb6ce -DIST python-gentoo-patches-3.15.0a6.tar.xz 3388 BLAKE2B 24f1b54aa6010568f925db7d7bd58f253ee7e87c0f12ef2d69faa71fcfca05477596189bc191306d98ffffff5f837167eec00b995aeffdf7c1e992125cc2c6de SHA512 9ecdbf0f44d8f49aa203b5cfeb08104002117f962cff3141f66a577f9ddd9ffefc2a576f498c9c65f7c9487d4eea948e7bead6c5ff220f16b34576f7b84fc4cd -DIST python-gentoo-patches-3.15.0a7.tar.xz 3808 BLAKE2B 4ce4637776204281483a75511c106e01a07d85d6cd7c08ed1cb1d4d0934ed68a337eb8408ab2ec105be5a176a3d1626705c9fddc538e78725df8546212766fc6 SHA512 db713e15d6b99cd75dc5ac98d24506f7999200719aaae04a97fe1c231f977cbfa63f69ac5d829040107fbe9a7548a1e8853231c305b6a5d5fa3b5e303993b475 +DIST python-gentoo-patches-3.14.4_p1.tar.xz 9016 BLAKE2B 39bee4db44684a087b3bf6793a22d1655c2a90fabb56ea0421ded013cf53e66ac83cb3016d469f06c5d7cab7b8d22138bc4c1e01843a174299e1af0f88e5818c SHA512 a299212bd3d4a70c83a1efe1ec155f7b13829aa10aecf638de0889cf7b8ebe5227d3f14a1d51dac18fa4ae19b1060639490e61f2c1f52deadd40065c07b317f2 +DIST python-gentoo-patches-3.14.5.tar.xz 10308 BLAKE2B 1ce7b8f33d15d27805894a6f3614fbcf280639fa84bb3605c1a1ee596282235f79ba2399b5d2385a06b0b36c8a6bf162ae4e1b15a67612bdca67f48e06a2fae2 SHA512 f2a806bf753e696a0b7474fd0f11c0f5d9a8043f72f478a37a79f7a9ec843cb31cc959aa3fc38670c1a8ac012554a7d3d4899d7e615cee70e21a7dd7afc2da9a +DIST python-gentoo-patches-3.14.5rc1.tar.xz 8436 BLAKE2B 527156383cba6288df15a0bb0718960ba2a30428a2367d014a11b22e598c63d2c912480e37b064233e05590d1112b6c3c4ac1fa9db392ac11a98b8ec54847d30 SHA512 8adb64ca0bc1c653fb04a71bd6b40415ae3ca4761edf578199c5cc1d1da392b239ca07af395114970467c8233027c5eefb4b869bcab4379d5a7310a286aaec53 +DIST python-gentoo-patches-3.15.0a8.tar.xz 3400 BLAKE2B dcff2552394595c448c17145f50ff511c4dffef8b0c356f92560ff5879be8e87b57d7c39a2220e5822e942760a7d16f9f18aa84dc41183fedcc1928357fa6d44 SHA512 eba0366b092fec56f4e62eb39faddf7964a55930c7c6211e26b66ee9631f2e35ccfd0bacc6bd224a6d1dfdd4bdcc1a5607cb0011caadcb69006afded8d9dfec8 +DIST python-gentoo-patches-3.15.0b1.tar.xz 3420 BLAKE2B 266ada600b587ff430a21c38d7585fcdb2d320a4160dd8e93dac3a6517faa685eadda9a9b14b271c6380a78112c83f39fc30bbbece10bfc7e6cde2eba61103fa SHA512 9f42700e03051fbadf3b9e6f7163077ab6b8c1f406e5bfc99560b590dbbabe72e5b38cd8c16b21aec75c4e760af549bffef6d76e65f390d61cd8840894949565 DIST python-gentoo-patches-3.8.20_p7.tar.xz 54544 BLAKE2B e31fc9fb5e98b62b0f70165670ec58ed4fa932cfc95d5287c249015a3a372fdbf0d1ba08cb98f63c2dc500700edfd6ffea6db670385d2c86a4fdb92ffb991192 SHA512 a9e7e4976be226931a503af2c986da207d060d4ce436af61f5e8427da513639adbed32bb0061963b83fef275a5de91707ab13b7a9abf3a7472ee0e2c5310eda1 DIST python-gentoo-patches-3.9.25.tar.xz 36604 BLAKE2B 11d35dcbc8979fe37e27a00dfef9683f0bf40514415be416d322f0509109edeb58a2e0b9218cfa3b3326654f5923d165511d203504ca2b52971ad136f8a454d1 SHA512 234bae116b2a5af00506cb76a0b86dfb8cf1f84ee980a358f3642bb717cff4d6f10388b2a07f12118588a174de4d2fd6ad2e3ab24704f9c85f36cb33d51f0c65 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.11.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.11.ebuild deleted file mode 100644 index ea54534fb3a..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.11.ebuild +++ /dev/null @@ -1,611 +0,0 @@ -# Copyright 1999-2026 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 - >=virtual/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} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - ) - - 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.13.12.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.12.ebuild deleted file mode 100644 index ea54534fb3a..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.12.ebuild +++ /dev/null @@ -1,611 +0,0 @@ -# Copyright 1999-2026 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 - >=virtual/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} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - ) - - 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.13.13_p1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.13_p1.ebuild new file mode 100644 index 00000000000..8060dcf4a78 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.13_p1.ebuild @@ -0,0 +1,611 @@ +# Copyright 1999-2026 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://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz.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 + >=virtual/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} -fno-lto" + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + + # Avoid as many dependencies as possible for the cross build. + mkdir Modules || die + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + _dbm _gdbm + _sqlite3 + _hashlib _ssl + _curses _curses_panel + readline + _tkinter + pyexpat + zlib + # We disabled these for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. This should be rechecked for the pure Makefile approach, + # and uncommented if needed. + #_ctypes + EOF + + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # running gdb inside an ebuild as non-root, within sandbox, + # and possibly within a container is unreliable + -x test_gdb + # this is actually test_gdb.test_pretty_print + -x test_pretty_print + # https://bugs.gentoo.org/933840 + -x test_perf_profiler + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # Kernel-config specific skips + for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do + if ! linux_config_exists || ! linux_chkconfig_present "${option}" + then + COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) + fi + done + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + --verbose3 + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + ) + + 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.13.9.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.9.ebuild deleted file mode 100644 index ea54534fb3a..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.9.ebuild +++ /dev/null @@ -1,611 +0,0 @@ -# Copyright 1999-2026 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 - >=virtual/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} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - ) - - 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.13.9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.9999.ebuild index 0aa35e8ec02..3eaa3eb33bc 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.9999.ebuild @@ -17,7 +17,7 @@ HOMEPAGE=" https://github.com/python/cpython/ " SRC_URI=" - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz " EGIT_REPO_URI="https://github.com/python/cpython.git" EGIT_BRANCH=${PYVER%t} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.0_p1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.0_p1.ebuild deleted file mode 100644 index 28edfbdd1b8..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.0_p1.ebuild +++ /dev/null @@ -1,635 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -VERIFY_SIG_METHOD=sigstore -WANT_LIBTOOL="none" - -inherit autotools check-reqs eapi9-ver flag-o-matic linux-info -inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs -inherit verify-sig - -REAL_PV=${PV#0.} -MY_PV=${REAL_PV} -MY_P="Python-${MY_PV%_p*}" -PYVER="$(ver_cut 2-3)t" -PATCHSET="python-gentoo-patches-${MY_PV}" - -DESCRIPTION="Freethreading (no-GIL) version of Python programming language" -HOMEPAGE=" - https://www.python.org/ - https://github.com/python/cpython/ -" -SRC_URI=" - https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz - https://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 - >=virtual/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} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - - # Test terminates abruptly which corrupts written profile data - # bug #964023 - -x test_pyrepl - ) - - if has_version "app-arch/rpm" ; then - # Avoid sandbox failure (attempts to write to /var/lib/rpm) - profile_task_flags+=( - -x test_distutils - ) - fi - # PGO sometimes fails randomly - local -x PROFILE_TASK="${profile_task_flags[*]} || true" - fi - - local myeconfargs=( - # glibc-2.30 removes it; since we can't cleanly force-rebuild - # Python on glibc upgrade, remove it proactively to give - # a chance for users rebuilding python before glibc - ac_cv_header_stropts_h=no - - --enable-shared - --without-static-libpython - --enable-ipv6 - --infodir='${prefix}/share/info' - --mandir='${prefix}/share/man' - --with-dbmliborder="${dbmliborder}" - --with-libc= - --enable-loadable-sqlite-extensions - --without-ensurepip - --without-lto - --with-system-expat - --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --disable-gil - - $(use_with debug assertions) - $(use_enable pgo optimizations) - $(use_with readline readline "$(usex libedit editline readline)") - $(use_with tail-call-interp) - $(use_with valgrind) - ) - - if tc-is-lto; then - myeconfargs+=( - --with-lto - ) - fi - - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !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.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.2.ebuild deleted file mode 100644 index 93514c082c1..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.2.ebuild +++ /dev/null @@ -1,635 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -VERIFY_SIG_METHOD=sigstore -WANT_LIBTOOL="none" - -inherit autotools check-reqs eapi9-ver flag-o-matic linux-info -inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs -inherit verify-sig - -REAL_PV=${PV#0.} -MY_PV=${REAL_PV/_/} -MY_P="Python-${MY_PV%_p*}" -PYVER="$(ver_cut 2-3)t" -PATCHSET="python-gentoo-patches-${MY_PV}" - -DESCRIPTION="Freethreading (no-GIL) version of Python programming language" -HOMEPAGE=" - https://www.python.org/ - https://github.com/python/cpython/ -" -SRC_URI=" - https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz - https://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 - >=virtual/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-16:* - >=llvm-core/clang-19:* - ) - ) -" -if [[ ${PV} != *_alpha* ]]; then - RDEPEND+=" - dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] - " -fi -PDEPEND=" - ensurepip? ( dev-python/ensurepip-pip ) -" - -# https://www.python.org/downloads/metadata/sigstore/ -VERIFY_SIG_CERT_IDENTITY=hugo@python.org -VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth - -# large file tests involve a 2.5G file being copied (duplicated) -CHECKREQS_DISK_BUILD=5500M - -QA_PKGCONFIG_VERSION=${PYVER%t} -# false positives -- functions specific to *BSD -QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) - -declare -rgA PYTHON_KERNEL_CHECKS=( - ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 - ["DNOTIFY"]="test_fcntl" # bug 938662 -) - -pkg_pretend() { - if use pgo || use test; then - check-reqs_pkg_pretend - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]]; then - if use test || use pgo; then - check-reqs_pkg_setup - - local CONFIG_CHECK - for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do - CONFIG_CHECK+="~${f} " - done - linux-info_pkg_setup - fi - if use tail-call-interp; then - tc-check-min_ver gcc 16 - tc-check-min_ver clang 19 - fi - fi -} - -src_unpack() { - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} - fi - default -} - -src_prepare() { - # Ensure that internal copies of expat and libffi are not used. - # TODO: Makefile has annoying deps on expat headers - #rm -r Modules/expat || die - - local PATCHES=( - "${WORKDIR}/${PATCHSET}" - ) - - default - - # force the correct number of jobs - # https://bugs.gentoo.org/737660 - sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die - - # breaks tests when using --with-wheel-pkg-dir - rm -r Lib/test/wheeldata || die - - eautoreconf -} - -build_cbuild_python() { - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - # - # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) - local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" - local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - - # Test terminates abruptly which corrupts written profile data - # bug #964023 - -x test_pyrepl - ) - - if has_version "app-arch/rpm" ; then - # Avoid sandbox failure (attempts to write to /var/lib/rpm) - profile_task_flags+=( - -x test_distutils - ) - fi - # PGO sometimes fails randomly - local -x PROFILE_TASK="${profile_task_flags[*]} || true" - fi - - local myeconfargs=( - # glibc-2.30 removes it; since we can't cleanly force-rebuild - # Python on glibc upgrade, remove it proactively to give - # a chance for users rebuilding python before glibc - ac_cv_header_stropts_h=no - - --enable-shared - --without-static-libpython - --enable-ipv6 - --infodir='${prefix}/share/info' - --mandir='${prefix}/share/man' - --with-dbmliborder="${dbmliborder}" - --with-libc= - --enable-loadable-sqlite-extensions - --without-ensurepip - --without-lto - --with-system-expat - --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --disable-gil - - $(use_with debug assertions) - $(use_enable pgo optimizations) - $(use_with readline readline "$(usex libedit editline readline)") - $(use_with tail-call-interp) - $(use_with valgrind) - ) - - if tc-is-lto; then - myeconfargs+=( - --with-lto - ) - fi - - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !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.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.3.ebuild deleted file mode 100644 index 93514c082c1..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.3.ebuild +++ /dev/null @@ -1,635 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -VERIFY_SIG_METHOD=sigstore -WANT_LIBTOOL="none" - -inherit autotools check-reqs eapi9-ver flag-o-matic linux-info -inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs -inherit verify-sig - -REAL_PV=${PV#0.} -MY_PV=${REAL_PV/_/} -MY_P="Python-${MY_PV%_p*}" -PYVER="$(ver_cut 2-3)t" -PATCHSET="python-gentoo-patches-${MY_PV}" - -DESCRIPTION="Freethreading (no-GIL) version of Python programming language" -HOMEPAGE=" - https://www.python.org/ - https://github.com/python/cpython/ -" -SRC_URI=" - https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz - https://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 - >=virtual/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-16:* - >=llvm-core/clang-19:* - ) - ) -" -if [[ ${PV} != *_alpha* ]]; then - RDEPEND+=" - dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] - " -fi -PDEPEND=" - ensurepip? ( dev-python/ensurepip-pip ) -" - -# https://www.python.org/downloads/metadata/sigstore/ -VERIFY_SIG_CERT_IDENTITY=hugo@python.org -VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth - -# large file tests involve a 2.5G file being copied (duplicated) -CHECKREQS_DISK_BUILD=5500M - -QA_PKGCONFIG_VERSION=${PYVER%t} -# false positives -- functions specific to *BSD -QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) - -declare -rgA PYTHON_KERNEL_CHECKS=( - ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 - ["DNOTIFY"]="test_fcntl" # bug 938662 -) - -pkg_pretend() { - if use pgo || use test; then - check-reqs_pkg_pretend - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]]; then - if use test || use pgo; then - check-reqs_pkg_setup - - local CONFIG_CHECK - for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do - CONFIG_CHECK+="~${f} " - done - linux-info_pkg_setup - fi - if use tail-call-interp; then - tc-check-min_ver gcc 16 - tc-check-min_ver clang 19 - fi - fi -} - -src_unpack() { - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} - fi - default -} - -src_prepare() { - # Ensure that internal copies of expat and libffi are not used. - # TODO: Makefile has annoying deps on expat headers - #rm -r Modules/expat || die - - local PATCHES=( - "${WORKDIR}/${PATCHSET}" - ) - - default - - # force the correct number of jobs - # https://bugs.gentoo.org/737660 - sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die - - # breaks tests when using --with-wheel-pkg-dir - rm -r Lib/test/wheeldata || die - - eautoreconf -} - -build_cbuild_python() { - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - # - # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) - local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" - local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - - # Test terminates abruptly which corrupts written profile data - # bug #964023 - -x test_pyrepl - ) - - if has_version "app-arch/rpm" ; then - # Avoid sandbox failure (attempts to write to /var/lib/rpm) - profile_task_flags+=( - -x test_distutils - ) - fi - # PGO sometimes fails randomly - local -x PROFILE_TASK="${profile_task_flags[*]} || true" - fi - - local myeconfargs=( - # glibc-2.30 removes it; since we can't cleanly force-rebuild - # Python on glibc upgrade, remove it proactively to give - # a chance for users rebuilding python before glibc - ac_cv_header_stropts_h=no - - --enable-shared - --without-static-libpython - --enable-ipv6 - --infodir='${prefix}/share/info' - --mandir='${prefix}/share/man' - --with-dbmliborder="${dbmliborder}" - --with-libc= - --enable-loadable-sqlite-extensions - --without-ensurepip - --without-lto - --with-system-expat - --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --disable-gil - - $(use_with debug assertions) - $(use_enable pgo optimizations) - $(use_with readline readline "$(usex libedit editline readline)") - $(use_with tail-call-interp) - $(use_with valgrind) - ) - - if tc-is-lto; then - myeconfargs+=( - --with-lto - ) - fi - - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !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.4_p1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.4_p1.ebuild new file mode 100644 index 00000000000..017fbfaaf1c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.4_p1.ebuild @@ -0,0 +1,635 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +VERIFY_SIG_METHOD=sigstore +WANT_LIBTOOL="none" + +inherit autotools check-reqs eapi9-ver flag-o-matic linux-info +inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs +inherit verify-sig + +REAL_PV=${PV#0.} +MY_PV=${REAL_PV} +MY_P="Python-${MY_PV%_p*}" +PYVER="$(ver_cut 2-3)t" +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="Freethreading (no-GIL) version of Python programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz.sigstore + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +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 + >=virtual/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-16:* + >=llvm-core/clang-19:* + ) + ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi +PDEPEND=" + ensurepip? ( dev-python/ensurepip-pip ) +" + +# https://www.python.org/downloads/metadata/sigstore/ +VERIFY_SIG_CERT_IDENTITY=hugo@python.org +VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER%t} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +declare -rgA PYTHON_KERNEL_CHECKS=( + ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 + ["DNOTIFY"]="test_fcntl" # bug 938662 +) + +pkg_pretend() { + if use pgo || use test; then + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]]; then + if use test || use pgo; then + check-reqs_pkg_setup + + local CONFIG_CHECK + for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do + CONFIG_CHECK+="~${f} " + done + linux-info_pkg_setup + fi + if use tail-call-interp; then + tc-check-min_ver gcc 16 + tc-check-min_ver clang 19 + fi + fi +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + # TODO: Makefile has annoying deps on expat headers + #rm -r Modules/expat || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die + + # breaks tests when using --with-wheel-pkg-dir + rm -r Lib/test/wheeldata || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + + # Avoid as many dependencies as possible for the cross build. + mkdir Modules || die + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + _dbm _gdbm + _sqlite3 + _hashlib _ssl + _curses _curses_panel + readline + _tkinter + pyexpat + zlib + # We disabled these for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. This should be rechecked for the pure Makefile approach, + # and uncommented if needed. + #_ctypes + EOF + + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # running gdb inside an ebuild as non-root, within sandbox, + # and possibly within a container is unreliable + -x test_gdb + # this is actually test_gdb.test_pretty_print + -x test_pretty_print + # https://bugs.gentoo.org/933840 + -x test_perf_profiler + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # Kernel-config specific skips + for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do + if ! linux_config_exists || ! linux_chkconfig_present "${option}" + then + COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) + fi + done + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + --verbose3 + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + + # Test terminates abruptly which corrupts written profile data + # bug #964023 + -x test_pyrepl + ) + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + # PGO sometimes fails randomly + local -x PROFILE_TASK="${profile_task_flags[*]} || true" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-libmpdec + --with-platlibdir=lib + --with-pkg-config=yes + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + --disable-gil + + $(use_with debug assertions) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with tail-call-interp) + $(use_with valgrind) + ) + + if tc-is-lto; then + myeconfargs+=( + --with-lto + ) + fi + + # Force-disable modules we don't want built. + # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + $(usev !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.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.5.ebuild new file mode 100644 index 00000000000..543fc4dd73b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.5.ebuild @@ -0,0 +1,637 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +VERIFY_SIG_METHOD=sigstore +WANT_LIBTOOL="none" + +inherit autotools check-reqs eapi9-ver flag-o-matic linux-info +inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs +inherit verify-sig + +REAL_PV=${PV#0.} +MY_PV=${REAL_PV/_/} +MY_P="Python-${MY_PV%_p*}" +PYVER="$(ver_cut 2-3)t" +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="Freethreading (no-GIL) version of Python programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz.sigstore + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +if [[ ${PV} != *_rc* ]]; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi +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 + >=virtual/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-16:* + >=llvm-core/clang-19:* + ) + ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi +PDEPEND=" + ensurepip? ( dev-python/ensurepip-pip ) +" + +# https://www.python.org/downloads/metadata/sigstore/ +VERIFY_SIG_CERT_IDENTITY=hugo@python.org +VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER%t} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +declare -rgA PYTHON_KERNEL_CHECKS=( + ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 + ["DNOTIFY"]="test_fcntl" # bug 938662 +) + +pkg_pretend() { + if use pgo || use test; then + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]]; then + if use test || use pgo; then + check-reqs_pkg_setup + + local CONFIG_CHECK + for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do + CONFIG_CHECK+="~${f} " + done + linux-info_pkg_setup + fi + if use tail-call-interp; then + tc-check-min_ver gcc 16 + tc-check-min_ver clang 19 + fi + fi +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + # TODO: Makefile has annoying deps on expat headers + #rm -r Modules/expat || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die + + # breaks tests when using --with-wheel-pkg-dir + rm -r Lib/test/wheeldata || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + + # Avoid as many dependencies as possible for the cross build. + mkdir Modules || die + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + _dbm _gdbm + _sqlite3 + _hashlib _ssl + _curses _curses_panel + readline + _tkinter + pyexpat + zlib + # We disabled these for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. This should be rechecked for the pure Makefile approach, + # and uncommented if needed. + #_ctypes + EOF + + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # running gdb inside an ebuild as non-root, within sandbox, + # and possibly within a container is unreliable + -x test_gdb + # this is actually test_gdb.test_pretty_print + -x test_pretty_print + # https://bugs.gentoo.org/933840 + -x test_perf_profiler + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # Kernel-config specific skips + for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do + if ! linux_config_exists || ! linux_chkconfig_present "${option}" + then + COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) + fi + done + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + --verbose3 + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + + # Test terminates abruptly which corrupts written profile data + # bug #964023 + -x test_pyrepl + ) + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + # PGO sometimes fails randomly + local -x PROFILE_TASK="${profile_task_flags[*]} || true" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-libmpdec + --with-platlibdir=lib + --with-pkg-config=yes + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + --disable-gil + + $(use_with debug assertions) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with tail-call-interp) + $(use_with valgrind) + ) + + if tc-is-lto; then + myeconfargs+=( + --with-lto + ) + fi + + # Force-disable modules we don't want built. + # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + $(usev !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.5_rc1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.5_rc1.ebuild new file mode 100644 index 00000000000..543fc4dd73b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.5_rc1.ebuild @@ -0,0 +1,637 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +VERIFY_SIG_METHOD=sigstore +WANT_LIBTOOL="none" + +inherit autotools check-reqs eapi9-ver flag-o-matic linux-info +inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs +inherit verify-sig + +REAL_PV=${PV#0.} +MY_PV=${REAL_PV/_/} +MY_P="Python-${MY_PV%_p*}" +PYVER="$(ver_cut 2-3)t" +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="Freethreading (no-GIL) version of Python programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz.sigstore + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +if [[ ${PV} != *_rc* ]]; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi +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 + >=virtual/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-16:* + >=llvm-core/clang-19:* + ) + ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi +PDEPEND=" + ensurepip? ( dev-python/ensurepip-pip ) +" + +# https://www.python.org/downloads/metadata/sigstore/ +VERIFY_SIG_CERT_IDENTITY=hugo@python.org +VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER%t} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +declare -rgA PYTHON_KERNEL_CHECKS=( + ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 + ["DNOTIFY"]="test_fcntl" # bug 938662 +) + +pkg_pretend() { + if use pgo || use test; then + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]]; then + if use test || use pgo; then + check-reqs_pkg_setup + + local CONFIG_CHECK + for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do + CONFIG_CHECK+="~${f} " + done + linux-info_pkg_setup + fi + if use tail-call-interp; then + tc-check-min_ver gcc 16 + tc-check-min_ver clang 19 + fi + fi +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + # TODO: Makefile has annoying deps on expat headers + #rm -r Modules/expat || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die + + # breaks tests when using --with-wheel-pkg-dir + rm -r Lib/test/wheeldata || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + + # Avoid as many dependencies as possible for the cross build. + mkdir Modules || die + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + _dbm _gdbm + _sqlite3 + _hashlib _ssl + _curses _curses_panel + readline + _tkinter + pyexpat + zlib + # We disabled these for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. This should be rechecked for the pure Makefile approach, + # and uncommented if needed. + #_ctypes + EOF + + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # running gdb inside an ebuild as non-root, within sandbox, + # and possibly within a container is unreliable + -x test_gdb + # this is actually test_gdb.test_pretty_print + -x test_pretty_print + # https://bugs.gentoo.org/933840 + -x test_perf_profiler + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # Kernel-config specific skips + for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do + if ! linux_config_exists || ! linux_chkconfig_present "${option}" + then + COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) + fi + done + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + --verbose3 + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + + # Test terminates abruptly which corrupts written profile data + # bug #964023 + -x test_pyrepl + ) + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + # PGO sometimes fails randomly + local -x PROFILE_TASK="${profile_task_flags[*]} || true" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-libmpdec + --with-platlibdir=lib + --with-pkg-config=yes + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + --disable-gil + + $(use_with debug assertions) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with tail-call-interp) + $(use_with valgrind) + ) + + if tc-is-lto; then + myeconfargs+=( + --with-lto + ) + fi + + # Force-disable modules we don't want built. + # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + $(usev !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 ec94b099060..7ecfc4e2611 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 @@ -17,7 +17,7 @@ HOMEPAGE=" https://github.com/python/cpython/ " SRC_URI=" - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz " EGIT_REPO_URI="https://github.com/python/cpython.git" EGIT_BRANCH=${PYVER%t} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_alpha5.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_alpha5.ebuild deleted file mode 100644 index 43553f7811b..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_alpha5.ebuild +++ /dev/null @@ -1,598 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -VERIFY_SIG_METHOD=sigstore -WANT_LIBTOOL="none" - -inherit autotools check-reqs flag-o-matic linux-info -inherit multiprocessing pax-utils toolchain-funcs verify-sig - -REAL_PV=${PV#0.} -MY_PV=${REAL_PV/_alpha/a} -MY_P="Python-${MY_PV%_p*}" -PYVER="$(ver_cut 2-3)t" -PATCHSET="python-gentoo-patches-${MY_PV}" - -DESCRIPTION="Freethreading (no-GIL) version of Python programming language" -HOMEPAGE=" - https://www.python.org/ - https://github.com/python/cpython/ -" -SRC_URI=" - https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz - verify-sig? ( - https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz.sigstore - ) -" -S="${WORKDIR}/${MY_P}" - -LICENSE="PSF-2" -SLOT="${PYVER}" -IUSE=" - bluetooth debug +ensurepip examples gdbm libedit +ncurses pgo - +readline +sqlite +ssl tail-call-interp test tk valgrind -" -RESTRICT="!test? ( test )" - -# Do not add a dependency on dev-lang/python to this ebuild. -# If you need to apply a patch which requires python for bootstrapping, please -# run the bootstrap code on your dev box and include the results in the -# patchset. See bug 447752. - -RDEPEND=" - app-arch/bzip2:= - app-arch/xz-utils:= - app-arch/zstd:= - app-misc/mime-types - >=dev-libs/expat-2.1:= - dev-libs/libffi:= - dev-libs/mpdecimal:= - dev-python/gentoo-common - >=virtual/zlib-1.1.3:= - virtual/libintl - gdbm? ( sys-libs/gdbm:=[berkdb] ) - kernel_linux? ( sys-apps/util-linux:= ) - ncurses? ( >=sys-libs/ncurses-5.2:= ) - readline? ( - !libedit? ( >=sys-libs/readline-4.1:= ) - libedit? ( dev-libs/libedit:= ) - ) - sqlite? ( >=dev-db/sqlite-3.3.8:3= ) - ssl? ( >=dev-libs/openssl-1.1.1:= ) - tk? ( - >=dev-lang/tcl-8.0:= - >=dev-lang/tk-8.0:= - dev-tcltk/blt:= - dev-tcltk/tix - ) -" -# bluetooth requires headers from bluez -DEPEND=" - ${RDEPEND} - bluetooth? ( net-wireless/bluez ) - test? ( - dev-python/ensurepip-pip - dev-python/ensurepip-setuptools - dev-python/ensurepip-wheel - ) - valgrind? ( dev-debug/valgrind ) -" -# autoconf-archive needed to eautoreconf -BDEPEND=" - dev-build/autoconf-archive - app-alternatives/awk - virtual/pkgconfig - tail-call-interp? ( - || ( - >=sys-devel/gcc-16:* - >=llvm-core/clang-19:* - ) - ) -" -PDEPEND=" - ensurepip? ( dev-python/ensurepip-pip ) -" - -# https://www.python.org/downloads/metadata/sigstore/ -VERIFY_SIG_CERT_IDENTITY=hugo@python.org -VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth - -# large file tests involve a 2.5G file being copied (duplicated) -CHECKREQS_DISK_BUILD=5500M - -QA_PKGCONFIG_VERSION=${PYVER%t} -# false positives -- functions specific to *BSD -QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) - -declare -rgA PYTHON_KERNEL_CHECKS=( - ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 - ["DNOTIFY"]="test_fcntl" # bug 938662 -) - -pkg_pretend() { - if use pgo || use test; then - check-reqs_pkg_pretend - fi - - ewarn "Freethreading build is considered experimental upstream. Using it" - ewarn "could lead to unexpected breakage, including race conditions" - ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" - ewarn "you can reproduce the problem with dev-lang/python. Instead," - ewarn "please consider reporting freethreading problems upstream." -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]]; then - if use test || use pgo; then - check-reqs_pkg_setup - - local CONFIG_CHECK - for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do - CONFIG_CHECK+="~${f} " - done - linux-info_pkg_setup - fi - if use tail-call-interp; then - tc-check-min_ver gcc 16 - tc-check-min_ver clang 19 - fi - fi -} - -src_unpack() { - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} - fi - default -} - -src_prepare() { - # Ensure that internal copies of expat and libffi are not used. - # TODO: Makefile has annoying deps on expat headers - #rm -r Modules/expat || die - - local PATCHES=( - "${WORKDIR}/${PATCHSET}" - ) - - default - - # force the correct number of jobs - # https://bugs.gentoo.org/737660 - sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die - - # breaks tests when using --with-wheel-pkg-dir - rm -r Lib/test/wheeldata || die - - eautoreconf -} - -build_cbuild_python() { - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - # - # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) - local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" - local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - - # Test terminates abruptly which corrupts written profile data - # bug #964023 - -x test_pyrepl - ) - - if has_version "app-arch/rpm" ; then - # Avoid sandbox failure (attempts to write to /var/lib/rpm) - profile_task_flags+=( - -x test_distutils - ) - fi - # PGO sometimes fails randomly - local -x PROFILE_TASK="${profile_task_flags[*]} || true" - fi - - local myeconfargs=( - # glibc-2.30 removes it; since we can't cleanly force-rebuild - # Python on glibc upgrade, remove it proactively to give - # a chance for users rebuilding python before glibc - ac_cv_header_stropts_h=no - - --enable-shared - --without-static-libpython - --enable-ipv6 - --infodir='${prefix}/share/info' - --mandir='${prefix}/share/man' - --with-dbmliborder="${dbmliborder}" - --with-libc= - --enable-loadable-sqlite-extensions - --without-ensurepip - --without-lto - --with-system-expat - --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --disable-gil - - $(use_with debug assertions) - $(use_enable pgo optimizations) - $(use_with readline readline "$(usex libedit editline readline)") - $(use_with tail-call-interp) - $(use_with valgrind) - ) - - if tc-is-lto; then - myeconfargs+=( - --with-lto - ) - fi - - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !gdbm '_gdbm _dbm') - $(usev !sqlite '_sqlite3') - $(usev !ssl '_hashlib _ssl') - $(usev !ncurses '_curses _curses_panel') - $(usev !readline 'readline') - $(usev !tk '_tkinter') - EOF - - # disable implicit optimization/debugging flags - local -x OPT= - - if tc-is-cross-compiler ; then - build_cbuild_python - myeconfargs+=( - # Point the imminent CHOST build to the Python we just - # built for CBUILD. - --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python - ) - fi - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - local -x CFLAGS_NODIST=${CFLAGS} - local -x LDFLAGS_NODIST=${LDFLAGS} - local -x CFLAGS= LDFLAGS= - - # Fix implicit declarations on cross and prefix builds. Bug #674070. - if use ncurses; then - append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw - fi - - econf "${myeconfargs[@]}" - - if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then - eerror "configure has detected that the sem_open function is broken." - eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." - die "Broken sem_open function (bug 496328)" - fi - - # install epython.py as part of stdlib - echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die -} - -src_compile() { - # Ensure sed works as expected - # https://bugs.gentoo.org/594768 - local -x LC_ALL=C - export PYTHONSTRICTEXTENSIONBUILD=1 - - # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't - # end up writing bytecode & violating sandbox. - # bug #831897 - local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} - - # Gentoo hack to disable accessing system site-packages - export GENTOO_CPYTHON_BUILD=1 - - if use pgo ; then - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - fi - - # also need to clear the flags explicitly here or they end up - # in _sysconfigdata* - emake CPPFLAGS= CFLAGS= LDFLAGS= - - # Restore saved value from above. - local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} - - # Work around bug 329499. See also bug 413751 and 457194. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E python - else - pax-mark m python - fi -} - -src_test() { - # Tests will not work when cross compiling. - if tc-is-cross-compiler; then - elog "Disabling tests due to crosscompiling." - return - fi - - # this just happens to skip test_support.test_freeze that is broken - # without bundled expat - # TODO: get a proper skip for it upstream - local -x LOGNAME=buildbot - - local test_opts=( - --verbose3 - -u-network - -j "$(makeopts_jobs)" - "${COMMON_TEST_SKIPS[@]}" - ) - - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - - nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ - CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty - local ret=${?} - - [[ ${ret} -eq 0 ]] || die "emake test failed" -} - -src_install() { - local libdir=${ED}/usr/lib/python${PYVER} - - # -j1 hack for now for bug #843458 - emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall - - # Fix collisions between different slots of Python. - rm "${ED}/usr/$(get_libdir)/libpython3.so" || die - # Fix collision with GIL-enabled build. - rm "${ED}/usr/bin/python${PYVER%t}" || die - mv "${ED}"/usr/bin/pydoc{${PYVER%t},${PYVER}} || die - mv "${ED}"/usr/share/man/man1/python{${PYVER%t},${PYVER}}.1 || die - - # Cheap hack to get version with ABIFLAGS - local abiver=$(cd "${ED}/usr/include"; echo python*) - if [[ ${abiver} != python${PYVER} ]]; then - # Replace python3.X with a symlink to python3.Xm - rm "${ED}/usr/bin/python${PYVER}" || die - dosym "${abiver}" "/usr/bin/python${PYVER}" - # Create python3.X-config symlink - dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" - # Create python-3.5m.pc symlink - dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" - fi - - # python seems to get rebuilt in src_install (bug 569908) - # Work around it for now. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E "${ED}/usr/bin/${abiver}" - else - pax-mark m "${ED}/usr/bin/${abiver}" - fi - - rm -r "${libdir}"/ensurepip/_bundled || die - if ! use sqlite; then - rm -r "${libdir}/"sqlite3 || die - fi - if use tk; then - # rename to avoid collision with dev-lang/python - mv "${ED}"/usr/bin/idle{${PYVER%t},${PYVER}} || die - else - rm -r "${ED}/usr/bin/idle${PYVER%t}" || die - rm -r "${libdir}/"{idlelib,tkinter} || die - fi - - ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die - - dodoc Misc/{ACKS,HISTORY,NEWS} - - if use examples; then - docinto examples - find Tools -name __pycache__ -exec rm -fr {} + || die - dodoc -r Tools - fi - insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 - local libname=$( - printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | - emake --no-print-directory -s -f - 2>/dev/null - ) - newins Tools/gdb/libpython.py "${libname}"-gdb.py - - newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} - newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} - sed \ - -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ - -e "s:@PYDOC@:pydoc${PYVER}:" \ - -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ - "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_alpha6.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_alpha6.ebuild deleted file mode 100644 index 43553f7811b..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_alpha6.ebuild +++ /dev/null @@ -1,598 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -VERIFY_SIG_METHOD=sigstore -WANT_LIBTOOL="none" - -inherit autotools check-reqs flag-o-matic linux-info -inherit multiprocessing pax-utils toolchain-funcs verify-sig - -REAL_PV=${PV#0.} -MY_PV=${REAL_PV/_alpha/a} -MY_P="Python-${MY_PV%_p*}" -PYVER="$(ver_cut 2-3)t" -PATCHSET="python-gentoo-patches-${MY_PV}" - -DESCRIPTION="Freethreading (no-GIL) version of Python programming language" -HOMEPAGE=" - https://www.python.org/ - https://github.com/python/cpython/ -" -SRC_URI=" - https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz - verify-sig? ( - https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz.sigstore - ) -" -S="${WORKDIR}/${MY_P}" - -LICENSE="PSF-2" -SLOT="${PYVER}" -IUSE=" - bluetooth debug +ensurepip examples gdbm libedit +ncurses pgo - +readline +sqlite +ssl tail-call-interp test tk valgrind -" -RESTRICT="!test? ( test )" - -# Do not add a dependency on dev-lang/python to this ebuild. -# If you need to apply a patch which requires python for bootstrapping, please -# run the bootstrap code on your dev box and include the results in the -# patchset. See bug 447752. - -RDEPEND=" - app-arch/bzip2:= - app-arch/xz-utils:= - app-arch/zstd:= - app-misc/mime-types - >=dev-libs/expat-2.1:= - dev-libs/libffi:= - dev-libs/mpdecimal:= - dev-python/gentoo-common - >=virtual/zlib-1.1.3:= - virtual/libintl - gdbm? ( sys-libs/gdbm:=[berkdb] ) - kernel_linux? ( sys-apps/util-linux:= ) - ncurses? ( >=sys-libs/ncurses-5.2:= ) - readline? ( - !libedit? ( >=sys-libs/readline-4.1:= ) - libedit? ( dev-libs/libedit:= ) - ) - sqlite? ( >=dev-db/sqlite-3.3.8:3= ) - ssl? ( >=dev-libs/openssl-1.1.1:= ) - tk? ( - >=dev-lang/tcl-8.0:= - >=dev-lang/tk-8.0:= - dev-tcltk/blt:= - dev-tcltk/tix - ) -" -# bluetooth requires headers from bluez -DEPEND=" - ${RDEPEND} - bluetooth? ( net-wireless/bluez ) - test? ( - dev-python/ensurepip-pip - dev-python/ensurepip-setuptools - dev-python/ensurepip-wheel - ) - valgrind? ( dev-debug/valgrind ) -" -# autoconf-archive needed to eautoreconf -BDEPEND=" - dev-build/autoconf-archive - app-alternatives/awk - virtual/pkgconfig - tail-call-interp? ( - || ( - >=sys-devel/gcc-16:* - >=llvm-core/clang-19:* - ) - ) -" -PDEPEND=" - ensurepip? ( dev-python/ensurepip-pip ) -" - -# https://www.python.org/downloads/metadata/sigstore/ -VERIFY_SIG_CERT_IDENTITY=hugo@python.org -VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth - -# large file tests involve a 2.5G file being copied (duplicated) -CHECKREQS_DISK_BUILD=5500M - -QA_PKGCONFIG_VERSION=${PYVER%t} -# false positives -- functions specific to *BSD -QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) - -declare -rgA PYTHON_KERNEL_CHECKS=( - ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 - ["DNOTIFY"]="test_fcntl" # bug 938662 -) - -pkg_pretend() { - if use pgo || use test; then - check-reqs_pkg_pretend - fi - - ewarn "Freethreading build is considered experimental upstream. Using it" - ewarn "could lead to unexpected breakage, including race conditions" - ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" - ewarn "you can reproduce the problem with dev-lang/python. Instead," - ewarn "please consider reporting freethreading problems upstream." -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]]; then - if use test || use pgo; then - check-reqs_pkg_setup - - local CONFIG_CHECK - for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do - CONFIG_CHECK+="~${f} " - done - linux-info_pkg_setup - fi - if use tail-call-interp; then - tc-check-min_ver gcc 16 - tc-check-min_ver clang 19 - fi - fi -} - -src_unpack() { - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} - fi - default -} - -src_prepare() { - # Ensure that internal copies of expat and libffi are not used. - # TODO: Makefile has annoying deps on expat headers - #rm -r Modules/expat || die - - local PATCHES=( - "${WORKDIR}/${PATCHSET}" - ) - - default - - # force the correct number of jobs - # https://bugs.gentoo.org/737660 - sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die - - # breaks tests when using --with-wheel-pkg-dir - rm -r Lib/test/wheeldata || die - - eautoreconf -} - -build_cbuild_python() { - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - # - # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) - local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" - local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - - # Test terminates abruptly which corrupts written profile data - # bug #964023 - -x test_pyrepl - ) - - if has_version "app-arch/rpm" ; then - # Avoid sandbox failure (attempts to write to /var/lib/rpm) - profile_task_flags+=( - -x test_distutils - ) - fi - # PGO sometimes fails randomly - local -x PROFILE_TASK="${profile_task_flags[*]} || true" - fi - - local myeconfargs=( - # glibc-2.30 removes it; since we can't cleanly force-rebuild - # Python on glibc upgrade, remove it proactively to give - # a chance for users rebuilding python before glibc - ac_cv_header_stropts_h=no - - --enable-shared - --without-static-libpython - --enable-ipv6 - --infodir='${prefix}/share/info' - --mandir='${prefix}/share/man' - --with-dbmliborder="${dbmliborder}" - --with-libc= - --enable-loadable-sqlite-extensions - --without-ensurepip - --without-lto - --with-system-expat - --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --disable-gil - - $(use_with debug assertions) - $(use_enable pgo optimizations) - $(use_with readline readline "$(usex libedit editline readline)") - $(use_with tail-call-interp) - $(use_with valgrind) - ) - - if tc-is-lto; then - myeconfargs+=( - --with-lto - ) - fi - - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !gdbm '_gdbm _dbm') - $(usev !sqlite '_sqlite3') - $(usev !ssl '_hashlib _ssl') - $(usev !ncurses '_curses _curses_panel') - $(usev !readline 'readline') - $(usev !tk '_tkinter') - EOF - - # disable implicit optimization/debugging flags - local -x OPT= - - if tc-is-cross-compiler ; then - build_cbuild_python - myeconfargs+=( - # Point the imminent CHOST build to the Python we just - # built for CBUILD. - --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python - ) - fi - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - local -x CFLAGS_NODIST=${CFLAGS} - local -x LDFLAGS_NODIST=${LDFLAGS} - local -x CFLAGS= LDFLAGS= - - # Fix implicit declarations on cross and prefix builds. Bug #674070. - if use ncurses; then - append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw - fi - - econf "${myeconfargs[@]}" - - if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then - eerror "configure has detected that the sem_open function is broken." - eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." - die "Broken sem_open function (bug 496328)" - fi - - # install epython.py as part of stdlib - echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die -} - -src_compile() { - # Ensure sed works as expected - # https://bugs.gentoo.org/594768 - local -x LC_ALL=C - export PYTHONSTRICTEXTENSIONBUILD=1 - - # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't - # end up writing bytecode & violating sandbox. - # bug #831897 - local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} - - # Gentoo hack to disable accessing system site-packages - export GENTOO_CPYTHON_BUILD=1 - - if use pgo ; then - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - fi - - # also need to clear the flags explicitly here or they end up - # in _sysconfigdata* - emake CPPFLAGS= CFLAGS= LDFLAGS= - - # Restore saved value from above. - local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} - - # Work around bug 329499. See also bug 413751 and 457194. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E python - else - pax-mark m python - fi -} - -src_test() { - # Tests will not work when cross compiling. - if tc-is-cross-compiler; then - elog "Disabling tests due to crosscompiling." - return - fi - - # this just happens to skip test_support.test_freeze that is broken - # without bundled expat - # TODO: get a proper skip for it upstream - local -x LOGNAME=buildbot - - local test_opts=( - --verbose3 - -u-network - -j "$(makeopts_jobs)" - "${COMMON_TEST_SKIPS[@]}" - ) - - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - - nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ - CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty - local ret=${?} - - [[ ${ret} -eq 0 ]] || die "emake test failed" -} - -src_install() { - local libdir=${ED}/usr/lib/python${PYVER} - - # -j1 hack for now for bug #843458 - emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall - - # Fix collisions between different slots of Python. - rm "${ED}/usr/$(get_libdir)/libpython3.so" || die - # Fix collision with GIL-enabled build. - rm "${ED}/usr/bin/python${PYVER%t}" || die - mv "${ED}"/usr/bin/pydoc{${PYVER%t},${PYVER}} || die - mv "${ED}"/usr/share/man/man1/python{${PYVER%t},${PYVER}}.1 || die - - # Cheap hack to get version with ABIFLAGS - local abiver=$(cd "${ED}/usr/include"; echo python*) - if [[ ${abiver} != python${PYVER} ]]; then - # Replace python3.X with a symlink to python3.Xm - rm "${ED}/usr/bin/python${PYVER}" || die - dosym "${abiver}" "/usr/bin/python${PYVER}" - # Create python3.X-config symlink - dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" - # Create python-3.5m.pc symlink - dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" - fi - - # python seems to get rebuilt in src_install (bug 569908) - # Work around it for now. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E "${ED}/usr/bin/${abiver}" - else - pax-mark m "${ED}/usr/bin/${abiver}" - fi - - rm -r "${libdir}"/ensurepip/_bundled || die - if ! use sqlite; then - rm -r "${libdir}/"sqlite3 || die - fi - if use tk; then - # rename to avoid collision with dev-lang/python - mv "${ED}"/usr/bin/idle{${PYVER%t},${PYVER}} || die - else - rm -r "${ED}/usr/bin/idle${PYVER%t}" || die - rm -r "${libdir}/"{idlelib,tkinter} || die - fi - - ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die - - dodoc Misc/{ACKS,HISTORY,NEWS} - - if use examples; then - docinto examples - find Tools -name __pycache__ -exec rm -fr {} + || die - dodoc -r Tools - fi - insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 - local libname=$( - printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | - emake --no-print-directory -s -f - 2>/dev/null - ) - newins Tools/gdb/libpython.py "${libname}"-gdb.py - - newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} - newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} - sed \ - -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ - -e "s:@PYDOC@:pydoc${PYVER}:" \ - -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ - "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_alpha7.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_alpha7.ebuild deleted file mode 100644 index 43553f7811b..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_alpha7.ebuild +++ /dev/null @@ -1,598 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -VERIFY_SIG_METHOD=sigstore -WANT_LIBTOOL="none" - -inherit autotools check-reqs flag-o-matic linux-info -inherit multiprocessing pax-utils toolchain-funcs verify-sig - -REAL_PV=${PV#0.} -MY_PV=${REAL_PV/_alpha/a} -MY_P="Python-${MY_PV%_p*}" -PYVER="$(ver_cut 2-3)t" -PATCHSET="python-gentoo-patches-${MY_PV}" - -DESCRIPTION="Freethreading (no-GIL) version of Python programming language" -HOMEPAGE=" - https://www.python.org/ - https://github.com/python/cpython/ -" -SRC_URI=" - https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz - verify-sig? ( - https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz.sigstore - ) -" -S="${WORKDIR}/${MY_P}" - -LICENSE="PSF-2" -SLOT="${PYVER}" -IUSE=" - bluetooth debug +ensurepip examples gdbm libedit +ncurses pgo - +readline +sqlite +ssl tail-call-interp test tk valgrind -" -RESTRICT="!test? ( test )" - -# Do not add a dependency on dev-lang/python to this ebuild. -# If you need to apply a patch which requires python for bootstrapping, please -# run the bootstrap code on your dev box and include the results in the -# patchset. See bug 447752. - -RDEPEND=" - app-arch/bzip2:= - app-arch/xz-utils:= - app-arch/zstd:= - app-misc/mime-types - >=dev-libs/expat-2.1:= - dev-libs/libffi:= - dev-libs/mpdecimal:= - dev-python/gentoo-common - >=virtual/zlib-1.1.3:= - virtual/libintl - gdbm? ( sys-libs/gdbm:=[berkdb] ) - kernel_linux? ( sys-apps/util-linux:= ) - ncurses? ( >=sys-libs/ncurses-5.2:= ) - readline? ( - !libedit? ( >=sys-libs/readline-4.1:= ) - libedit? ( dev-libs/libedit:= ) - ) - sqlite? ( >=dev-db/sqlite-3.3.8:3= ) - ssl? ( >=dev-libs/openssl-1.1.1:= ) - tk? ( - >=dev-lang/tcl-8.0:= - >=dev-lang/tk-8.0:= - dev-tcltk/blt:= - dev-tcltk/tix - ) -" -# bluetooth requires headers from bluez -DEPEND=" - ${RDEPEND} - bluetooth? ( net-wireless/bluez ) - test? ( - dev-python/ensurepip-pip - dev-python/ensurepip-setuptools - dev-python/ensurepip-wheel - ) - valgrind? ( dev-debug/valgrind ) -" -# autoconf-archive needed to eautoreconf -BDEPEND=" - dev-build/autoconf-archive - app-alternatives/awk - virtual/pkgconfig - tail-call-interp? ( - || ( - >=sys-devel/gcc-16:* - >=llvm-core/clang-19:* - ) - ) -" -PDEPEND=" - ensurepip? ( dev-python/ensurepip-pip ) -" - -# https://www.python.org/downloads/metadata/sigstore/ -VERIFY_SIG_CERT_IDENTITY=hugo@python.org -VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth - -# large file tests involve a 2.5G file being copied (duplicated) -CHECKREQS_DISK_BUILD=5500M - -QA_PKGCONFIG_VERSION=${PYVER%t} -# false positives -- functions specific to *BSD -QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) - -declare -rgA PYTHON_KERNEL_CHECKS=( - ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 - ["DNOTIFY"]="test_fcntl" # bug 938662 -) - -pkg_pretend() { - if use pgo || use test; then - check-reqs_pkg_pretend - fi - - ewarn "Freethreading build is considered experimental upstream. Using it" - ewarn "could lead to unexpected breakage, including race conditions" - ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" - ewarn "you can reproduce the problem with dev-lang/python. Instead," - ewarn "please consider reporting freethreading problems upstream." -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]]; then - if use test || use pgo; then - check-reqs_pkg_setup - - local CONFIG_CHECK - for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do - CONFIG_CHECK+="~${f} " - done - linux-info_pkg_setup - fi - if use tail-call-interp; then - tc-check-min_ver gcc 16 - tc-check-min_ver clang 19 - fi - fi -} - -src_unpack() { - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} - fi - default -} - -src_prepare() { - # Ensure that internal copies of expat and libffi are not used. - # TODO: Makefile has annoying deps on expat headers - #rm -r Modules/expat || die - - local PATCHES=( - "${WORKDIR}/${PATCHSET}" - ) - - default - - # force the correct number of jobs - # https://bugs.gentoo.org/737660 - sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die - - # breaks tests when using --with-wheel-pkg-dir - rm -r Lib/test/wheeldata || die - - eautoreconf -} - -build_cbuild_python() { - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - # - # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) - local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" - local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - - # Test terminates abruptly which corrupts written profile data - # bug #964023 - -x test_pyrepl - ) - - if has_version "app-arch/rpm" ; then - # Avoid sandbox failure (attempts to write to /var/lib/rpm) - profile_task_flags+=( - -x test_distutils - ) - fi - # PGO sometimes fails randomly - local -x PROFILE_TASK="${profile_task_flags[*]} || true" - fi - - local myeconfargs=( - # glibc-2.30 removes it; since we can't cleanly force-rebuild - # Python on glibc upgrade, remove it proactively to give - # a chance for users rebuilding python before glibc - ac_cv_header_stropts_h=no - - --enable-shared - --without-static-libpython - --enable-ipv6 - --infodir='${prefix}/share/info' - --mandir='${prefix}/share/man' - --with-dbmliborder="${dbmliborder}" - --with-libc= - --enable-loadable-sqlite-extensions - --without-ensurepip - --without-lto - --with-system-expat - --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --disable-gil - - $(use_with debug assertions) - $(use_enable pgo optimizations) - $(use_with readline readline "$(usex libedit editline readline)") - $(use_with tail-call-interp) - $(use_with valgrind) - ) - - if tc-is-lto; then - myeconfargs+=( - --with-lto - ) - fi - - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !gdbm '_gdbm _dbm') - $(usev !sqlite '_sqlite3') - $(usev !ssl '_hashlib _ssl') - $(usev !ncurses '_curses _curses_panel') - $(usev !readline 'readline') - $(usev !tk '_tkinter') - EOF - - # disable implicit optimization/debugging flags - local -x OPT= - - if tc-is-cross-compiler ; then - build_cbuild_python - myeconfargs+=( - # Point the imminent CHOST build to the Python we just - # built for CBUILD. - --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python - ) - fi - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - local -x CFLAGS_NODIST=${CFLAGS} - local -x LDFLAGS_NODIST=${LDFLAGS} - local -x CFLAGS= LDFLAGS= - - # Fix implicit declarations on cross and prefix builds. Bug #674070. - if use ncurses; then - append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw - fi - - econf "${myeconfargs[@]}" - - if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then - eerror "configure has detected that the sem_open function is broken." - eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." - die "Broken sem_open function (bug 496328)" - fi - - # install epython.py as part of stdlib - echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die -} - -src_compile() { - # Ensure sed works as expected - # https://bugs.gentoo.org/594768 - local -x LC_ALL=C - export PYTHONSTRICTEXTENSIONBUILD=1 - - # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't - # end up writing bytecode & violating sandbox. - # bug #831897 - local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} - - # Gentoo hack to disable accessing system site-packages - export GENTOO_CPYTHON_BUILD=1 - - if use pgo ; then - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - fi - - # also need to clear the flags explicitly here or they end up - # in _sysconfigdata* - emake CPPFLAGS= CFLAGS= LDFLAGS= - - # Restore saved value from above. - local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} - - # Work around bug 329499. See also bug 413751 and 457194. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E python - else - pax-mark m python - fi -} - -src_test() { - # Tests will not work when cross compiling. - if tc-is-cross-compiler; then - elog "Disabling tests due to crosscompiling." - return - fi - - # this just happens to skip test_support.test_freeze that is broken - # without bundled expat - # TODO: get a proper skip for it upstream - local -x LOGNAME=buildbot - - local test_opts=( - --verbose3 - -u-network - -j "$(makeopts_jobs)" - "${COMMON_TEST_SKIPS[@]}" - ) - - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - - nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ - CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty - local ret=${?} - - [[ ${ret} -eq 0 ]] || die "emake test failed" -} - -src_install() { - local libdir=${ED}/usr/lib/python${PYVER} - - # -j1 hack for now for bug #843458 - emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall - - # Fix collisions between different slots of Python. - rm "${ED}/usr/$(get_libdir)/libpython3.so" || die - # Fix collision with GIL-enabled build. - rm "${ED}/usr/bin/python${PYVER%t}" || die - mv "${ED}"/usr/bin/pydoc{${PYVER%t},${PYVER}} || die - mv "${ED}"/usr/share/man/man1/python{${PYVER%t},${PYVER}}.1 || die - - # Cheap hack to get version with ABIFLAGS - local abiver=$(cd "${ED}/usr/include"; echo python*) - if [[ ${abiver} != python${PYVER} ]]; then - # Replace python3.X with a symlink to python3.Xm - rm "${ED}/usr/bin/python${PYVER}" || die - dosym "${abiver}" "/usr/bin/python${PYVER}" - # Create python3.X-config symlink - dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" - # Create python-3.5m.pc symlink - dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" - fi - - # python seems to get rebuilt in src_install (bug 569908) - # Work around it for now. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E "${ED}/usr/bin/${abiver}" - else - pax-mark m "${ED}/usr/bin/${abiver}" - fi - - rm -r "${libdir}"/ensurepip/_bundled || die - if ! use sqlite; then - rm -r "${libdir}/"sqlite3 || die - fi - if use tk; then - # rename to avoid collision with dev-lang/python - mv "${ED}"/usr/bin/idle{${PYVER%t},${PYVER}} || die - else - rm -r "${ED}/usr/bin/idle${PYVER%t}" || die - rm -r "${libdir}/"{idlelib,tkinter} || die - fi - - ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die - - dodoc Misc/{ACKS,HISTORY,NEWS} - - if use examples; then - docinto examples - find Tools -name __pycache__ -exec rm -fr {} + || die - dodoc -r Tools - fi - insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 - local libname=$( - printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | - emake --no-print-directory -s -f - 2>/dev/null - ) - newins Tools/gdb/libpython.py "${libname}"-gdb.py - - newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} - newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} - sed \ - -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ - -e "s:@PYDOC@:pydoc${PYVER}:" \ - -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ - "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_beta1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_beta1.ebuild new file mode 100644 index 00000000000..7d04c59a102 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_beta1.ebuild @@ -0,0 +1,608 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +VERIFY_SIG_METHOD=sigstore +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic linux-info +inherit multiprocessing pax-utils toolchain-funcs verify-sig + +REAL_PV=${PV#0.} +MY_PV=${REAL_PV/_beta/b} +MY_P="Python-${MY_PV%_p*}" +PYVER="$(ver_cut 2-3)t" +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="Freethreading (no-GIL) version of Python programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz.sigstore + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +IUSE=" + bluetooth 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 + >=virtual/zlib-1.1.3:= + virtual/libintl + gdbm? ( sys-libs/gdbm:=[berkdb] ) + kernel_linux? ( sys-apps/util-linux:= ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( + !libedit? ( >=sys-libs/readline-4.1:= ) + libedit? ( dev-libs/libedit:= ) + ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) +" +# bluetooth requires headers from bluez +DEPEND=" + ${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( + dev-python/ensurepip-pip + dev-python/ensurepip-setuptools + dev-python/ensurepip-wheel + ) + valgrind? ( dev-debug/valgrind ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + dev-build/autoconf-archive + app-alternatives/awk + virtual/pkgconfig + tail-call-interp? ( + || ( + >=sys-devel/gcc-16:* + >=llvm-core/clang-19:* + ) + ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi +PDEPEND=" + ensurepip? ( dev-python/ensurepip-pip ) +" + +# https://www.python.org/downloads/metadata/sigstore/ +VERIFY_SIG_CERT_IDENTITY=hugo@python.org +VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER%t} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +declare -rgA PYTHON_KERNEL_CHECKS=( + ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 + ["DNOTIFY"]="test_fcntl" # bug 938662 +) + +pkg_pretend() { + if use pgo || use test; then + check-reqs_pkg_pretend + fi + + ewarn "Freethreading build is considered experimental upstream. Using it" + ewarn "could lead to unexpected breakage, including race conditions" + ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" + ewarn "you can reproduce the problem with dev-lang/python. Instead," + ewarn "please consider reporting freethreading problems upstream." +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]]; then + if use test || use pgo; then + check-reqs_pkg_setup + + local CONFIG_CHECK + for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do + CONFIG_CHECK+="~${f} " + done + linux-info_pkg_setup + fi + if use tail-call-interp; then + tc-check-min_ver gcc 16 + tc-check-min_ver clang 19 + fi + fi +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + # TODO: Makefile has annoying deps on expat headers + #rm -r Modules/expat || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die + + # breaks tests when using --with-wheel-pkg-dir + rm -r Lib/test/wheeldata || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + + # Avoid as many dependencies as possible for the cross build. + mkdir Modules || die + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + _dbm _gdbm + _sqlite3 + _hashlib _ssl + _curses _curses_panel + readline + _tkinter + pyexpat + zlib + # We disabled these for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. This should be rechecked for the pure Makefile approach, + # and uncommented if needed. + #_ctypes + EOF + + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # running gdb inside an ebuild as non-root, within sandbox, + # and possibly within a container is unreliable + -x test_gdb + # this is actually test_gdb.test_pretty_print + -x test_pretty_print + # https://bugs.gentoo.org/933840 + -x test_perf_profiler + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # Kernel-config specific skips + for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do + if ! linux_config_exists || ! linux_chkconfig_present "${option}" + then + COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) + fi + done + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + --verbose3 + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + + # Test terminates abruptly which corrupts written profile data + # bug #964023 + -x test_pyrepl + ) + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + # PGO sometimes fails randomly + local -x PROFILE_TASK="${profile_task_flags[*]} || true" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-libmpdec + --with-platlibdir=lib + --with-pkg-config=yes + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + --disable-gil + + $(use_with debug assertions) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with tail-call-interp) + $(use_with valgrind) + ) + + if tc-is-lto; then + myeconfargs+=( + --with-lto + ) + fi + + # Force-disable modules we don't want built. + # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + $(usev !gdbm '_gdbm _dbm') + $(usev !sqlite '_sqlite3') + $(usev !ssl '_hashlib _ssl') + $(usev !ncurses '_curses _curses_panel') + $(usev !readline 'readline') + $(usev !tk '_tkinter') + EOF + + # disable implicit optimization/debugging flags + local -x OPT= + + if tc-is-cross-compiler ; then + build_cbuild_python + myeconfargs+=( + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python + ) + fi + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + if use ncurses; then + append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + fi + + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi + + # install epython.py as part of stdlib + echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + export PYTHONSTRICTEXTENSIONBUILD=1 + + # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't + # end up writing bytecode & violating sandbox. + # bug #831897 + local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} + + # Gentoo hack to disable accessing system site-packages + export GENTOO_CPYTHON_BUILD=1 + + if use pgo ; then + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + fi + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Restore saved value from above. + local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # this just happens to skip test_support.test_freeze that is broken + # without bundled expat + # TODO: get a proper skip for it upstream + local -x LOGNAME=buildbot + + local test_opts=( + --verbose3 + -u-network + -j "$(makeopts_jobs)" + "${COMMON_TEST_SKIPS[@]}" + ) + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + + nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local ret=${?} + + [[ ${ret} -eq 0 ]] || die "emake test failed" +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + local build_dir=$(/dev/null + ) + newins Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" +} 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 26c49320ae8..ba23e4bc2c6 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 @@ -9,7 +9,7 @@ inherit autotools check-reqs flag-o-matic git-r3 linux-info inherit multiprocessing pax-utils toolchain-funcs PYVER="$(ver_cut 2-3)t" -PATCHSET="python-gentoo-patches-3.14.0b1" +PATCHSET="python-gentoo-patches-3.15.0a8" DESCRIPTION="Freethreading (no-GIL) version of Python programming language" HOMEPAGE=" @@ -17,7 +17,7 @@ HOMEPAGE=" https://github.com/python/cpython/ " SRC_URI=" - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz " EGIT_REPO_URI="https://github.com/python/cpython.git" @@ -84,6 +84,11 @@ BDEPEND=" ) ) " +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi PDEPEND=" ensurepip? ( dev-python/ensurepip-pip ) " @@ -515,10 +520,15 @@ src_test() { src_install() { local libdir=${ED}/usr/lib/python${PYVER} + local build_dir=$( /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.10.20.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.20.ebuild index 755613985a5..6d287d54c60 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.20.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.20.ebuild @@ -19,7 +19,7 @@ HOMEPAGE=" " SRC_URI=" https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz verify-sig? ( https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc ) @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE=" bluetooth debug +ensurepip examples gdbm libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.9999.ebuild index b652372d2c9..92e1decbf68 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.9999.ebuild @@ -16,7 +16,7 @@ HOMEPAGE=" https://github.com/python/cpython/ " SRC_URI=" - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz " EGIT_REPO_URI="https://github.com/python/cpython.git" EGIT_BRANCH=${PYVER} 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 deleted file mode 100644 index 6a81f0ca50e..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.14.ebuild +++ /dev/null @@ -1,619 +0,0 @@ -# Copyright 1999-2026 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 - >=virtual/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} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - # 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.11.15.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.15.ebuild index cff84eaae3b..d69beeece0d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.15.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.15.ebuild @@ -19,7 +19,7 @@ HOMEPAGE=" " SRC_URI=" https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz verify-sig? ( https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc ) @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE=" bluetooth debug +ensurepip examples gdbm libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.9999.ebuild index 08685267f90..40ee517c929 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.9999.ebuild @@ -16,7 +16,7 @@ HOMEPAGE=" https://github.com/python/cpython/ " SRC_URI=" - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz " EGIT_REPO_URI="https://github.com/python/cpython.git" EGIT_BRANCH=${PYVER} 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 deleted file mode 100644 index b34117e2d0d..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.12.ebuild +++ /dev/null @@ -1,602 +0,0 @@ -# Copyright 1999-2026 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 - >=virtual/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} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes _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.12.13_p1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.13_p1.ebuild index a4d4fd91bad..76b5b115077 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.13_p1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.13_p1.ebuild @@ -19,7 +19,7 @@ HOMEPAGE=" " SRC_URI=" https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz verify-sig? ( https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc ) @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE=" bluetooth debug +ensurepip examples gdbm libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.9999.ebuild index 90add3e4034..c7ed95b8f6c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.9999.ebuild @@ -16,7 +16,7 @@ HOMEPAGE=" https://github.com/python/cpython/ " SRC_URI=" - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz " EGIT_REPO_URI="https://github.com/python/cpython.git" EGIT_BRANCH=${PYVER} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.11.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.11.ebuild deleted file mode 100644 index 1c6d1197d5f..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.11.ebuild +++ /dev/null @@ -1,616 +0,0 @@ -# Copyright 1999-2026 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 - >=virtual/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} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - ) - - 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.13.12.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.12.ebuild deleted file mode 100644 index 8b4918b5566..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.12.ebuild +++ /dev/null @@ -1,616 +0,0 @@ -# Copyright 1999-2026 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 - >=virtual/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} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - ) - - 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.13.13_p1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.13_p1.ebuild new file mode 100644 index 00000000000..aa92a160813 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.13_p1.ebuild @@ -0,0 +1,616 @@ +# Copyright 1999-2026 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://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.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 + >=virtual/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} -fno-lto" + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + + # Avoid as many dependencies as possible for the cross build. + mkdir Modules || die + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + _dbm _gdbm + _sqlite3 + _hashlib _ssl + _curses _curses_panel + readline + _tkinter + pyexpat + zlib + # We disabled these for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. This should be rechecked for the pure Makefile approach, + # and uncommented if needed. + #_ctypes + EOF + + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # running gdb inside an ebuild as non-root, within sandbox, + # and possibly within a container is unreliable + -x test_gdb + # this is actually test_gdb.test_pretty_print + -x test_pretty_print + # https://bugs.gentoo.org/933840 + -x test_perf_profiler + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # Kernel-config specific skips + for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do + if ! linux_config_exists || ! linux_chkconfig_present "${option}" + then + COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) + fi + done + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + --verbose3 + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + ) + + 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.13.9.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.9.ebuild deleted file mode 100644 index 1c6d1197d5f..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.9.ebuild +++ /dev/null @@ -1,616 +0,0 @@ -# Copyright 1999-2026 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 - >=virtual/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} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - ) - - 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.13.9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.9999.ebuild index 97c6f06b66a..4babafa5def 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.9999.ebuild @@ -19,7 +19,7 @@ HOMEPAGE=" https://github.com/python/cpython/ " SRC_URI=" - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz " EGIT_REPO_URI="https://github.com/python/cpython.git" EGIT_BRANCH=${PYVER} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_p1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_p1.ebuild deleted file mode 100644 index b90e3dc6bce..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_p1.ebuild +++ /dev/null @@ -1,646 +0,0 @@ -# Copyright 1999-2026 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 - >=virtual/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} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - - # Test terminates abruptly which corrupts written profile data - # bug #964023 - -x test_pyrepl - ) - - if has_version "app-arch/rpm" ; then - # Avoid sandbox failure (attempts to write to /var/lib/rpm) - profile_task_flags+=( - -x test_distutils - ) - fi - # PGO sometimes fails randomly - local -x PROFILE_TASK="${profile_task_flags[*]} || true" - fi - - local myeconfargs=( - # glibc-2.30 removes it; since we can't cleanly force-rebuild - # Python on glibc upgrade, remove it proactively to give - # a chance for users rebuilding python before glibc - ac_cv_header_stropts_h=no - - --enable-shared - --without-static-libpython - --enable-ipv6 - --infodir='${prefix}/share/info' - --mandir='${prefix}/share/man' - --with-dbmliborder="${dbmliborder}" - --with-libc= - --enable-loadable-sqlite-extensions - --without-ensurepip - --without-lto - --with-system-expat - --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --enable-gil - - $(use_with debug assertions) - $(use_enable jit experimental-jit) - $(use_enable pgo optimizations) - $(use_with readline readline "$(usex libedit editline readline)") - $(use_with tail-call-interp) - $(use_with valgrind) - ) - - if tc-is-lto; then - myeconfargs+=( - --with-lto - ) - fi - - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !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.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.2.ebuild deleted file mode 100644 index c3c0fe5c11e..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.2.ebuild +++ /dev/null @@ -1,646 +0,0 @@ -# Copyright 1999-2026 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 - >=virtual/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-16:* - >=llvm-core/clang-19:* - ) - ) -" -if [[ ${PV} != *_alpha* ]]; then - RDEPEND+=" - dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] - " -fi -PDEPEND=" - ensurepip? ( dev-python/ensurepip-pip ) -" - -# https://www.python.org/downloads/metadata/sigstore/ -VERIFY_SIG_CERT_IDENTITY=hugo@python.org -VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth - -# large file tests involve a 2.5G file being copied (duplicated) -CHECKREQS_DISK_BUILD=5500M - -QA_PKGCONFIG_VERSION=${PYVER%t} -# false positives -- functions specific to *BSD -QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) - -declare -rgA PYTHON_KERNEL_CHECKS=( - ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 - ["DNOTIFY"]="test_fcntl" # bug 938662 -) - -pkg_pretend() { - if use pgo || use test; then - check-reqs_pkg_pretend - fi - - if use jit; then - ewarn "USE=jit is considered experimental upstream. Using it" - ewarn "could lead to unexpected breakage, including race conditions" - ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" - ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead," - ewarn "please consider reporting JIT problems upstream." - fi -} - -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 16 - tc-check-min_ver clang 19 - fi - fi -} - -src_unpack() { - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} - fi - default -} - -src_prepare() { - # Ensure that internal copies of expat and libffi are not used. - # TODO: Makefile has annoying deps on expat headers - #rm -r Modules/expat || die - - local PATCHES=( - "${WORKDIR}/${PATCHSET}" - ) - - default - - # force the correct number of jobs - # https://bugs.gentoo.org/737660 - sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die - - # breaks tests when using --with-wheel-pkg-dir - rm -r Lib/test/wheeldata || die - - eautoreconf -} - -build_cbuild_python() { - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - # - # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) - local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" - local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - - # Test terminates abruptly which corrupts written profile data - # bug #964023 - -x test_pyrepl - ) - - if has_version "app-arch/rpm" ; then - # Avoid sandbox failure (attempts to write to /var/lib/rpm) - profile_task_flags+=( - -x test_distutils - ) - fi - # PGO sometimes fails randomly - local -x PROFILE_TASK="${profile_task_flags[*]} || true" - fi - - local myeconfargs=( - # glibc-2.30 removes it; since we can't cleanly force-rebuild - # Python on glibc upgrade, remove it proactively to give - # a chance for users rebuilding python before glibc - ac_cv_header_stropts_h=no - - --enable-shared - --without-static-libpython - --enable-ipv6 - --infodir='${prefix}/share/info' - --mandir='${prefix}/share/man' - --with-dbmliborder="${dbmliborder}" - --with-libc= - --enable-loadable-sqlite-extensions - --without-ensurepip - --without-lto - --with-system-expat - --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --enable-gil - - $(use_with debug assertions) - $(use_enable jit experimental-jit) - $(use_enable pgo optimizations) - $(use_with readline readline "$(usex libedit editline readline)") - $(use_with tail-call-interp) - $(use_with valgrind) - ) - - if tc-is-lto; then - myeconfargs+=( - --with-lto - ) - fi - - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !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.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.3.ebuild deleted file mode 100644 index 1c4337b58e7..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.3.ebuild +++ /dev/null @@ -1,646 +0,0 @@ -# Copyright 1999-2026 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 - >=virtual/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-16:* - >=llvm-core/clang-19:* - ) - ) -" -if [[ ${PV} != *_alpha* ]]; then - RDEPEND+=" - dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] - " -fi -PDEPEND=" - ensurepip? ( dev-python/ensurepip-pip ) -" - -# https://www.python.org/downloads/metadata/sigstore/ -VERIFY_SIG_CERT_IDENTITY=hugo@python.org -VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth - -# large file tests involve a 2.5G file being copied (duplicated) -CHECKREQS_DISK_BUILD=5500M - -QA_PKGCONFIG_VERSION=${PYVER%t} -# false positives -- functions specific to *BSD -QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) - -declare -rgA PYTHON_KERNEL_CHECKS=( - ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 - ["DNOTIFY"]="test_fcntl" # bug 938662 -) - -pkg_pretend() { - if use pgo || use test; then - check-reqs_pkg_pretend - fi - - if use jit; then - ewarn "USE=jit is considered experimental upstream. Using it" - ewarn "could lead to unexpected breakage, including race conditions" - ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" - ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead," - ewarn "please consider reporting JIT problems upstream." - fi -} - -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 16 - tc-check-min_ver clang 19 - fi - fi -} - -src_unpack() { - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} - fi - default -} - -src_prepare() { - # Ensure that internal copies of expat and libffi are not used. - # TODO: Makefile has annoying deps on expat headers - #rm -r Modules/expat || die - - local PATCHES=( - "${WORKDIR}/${PATCHSET}" - ) - - default - - # force the correct number of jobs - # https://bugs.gentoo.org/737660 - sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die - - # breaks tests when using --with-wheel-pkg-dir - rm -r Lib/test/wheeldata || die - - eautoreconf -} - -build_cbuild_python() { - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - # - # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) - local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" - local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - - # Test terminates abruptly which corrupts written profile data - # bug #964023 - -x test_pyrepl - ) - - if has_version "app-arch/rpm" ; then - # Avoid sandbox failure (attempts to write to /var/lib/rpm) - profile_task_flags+=( - -x test_distutils - ) - fi - # PGO sometimes fails randomly - local -x PROFILE_TASK="${profile_task_flags[*]} || true" - fi - - local myeconfargs=( - # glibc-2.30 removes it; since we can't cleanly force-rebuild - # Python on glibc upgrade, remove it proactively to give - # a chance for users rebuilding python before glibc - ac_cv_header_stropts_h=no - - --enable-shared - --without-static-libpython - --enable-ipv6 - --infodir='${prefix}/share/info' - --mandir='${prefix}/share/man' - --with-dbmliborder="${dbmliborder}" - --with-libc= - --enable-loadable-sqlite-extensions - --without-ensurepip - --without-lto - --with-system-expat - --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --enable-gil - - $(use_with debug assertions) - $(use_enable jit experimental-jit) - $(use_enable pgo optimizations) - $(use_with readline readline "$(usex libedit editline readline)") - $(use_with tail-call-interp) - $(use_with valgrind) - ) - - if tc-is-lto; then - myeconfargs+=( - --with-lto - ) - fi - - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !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.4_p1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.4_p1.ebuild new file mode 100644 index 00000000000..f614f9279e4 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.4_p1.ebuild @@ -0,0 +1,646 @@ +# Copyright 1999-2026 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://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +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 + >=virtual/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-16:* + >=llvm-core/clang-19:* + ) + ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi +PDEPEND=" + ensurepip? ( dev-python/ensurepip-pip ) +" + +# https://www.python.org/downloads/metadata/sigstore/ +VERIFY_SIG_CERT_IDENTITY=hugo@python.org +VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER%t} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +declare -rgA PYTHON_KERNEL_CHECKS=( + ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 + ["DNOTIFY"]="test_fcntl" # bug 938662 +) + +pkg_pretend() { + if use pgo || use test; then + check-reqs_pkg_pretend + fi + + if use jit; then + ewarn "USE=jit is considered experimental upstream. Using it" + ewarn "could lead to unexpected breakage, including race conditions" + ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" + ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead," + ewarn "please consider reporting JIT problems upstream." + fi +} + +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 16 + tc-check-min_ver clang 19 + fi + fi +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + # TODO: Makefile has annoying deps on expat headers + #rm -r Modules/expat || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die + + # breaks tests when using --with-wheel-pkg-dir + rm -r Lib/test/wheeldata || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + + # Avoid as many dependencies as possible for the cross build. + mkdir Modules || die + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + _dbm _gdbm + _sqlite3 + _hashlib _ssl + _curses _curses_panel + readline + _tkinter + pyexpat + zlib + # We disabled these for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. This should be rechecked for the pure Makefile approach, + # and uncommented if needed. + #_ctypes + EOF + + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # running gdb inside an ebuild as non-root, within sandbox, + # and possibly within a container is unreliable + -x test_gdb + # this is actually test_gdb.test_pretty_print + -x test_pretty_print + # https://bugs.gentoo.org/933840 + -x test_perf_profiler + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # Kernel-config specific skips + for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do + if ! linux_config_exists || ! linux_chkconfig_present "${option}" + then + COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) + fi + done + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + --verbose3 + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + + # Test terminates abruptly which corrupts written profile data + # bug #964023 + -x test_pyrepl + ) + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + # PGO sometimes fails randomly + local -x PROFILE_TASK="${profile_task_flags[*]} || true" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-libmpdec + --with-platlibdir=lib + --with-pkg-config=yes + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + --enable-gil + + $(use_with debug assertions) + $(use_enable jit experimental-jit) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with tail-call-interp) + $(use_with valgrind) + ) + + if tc-is-lto; then + myeconfargs+=( + --with-lto + ) + fi + + # Force-disable modules we don't want built. + # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + $(usev !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.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.5.ebuild new file mode 100644 index 00000000000..d92ec14a4a8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.5.ebuild @@ -0,0 +1,648 @@ +# Copyright 1999-2026 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://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +if [[ ${PV} != *_rc* ]]; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi +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 + >=virtual/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-16:* + >=llvm-core/clang-19:* + ) + ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi +PDEPEND=" + ensurepip? ( dev-python/ensurepip-pip ) +" + +# https://www.python.org/downloads/metadata/sigstore/ +VERIFY_SIG_CERT_IDENTITY=hugo@python.org +VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER%t} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +declare -rgA PYTHON_KERNEL_CHECKS=( + ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 + ["DNOTIFY"]="test_fcntl" # bug 938662 +) + +pkg_pretend() { + if use pgo || use test; then + check-reqs_pkg_pretend + fi + + if use jit; then + ewarn "USE=jit is considered experimental upstream. Using it" + ewarn "could lead to unexpected breakage, including race conditions" + ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" + ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead," + ewarn "please consider reporting JIT problems upstream." + fi +} + +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 16 + tc-check-min_ver clang 19 + fi + fi +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + # TODO: Makefile has annoying deps on expat headers + #rm -r Modules/expat || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die + + # breaks tests when using --with-wheel-pkg-dir + rm -r Lib/test/wheeldata || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + + # Avoid as many dependencies as possible for the cross build. + mkdir Modules || die + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + _dbm _gdbm + _sqlite3 + _hashlib _ssl + _curses _curses_panel + readline + _tkinter + pyexpat + zlib + # We disabled these for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. This should be rechecked for the pure Makefile approach, + # and uncommented if needed. + #_ctypes + EOF + + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # running gdb inside an ebuild as non-root, within sandbox, + # and possibly within a container is unreliable + -x test_gdb + # this is actually test_gdb.test_pretty_print + -x test_pretty_print + # https://bugs.gentoo.org/933840 + -x test_perf_profiler + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # Kernel-config specific skips + for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do + if ! linux_config_exists || ! linux_chkconfig_present "${option}" + then + COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) + fi + done + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + --verbose3 + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + + # Test terminates abruptly which corrupts written profile data + # bug #964023 + -x test_pyrepl + ) + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + # PGO sometimes fails randomly + local -x PROFILE_TASK="${profile_task_flags[*]} || true" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-libmpdec + --with-platlibdir=lib + --with-pkg-config=yes + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + --enable-gil + + $(use_with debug assertions) + $(use_enable jit experimental-jit) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with tail-call-interp) + $(use_with valgrind) + ) + + if tc-is-lto; then + myeconfargs+=( + --with-lto + ) + fi + + # Force-disable modules we don't want built. + # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + $(usev !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.5_rc1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.5_rc1.ebuild new file mode 100644 index 00000000000..d92ec14a4a8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.5_rc1.ebuild @@ -0,0 +1,648 @@ +# Copyright 1999-2026 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://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +if [[ ${PV} != *_rc* ]]; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi +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 + >=virtual/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-16:* + >=llvm-core/clang-19:* + ) + ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi +PDEPEND=" + ensurepip? ( dev-python/ensurepip-pip ) +" + +# https://www.python.org/downloads/metadata/sigstore/ +VERIFY_SIG_CERT_IDENTITY=hugo@python.org +VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER%t} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +declare -rgA PYTHON_KERNEL_CHECKS=( + ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 + ["DNOTIFY"]="test_fcntl" # bug 938662 +) + +pkg_pretend() { + if use pgo || use test; then + check-reqs_pkg_pretend + fi + + if use jit; then + ewarn "USE=jit is considered experimental upstream. Using it" + ewarn "could lead to unexpected breakage, including race conditions" + ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" + ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead," + ewarn "please consider reporting JIT problems upstream." + fi +} + +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 16 + tc-check-min_ver clang 19 + fi + fi +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + # TODO: Makefile has annoying deps on expat headers + #rm -r Modules/expat || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die + + # breaks tests when using --with-wheel-pkg-dir + rm -r Lib/test/wheeldata || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + + # Avoid as many dependencies as possible for the cross build. + mkdir Modules || die + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + _dbm _gdbm + _sqlite3 + _hashlib _ssl + _curses _curses_panel + readline + _tkinter + pyexpat + zlib + # We disabled these for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. This should be rechecked for the pure Makefile approach, + # and uncommented if needed. + #_ctypes + EOF + + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # running gdb inside an ebuild as non-root, within sandbox, + # and possibly within a container is unreliable + -x test_gdb + # this is actually test_gdb.test_pretty_print + -x test_pretty_print + # https://bugs.gentoo.org/933840 + -x test_perf_profiler + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # Kernel-config specific skips + for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do + if ! linux_config_exists || ! linux_chkconfig_present "${option}" + then + COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) + fi + done + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + --verbose3 + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + + # Test terminates abruptly which corrupts written profile data + # bug #964023 + -x test_pyrepl + ) + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + # PGO sometimes fails randomly + local -x PROFILE_TASK="${profile_task_flags[*]} || true" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-libmpdec + --with-platlibdir=lib + --with-pkg-config=yes + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + --enable-gil + + $(use_with debug assertions) + $(use_enable jit experimental-jit) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with tail-call-interp) + $(use_with valgrind) + ) + + if tc-is-lto; then + myeconfargs+=( + --with-lto + ) + fi + + # Force-disable modules we don't want built. + # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + $(usev !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 67be8cf1f39..71205906a1e 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 @@ -19,7 +19,7 @@ HOMEPAGE=" https://github.com/python/cpython/ " SRC_URI=" - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz " EGIT_REPO_URI="https://github.com/python/cpython.git" EGIT_BRANCH=${PYVER} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_alpha5.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_alpha5.ebuild deleted file mode 100644 index f30b70c0c52..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_alpha5.ebuild +++ /dev/null @@ -1,603 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -LLVM_COMPAT=( 19 ) -LLVM_OPTIONAL=1 -VERIFY_SIG_METHOD=sigstore -WANT_LIBTOOL="none" - -inherit autotools check-reqs flag-o-matic linux-info llvm-r1 -inherit multiprocessing pax-utils toolchain-funcs verify-sig - -MY_PV=${PV/_alpha/a} -MY_P="Python-${MY_PV%_p*}" -PYVER=$(ver_cut 1-2) -PATCHSET="python-gentoo-patches-${MY_PV}" - -DESCRIPTION="An interpreted, interactive, object-oriented programming language" -HOMEPAGE=" - https://www.python.org/ - https://github.com/python/cpython/ -" -SRC_URI=" - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz - verify-sig? ( - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore - ) -" -S="${WORKDIR}/${MY_P}" - -LICENSE="PSF-2" -SLOT="${PYVER}" -IUSE=" - bluetooth debug +ensurepip examples gdbm jit libedit +ncurses pgo - +readline +sqlite +ssl tail-call-interp test tk valgrind -" -REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )" -RESTRICT="!test? ( test )" - -# Do not add a dependency on dev-lang/python to this ebuild. -# If you need to apply a patch which requires python for bootstrapping, please -# run the bootstrap code on your dev box and include the results in the -# patchset. See bug 447752. - -RDEPEND=" - app-arch/bzip2:= - app-arch/xz-utils:= - app-arch/zstd:= - app-misc/mime-types - >=dev-libs/expat-2.1:= - dev-libs/libffi:= - dev-libs/mpdecimal:= - dev-python/gentoo-common - >=virtual/zlib-1.1.3:= - virtual/libintl - gdbm? ( sys-libs/gdbm:=[berkdb] ) - kernel_linux? ( sys-apps/util-linux:= ) - ncurses? ( >=sys-libs/ncurses-5.2:= ) - readline? ( - !libedit? ( >=sys-libs/readline-4.1:= ) - libedit? ( dev-libs/libedit:= ) - ) - sqlite? ( >=dev-db/sqlite-3.3.8:3= ) - ssl? ( >=dev-libs/openssl-1.1.1:= ) - tk? ( - >=dev-lang/tcl-8.0:= - >=dev-lang/tk-8.0:= - dev-tcltk/blt:= - dev-tcltk/tix - ) -" -# bluetooth requires headers from bluez -DEPEND=" - ${RDEPEND} - bluetooth? ( net-wireless/bluez ) - test? ( - dev-python/ensurepip-pip - dev-python/ensurepip-setuptools - dev-python/ensurepip-wheel - ) - valgrind? ( dev-debug/valgrind ) -" -# autoconf-archive needed to eautoreconf -BDEPEND=" - dev-build/autoconf-archive - app-alternatives/awk - virtual/pkgconfig - jit? ( - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT} - llvm-core/llvm:${LLVM_SLOT} - ') - ) - tail-call-interp? ( - || ( - >=sys-devel/gcc-16:* - >=llvm-core/clang-19:* - ) - ) -" -PDEPEND=" - ensurepip? ( dev-python/ensurepip-pip ) -" - -# https://www.python.org/downloads/metadata/sigstore/ -VERIFY_SIG_CERT_IDENTITY=hugo@python.org -VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth - -# large file tests involve a 2.5G file being copied (duplicated) -CHECKREQS_DISK_BUILD=5500M - -QA_PKGCONFIG_VERSION=${PYVER%t} -# false positives -- functions specific to *BSD -QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) - -declare -rgA PYTHON_KERNEL_CHECKS=( - ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 - ["DNOTIFY"]="test_fcntl" # bug 938662 -) - -pkg_pretend() { - if use pgo || use test; then - check-reqs_pkg_pretend - fi - - if use jit; then - ewarn "USE=jit is considered experimental upstream. Using it" - ewarn "could lead to unexpected breakage, including race conditions" - ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" - ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead," - ewarn "please consider reporting JIT problems upstream." - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]]; then - use jit && llvm-r1_pkg_setup - if use test || use pgo; then - check-reqs_pkg_setup - - local CONFIG_CHECK - for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do - CONFIG_CHECK+="~${f} " - done - linux-info_pkg_setup - fi - if use tail-call-interp; then - tc-check-min_ver gcc 16 - tc-check-min_ver clang 19 - fi - fi -} - -src_unpack() { - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} - fi - default -} - -src_prepare() { - # Ensure that internal copies of expat and libffi are not used. - # TODO: Makefile has annoying deps on expat headers - #rm -r Modules/expat || die - - local PATCHES=( - "${WORKDIR}/${PATCHSET}" - ) - - default - - # force the correct number of jobs - # https://bugs.gentoo.org/737660 - sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die - - # breaks tests when using --with-wheel-pkg-dir - rm -r Lib/test/wheeldata || die - - eautoreconf -} - -build_cbuild_python() { - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - # - # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) - local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" - local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - - # Test terminates abruptly which corrupts written profile data - # bug #964023 - -x test_pyrepl - ) - - if has_version "app-arch/rpm" ; then - # Avoid sandbox failure (attempts to write to /var/lib/rpm) - profile_task_flags+=( - -x test_distutils - ) - fi - # PGO sometimes fails randomly - local -x PROFILE_TASK="${profile_task_flags[*]} || true" - fi - - local myeconfargs=( - # glibc-2.30 removes it; since we can't cleanly force-rebuild - # Python on glibc upgrade, remove it proactively to give - # a chance for users rebuilding python before glibc - ac_cv_header_stropts_h=no - - --enable-shared - --without-static-libpython - --enable-ipv6 - --infodir='${prefix}/share/info' - --mandir='${prefix}/share/man' - --with-dbmliborder="${dbmliborder}" - --with-libc= - --enable-loadable-sqlite-extensions - --without-ensurepip - --without-lto - --with-system-expat - --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --enable-gil - - $(use_with debug assertions) - $(use_enable jit experimental-jit) - $(use_enable pgo optimizations) - $(use_with readline readline "$(usex libedit editline readline)") - $(use_with tail-call-interp) - $(use_with valgrind) - ) - - if tc-is-lto; then - myeconfargs+=( - --with-lto - ) - fi - - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !gdbm '_gdbm _dbm') - $(usev !sqlite '_sqlite3') - $(usev !ssl '_hashlib _ssl') - $(usev !ncurses '_curses _curses_panel') - $(usev !readline 'readline') - $(usev !tk '_tkinter') - EOF - - # disable implicit optimization/debugging flags - local -x OPT= - - if tc-is-cross-compiler ; then - build_cbuild_python - myeconfargs+=( - # Point the imminent CHOST build to the Python we just - # built for CBUILD. - --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python - ) - fi - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - local -x CFLAGS_NODIST=${CFLAGS} - local -x LDFLAGS_NODIST=${LDFLAGS} - local -x CFLAGS= LDFLAGS= - - # Fix implicit declarations on cross and prefix builds. Bug #674070. - if use ncurses; then - append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw - fi - - econf "${myeconfargs[@]}" - - if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then - eerror "configure has detected that the sem_open function is broken." - eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." - die "Broken sem_open function (bug 496328)" - fi - - # install epython.py as part of stdlib - echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die -} - -src_compile() { - # Ensure sed works as expected - # https://bugs.gentoo.org/594768 - local -x LC_ALL=C - export PYTHONSTRICTEXTENSIONBUILD=1 - - # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't - # end up writing bytecode & violating sandbox. - # bug #831897 - local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} - - # Gentoo hack to disable accessing system site-packages - export GENTOO_CPYTHON_BUILD=1 - - if use pgo ; then - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - fi - - # also need to clear the flags explicitly here or they end up - # in _sysconfigdata* - emake CPPFLAGS= CFLAGS= LDFLAGS= - - # Restore saved value from above. - local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} - - # Work around bug 329499. See also bug 413751 and 457194. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E python - else - pax-mark m python - fi -} - -src_test() { - # Tests will not work when cross compiling. - if tc-is-cross-compiler; then - elog "Disabling tests due to crosscompiling." - return - fi - - # this just happens to skip test_support.test_freeze that is broken - # without bundled expat - # TODO: get a proper skip for it upstream - local -x LOGNAME=buildbot - - local test_opts=( - --verbose3 - -u-network - -j "$(makeopts_jobs)" - "${COMMON_TEST_SKIPS[@]}" - ) - - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - - nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ - CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty - local ret=${?} - - [[ ${ret} -eq 0 ]] || die "emake test failed" -} - -src_install() { - local libdir=${ED}/usr/lib/python${PYVER} - - # -j1 hack for now for bug #843458 - emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall - - # Fix collisions between different slots of Python. - rm "${ED}/usr/$(get_libdir)/libpython3.so" || die - - # Cheap hack to get version with ABIFLAGS - local abiver=$(cd "${ED}/usr/include"; echo python*) - if [[ ${abiver} != python${PYVER} ]]; then - # Replace python3.X with a symlink to python3.Xm - rm "${ED}/usr/bin/python${PYVER}" || die - dosym "${abiver}" "/usr/bin/python${PYVER}" - # Create python3.X-config symlink - dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" - # Create python-3.5m.pc symlink - dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" - fi - - # python seems to get rebuilt in src_install (bug 569908) - # Work around it for now. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E "${ED}/usr/bin/${abiver}" - else - pax-mark m "${ED}/usr/bin/${abiver}" - fi - - rm -r "${libdir}"/ensurepip/_bundled || die - if ! use sqlite; then - rm -r "${libdir}/"sqlite3 || die - fi - if ! use tk; then - rm -r "${ED}/usr/bin/idle${PYVER}" || die - rm -r "${libdir}/"{idlelib,tkinter} || die - fi - - ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die - - dodoc Misc/{ACKS,HISTORY,NEWS} - - if use examples; then - docinto examples - find Tools -name __pycache__ -exec rm -fr {} + || die - dodoc -r Tools - fi - insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 - local libname=$( - printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | - emake --no-print-directory -s -f - 2>/dev/null - ) - newins Tools/gdb/libpython.py "${libname}"-gdb.py - - newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} - newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} - sed \ - -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ - -e "s:@PYDOC@:pydoc${PYVER}:" \ - -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ - "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_alpha6.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_alpha6.ebuild deleted file mode 100644 index f30b70c0c52..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_alpha6.ebuild +++ /dev/null @@ -1,603 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -LLVM_COMPAT=( 19 ) -LLVM_OPTIONAL=1 -VERIFY_SIG_METHOD=sigstore -WANT_LIBTOOL="none" - -inherit autotools check-reqs flag-o-matic linux-info llvm-r1 -inherit multiprocessing pax-utils toolchain-funcs verify-sig - -MY_PV=${PV/_alpha/a} -MY_P="Python-${MY_PV%_p*}" -PYVER=$(ver_cut 1-2) -PATCHSET="python-gentoo-patches-${MY_PV}" - -DESCRIPTION="An interpreted, interactive, object-oriented programming language" -HOMEPAGE=" - https://www.python.org/ - https://github.com/python/cpython/ -" -SRC_URI=" - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz - verify-sig? ( - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore - ) -" -S="${WORKDIR}/${MY_P}" - -LICENSE="PSF-2" -SLOT="${PYVER}" -IUSE=" - bluetooth debug +ensurepip examples gdbm jit libedit +ncurses pgo - +readline +sqlite +ssl tail-call-interp test tk valgrind -" -REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )" -RESTRICT="!test? ( test )" - -# Do not add a dependency on dev-lang/python to this ebuild. -# If you need to apply a patch which requires python for bootstrapping, please -# run the bootstrap code on your dev box and include the results in the -# patchset. See bug 447752. - -RDEPEND=" - app-arch/bzip2:= - app-arch/xz-utils:= - app-arch/zstd:= - app-misc/mime-types - >=dev-libs/expat-2.1:= - dev-libs/libffi:= - dev-libs/mpdecimal:= - dev-python/gentoo-common - >=virtual/zlib-1.1.3:= - virtual/libintl - gdbm? ( sys-libs/gdbm:=[berkdb] ) - kernel_linux? ( sys-apps/util-linux:= ) - ncurses? ( >=sys-libs/ncurses-5.2:= ) - readline? ( - !libedit? ( >=sys-libs/readline-4.1:= ) - libedit? ( dev-libs/libedit:= ) - ) - sqlite? ( >=dev-db/sqlite-3.3.8:3= ) - ssl? ( >=dev-libs/openssl-1.1.1:= ) - tk? ( - >=dev-lang/tcl-8.0:= - >=dev-lang/tk-8.0:= - dev-tcltk/blt:= - dev-tcltk/tix - ) -" -# bluetooth requires headers from bluez -DEPEND=" - ${RDEPEND} - bluetooth? ( net-wireless/bluez ) - test? ( - dev-python/ensurepip-pip - dev-python/ensurepip-setuptools - dev-python/ensurepip-wheel - ) - valgrind? ( dev-debug/valgrind ) -" -# autoconf-archive needed to eautoreconf -BDEPEND=" - dev-build/autoconf-archive - app-alternatives/awk - virtual/pkgconfig - jit? ( - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT} - llvm-core/llvm:${LLVM_SLOT} - ') - ) - tail-call-interp? ( - || ( - >=sys-devel/gcc-16:* - >=llvm-core/clang-19:* - ) - ) -" -PDEPEND=" - ensurepip? ( dev-python/ensurepip-pip ) -" - -# https://www.python.org/downloads/metadata/sigstore/ -VERIFY_SIG_CERT_IDENTITY=hugo@python.org -VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth - -# large file tests involve a 2.5G file being copied (duplicated) -CHECKREQS_DISK_BUILD=5500M - -QA_PKGCONFIG_VERSION=${PYVER%t} -# false positives -- functions specific to *BSD -QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) - -declare -rgA PYTHON_KERNEL_CHECKS=( - ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 - ["DNOTIFY"]="test_fcntl" # bug 938662 -) - -pkg_pretend() { - if use pgo || use test; then - check-reqs_pkg_pretend - fi - - if use jit; then - ewarn "USE=jit is considered experimental upstream. Using it" - ewarn "could lead to unexpected breakage, including race conditions" - ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" - ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead," - ewarn "please consider reporting JIT problems upstream." - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]]; then - use jit && llvm-r1_pkg_setup - if use test || use pgo; then - check-reqs_pkg_setup - - local CONFIG_CHECK - for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do - CONFIG_CHECK+="~${f} " - done - linux-info_pkg_setup - fi - if use tail-call-interp; then - tc-check-min_ver gcc 16 - tc-check-min_ver clang 19 - fi - fi -} - -src_unpack() { - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} - fi - default -} - -src_prepare() { - # Ensure that internal copies of expat and libffi are not used. - # TODO: Makefile has annoying deps on expat headers - #rm -r Modules/expat || die - - local PATCHES=( - "${WORKDIR}/${PATCHSET}" - ) - - default - - # force the correct number of jobs - # https://bugs.gentoo.org/737660 - sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die - - # breaks tests when using --with-wheel-pkg-dir - rm -r Lib/test/wheeldata || die - - eautoreconf -} - -build_cbuild_python() { - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - # - # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) - local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" - local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - - # Test terminates abruptly which corrupts written profile data - # bug #964023 - -x test_pyrepl - ) - - if has_version "app-arch/rpm" ; then - # Avoid sandbox failure (attempts to write to /var/lib/rpm) - profile_task_flags+=( - -x test_distutils - ) - fi - # PGO sometimes fails randomly - local -x PROFILE_TASK="${profile_task_flags[*]} || true" - fi - - local myeconfargs=( - # glibc-2.30 removes it; since we can't cleanly force-rebuild - # Python on glibc upgrade, remove it proactively to give - # a chance for users rebuilding python before glibc - ac_cv_header_stropts_h=no - - --enable-shared - --without-static-libpython - --enable-ipv6 - --infodir='${prefix}/share/info' - --mandir='${prefix}/share/man' - --with-dbmliborder="${dbmliborder}" - --with-libc= - --enable-loadable-sqlite-extensions - --without-ensurepip - --without-lto - --with-system-expat - --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --enable-gil - - $(use_with debug assertions) - $(use_enable jit experimental-jit) - $(use_enable pgo optimizations) - $(use_with readline readline "$(usex libedit editline readline)") - $(use_with tail-call-interp) - $(use_with valgrind) - ) - - if tc-is-lto; then - myeconfargs+=( - --with-lto - ) - fi - - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !gdbm '_gdbm _dbm') - $(usev !sqlite '_sqlite3') - $(usev !ssl '_hashlib _ssl') - $(usev !ncurses '_curses _curses_panel') - $(usev !readline 'readline') - $(usev !tk '_tkinter') - EOF - - # disable implicit optimization/debugging flags - local -x OPT= - - if tc-is-cross-compiler ; then - build_cbuild_python - myeconfargs+=( - # Point the imminent CHOST build to the Python we just - # built for CBUILD. - --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python - ) - fi - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - local -x CFLAGS_NODIST=${CFLAGS} - local -x LDFLAGS_NODIST=${LDFLAGS} - local -x CFLAGS= LDFLAGS= - - # Fix implicit declarations on cross and prefix builds. Bug #674070. - if use ncurses; then - append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw - fi - - econf "${myeconfargs[@]}" - - if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then - eerror "configure has detected that the sem_open function is broken." - eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." - die "Broken sem_open function (bug 496328)" - fi - - # install epython.py as part of stdlib - echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die -} - -src_compile() { - # Ensure sed works as expected - # https://bugs.gentoo.org/594768 - local -x LC_ALL=C - export PYTHONSTRICTEXTENSIONBUILD=1 - - # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't - # end up writing bytecode & violating sandbox. - # bug #831897 - local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} - - # Gentoo hack to disable accessing system site-packages - export GENTOO_CPYTHON_BUILD=1 - - if use pgo ; then - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - fi - - # also need to clear the flags explicitly here or they end up - # in _sysconfigdata* - emake CPPFLAGS= CFLAGS= LDFLAGS= - - # Restore saved value from above. - local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} - - # Work around bug 329499. See also bug 413751 and 457194. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E python - else - pax-mark m python - fi -} - -src_test() { - # Tests will not work when cross compiling. - if tc-is-cross-compiler; then - elog "Disabling tests due to crosscompiling." - return - fi - - # this just happens to skip test_support.test_freeze that is broken - # without bundled expat - # TODO: get a proper skip for it upstream - local -x LOGNAME=buildbot - - local test_opts=( - --verbose3 - -u-network - -j "$(makeopts_jobs)" - "${COMMON_TEST_SKIPS[@]}" - ) - - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - - nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ - CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty - local ret=${?} - - [[ ${ret} -eq 0 ]] || die "emake test failed" -} - -src_install() { - local libdir=${ED}/usr/lib/python${PYVER} - - # -j1 hack for now for bug #843458 - emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall - - # Fix collisions between different slots of Python. - rm "${ED}/usr/$(get_libdir)/libpython3.so" || die - - # Cheap hack to get version with ABIFLAGS - local abiver=$(cd "${ED}/usr/include"; echo python*) - if [[ ${abiver} != python${PYVER} ]]; then - # Replace python3.X with a symlink to python3.Xm - rm "${ED}/usr/bin/python${PYVER}" || die - dosym "${abiver}" "/usr/bin/python${PYVER}" - # Create python3.X-config symlink - dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" - # Create python-3.5m.pc symlink - dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" - fi - - # python seems to get rebuilt in src_install (bug 569908) - # Work around it for now. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E "${ED}/usr/bin/${abiver}" - else - pax-mark m "${ED}/usr/bin/${abiver}" - fi - - rm -r "${libdir}"/ensurepip/_bundled || die - if ! use sqlite; then - rm -r "${libdir}/"sqlite3 || die - fi - if ! use tk; then - rm -r "${ED}/usr/bin/idle${PYVER}" || die - rm -r "${libdir}/"{idlelib,tkinter} || die - fi - - ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die - - dodoc Misc/{ACKS,HISTORY,NEWS} - - if use examples; then - docinto examples - find Tools -name __pycache__ -exec rm -fr {} + || die - dodoc -r Tools - fi - insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 - local libname=$( - printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | - emake --no-print-directory -s -f - 2>/dev/null - ) - newins Tools/gdb/libpython.py "${libname}"-gdb.py - - newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} - newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} - sed \ - -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ - -e "s:@PYDOC@:pydoc${PYVER}:" \ - -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ - "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_alpha7.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_alpha7.ebuild deleted file mode 100644 index f30b70c0c52..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_alpha7.ebuild +++ /dev/null @@ -1,603 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -LLVM_COMPAT=( 19 ) -LLVM_OPTIONAL=1 -VERIFY_SIG_METHOD=sigstore -WANT_LIBTOOL="none" - -inherit autotools check-reqs flag-o-matic linux-info llvm-r1 -inherit multiprocessing pax-utils toolchain-funcs verify-sig - -MY_PV=${PV/_alpha/a} -MY_P="Python-${MY_PV%_p*}" -PYVER=$(ver_cut 1-2) -PATCHSET="python-gentoo-patches-${MY_PV}" - -DESCRIPTION="An interpreted, interactive, object-oriented programming language" -HOMEPAGE=" - https://www.python.org/ - https://github.com/python/cpython/ -" -SRC_URI=" - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz - verify-sig? ( - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore - ) -" -S="${WORKDIR}/${MY_P}" - -LICENSE="PSF-2" -SLOT="${PYVER}" -IUSE=" - bluetooth debug +ensurepip examples gdbm jit libedit +ncurses pgo - +readline +sqlite +ssl tail-call-interp test tk valgrind -" -REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )" -RESTRICT="!test? ( test )" - -# Do not add a dependency on dev-lang/python to this ebuild. -# If you need to apply a patch which requires python for bootstrapping, please -# run the bootstrap code on your dev box and include the results in the -# patchset. See bug 447752. - -RDEPEND=" - app-arch/bzip2:= - app-arch/xz-utils:= - app-arch/zstd:= - app-misc/mime-types - >=dev-libs/expat-2.1:= - dev-libs/libffi:= - dev-libs/mpdecimal:= - dev-python/gentoo-common - >=virtual/zlib-1.1.3:= - virtual/libintl - gdbm? ( sys-libs/gdbm:=[berkdb] ) - kernel_linux? ( sys-apps/util-linux:= ) - ncurses? ( >=sys-libs/ncurses-5.2:= ) - readline? ( - !libedit? ( >=sys-libs/readline-4.1:= ) - libedit? ( dev-libs/libedit:= ) - ) - sqlite? ( >=dev-db/sqlite-3.3.8:3= ) - ssl? ( >=dev-libs/openssl-1.1.1:= ) - tk? ( - >=dev-lang/tcl-8.0:= - >=dev-lang/tk-8.0:= - dev-tcltk/blt:= - dev-tcltk/tix - ) -" -# bluetooth requires headers from bluez -DEPEND=" - ${RDEPEND} - bluetooth? ( net-wireless/bluez ) - test? ( - dev-python/ensurepip-pip - dev-python/ensurepip-setuptools - dev-python/ensurepip-wheel - ) - valgrind? ( dev-debug/valgrind ) -" -# autoconf-archive needed to eautoreconf -BDEPEND=" - dev-build/autoconf-archive - app-alternatives/awk - virtual/pkgconfig - jit? ( - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT} - llvm-core/llvm:${LLVM_SLOT} - ') - ) - tail-call-interp? ( - || ( - >=sys-devel/gcc-16:* - >=llvm-core/clang-19:* - ) - ) -" -PDEPEND=" - ensurepip? ( dev-python/ensurepip-pip ) -" - -# https://www.python.org/downloads/metadata/sigstore/ -VERIFY_SIG_CERT_IDENTITY=hugo@python.org -VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth - -# large file tests involve a 2.5G file being copied (duplicated) -CHECKREQS_DISK_BUILD=5500M - -QA_PKGCONFIG_VERSION=${PYVER%t} -# false positives -- functions specific to *BSD -QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) - -declare -rgA PYTHON_KERNEL_CHECKS=( - ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 - ["DNOTIFY"]="test_fcntl" # bug 938662 -) - -pkg_pretend() { - if use pgo || use test; then - check-reqs_pkg_pretend - fi - - if use jit; then - ewarn "USE=jit is considered experimental upstream. Using it" - ewarn "could lead to unexpected breakage, including race conditions" - ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" - ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead," - ewarn "please consider reporting JIT problems upstream." - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]]; then - use jit && llvm-r1_pkg_setup - if use test || use pgo; then - check-reqs_pkg_setup - - local CONFIG_CHECK - for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do - CONFIG_CHECK+="~${f} " - done - linux-info_pkg_setup - fi - if use tail-call-interp; then - tc-check-min_ver gcc 16 - tc-check-min_ver clang 19 - fi - fi -} - -src_unpack() { - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} - fi - default -} - -src_prepare() { - # Ensure that internal copies of expat and libffi are not used. - # TODO: Makefile has annoying deps on expat headers - #rm -r Modules/expat || die - - local PATCHES=( - "${WORKDIR}/${PATCHSET}" - ) - - default - - # force the correct number of jobs - # https://bugs.gentoo.org/737660 - sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die - - # breaks tests when using --with-wheel-pkg-dir - rm -r Lib/test/wheeldata || die - - eautoreconf -} - -build_cbuild_python() { - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - # - # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) - local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" - local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" - local -x CFLAGS= LDFLAGS= - local -x BUILD_CFLAGS="${CFLAGS_NODIST}" - local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" - - # We need to build our own Python on CBUILD first, and feed it in. - # bug #847910 - local myeconfargs_cbuild=( - "${myeconfargs[@]}" - - --prefix="${BROOT}"/usr - --libdir="${cbuild_libdir:2}" - - # Avoid needing to load the right libpython.so. - --disable-shared - - # As minimal as possible for the mini CBUILD Python - # we build just for cross to satisfy --with-build-python. - --without-lto - --without-readline - --disable-optimizations - ) - - mkdir "${WORKDIR}"/${P}-${CBUILD} || die - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die - - # Avoid as many dependencies as possible for the cross build. - mkdir Modules || die - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - _dbm _gdbm - _sqlite3 - _hashlib _ssl - _curses _curses_panel - readline - _tkinter - pyexpat - zlib - # We disabled these for CBUILD because Python's setup.py can't handle locating - # libdir correctly for cross. This should be rechecked for the pure Makefile approach, - # and uncommented if needed. - #_ctypes - EOF - - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" - - # Unfortunately, we do have to build this immediately, and - # not in src_compile, because CHOST configure for Python - # will check the existence of the --with-build-python value - # immediately. - emake - popd &> /dev/null || die -} - -src_configure() { - # disable automagic bluetooth headers detection - if ! use bluetooth; then - local -x ac_cv_header_bluetooth_bluetooth_h=no - fi - - filter-flags -malign-double - - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - # PKG_CONFIG needed for cross. - tc-export CXX PKG_CONFIG - - local dbmliborder= - if use gdbm; then - dbmliborder+="${dbmliborder:+:}gdbm" - fi - - # Set baseline test skip flags. - COMMON_TEST_SKIPS=( - # running gdb inside an ebuild as non-root, within sandbox, - # and possibly within a container is unreliable - -x test_gdb - # this is actually test_gdb.test_pretty_print - -x test_pretty_print - # https://bugs.gentoo.org/933840 - -x test_perf_profiler - ) - - # Arch-specific skips. See #931888 for a collection of these. - case ${CHOST} in - alpha*) - COMMON_TEST_SKIPS+=( - -x test_builtin - -x test_capi - -x test_cmath - -x test_float - # timeout - -x test_free_threading - -x test_math - -x test_numeric_tower - -x test_random - -x test_statistics - # bug 653850 - -x test_resource - -x test_strtod - ) - ;; - mips*) - COMMON_TEST_SKIPS+=( - -x test_ctypes - -x test_external_inspection - -x test_statistics - ) - ;; - riscv*) - COMMON_TEST_SKIPS+=( - -x test_urllib2 - ) - ;; - sparc*) - COMMON_TEST_SKIPS+=( - # bug 788022 - -x test_multiprocessing_fork - -x test_multiprocessing_forkserver - -x test_multiprocessing_spawn - - -x test_ctypes - # bug 931908 - -x test_exceptions - ) - ;; - esac - - # Kernel-config specific skips - for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do - if ! linux_config_exists || ! linux_chkconfig_present "${option}" - then - COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) - fi - done - - # musl-specific skips - use elibc_musl && COMMON_TEST_SKIPS+=( - # various musl locale deficiencies - -x test__locale - -x test_c_locale_coercion - -x test_locale - -x test_re - - # known issues with find_library on musl - # https://bugs.python.org/issue21622 - -x test_ctypes - - # fpathconf, ttyname errno values - -x test_os - ) - - if use pgo; then - local profile_task_flags=( - -m test - "-j$(makeopts_jobs)" - --pgo-extended - --verbose3 - -u-network - - # We use a timeout because of how often we've had hang issues - # here. It also matches the default upstream PROFILE_TASK. - --timeout 1200 - - "${COMMON_TEST_SKIPS[@]}" - - -x test_dtrace - - # All of these seem to occasionally hang for PGO inconsistently - # They'll even hang here but be fine in src_test sometimes. - # bug #828535 (and related: bug #788022) - -x test_asyncio - -x test_httpservers - -x test_logging - -x test_multiprocessing_fork - -x test_socket - -x test_xmlrpc - - # Hangs (actually runs indefinitely executing itself w/ many cpython builds) - # bug #900429 - -x test_tools - - # Test terminates abruptly which corrupts written profile data - # bug #964023 - -x test_pyrepl - ) - - if has_version "app-arch/rpm" ; then - # Avoid sandbox failure (attempts to write to /var/lib/rpm) - profile_task_flags+=( - -x test_distutils - ) - fi - # PGO sometimes fails randomly - local -x PROFILE_TASK="${profile_task_flags[*]} || true" - fi - - local myeconfargs=( - # glibc-2.30 removes it; since we can't cleanly force-rebuild - # Python on glibc upgrade, remove it proactively to give - # a chance for users rebuilding python before glibc - ac_cv_header_stropts_h=no - - --enable-shared - --without-static-libpython - --enable-ipv6 - --infodir='${prefix}/share/info' - --mandir='${prefix}/share/man' - --with-dbmliborder="${dbmliborder}" - --with-libc= - --enable-loadable-sqlite-extensions - --without-ensurepip - --without-lto - --with-system-expat - --with-system-libmpdec - --with-platlibdir=lib - --with-pkg-config=yes - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip - --enable-gil - - $(use_with debug assertions) - $(use_enable jit experimental-jit) - $(use_enable pgo optimizations) - $(use_with readline readline "$(usex libedit editline readline)") - $(use_with tail-call-interp) - $(use_with valgrind) - ) - - if tc-is-lto; then - myeconfargs+=( - --with-lto - ) - fi - - # Force-disable modules we don't want built. - # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. - cat > Modules/Setup.local <<-EOF || die - *disabled* - nis - $(usev !gdbm '_gdbm _dbm') - $(usev !sqlite '_sqlite3') - $(usev !ssl '_hashlib _ssl') - $(usev !ncurses '_curses _curses_panel') - $(usev !readline 'readline') - $(usev !tk '_tkinter') - EOF - - # disable implicit optimization/debugging flags - local -x OPT= - - if tc-is-cross-compiler ; then - build_cbuild_python - myeconfargs+=( - # Point the imminent CHOST build to the Python we just - # built for CBUILD. - --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python - ) - fi - - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get - # propagated to sysconfig for built extensions - local -x CFLAGS_NODIST=${CFLAGS} - local -x LDFLAGS_NODIST=${LDFLAGS} - local -x CFLAGS= LDFLAGS= - - # Fix implicit declarations on cross and prefix builds. Bug #674070. - if use ncurses; then - append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw - fi - - econf "${myeconfargs[@]}" - - if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then - eerror "configure has detected that the sem_open function is broken." - eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." - die "Broken sem_open function (bug 496328)" - fi - - # install epython.py as part of stdlib - echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die -} - -src_compile() { - # Ensure sed works as expected - # https://bugs.gentoo.org/594768 - local -x LC_ALL=C - export PYTHONSTRICTEXTENSIONBUILD=1 - - # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't - # end up writing bytecode & violating sandbox. - # bug #831897 - local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} - - # Gentoo hack to disable accessing system site-packages - export GENTOO_CPYTHON_BUILD=1 - - if use pgo ; then - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - fi - - # also need to clear the flags explicitly here or they end up - # in _sysconfigdata* - emake CPPFLAGS= CFLAGS= LDFLAGS= - - # Restore saved value from above. - local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} - - # Work around bug 329499. See also bug 413751 and 457194. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E python - else - pax-mark m python - fi -} - -src_test() { - # Tests will not work when cross compiling. - if tc-is-cross-compiler; then - elog "Disabling tests due to crosscompiling." - return - fi - - # this just happens to skip test_support.test_freeze that is broken - # without bundled expat - # TODO: get a proper skip for it upstream - local -x LOGNAME=buildbot - - local test_opts=( - --verbose3 - -u-network - -j "$(makeopts_jobs)" - "${COMMON_TEST_SKIPS[@]}" - ) - - # bug 660358 - local -x COLUMNS=80 - local -x PYTHONDONTWRITEBYTECODE= - local -x TMPDIR=/var/tmp - - nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ - CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty - local ret=${?} - - [[ ${ret} -eq 0 ]] || die "emake test failed" -} - -src_install() { - local libdir=${ED}/usr/lib/python${PYVER} - - # -j1 hack for now for bug #843458 - emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall - - # Fix collisions between different slots of Python. - rm "${ED}/usr/$(get_libdir)/libpython3.so" || die - - # Cheap hack to get version with ABIFLAGS - local abiver=$(cd "${ED}/usr/include"; echo python*) - if [[ ${abiver} != python${PYVER} ]]; then - # Replace python3.X with a symlink to python3.Xm - rm "${ED}/usr/bin/python${PYVER}" || die - dosym "${abiver}" "/usr/bin/python${PYVER}" - # Create python3.X-config symlink - dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" - # Create python-3.5m.pc symlink - dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" - fi - - # python seems to get rebuilt in src_install (bug 569908) - # Work around it for now. - if has_version dev-libs/libffi[pax-kernel]; then - pax-mark E "${ED}/usr/bin/${abiver}" - else - pax-mark m "${ED}/usr/bin/${abiver}" - fi - - rm -r "${libdir}"/ensurepip/_bundled || die - if ! use sqlite; then - rm -r "${libdir}/"sqlite3 || die - fi - if ! use tk; then - rm -r "${ED}/usr/bin/idle${PYVER}" || die - rm -r "${libdir}/"{idlelib,tkinter} || die - fi - - ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die - - dodoc Misc/{ACKS,HISTORY,NEWS} - - if use examples; then - docinto examples - find Tools -name __pycache__ -exec rm -fr {} + || die - dodoc -r Tools - fi - insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 - local libname=$( - printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | - emake --no-print-directory -s -f - 2>/dev/null - ) - newins Tools/gdb/libpython.py "${libname}"-gdb.py - - newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} - newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} - sed \ - -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ - -e "s:@PYDOC@:pydoc${PYVER}:" \ - -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ - "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_beta1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_beta1.ebuild new file mode 100644 index 00000000000..d256d4d71d0 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_beta1.ebuild @@ -0,0 +1,613 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +LLVM_COMPAT=( 19 ) +LLVM_OPTIONAL=1 +VERIFY_SIG_METHOD=sigstore +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic linux-info llvm-r1 +inherit multiprocessing pax-utils toolchain-funcs verify-sig + +MY_PV=${PV/_beta/b} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +IUSE=" + bluetooth 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 + >=virtual/zlib-1.1.3:= + virtual/libintl + gdbm? ( sys-libs/gdbm:=[berkdb] ) + kernel_linux? ( sys-apps/util-linux:= ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( + !libedit? ( >=sys-libs/readline-4.1:= ) + libedit? ( dev-libs/libedit:= ) + ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) +" +# bluetooth requires headers from bluez +DEPEND=" + ${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( + dev-python/ensurepip-pip + dev-python/ensurepip-setuptools + dev-python/ensurepip-wheel + ) + valgrind? ( dev-debug/valgrind ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + dev-build/autoconf-archive + app-alternatives/awk + virtual/pkgconfig + jit? ( + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + ') + ) + tail-call-interp? ( + || ( + >=sys-devel/gcc-16:* + >=llvm-core/clang-19:* + ) + ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi +PDEPEND=" + ensurepip? ( dev-python/ensurepip-pip ) +" + +# https://www.python.org/downloads/metadata/sigstore/ +VERIFY_SIG_CERT_IDENTITY=hugo@python.org +VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER%t} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +declare -rgA PYTHON_KERNEL_CHECKS=( + ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 + ["DNOTIFY"]="test_fcntl" # bug 938662 +) + +pkg_pretend() { + if use pgo || use test; then + check-reqs_pkg_pretend + fi + + if use jit; then + ewarn "USE=jit is considered experimental upstream. Using it" + ewarn "could lead to unexpected breakage, including race conditions" + ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" + ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead," + ewarn "please consider reporting JIT problems upstream." + fi +} + +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 16 + tc-check-min_ver clang 19 + fi + fi +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + # TODO: Makefile has annoying deps on expat headers + #rm -r Modules/expat || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die + + # breaks tests when using --with-wheel-pkg-dir + rm -r Lib/test/wheeldata || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + + # Avoid as many dependencies as possible for the cross build. + mkdir Modules || die + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + _dbm _gdbm + _sqlite3 + _hashlib _ssl + _curses _curses_panel + readline + _tkinter + pyexpat + zlib + # We disabled these for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. This should be rechecked for the pure Makefile approach, + # and uncommented if needed. + #_ctypes + EOF + + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # running gdb inside an ebuild as non-root, within sandbox, + # and possibly within a container is unreliable + -x test_gdb + # this is actually test_gdb.test_pretty_print + -x test_pretty_print + # https://bugs.gentoo.org/933840 + -x test_perf_profiler + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # Kernel-config specific skips + for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do + if ! linux_config_exists || ! linux_chkconfig_present "${option}" + then + COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) + fi + done + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + --verbose3 + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + + # Test terminates abruptly which corrupts written profile data + # bug #964023 + -x test_pyrepl + ) + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + # PGO sometimes fails randomly + local -x PROFILE_TASK="${profile_task_flags[*]} || true" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-libmpdec + --with-platlibdir=lib + --with-pkg-config=yes + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + --enable-gil + + $(use_with debug assertions) + $(use_enable jit experimental-jit) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with tail-call-interp) + $(use_with valgrind) + ) + + if tc-is-lto; then + myeconfargs+=( + --with-lto + ) + fi + + # Force-disable modules we don't want built. + # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + $(usev !gdbm '_gdbm _dbm') + $(usev !sqlite '_sqlite3') + $(usev !ssl '_hashlib _ssl') + $(usev !ncurses '_curses _curses_panel') + $(usev !readline 'readline') + $(usev !tk '_tkinter') + EOF + + # disable implicit optimization/debugging flags + local -x OPT= + + if tc-is-cross-compiler ; then + build_cbuild_python + myeconfargs+=( + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python + ) + fi + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + if use ncurses; then + append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + fi + + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi + + # install epython.py as part of stdlib + echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + export PYTHONSTRICTEXTENSIONBUILD=1 + + # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't + # end up writing bytecode & violating sandbox. + # bug #831897 + local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} + + # Gentoo hack to disable accessing system site-packages + export GENTOO_CPYTHON_BUILD=1 + + if use pgo ; then + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + fi + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Restore saved value from above. + local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # this just happens to skip test_support.test_freeze that is broken + # without bundled expat + # TODO: get a proper skip for it upstream + local -x LOGNAME=buildbot + + local test_opts=( + --verbose3 + -u-network + -j "$(makeopts_jobs)" + "${COMMON_TEST_SKIPS[@]}" + ) + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + + nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local ret=${?} + + [[ ${ret} -eq 0 ]] || die "emake test failed" +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + local build_dir=$(/dev/null + ) + newins Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" +} 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 97058a6f50c..6b0c32b8ea8 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 @@ -11,7 +11,7 @@ inherit autotools check-reqs flag-o-matic git-r3 linux-info llvm-r1 inherit multiprocessing pax-utils toolchain-funcs PYVER=$(ver_cut 1-2) -PATCHSET="python-gentoo-patches-3.14.0b1" +PATCHSET="python-gentoo-patches-3.15.0a8" DESCRIPTION="An interpreted, interactive, object-oriented programming language" HOMEPAGE=" @@ -19,7 +19,7 @@ HOMEPAGE=" https://github.com/python/cpython/ " SRC_URI=" - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz " EGIT_REPO_URI="https://github.com/python/cpython.git" @@ -93,6 +93,11 @@ BDEPEND=" ) ) " +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi PDEPEND=" ensurepip? ( dev-python/ensurepip-pip ) " @@ -528,10 +533,14 @@ src_test() { src_install() { local libdir=${ED}/usr/lib/python${PYVER} + local build_dir=$( "${WORKDIR}/channel-rust-nightly.toml" || + die "Failed to fetch nightly revision info" + rustc_src_url=$(grep 'xz_url.*rust-src' "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + + if use rust-src; then + einfo "Using nightly Rust-src from: ${rustc_src_url}" + # We need to fetch the rust-src tarball + einfo "Fetching nightly rust-src tarball ..." + curl --progress-bar -L "${rustc_src_url}" -o "${WORKDIR}/rust-src-${PV}.tar.xz" || + die "Failed to fetch nightly rust-src tarball." + # no verify-sig here, just unpack it + tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball" + fi + + local v + for v in $(multilib_get_enabled_abi_pairs); do + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" + rust_bin_url=$(grep "xz_url.*rust-nightly-${rust_target}" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + einfo "Using nightly Rust from ${rust_bin_url} for ${rust_target}" + + einfo "Fetching nightly Rust tarball for ${rust_target} ..." + curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball for ${rust_target}" + if use verify-sig; then + einfo "Fetching nightly signature for ${rust_target} ..." + curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature for ${rust_target}" + verify-sig_verify_detached "${WORKDIR}/rust-nightly-${rust_target}.tar.xz" \ + "${WORKDIR}/rust-nightly-${rust_target}.tar.xz.asc" + fi + + tar -xf "${WORKDIR}/rust-nightly-${rust_target}.tar.xz" || die "Failed to unpack nightly tarball for ${rust_target}" + done + else + # sadly rust-src tarball does not have corresponding .asc file + # so do partial verification + if use verify-sig; then + for f in ${A}; do + if [[ -f ${DISTDIR}/${f}.asc ]]; then + verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" + fi + done + fi + + default_src_unpack + fi + + # We only want to do this for the native ABI. Non-native ABIs are + # handled differently in multilib_src_install. + case ${PV} in + *9999*) + mv "${WORKDIR}/rust-nightly-$(rust_abi)" "${S}" || die + ;; + *beta*) + mv "${WORKDIR}/rust-beta-$(rust_abi)" "${S}" || die + ;; + *) + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die + ;; + esac +} + +patchelf_for_bin() { + local filetype=$(file -b ${1}) + if [[ ${filetype} == *ELF*interpreter* ]]; then + einfo "${1}'s interpreter changed" + patchelf ${1} --set-interpreter ${2} || die + elif [[ ${filetype} == *script* ]]; then + hprefixify ${1} + fi +} + +rust_native_abi_install() { + pushd "${S}" >/dev/null || die + local std="$(grep 'std' ./components || die "std not found in components")" + local components=( "rustc" "cargo" "${std}" ) + use doc && components+=( "rust-docs" ) + use clippy && components+=( "clippy-preview" ) + use rustfmt && components+=( "rustfmt-preview" ) + if use rust-analyzer; then + local analysis="$(grep 'analysis' ./components || die "analysis not found in components")" + components+=( "rust-analyzer-preview" "${analysis}" ) + fi + # Rust component 'rust-src' is extracted from separate archive + if use rust-src; then + einfo "Combining rust and rust-src installers" + case ${PV} in + *9999*) + mv -v "${WORKDIR}/rust-src-nightly/rust-src" "${S}" || die + ;; + *beta*) + mv -v "${WORKDIR}/rust-src-beta/rust-src" "${S}" || die + ;; + *) + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + ;; + esac + echo rust-src >> ./components || die + components+=( "rust-src" ) + fi + edo ./install.sh \ + --components="$(IFS=,; echo "${components[*]}")" \ + --disable-verify \ + --prefix="${ED}/opt/rust-bin-${SLOT}" \ + --mandir="${ED}/opt/rust-bin-${SLOT}/man" \ + --disable-ldconfig + + docompress /opt/${P}/man/ + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/rust-bin-${SLOT}/bin" + find "${ED}/opt/rust-bin-${SLOT}/bin" -type f -print0 | \ + while IFS= read -r -d '' filename; do + patchelf_for_bin ${filename} ${interpreter} \; || die + done + eend $? + fi + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /opt/rust-bin-/bin/rustc- + local ver_i="${i}-bin-${SLOT}" + ln -v "${ED}/opt/rust-bin-${SLOT}/bin/${i}" "${ED}/opt/rust-bin-${SLOT}/bin/${ver_i}" || die + dosym -r "/opt/rust-bin-${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym -r "/opt/rust-bin-${SLOT}/lib" "/usr/lib/rust/lib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/man" "/usr/lib/rust/man-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/lib/rustlib" "/usr/lib/rustlib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/share/doc/rust" "/usr/share/doc/rust-bin-${SLOT}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${SLOT}" + $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") + _EOF_ + doenvd "${T}/50${P}" + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${PN}-${SLOT}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${PN}-${SLOT}" + fi + if use rust-analyzer; then + echo /usr/bin/rust-analyzer >> "${T}/provider-${PN}-${SLOT}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi; then + rust_native_abi_install + else + local rust_target version + case ${PV} in + *9999*) + version=nightly + ;; + *beta*) + version=beta + ;; + *) + version=${PV} + ;; + esac + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" + dodir "/opt/${P}/lib/rustlib" + cp -vr "${WORKDIR}/rust-${version}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ + "${ED}/opt/${P}/lib/rustlib" || die + fi + + # BUG: installs x86_64 binary on other arches + rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die +} + +pkg_postinst() { + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.95.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.95.0.ebuild new file mode 100644 index 00000000000..ed608e4a670 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.95.0.ebuild @@ -0,0 +1,337 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 22 ) +LLVM_OPTIONAL="yes" + +inherit edo llvm-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%/}/2026-04-16/rust-src-${PV}.tar.xz ) + " + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86" # "~mips ~sparc" +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 + # 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 ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64le-unknown-linux-musl.tar.xz ) + ) )" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable +IUSE="big-endian +clippy cpu_flags_x86_sse2 +doc prefix rust-analyzer rust-src +rustfmt" + +# net-misc/curl is needed for our own bootstrapped rustc, since cross-compiling bundled curl is not supported +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + dev-libs/openssl + net-misc/curl + sys-apps/lsb-release + || ( + llvm-runtimes/libgcc + sys-devel/gcc:* + ) + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" +[[ ${PV} == *9999* ]] && BDEPEND+=" net-misc/curl" + +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" + +# stripping rust may break it (at least on x86_64) +# https://github.com/rust-lang/rust/issues/112286 +RESTRICT="strip" + +QA_PREBUILT=" + opt/rust-bin-${SLOT}/bin/.* + opt/rust-bin-${SLOT}/lib/.*.so* + opt/rust-bin-${SLOT}/libexec/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/bin/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/lib/.* +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="opt/${PN}-${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch + local rust_bin_url rustc_src_url + # Cut down on webrequests by fetching the nightly toml once + curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > "${WORKDIR}/channel-rust-nightly.toml" || + die "Failed to fetch nightly revision info" + rustc_src_url=$(grep 'xz_url.*rust-src' "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + + if use rust-src; then + einfo "Using nightly Rust-src from: ${rustc_src_url}" + # We need to fetch the rust-src tarball + einfo "Fetching nightly rust-src tarball ..." + curl --progress-bar -L "${rustc_src_url}" -o "${WORKDIR}/rust-src-${PV}.tar.xz" || + die "Failed to fetch nightly rust-src tarball." + # no verify-sig here, just unpack it + tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball" + fi + + local v + for v in $(multilib_get_enabled_abi_pairs); do + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" + rust_bin_url=$(grep "xz_url.*rust-nightly-${rust_target}" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + einfo "Using nightly Rust from ${rust_bin_url} for ${rust_target}" + + einfo "Fetching nightly Rust tarball for ${rust_target} ..." + curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball for ${rust_target}" + if use verify-sig; then + einfo "Fetching nightly signature for ${rust_target} ..." + curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature for ${rust_target}" + verify-sig_verify_detached "${WORKDIR}/rust-nightly-${rust_target}.tar.xz" \ + "${WORKDIR}/rust-nightly-${rust_target}.tar.xz.asc" + fi + + tar -xf "${WORKDIR}/rust-nightly-${rust_target}.tar.xz" || die "Failed to unpack nightly tarball for ${rust_target}" + done + else + # sadly rust-src tarball does not have corresponding .asc file + # so do partial verification + if use verify-sig; then + for f in ${A}; do + if [[ -f ${DISTDIR}/${f}.asc ]]; then + verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" + fi + done + fi + + default_src_unpack + fi + + # We only want to do this for the native ABI. Non-native ABIs are + # handled differently in multilib_src_install. + case ${PV} in + *9999*) + mv "${WORKDIR}/rust-nightly-$(rust_abi)" "${S}" || die + ;; + *beta*) + mv "${WORKDIR}/rust-beta-$(rust_abi)" "${S}" || die + ;; + *) + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die + ;; + esac +} + +patchelf_for_bin() { + local filetype=$(file -b ${1}) + if [[ ${filetype} == *ELF*interpreter* ]]; then + einfo "${1}'s interpreter changed" + patchelf ${1} --set-interpreter ${2} || die + elif [[ ${filetype} == *script* ]]; then + hprefixify ${1} + fi +} + +rust_native_abi_install() { + pushd "${S}" >/dev/null || die + local std="$(grep 'std' ./components || die "std not found in components")" + local components=( "rustc" "cargo" "${std}" ) + use doc && components+=( "rust-docs" ) + use clippy && components+=( "clippy-preview" ) + use rustfmt && components+=( "rustfmt-preview" ) + if use rust-analyzer; then + local analysis="$(grep 'analysis' ./components || die "analysis not found in components")" + components+=( "rust-analyzer-preview" "${analysis}" ) + fi + # Rust component 'rust-src' is extracted from separate archive + if use rust-src; then + einfo "Combining rust and rust-src installers" + case ${PV} in + *9999*) + mv -v "${WORKDIR}/rust-src-nightly/rust-src" "${S}" || die + ;; + *beta*) + mv -v "${WORKDIR}/rust-src-beta/rust-src" "${S}" || die + ;; + *) + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + ;; + esac + echo rust-src >> ./components || die + components+=( "rust-src" ) + fi + edo ./install.sh \ + --components="$(IFS=,; echo "${components[*]}")" \ + --disable-verify \ + --prefix="${ED}/opt/rust-bin-${SLOT}" \ + --mandir="${ED}/opt/rust-bin-${SLOT}/man" \ + --disable-ldconfig + + docompress /opt/${P}/man/ + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/rust-bin-${SLOT}/bin" + find "${ED}/opt/rust-bin-${SLOT}/bin" -type f -print0 | \ + while IFS= read -r -d '' filename; do + patchelf_for_bin ${filename} ${interpreter} \; || die + done + eend $? + fi + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /opt/rust-bin-/bin/rustc- + local ver_i="${i}-bin-${SLOT}" + ln -v "${ED}/opt/rust-bin-${SLOT}/bin/${i}" "${ED}/opt/rust-bin-${SLOT}/bin/${ver_i}" || die + dosym -r "/opt/rust-bin-${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym -r "/opt/rust-bin-${SLOT}/lib" "/usr/lib/rust/lib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/man" "/usr/lib/rust/man-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/lib/rustlib" "/usr/lib/rustlib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/share/doc/rust" "/usr/share/doc/rust-bin-${SLOT}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${SLOT}" + $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") + _EOF_ + doenvd "${T}/50${P}" + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${PN}-${SLOT}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${PN}-${SLOT}" + fi + if use rust-analyzer; then + echo /usr/bin/rust-analyzer >> "${T}/provider-${PN}-${SLOT}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi; then + rust_native_abi_install + else + local rust_target version + case ${PV} in + *9999*) + version=nightly + ;; + *beta*) + version=beta + ;; + *) + version=${PV} + ;; + esac + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" + dodir "/opt/${P}/lib/rustlib" + cp -vr "${WORKDIR}/rust-${version}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ + "${ED}/opt/${P}/lib/rustlib" || die + fi + + # BUG: installs x86_64 binary on other arches + rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die +} + +pkg_postinst() { + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.95.0_beta20260310.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.95.0_beta20260310.ebuild deleted file mode 100644 index 5c8e70a3150..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.95.0_beta20260310.ebuild +++ /dev/null @@ -1,337 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( 22 ) -LLVM_OPTIONAL="yes" - -inherit edo llvm-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%/}/2026-03-05/rust-src-${PV}.tar.xz ) - " - KEYWORDS=""~mips # ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"" -fi - -GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash - -DESCRIPTION="Systems programming language from Mozilla" -HOMEPAGE="https://www.rust-lang.org/" - -if false; 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 ) - !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64le-unknown-linux-musl.tar.xz ) - ) )" -fi - -LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" -SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable -IUSE="big-endian +clippy cpu_flags_x86_sse2 +doc prefix rust-analyzer rust-src +rustfmt" - -# net-misc/curl is needed for our own bootstrapped rustc, since cross-compiling bundled curl is not supported -RDEPEND=" - >=app-eselect/eselect-rust-20190311 - dev-libs/openssl - net-misc/curl - sys-apps/lsb-release - || ( - llvm-runtimes/libgcc - sys-devel/gcc:* - ) - !dev-lang/rust:stable - !dev-lang/rust-bin:stable -" -BDEPEND=" - prefix? ( dev-util/patchelf ) - verify-sig? ( sec-keys/openpgp-keys-rust ) -" -[[ ${PV} == *9999* ]] && BDEPEND+=" net-misc/curl" - -REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" - -# stripping rust may break it (at least on x86_64) -# https://github.com/rust-lang/rust/issues/112286 -RESTRICT="strip" - -QA_PREBUILT=" - opt/rust-bin-${SLOT}/bin/.* - opt/rust-bin-${SLOT}/lib/.*.so* - opt/rust-bin-${SLOT}/libexec/.* - opt/rust-bin-${SLOT}/lib/rustlib/.*/bin/.* - opt/rust-bin-${SLOT}/lib/rustlib/.*/lib/.* -" - -# An rmeta file is custom binary format that contains the metadata for the crate. -# rmeta files do not support linking, since they do not contain compiled object files. -# so we can safely silence the warning for this QA check. -QA_EXECSTACK="opt/${PN}-${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta" - -VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" - -src_unpack() { - if [[ ${PV} == *9999* ]]; then - # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch - local rust_bin_url rustc_src_url - # Cut down on webrequests by fetching the nightly toml once - curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > "${WORKDIR}/channel-rust-nightly.toml" || - die "Failed to fetch nightly revision info" - rustc_src_url=$(grep 'xz_url.*rust-src' "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) - - if use rust-src; then - einfo "Using nightly Rust-src from: ${rustc_src_url}" - # We need to fetch the rust-src tarball - einfo "Fetching nightly rust-src tarball ..." - curl --progress-bar -L "${rustc_src_url}" -o "${WORKDIR}/rust-src-${PV}.tar.xz" || - die "Failed to fetch nightly rust-src tarball." - # no verify-sig here, just unpack it - tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball" - fi - - local v - for v in $(multilib_get_enabled_abi_pairs); do - rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" - rust_bin_url=$(grep "xz_url.*rust-nightly-${rust_target}" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) - einfo "Using nightly Rust from ${rust_bin_url} for ${rust_target}" - - einfo "Fetching nightly Rust tarball for ${rust_target} ..." - curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball for ${rust_target}" - if use verify-sig; then - einfo "Fetching nightly signature for ${rust_target} ..." - curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature for ${rust_target}" - verify-sig_verify_detached "${WORKDIR}/rust-nightly-${rust_target}.tar.xz" \ - "${WORKDIR}/rust-nightly-${rust_target}.tar.xz.asc" - fi - - tar -xf "${WORKDIR}/rust-nightly-${rust_target}.tar.xz" || die "Failed to unpack nightly tarball for ${rust_target}" - done - else - # sadly rust-src tarball does not have corresponding .asc file - # so do partial verification - if use verify-sig; then - for f in ${A}; do - if [[ -f ${DISTDIR}/${f}.asc ]]; then - verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" - fi - done - fi - - default_src_unpack - fi - - # We only want to do this for the native ABI. Non-native ABIs are - # handled differently in multilib_src_install. - case ${PV} in - *9999*) - mv "${WORKDIR}/rust-nightly-$(rust_abi)" "${S}" || die - ;; - *beta*) - mv "${WORKDIR}/rust-beta-$(rust_abi)" "${S}" || die - ;; - *) - mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die - ;; - esac -} - -patchelf_for_bin() { - local filetype=$(file -b ${1}) - if [[ ${filetype} == *ELF*interpreter* ]]; then - einfo "${1}'s interpreter changed" - patchelf ${1} --set-interpreter ${2} || die - elif [[ ${filetype} == *script* ]]; then - hprefixify ${1} - fi -} - -rust_native_abi_install() { - pushd "${S}" >/dev/null || die - local std="$(grep 'std' ./components || die "std not found in components")" - local components=( "rustc" "cargo" "${std}" ) - use doc && components+=( "rust-docs" ) - use clippy && components+=( "clippy-preview" ) - use rustfmt && components+=( "rustfmt-preview" ) - if use rust-analyzer; then - local analysis="$(grep 'analysis' ./components || die "analysis not found in components")" - components+=( "rust-analyzer-preview" "${analysis}" ) - fi - # Rust component 'rust-src' is extracted from separate archive - if use rust-src; then - einfo "Combining rust and rust-src installers" - case ${PV} in - *9999*) - mv -v "${WORKDIR}/rust-src-nightly/rust-src" "${S}" || die - ;; - *beta*) - mv -v "${WORKDIR}/rust-src-beta/rust-src" "${S}" || die - ;; - *) - mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die - ;; - esac - echo rust-src >> ./components || die - components+=( "rust-src" ) - fi - edo ./install.sh \ - --components="$(IFS=,; echo "${components[*]}")" \ - --disable-verify \ - --prefix="${ED}/opt/rust-bin-${SLOT}" \ - --mandir="${ED}/opt/rust-bin-${SLOT}/man" \ - --disable-ldconfig - - docompress /opt/${P}/man/ - - if use prefix; then - local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) - ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/rust-bin-${SLOT}/bin" - find "${ED}/opt/rust-bin-${SLOT}/bin" -type f -print0 | \ - while IFS= read -r -d '' filename; do - patchelf_for_bin ${filename} ${interpreter} \; || die - done - eend $? - fi - - local symlinks=( - cargo - rustc - rustdoc - rust-gdb - rust-gdbgui - rust-lldb - ) - - use clippy && symlinks+=( clippy-driver cargo-clippy ) - use rustfmt && symlinks+=( rustfmt cargo-fmt ) - use rust-analyzer && symlinks+=( rust-analyzer ) - - einfo "installing eselect-rust symlinks and paths" - local i - for i in "${symlinks[@]}"; do - # we need realpath on /usr/bin/* symlink return version-appended binary path. - # so /usr/bin/rustc should point to /opt/rust-bin-/bin/rustc- - local ver_i="${i}-bin-${SLOT}" - ln -v "${ED}/opt/rust-bin-${SLOT}/bin/${i}" "${ED}/opt/rust-bin-${SLOT}/bin/${ver_i}" || die - dosym -r "/opt/rust-bin-${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" - done - - # symlinks to switch components to active rust in eselect - dosym -r "/opt/rust-bin-${SLOT}/lib" "/usr/lib/rust/lib-bin-${SLOT}" - dosym -r "/opt/rust-bin-${SLOT}/man" "/usr/lib/rust/man-bin-${SLOT}" - dosym -r "/opt/rust-bin-${SLOT}/lib/rustlib" "/usr/lib/rustlib-bin-${SLOT}" - dosym -r "/opt/rust-bin-${SLOT}/share/doc/rust" "/usr/share/doc/rust-bin-${SLOT}" - - # make all capital underscored variable - local CARGO_TRIPLET="$(rust_abi)" - CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" - CARGO_TRIPLET="${CARGO_TRIPLET^^}" - cat <<-_EOF_ > "${T}/50${P}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${SLOT}" - $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") - _EOF_ - doenvd "${T}/50${P}" - - # note: eselect-rust adds EROOT to all paths below - cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" - /usr/bin/cargo - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-gdbgui - /usr/bin/rust-lldb - /usr/lib/rustlib - /usr/lib/rust/lib - /usr/lib/rust/man - /usr/share/doc/rust - _EOF_ - - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${PN}-${SLOT}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${PN}-${SLOT}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${PN}-${SLOT}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${PN}-${SLOT}" - fi - if use rust-analyzer; then - echo /usr/bin/rust-analyzer >> "${T}/provider-${PN}-${SLOT}" - fi - - insinto /etc/env.d/rust - doins "${T}/provider-${PN}-${SLOT}" - popd >/dev/null || die -} - -multilib_src_install() { - if multilib_is_native_abi; then - rust_native_abi_install - else - local rust_target version - case ${PV} in - *9999*) - version=nightly - ;; - *beta*) - version=beta - ;; - *) - version=${PV} - ;; - esac - rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" - dodir "/opt/${P}/lib/rustlib" - cp -vr "${WORKDIR}/rust-${version}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ - "${ED}/opt/${P}/lib/rustlib" || die - fi - - # BUG: installs x86_64 binary on other arches - rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die -} - -pkg_postinst() { - eselect rust update - - if has_version dev-debug/gdb || has_version llvm-core/lldb; then - elog "Rust installs helper scripts for calling GDB and LLDB," - elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." - fi - - if has_version app-editors/emacs; then - optfeature "emacs support for rust" app-emacs/rust-mode - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - optfeature "vim support for rust" app-vim/rust-vim - fi -} - -pkg_postrm() { - eselect rust cleanup -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-9999.ebuild index 0886bc92734..34306db7d42 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-9999.ebuild @@ -22,9 +22,9 @@ elif [[ ${PV} == *beta* ]]; then else # curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src" SRC_URI="$(rust_all_arch_uris "rust-${PV}") - rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2026-01-22/rust-src-${PV}.tar.xz ) + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2026-03-26/rust-src-${PV}.tar.xz ) " - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86" # "~mips ~sparc" fi GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/Manifest b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/Manifest index 2ac40c59920..899f13e3962 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 @@ -28,5 +28,7 @@ DIST rustc-1.93.1-src.tar.xz 270888296 BLAKE2B fe5a9072161cf758221974f1f59b1a198 DIST rustc-1.93.1-src.tar.xz.asc 801 BLAKE2B 9e059c894770a402d5fee2a29ffdb42030d8d723a40d6312d983e53cd4fa64e97019a0ea6054dcb17ba2ead7f27db17eec2632950f13e4ef1410324afc4dcaf8 SHA512 8a290300e370b3833d2d365a451ed4708dbe1fa69fc57b73eef0b2b5d9dd4fb3d87344315aee3aea474d4071cfb535234e167f6576abf2e06ef3225c85e3c30d DIST rustc-1.94.0-src.tar.xz 273916448 BLAKE2B cab2e007c1a5401c653218ff0dd542d10c0d7a4fcc7bf2ee269cbbb9760bdd04c78276beddc2f6b1f4d47df96a11079087f109e248951c2a157be73ca2c3e8db SHA512 8397fa68055827363bff5a1dd228a05e4c4ca5a179d072ecc1b330a874c183529cb9346ec9c531fb3f066b7b6094fc8711d7c341a49755af7b50d63bf0ecff2b DIST rustc-1.94.0-src.tar.xz.asc 801 BLAKE2B d6ce44d51e59ecd22b953b391134ba470ec4ee1089031c34f7809199bd4eda3f54c5907a92f362cf5c0151d75b14360cd44d5a2556f785cbc1c3de5a0335573b SHA512 0a5b067e0e137489f49c7e445992f7a456e884d39158e4d9b5b59af41c62e5dbfe8abeaa02af33ca072b663dbc649004bc83ff18899bf1bfaed0eb90aac5f67f -DIST rustc-1.95.0_beta20260310-src.tar.xz 238950800 BLAKE2B b2d5cf01102ffa96f0b41ee7f4e20f003d3a006da99ef1d697a21e952edbbda8820309d97cb9b3adc0b867951a03422d458f9b32aecba40b2fad4a76c9e95a7f SHA512 9749191b022554cd537b9f4337d378f566cdde4c8501daf98de78669919933bd3ffd1dd43b2530ea05740f2686d46d02fef79e08a00909635d63b993ffadd0fb -DIST rustc-1.95.0_beta20260310-src.tar.xz.asc 801 BLAKE2B dc7c8613c749e9131c0caba62b30a8239cea8656058f03f0f8722017e733f703e8d76e7b6a37beee985968cdcc06bf2732bb4ce8471b735117c1b9b9d2069248 SHA512 ff83f761cc171e9789b460e9bb38c5db1ac063538a36dd550c02c4ea4027f50d67da073ee4021f248f799e72f72c3684926e4dc1246bb75b4cfb5dbef1548eb8 +DIST rustc-1.94.1-src.tar.xz 274077388 BLAKE2B 1c8c1b3f2d32898d7bfee5daa49b2d99c2dc7c1a35773c9bd66f73d45ea87f553c596561596594da2562c5bdfbd44936c53617ab114b7144e94a7d178e859af3 SHA512 4d20f5b2df042517b14aa4d1a7e4b149b7490ac6be9977d9273f5f81b70ca110b35c554693e1c8a8e4722bdb06532d3972a88c0cb7a8081d3d1bdb23e01e1546 +DIST rustc-1.94.1-src.tar.xz.asc 801 BLAKE2B 34559398b1fd0e7ff93ecf0d6a90c371048b70f834cd376a56f30b9890d9b786085a9149546a6c031e2e07bd4a349f1f3139f0e7f8bdae2a451dee47b5a13155 SHA512 6176d98acf9367e13afaef1c90ebca555f3ad08c44504f5cf23b7963959ee01ace1e99bf56aaf4f629bfb320eaca01b1940ba1819ce523d0cf336c97a69b21b7 +DIST rustc-1.95.0-src.tar.xz 238952004 BLAKE2B 0f255678231df79c9910cf5d9efbd762d1955ad78512194e3e06b3cec327f346bc98c526d2a8468ea53f57132c9765a134fe203267c1f6696e6719db820f342a SHA512 685912ffff97063e55c85b2d15d06ba734980cef4b6e104caae1ea433958b12a8d651b757eef7b9f5b06dad3c246d819a5ee5574a26e05007ecdd378f0f041d0 +DIST rustc-1.95.0-src.tar.xz.asc 801 BLAKE2B 90871b7ef3b69d0e4ef74892e16c0efab1c7ff796f646a3ef8653408d0155d528e418f71dcafca66c0689d38a3b3fba7128b1f32f4e69b7df36d86be8114bdbe SHA512 f70ed8071eff3470d4c288b83951e05f2ced52052a2f796113eb18db2c1f4bf81796f61434c322772dda879146d63569fd545d94d17e478a9588a333159c389c diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.93.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.93.1.ebuild index 1037d635a09..44d5013f245 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.93.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.93.1.ebuild @@ -32,7 +32,7 @@ else verify-sig? ( https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz.asc ) " S="${WORKDIR}/rustc-${MY_PV}-src" - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" + KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86" fi LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.95.0_beta20260310.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.94.1.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.95.0_beta20260310.ebuild rename to sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.94.1.ebuild diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.95.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.95.0.ebuild new file mode 100644 index 00000000000..1037d635a09 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.95.0.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc +inherit shell-completion verify-sig + +DESCRIPTION="Common files shared between multiple slots of Rust" +HOMEPAGE="https://www.rust-lang.org/" + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + # In case cargo is not in sync we'll fetch it as a submodule + # Nightly users will probably already have the repo cloned and up-to-date anyway. + EGIT_REPO_URI="https://github.com/rust-lang/rust.git" + EGIT_SUBMODULES=( "-*" "src/tools/cargo" ) +elif [[ ${PV} == *beta* ]]; then + # Identify the snapshot date of the beta release: + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz + MY_PV=beta + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc + -> rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/rustc-${MY_PV}-src" +else + MY_PV=${PV} + SRC_URI="https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/rustc-${MY_PV}-src" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="0" + +# Legacy non-slotted versions bash completions will collide. +RDEPEND=" + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-rust )" + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + git-r3_src_unpack + else + if use verify-sig ; then + verify-sig_verify_detached "${DISTDIR}"/rustc-${PV}-src.tar.xz "${DISTDIR}"/rustc-${PV}-src.tar.xz.asc + fi + + # Avoid unpacking the whole tarball which would need check-reqs + tar -xf "${DISTDIR}"/rustc-${PV}-src.tar.xz \ + "rustc-${MY_PV}-src/src/tools/cargo/src/etc/"{_cargo,cargo.bashcomp.sh} || die + fi +} + +src_configure() { + : +} + +src_compile() { + : +} + +src_install() { + newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo + dozshcomp src/tools/cargo/src/etc/_cargo +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-9999.ebuild index 26c4792d0fb..1037d635a09 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 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 f1a4e178b43..8661a5e89a2 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 @@ -22,7 +22,8 @@ DIST rust-patches-1.92.0_p1.tar.bz2 5993 BLAKE2B aa3183a46834b9442fd79fcda61a308 DIST rust-patches-1.93.0.tar.bz2 3175 BLAKE2B 4849208072cf0a047a9fe2ee27d384349b713149b7d087a6ff39a41ec1a7b77884710374dcac44c4378b320da0b4061fa531edd8b2b1cc04199fd51cdb1c2e78 SHA512 b818e14653a66447a221f84363cad54ee893842025c2b6c02c08df76bdf8666664564a5bc405ee988223048c2b986ea818d685babfddee5ff7559f9567bb9dbb DIST rust-patches-1.93.1.tar.bz2 3186 BLAKE2B 6ff137eb2c1b43857922ac3d9b0cc3dbe71180c05d318c5b0f54c371117426ad8daa8ec19cffc19c2550564ac4b7cfd38f4c0fa42a5b8d2ae94fe668a94aa567 SHA512 ded2af5cc9516d8bbce675f323747a96fea814f2344065a45ca7968a21e31aaa5e0bf0a45f6f831a9d62047e782306d5319c6c3ed887e3ceb75011d1849a5303 DIST rust-patches-1.94.0.tar.bz2 3165 BLAKE2B 07187fcc95458cf3323490a54d648209ae24c9c44522f5c0bf2b12ac469e86dd1145d70557c7c09a097019b262f557af162fc3687bfda10451e2e164a0f4ec78 SHA512 39f9288335c62b477465c44904e922f1ce8b62c840a9b6ce2d13dee670f6935cfbccc88faf314d5e766103ada969513badee251b6485e8abaeadca7b65cf9e23 -DIST rust-patches-1.95.0_beta20260310.tar.bz2 2977 BLAKE2B 1f864917aac82110cb283fe87351de83822f62e4b27fd45f0b619d652eda4e04a64d2828446d8b7a1cfc1c62e366fccf0a8e2a21c6eb9294d65c3dac875393d5 SHA512 99a7eb784f51f74da34de4cf4d712054fd469ac928e1f316ec33a30f0ff1f77642d926cc769bd221d14f16a42f675721e559f9b012f1b65343f014e1b8df7dd6 +DIST rust-patches-1.94.1.tar.bz2 3152 BLAKE2B 211eb9785b231225f02673967b05cb0f1ff62aee429b5950d664088b6ca7fb7c9f7067e0652db5162a7440b1422b58419363644e6f871c75253ca4529c83c2f1 SHA512 da8c7ec860a5e4d093a2abf8933a0836bf00a4b93bd505f6726a90d11d97062365055baca34bd44ca62196521468f6400625ff4c5dfabff0959f05e3bbf614e7 +DIST rust-patches-1.95.0.tar.bz2 2972 BLAKE2B f826baad880a245f9baa9c7ba4a2a7c70fe3d594c8ffb94e58633e5f4149e96a07ce561562cd3d9b303507d7299e535e7031165c108b53a962f8b848682e0c96 SHA512 0fb6662f20490b5fb0512bc670a98fa7d661476de2387fa8025edfbb8359fcef11c7e917e46750ea92231fb49a91b0228fbbe94dbf0427e7a5a924498328f3ce 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 @@ -71,5 +72,7 @@ DIST rustc-1.93.1-src.tar.xz 270888296 BLAKE2B fe5a9072161cf758221974f1f59b1a198 DIST rustc-1.93.1-src.tar.xz.asc 801 BLAKE2B 9e059c894770a402d5fee2a29ffdb42030d8d723a40d6312d983e53cd4fa64e97019a0ea6054dcb17ba2ead7f27db17eec2632950f13e4ef1410324afc4dcaf8 SHA512 8a290300e370b3833d2d365a451ed4708dbe1fa69fc57b73eef0b2b5d9dd4fb3d87344315aee3aea474d4071cfb535234e167f6576abf2e06ef3225c85e3c30d DIST rustc-1.94.0-src.tar.xz 273916448 BLAKE2B cab2e007c1a5401c653218ff0dd542d10c0d7a4fcc7bf2ee269cbbb9760bdd04c78276beddc2f6b1f4d47df96a11079087f109e248951c2a157be73ca2c3e8db SHA512 8397fa68055827363bff5a1dd228a05e4c4ca5a179d072ecc1b330a874c183529cb9346ec9c531fb3f066b7b6094fc8711d7c341a49755af7b50d63bf0ecff2b DIST rustc-1.94.0-src.tar.xz.asc 801 BLAKE2B d6ce44d51e59ecd22b953b391134ba470ec4ee1089031c34f7809199bd4eda3f54c5907a92f362cf5c0151d75b14360cd44d5a2556f785cbc1c3de5a0335573b SHA512 0a5b067e0e137489f49c7e445992f7a456e884d39158e4d9b5b59af41c62e5dbfe8abeaa02af33ca072b663dbc649004bc83ff18899bf1bfaed0eb90aac5f67f -DIST rustc-1.95.0_beta20260310-src.tar.xz 238950800 BLAKE2B b2d5cf01102ffa96f0b41ee7f4e20f003d3a006da99ef1d697a21e952edbbda8820309d97cb9b3adc0b867951a03422d458f9b32aecba40b2fad4a76c9e95a7f SHA512 9749191b022554cd537b9f4337d378f566cdde4c8501daf98de78669919933bd3ffd1dd43b2530ea05740f2686d46d02fef79e08a00909635d63b993ffadd0fb -DIST rustc-1.95.0_beta20260310-src.tar.xz.asc 801 BLAKE2B dc7c8613c749e9131c0caba62b30a8239cea8656058f03f0f8722017e733f703e8d76e7b6a37beee985968cdcc06bf2732bb4ce8471b735117c1b9b9d2069248 SHA512 ff83f761cc171e9789b460e9bb38c5db1ac063538a36dd550c02c4ea4027f50d67da073ee4021f248f799e72f72c3684926e4dc1246bb75b4cfb5dbef1548eb8 +DIST rustc-1.94.1-src.tar.xz 274077388 BLAKE2B 1c8c1b3f2d32898d7bfee5daa49b2d99c2dc7c1a35773c9bd66f73d45ea87f553c596561596594da2562c5bdfbd44936c53617ab114b7144e94a7d178e859af3 SHA512 4d20f5b2df042517b14aa4d1a7e4b149b7490ac6be9977d9273f5f81b70ca110b35c554693e1c8a8e4722bdb06532d3972a88c0cb7a8081d3d1bdb23e01e1546 +DIST rustc-1.94.1-src.tar.xz.asc 801 BLAKE2B 34559398b1fd0e7ff93ecf0d6a90c371048b70f834cd376a56f30b9890d9b786085a9149546a6c031e2e07bd4a349f1f3139f0e7f8bdae2a451dee47b5a13155 SHA512 6176d98acf9367e13afaef1c90ebca555f3ad08c44504f5cf23b7963959ee01ace1e99bf56aaf4f629bfb320eaca01b1940ba1819ce523d0cf336c97a69b21b7 +DIST rustc-1.95.0-src.tar.xz 238952004 BLAKE2B 0f255678231df79c9910cf5d9efbd762d1955ad78512194e3e06b3cec327f346bc98c526d2a8468ea53f57132c9765a134fe203267c1f6696e6719db820f342a SHA512 685912ffff97063e55c85b2d15d06ba734980cef4b6e104caae1ea433958b12a8d651b757eef7b9f5b06dad3c246d819a5ee5574a26e05007ecdd378f0f041d0 +DIST rustc-1.95.0-src.tar.xz.asc 801 BLAKE2B 90871b7ef3b69d0e4ef74892e16c0efab1c7ff796f646a3ef8653408d0155d528e418f71dcafca66c0689d38a3b3fba7128b1f32f4e69b7df36d86be8114bdbe SHA512 f70ed8071eff3470d4c288b83951e05f2ced52052a2f796113eb18db2c1f4bf81796f61434c322772dda879146d63569fd545d94d17e478a9588a333159c389c diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.93.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.93.1.ebuild index 9da8a4266e6..c45f78afea2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.93.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.93.1.ebuild @@ -61,7 +61,7 @@ else " S="${WORKDIR}/${MY_P}-src" - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" + KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86" fi DESCRIPTION="Systems programming language originally developed by Mozilla" diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.94.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.94.1.ebuild new file mode 100644 index 00000000000..49733b88fce --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.94.1.ebuild @@ -0,0 +1,900 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Bump notes: https://wiki.gentoo.org/wiki/Project:Rust/Rust_bump + +LLVM_COMPAT=( 21 ) +PYTHON_COMPAT=( python3_{11..14} ) + +# Patches are kept in rust-patches.git, see its README.rst for the versioning +# scheme. +# +# We use _pN from the ebuild version for the patchset but it can be overridden +# in the ebuild for changes that don't require a revbump. +# +# Uncomment this line when the ebuild needs a patchset update but no revbump. +# RUST_PATCH_VER=${PV}-1 + +RUST_MAX_VER=${PV%%_*} +RUST_PV=${PV%%_p*} +RUST_P=${PN}-${RUST_PV} +[[ -z ${RUST_PATCH_VER} ]] && RUST_PATCH_VER=${PV} + +if [[ ${PV} == *9999* ]]; then + # Update this as new `beta` releases come out. + RUST_MIN_VER="1.93.0" +elif [[ ${PV} == *beta* ]]; then + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +else + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +fi + +inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature +inherit multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs +inherit verify-sig + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 +elif [[ ${PV} == *beta* ]]; then + # Identify the snapshot date of the beta release: + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + MY_P="rustc-beta" + SRC_URI=" + https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${RUST_PV}-src.tar.xz + https://gitweb.gentoo.org/proj/rust-patches.git/snapshot/rust-patches-${RUST_PATCH_VER}.tar.bz2 + verify-sig? ( + https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc + -> rustc-${RUST_PV}-src.tar.xz.asc + ) + " + S="${WORKDIR}/${MY_P}-src" +else + MY_P="rustc-${RUST_PV}" + SRC_URI=" + https://static.rust-lang.org/dist/${MY_P}-src.tar.xz + https://gitweb.gentoo.org/proj/rust-patches.git/snapshot/rust-patches-${RUST_PATCH_VER}.tar.bz2 + verify-sig? ( https://static.rust-lang.org/dist/${MY_P}-src.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}-src" + + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DESCRIPTION="Systems programming language originally developed by Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +# keep in sync with llvm ebuild of the same version as bundled one. +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai ) +ALL_LLVM_TARGETS+=( LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV ) +ALL_LLVM_TARGETS+=( SystemZ VE WebAssembly X86 XCore Xtensa ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} + +# https://github.com/rust-lang/llvm-project/blob/rustc-1.87.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done + +# Bare metal targets which can be built on the host system and have no +# dependency on compiler runtime, libc and unwinder. +ALL_RUST_SYSROOTS=( bpf wasm ) +ALL_RUST_SYSROOTS=( "${ALL_RUST_SYSROOTS[@]/#/rust_sysroots_}" ) + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable + +IUSE="big-endian +clippy cpu_flags_x86_sse2 debug dist +doc llvm-libunwind lto" +IUSE+=" +rustfmt rust-analyzer rust-src +system-llvm test" +IUSE+=" ${ALL_LLVM_TARGETS[*]} ${ALL_RUST_SYSROOTS[*]}" + +if [[ ${PV} = *9999* ]]; then + # These USE flags require nightly rust + IUSE+=" miri" +fi + +LLVM_DEPEND=() +# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation +for _x in "${ALL_LLVM_TARGETS[@]}"; do + LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}=]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi +done +LLVM_DEPEND+=( " rust_sysroots_wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) +LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) + +# dev-libs/oniguruma is used for documentation +BDEPEND=" + ${PYTHON_DEPS} + app-eselect/eselect-rust + dev-libs/oniguruma + || ( + >=sys-devel/gcc-4.7[cxx] + >=llvm-core/clang-3.5 + ) + lto? ( system-llvm? ( + || ( + $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') + sys-devel/mold + ) + ) ) + rust_sysroots_wasm? ( llvm-core/clang ) + !system-llvm? ( + >=dev-build/cmake-3.13.4 + app-alternatives/ninja + ) + test? ( dev-debug/gdb ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +DEPEND=" + >=app-arch/xz-utils-5.2 + dev-db/sqlite:3 + net-misc/curl[http2,ssl] + virtual/zlib:= + dev-libs/openssl:0= + system-llvm? ( + ${LLVM_DEPEND[*]} + llvm-libunwind? ( llvm-runtimes/libunwind:= ) + ) + !system-llvm? ( + !llvm-libunwind? ( + elibc_musl? ( sys-libs/libunwind:= ) + ) + ) +" + +RDEPEND=" + ${DEPEND} + app-eselect/eselect-rust + dev-lang/rust-common + sys-apps/lsb-release + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" + +REQUIRED_USE=" + || ( ${ALL_LLVM_TARGETS[*]} ) + rust-analyzer? ( rust-src ) + test? ( ${ALL_LLVM_TARGETS[*]} ) + rust_sysroots_bpf? ( llvm_targets_BPF ) + rust_sysroots_wasm? ( llvm_targets_WebAssembly ) + x86? ( cpu_flags_x86_sse2 ) +" + +# we don't use cmake.eclass, but can get a warning +CMAKE_WARN_UNUSED_CLI=no + +QA_FLAGS_IGNORED=" + usr/lib/${PN}/${SLOT}/bin/.* + usr/lib/${PN}/${SLOT}/libexec/.* + usr/lib/${PN}/${SLOT}/lib/lib.*.so + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_SONAME=" + usr/lib/${PN}/${SLOT}/lib/lib.*.so.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_PRESTRIPPED=" + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-llvm-dwp + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-objcopy + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/self-contained/crtn.o +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="usr/lib/${PN}/${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +# causes double bootstrap +RESTRICT="test" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc + +clear_vendor_checksums() { + sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die +} + +toml_usex() { + usex "${1}" true false +} + +pre_build_checks() { + local M=9216 + # multiply requirements by 1.3 if we are doing x86-multilib + if use amd64; then + M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) + fi + M=$(( $(usex clippy 128 0) + ${M} )) + if [[ ${PV} == *9999* ]]; then + M=$(( $(usex miri 128 0) + ${M} )) + fi + M=$(( $(usex rustfmt 256 0) + ${M} )) + # add 2G if we compile llvm and 256M per llvm_target + if ! use system-llvm; then + M=$(( 2048 + ${M} )) + local ltarget + for ltarget in ${ALL_LLVM_TARGETS[@]}; do + M=$(( $(usex ${ltarget} 256 0) + ${M} )) + done + fi + M=$(( $(usex rust_sysroots_bpf 256 0) + ${M} )) + M=$(( $(usex rust_sysroots_wasm 256 0) + ${M} )) + M=$(( $(usex debug 2 1) * ${M} )) + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + M=$(( 15 * ${M} / 10 )) + fi + eshopts_pop + M=$(( $(usex doc 256 0) + ${M} )) + CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} +} + +llvm_check_deps() { + has_version -r "llvm-core/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]" +} + +# Is LLVM being linked against libc++? +is_libcxx_linked() { + local code='#include +#if defined(_LIBCPP_VERSION) + HAVE_LIBCXX +#endif +' + local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1 + [[ ${out} == *HAVE_LIBCXX* ]] +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + python-any-r1_pkg_setup + + 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$(get_makeopts_jobs) || + die "Failed to vendor dependencies" + # TODO: This has to be generated somehow, this is from a 1.84.x tarball I had lying around. + cat <<- _EOF_ > "${S}/.cargo/config.toml" + [source.crates-io] + replace-with = "vendored-sources" + + [source."git+https://github.com/rust-lang/team"] + git = "https://github.com/rust-lang/team" + replace-with = "vendored-sources" + + [source.vendored-sources] + directory = "vendor" + _EOF_ + elif use verify-sig ; then + # Patch tarballs are not signed (but we trust Gentoo infra) + verify-sig_verify_detached "${DISTDIR}"/rustc-${RUST_PV}-src.tar.xz{,.asc} + default + else + default + fi +} + +src_prepare() { + # Commit patches to the appropriate branch in proj/rust-patches.git + # then cut a new tag / tarball. Don't add patches to ${FILESDIR} + PATCHES=( + "${WORKDIR}/rust-patches-${RUST_PATCH_VER}/" + ) + + if use lto && tc-is-clang && ! tc-ld-is-lld && ! tc-ld-is-mold; then + export RUSTFLAGS+=" -C link-arg=-fuse-ld=lld" + fi + + default +} + +src_configure() { + if tc-is-cross-compiler; then + export PKG_CONFIG_ALLOW_CROSS=1 + 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 + export LIBSQLITE3_SYS_USE_PKG_CONFIG=1 + + filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 + + local rust_target="" rust_targets="" arch_cflags + + # Collect rust target names to compile standard libs for all ABIs. + for v in $(multilib_get_enabled_abi_pairs); do + rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" + done + if use rust_sysroots_bpf; then + rust_targets+=",\"bpfeb-unknown-none\",\"bpfel-unknown-none\"" + fi + if use rust_sysroots_wasm; then + rust_targets+=",\"wasm32-unknown-unknown\"" + if use system-llvm; then + # un-hardcode rust-lld linker for this target + # https://bugs.gentoo.org/715348 + sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die + fi + fi + rust_targets="${rust_targets#,}" + + # cargo and rustdoc are mandatory and should always be included + local tools='"cargo","rustdoc"' + use clippy && tools+=',"clippy"' + use rustfmt && tools+=',"rustfmt"' + use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' + use rust-src && tools+=',"src"' + + if [[ ${PV} == *9999* ]]; then + use miri && tools+=',"miri"' + fi + + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + # in case of prefix it will be already prefixed, as --print sysroot returns full path + [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" + + rust_target="$(rust_abi)" + rust_build="$(rust_abi "${CBUILD}")" + rust_host="$(rust_abi "${CHOST}")" + + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) + fi + done + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} + + local cm_btype="$(usex debug DEBUG RELEASE)" + local build_channel + local build_miri="false" + case "${PV}" in + *9999*) + build_channel="nightly" + ;; + *beta*) + build_channel="beta" + ;; + *) + build_channel="stable" + ;; + esac + + # TODO: Add optimized-compiler-builtins for system-llvm to avoid + # building bundled compiler-rt. + cat <<- _EOF_ > "${S}"/bootstrap.toml + # Suppresses a warning about tracking changes which we don't care about. + change-id = "ignore" + # https://github.com/rust-lang/rust/issues/135358 (bug #947897) + profile = "dist" + [llvm] + download-ci-llvm = false + optimize = $(toml_usex !debug) + release-debuginfo = $(toml_usex debug) + assertions = $(toml_usex debug) + ninja = true + targets = "${LLVM_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" + link-shared = $(toml_usex system-llvm) + $(if is_libcxx_linked; then + # https://bugs.gentoo.org/732632 + echo "use-libcxx = true" + echo "static-libstdcpp = false" + fi) + $(case "${rust_target}" in + i586-*-linux-*) + # https://github.com/rust-lang/rust/issues/93059 + echo 'cflags = "-fcf-protection=none"' + echo 'cxxflags = "-fcf-protection=none"' + echo 'ldflags = "-fcf-protection=none"' + ;; + *) + ;; + esac) + enable-warnings = false + [llvm.build-config] + CMAKE_VERBOSE_MAKEFILE = "ON" + $(if ! tc-is-cross-compiler; then + # When cross-compiling, LLVM is compiled twice, once for host and + # once for target. Unfortunately, this build configuration applies + # to both, which means any flags applicable to one target but not + # the other will break. Conditionally disable respecting user + # flags when cross-compiling. + echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\"" + echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\"" + echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\"" + fi) + [build] + build-stage = 2 + test-stage = 2 + build = "${rust_build}" + host = ["${rust_host}"] + target = [${rust_targets}] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + description = "gentoo" + docs = $(toml_usex doc) + compiler-docs = false + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = true + tools = [${tools}] + verbose = 2 + sanitizers = false + profiler = true + cargo-native-static = false + [install] + prefix = "${EPREFIX}/usr/lib/${PN}/${SLOT}" + sysconfdir = "etc" + docdir = "share/doc/rust" + bindir = "bin" + libdir = "lib" + mandir = "share/man" + [rust] + # https://github.com/rust-lang/rust/issues/54872 + codegen-units-std = 1 + optimize = true + debug = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + debug-assertions-std = $(toml_usex debug) + debuginfo-level = $(usex debug 2 0) + debuginfo-level-rustc = $(usex debug 2 0) + debuginfo-level-std = $(usex debug 2 0) + debuginfo-level-tools = $(usex debug 2 0) + debuginfo-level-tests = 0 + backtrace = true + incremental = false + $(if ! tc-is-cross-compiler; then + echo "default-linker = \"${CHOST}-cc\"" + fi) + channel = "${build_channel}" + rpath = true + verbose-tests = true + optimize-tests = $(toml_usex !debug) + codegen-tests = true + omit-git-hash = false + dist-src = false + remap-debuginfo = true + lld = $(usex system-llvm false $(toml_usex rust_sysroots_wasm)) + $(if use lto && tc-is-clang && ! tc-ld-is-mold; then + echo "use-lld = true" + fi) + # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it + # https://github.com/rust-lang/rust/issues/74976 + # https://github.com/rust-lang/rust/issues/76526 + deny-warnings = $(usex rust_sysroots_wasm $(usex doc false true) true) + backtrace-on-ice = true + jemalloc = false + # See https://github.com/rust-lang/rust/issues/121124 + lto = "$(usex lto thin off)" + [dist] + src-tarball = false + compression-formats = ["xz"] + compression-profile = "balanced" + _EOF_ + + for v in $(multilib_get_enabled_abi_pairs); do + rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) + arch_cflags="$(get_abi_CFLAGS ${v##*.})" + + export CFLAGS_${rust_target//-/_}="${arch_cflags}" + + cat <<- _EOF_ >> "${S}"/bootstrap.toml + [target.${rust_target}] + ar = "$(tc-getAR)" + cc = "$(tc-getCC)" + cxx = "$(tc-getCXX)" + linker = "$(tc-getCC)" + ranlib = "$(tc-getRANLIB)" + llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/bootstrap.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; + # but we patch it and set to false here as well + if use elibc_musl; then + cat <<- _EOF_ >> "${S}"/bootstrap.toml + crt-static = false + musl-root = "$($(tc-getCC) -print-sysroot)/usr" + _EOF_ + fi + done + if use rust_sysroots_wasm; then + wasm_target="wasm32-unknown-unknown" + if tc-is-clang; then + local wasm_cc=$(tc-getCC) + local wasm_cxx=$(tc-getCXX) + else + local wasm_cc=${CHOST}-clang + local wasm_cxx=${CHOST}-clang++ + fi + export CFLAGS_${wasm_target//-/_}="$( + CC="${wasm_cc} --target=wasm32-unknown-unknown" + filter-flags '-mcpu*' '-march*' '-mtune*' + strip-unsupported-flags + echo "${CFLAGS}" + )" + cat <<- _EOF_ >> "${S}"/bootstrap.toml + [target.wasm32-unknown-unknown] + cc = "${wasm_cc}" + cxx = "${wasm_cxx}" + linker = "$(usex system-llvm lld rust-lld)" + # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483 + profiler = false + _EOF_ + fi + + if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below + # experimental cross support + # discussion: https://bugs.gentoo.org/679878 + # TODO: c*flags, clang, system-llvm, cargo.eclass target support + # it would be much better if we could split out stdlib + # complilation to separate ebuild and abuse CATEGORY to + # just install to /usr/lib/rustlib/ + + # extra targets defined as a bash array + # spec format: :: + # best place would be /etc/portage/env/dev-lang/rust + # Example: + # RUST_CROSS_TARGETS=( + # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu" + # ) + # no extra hand holding is done, no target transformations, all + # values are passed as-is with just basic checks, so it's up to user to supply correct values + # valid rust targets can be obtained with + # rustc --print target-list + # matching cross toolchain has to be installed + # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one) + # only gcc toolchains installed with crossdev are checked for now. + + # BUG: we can't pass host flags to cross compiler, so just filter for now + # BUG: this should be more fine-grained. + filter-flags '-mcpu=*' '-march=*' '-mtune=*' + + local cross_target_spec + for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do + # extracts first element form :: + local cross_llvm_target="${cross_target_spec%%:*}" + # extracts toolchain triples, : + local cross_triples="${cross_target_spec#*:}" + # extracts first element after before : separator + local cross_rust_target="${cross_triples%%:*}" + # extracts last element after : separator + local cross_toolchain="${cross_triples##*:}" + use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled" + command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain" + + cat <<- _EOF_ >> "${S}"/bootstrap.toml + [target.${cross_rust_target}] + ar = "${cross_toolchain}-ar" + cc = "${cross_toolchain}-gcc" + cxx = "${cross_toolchain}-g++" + linker = "${cross_toolchain}-gcc" + ranlib = "${cross_toolchain}-ranlib" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/bootstrap.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + if [[ "${cross_toolchain}" == *-musl* ]]; then + cat <<- _EOF_ >> "${S}"/bootstrap.toml + musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr" + _EOF_ + fi + if [[ "${cross_rust_target}" == *-uefi ]]; then + # Profiler is not supported on bare-metal + cat <<- _EOF_ >> "${S}"/bootstrap.toml + profiler = false + _EOF_ + fi + + # append cross target to "normal" target list + # example 'target = ["powerpc64le-unknown-linux-gnu"]' + # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]' + + rust_targets="${rust_targets},\"${cross_rust_target}\"" + sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" bootstrap.toml || die + + ewarn + ewarn "Enabled ${cross_rust_target} rust target" + ewarn "Using ${cross_toolchain} cross toolchain" + ewarn + if ! has_version -b 'sys-devel/binutils[multitarget]' ; then + ewarn "'sys-devel/binutils[multitarget]' is not installed" + ewarn "'strip' will be unable to strip cross libraries" + ewarn "cross targets will be installed with full debug information" + ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files" + ewarn + ewarn "Alternatively llvm-strip can be used, it supports stripping any target" + ewarn "define STRIP=\"llvm-strip\" to use it (experimental)" + ewarn + fi + done + fi # I_KNOW_WHAT_I_AM_DOING_CROSS + + einfo "Rust configured with the following flags:" + echo + echo RUSTFLAGS="\"${RUSTFLAGS}\"" + echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\"" + echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\"" + echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\"" + env | grep "CARGO_TARGET_.*_RUSTFLAGS=" + env | grep "CFLAGS_.*" + echo + einfo "bootstrap.toml contents:" + cat "${S}"/bootstrap.toml || die + echo +} + +src_compile() { + # -v will show invocations, -vv "very verbose" is overkill, -vvv "very very verbose" is insane + RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -v \ + --config="${S}"/bootstrap.toml -j$(get_makeopts_jobs) || die +} + +src_test() { + # https://rustc-dev-guide.rust-lang.org/tests/intro.html + + # those are basic and codegen tests. + local tests=( + codegen-units + codegen-llvm + crashes + incremental + mir-opt + pretty + run-make + run-make-cargo + ) + + # tests for standard and core library + local std_tests=( + std + core + ) + + # fails if llvm is not built with ALL targets. + # and known to fail with system llvm sometimes. + use system-llvm || tests+=( assembly-llvm ) + + # fragile/expensive/less important tests + # or tests that require extra builds + # TODO: instead of skipping, just make some nonfatal. + if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then + tests+=( + rustdoc + rustdoc-js + rustdoc-js-std + rustdoc-ui + ui + ui-fulldeps + ) + fi + + local i failed=() + einfo "rust_src_test: enabled tests ${tests[@]} ${std_tests[@]}" + for i in "tests/${tests[@]}" "library/${std_tests[@]}"; do + local t="${i}" + einfo "rust_src_test: running ${t}" + if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/bootstrap.toml \ + -j$(get_makeopts_jobs) --no-doc --no-fail-fast "${t}" + then + failed+=( "${t}" ) + eerror "rust_src_test: ${t} failed" + fi + done + + if [[ ${#failed[@]} -ne 0 ]]; then + eerror "rust_src_test: failure summary: ${failed[@]}" + die "aborting due to test failures" + fi +} + +src_install() { + DESTDIR="${D}" "${EPYTHON}" ./x.py install -v \ + --config="${S}"/bootstrap.toml -j$(get_makeopts_jobs) || die + + docompress /usr/lib/${PN}/${SLOT}/share/man/ + + # bash-completion files are installed by dev-lang/rust-common instead + # bug #689562, #689160. + rm -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d/cargo" || die + rmdir -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d" || die + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + if [[ ${PV} = *9999* ]]; then + use miri && symlinks+=( miri cargo-miri ) + fi + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /usr/lib/rust//bin/rustc- + # need to fix eselect-rust to remove this hack. + local ver_i="${i}-${RUST_PV%%_*}" + if [[ -f "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" ]]; then + einfo "Installing ${i} symlink" + ln -v "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" "${ED}/usr/lib/${PN}/${SLOT}/bin/${ver_i}" || die + else + ewarn "${i} symlink requested, but source file not found" + ewarn "please report this" + fi + dosym "../lib/${PN}/${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "${SLOT}/lib" "/usr/lib/${PN}/lib-${SLOT}" + use rust-analyzer && dosym "${SLOT}/libexec" "/usr/lib/${PN}/libexec-${SLOT}" + dosym "${SLOT}/share/man" "/usr/lib/${PN}/man-${SLOT}" + dosym "rust/${SLOT}/lib/rustlib" "/usr/lib/rustlib-${SLOT}" + dosym "../../lib/${PN}/${SLOT}/share/doc/rust" "/usr/share/doc/${RUST_P}" + + newenvd - "50${RUST_P}" <<-_EOF_ + MANPATH="${EPREFIX}/usr/lib/rust/man-${SLOT}" + _EOF_ + + rm -rf "${ED}/usr/lib/${PN}/${SLOT}"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/bin"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/doc"/*.old || die + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${RUST_P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${RUST_P}" + fi + if [[ ${SLOT} == *9999* ]] && use miri; then + echo /usr/bin/miri >> "${T}/provider-${RUST_P}" + echo /usr/bin/cargo-miri >> "${T}/provider-${RUST_P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${RUST_P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${RUST_P}" + fi + if use rust-analyzer; then + echo /usr/lib/rust/libexec >> "${T}/provider-${RUST_P}" + echo /usr/bin/rust-analyzer >> "${T}/provider-${RUST_P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + + if use dist; then + "${EPYTHON}" ./x.py dist -v --config="${S}"/bootstrap.toml \ + -j$(get_makeopts_jobs) || die + insinto "/usr/lib/${PN}/${SLOT}/dist" + doins -r "${S}/build/dist/." + fi +} + +pkg_postinst() { + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${RUST_PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.95.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.95.0.ebuild new file mode 100644 index 00000000000..d5b1ef1dc61 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.95.0.ebuild @@ -0,0 +1,900 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Bump notes: https://wiki.gentoo.org/wiki/Project:Rust/Rust_bump + +LLVM_COMPAT=( 22 ) +PYTHON_COMPAT=( python3_{11..14} ) + +# Patches are kept in rust-patches.git, see its README.rst for the versioning +# scheme. +# +# We use _pN from the ebuild version for the patchset but it can be overridden +# in the ebuild for changes that don't require a revbump. +# +# Uncomment this line when the ebuild needs a patchset update but no revbump. +# RUST_PATCH_VER=${PV}-1 + +RUST_MAX_VER=${PV%%_*} +RUST_PV=${PV%%_p*} +RUST_P=${PN}-${RUST_PV} +[[ -z ${RUST_PATCH_VER} ]] && RUST_PATCH_VER=${PV} + +if [[ ${PV} == *9999* ]]; then + # Update this as new `beta` releases come out. + RUST_MIN_VER="1.93.0" +elif [[ ${PV} == *beta* ]]; then + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +else + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +fi + +inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature +inherit multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs +inherit verify-sig + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 +elif [[ ${PV} == *beta* ]]; then + # Identify the snapshot date of the beta release: + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + MY_P="rustc-beta" + SRC_URI=" + https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${RUST_PV}-src.tar.xz + https://gitweb.gentoo.org/proj/rust-patches.git/snapshot/rust-patches-${RUST_PATCH_VER}.tar.bz2 + verify-sig? ( + https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc + -> rustc-${RUST_PV}-src.tar.xz.asc + ) + " + S="${WORKDIR}/${MY_P}-src" +else + MY_P="rustc-${RUST_PV}" + SRC_URI=" + https://static.rust-lang.org/dist/${MY_P}-src.tar.xz + https://gitweb.gentoo.org/proj/rust-patches.git/snapshot/rust-patches-${RUST_PATCH_VER}.tar.bz2 + verify-sig? ( https://static.rust-lang.org/dist/${MY_P}-src.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}-src" + + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DESCRIPTION="Systems programming language originally developed by Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +# keep in sync with llvm ebuild of the same version as bundled one. +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai ) +ALL_LLVM_TARGETS+=( LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV ) +ALL_LLVM_TARGETS+=( SystemZ VE WebAssembly X86 XCore Xtensa ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} + +# https://github.com/rust-lang/llvm-project/blob/rustc-1.87.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done + +# Bare metal targets which can be built on the host system and have no +# dependency on compiler runtime, libc and unwinder. +ALL_RUST_SYSROOTS=( bpf wasm ) +ALL_RUST_SYSROOTS=( "${ALL_RUST_SYSROOTS[@]/#/rust_sysroots_}" ) + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable + +IUSE="big-endian +clippy cpu_flags_x86_sse2 debug dist +doc llvm-libunwind lto" +IUSE+=" +rustfmt rust-analyzer rust-src +system-llvm test" +IUSE+=" ${ALL_LLVM_TARGETS[*]} ${ALL_RUST_SYSROOTS[*]}" + +if [[ ${PV} = *9999* ]]; then + # These USE flags require nightly rust + IUSE+=" miri" +fi + +LLVM_DEPEND=() +# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation +for _x in "${ALL_LLVM_TARGETS[@]}"; do + LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}=]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi +done +LLVM_DEPEND+=( " rust_sysroots_wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) +LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) + +# dev-libs/oniguruma is used for documentation +BDEPEND=" + ${PYTHON_DEPS} + app-eselect/eselect-rust + dev-libs/oniguruma + || ( + >=sys-devel/gcc-4.7[cxx] + >=llvm-core/clang-3.5 + ) + lto? ( system-llvm? ( + || ( + $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') + sys-devel/mold + ) + ) ) + rust_sysroots_wasm? ( llvm-core/clang ) + !system-llvm? ( + >=dev-build/cmake-3.13.4 + app-alternatives/ninja + ) + test? ( dev-debug/gdb ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +DEPEND=" + >=app-arch/xz-utils-5.2 + dev-db/sqlite:3 + net-misc/curl[http2,ssl] + virtual/zlib:= + dev-libs/openssl:0= + system-llvm? ( + ${LLVM_DEPEND[*]} + llvm-libunwind? ( llvm-runtimes/libunwind:= ) + ) + !system-llvm? ( + !llvm-libunwind? ( + elibc_musl? ( sys-libs/libunwind:= ) + ) + ) +" + +RDEPEND=" + ${DEPEND} + app-eselect/eselect-rust + dev-lang/rust-common + sys-apps/lsb-release + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" + +REQUIRED_USE=" + || ( ${ALL_LLVM_TARGETS[*]} ) + rust-analyzer? ( rust-src ) + test? ( ${ALL_LLVM_TARGETS[*]} ) + rust_sysroots_bpf? ( llvm_targets_BPF ) + rust_sysroots_wasm? ( llvm_targets_WebAssembly ) + x86? ( cpu_flags_x86_sse2 ) +" + +# we don't use cmake.eclass, but can get a warning +CMAKE_WARN_UNUSED_CLI=no + +QA_FLAGS_IGNORED=" + usr/lib/${PN}/${SLOT}/bin/.* + usr/lib/${PN}/${SLOT}/libexec/.* + usr/lib/${PN}/${SLOT}/lib/lib.*.so + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_SONAME=" + usr/lib/${PN}/${SLOT}/lib/lib.*.so.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_PRESTRIPPED=" + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-llvm-dwp + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-objcopy + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/self-contained/crtn.o +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="usr/lib/${PN}/${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +# causes double bootstrap +RESTRICT="test" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc + +clear_vendor_checksums() { + sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die +} + +toml_usex() { + usex "${1}" true false +} + +pre_build_checks() { + local M=9216 + # multiply requirements by 1.3 if we are doing x86-multilib + if use amd64; then + M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) + fi + M=$(( $(usex clippy 128 0) + ${M} )) + if [[ ${PV} == *9999* ]]; then + M=$(( $(usex miri 128 0) + ${M} )) + fi + M=$(( $(usex rustfmt 256 0) + ${M} )) + # add 2G if we compile llvm and 256M per llvm_target + if ! use system-llvm; then + M=$(( 2048 + ${M} )) + local ltarget + for ltarget in ${ALL_LLVM_TARGETS[@]}; do + M=$(( $(usex ${ltarget} 256 0) + ${M} )) + done + fi + M=$(( $(usex rust_sysroots_bpf 256 0) + ${M} )) + M=$(( $(usex rust_sysroots_wasm 256 0) + ${M} )) + M=$(( $(usex debug 2 1) * ${M} )) + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + M=$(( 15 * ${M} / 10 )) + fi + eshopts_pop + M=$(( $(usex doc 256 0) + ${M} )) + CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} +} + +llvm_check_deps() { + has_version -r "llvm-core/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]" +} + +# Is LLVM being linked against libc++? +is_libcxx_linked() { + local code='#include +#if defined(_LIBCPP_VERSION) + HAVE_LIBCXX +#endif +' + local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1 + [[ ${out} == *HAVE_LIBCXX* ]] +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + python-any-r1_pkg_setup + + 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$(get_makeopts_jobs) || + die "Failed to vendor dependencies" + # TODO: This has to be generated somehow, this is from a 1.84.x tarball I had lying around. + cat <<- _EOF_ > "${S}/.cargo/config.toml" + [source.crates-io] + replace-with = "vendored-sources" + + [source."git+https://github.com/rust-lang/team"] + git = "https://github.com/rust-lang/team" + replace-with = "vendored-sources" + + [source.vendored-sources] + directory = "vendor" + _EOF_ + elif use verify-sig ; then + # Patch tarballs are not signed (but we trust Gentoo infra) + verify-sig_verify_detached "${DISTDIR}"/rustc-${RUST_PV}-src.tar.xz{,.asc} + default + else + default + fi +} + +src_prepare() { + # Commit patches to the appropriate branch in proj/rust-patches.git + # then cut a new tag / tarball. Don't add patches to ${FILESDIR} + PATCHES=( + "${WORKDIR}/rust-patches-${RUST_PATCH_VER}/" + ) + + if use lto && tc-is-clang && ! tc-ld-is-lld && ! tc-ld-is-mold; then + export RUSTFLAGS+=" -C link-arg=-fuse-ld=lld" + fi + + default +} + +src_configure() { + if tc-is-cross-compiler; then + export PKG_CONFIG_ALLOW_CROSS=1 + 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 + export LIBSQLITE3_SYS_USE_PKG_CONFIG=1 + + filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 + + local rust_target="" rust_targets="" arch_cflags + + # Collect rust target names to compile standard libs for all ABIs. + for v in $(multilib_get_enabled_abi_pairs); do + rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" + done + if use rust_sysroots_bpf; then + rust_targets+=",\"bpfeb-unknown-none\",\"bpfel-unknown-none\"" + fi + if use rust_sysroots_wasm; then + rust_targets+=",\"wasm32-unknown-unknown\"" + if use system-llvm; then + # un-hardcode rust-lld linker for this target + # https://bugs.gentoo.org/715348 + sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die + fi + fi + rust_targets="${rust_targets#,}" + + # cargo and rustdoc are mandatory and should always be included + local tools='"cargo","rustdoc"' + use clippy && tools+=',"clippy"' + use rustfmt && tools+=',"rustfmt"' + use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' + use rust-src && tools+=',"src"' + + if [[ ${PV} == *9999* ]]; then + use miri && tools+=',"miri"' + fi + + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + # in case of prefix it will be already prefixed, as --print sysroot returns full path + [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" + + rust_target="$(rust_abi)" + rust_build="$(rust_abi "${CBUILD}")" + rust_host="$(rust_abi "${CHOST}")" + + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) + fi + done + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} + + local cm_btype="$(usex debug DEBUG RELEASE)" + local build_channel + local build_miri="false" + case "${PV}" in + *9999*) + build_channel="nightly" + ;; + *beta*) + build_channel="beta" + ;; + *) + build_channel="stable" + ;; + esac + + # TODO: Add optimized-compiler-builtins for system-llvm to avoid + # building bundled compiler-rt. + cat <<- _EOF_ > "${S}"/bootstrap.toml + # Suppresses a warning about tracking changes which we don't care about. + change-id = "ignore" + # https://github.com/rust-lang/rust/issues/135358 (bug #947897) + profile = "dist" + [llvm] + download-ci-llvm = false + optimize = $(toml_usex !debug) + release-debuginfo = $(toml_usex debug) + assertions = $(toml_usex debug) + ninja = true + targets = "${LLVM_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" + link-shared = $(toml_usex system-llvm) + $(if is_libcxx_linked; then + # https://bugs.gentoo.org/732632 + echo "use-libcxx = true" + echo "static-libstdcpp = false" + fi) + $(case "${rust_target}" in + i586-*-linux-*) + # https://github.com/rust-lang/rust/issues/93059 + echo 'cflags = "-fcf-protection=none"' + echo 'cxxflags = "-fcf-protection=none"' + echo 'ldflags = "-fcf-protection=none"' + ;; + *) + ;; + esac) + enable-warnings = false + [llvm.build-config] + CMAKE_VERBOSE_MAKEFILE = "ON" + $(if ! tc-is-cross-compiler; then + # When cross-compiling, LLVM is compiled twice, once for host and + # once for target. Unfortunately, this build configuration applies + # to both, which means any flags applicable to one target but not + # the other will break. Conditionally disable respecting user + # flags when cross-compiling. + echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\"" + echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\"" + echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\"" + fi) + [build] + build-stage = 2 + test-stage = 2 + build = "${rust_build}" + host = ["${rust_host}"] + target = [${rust_targets}] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + description = "gentoo" + docs = $(toml_usex doc) + compiler-docs = false + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = true + tools = [${tools}] + verbose = 2 + sanitizers = false + profiler = true + cargo-native-static = false + [install] + prefix = "${EPREFIX}/usr/lib/${PN}/${SLOT}" + sysconfdir = "etc" + docdir = "share/doc/rust" + bindir = "bin" + libdir = "lib" + mandir = "share/man" + [rust] + # https://github.com/rust-lang/rust/issues/54872 + codegen-units-std = 1 + optimize = true + debug = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + debug-assertions-std = $(toml_usex debug) + debuginfo-level = $(usex debug 2 0) + debuginfo-level-rustc = $(usex debug 2 0) + debuginfo-level-std = $(usex debug 2 0) + debuginfo-level-tools = $(usex debug 2 0) + debuginfo-level-tests = 0 + backtrace = true + incremental = false + $(if ! tc-is-cross-compiler; then + echo "default-linker = \"${CHOST}-cc\"" + fi) + channel = "${build_channel}" + rpath = true + verbose-tests = true + optimize-tests = $(toml_usex !debug) + codegen-tests = true + omit-git-hash = false + dist-src = false + remap-debuginfo = true + lld = $(usex system-llvm false $(toml_usex rust_sysroots_wasm)) + $(if use lto && tc-is-clang && ! tc-ld-is-mold; then + echo "use-lld = true" + fi) + # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it + # https://github.com/rust-lang/rust/issues/74976 + # https://github.com/rust-lang/rust/issues/76526 + deny-warnings = $(usex rust_sysroots_wasm $(usex doc false true) true) + backtrace-on-ice = true + jemalloc = false + # See https://github.com/rust-lang/rust/issues/121124 + lto = "$(usex lto thin off)" + [dist] + src-tarball = false + compression-formats = ["xz"] + compression-profile = "balanced" + _EOF_ + + for v in $(multilib_get_enabled_abi_pairs); do + rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) + arch_cflags="$(get_abi_CFLAGS ${v##*.})" + + export CFLAGS_${rust_target//-/_}="${arch_cflags}" + + cat <<- _EOF_ >> "${S}"/bootstrap.toml + [target.${rust_target}] + ar = "$(tc-getAR)" + cc = "$(tc-getCC)" + cxx = "$(tc-getCXX)" + linker = "$(tc-getCC)" + ranlib = "$(tc-getRANLIB)" + llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/bootstrap.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; + # but we patch it and set to false here as well + if use elibc_musl; then + cat <<- _EOF_ >> "${S}"/bootstrap.toml + crt-static = false + musl-root = "$($(tc-getCC) -print-sysroot)/usr" + _EOF_ + fi + done + if use rust_sysroots_wasm; then + wasm_target="wasm32-unknown-unknown" + if tc-is-clang; then + local wasm_cc=$(tc-getCC) + local wasm_cxx=$(tc-getCXX) + else + local wasm_cc=${CHOST}-clang + local wasm_cxx=${CHOST}-clang++ + fi + export CFLAGS_${wasm_target//-/_}="$( + CC="${wasm_cc} --target=wasm32-unknown-unknown" + filter-flags '-mcpu*' '-march*' '-mtune*' + strip-unsupported-flags + echo "${CFLAGS}" + )" + cat <<- _EOF_ >> "${S}"/bootstrap.toml + [target.wasm32-unknown-unknown] + cc = "${wasm_cc}" + cxx = "${wasm_cxx}" + linker = "$(usex system-llvm lld rust-lld)" + # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483 + profiler = false + _EOF_ + fi + + if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below + # experimental cross support + # discussion: https://bugs.gentoo.org/679878 + # TODO: c*flags, clang, system-llvm, cargo.eclass target support + # it would be much better if we could split out stdlib + # complilation to separate ebuild and abuse CATEGORY to + # just install to /usr/lib/rustlib/ + + # extra targets defined as a bash array + # spec format: :: + # best place would be /etc/portage/env/dev-lang/rust + # Example: + # RUST_CROSS_TARGETS=( + # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu" + # ) + # no extra hand holding is done, no target transformations, all + # values are passed as-is with just basic checks, so it's up to user to supply correct values + # valid rust targets can be obtained with + # rustc --print target-list + # matching cross toolchain has to be installed + # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one) + # only gcc toolchains installed with crossdev are checked for now. + + # BUG: we can't pass host flags to cross compiler, so just filter for now + # BUG: this should be more fine-grained. + filter-flags '-mcpu=*' '-march=*' '-mtune=*' + + local cross_target_spec + for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do + # extracts first element form :: + local cross_llvm_target="${cross_target_spec%%:*}" + # extracts toolchain triples, : + local cross_triples="${cross_target_spec#*:}" + # extracts first element after before : separator + local cross_rust_target="${cross_triples%%:*}" + # extracts last element after : separator + local cross_toolchain="${cross_triples##*:}" + use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled" + command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain" + + cat <<- _EOF_ >> "${S}"/bootstrap.toml + [target.${cross_rust_target}] + ar = "${cross_toolchain}-ar" + cc = "${cross_toolchain}-gcc" + cxx = "${cross_toolchain}-g++" + linker = "${cross_toolchain}-gcc" + ranlib = "${cross_toolchain}-ranlib" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/bootstrap.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + if [[ "${cross_toolchain}" == *-musl* ]]; then + cat <<- _EOF_ >> "${S}"/bootstrap.toml + musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr" + _EOF_ + fi + if [[ "${cross_rust_target}" == *-uefi ]]; then + # Profiler is not supported on bare-metal + cat <<- _EOF_ >> "${S}"/bootstrap.toml + profiler = false + _EOF_ + fi + + # append cross target to "normal" target list + # example 'target = ["powerpc64le-unknown-linux-gnu"]' + # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]' + + rust_targets="${rust_targets},\"${cross_rust_target}\"" + sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" bootstrap.toml || die + + ewarn + ewarn "Enabled ${cross_rust_target} rust target" + ewarn "Using ${cross_toolchain} cross toolchain" + ewarn + if ! has_version -b 'sys-devel/binutils[multitarget]' ; then + ewarn "'sys-devel/binutils[multitarget]' is not installed" + ewarn "'strip' will be unable to strip cross libraries" + ewarn "cross targets will be installed with full debug information" + ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files" + ewarn + ewarn "Alternatively llvm-strip can be used, it supports stripping any target" + ewarn "define STRIP=\"llvm-strip\" to use it (experimental)" + ewarn + fi + done + fi # I_KNOW_WHAT_I_AM_DOING_CROSS + + einfo "Rust configured with the following flags:" + echo + echo RUSTFLAGS="\"${RUSTFLAGS}\"" + echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\"" + echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\"" + echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\"" + env | grep "CARGO_TARGET_.*_RUSTFLAGS=" + env | grep "CFLAGS_.*" + echo + einfo "bootstrap.toml contents:" + cat "${S}"/bootstrap.toml || die + echo +} + +src_compile() { + # -v will show invocations, -vv "very verbose" is overkill, -vvv "very very verbose" is insane + RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -v \ + --config="${S}"/bootstrap.toml -j$(get_makeopts_jobs) || die +} + +src_test() { + # https://rustc-dev-guide.rust-lang.org/tests/intro.html + + # those are basic and codegen tests. + local tests=( + codegen-units + crashes + codegen-llvm + incremental + mir-opt + pretty + run-make + run-make-cargo + ) + + # tests for standard and core library + local std_tests=( + std + core + ) + + # fails if llvm is not built with ALL targets. + # and known to fail with system llvm sometimes. + use system-llvm || tests+=( assembly-llvm ) + + # fragile/expensive/less important tests + # or tests that require extra builds + # TODO: instead of skipping, just make some nonfatal. + if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then + tests+=( + rustdoc + rustdoc-js + rustdoc-js-std + rustdoc-ui + ui + ui-fulldeps + ) + fi + + local i failed=() + einfo "rust_src_test: enabled tests ${tests[@]} ${std_tests[@]}" + for i in "tests/${tests[@]}" "library/${std_tests[@]}"; do + local t="${i}" + einfo "rust_src_test: running ${t}" + if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/bootstrap.toml \ + -j$(get_makeopts_jobs) --no-doc --no-fail-fast "${t}" + then + failed+=( "${t}" ) + eerror "rust_src_test: ${t} failed" + fi + done + + if [[ ${#failed[@]} -ne 0 ]]; then + eerror "rust_src_test: failure summary: ${failed[@]}" + die "aborting due to test failures" + fi +} + +src_install() { + DESTDIR="${D}" "${EPYTHON}" ./x.py install -v \ + --config="${S}"/bootstrap.toml -j$(get_makeopts_jobs) || die + + docompress /usr/lib/${PN}/${SLOT}/share/man/ + + # bash-completion files are installed by dev-lang/rust-common instead + # bug #689562, #689160. + rm -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d/cargo" || die + rmdir -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d" || die + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + if [[ ${PV} = *9999* ]]; then + use miri && symlinks+=( miri cargo-miri ) + fi + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /usr/lib/rust//bin/rustc- + # need to fix eselect-rust to remove this hack. + local ver_i="${i}-${RUST_PV%%_*}" + if [[ -f "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" ]]; then + einfo "Installing ${i} symlink" + ln -v "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" "${ED}/usr/lib/${PN}/${SLOT}/bin/${ver_i}" || die + else + ewarn "${i} symlink requested, but source file not found" + ewarn "please report this" + fi + dosym "../lib/${PN}/${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "${SLOT}/lib" "/usr/lib/${PN}/lib-${SLOT}" + use rust-analyzer && dosym "${SLOT}/libexec" "/usr/lib/${PN}/libexec-${SLOT}" + dosym "${SLOT}/share/man" "/usr/lib/${PN}/man-${SLOT}" + dosym "rust/${SLOT}/lib/rustlib" "/usr/lib/rustlib-${SLOT}" + dosym "../../lib/${PN}/${SLOT}/share/doc/rust" "/usr/share/doc/${RUST_P}" + + newenvd - "50${RUST_P}" <<-_EOF_ + MANPATH="${EPREFIX}/usr/lib/rust/man-${SLOT}" + _EOF_ + + rm -rf "${ED}/usr/lib/${PN}/${SLOT}"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/bin"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/doc"/*.old || die + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${RUST_P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${RUST_P}" + fi + if [[ ${SLOT} == *9999* ]] && use miri; then + echo /usr/bin/miri >> "${T}/provider-${RUST_P}" + echo /usr/bin/cargo-miri >> "${T}/provider-${RUST_P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${RUST_P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${RUST_P}" + fi + if use rust-analyzer; then + echo /usr/lib/rust/libexec >> "${T}/provider-${RUST_P}" + echo /usr/bin/rust-analyzer >> "${T}/provider-${RUST_P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + + if use dist; then + "${EPYTHON}" ./x.py dist -v --config="${S}"/bootstrap.toml \ + -j$(get_makeopts_jobs) || die + insinto "/usr/lib/${PN}/${SLOT}/dist" + doins -r "${S}/build/dist/." + fi +} + +pkg_postinst() { + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${RUST_PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.95.0_beta20260310.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.95.0_beta20260310.ebuild deleted file mode 100644 index 291fbe65846..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.95.0_beta20260310.ebuild +++ /dev/null @@ -1,890 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Bump notes: https://wiki.gentoo.org/wiki/Project:Rust/Rust_bump - -LLVM_COMPAT=( 22 ) -PYTHON_COMPAT=( python3_{11..14} ) - -# Patches are kept in rust-patches.git, see its README.rst for the versioning -# scheme. -# -# We use _pN from the ebuild version for the patchset but it can be overridden -# in the ebuild for changes that don't require a revbump. -# -# Uncomment this line when the ebuild needs a patchset update but no revbump. -#RUST_PATCH_VER=${PV}-1 - -RUST_MAX_VER=${PV%%_*} -RUST_PV=${PV%%_p*} -RUST_P=${PN}-${RUST_PV} -[[ -z ${RUST_PATCH_VER} ]] && RUST_PATCH_VER=${PV} - -if [[ ${PV} == *9999* ]]; then - # Update this as new `beta` releases come out. - RUST_MIN_VER="1.93.0" -elif [[ ${PV} == *beta* ]]; then - RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" -else - RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" -fi - -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature -inherit multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs -inherit verify-sig - -if [[ ${PV} = *9999* ]]; then - inherit git-r3 -elif [[ ${PV} == *beta* ]]; then - # Identify the snapshot date of the beta release: - # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz - betaver=${PV//*beta} - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" - MY_P="rustc-beta" - SRC_URI=" - https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${RUST_PV}-src.tar.xz - https://gitweb.gentoo.org/proj/rust-patches.git/snapshot/rust-patches-${RUST_PATCH_VER}.tar.bz2 - verify-sig? ( - https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc - -> rustc-${RUST_PV}-src.tar.xz.asc - ) - " - S="${WORKDIR}/${MY_P}-src" -else - MY_P="rustc-${RUST_PV}" - SRC_URI=" - https://static.rust-lang.org/dist/${MY_P}-src.tar.xz - https://gitweb.gentoo.org/proj/rust-patches.git/snapshot/rust-patches-${RUST_PATCH_VER}.tar.bz2 - verify-sig? ( https://static.rust-lang.org/dist/${MY_P}-src.tar.xz.asc ) - " - S="${WORKDIR}/${MY_P}-src" - - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" -fi - -DESCRIPTION="Systems programming language originally developed by Mozilla" -HOMEPAGE="https://www.rust-lang.org/" - -# keep in sync with llvm ebuild of the same version as bundled one. -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai ) -ALL_LLVM_TARGETS+=( LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV ) -ALL_LLVM_TARGETS+=( SystemZ VE WebAssembly X86 XCore Xtensa ) -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) -LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} - -# https://github.com/rust-lang/llvm-project/blob/rustc-1.87.0/llvm/CMakeLists.txt -_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k Xtensa ) -declare -A ALL_RUST_EXPERIMENTAL_TARGETS -for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do - ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 -done - -# Bare metal targets which can be built on the host system and have no -# dependency on compiler runtime, libc and unwinder. -ALL_RUST_SYSROOTS=( bpf wasm ) -ALL_RUST_SYSROOTS=( "${ALL_RUST_SYSROOTS[@]/#/rust_sysroots_}" ) - -LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" -SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable - -IUSE="big-endian +clippy cpu_flags_x86_sse2 debug dist +doc llvm-libunwind lto" -IUSE+=" +rustfmt rust-analyzer rust-src +system-llvm test" -IUSE+=" ${ALL_LLVM_TARGETS[*]} ${ALL_RUST_SYSROOTS[*]}" - -if [[ ${PV} = *9999* ]]; then - # These USE flags require nightly rust - IUSE+=" miri" -fi - -LLVM_DEPEND=() -# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation -for _x in "${ALL_LLVM_TARGETS[@]}"; do - LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}=]") )" ) - if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then - ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 - fi -done -LLVM_DEPEND+=( " rust_sysroots_wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) -LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) - -# dev-libs/oniguruma is used for documentation -BDEPEND=" - ${PYTHON_DEPS} - app-eselect/eselect-rust - dev-libs/oniguruma - || ( - >=sys-devel/gcc-4.7[cxx] - >=llvm-core/clang-3.5 - ) - lto? ( system-llvm? ( - || ( - $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') - sys-devel/mold - ) - ) ) - rust_sysroots_wasm? ( llvm-core/clang ) - !system-llvm? ( - >=dev-build/cmake-3.13.4 - app-alternatives/ninja - ) - test? ( dev-debug/gdb ) - verify-sig? ( sec-keys/openpgp-keys-rust ) -" - -DEPEND=" - >=app-arch/xz-utils-5.2 - net-misc/curl:=[http2,ssl] - virtual/zlib:= - dev-libs/openssl:0= - system-llvm? ( - ${LLVM_DEPEND[*]} - llvm-libunwind? ( llvm-runtimes/libunwind:= ) - ) - !system-llvm? ( - !llvm-libunwind? ( - elibc_musl? ( sys-libs/libunwind:= ) - ) - ) -" - -RDEPEND=" - ${DEPEND} - app-eselect/eselect-rust - dev-lang/rust-common - sys-apps/lsb-release - !dev-lang/rust:stable - !dev-lang/rust-bin:stable -" - -REQUIRED_USE=" - || ( ${ALL_LLVM_TARGETS[*]} ) - rust-analyzer? ( rust-src ) - test? ( ${ALL_LLVM_TARGETS[*]} ) - rust_sysroots_bpf? ( llvm_targets_BPF ) - rust_sysroots_wasm? ( llvm_targets_WebAssembly ) - x86? ( cpu_flags_x86_sse2 ) -" - -# we don't use cmake.eclass, but can get a warning -CMAKE_WARN_UNUSED_CLI=no - -QA_FLAGS_IGNORED=" - usr/lib/${PN}/${SLOT}/bin/.* - usr/lib/${PN}/${SLOT}/libexec/.* - usr/lib/${PN}/${SLOT}/lib/lib.*.so - usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/.* - usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so -" - -QA_SONAME=" - usr/lib/${PN}/${SLOT}/lib/lib.*.so.* - usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so -" - -QA_PRESTRIPPED=" - usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-llvm-dwp - usr/lib/${PN}/${SLOT}/lib/rustlib/.*/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-${RUST_PV}-src.tar.xz{,.asc} - default - else - default - fi -} - -src_prepare() { - # Commit patches to the appropriate branch in proj/rust-patches.git - # then cut a new tag / tarball. Don't add patches to ${FILESDIR} - PATCHES=( - "${WORKDIR}/rust-patches-${RUST_PATCH_VER}/" - ) - - if use lto && tc-is-clang && ! tc-ld-is-lld && ! tc-ld-is-mold; then - export RUSTFLAGS+=" -C link-arg=-fuse-ld=lld" - fi - - default -} - -src_configure() { - if tc-is-cross-compiler; then - export PKG_CONFIG_ALLOW_CROSS=1 - 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 - - # TODO: Add optimized-compiler-builtins for system-llvm to avoid - # building bundled compiler-rt. - cat <<- _EOF_ > "${S}"/bootstrap.toml - # Suppresses a warning about tracking changes which we don't care about. - change-id = "ignore" - # https://github.com/rust-lang/rust/issues/135358 (bug #947897) - profile = "dist" - [llvm] - download-ci-llvm = false - optimize = $(toml_usex !debug) - release-debuginfo = $(toml_usex debug) - assertions = $(toml_usex debug) - ninja = true - targets = "${LLVM_TARGETS// /;}" - experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" - link-shared = $(toml_usex system-llvm) - $(if is_libcxx_linked; then - # https://bugs.gentoo.org/732632 - echo "use-libcxx = true" - echo "static-libstdcpp = false" - fi) - $(case "${rust_target}" in - i586-*-linux-*) - # https://github.com/rust-lang/rust/issues/93059 - echo 'cflags = "-fcf-protection=none"' - echo 'cxxflags = "-fcf-protection=none"' - echo 'ldflags = "-fcf-protection=none"' - ;; - *) - ;; - esac) - enable-warnings = false - [llvm.build-config] - CMAKE_VERBOSE_MAKEFILE = "ON" - $(if ! tc-is-cross-compiler; then - # When cross-compiling, LLVM is compiled twice, once for host and - # once for target. Unfortunately, this build configuration applies - # to both, which means any flags applicable to one target but not - # the other will break. Conditionally disable respecting user - # flags when cross-compiling. - echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\"" - echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\"" - echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" - echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" - echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" - echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\"" - fi) - [build] - build-stage = 2 - test-stage = 2 - build = "${rust_build}" - host = ["${rust_host}"] - target = [${rust_targets}] - cargo = "${rust_stage0_root}/bin/cargo" - rustc = "${rust_stage0_root}/bin/rustc" - rustfmt = "${rust_stage0_root}/bin/rustfmt" - description = "gentoo" - docs = $(toml_usex doc) - compiler-docs = false - submodules = false - python = "${EPYTHON}" - locked-deps = true - vendor = true - extended = true - tools = [${tools}] - verbose = 2 - sanitizers = false - profiler = true - cargo-native-static = false - [install] - prefix = "${EPREFIX}/usr/lib/${PN}/${SLOT}" - sysconfdir = "etc" - docdir = "share/doc/rust" - bindir = "bin" - libdir = "lib" - mandir = "share/man" - [rust] - # https://github.com/rust-lang/rust/issues/54872 - codegen-units-std = 1 - optimize = true - debug = $(toml_usex debug) - debug-assertions = $(toml_usex debug) - debug-assertions-std = $(toml_usex debug) - debuginfo-level = $(usex debug 2 0) - debuginfo-level-rustc = $(usex debug 2 0) - debuginfo-level-std = $(usex debug 2 0) - debuginfo-level-tools = $(usex debug 2 0) - debuginfo-level-tests = 0 - backtrace = true - incremental = false - $(if ! tc-is-cross-compiler; then - echo "default-linker = \"${CHOST}-cc\"" - fi) - channel = "${build_channel}" - rpath = true - verbose-tests = true - optimize-tests = $(toml_usex !debug) - codegen-tests = true - omit-git-hash = false - dist-src = false - remap-debuginfo = true - lld = $(usex system-llvm false $(toml_usex rust_sysroots_wasm)) - $(if use lto && tc-is-clang && ! tc-ld-is-mold; then - echo "use-lld = true" - fi) - # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it - # https://github.com/rust-lang/rust/issues/74976 - # https://github.com/rust-lang/rust/issues/76526 - deny-warnings = $(usex rust_sysroots_wasm $(usex doc false true) true) - backtrace-on-ice = true - jemalloc = false - # See https://github.com/rust-lang/rust/issues/121124 - lto = "$(usex lto thin off)" - [dist] - src-tarball = false - compression-formats = ["xz"] - compression-profile = "balanced" - _EOF_ - - for v in $(multilib_get_enabled_abi_pairs); do - rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) - arch_cflags="$(get_abi_CFLAGS ${v##*.})" - - export CFLAGS_${rust_target//-/_}="${arch_cflags}" - - cat <<- _EOF_ >> "${S}"/bootstrap.toml - [target.${rust_target}] - ar = "$(tc-getAR)" - cc = "$(tc-getCC)" - cxx = "$(tc-getCXX)" - linker = "$(tc-getCC)" - ranlib = "$(tc-getRANLIB)" - llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)" - _EOF_ - if use system-llvm; then - cat <<- _EOF_ >> "${S}"/bootstrap.toml - llvm-config = "$(get_llvm_prefix)/bin/llvm-config" - _EOF_ - fi - # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; - # but we patch it and set to false here as well - if use elibc_musl; then - cat <<- _EOF_ >> "${S}"/bootstrap.toml - crt-static = false - musl-root = "$($(tc-getCC) -print-sysroot)/usr" - _EOF_ - fi - done - if use rust_sysroots_wasm; then - wasm_target="wasm32-unknown-unknown" - if tc-is-clang; then - local wasm_cc=$(tc-getCC) - local wasm_cxx=$(tc-getCXX) - else - local wasm_cc=${CHOST}-clang - local wasm_cxx=${CHOST}-clang++ - fi - export CFLAGS_${wasm_target//-/_}="$( - CC="${wasm_cc} --target=wasm32-unknown-unknown" - filter-flags '-mcpu*' '-march*' '-mtune*' - strip-unsupported-flags - echo "${CFLAGS}" - )" - cat <<- _EOF_ >> "${S}"/bootstrap.toml - [target.wasm32-unknown-unknown] - cc = "${wasm_cc}" - cxx = "${wasm_cxx}" - linker = "$(usex system-llvm lld rust-lld)" - # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483 - profiler = false - _EOF_ - fi - - if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below - # experimental cross support - # discussion: https://bugs.gentoo.org/679878 - # TODO: c*flags, clang, system-llvm, cargo.eclass target support - # it would be much better if we could split out stdlib - # complilation to separate ebuild and abuse CATEGORY to - # just install to /usr/lib/rustlib/ - - # extra targets defined as a bash array - # spec format: :: - # best place would be /etc/portage/env/dev-lang/rust - # Example: - # RUST_CROSS_TARGETS=( - # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu" - # ) - # no extra hand holding is done, no target transformations, all - # values are passed as-is with just basic checks, so it's up to user to supply correct values - # valid rust targets can be obtained with - # rustc --print target-list - # matching cross toolchain has to be installed - # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one) - # only gcc toolchains installed with crossdev are checked for now. - - # BUG: we can't pass host flags to cross compiler, so just filter for now - # BUG: this should be more fine-grained. - filter-flags '-mcpu=*' '-march=*' '-mtune=*' - - local cross_target_spec - for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do - # extracts first element form :: - local cross_llvm_target="${cross_target_spec%%:*}" - # extracts toolchain triples, : - local cross_triples="${cross_target_spec#*:}" - # extracts first element after before : separator - local cross_rust_target="${cross_triples%%:*}" - # extracts last element after : separator - local cross_toolchain="${cross_triples##*:}" - use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled" - command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain" - - cat <<- _EOF_ >> "${S}"/bootstrap.toml - [target.${cross_rust_target}] - ar = "${cross_toolchain}-ar" - cc = "${cross_toolchain}-gcc" - cxx = "${cross_toolchain}-g++" - linker = "${cross_toolchain}-gcc" - ranlib = "${cross_toolchain}-ranlib" - _EOF_ - if use system-llvm; then - cat <<- _EOF_ >> "${S}"/bootstrap.toml - llvm-config = "$(get_llvm_prefix)/bin/llvm-config" - _EOF_ - fi - if [[ "${cross_toolchain}" == *-musl* ]]; then - cat <<- _EOF_ >> "${S}"/bootstrap.toml - musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr" - _EOF_ - fi - if [[ "${cross_rust_target}" == *-uefi ]]; then - # Profiler is not supported on bare-metal - cat <<- _EOF_ >> "${S}"/bootstrap.toml - profiler = false - _EOF_ - fi - - # append cross target to "normal" target list - # example 'target = ["powerpc64le-unknown-linux-gnu"]' - # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]' - - rust_targets="${rust_targets},\"${cross_rust_target}\"" - sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" bootstrap.toml || die - - ewarn - ewarn "Enabled ${cross_rust_target} rust target" - ewarn "Using ${cross_toolchain} cross toolchain" - ewarn - if ! has_version -b 'sys-devel/binutils[multitarget]' ; then - ewarn "'sys-devel/binutils[multitarget]' is not installed" - ewarn "'strip' will be unable to strip cross libraries" - ewarn "cross targets will be installed with full debug information" - ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files" - ewarn - ewarn "Alternatively llvm-strip can be used, it supports stripping any target" - ewarn "define STRIP=\"llvm-strip\" to use it (experimental)" - ewarn - fi - done - fi # I_KNOW_WHAT_I_AM_DOING_CROSS - - einfo "Rust configured with the following flags:" - echo - echo RUSTFLAGS="\"${RUSTFLAGS}\"" - echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\"" - echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\"" - echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\"" - env | grep "CARGO_TARGET_.*_RUSTFLAGS=" - env | grep "CFLAGS_.*" - echo - einfo "bootstrap.toml contents:" - cat "${S}"/bootstrap.toml || die - echo -} - -src_compile() { - # -v will show invocations, -vv "very verbose" is overkill, -vvv "very very verbose" is insane - RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -v --config="${S}"/bootstrap.toml -j$(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/ - - # bash-completion files are installed by dev-lang/rust-common instead - # bug #689562, #689160. - rm -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d/cargo" || die - rmdir -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d" || die - - local symlinks=( - cargo - rustc - rustdoc - rust-gdb - rust-gdbgui - rust-lldb - ) - - use clippy && symlinks+=( clippy-driver cargo-clippy ) - if [[ ${PV} = *9999* ]]; then - use miri && symlinks+=( miri cargo-miri ) - fi - use rustfmt && symlinks+=( rustfmt cargo-fmt ) - use rust-analyzer && symlinks+=( rust-analyzer ) - - einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}" - local i - for i in "${symlinks[@]}"; do - # we need realpath on /usr/bin/* symlink return version-appended binary path. - # so /usr/bin/rustc should point to /usr/lib/rust//bin/rustc- - # need to fix eselect-rust to remove this hack. - local ver_i="${i}-${RUST_PV%%_*}" - if [[ -f "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" ]]; then - einfo "Installing ${i} symlink" - ln -v "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" "${ED}/usr/lib/${PN}/${SLOT}/bin/${ver_i}" || die - else - ewarn "${i} symlink requested, but source file not found" - ewarn "please report this" - fi - dosym "../lib/${PN}/${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" - done - - # symlinks to switch components to active rust in eselect - dosym "${SLOT}/lib" "/usr/lib/${PN}/lib-${SLOT}" - use rust-analyzer && dosym "${SLOT}/libexec" "/usr/lib/${PN}/libexec-${SLOT}" - dosym "${SLOT}/share/man" "/usr/lib/${PN}/man-${SLOT}" - dosym "rust/${SLOT}/lib/rustlib" "/usr/lib/rustlib-${SLOT}" - dosym "../../lib/${PN}/${SLOT}/share/doc/rust" "/usr/share/doc/${RUST_P}" - - newenvd - "50${RUST_P}" <<-_EOF_ - MANPATH="${EPREFIX}/usr/lib/rust/man-${SLOT}" - _EOF_ - - rm -rf "${ED}/usr/lib/${PN}/${SLOT}"/*.old || die - rm -rf "${ED}/usr/lib/${PN}/${SLOT}/bin"/*.old || die - rm -rf "${ED}/usr/lib/${PN}/${SLOT}/doc"/*.old || die - - # note: eselect-rust adds EROOT to all paths below - cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" - /usr/bin/cargo - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-gdbgui - /usr/bin/rust-lldb - /usr/lib/rustlib - /usr/lib/rust/lib - /usr/lib/rust/man - /usr/share/doc/rust - _EOF_ - - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${RUST_P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${RUST_P}" - fi - if [[ ${SLOT} == *9999* ]] && use miri; then - echo /usr/bin/miri >> "${T}/provider-${RUST_P}" - echo /usr/bin/cargo-miri >> "${T}/provider-${RUST_P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${RUST_P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${RUST_P}" - fi - if use rust-analyzer; then - echo /usr/lib/rust/libexec >> "${T}/provider-${RUST_P}" - echo /usr/bin/rust-analyzer >> "${T}/provider-${RUST_P}" - fi - - insinto /etc/env.d/rust - doins "${T}/provider-${PN}-${SLOT}" - - if use dist; then - "${EPYTHON}" ./x.py dist -v --config="${S}"/bootstrap.toml -j$(makeopts_jobs) || die - insinto "/usr/lib/${PN}/${SLOT}/dist" - doins -r "${S}/build/dist/." - fi -} - -pkg_postinst() { - eselect rust update - - if has_version dev-debug/gdb || has_version llvm-core/lldb; then - elog "Rust installs helper scripts for calling GDB and LLDB," - elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${RUST_PV}." - fi - - if has_version app-editors/emacs; then - optfeature "emacs support for rust" app-emacs/rust-mode - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - optfeature "vim support for rust" app-vim/rust-vim - fi -} - -pkg_postrm() { - eselect rust cleanup -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-9999.ebuild index 3739d543bf8..fd3d8356242 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 @@ -15,7 +15,7 @@ PYTHON_COMPAT=( python3_{11..14} ) # in the ebuild for changes that don't require a revbump. # # Uncomment this line when the ebuild needs a patchset update but no revbump. -#RUST_PATCH_VER=${PV}-1 +# RUST_PATCH_VER=${PV}-1 RUST_MAX_VER=${PV%%_*} RUST_PV=${PV%%_p*} @@ -135,7 +135,8 @@ BDEPEND=" DEPEND=" >=app-arch/xz-utils-5.2 - net-misc/curl:=[http2,ssl] + dev-db/sqlite:3 + net-misc/curl[http2,ssl] virtual/zlib:= dev-libs/openssl:0= system-llvm? ( @@ -185,6 +186,7 @@ QA_SONAME=" QA_PRESTRIPPED=" usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-llvm-dwp + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-objcopy usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/self-contained/crtn.o " @@ -323,8 +325,9 @@ src_unpack() { # 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" + ${EPYTHON} "${S}"/x.py vendor -v --config="${T}"/vendor-bootstrap.toml \ + -j$(get_makeopts_jobs) || + die "Failed to vendor dependencies" # TODO: This has to be generated somehow, this is from a 1.84.x tarball I had lying around. cat <<- _EOF_ > "${S}/.cargo/config.toml" [source.crates-io] @@ -370,9 +373,7 @@ src_configure() { # 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 + export LIBSQLITE3_SYS_USE_PKG_CONFIG=1 filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 @@ -715,7 +716,8 @@ src_configure() { 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 + RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -v \ + --config="${S}"/bootstrap.toml -j$(get_makeopts_jobs) || die } src_test() { @@ -723,18 +725,25 @@ src_test() { # those are basic and codegen tests. local tests=( - codegen codegen-units - compile-fail + crashes + codegen-llvm incremental mir-opt pretty run-make + run-make-cargo + ) + + # tests for standard and core library + local std_tests=( + std + core ) # fails if llvm is not built with ALL targets. # and known to fail with system llvm sometimes. - use system-llvm || tests+=( assembly ) + use system-llvm || tests+=( assembly-llvm ) # fragile/expensive/less important tests # or tests that require extra builds @@ -745,19 +754,18 @@ src_test() { 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: enabled tests ${tests[@]} ${std_tests[@]}" + for i in "tests/${tests[@]}" "library/${std_tests[@]}"; do + local t="${i}" einfo "rust_src_test: running ${t}" if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/bootstrap.toml \ - -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}" + -j$(get_makeopts_jobs) --no-doc --no-fail-fast "${t}" then failed+=( "${t}" ) eerror "rust_src_test: ${t} failed" @@ -771,7 +779,8 @@ src_test() { } src_install() { - DESTDIR="${D}" "${EPYTHON}" ./x.py install -v --config="${S}"/bootstrap.toml -j$(makeopts_jobs) || die + DESTDIR="${D}" "${EPYTHON}" ./x.py install -v \ + --config="${S}"/bootstrap.toml -j$(get_makeopts_jobs) || die docompress /usr/lib/${PN}/${SLOT}/share/man/ @@ -862,7 +871,8 @@ src_install() { doins "${T}/provider-${PN}-${SLOT}" if use dist; then - "${EPYTHON}" ./x.py dist -v --config="${S}"/bootstrap.toml -j$(makeopts_jobs) || die + "${EPYTHON}" ./x.py dist -v --config="${S}"/bootstrap.toml \ + -j$(get_makeopts_jobs) || die insinto "/usr/lib/${PN}/${SLOT}/dist" doins -r "${S}/build/dist/." fi diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/swig/Manifest b/sdk_container/src/third_party/portage-stable/dev-lang/swig/Manifest index 70832da00e4..49b8925910f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/swig/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-lang/swig/Manifest @@ -1,3 +1,4 @@ DIST swig-4.1.1.tar.gz 8600805 BLAKE2B 898d3405f20c3e49626fb808b568e77c69b81ec2401c0a0c406f9e7a3d7d218353dc8b8ae88a3d485ddfc3be659971b961ee2c89d5b0c75aed0688e0952fd208 SHA512 1cea1918455a75ebc9b2653dd1715bd5dcd974554955f324295c6a6f14c0a715651b221b85fad4a8af5197e0c75bfe7b590bc6ba7178c26245fbbd9a7e110100 DIST swig-4.2.1.tar.gz 8364050 BLAKE2B 0acffd4794d09f2347d669d1460a794c03f136ab3ddc6623741e182ff52b6bf5f639c736e38540918ebb1abbe36c2ce1957aef8a429f1a716d9c5361175569bf SHA512 019dee5a46d57e1030eef47cd5d007ccaadbdcd4e53cd30d7c795f0118ecf4406a78185534502c81c5f6d7bac0713256e7e19b20b5a2d14e2c552219edbaf5cf DIST swig-4.3.1.tar.gz 8620774 BLAKE2B cd47eb3f9bf7c7e2f1583a58c4416275720b55754abd05c61636e68ac36e6b5899b293e55cf680071257017b53b95e7a2fd8983ca4effc7e98bb7af4dac5e026 SHA512 8958f7bc3345549a9bc4e00aa8d40a99f6c4bb92b95d627c8796cf8f8d1ba0041a89cab542f171778c2b26aa2a877767181ae9bd2c05fd055f373a32a463399c +DIST swig-4.4.1.tar.gz 8658358 BLAKE2B 06fdcda2de0b0acf341949e0d60e284b5cd326a1f0f1d0985e387c936ef8d87fb98ea14a260ca22c19634f297f7331ed44989da07a47ee9333630397846e4db1 SHA512 103ddb4a5914f28e6739a006d35042c701e55ba05066acff3f3609befb5f43f253ea717fc41d06c93d8fb187ded4399c12c94665b93dc06d0fb835069391c7c7 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/swig/swig-4.3.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/swig/swig-4.3.1.ebuild index 2d4985d3b87..a5ad891992f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/swig/swig-4.3.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/swig/swig-4.3.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -11,7 +11,7 @@ SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz" LICENSE="GPL-3+ BSD BSD-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="ccache doc pcre test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/swig/swig-4.4.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/swig/swig-4.4.1.ebuild new file mode 100644 index 00000000000..74e6dc6346e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/swig/swig-4.4.1.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="Simplified Wrapper and Interface Generator" +HOMEPAGE="http://www.swig.org/ https://github.com/swig/swig" +SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz" + +LICENSE="GPL-3+ BSD BSD-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="ccache doc pcre test" +RESTRICT="!test? ( test )" + +RDEPEND=" + pcre? ( dev-libs/libpcre2 ) + ccache? ( virtual/zlib:= ) +" +DEPEND=" + ${RDEPEND} + test? ( dev-libs/boost ) +" +BDEPEND="virtual/pkgconfig" + +DOCS=( ANNOUNCE CHANGES CHANGES.current README TODO ) + +src_configure() { + # TODO: add USE for various langs? (https://bugs.gentoo.org/921504#c3) + econf \ + PKGCONFIG="$(tc-getPKG_CONFIG)" \ + --without-maximum-compile-warnings \ + $(use_enable ccache) \ + $(use_with pcre) +} + +src_compile() { + # Override these variables per Makefile.in to get verbose logs + emake FLAGS="-k" RUNPIPE="" +} + +src_test() { + # The tests won't get run w/o an explicit call, broken Makefiles? + # java skipped for bug #921504 + # *-sections for bug #935318 + emake check \ + skip-java=true \ + FLAGS="-k" \ + RUNPIPE="" \ + CFLAGS="${CFLAGS} -ffunction-sections -fdata-sections" \ + CXXFLAGS="${CXXFLAGS} -std=c++20 -ffunction-sections -fdata-sections" \ + LDFLAGS="${LDFLAGS}" +} + +src_install() { + default + + if use doc; then + docinto html + dodoc -r Doc/{Devel,Manual} + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/cJSON/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/cJSON/Manifest index 0e6abd00b06..f16d3b7f123 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/cJSON/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/cJSON/Manifest @@ -1,2 +1 @@ -DIST cJSON-1.7.18.tar.gz 354726 BLAKE2B 293c483ed39028a23a49994698be69de16274500298893711d5767c381f51802c52f4981e074b26fd9174c186f9874fdc1811f49272c1b90f8fb82a1a315db60 SHA512 2accb507c6b97222eb5f0232c015b356cf6d248d1247049928731aa8e897378245e62395c232b1ec57d28d1e53ac72c849be85e59c33616a382d40473649f66b DIST cJSON-1.7.19.tar.gz 356247 BLAKE2B d668290f2a9de4a5a38ddfee3999f5d49947e79bfb0a8701cbad836b131bb29f2ddc8ea00a10956bcd81d8bf25d0fc7b4ec46beaed185dfbd053c685db213bd8 SHA512 7b22bdd05b8e0bf8b24ab79db128dbab9f8c2c167f4b1d3073922b8ff1e0f0e8917322283d6d4091002f014f42692984f4f641761f05965d3b66fb3eca14dc46 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/cJSON/cJSON-1.7.18.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/cJSON/cJSON-1.7.18.ebuild deleted file mode 100644 index d9ca2f73c0a..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/cJSON/cJSON-1.7.18.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright 2021-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake - -DESCRIPTION="Ultralightweight JSON parser in ANSI C" -HOMEPAGE="https://github.com/DaveGamble/cJSON" -SRC_URI="https://github.com/DaveGamble/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86" -IUSE="test" -RESTRICT="!test? ( test )" - -PATCHES=( - "${FILESDIR}"/${PV}-cmake4.patch -) - -src_prepare() { - cmake_src_prepare - - sed -i -e '/-Werror/d' CMakeLists.txt || die -} - -src_configure() { - local mycmakeargs=( - -DENABLE_CJSON_TEST=$(usex test) - ) - - cmake_src_configure -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/Manifest index e398a01a33a..bba83f6ddcf 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/Manifest @@ -2,3 +2,5 @@ DIST elfutils-0.193.tar.bz2 11974916 BLAKE2B 3ddda695e92c76d0f98432b65d51737bdeb DIST elfutils-0.193.tar.bz2.sig 310 BLAKE2B 2c5626af37031e6dbf1f94ca2d5622f978a50c7cbf412c33924585dc7261e0c7fe3f55d91121a9a3ae9cc092c4e1879a34cf145fdc19607ad6db065bbed8b605 SHA512 75f3935c4a519dc0b23e59e2e6f2bae7926c988aec484f2e1f0759cf7662eca1752f02c16b2f129fee0d7451e961322cf9a315c4ce23e91520f4779ed9fda713 DIST elfutils-0.194.tar.bz2 12003321 BLAKE2B dd1fd1ba83330aa3313bd96614851a59411ea8e1004afda23791296de03960db5e193ee9ded4dd159d80c954efecc2cb5438cce986817d537c72d5ff887faf16 SHA512 5d00502f61b92643bf61dc61da4ddded36c423466388d992bcd388c5208761b8ed9db1a01492c085cd0984eef30c08f895a8e307e78e0df8df40b56ae35b78a5 DIST elfutils-0.194.tar.bz2.sig 310 BLAKE2B f43c370c339038a4894700984c501c7120a139763a7369f6fabc918c6c842dd50fff19d999a005939f9f049d0cf2c2a4f000e32fbc55afd8abdb67d82aefa90e SHA512 12d90f66dfa37544fb6b368099fac3eae9487188b0ce49409ae5c647c1fa3c68582efc5216a758d830e3775d5686ac2605dba600ad258f27ae99d5ce1094b624 +DIST elfutils-0.195.tar.bz2 12032640 BLAKE2B 7ad84f87ba24a0edd3d1885a232e63f454509f3d229952d2c9b85dd76baa6b150e022bbce70fc3e89b57f5c606ed3862178c693e3638bf22b891c5798e7c624a SHA512 e1e1fdf4f7f72bf520deb0103bb8fd208dc247bab14af100c6fb56d38c0ef6c6d54ff5bd15b84e4f70e2b2ea481e5999fea2842360f8932a861122df79b5fc8f +DIST elfutils-0.195.tar.bz2.sig 310 BLAKE2B 6d0aef5b189ea74b9b019d8d46b565f04b4216955967515f5179e63d78259ba42badfc166ab90c7e12ee5c467f5dbdb30e8244ea5c5d4b499c927db9cf1cf761 SHA512 a5e11ce7752d0fac6e809aea61b6a5bbd1141d8c52c2f741ddd32b93af97af43aa555a99a45feac3bc34381570f2e7fb281f8aff53f74e3b5e64c56eb1d9d2c5 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.194-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.194-r2.ebuild deleted file mode 100644 index a97f8bc8fc0..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.194-r2.ebuild +++ /dev/null @@ -1,161 +0,0 @@ -# Copyright 2003-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/elfutils.gpg -inherit autotools flag-o-matic multilib-minimal - -DESCRIPTION="Libraries/utilities to handle ELF objects (drop in replacement for libelf)" -HOMEPAGE="https://sourceware.org/elfutils/" -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://sourceware.org/git/elfutils.git" - inherit git-r3 - - BDEPEND=" - sys-devel/bison - sys-devel/flex - " -else - inherit verify-sig - SRC_URI="https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2" - SRC_URI+=" verify-sig? ( https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2.sig )" - - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - - BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-elfutils-20240301 )" -fi - -LICENSE="|| ( GPL-2+ LGPL-3+ ) utils? ( GPL-3+ )" -SLOT="0" -IUSE="bzip2 +debuginfod +libarchive +lzma nls static-libs stacktrace test +utils valgrind zstd" -RESTRICT="!test? ( test )" -REQUIRED_USE="debuginfod? ( libarchive )" - -RDEPEND=" - !dev-libs/libelf - >=virtual/zlib-1.2.8-r1:=[static-libs?,${MULTILIB_USEDEP}] - bzip2? ( >=app-arch/bzip2-1.0.6-r4[static-libs?,${MULTILIB_USEDEP}] ) - debuginfod? ( - dev-db/sqlite:3= - >=dev-libs/json-c-0.11:= - >=net-libs/libmicrohttpd-0.9.33:= - >=net-misc/curl-7.29.0[static-libs?] - ) - libarchive? ( >=app-arch/libarchive-3.1.2:= ) - lzma? ( >=app-arch/xz-utils-5.0.5-r1[static-libs?,${MULTILIB_USEDEP}] ) - stacktrace? ( dev-util/sysprof ) - zstd? ( app-arch/zstd:=[static-libs?,${MULTILIB_USEDEP}] ) - elibc_musl? ( - dev-libs/libbsd - sys-libs/argp-standalone - sys-libs/fts-standalone - sys-libs/obstack-standalone - ) -" -DEPEND=" - ${RDEPEND} - valgrind? ( dev-debug/valgrind ) -" -BDEPEND+=" - sys-devel/m4 - virtual/pkgconfig - nls? ( sys-devel/gettext ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-0.189-musl-aarch64-regs.patch - "${FILESDIR}"/${PN}-0.191-musl-macros.patch - "${FILESDIR}"/${P}-tests.patch - "${FILESDIR}"/${PN}-0.194-hurd.patch -) - -src_prepare() { - default - - eautoreconf - - if ! use static-libs; then - sed -i -e '/^lib_LIBRARIES/s:=.*:=:' -e '/^%.os/s:%.o$::' lib{asm,dw,elf}/Makefile.in || die - fi - - # TODO: Fails with some CFLAGS - # " __divhc3: /var/tmp/portage/dev-libs/elfutils-0.193/work/elfutils-0.193-abi_x86_32.x86/tests/funcretval: - # dwfl_module_return_value_location: cannot handle DWARF type description" - printf "#!/bin/sh\nexit 77" > tests/run-native-test.sh || die - # TODO: Fails for abi_x86_32 w/ DT_RELR - # "section [14] '.rel.plt': relocation 55: relocation type invalid for the file type" - printf "#!/bin/sh\nexit 77" > tests/run-elflint-self.sh || die - printf "#!/bin/sh\nexit 77" > tests/run-reverse-sections-self.sh || die - # TODO: Fails with SFrames - printf "#!/bin/sh\nexit 77" > tests/run-strip-strmerge.sh || die - - # https://sourceware.org/PR23914 - sed -i 's:-Werror::' */Makefile.in || die -} - -src_configure() { - # bug #407135 - use test && append-flags -g - - # bug 660738 - filter-flags -fno-asynchronous-unwind-tables - - use debuginfod && MULTILIB_WRAPPED_HEADERS+=( /usr/include/elfutils/debuginfod.h ) - - multilib-minimal_src_configure -} - -multilib_src_configure() { - unset LEX YACC - - local myeconfargs=( - $(use_enable nls) - $(multilib_native_use_enable debuginfod) - # Could do dummy if needed? We could also split libdebuginfod - # (client support) into its own USE if required. - $(multilib_native_use_enable debuginfod libdebuginfod) - $(multilib_native_use_enable stacktrace) - $(use_enable valgrind valgrind-annotations) - - # Explicitly disable thread safety, it's not recommended by upstream - # (marked experimental in configure) and doesn't build either on musl. - --disable-thread-safety - - # Valgrind option is just for running tests under it; dodgy under sandbox - # and indeed even w/ glibc with newer instructions. - --disable-valgrind - --program-prefix="eu-" - --with-zlib - $(use_with bzip2 bzlib) - $(multilib_native_use_with libarchive) - $(use_with lzma) - $(use_with zstd) - ) - - [[ ${PV} == 9999 ]] && myeconfargs+=( --enable-maintainer-mode ) - - # Needed because sets alignment macro - is-flagq -fsanitize=address && myeconfargs+=( --enable-sanitize-address ) - is-flagq -fsanitize=undefined && myeconfargs+=( --enable-sanitize-undefined ) - - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" -} - -multilib_src_test() { - env LD_LIBRARY_PATH="${BUILD_DIR}/libelf:${BUILD_DIR}/libebl:${BUILD_DIR}/libdw:${BUILD_DIR}/libasm" \ - LC_ALL="C" \ - emake check VERBOSE=1 -} - -multilib_src_install_all() { - einstalldocs - - dodoc NOTES - - # These build quick, and are needed for most tests, so we don't - # disable building them when the USE flag is disabled. - if ! use utils; then - rm -rf "${ED}"/usr/bin || die - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.194-r3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.194-r3.ebuild new file mode 100644 index 00000000000..3790c0e3521 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.194-r3.ebuild @@ -0,0 +1,164 @@ +# Copyright 2003-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/elfutils.gpg +inherit autotools flag-o-matic multilib-minimal + +DESCRIPTION="Libraries/utilities to handle ELF objects (drop in replacement for libelf)" +HOMEPAGE="https://sourceware.org/elfutils/" +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://sourceware.org/git/elfutils.git" + inherit git-r3 + + BDEPEND=" + sys-devel/bison + sys-devel/flex + " +else + inherit verify-sig + SRC_URI="https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2" + SRC_URI+=" verify-sig? ( https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2.sig )" + + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" + + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-elfutils-20240301 )" +fi + +LICENSE="|| ( GPL-2+ LGPL-3+ ) utils? ( GPL-3+ )" +SLOT="0" +IUSE="bzip2 +debuginfod +libarchive +lzma nls static-libs stacktrace test +utils valgrind zstd" +RESTRICT="!test? ( test )" +REQUIRED_USE="debuginfod? ( libarchive )" + +RDEPEND=" + !dev-libs/libelf + >=virtual/zlib-1.2.8-r1:=[static-libs?,${MULTILIB_USEDEP}] + bzip2? ( >=app-arch/bzip2-1.0.6-r4[static-libs?,${MULTILIB_USEDEP}] ) + debuginfod? ( + dev-db/sqlite:3= + >=dev-libs/json-c-0.11:= + >=net-libs/libmicrohttpd-0.9.33:= + >=net-misc/curl-7.29.0[static-libs?] + ) + libarchive? ( >=app-arch/libarchive-3.1.2:= ) + lzma? ( >=app-arch/xz-utils-5.0.5-r1[static-libs?,${MULTILIB_USEDEP}] ) + stacktrace? ( dev-util/sysprof ) + zstd? ( app-arch/zstd:=[static-libs?,${MULTILIB_USEDEP}] ) + elibc_musl? ( + dev-libs/libbsd + sys-libs/argp-standalone + sys-libs/fts-standalone + sys-libs/obstack-standalone + ) +" +DEPEND=" + ${RDEPEND} + valgrind? ( dev-debug/valgrind ) +" +BDEPEND+=" + sys-devel/m4 + virtual/pkgconfig + nls? ( sys-devel/gettext ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-0.189-musl-aarch64-regs.patch + "${FILESDIR}"/${PN}-0.191-musl-macros.patch + "${FILESDIR}"/${P}-tests.patch + "${FILESDIR}"/${PN}-0.194-hurd.patch +) + +src_prepare() { + default + + eautoreconf + + if ! use static-libs; then + sed -i -e '/^lib_LIBRARIES/s:=.*:=:' -e '/^%.os/s:%.o$::' lib{asm,dw,elf}/Makefile.in || die + fi + + # TODO: Fails with some CFLAGS + # " __divhc3: /var/tmp/portage/dev-libs/elfutils-0.193/work/elfutils-0.193-abi_x86_32.x86/tests/funcretval: + # dwfl_module_return_value_location: cannot handle DWARF type description" + printf "#!/bin/sh\nexit 77" > tests/run-native-test.sh || die + # TODO: Fails for abi_x86_32 w/ DT_RELR + # "section [14] '.rel.plt': relocation 55: relocation type invalid for the file type" + printf "#!/bin/sh\nexit 77" > tests/run-elflint-self.sh || die + printf "#!/bin/sh\nexit 77" > tests/run-reverse-sections-self.sh || die + # TODO: Fails with SFrames + printf "#!/bin/sh\nexit 77" > tests/run-strip-strmerge.sh || die + + # https://sourceware.org/PR23914 + sed -i 's:-Werror::' */Makefile.in || die +} + +src_configure() { + # bug #407135 + use test && append-flags -g + + # bug 660738 + filter-flags -fno-asynchronous-unwind-tables + + use debuginfod && MULTILIB_WRAPPED_HEADERS+=( /usr/include/elfutils/debuginfod.h ) + + multilib-minimal_src_configure +} + +multilib_src_configure() { + unset LEX YACC + + # Only for IMA verification of RPMs + export ac_cv_lib_rpm_headerGet=no + + local myeconfargs=( + $(use_enable nls) + $(multilib_native_use_enable debuginfod) + # Could do dummy if needed? We could also split libdebuginfod + # (client support) into its own USE if required. + $(multilib_native_use_enable debuginfod libdebuginfod) + $(multilib_native_use_enable stacktrace) + $(use_enable valgrind valgrind-annotations) + + # Explicitly disable thread safety, it's not recommended by upstream + # (marked experimental in configure) and doesn't build either on musl. + --disable-thread-safety + + # Valgrind option is just for running tests under it; dodgy under sandbox + # and indeed even w/ glibc with newer instructions. + --disable-valgrind + --program-prefix="eu-" + --with-zlib + $(use_with bzip2 bzlib) + $(multilib_native_use_with libarchive) + $(use_with lzma) + $(use_with zstd) + ) + + [[ ${PV} == 9999 ]] && myeconfargs+=( --enable-maintainer-mode ) + + # Needed because sets alignment macro + is-flagq -fsanitize=address && myeconfargs+=( --enable-sanitize-address ) + is-flagq -fsanitize=undefined && myeconfargs+=( --enable-sanitize-undefined ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_test() { + env LD_LIBRARY_PATH="${BUILD_DIR}/libelf:${BUILD_DIR}/libebl:${BUILD_DIR}/libdw:${BUILD_DIR}/libasm" \ + LC_ALL="C" \ + emake check VERBOSE=1 +} + +multilib_src_install_all() { + einstalldocs + + dodoc NOTES + + # These build quick, and are needed for most tests, so we don't + # disable building them when the USE flag is disabled. + if ! use utils; then + rm -rf "${ED}"/usr/bin || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.195.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.195.ebuild new file mode 100644 index 00000000000..a08137fcef1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.195.ebuild @@ -0,0 +1,168 @@ +# Copyright 2003-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/elfutils.gpg +inherit autotools flag-o-matic multilib-minimal + +DESCRIPTION="Libraries/utilities to handle ELF objects (drop in replacement for libelf)" +HOMEPAGE="https://sourceware.org/elfutils/" +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://sourceware.org/git/elfutils.git" + inherit git-r3 + + BDEPEND=" + sys-devel/bison + sys-devel/flex + " +else + inherit verify-sig + SRC_URI="https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2" + SRC_URI+=" verify-sig? ( https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2.sig )" + + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" + + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-elfutils-20240301 )" +fi + +LICENSE="|| ( GPL-2+ LGPL-3+ ) utils? ( GPL-3+ )" +SLOT="0" +IUSE="bzip2 +debuginfod +libarchive +lzma nls static-libs stacktrace test +utils valgrind zstd" +RESTRICT="!test? ( test )" +REQUIRED_USE="debuginfod? ( libarchive )" + +RDEPEND=" + !dev-libs/libelf + >=virtual/zlib-1.2.8-r1:=[static-libs?,${MULTILIB_USEDEP}] + bzip2? ( >=app-arch/bzip2-1.0.6-r4[static-libs?,${MULTILIB_USEDEP}] ) + debuginfod? ( + dev-db/sqlite:3= + >=dev-libs/json-c-0.11:= + >=net-libs/libmicrohttpd-0.9.33:= + >=net-misc/curl-7.29.0[static-libs?] + ) + libarchive? ( >=app-arch/libarchive-3.1.2:= ) + lzma? ( >=app-arch/xz-utils-5.0.5-r1[static-libs?,${MULTILIB_USEDEP}] ) + stacktrace? ( dev-util/sysprof ) + zstd? ( app-arch/zstd:=[static-libs?,${MULTILIB_USEDEP}] ) + elibc_musl? ( + dev-libs/libbsd + sys-libs/argp-standalone + sys-libs/fts-standalone + sys-libs/obstack-standalone + ) +" +DEPEND=" + ${RDEPEND} + valgrind? ( dev-debug/valgrind ) +" +BDEPEND+=" + sys-devel/m4 + virtual/pkgconfig + nls? ( sys-devel/gettext ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-0.189-musl-aarch64-regs.patch + "${FILESDIR}"/${PN}-0.191-musl-macros.patch +) + +src_prepare() { + default + + eautoreconf + + if ! use static-libs; then + sed -i -e '/^lib_LIBRARIES/s:=.*:=:' -e '/^%.os/s:%.o$::' lib{asm,dw,elf}/Makefile.in || die + fi + + # Fails with some CFLAGS + # " __divhc3: /var/tmp/portage/dev-libs/elfutils-0.193/work/elfutils-0.193-abi_x86_32.x86/tests/funcretval: + # dwfl_module_return_value_location: cannot handle DWARF type description" + printf "#!/bin/sh\nexit 77" > tests/run-native-test.sh || die + # Fails for abi_x86_32 w/ DT_RELR + # "section [14] '.rel.plt': relocation 55: relocation type invalid for the file type" + printf "#!/bin/sh\nexit 77" > tests/run-elflint-self.sh || die + printf "#!/bin/sh\nexit 77" > tests/run-reverse-sections-self.sh || die + # Fails with SFrames + printf "#!/bin/sh\nexit 77" > tests/run-strip-strmerge.sh || die + # Fails under sandbox + cat <<-EOF > tests/dwfl-proc-attach.c || die + int main() { + return 77; + } + EOF + + # https://sourceware.org/PR23914 + sed -i 's:-Werror::' */Makefile.in || die +} + +src_configure() { + # bug #407135 + use test && append-flags -g + + # bug 660738 + filter-flags -fno-asynchronous-unwind-tables + + use debuginfod && MULTILIB_WRAPPED_HEADERS+=( /usr/include/elfutils/debuginfod.h ) + + multilib-minimal_src_configure +} + +multilib_src_configure() { + unset LEX YACC + + # Only for IMA verification of RPMs + export ac_cv_lib_rpm_headerGet=no + + local myeconfargs=( + $(use_enable nls) + $(multilib_native_use_enable debuginfod) + # Could do dummy if needed? We could also split libdebuginfod + # (client support) into its own USE if required. + $(multilib_native_use_enable debuginfod libdebuginfod) + $(multilib_native_use_enable stacktrace) + $(use_enable valgrind valgrind-annotations) + + # Explicitly disable thread safety, it's not recommended by upstream + # (marked experimental in configure) and doesn't build either on musl. + --disable-thread-safety + + # Valgrind option is just for running tests under it; dodgy under sandbox + # and indeed even w/ glibc with newer instructions. + --disable-valgrind + --program-prefix="eu-" + --with-zlib + $(use_with bzip2 bzlib) + $(multilib_native_use_with libarchive) + $(use_with lzma) + $(use_with zstd) + ) + + [[ ${PV} == 9999 ]] && myeconfargs+=( --enable-maintainer-mode ) + + # Needed because sets alignment macro + is-flagq -fsanitize=address && myeconfargs+=( --enable-sanitize-address ) + is-flagq -fsanitize=undefined && myeconfargs+=( --enable-sanitize-undefined ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_test() { + env LD_LIBRARY_PATH="${BUILD_DIR}/libelf:${BUILD_DIR}/libebl:${BUILD_DIR}/libdw:${BUILD_DIR}/libasm" \ + LC_ALL="C" \ + emake check VERBOSE=1 +} + +multilib_src_install_all() { + einstalldocs + + dodoc NOTES + + # These build quick, and are needed for most tests, so we don't + # disable building them when the USE flag is disabled. + if ! use utils; then + rm -rf "${ED}"/usr/bin || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-9999.ebuild index 4abe9403c62..feb34a8cec4 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-9999.ebuild @@ -77,16 +77,22 @@ src_prepare() { sed -i -e '/^lib_LIBRARIES/s:=.*:=:' -e '/^%.os/s:%.o$::' lib{asm,dw,elf}/Makefile.in || die fi - # TODO: Fails with some CFLAGS + # Fails with some CFLAGS # " __divhc3: /var/tmp/portage/dev-libs/elfutils-0.193/work/elfutils-0.193-abi_x86_32.x86/tests/funcretval: # dwfl_module_return_value_location: cannot handle DWARF type description" printf "#!/bin/sh\nexit 77" > tests/run-native-test.sh || die - # TODO: Fails for abi_x86_32 w/ DT_RELR + # Fails for abi_x86_32 w/ DT_RELR # "section [14] '.rel.plt': relocation 55: relocation type invalid for the file type" printf "#!/bin/sh\nexit 77" > tests/run-elflint-self.sh || die printf "#!/bin/sh\nexit 77" > tests/run-reverse-sections-self.sh || die - # TODO: Fails with SFrames + # Fails with SFrames printf "#!/bin/sh\nexit 77" > tests/run-strip-strmerge.sh || die + # Fails under sandbox + cat <<-EOF > tests/dwfl-proc-attach.c || die + int main() { + return 77; + } + EOF # https://sourceware.org/PR23914 sed -i 's:-Werror::' */Makefile.in || die @@ -107,6 +113,9 @@ src_configure() { multilib_src_configure() { unset LEX YACC + # Only for IMA verification of RPMs + export ac_cv_lib_rpm_headerGet=no + local myeconfargs=( $(use_enable nls) $(multilib_native_use_enable debuginfod) 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 f05c414bc48..05f6427188d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/expat/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/expat/Manifest @@ -1,2 +1,2 @@ -DIST expat-2.7.4.tar.xz 507328 BLAKE2B 167518530b3e88f7ecb6aecc5eb54a41a740f7184732dd72fafe9bfdcda0b94c537331543744b8b0eaf918d5f0b82dbe311ee4192a592b74e5d65dc577ed8f6a SHA512 a5533b99b1e0b73adcbe1f1b4816ce04e963fb6b734e6018c823597297a367a0524f31e040e3320122398833371f3f7caf4f9bf3cb91594a38151b2672edfa8f -DIST expat-2.7.5.tar.xz 507924 BLAKE2B 97adfd7cb056066e3a3ec9ef1808d298bc935eb0d17ffca23bcf75810290c8ed8377b21d67b2e1b4a27773057f49f95da9a8f2e368d02d266c980bebbeb1b009 SHA512 d287fdc83d967ce6d04f96a22b544bd7820bb73504b187a8b467e281e7bd20d330c897c6ca8e3a8a2172ecce98f044b569e2b71d0b90fd1175727c13e77e61f4 +DIST expat-2.8.0.tar.xz 511328 BLAKE2B e7b5f20e9960085d2bcfd88ac590e70a9aaebcc4b1411064d008af638bdf4189730d6fd9772d518dc4c38c3cefc649ed31c1e3ad7de64125377dba8c6d2e01b8 SHA512 f395e8de93f297a1aa89df30dd997cc5715c10623ac1b1fc4e18f4cc746d13ddf5729ec253056fe4356ad28881482d906b2e18072b830b1a5335cba2f375bba9 +DIST expat-2.8.1.tar.xz 512224 BLAKE2B 529551f960a1e611be6a0e9ff579e136ccad676d7e99ef8183bbee83969bf4cd37177444759ccbccc48c1bd49d2b0c3bd8f1f91862f272b54a23ad1b932d2f9d SHA512 186e9677a4255d054364c06f68318df3e9039793da29e7b286ed7c6b12e93f62f2d096b5f7535bde29844fc25a934b84616e72228f6584e9d655fd8ed95c639a diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.7.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.8.0.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.7.4.ebuild rename to sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.8.0.ebuild diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.7.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.8.1.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.7.5.ebuild rename to sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.8.1.ebuild 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 7c84572f2d2..c567517a30a 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,6 @@ DIST glib-2.84.4.tar.xz 5618200 BLAKE2B 5faee382433085cd598545a99e2e95ce430be4ac5ca10106b70f2404ddacf328f4223bc092a23025f9bf8b936619a88a9dfb220674a07e9250cf4213c6213be9 SHA512 2de9b2f7376c0e5f6ee585087090675d597c474199a10d04aad18df688b6ca77d17e93a86ec07482898663f51c82121992272496318138f77ca5ad2c340a4bd3 -DIST glib-2.86.4.tar.xz 5692304 BLAKE2B 20dee8c99fdb410d7f9c09366f1688dbc075638fdecd44f67562cc9cc46e34712cd1357d5a4facadd36f3c45fceeb83c7910be4f9c819ad20778339cdfb34452 SHA512 13e8beb84f3464f50c9764d0d3c6822a4bb41ae65e6c3ffac4200a5b441acdd2eb6f838a6b0722cae501e367ce9cfd4f8516b684a391c2f088a593172abcacd9 +DIST glib-2.86.5.tar.xz 5695864 BLAKE2B 67fb6d9bde2c47647bfc7979bf3486aac0c7c32d51593ac37c2e988556d3225faa7c702b3f39103051a6671e142c2ae2baf309451720262d18311f519385f17c SHA512 e14e56659594cb1f929cf62b01f415b867592f83d7a624a8806c609c762fcdf6ab7bc4c68ab1faafd709f7448a52b8e37a7066a53c84b52607a8b5261bc8f222 +DIST glib-2.88.0.tar.xz 5788396 BLAKE2B b540e0f5490f85b44cfad5d819f4a6fd911addc26fed8b8b49852bd6ec322d7d16136b691452030cf5f590374ea06cf8fdb8c9109d5cbe7b68625379bbd40615 SHA512 ceead8d88720db17dc6bbff7aff14f261f90afc5e8261448aae0657f89b5fcc616cf62f4b049be88a4ddd3f50a869bbcdb66b29777da4969a47987828ecac280 +DIST glib-2.88.1.tar.xz 5789296 BLAKE2B d9a0e54d2c1b5128aee76f1743cbeea84a24af5a2252ba1c649943bbca3fbc5f08896249542526560c92dd0e60cbd8a72498c3cfe1535d1f0bf85316ce37dba1 SHA512 74e6d6086081e5dfb5b7fd3b74f59171033be0c340ff2dd798fea9cb42e5f680e13b2ac3dde8dd423bceb9c6556103005f9542aeda166e9a3b89da8bacecca23 DIST gobject-introspection-1.82.0.tar.xz 1052872 BLAKE2B 8336ae26d48a71a203655d9d268076f603055ceabb55dbfa676f2c67b4096b83afc106d485dc45d02b3a8be806f9ef50d54806a82e61f2a252ae59543c61e934 SHA512 e139fadb4174c72b648914f3774d89fc0e5eaee45bba0c13edf05de883664dad8276dbc34006217bb09871ed4bad23adab51ff232a17b9eb131329b2926cafb7 DIST gobject-introspection-1.86.0.tar.xz 1083172 BLAKE2B 425d60c8c4bd582c55030ed91b4c2f3982e3c502da1c6f2579c4cc1e05d82d8a8c9a533af3e4a7ae8f6a031761d763d7f7ad8031e38ae3bd7d2549c9f6bcf7f3 SHA512 a9d2edbe1cea710e10ef1ea8059a45cf5689bace43b5d2a6861809e863a6de7114b4763db8df3916ad6202c9967f48f7997acd0810a86e5e88dea7e0be88b585 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.84.4-fix-const-attribute.patch b/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.84.4-fix-const-attribute.patch new file mode 100644 index 00000000000..a8ddf97c35a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.84.4-fix-const-attribute.patch @@ -0,0 +1,99 @@ +https://bugs.gentoo.org/970774 +https://gitlab.gnome.org/GNOME/glib/-/merge_requests/5145 + +From 9f5903a96f419058d457de7b7544c2bc9e73e510 Mon Sep 17 00:00:00 2001 +From: Sam James +Date: Fri, 10 Apr 2026 02:28:48 +0100 +Subject: [PATCH] gvarianttype: use pure attribute, not inappropriate const + +As found in https://gcc.gnu.org/PR124837, it is wrong to use the const +attribute [0] for g_variant_type_*is* because it may be called repeatedly +with different pointed-to data. The pure attribute [1] is what we want +here because it allows pointed-to data to change, so change to that. + +const would be OK here if it pointed to a constant buffer, but it doesn't, +it points to newly malloc'd memory from all over the place. + +[0] https://gcc.gnu.org/onlinedocs/gcc-15.2.0/gcc/Common-Function-Attributes.html#index-const-function-attribute +[1] https://gcc.gnu.org/onlinedocs/gcc-15.2.0/gcc/Common-Function-Attributes.html#index-pure-function-attribute + +Fixes: 49bfa7b9cf8b16f7f6a5b1db565575d61a37100f +Signed-off-by: Sam James +--- + glib/gvarianttype.h | 32 ++++++++++++++++---------------- + 1 file changed, 16 insertions(+), 16 deletions(-) + +diff --git a/glib/gvarianttype.h b/glib/gvarianttype.h +index 38980af829..3a57b9131a 100644 +--- a/glib/gvarianttype.h ++++ b/glib/gvarianttype.h +@@ -302,7 +302,7 @@ typedef struct _GVariantType GVariantType; + + /* type string checking */ + GLIB_AVAILABLE_IN_ALL +-gboolean g_variant_type_string_is_valid (const gchar *type_string) G_GNUC_CONST; ++gboolean g_variant_type_string_is_valid (const gchar *type_string) G_GNUC_PURE; + GLIB_AVAILABLE_IN_ALL + gboolean g_variant_type_string_scan (const gchar *string, + const gchar *limit, +@@ -326,21 +326,21 @@ gchar * g_variant_type_dup_string (const G + + /* classification */ + GLIB_AVAILABLE_IN_ALL +-gboolean g_variant_type_is_definite (const GVariantType *type) G_GNUC_CONST; ++gboolean g_variant_type_is_definite (const GVariantType *type) G_GNUC_PURE; + GLIB_AVAILABLE_IN_ALL +-gboolean g_variant_type_is_container (const GVariantType *type) G_GNUC_CONST; ++gboolean g_variant_type_is_container (const GVariantType *type) G_GNUC_PURE; + GLIB_AVAILABLE_IN_ALL +-gboolean g_variant_type_is_basic (const GVariantType *type) G_GNUC_CONST; ++gboolean g_variant_type_is_basic (const GVariantType *type) G_GNUC_PURE; + GLIB_AVAILABLE_IN_ALL +-gboolean g_variant_type_is_maybe (const GVariantType *type) G_GNUC_CONST; ++gboolean g_variant_type_is_maybe (const GVariantType *type) G_GNUC_PURE; + GLIB_AVAILABLE_IN_ALL +-gboolean g_variant_type_is_array (const GVariantType *type) G_GNUC_CONST; ++gboolean g_variant_type_is_array (const GVariantType *type) G_GNUC_PURE; + GLIB_AVAILABLE_IN_ALL +-gboolean g_variant_type_is_tuple (const GVariantType *type) G_GNUC_CONST; ++gboolean g_variant_type_is_tuple (const GVariantType *type) G_GNUC_PURE; + GLIB_AVAILABLE_IN_ALL +-gboolean g_variant_type_is_dict_entry (const GVariantType *type) G_GNUC_CONST; ++gboolean g_variant_type_is_dict_entry (const GVariantType *type) G_GNUC_PURE; + GLIB_AVAILABLE_IN_ALL +-gboolean g_variant_type_is_variant (const GVariantType *type) G_GNUC_CONST; ++gboolean g_variant_type_is_variant (const GVariantType *type) G_GNUC_PURE; + + /* for hash tables */ + GLIB_AVAILABLE_IN_ALL +@@ -352,21 +352,21 @@ gboolean g_variant_type_equal (gconstp + /* subtypes */ + GLIB_AVAILABLE_IN_ALL + gboolean g_variant_type_is_subtype_of (const GVariantType *type, +- const GVariantType *supertype) G_GNUC_CONST; ++ const GVariantType *supertype) G_GNUC_PURE; + + /* type iterator interface */ + GLIB_AVAILABLE_IN_ALL +-const GVariantType * g_variant_type_element (const GVariantType *type) G_GNUC_CONST; ++const GVariantType * g_variant_type_element (const GVariantType *type) G_GNUC_PURE; + GLIB_AVAILABLE_IN_ALL +-const GVariantType * g_variant_type_first (const GVariantType *type) G_GNUC_CONST; ++const GVariantType * g_variant_type_first (const GVariantType *type) G_GNUC_PURE; + GLIB_AVAILABLE_IN_ALL +-const GVariantType * g_variant_type_next (const GVariantType *type) G_GNUC_CONST; ++const GVariantType * g_variant_type_next (const GVariantType *type) G_GNUC_PURE; + GLIB_AVAILABLE_IN_ALL +-gsize g_variant_type_n_items (const GVariantType *type) G_GNUC_CONST; ++gsize g_variant_type_n_items (const GVariantType *type) G_GNUC_PURE; + GLIB_AVAILABLE_IN_ALL +-const GVariantType * g_variant_type_key (const GVariantType *type) G_GNUC_CONST; ++const GVariantType * g_variant_type_key (const GVariantType *type) G_GNUC_PURE; + GLIB_AVAILABLE_IN_ALL +-const GVariantType * g_variant_type_value (const GVariantType *type) G_GNUC_CONST; ++const GVariantType * g_variant_type_value (const GVariantType *type) G_GNUC_PURE; + + /* constructors */ + GLIB_AVAILABLE_IN_ALL +-- +GitLab diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.4-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.4-r1.ebuild deleted file mode 100644 index c694d0c5393..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.4-r1.ebuild +++ /dev/null @@ -1,480 +0,0 @@ -# Copyright 1999-2026 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 ~arm64-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}] - >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] - >=virtual/libintl-0-r2[${MULTILIB_USEDEP}] - 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} - systemtap? ( >=dev-debug/systemtap-1.3 ) -" -# 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 - "${FILESDIR}"/${PN}-2.84.4-libpcre2-10.47.patch - "${FILESDIR}"/${PN}-2.86-MR-4912.patch - "${FILESDIR}"/${PN}-2.86-MR-4915-CVE-2025-13601.patch - "${FILESDIR}"/${PN}-2.86-MR-4934-CVE-2025-14087.patch - "${FILESDIR}"/${PN}-2.86-MR-4936.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 - local -x PKG_CONFIG_LIBDIR="${INTROSPECTION_LIB_DIR}/pkgconfig:${INTROSPECTION_BUILD_DIR}/meson-private:$($(tc-getPKG_CONFIG) --variable pc_system_libdirs pkg-config)" - - # Set the normal primary pkgconfig search paths as secondary - # (We also need to prepend our just-built one for later use of - # g-ir-scanner to use the new one and to help workaround bugs like - # bug #946221.) - local -x PKG_CONFIG_PATH="${PKG_CONFIG_LIBDIR}:$($(tc-getPKG_CONFIG) --variable pc_path pkg-config)" - - # Add the paths to the built glib libraries to the library path so that gobject-introspection can load them - local gliblib - for gliblib in glib gobject gthread gmodule gio girepository; do - export LD_LIBRARY_PATH="${BUILD_DIR}/${gliblib}:${LD_LIBRARY_PATH}" - done - - # 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; then - tc-export CC - meson_add_machine_file dtrace <<-EOF - [binaries] - dtrace='stap-dtrace' - EOF - 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/glib/glib-2.84.4-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.4-r2.ebuild deleted file mode 100644 index 456395ce2e2..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.4-r2.ebuild +++ /dev/null @@ -1,481 +0,0 @@ -# Copyright 1999-2026 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 ~arm64-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}] - >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] - >=virtual/libintl-0-r2[${MULTILIB_USEDEP}] - 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} - systemtap? ( >=dev-debug/systemtap-1.3 ) -" -# 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 - "${FILESDIR}"/${PN}-2.84.4-libpcre2-10.47.patch - "${FILESDIR}"/${PN}-2.86-MR-4912.patch - "${FILESDIR}"/${PN}-2.86-MR-4915-CVE-2025-13601.patch - "${FILESDIR}"/${PN}-2.86-MR-4934-CVE-2025-14087.patch - "${FILESDIR}"/${PN}-2.86-MR-4936.patch - "${FILESDIR}"/${PN}-2.84.4-setlocale-glibc-2.43.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 - local -x PKG_CONFIG_LIBDIR="${INTROSPECTION_LIB_DIR}/pkgconfig:${INTROSPECTION_BUILD_DIR}/meson-private:$($(tc-getPKG_CONFIG) --variable pc_system_libdirs pkg-config)" - - # Set the normal primary pkgconfig search paths as secondary - # (We also need to prepend our just-built one for later use of - # g-ir-scanner to use the new one and to help workaround bugs like - # bug #946221.) - local -x PKG_CONFIG_PATH="${PKG_CONFIG_LIBDIR}:$($(tc-getPKG_CONFIG) --variable pc_path pkg-config)" - - # Add the paths to the built glib libraries to the library path so that gobject-introspection can load them - local gliblib - for gliblib in glib gobject gthread gmodule gio girepository; do - export LD_LIBRARY_PATH="${BUILD_DIR}/${gliblib}:${LD_LIBRARY_PATH}" - done - - # 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; then - tc-export CC - meson_add_machine_file dtrace <<-EOF - [binaries] - dtrace='stap-dtrace' - EOF - 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/glib/glib-2.84.4-r5.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.4-r5.ebuild new file mode 100644 index 00000000000..9193a315362 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.4-r5.ebuild @@ -0,0 +1,483 @@ +# Copyright 1999-2026 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 ~arm64-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}] + >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] + >=virtual/libintl-0-r2[${MULTILIB_USEDEP}] + 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} + systemtap? ( >=dev-debug/systemtap-1.3 ) +" +# 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 + "${FILESDIR}"/${PN}-2.84.4-libpcre2-10.47.patch + "${FILESDIR}"/${PN}-2.86-MR-4912.patch + "${FILESDIR}"/${PN}-2.86-MR-4915-CVE-2025-13601.patch + "${FILESDIR}"/${PN}-2.86-MR-4934-CVE-2025-14087.patch + "${FILESDIR}"/${PN}-2.86-MR-4936.patch + "${FILESDIR}"/${PN}-2.84.4-setlocale-glibc-2.43.patch + "${FILESDIR}"/${PN}-2.84.4-fix-const-attribute.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 + local -x PKG_CONFIG_LIBDIR="${INTROSPECTION_LIB_DIR}/pkgconfig:${INTROSPECTION_BUILD_DIR}/meson-private:$($(tc-getPKG_CONFIG) --variable pc_system_libdirs pkg-config)" + + # Set the normal primary pkgconfig search paths as secondary + # (We also need to prepend our just-built one for later use of + # g-ir-scanner to use the new one and to help workaround bugs like + # bug #946221.) + local -x PKG_CONFIG_PATH="${PKG_CONFIG_LIBDIR}:$($(tc-getPKG_CONFIG) --variable pc_path pkg-config)" + + # Add the paths to the built glib libraries to the library path so that gobject-introspection can load them + local gliblib + for gliblib in glib gobject gthread gmodule gio girepository; do + export LD_LIBRARY_PATH="${BUILD_DIR}/${gliblib}:${LD_LIBRARY_PATH}" + done + + # 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=( + --localstatedir="${EPREFIX}"/var + -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; then + tc-export CC + meson_add_machine_file dtrace <<-EOF + [binaries] + dtrace='stap-dtrace' + EOF + 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/glib/glib-2.86.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.86.4.ebuild deleted file mode 100644 index 7424bd5ef29..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.86.4.ebuild +++ /dev/null @@ -1,475 +0,0 @@ -# Copyright 1999-2026 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.86.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 ~arm64-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}] - >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] - >=virtual/libintl-0-r2[${MULTILIB_USEDEP}] - 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} - systemtap? ( >=dev-debug/systemtap-1.3 ) -" -# 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 - local -x PKG_CONFIG_LIBDIR="${INTROSPECTION_LIB_DIR}/pkgconfig:${INTROSPECTION_BUILD_DIR}/meson-private:$($(tc-getPKG_CONFIG) --variable pc_system_libdirs pkg-config)" - - # Set the normal primary pkgconfig search paths as secondary - # (We also need to prepend our just-built one for later use of - # g-ir-scanner to use the new one and to help workaround bugs like - # bug #946221.) - local -x PKG_CONFIG_PATH="${PKG_CONFIG_LIBDIR}:$($(tc-getPKG_CONFIG) --variable pc_path pkg-config)" - - # Add the paths to the built glib libraries to the library path so that gobject-introspection can load them - local gliblib - for gliblib in glib gobject gthread gmodule gio girepository; do - export LD_LIBRARY_PATH="${BUILD_DIR}/${gliblib}:${LD_LIBRARY_PATH}" - done - - # 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; then - tc-export CC - meson_add_machine_file dtrace <<-EOF - [binaries] - dtrace='stap-dtrace' - EOF - 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/glib/glib-2.86.5-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.86.5-r1.ebuild new file mode 100644 index 00000000000..79af0bddbc7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.86.5-r1.ebuild @@ -0,0 +1,478 @@ +# Copyright 1999-2026 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.86.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 ~arm64-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}] + >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] + >=virtual/libintl-0-r2[${MULTILIB_USEDEP}] + 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} + systemtap? ( >=dev-debug/systemtap-1.3 ) +" +# 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 + "${FILESDIR}"/${PN}-2.84.4-setlocale-glibc-2.43.patch + "${FILESDIR}"/${PN}-2.84.4-fix-const-attribute.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 + local -x PKG_CONFIG_LIBDIR="${INTROSPECTION_LIB_DIR}/pkgconfig:${INTROSPECTION_BUILD_DIR}/meson-private:$($(tc-getPKG_CONFIG) --variable pc_system_libdirs pkg-config)" + + # Set the normal primary pkgconfig search paths as secondary + # (We also need to prepend our just-built one for later use of + # g-ir-scanner to use the new one and to help workaround bugs like + # bug #946221.) + local -x PKG_CONFIG_PATH="${PKG_CONFIG_LIBDIR}:$($(tc-getPKG_CONFIG) --variable pc_path pkg-config)" + + # Add the paths to the built glib libraries to the library path so that gobject-introspection can load them + local gliblib + for gliblib in glib gobject gthread gmodule gio girepository; do + export LD_LIBRARY_PATH="${BUILD_DIR}/${gliblib}:${LD_LIBRARY_PATH}" + done + + # 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=( + --localstatedir="${EPREFIX}"/var + -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; then + tc-export CC + meson_add_machine_file dtrace <<-EOF + [binaries] + dtrace='stap-dtrace' + EOF + 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/glib/glib-2.88.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.88.0-r1.ebuild new file mode 100644 index 00000000000..2998430263b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.88.0-r1.ebuild @@ -0,0 +1,478 @@ +# Copyright 1999-2026 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.86.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 ~arm64-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}] + >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] + >=virtual/libintl-0-r2[${MULTILIB_USEDEP}] + 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} + systemtap? ( >=dev-debug/systemtap-1.3 ) +" +# 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-2026.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 + "${FILESDIR}"/${PN}-2.84.4-fix-const-attribute.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. + -Db_lto=false + -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 + local -x PKG_CONFIG_LIBDIR="${INTROSPECTION_LIB_DIR}/pkgconfig:${INTROSPECTION_BUILD_DIR}/meson-private:$($(tc-getPKG_CONFIG) --variable pc_system_libdirs pkg-config)" + + # Set the normal primary pkgconfig search paths as secondary + # (We also need to prepend our just-built one for later use of + # g-ir-scanner to use the new one and to help workaround bugs like + # bug #946221.) + local -x PKG_CONFIG_PATH="${PKG_CONFIG_LIBDIR}:$($(tc-getPKG_CONFIG) --variable pc_path pkg-config)" + + # Add the paths to the built glib libraries to the library path so that gobject-introspection can load them + local gliblib + for gliblib in glib gobject gthread gmodule gio girepository; do + export LD_LIBRARY_PATH="${BUILD_DIR}/${gliblib}:${LD_LIBRARY_PATH}" + done + + # 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=( + --localstatedir="${EPREFIX}"/var + -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; then + tc-export CC + meson_add_machine_file dtrace <<-EOF + [binaries] + dtrace='stap-dtrace' + EOF + 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/glib/glib-2.88.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.88.1.ebuild new file mode 100644 index 00000000000..80dfab5ac62 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.88.1.ebuild @@ -0,0 +1,477 @@ +# Copyright 1999-2026 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.86.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 ~arm64-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}] + >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] + >=virtual/libintl-0-r2[${MULTILIB_USEDEP}] + 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} + systemtap? ( >=dev-debug/systemtap-1.3 ) +" +# 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-2026.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. + -Db_lto=false + -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 + local -x PKG_CONFIG_LIBDIR="${INTROSPECTION_LIB_DIR}/pkgconfig:${INTROSPECTION_BUILD_DIR}/meson-private:$($(tc-getPKG_CONFIG) --variable pc_system_libdirs pkg-config)" + + # Set the normal primary pkgconfig search paths as secondary + # (We also need to prepend our just-built one for later use of + # g-ir-scanner to use the new one and to help workaround bugs like + # bug #946221.) + local -x PKG_CONFIG_PATH="${PKG_CONFIG_LIBDIR}:$($(tc-getPKG_CONFIG) --variable pc_path pkg-config)" + + # Add the paths to the built glib libraries to the library path so that gobject-introspection can load them + local gliblib + for gliblib in glib gobject gthread gmodule gio girepository; do + export LD_LIBRARY_PATH="${BUILD_DIR}/${gliblib}:${LD_LIBRARY_PATH}" + done + + # 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=( + --localstatedir="${EPREFIX}"/var + -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; then + tc-export CC + meson_add_machine_file dtrace <<-EOF + [binaries] + dtrace='stap-dtrace' + EOF + 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/gmp/files/gmp-6.3.0-r1-__int128.patch b/sdk_container/src/third_party/portage-stable/dev-libs/gmp/files/gmp-6.3.0-r1-__int128.patch new file mode 100644 index 00000000000..f706af6ff50 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/gmp/files/gmp-6.3.0-r1-__int128.patch @@ -0,0 +1,22 @@ +# Replace __int128__ with __int128 for portability (clang) +# Gentoo Bug: https://bugs.gentoo.org/972987 + +From 21cbec701d8f54d7157f8455a24b2ff4a5269496 Mon Sep 17 00:00:00 2001 +From: Marc Glisse +Date: Sat, 1 Feb 2025 19:36:16 +0100 +Subject: [PATCH] Replace __int128__ with __int128 for portability (clang). + +--- +diff --git a/longlong.h b/longlong.h +index be1c3cbc6..41ad4f980 100644 +--- a/longlong.h ++++ b/longlong.h +@@ -1162,7 +1162,7 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype); + do { \ + UDItype __u = (u), __v = (v); \ + (w0) = __u * __v; \ +- (w1) = (unsigned __int128__) __u * __v >> 64; \ ++ (w1) = __extension__ (unsigned __int128) __u * __v >> 64; \ + } while (0) + #endif + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/gmp/gmp-6.3.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/gmp/gmp-6.3.0-r2.ebuild new file mode 100644 index 00000000000..5ac4c6b704d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/gmp/gmp-6.3.0-r2.ebuild @@ -0,0 +1,207 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gmp.asc +inherit gnuconfig libtool flag-o-matic multilib-minimal toolchain-funcs verify-sig + +MY_PV=${PV/_p*} +MY_PV=${MY_PV/_/-} + +MANUAL_PV=6.2.1 + +MY_P=${PN}-${MY_PV} +PLEVEL=${PV/*p} + +DESCRIPTION="Library for arbitrary-precision arithmetic on different type of numbers" +HOMEPAGE="https://gmplib.org/" +SRC_URI=" + https://gmplib.org/download/gmp/${MY_P}.tar.xz + mirror://gnu/${PN}/${MY_P}.tar.xz + doc? ( https://gmplib.org/${PN}-man-${MANUAL_PV}.pdf ) + verify-sig? ( https://gmplib.org/download/gmp/${MY_P}.tar.xz.sig ) +" +S="${WORKDIR}"/${MY_P%a} + +LICENSE="|| ( LGPL-3+ GPL-2+ )" +# The subslot reflects the C & C++ SONAMEs. +SLOT="0/10.4" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="+asm doc +cpudetection +cxx pic static-libs" +REQUIRED_USE="cpudetection? ( asm )" +RESTRICT="!cpudetection? ( bindist )" + +BDEPEND=" + app-arch/xz-utils + sys-devel/m4 + verify-sig? ( sec-keys/openpgp-keys-gmp ) +" + +DOCS=( AUTHORS ChangeLog NEWS README doc/configuration doc/isa_abi_headache ) +HTML_DOCS=( doc ) + +MULTILIB_WRAPPED_HEADERS=( /usr/include/gmp.h ) + +PATCHES=( + "${FILESDIR}"/${PN}-6.1.0-noexecstack-detect.patch + "${FILESDIR}"/${PN}-6.2.1-no-zarch.patch + "${FILESDIR}"/${PN}-6.3.0-r1-__int128.patch +) + +pkg_pretend() { + if use cpudetection && ! use amd64 && ! use x86 ; then + elog "Using generic C implementation on non-amd64/x86 with USE=cpudetection" + elog "--enable-fat is a no-op on alternative arches." + elog "To obtain an optimized build, set USE=-cpudetection, but binpkgs should not then be made." + fi +} + +src_unpack() { + use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sig} + + default +} + +src_prepare() { + default + + # We cannot run autotools here as gcc depends on this package + elibtoolize + + # bug #536894 + if [[ ${CHOST} == *-darwin* ]] ; then + eapply "${FILESDIR}"/${PN}-6.1.2-gcc-apple-4.0.1.patch + fi + + # GMP uses the "ABI" env var during configure as does Gentoo (econf). + # So, to avoid patching the source constantly, wrap things up. + mv configure configure.wrapped || die + cat <<-\EOF > configure + #!/usr/bin/env sh + exec env ABI="${GMPABI}" "$0.wrapped" "$@" + EOF + + # Patches to original configure might have lost the +x bit. + chmod a+rx configure{,.wrapped} || die + + # Save the upstream files named config.{guess,sub} which are + # wrappers around the gnuconfig versions. + mkdir "${T}"/gmp-gnuconfig || die + mv config.guess "${T}"/gmp-gnuconfig/config.guess || die + mv config.sub "${T}"/gmp-gnuconfig/config.sub || die + # Grab fresh copies from gnuconfig. + touch config.guess config.sub || die + gnuconfig_update + # Rename the fresh copies to the filenames the wrappers from GMP + # expect. + mv config.guess configfsf.guess || die + mv config.sub configfsf.sub || die +} + +multilib_src_configure() { + # Generally a very fragile package + strip-flags + # Miscompiled with LTO at least on arm64, bug #889948 + # 6.3.0 says it now supports LTO, but needs retesting on a variety + # of platforms. Fix was maybe https://gmplib.org/repo/gmp-6.3/rev/9c324044f4b5. + filter-lto + # https://gmplib.org/list-archives/gmp-bugs/2024-November/005550.html + append-cflags $(test-flags-CC -std=gnu17) + + # Because of our 32-bit userland, 1.0 is the only HPPA ABI that works + # https://gmplib.org/manual/ABI-and-ISA.html#ABI-and-ISA (bug #344613) + if [[ ${CHOST} == hppa2.0-* ]] ; then + GMPABI="1.0" + fi + + # ABI mappings (needs all architectures supported) + case ${ABI} in + 32|x86) GMPABI=32;; + 64|amd64|n64) GMPABI=64;; + [onx]32) GMPABI=${ABI};; + esac + export GMPABI + + tc-export CC + + # https://gmplib.org/manual/Notes-for-Package-Builds + local myeconfargs=( + # -std=gnu99 appended here for bug #919935 to help + # prefix building w/ older compilers. + CC_FOR_BUILD="$(tc-getBUILD_CC) -std=gnu99" + + --localstatedir="${EPREFIX}"/var/state/gmp + --enable-shared + + $(use_enable asm assembly) + # fat is needed to avoid gmp installing either purely generic + # or specific-to-used-CPU (which our config.guess refresh prevents at the moment). + # Both Fedora and opensuse use this option to tackle the issue, bug #883201. + # + # This only works for amd64/x86, so to get accelerated performance + # (i.e. not using the generic C), one needs USE=-cpudetection if + # on non-amd64/x86. + # + # (We do not mask USE=cpudetection on !amd64/x86 because we want + # the flag to be useful on other arches to allow opting out of the + # config.guess logic below.) + $(use_enable cpudetection fat) + $(use_enable cxx) + $(use_enable static-libs static) + + # --with-pic forces static libraries to be built as PIC + # and without TEXTRELs. musl does not support TEXTRELs: bug #707332 + $(use pic && echo --with-pic) + + # XXX: In the past, we had PGO support with upstream's 'tuneup' script + # per https://gmplib.org/manual/Performance-optimization, but we had + # a variety of issues with it: bug #454912, bug #650558, and bug #658688. + ) + + # Move the wrappers from GMP back into place (may have been destroyed by previous econf run) + cp "${T}"/gmp-gnuconfig/config.guess "${S}"/config.guess || die + cp "${T}"/gmp-gnuconfig/config.sub "${S}"/config.sub || die + + # See bug #883201 again. + if ! use cpudetection && ! tc-is-cross-compiler ; then + local gmp_host=$("${S}"/config.guess || die "failed to run config.guess") + + if [[ -z ${gmp_host} ]] ; then + die "Empty result from GMP's custom config.guess!" + fi + + einfo "GMP guessed processor type: ${gmp_host}" + ewarn "This build will only work on this machine. Enable USE=cpudetection for binary packages!" + export ac_cv_build="${gmp_host}" + export ac_cv_host="${gmp_host}" + fi + + # Clang with -fsanitize=address may emit weird section names in its asm, + # which causes gmp's configure checks to select a broken way of + # specifying `.rodata`. Disable this feature, which was introduced in + # Clang 15 (and defaulted to on in Clang 18). + if tc-is-clang && [[ "$(clang-major-version)" -ge 15 ]]; then + append-cxxflags "-fno-sanitize-address-globals-dead-stripping" + fi + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_install() { + emake DESTDIR="${D}" install + + # Should be a standalone lib + rm -f "${ED}"/usr/$(get_libdir)/libgmp.la + + # This requires libgmp + local la="${ED}/usr/$(get_libdir)/libgmpxx.la" + if ! use static-libs ; then + rm -f "${la}" || die + fi +} + +multilib_src_install_all() { + einstalldocs + use doc && cp "${DISTDIR}"/gmp-man-${MANUAL_PV}.pdf "${ED}"/usr/share/doc/${PF}/ +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/jose/jose-14.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/jose/jose-14.ebuild index d3eb0f229e6..fe16ec79b96 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/jose/jose-14.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/jose/jose-14.ebuild @@ -1,4 +1,4 @@ -# Copyright 2022-2025 Gentoo Authors +# Copyright 2022-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -11,7 +11,7 @@ SRC_URI="https://github.com/latchset/jose/archive/v${PV}.tar.gz -> ${P}.tar.gz" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc x86" DEPEND=" dev-libs/jansson diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/json-c/json-c-0.18.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/json-c/json-c-0.18.ebuild index 12d3aa67560..eebbc220f06 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/json-c/json-c-0.18.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/json-c/json-c-0.18.ebuild @@ -14,7 +14,7 @@ if [[ ${PV} == 9999 ]] ; then else SRC_URI="https://s3.amazonaws.com/json-c_releases/releases/${P}.tar.gz" - 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 ~x64-solaris" fi LICENSE="MIT" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/Manifest new file mode 100644 index 00000000000..00a9bccce23 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/Manifest @@ -0,0 +1,2 @@ +DIST leancrypto-1.7.2.tar.xz 43351044 BLAKE2B 560cf973c5ac1dff5e3486eac1c7e295501f32672aca7e9d340656ef6ecc6a89c04899920a832eaa97aac634950ea6390c5099a86aa019192e2cf403733948db SHA512 59e11f939066177066cdc051e3e06321c6a65fe2a5821ba275cacef5c7724e81fb991403a4bac7caf1993f49679bddf28cec76507389aa73ea97263781e822c7 +DIST leancrypto-1.7.2.tar.xz.asc 265 BLAKE2B 23c57af421acd33b2c2779d85857d0720b4a04d38907b95406b42d381684db423eccbef78e41cb73288f84b9a31044635057143dcf8ff1de9301706691383173 SHA512 d3c5549e7667063f4eaebdbfb98ab2adfa1d5829ed0a40098cc48d26edc14fefed7fd09d6d667b81c02a49dadb375605b2c170900d48e2305a8d5704c641ba1f diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/files/leancrypto-1.6.0-no-force-lto.patch b/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/files/leancrypto-1.6.0-no-force-lto.patch new file mode 100644 index 00000000000..8feead35e77 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/files/leancrypto-1.6.0-no-force-lto.patch @@ -0,0 +1,24 @@ +--- a/meson.build ++++ b/meson.build +@@ -81,21 +81,6 @@ if cc.has_argument('-mbranch-protection=standard') + add_global_arguments([ '-mbranch-protection=standard' ], language: 'c') + endif + +-# MINGW64 cannot handle lto properly at the moment +-if (cc.has_argument('-flto') and +- host_machine.system() != 'windows' and +- get_option('efi').disabled()) +- add_global_arguments([ '-flto=auto' ], language: 'c') +- add_project_link_arguments('-flto=auto', language : 'c') +-endif +- +-if (cc.has_argument('-ffat-lto-objects') and +- host_machine.system() != 'windows' and +- host_machine.system() != 'darwin' and +- get_option('efi').disabled()) +- add_global_arguments([ '-ffat-lto-objects' ], language: 'c') +-endif +- + if get_option('optimization') == '0' + add_global_arguments([ '-DDEBUG' ], language: 'c') + elif get_option('efi').disabled() diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/files/leancrypto-1.7.2-gcc-16-asm.patch b/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/files/leancrypto-1.7.2-gcc-16-asm.patch new file mode 100644 index 00000000000..b4b8aaa96f9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/files/leancrypto-1.7.2-gcc-16-asm.patch @@ -0,0 +1,45 @@ +https://gcc.gnu.org/PR124877 +https://github.com/smuellerDD/leancrypto/issues/57 +https://github.com/smuellerDD/leancrypto/commit/489ce1a1d913e09a7f1107f61c4f969f866551ee + +From 489ce1a1d913e09a7f1107f61c4f969f866551ee Mon Sep 17 00:00:00 2001 +From: Stephan Mueller +Date: Tue, 14 Apr 2026 11:57:46 +0200 +Subject: [PATCH] Curve448 AVX2: fix ABI issue + +A uint8_t has to be copied into a register with movzbl as the upper +32 bits of a 64 bit movq instruction are undefined. + +Reported-bu: rguenth +Signed-off-by: Stephan Mueller +--- + curve448/src/avx2/gf_p4482241_nsqr.S | 2 +- + curve448/src/avx2/gf_p4482241_nsqrx.S | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/curve448/src/avx2/gf_p4482241_nsqr.S b/curve448/src/avx2/gf_p4482241_nsqr.S +index 3d54fa7a..d8907515 100644 +--- a/curve448/src/avx2/gf_p4482241_nsqr.S ++++ b/curve448/src/avx2/gf_p4482241_nsqr.S +@@ -93,7 +93,7 @@ movq %r13, 40(%rdi) + movq %r14, 48(%rdi) + movq %r15, 56(%rdi) + +-movq %rdx, %rcx ++movzbl %dl, %ecx + + .START: + +diff --git a/curve448/src/avx2/gf_p4482241_nsqrx.S b/curve448/src/avx2/gf_p4482241_nsqrx.S +index 0fee5d6a..04e62cd9 100644 +--- a/curve448/src/avx2/gf_p4482241_nsqrx.S ++++ b/curve448/src/avx2/gf_p4482241_nsqrx.S +@@ -91,7 +91,7 @@ movq %r12, 32(%rdi) + movq %r13, 40(%rdi) + movq %r14, 48(%rdi) + +-movq %rdx, %rbx ++movzbl %dl, %ebx + + .START_nsqrx: + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/files/leancrypto-1.7.2-m68k.patch b/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/files/leancrypto-1.7.2-m68k.patch new file mode 100644 index 00000000000..786f610b743 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/files/leancrypto-1.7.2-m68k.patch @@ -0,0 +1,27 @@ +From dfeea66a9aac33916d24be6dbb9b72629a6b63e7 Mon Sep 17 00:00:00 2001 +From: James Le Cuirot +Date: Sun, 17 May 2026 21:22:20 +0100 +Subject: [PATCH] ChaCha20: Align lc_sym_state to at least 4 bytes to fix m68k + +m68k aligns to 2 bytes by default. + +Signed-off-by: James Le Cuirot +--- a/sym/api/lc_chacha20_private.h ++++ b/sym/api/lc_chacha20_private.h +@@ -39,8 +39,12 @@ extern "C" { + * For accelerated ChaCha20 implementatinos, the key and the counter must be + * aligned to 16 bytes boundary. This is guaranteed when aligning the entire + * structure to 16 bytes as the constant field is 16 bytes in size. ++ * ++ * Force at least 4-byte alignment so that sizeof(struct lc_sym_state) is ++ * consistent (132) on architectures where uint32_t has only 2-byte alignment ++ * (e.g. m68k without -malign-int). + */ +-struct lc_sym_state { ++struct __attribute__((aligned(4))) lc_sym_state { + uint32_t constants[4]; + union { + uint32_t u[LC_CC20_KEY_SIZE_WORDS]; +-- +2.54.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/files/leancrypto-1.7.2-toolchain-hardening.patch b/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/files/leancrypto-1.7.2-toolchain-hardening.patch new file mode 100644 index 00000000000..3fd0cbbc942 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/files/leancrypto-1.7.2-toolchain-hardening.patch @@ -0,0 +1,52 @@ +We already set some of these in the toolchain, and the rest may conflict +with flags the user can set (like -fcf-protection vs -mindirect-brnanch=thunk). +--- a/meson.build ++++ b/meson.build +@@ -30,9 +30,7 @@ project('leancrypto', 'c', + cc = meson.get_compiler('c') + + # Hardening Compiler flags +-add_global_arguments([ '-fstack-protector-strong', +- '-fwrapv', +- '--param', 'ssp-buffer-size=4', ++add_global_arguments([ '-fwrapv', + '-fvisibility=hidden', + '-Wconversion', + '-Wcast-align', +@@ -57,36 +55,14 @@ if cc.has_argument('-Wdocumentation') + language: 'c') + endif + +-# More hardening +-if cc.has_argument('-fzero-call-used-regs=used-gpr') +- add_global_arguments([ '-fzero-call-used-regs=used-gpr' ], +- language: 'c') +-endif +-if cc.has_argument('-ftrivial-auto-var-init=zero') +- add_global_arguments([ '-ftrivial-auto-var-init=zero' ], +- language: 'c') +-endif + if cc.has_argument('-Wshorten-64-to-32') + add_global_arguments([ '-Wshorten-64-to-32' ], + language: 'c') + endif + +-# x86_64 hardening +-if cc.has_argument('-fcf-protection=full') +- add_global_arguments([ '-fcf-protection=full' ], +- language: 'c') +-endif +- +-# ARM64 hardening +-if cc.has_argument('-mbranch-protection=standard') +- add_global_arguments([ '-mbranch-protection=standard' ], language: 'c') +-endif +- + if get_option('optimization') == '0' + add_global_arguments([ '-DDEBUG' ], language: 'c') + elif get_option('efi').disabled() +- add_global_arguments([ '-U_FORTIFY_SOURCE' ], language: 'c') +- add_global_arguments([ '-D_FORTIFY_SOURCE=3' ], language: 'c') + endif + + if get_option('enable_selftests').enabled() diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/leancrypto-1.7.2-r3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/leancrypto-1.7.2-r3.ebuild new file mode 100644 index 00000000000..ba7ee1eb0e7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/leancrypto-1.7.2-r3.ebuild @@ -0,0 +1,96 @@ +# Copyright 2025-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a meson-multilib toolchain-funcs + +DESCRIPTION="Lean cryptographic library usable for bare-metal environments " +HOMEPAGE="https://leancrypto.org/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/smuellerDD/leancrypto" + inherit git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/leancrypto.asc + inherit verify-sig + + SRC_URI=" + https://leancrypto.org/leancrypto/releases/${P}/${P}.tar.xz + verify-sig? ( https://leancrypto.org/leancrypto/releases/${P}/${P}.tar.xz.asc ) + " + + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86" + + BDEPEND=" + verify-sig? ( sec-keys/openpgp-keys-leancrypto ) + " +fi + +LICENSE="|| ( GPL-2 BSD-2 )" +SLOT="0/1" +IUSE="+asm test tools" +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}"/${PN}-1.6.0-no-force-lto.patch + "${FILESDIR}"/${PN}-1.7.2-toolchain-hardening.patch + "${FILESDIR}"/${P}-gcc-16-asm.patch + "${FILESDIR}"/${PN}-1.7.2-m68k.patch +) + +src_configure() { + use asm && MULTILIB_WRAPPED_HEADERS=( + # internal/api/meson.build modifies lc_memory_support + # based on asm support (bug #970513). Sort order here + # snakes out from that header. + /usr/include/leancrypto/lc_memory_support.h + /usr/include/leancrypto/ext_headers.h + + # Another root (LC_HASH_COMMON_ALIGNMENT) + /usr/include/leancrypto/lc_hash.h + /usr/include/leancrypto/lc_memset_secure.h + /usr/include/leancrypto/lc_status.h + + # Another root (LC_DEF_ASCON_AVX512) + /usr/include/leancrypto/lc_ascon_hash.h + ) + + lto-guarantee-fat + meson-multilib_src_configure +} + +multilib_src_configure() { + tc-ld-is-mold && tc-ld-force-bfd + + local native_file="${T}"/meson.${CHOST}.${ABI}.ini.local + cat >> ${native_file} <<-EOF || die + [binaries] + doxygen='doxygen-falseified' + EOF + + local emesonargs=( + -Dstrip=false + $(meson_use !asm disable-asm) + $(meson_feature test tests) + $(meson_native_use_feature tools apps) + ) + + if multilib_is_native_abi ; then + emesonargs+=( --native-file "${native_file}" ) + else + emesonargs+=( --cross-file "${native_file}" ) + fi + + meson_src_configure +} + +multilib_src_test() { + # Only run the regression tests rather than the performance ones + meson_src_test --timeout-multiplier=16 --suite=regression +} + +multilib_src_install_all() { + strip-lto-bytecode + einstalldocs +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/leancrypto-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/leancrypto-9999.ebuild new file mode 100644 index 00000000000..14024fca2cf --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/leancrypto-9999.ebuild @@ -0,0 +1,94 @@ +# Copyright 2025-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a meson-multilib toolchain-funcs + +DESCRIPTION="Lean cryptographic library usable for bare-metal environments " +HOMEPAGE="https://leancrypto.org/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/smuellerDD/leancrypto" + inherit git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/leancrypto.asc + inherit verify-sig + + SRC_URI=" + https://leancrypto.org/leancrypto/releases/${P}/${P}.tar.xz + verify-sig? ( https://leancrypto.org/leancrypto/releases/${P}/${P}.tar.xz.asc ) + " + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~m68k ~riscv ~s390 ~sparc ~x86" + + BDEPEND=" + verify-sig? ( sec-keys/openpgp-keys-leancrypto ) + " +fi + +LICENSE="|| ( GPL-2 BSD-2 )" +SLOT="0/1" +IUSE="+asm test tools" +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}"/${PN}-1.6.0-no-force-lto.patch + "${FILESDIR}"/${PN}-1.7.2-toolchain-hardening.patch +) + +src_configure() { + use asm && MULTILIB_WRAPPED_HEADERS=( + # internal/api/meson.build modifies lc_memory_support + # based on asm support (bug #970513). Sort order here + # snakes out from that header. + /usr/include/leancrypto/lc_memory_support.h + /usr/include/leancrypto/ext_headers.h + + # Another root (LC_HASH_COMMON_ALIGNMENT) + /usr/include/leancrypto/lc_hash.h + /usr/include/leancrypto/lc_memset_secure.h + /usr/include/leancrypto/lc_status.h + + # Another root (LC_DEF_ASCON_AVX512) + /usr/include/leancrypto/lc_ascon_hash.h + ) + + lto-guarantee-fat + meson-multilib_src_configure +} + +multilib_src_configure() { + tc-ld-is-mold && tc-ld-force-bfd + + local native_file="${T}"/meson.${CHOST}.${ABI}.ini.local + cat >> ${native_file} <<-EOF || die + [binaries] + doxygen='doxygen-falseified' + EOF + + local emesonargs=( + -Dstrip=false + $(meson_use !asm disable-asm) + $(meson_feature test tests) + $(meson_native_use_feature tools apps) + ) + + if multilib_is_native_abi ; then + emesonargs+=( --native-file "${native_file}" ) + else + emesonargs+=( --cross-file "${native_file}" ) + fi + + meson_src_configure +} + +multilib_src_test() { + # Only run the regression tests rather than the performance ones + meson_src_test --timeout-multiplier=16 --suite=regression +} + +multilib_src_install_all() { + strip-lto-bytecode + einstalldocs +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/metadata.xml b/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/metadata.xml new file mode 100644 index 00000000000..893938aaa59 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/leancrypto/metadata.xml @@ -0,0 +1,15 @@ + + + + + base-system@gentoo.org + + + + Install sha*sum tools to /usr/libexec/leancrypto/. + + + + smuellerDD/leancrypto + + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libaio/libaio-0.3.113-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libaio/libaio-0.3.113-r1.ebuild deleted file mode 100644 index f2c3e807c2c..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libaio/libaio-0.3.113-r1.ebuild +++ /dev/null @@ -1,91 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit multilib-minimal toolchain-funcs flag-o-matic - -DESCRIPTION="Asynchronous input/output library that uses the kernels native interface" -HOMEPAGE="https://pagure.io/libaio" - -if [[ ${PV} == 9999 ]] ; then - inherit git-r3 - 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" -fi - -LICENSE="LGPL-2" -SLOT="0" -IUSE="static-libs test" -RESTRICT="!test? ( test )" - -PATCHES=( - "${FILESDIR}"/${PN}-0.3.112-cppflags.patch - "${FILESDIR}"/${PN}-0.3.113-respect-LDFLAGS.patch - "${FILESDIR}"/${PN}-0.3.113-32-bit-tests.patch -) - -src_prepare() { - default - - local sed_args=( - -e "/^prefix=/s:/usr:${EPREFIX}/usr:" - -e '/^libdir=/s:lib$:$(ABI_LIBDIR):' - -e 's:-Werror ::' - ) - if ! use static-libs; then - sed_args+=( -e '/\tinstall .*\/libaio.a/d' ) - # Tests require the static library to be built. - use test || sed_args+=( -e '/^all_targets +=/s/ libaio.a//' ) - fi - sed -i "${sed_args[@]}" src/Makefile harness/Makefile Makefile || die - - multilib_copy_sources -} - -multilib_src_configure() { - # Upstream aren't interested in fixing: bug #855698 - filter-lto - - if use arm ; then - # When building for thumb, we can't allow frame pointers. - # http://crbug.com/464517 - if $(tc-getCPP) ${CFLAGS} ${CPPFLAGS} - <<<$'#ifndef __thumb__\n#error\n#endif' >&/dev/null ; then - append-flags -fomit-frame-pointer - fi - fi -} - -_emake() { - CC="$(tc-getCC)" \ - AR="$(tc-getAR)" \ - RANLIB="$(tc-getRANLIB)" \ - ABI_LIBDIR="$(get_libdir)" \ - CFLAGS_WERROR= \ - emake "$@" -} - -multilib_src_compile() { - _emake -} - -multilib_src_test() { - mkdir -p testdir || die - - # 'make check' breaks with sandbox, 'make partcheck' works - _emake partcheck prefix="${S}/src" libdir="${S}/src" -} - -multilib_src_install() { - _emake install DESTDIR="${D}" -} - -multilib_src_install_all() { - doman man/* - dodoc ChangeLog TODO - - # This lib is a bare minimal shim on top of kernel syscalls. - export QA_DT_NEEDED=$(find "${ED}" -type f -name 'libaio.so.*' -printf '/%P\n') -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libdnet/libdnet-1.18.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libdnet/libdnet-1.18.2.ebuild index 652ad956b83..f8920d3daa2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libdnet/libdnet-1.18.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libdnet/libdnet-1.18.2.ebuild @@ -17,7 +17,7 @@ S="${WORKDIR}/${PN}-${P}" LICENSE="LGPL-2" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86" IUSE="python test" RESTRICT="!test? ( test )" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/Manifest index 61c74077eaa..021b27cd2a2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/Manifest @@ -2,3 +2,5 @@ DIST libgcrypt-1.11.2.tar.bz2 4237802 BLAKE2B 8ad2dd84e8ec2bddb5c008c6823a6d72b8 DIST libgcrypt-1.11.2.tar.bz2.sig 147 BLAKE2B 5126fa06a9a67b2b71711f76ecbf9f3596f300f97256378961768a2f3c3927321da649eb0df4ddfb653e4503712b8b3c363c252bcb83ca53c7eea89a3ac8d4d4 SHA512 73b1d6d53e2f9061f06628a0fe983919f745c1c92930fd6a9871a0a3a589878efe68ec48b4e17e3fd3c1e098bc38c38cc8895246cee25463377a8bfa8590b164 DIST libgcrypt-1.12.1.tar.bz2 4441330 BLAKE2B 6656d9edc5c702b5b76aa2a7504ed9f224718dc0047494f51de63f98a52e334fab1ade05e4c0ec44f92c406292090cf02193ec3f1eb754e886f3a71f9bbe1435 SHA512 e4be1f9d32bb672663499a1203454b9c646b7f237d9acb64303b991798fe3f4c3366793b0564b94c6687885353f6e7fef6ae6e74a57ccb5eb5606e77c81b3738 DIST libgcrypt-1.12.1.tar.bz2.sig 147 BLAKE2B c18304651b08872c0a42c7c87ac40e32214b9b17e56fa2528975919c75ccb08ab05d9befaeddcee5b60d0015fe0677463cfdd6ae140d53ba8268c575a153d3e9 SHA512 9068d38fe4b55af181202982c3beb7345782c03fb48eb32c26fe34405e01669db751fd8e3f58c2d4173d6523069165ce93ce447a89f8d856280b5fd0cf8a7d1b +DIST libgcrypt-1.12.2.tar.bz2 4441855 BLAKE2B f52a10acdbf56a5adc927e22508a30d131a001e8f559d55c72d4ccfea4a514ef7983ab3f985af798c06a9c188639f21c54f1cc0ec6cba968172ddc6bd21ae0bd SHA512 dc1a4a6c00a0d84d90c8d71f4bd121b968c80df74137d6e8867f1f4cc014a539efb5238c1a1429d7cb95e493a40718fc19252edc592ffe0f43057b372896591c +DIST libgcrypt-1.12.2.tar.bz2.sig 147 BLAKE2B 74adf984bda98e413f5f31aa3b2a60043773b387758caf3ec5e603ddd358bffdd58ec021c5828d1e45f2747f1766f0d63380ed4a5938565b829851e048b6279d SHA512 5991d26f0d59d646ba29c491e6952f31c970fb80b7928f999095d9f7d1435026c9304614558415c06254a81650ce08376ea09f7d93c657dfdb7ef014e58dbf28 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.12.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.12.1.ebuild index 9e9d7fb63e2..75d319333aa 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.12.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.12.1.ebuild @@ -13,7 +13,7 @@ SRC_URI+=" verify-sig? ( mirror://gnupg/${PN}/${P}.tar.bz2.sig )" LICENSE="LGPL-2.1+ GPL-2+ MIT" SLOT="0/20" # subslot = soname major version -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="+asm doc +getentropy static-libs" IUSE+=" cpu_flags_arm_neon cpu_flags_arm_aes cpu_flags_arm_sha1 cpu_flags_arm_sha2 cpu_flags_arm_sve" IUSE+=" cpu_flags_ppc_altivec cpu_flags_ppc_vsx2 cpu_flags_ppc_vsx3" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.12.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.12.2.ebuild new file mode 100644 index 00000000000..75d319333aa --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.12.2.ebuild @@ -0,0 +1,185 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc +inherit autotools flag-o-matic linux-info multilib-minimal toolchain-funcs verify-sig + +DESCRIPTION="General purpose crypto library based on the code used in GnuPG" +HOMEPAGE="https://www.gnupg.org/" +SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2" +SRC_URI+=" verify-sig? ( mirror://gnupg/${PN}/${P}.tar.bz2.sig )" + +LICENSE="LGPL-2.1+ GPL-2+ MIT" +SLOT="0/20" # subslot = soname major version +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="+asm doc +getentropy static-libs" +IUSE+=" cpu_flags_arm_neon cpu_flags_arm_aes cpu_flags_arm_sha1 cpu_flags_arm_sha2 cpu_flags_arm_sve" +IUSE+=" cpu_flags_ppc_altivec cpu_flags_ppc_vsx2 cpu_flags_ppc_vsx3" +IUSE+=" cpu_flags_x86_aes cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_avx512f cpu_flags_x86_padlock cpu_flags_x86_sha cpu_flags_x86_sse4_1" + +# Build system only has --disable-arm-crypto-support right now +# If changing this, update src_configure logic too. +# ARM CPUs seem to, right now, support all-or-nothing for crypto extensions, +# but this looks like it might change in future. This is just a safety check +# in case people somehow do have a CPU which only supports some. They must +# for now disable them all if that's the case. +REQUIRED_USE=" + cpu_flags_arm_aes? ( cpu_flags_arm_sha1 cpu_flags_arm_sha2 ) + cpu_flags_arm_sha1? ( cpu_flags_arm_aes cpu_flags_arm_sha2 ) + cpu_flags_arm_sha2? ( cpu_flags_arm_aes cpu_flags_arm_sha1 ) + cpu_flags_ppc_vsx3? ( cpu_flags_ppc_altivec cpu_flags_ppc_vsx2 ) + cpu_flags_ppc_vsx2? ( cpu_flags_ppc_altivec ) +" + +RDEPEND=" + >=dev-libs/libgpg-error-1.56[${MULTILIB_USEDEP}] + getentropy? ( + kernel_linux? ( + elibc_glibc? ( >=sys-libs/glibc-2.25 ) + elibc_musl? ( >=sys-libs/musl-1.1.20 ) + ) + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + doc? ( virtual/texi2dvi ) + verify-sig? ( sec-keys/openpgp-keys-gnupg ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.12.0-multilib-syspath.patch + "${FILESDIR}"/${PN}-powerpc-darwin.patch +) + +MULTILIB_CHOST_TOOLS=( + /usr/bin/libgcrypt-config +) + +pkg_pretend() { + if [[ ${MERGE_TYPE} == buildonly ]]; then + return + fi + if use kernel_linux && use getentropy; then + unset KV_FULL + get_running_version + if [[ -n ${KV_FULL} ]] && kernel_is -lt 3 17; then + eerror "The getentropy function requires the getrandom syscall." + eerror "This was introduced in Linux 3.17." + eerror "Your system is currently running Linux ${KV_FULL}." + eerror "Disable the 'getentropy' USE flag or upgrade your kernel." + die "Kernel is too old for getentropy" + fi + fi +} + +pkg_setup() { + : +} + +src_prepare() { + default + eautoreconf +} + +src_configure() { + # Temporary workaround for a build failure (known gcc issue): + # * https://bugs.gentoo.org/956605 + # * https://gcc.gnu.org/PR110812 + use riscv && filter-lto + + # Temporary workaround for mfpmath=sse on x86 causing issues when -msse is + # stripped as it's not clear cut on how to handle in flag-o-matic we can at + # least solve it the ebuild see https://bugs.gentoo.org/959349 + use x86 && filter-flags -mfpmath=sse + + # Hardcodes the path to FGREP in libgcrypt-config + export ac_cv_path_SED="sed" + export ac_cv_path_EGREP="grep -E" + export ac_cv_path_EGREP_TRADITIONAL="grep -E" + export ac_cv_path_FGREP="grep -F" + export ac_cv_path_GREP="grep" + + multilib-minimal_src_configure +} + +multilib_src_configure() { + if [[ ${CHOST} == powerpc* ]] ; then + # ./configure does a lot of automagic, prevent that + # generic ppc32+ppc64 altivec + use cpu_flags_ppc_altivec || local -x gcry_cv_cc_ppc_altivec=no + use cpu_flags_ppc_altivec || local -x gcry_cv_cc_ppc_altivec_cflags=no + # power8 vector extension, aka arch 2.07 ISA, also checked below via ppc-crypto-support + use cpu_flags_ppc_vsx2 || local -x gcry_cv_gcc_inline_asm_ppc_altivec=no + # power9 vector extension, aka arch 3.00 ISA + use cpu_flags_ppc_vsx3 || local -x gcry_cv_gcc_inline_asm_ppc_arch_3_00=no + fi + + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + + local myeconfargs=( + CC_FOR_BUILD="$(tc-getBUILD_CC)" + + --enable-noexecstack + $(use_enable cpu_flags_arm_neon neon-support) + # See REQUIRED_USE comment above + $(use_enable cpu_flags_arm_aes arm-crypto-support) + $(use_enable cpu_flags_arm_sve sve-support) + $(use_enable cpu_flags_ppc_vsx2 ppc-crypto-support) + $(use_enable cpu_flags_x86_aes aesni-support) + $(use_enable cpu_flags_x86_avx avx-support) + $(use_enable cpu_flags_x86_avx2 avx2-support) + $(use_enable cpu_flags_x86_avx512f avx512-support) + $(use_enable cpu_flags_x86_padlock padlock-support) + $(use_enable cpu_flags_x86_sha shaext-support) + $(use_enable cpu_flags_x86_sse4_1 sse41-support) + # required for sys-power/suspend[crypt], bug 751568 + $(use_enable static-libs static) + + # disabled due to various applications requiring privileges + # after libgcrypt drops them (bug #468616) + --without-capabilities + + $(use asm || echo "--disable-asm") + + GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config" + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" + ) + + if use kernel_linux; then + # --enable-random=getentropy requires getentropy/getrandom. + # --enable-random=linux enables legacy code that tries getrandom + # and falls back to reading /dev/random. + myeconfargs+=( --enable-random=$(usex getentropy getentropy linux) ) + fi + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" \ + $("${S}/configure" --help | grep -o -- '--without-.*-prefix') +} + +multilib_src_compile() { + default + multilib_is_native_abi && use doc && VARTEXFONTS="${T}/fonts" emake -C doc gcrypt.pdf +} + +multilib_src_test() { + # t-secmem and t-sexp need mlock which requires extra privileges; nspawn + # at least disallows that by default. + local -x GCRYPT_IN_ASAN_TEST=1 + # Avoid running (very) expensive bench-slope test. On hppa, it + # takes at least 7 hours. + local -x GCRYPT_NO_BENCHMARKS=1 + + default +} + +multilib_src_install() { + emake DESTDIR="${D}" install + multilib_is_native_abi && use doc && dodoc doc/gcrypt.pdf +} + +multilib_src_install_all() { + default + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/Manifest index 5e0d5d732ff..c712ea71971 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 @@ -1,8 +1,4 @@ -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 -DIST libgpg-error-1.57.tar.bz2 1123531 BLAKE2B fb48564c32d2f7dc47eaf4ac26b88d47b0df71c69ff62921965033c6f209011052673b7a09eeb44605653f21255d40cd0fb8492fe02eaacab84f76b98c77eb6b SHA512 d45d2ba1539d99f2886fd568cc29642b12a028d26d13b494e5f6df5b3ed5cdec04a861b29e310ba3fa2ef6d1bbeca3e0ae922a230d4769756492ab912bd6902c -DIST libgpg-error-1.57.tar.bz2.sig 147 BLAKE2B 9c6ca75160daff73c99b6807d9c89c1195288bc507df1f53b0f01d42a3d530c32b62bf51d4c3a4c6b741a39136855bd42b5fb43f4278d778b0d1f5228bef03ab SHA512 136818c9f2c9bddd3b91b8dbf08ae63dd8e6f9924b06883dc37238a3ee8e5a975f7e8c6749fcb972039642050d181167ccee9efcd73c2c068941127c8a81235f -DIST libgpg-error-1.58.tar.bz2 1123899 BLAKE2B 7d1c0d54094d870e9e92aebadc4a8a3cf0e7a1ae7841b445896105583a8885439ca8364b2e364639759912ea46f801b41e5025db9aa292c4fce43713430711e1 SHA512 4f4cb7f24e6cf4266c30da3985b9e62d4ab6012d8f43e9969d6edfd344d2a08f6277ab10610627597f6c58d064b3127fd286ae678381b84610d611645db5bbb4 -DIST libgpg-error-1.58.tar.bz2.sig 147 BLAKE2B edef17d406ea390d2463e06ec0dc3f1dbc1304198bdcd0079b2cbeba8d0078c89574a658697710844dd38ac8af4e6efa9936901fc85d8541f6745ca9c82af244 SHA512 8c3ecc7fe9616bc00ff1d9b4ea7adac8eaa63778d757c9fff1b143ecf1542d95b0fbce1e3de4e3ee1112fab30558419489dc3b97abd8030c838d0eb64fd27d40 DIST libgpg-error-1.59.tar.bz2 1123184 BLAKE2B 04dcdf411fbeecbfcb84c69949b42940793e725cf261eaac705677dc9071b395b0f5d38741f4d59411646cd45a1a8c44edbd2a8204a962e9948b1d7e223041f5 SHA512 86a2b4f94928e88aab23c84e0febb702453617edf3cddf45d0ed9ea817007085a6d132214fd2c855d816ec296514401157e89dab2790aea1edf5c376ea7e1f56 DIST libgpg-error-1.59.tar.bz2.sig 147 BLAKE2B f95040c1bbd4e5807a351e77c73a6901b706478ffcaa19c3fa58a6d561e17ea1764b88ae24ea7f0651a633fafc465bb0457a3279e3db4d899bf30e094e652728 SHA512 6d89fdbd0f1151861d19832d12ebc92ed3d4263d6a44223d0f5ff8d1026898cd99cced1b864217c0d7501255db2c5586a7ddfd0a7fd2b8f36fbb98e768cb3c83 +DIST libgpg-error-1.60.tar.bz2 1125272 BLAKE2B 880cae5f57a679ee099fab48856d537dd35479795c2bb4ac20eb0a3612b0c2091487b64bcc94ea6520837f395ac5e2689c35a399499539bb319e1949a2a4e30b SHA512 e8beaa63ce56a34070b2e6b0978a9b91c5e8fa094a957c8dd6fec42cc02cbd47670b94fc19fdcec474358cc2ebb28f6fc21b3465e992fbd9c04eec576717b8ca +DIST libgpg-error-1.60.tar.bz2.sig 294 BLAKE2B cae601d770c52094f3cd38a278bf5941a127605e3e76039fafcc14444963143232377bdb50db55da756403a13608597f631c5788ae5d9e5a875567859f3b4a05 SHA512 108fa3238e2824eb69fdbeabffe95c0042d64dd1c98adf752ff0480b07c966cb96d750f62c511dd8b3f16d5c8153a03ad2021bfcc7eea1098d20d7c397634694 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 deleted file mode 100644 index 8fb77cd1f21..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/libgpg-error-1.56.ebuild +++ /dev/null @@ -1,89 +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 -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 ~arm64-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/libgpg-error/libgpg-error-1.57.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/libgpg-error-1.57.ebuild deleted file mode 100644 index 97873532d3e..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/libgpg-error-1.57.ebuild +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintainers should: -# 1. Join the "Gentoo" project at https://dev.gnupg.org/project/view/27/ -# 2. Subscribe to release tasks like https://dev.gnupg.org/T6159 -# (find the one for the current release then subscribe to it + -# any subsequent ones linked within so you're covered for a while.) - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc -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 ~arm64-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/libgpg-error/libgpg-error-1.58.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/libgpg-error-1.58.ebuild deleted file mode 100644 index 97873532d3e..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/libgpg-error-1.58.ebuild +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintainers should: -# 1. Join the "Gentoo" project at https://dev.gnupg.org/project/view/27/ -# 2. Subscribe to release tasks like https://dev.gnupg.org/T6159 -# (find the one for the current release then subscribe to it + -# any subsequent ones linked within so you're covered for a while.) - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc -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 ~arm64-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/libgpg-error/libgpg-error-1.59.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/libgpg-error-1.59.ebuild index 7d0c653a663..97873532d3e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/libgpg-error-1.59.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/libgpg-error-1.59.ebuild @@ -19,7 +19,7 @@ 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 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="common-lisp nls static-libs test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/libgpg-error-1.60.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/libgpg-error-1.60.ebuild new file mode 100644 index 00000000000..7d0c653a663 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/libgpg-error-1.60.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintainers should: +# 1. Join the "Gentoo" project at https://dev.gnupg.org/project/view/27/ +# 2. Subscribe to release tasks like https://dev.gnupg.org/T6159 +# (find the one for the current release then subscribe to it + +# any subsequent ones linked within so you're covered for a while.) + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc +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 ~arm64-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/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/libksba/Manifest index 8e736658426..2bf8d45c733 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libksba/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libksba/Manifest @@ -2,3 +2,5 @@ DIST libksba-1.6.7.tar.bz2 706437 BLAKE2B 95f51bc9a0a7ee14b91089aded3a420cf2f986 DIST libksba-1.6.7.tar.bz2.sig 119 BLAKE2B 74b3fd7682ae526c7430fe3792f873838c366ec0de1d80b699370a8cefdfdfc386f883b1d45df8df62e64d9de992f4bbfa7f74cfbb38419694f1a11ff1d3110a SHA512 97df523f0640f8fed0c3c7603218058021475d5b0e47a36610aa88312a6bb5f302e1e2016f5721a9077d0d27b35b28c7c96d9843866c957c965b2c580d3ee60b DIST libksba-1.6.8.tar.bz2 716917 BLAKE2B 13efba4f1f22de8e149049443ac1b68dea75c7526678f0a462c6922fb2f6de71c8c20d6c41b726e3083076f201576645b2f9181340fa2c49ca4de2ed1f6064fb SHA512 23522376b4ce89c9847d464723ba6052e410d2450dcd10e0da3f07e074c1169585823eea30a70aa572f4e8ec86121844476eeb90c8599dd21f22eab71333d5a8 DIST libksba-1.6.8.tar.bz2.sig 294 BLAKE2B 257739517c1c5c0c6b0121de186ed7dfcc54e470070ce9466408e148fa16efdc8ba7146211a3574ac9a6bae95015be9d5545bc30459ac0f2f38873bac219a879 SHA512 ada3a9f6f26cb89c5c2926e51283bb26db7ec3a95da592b296e4b269889a6607c31ebb8b5b09e92afc987fa146c2f67b2f8a024808264a2c5dd9a8fd0b42c64c +DIST libksba-1.8.0.tar.bz2 721895 BLAKE2B ce1ceaf4b2542c2ac391fe944e81d0a05d73abf6abbc2637ef2c6c93d0a110a9fd352ae1586eb486148244ec68b0974348f440560991ca96196ab57549ab2cd3 SHA512 d0cfb14131c12e3dbce4b9e5e6026a44570c8f5412099f95180b77a944d4705a2f897cda94764e04ffd9c0aad3772b5e40c81b8e032ff58fbc82e5ad6e2978e9 +DIST libksba-1.8.0.tar.bz2.sig 147 BLAKE2B 764eea53d2d42a08e4d39d2df9d51f9b411ccef879c07fe4079ffe3b7c6101c1a1cebfcca90b369f38598b2314bfb483e14cd67bd8bf27dc1333b6cfcb0bb97e SHA512 62a9a71f5f0aa3c4b6c063a9369e2f7a608ae26de1599893881ca112c98678e0dd22b9133a6155a278c2bbcacd08a1ae2ddda907ffc68cb74ee872c225ac885b diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libksba/libksba-1.6.8.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libksba/libksba-1.6.8.ebuild index 7aeb0d2b91b..c8eeac391fd 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libksba/libksba-1.6.8.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libksba/libksba-1.6.8.ebuild @@ -20,7 +20,7 @@ SRC_URI+=" verify-sig? ( mirror://gnupg/${PN}/${P}.tar.bz2.sig )" LICENSE="LGPL-3+ GPL-2+ GPL-3" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="static-libs" RDEPEND=">=dev-libs/libgpg-error-1.33" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libksba/libksba-1.8.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libksba/libksba-1.8.0.ebuild new file mode 100644 index 00000000000..7aeb0d2b91b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libksba/libksba-1.8.0.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintainers should: +# 1. Join the "Gentoo" project at https://dev.gnupg.org/project/view/27/ +# 2. Subscribe to release tasks like https://dev.gnupg.org/T6159 +# (find the one for the current release then subscribe to it + +# any subsequent ones linked within so you're covered for a while.) + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc +# in-source builds are not supported: https://dev.gnupg.org/T6313#166339 +inherit toolchain-funcs out-of-source verify-sig libtool + +DESCRIPTION="X.509 and CMS (PKCS#7) library" +HOMEPAGE="https://www.gnupg.org/related_software/libksba" +SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2" +SRC_URI+=" verify-sig? ( mirror://gnupg/${PN}/${P}.tar.bz2.sig )" + +LICENSE="LGPL-3+ GPL-2+ GPL-3" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="static-libs" + +RDEPEND=">=dev-libs/libgpg-error-1.33" +DEPEND="${RDEPEND}" +BDEPEND=" + app-alternatives/yacc + verify-sig? ( sec-keys/openpgp-keys-gnupg ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.6.0-no-fgrep-ksba-config.patch +) + +src_prepare() { + default + + elibtoolize # necessary on Solaris for shared lib support +} + +my_src_configure() { + export CC_FOR_BUILD="$(tc-getBUILD_CC)" + + local myeconfargs=( + --disable-valgrind-tests + $(use_enable static-libs static) + + GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config" + LIBGCRYPT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-libgcrypt-config" + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" + ) + + econf "${myeconfargs[@]}" +} + +my_src_install() { + default + + # People need to use ksba-config for --cflags and --libs + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libltdl/libltdl-2.5.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libltdl/libltdl-2.5.4.ebuild index de5758d91f0..fa356c1aeb8 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libltdl/libltdl-2.5.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libltdl/libltdl-2.5.4.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -20,7 +20,7 @@ fi S="${WORKDIR}"/${MY_P}/libltdl -LICENSE="GPL-2" +LICENSE="LGPL-2+" SLOT="0" IUSE="static-libs" # libltdl doesn't have a testsuite. Don't bother trying. diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libltdl/libltdl-2.6.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libltdl/libltdl-2.6.0.ebuild index 192de805336..4c0d0e1bded 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libltdl/libltdl-2.6.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libltdl/libltdl-2.6.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -21,7 +21,7 @@ fi S="${WORKDIR}"/${MY_P}/libltdl -LICENSE="GPL-2" +LICENSE="LGPL-2+" SLOT="0" IUSE="static-libs" # libltdl doesn't have a testsuite. Don't bother trying. diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/files/libpcre2-10.47-constness.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/files/libpcre2-10.47-constness.patch new file mode 100644 index 00000000000..8f7025371dd --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/files/libpcre2-10.47-constness.patch @@ -0,0 +1,48 @@ +https://github.com/PCRE2Project/pcre2/commit/d8a443253783718f62f970b10bec2fcf34f077e3 + +From: Rudi Heitbaum +Date: Mon, 9 Feb 2026 21:10:22 +1100 +Subject: [PATCH] pcre2grep: retain const qualifier from pointer (#879) + +Since glibc-2.43: + +For ISO C23, the functions bsearch, memchr, strchr, strpbrk, strrchr, strstr, wcschr, wcspbrk, wcsrchr, wcsstr and wmemchr that return pointers into their input arrays now have definitions as macros that return a pointer to a const-qualified type when the input argument is a pointer to a const-qualified type. + +https://lists.gnu.org/archive/html/info-gnu/2026-01/msg00005.html +--- + src/pcre2grep.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/pcre2grep.c b/src/pcre2grep.c +index 705e15f5d..044a8f6e4 100644 +--- a/src/pcre2grep.c ++++ b/src/pcre2grep.c +@@ -593,7 +593,7 @@ static char * + parse_grep_colors(const char *gc) + { + static char seq[16]; +-char *col; ++const char *col; + uint32_t len; + if (gc == NULL) return NULL; + col = strstr(gc, "ms="); +@@ -1309,7 +1309,7 @@ if (*endptr != 0) /* Error */ + { + if (longop) + { +- char *equals = strchr(op->long_name, '='); ++ const char *equals = strchr(op->long_name, '='); + int nlen = (equals == NULL)? (int)strlen(op->long_name) : + (int)(equals - op->long_name); + fprintf(stderr, "pcre2grep: Malformed number \"%s\" after --%.*s\n", +@@ -4007,8 +4007,8 @@ for (i = 1; i < argc; i++) + + for (op = optionlist; op->one_char != 0; op++) + { +- char *opbra = strchr(op->long_name, '('); +- char *equals = strchr(op->long_name, '='); ++ const char *opbra = strchr(op->long_name, '('); ++ const char *equals = strchr(op->long_name, '='); + + /* Handle options with only one spelling of the name */ + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/libpcre2-10.47.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/libpcre2-10.47.ebuild index 60412f7e6a6..46f1655beb8 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/libpcre2-10.47.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/libpcre2-10.47.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -49,6 +49,12 @@ MULTILIB_CHOST_TOOLS=( PATCHES=( "${FILESDIR}"/${PN}-10.10-000-Fix-multilib.patch "${FILESDIR}"/${PN}-10.47-riscv.patch + "${FILESDIR}"/${PN}-10.47-constness.patch +) + +QA_CONFIG_IMPL_DECL_SKIP=( + # Only exists in MS Visual C++ (bug #954363) + __assume ) src_prepare() { diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libpwquality/libpwquality-1.4.5-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libpwquality/libpwquality-1.4.5-r2.ebuild index 12c34adae5b..9be61b564ed 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libpwquality/libpwquality-1.4.5-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libpwquality/libpwquality-1.4.5-r2.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{11..13} ) DISTUTILS_EXT=1 DISTUTILS_OPTIONAL=1 DISTUTILS_USE_PEP517=setuptools diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libpwquality/libpwquality-1.4.5-r3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libpwquality/libpwquality-1.4.5-r3.ebuild new file mode 100644 index 00000000000..92560733f66 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libpwquality/libpwquality-1.4.5-r3.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +DISTUTILS_EXT=1 +DISTUTILS_OPTIONAL=1 +DISTUTILS_USE_PEP517=setuptools +inherit libtool pam distutils-r1 + +DESCRIPTION="Library for password quality checking and generating random passwords" +HOMEPAGE="https://github.com/libpwquality/libpwquality" +SRC_URI="https://github.com/${PN}/${PN}/releases/download/${P}/${P}.tar.bz2" + +LICENSE="|| ( BSD GPL-2 )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="pam python static-libs" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +BDEPEND=" + >=sys-devel/gettext-0.18.2 + virtual/pkgconfig + python? ( + ${DISTUTILS_DEPS} + ${PYTHON_DEPS} + ) +" +RDEPEND=" + >=sys-libs/cracklib-2.8:=[static-libs(+)?] + pam? ( sys-libs/pam ) + python? ( ${PYTHON_DEPS} ) +" +DEPEND="${RDEPEND}" + +src_prepare() { + default + elibtoolize + + if use python ; then + cd python || die + distutils-r1_src_prepare + fi +} + +src_configure() { + use python && python_setup + + # Install library in /lib for pam + local myeconfargs=( + --libdir="${EPREFIX}/usr/$(get_libdir)" + $(use_enable pam) + --with-python-binary=$(usex python "${PYTHON}" true) + --with-securedir="${EPREFIX}/$(getpam_mod_dir)" + --disable-python-bindings + $(use_enable static-libs static) + ) + + econf "${myeconfargs[@]}" + + if use python; then + cd python || die + distutils-r1_src_configure + fi +} + +src_compile() { + default + if use python; then + cd python || die + distutils-r1_src_compile + fi +} + +src_test() { + default + if use python; then + cd python || die + distutils-r1_src_test + fi +} + +src_install() { + default + + if use python; then + cd python || die + distutils-r1_src_install + fi + + find "${ED}" -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libsodium/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/libsodium/Manifest index a1b6ec018b4..80ca0abf70b 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libsodium/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libsodium/Manifest @@ -1,2 +1,4 @@ DIST libsodium-1.0.21_p20260122.tar.gz 2049837 BLAKE2B e55ffacb5355935980faac65cd21c1677f5904e20b9b752959bbbf08738b2ef677ffc341a67f866625167688b2a3488a24e11adc78f565b79684e8b1b0628e88 SHA512 8e65aae18a26fc7e7dc7fee7c078b5964a094de0d4fb01d571366ffa4c57d1fab6391b8e5a6fd8a22450c6ad57060f7ad7760f5caa215ded49579af71fa8fc9b DIST libsodium-1.0.21_p20260122.tar.gz.minisig 318 BLAKE2B 0cb95f535f0da4345652aac7e7a36a23923c1fb925de25ed087cbe1a7f0b62be611201a947c0c360515d0e2a5f93e76aff6feff5df78dfd0e5ae659bb71feab5 SHA512 73c0d6ab4816eb10c731517d95405e817a12aa716173fee874d10fb9e843cad4aa921ddeef4b3d69c26a3ec0e1a9f0695416a2a5c542638c31292a49231ff14e +DIST libsodium-1.0.22.tar.gz 2008529 BLAKE2B e96118006f50f56787ea38859362a6f5f4b340d74500fdc011da1cb7d2fcda0eeefd21e121034ca28d19e9a921c073ab650943bdebd43e48c5f53863eb89f4d3 SHA512 8f392de781f09578d9a32000a4198e8d199ab910743017af3b3c5cae8053f745bcc885a9417fcaffb03b832400d829aef3a93c065bbb77b92598d882b6dcf187 +DIST libsodium-1.0.22.tar.gz.minisig 318 BLAKE2B d8058b40cbd1a698c78920cd9551001650453ee7ed6dfd4c263cb8bb74d6cca90f18919ae1b85a1e3f7dd5bfad999db6029bada5aa6c49643329ad9e01683bd6 SHA512 051be81a42ffc63190fa9bf74f3c72cb47552e9a81f1153f82ad4d248920f0af87e34db2602fae2f34bfa7508f5da6ba69d9aa310080452245692d29dee3debb diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libsodium/libsodium-1.0.22.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libsodium/libsodium-1.0.22.ebuild new file mode 100644 index 00000000000..b8759cbfee3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libsodium/libsodium-1.0.22.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libsodium.minisig +VERIFY_SIG_METHOD=minisig +inherit autotools multilib-minimal verify-sig + +DESCRIPTION="Portable fork of NaCl, a higher-level cryptographic library" +HOMEPAGE="https://libsodium.org" + +if [[ ${PV} == *_p* ]] ; then + MY_P=${PN}-$(ver_cut 1-3)-stable-$(ver_cut 5-) + + # We use _pN to represent 'stable releases' + # These are backports from upstream to the last release branch + # See https://download.libsodium.org/libsodium/releases/README.html + SRC_URI=" + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${MY_P}.tar.gz -> ${P}.tar.gz + verify-sig? ( https://dev.gentoo.org/~sam/distfiles/dev-libs/libsodium/${MY_P}.tar.gz.minisig -> ${P}.tar.gz.minisig ) + " + S="${WORKDIR}"/${PN}-stable +else + SRC_URI=" + https://download.libsodium.org/${PN}/releases/${P}.tar.gz + verify-sig? ( https://download.libsodium.org/${PN}/releases/${P}.tar.gz.minisig ) + " +fi + +LICENSE="ISC" +SLOT="0/26" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos" +IUSE="+asm static-libs +urandom" + +CPU_USE=( cpu_flags_x86_{aes,sse4_1} ) +IUSE+=" ${CPU_USE[@]}" + +BDEPEND=" verify-sig? ( sec-keys/minisig-keys-libsodium )" + +QA_CONFIG_IMPL_DECL_SKIP=( + _rdrand64_step # depends on target, bug #924154 +) + +PATCHES=( + "${FILESDIR}"/${PN}-1.0.19-cpuflags.patch +) + +src_prepare() { + default + + eautoreconf +} + +multilib_src_configure() { + local myeconfargs=( + $(use_enable asm) + $(use_enable cpu_flags_x86_aes aesni) + $(use_enable cpu_flags_x86_sse4_1 sse4_1) + $(use_enable static-libs static) + $(use_enable !urandom blocking-random) + ) + + # --disable-pie is needed on x86, see bug #512734 + # TODO: Check if still needed? + if [[ ${ABI} == x86 ]] ; then + myeconfargs+=( --disable-pie ) + fi + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_install_all() { + default + find "${ED}" -type f -name "*.la" -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libtraceevent/libtraceevent-1.9.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libtraceevent/libtraceevent-1.9.0.ebuild index f4a5155786e..c961359b519 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libtraceevent/libtraceevent-1.9.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libtraceevent/libtraceevent-1.9.0.ebuild @@ -13,7 +13,7 @@ if [[ ${PV} =~ [9]{4,} ]]; then inherit git-r3 else SRC_URI="https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/snapshot/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" + KEYWORDS="~alpha amd64 ~arm ~arm64 ~loong ppc ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libtracefs/libtracefs-1.8.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libtracefs/libtracefs-1.8.3.ebuild index b83411b76b1..8dc817701d2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libtracefs/libtracefs-1.8.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libtracefs/libtracefs-1.8.3.ebuild @@ -13,7 +13,7 @@ if [[ ${PV} =~ [9]{4,} ]]; then inherit git-r3 else SRC_URI="https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/snapshot/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" + KEYWORDS="~alpha amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" fi LICENSE="LGPL-2.1" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/Manifest index 55b83078468..c7838a58761 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/Manifest @@ -1,5 +1,4 @@ DIST libunistring-0.9.10.tar.xz 2051320 BLAKE2B 25d162d9d510cc35ad4209acceb9b06bcc0553b8ce56e94f8df12c4df64d91abfc4a9e15b50b5c8d5b9672939305a394a7e83f1892258defb7ae5ac2ccf79dfb SHA512 01dcab6e05ea4c33572bf96cc0558bcffbfc0e62fc86410cef06c1597a0073d5750525fe2dee4fdb39c9bd704557fcbab864f9645958108a2e07950bc539fe54 DIST libunistring-1.0.tar.xz 2367800 BLAKE2B 8208fe33d4ac2f015b0efb56b0c7dd87afc4bb1c6ca4eb3ded86d7e2101d7b7f68bfd8991af4b6dd408282ec73f134ee0b884e761ff6d52e8a1e398326aec420 SHA512 70d5ad82722844dbeacdfcb4d7593358e4a00a9222a98537add4b7f0bf4a2bb503dfb3cd627e52e2a5ca1d3da9e5daf38a6bd521197f92002e11e715fb1662d1 -DIST libunistring-1.1.tar.xz 2397676 BLAKE2B 721adc90884006480055b95d0fa06cd862417aa02b467f1e14688292ad9c11f1e33520b14ed5dc2d2724c6df8713d3af1e8032014259d8355156cb72edfcb983 SHA512 01a4267bbd301ea5c389b17ee918ae5b7d645da8b2c6c6f0f004ff2dead9f8e50cda2c6047358890a5fceadc8820ffc5154879193b9bb8970f3fb1fea1f411d6 -DIST libunistring-1.2.tar.xz 2502196 BLAKE2B 606c6fdd93f05b01e9b08b3bd30283afcbf9a3425abf900e7672f1d6eb91b51009913d4f5e45a4c1c1b82a84b4870d3eaced9ca76fd570936ad5c39c94038fc7 SHA512 5fbb5a0a864db73a6d18cdea7b31237da907fff0ef288f3a8db6ebdba8ef61ad8855e5fc780c2bbf632218d8fa59dd119734e5937ca64dc77f53f30f13b80b17 DIST libunistring-1.3.tar.xz 2753448 BLAKE2B 213d24ea4ba5e960a030bd83fc1b6c9d9a5e33d63ade8874e2a15d1b7a0acbe4b2d03df18065f6c17f01bfed94f7e70ef474e713f5c5ad2375cf2438457b0379 SHA512 864d42b1d4ae4941fe5c8327d6726ab8e3a35d2d5f9d25ce4859a72ab2f549a7b68f58638cf8767d863f58161d1a4053495d185860964a942d6750e42facf931 +DIST libunistring-1.4.2.tar.xz 2786084 BLAKE2B a03c51d3b1295642f5933e1b129f1b3f81705ef10422a30e6786d36e5788334ee6fbff1d70b31e1a95a65a6869db35f7ce77f6a59555eadf1ee31ecf19d92ccd SHA512 0215f7f40f426227eca5174140654a3fa43ac1520eeb212c2ba08043470f905687b2703afdda12e9635359a6187643900136b6bb11b422bd7567d17ca71b555f diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/files/libunistring-1.4.2-nodocs.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/files/libunistring-1.4.2-nodocs.patch new file mode 100644 index 00000000000..3d9696ff0e5 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/files/libunistring-1.4.2-nodocs.patch @@ -0,0 +1,11 @@ +--- a/Makefile.in ++++ b/Makefile.in +@@ -2373,7 +2373,7 @@ top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + AUTOMAKE_OPTIONS = 1.5 gnu no-dependencies + ACLOCAL_AMFLAGS = -I m4 -I gnulib-m4 +-SUBDIRS = doc gnulib-local lib tests install-tests ++SUBDIRS = gnulib-local lib tests install-tests + + # Allow users to use "gnulib-tool --update". + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/libunistring-1.1-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/libunistring-1.1-r1.ebuild deleted file mode 100644 index 4e3542b3805..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/libunistring-1.1-r1.ebuild +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit multilib-minimal libtool - -DESCRIPTION="Library for manipulating Unicode and C strings according to Unicode standard" -HOMEPAGE="https://www.gnu.org/software/libunistring/" -SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" - -LICENSE="|| ( LGPL-3+ GPL-2+ ) || ( FDL-1.2 GPL-3+ )" -# Check regularly even on "minor" bumps -SLOT="0/5" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="doc static-libs" - -PATCHES=( - "${FILESDIR}"/${PN}-nodocs.patch -) - -src_prepare() { - default - elibtoolize # for Solaris shared libraries -} - -multilib_src_configure() { - ECONF_SOURCE="${S}" econf $(use_enable static-libs static) -} - -multilib_src_install_all() { - default - - if use doc ; then - docinto html - dodoc doc/*.html - doinfo doc/*.info - fi - - find "${ED}" -name '*.la' -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/libunistring-1.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/libunistring-1.2.ebuild deleted file mode 100644 index f2acc4ea6f9..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/libunistring-1.2.ebuild +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit multilib-minimal libtool - -DESCRIPTION="Library for manipulating Unicode and C strings according to Unicode standard" -HOMEPAGE="https://www.gnu.org/software/libunistring/" -SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" - -LICENSE="|| ( LGPL-3+ GPL-2+ ) || ( FDL-1.2 GPL-3+ )" -# Check regularly even on "minor" bumps -SLOT="0/5" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="doc static-libs" - -QA_CONFIG_IMPL_DECL_SKIP=( - # bug #900374 - unreachable - MIN - static_assert - alignof -) - -PATCHES=( - "${FILESDIR}"/${PN}-nodocs.patch -) - -src_prepare() { - default - elibtoolize # for Solaris shared libraries -} - -multilib_src_configure() { - ECONF_SOURCE="${S}" econf $(use_enable static-libs static) -} - -multilib_src_install_all() { - default - - if use doc ; then - docinto html - dodoc doc/*.html - doinfo doc/*.info - fi - - find "${ED}" -name '*.la' -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/libunistring-1.4.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/libunistring-1.4.2.ebuild new file mode 100644 index 00000000000..838ade11bf4 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/libunistring-1.4.2.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib-minimal libtool + +DESCRIPTION="Library for manipulating Unicode and C strings according to Unicode standard" +HOMEPAGE="https://www.gnu.org/software/libunistring/" +SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" + +LICENSE="|| ( LGPL-3+ GPL-2+ ) || ( FDL-1.2 GPL-3+ )" +# Check regularly even on "minor" bumps +SLOT="0/5" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="doc static-libs" + +QA_CONFIG_IMPL_DECL_SKIP=( + # bug #900374 + unreachable + MIN + static_assert + alignof +) + +PATCHES=( + "${FILESDIR}"/${PN}-1.4.2-nodocs.patch +) + +src_prepare() { + default + elibtoolize # for Solaris shared libraries +} + +multilib_src_configure() { + ECONF_SOURCE="${S}" econf $(use_enable static-libs static) +} + +multilib_src_install_all() { + default + + if use doc ; then + docinto html + dodoc doc/*.html + doinfo doc/*.info + fi + + find "${ED}" -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libuv/files/libuv-1.52.1-hurd.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libuv/files/libuv-1.52.1-hurd.patch new file mode 100644 index 00000000000..a0964b12a89 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libuv/files/libuv-1.52.1-hurd.patch @@ -0,0 +1,12 @@ +https://bugs.gentoo.org/971850 +_GNU_SOURCE was lost in some places with: https://github.com/libuv/libuv/commit/5c19f73aa206fcd2be55e2f20aaa8939b3cc5ff9 +--- a/Makefile.am ++++ b/Makefile.am +@@ -479,6 +479,7 @@ endif + + if HURD + uvinclude_HEADERS += include/uv/posix.h ++libuv_la_CFLAGS += -D_GNU_SOURCE + libuv_la_SOURCES += src/unix/bsd-ifaddrs.c \ + src/unix/no-fsevents.c \ + src/unix/no-proctitle.c \ diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.52.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.52.1.ebuild index 5c2848a17e5..4f16105fa91 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.52.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.52.1.ebuild @@ -33,6 +33,7 @@ BDEPEND=" PATCHES=( "${FILESDIR}"/${PN}-1.52.1-test-thread-priority-portage.patch "${FILESDIR}"/${PN}-1.51.0-ppc32-uring.patch + "${FILESDIR}"/${PN}-1.52.1-hurd.patch ) src_prepare() { diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-9999.ebuild index 68ba77336dc..4f16105fa91 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-9999.ebuild @@ -31,7 +31,9 @@ BDEPEND=" " PATCHES=( - "${FILESDIR}"/${PN}-1.48.0-test-thread-priority-portage.patch + "${FILESDIR}"/${PN}-1.52.1-test-thread-priority-portage.patch + "${FILESDIR}"/${PN}-1.51.0-ppc32-uring.patch + "${FILESDIR}"/${PN}-1.52.1-hurd.patch ) src_prepare() { diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libverto/libverto-0.3.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libverto/libverto-0.3.2-r1.ebuild new file mode 100644 index 00000000000..ff101ad147c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libverto/libverto-0.3.2-r1.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools multilib-minimal + +DESCRIPTION="Main event loop abstraction library" +HOMEPAGE="https://github.com/latchset/libverto/" +SRC_URI="https://github.com/latchset/libverto/releases/download/${PV}/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="glib +libev libevent" +REQUIRED_USE="|| ( glib libev libevent )" + +DEPEND="glib? ( >=dev-libs/glib-2.34.3[${MULTILIB_USEDEP}] ) + libev? ( >=dev-libs/libev-4.15[${MULTILIB_USEDEP}] ) + libevent? ( >=dev-libs/libevent-2.0.21[${MULTILIB_USEDEP}] )" + +RDEPEND="${DEPEND}" + +DOCS=( AUTHORS ChangeLog NEWS INSTALL README ) + +PATCHES=( + "${FILESDIR}"/${P}-non-bash.patch +) + +src_prepare() { + default + eautoreconf +} + +multilib_src_configure() { + ECONF_SOURCE="${S}" \ + econf \ + $(use_with glib) \ + $(use_with libev) \ + $(use_with libevent) \ + --with-pthread \ + --disable-static +} + +multilib_src_install_all() { + 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 602c68d99bd..38c826c83e8 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 @@ -3,6 +3,7 @@ DIST libxml2-2.14.6.tar.xz 2327580 BLAKE2B ad5d7cb64f8081559a671e9d79b3ebcd7313d DIST libxml2-2.15.0.tar.xz 2004476 BLAKE2B 07a570cd38528eb253d67f1eb88d375c5b3e32dfb23e97662c6243b8af2c4087f2cc931015cc183ff9bc231be88b6099fda42104d77d6fb0126f7804f277a088 SHA512 26fdf2c4c7bba90f0ad9cb74debc94e2ba7db2d8461d2bb40764d479f1735d78e85e6835f0c7ae292d827d387ac74ba889915456d5f3f646de5e0b96a070fddb DIST libxml2-2.15.1.tar.xz 2004588 BLAKE2B 73c4d17adacda67d71c5a120c7de2324df1db35963cadbe18166dafe122e1f10dcab9d4fed0e128c077a5ca31432bfaf72f742c42680251660d397ab8bc3538b SHA512 429c7d0dc3cbcb8de1bf6eb588fb8025fee009c9b25e87c96ecc5de57cc12b558b0ab8141f333d73ca687109335f297c9f9776abbb9da9afc9d8e79041c86b7f DIST libxml2-2.15.2.tar.xz 3148720 BLAKE2B e8adec751b6c8c8fd8358bee0c33159813601f6306b318314ffbf85324fa3ebeee2e838608a7fe365ffe4b82c4700f328fc27ae9a75cd7ed67cf256067542c2e SHA512 35f18fee772e63e8ea6220e5f5435ef5aabb5692a4519a993ec9640576d08fa45d5097280add5c5ffb5c280359d05eeecab0df24cce0b7ec35eef102d607b0b8 +DIST libxml2-2.15.3.tar.xz 3152452 BLAKE2B 2ff478b46a40957386cd1ed0627bfc0f2433f47e786f20db3942304c90289adaeb1d9c3f12665df312b86cfac42f8e4dbc18e965bf90018f93c230b9b862df66 SHA512 6f7f1aabd012454553e851bd1ee548fbd14d21c576f2b2ab9eeedab3dfba51392083f74b34f060e9b538baeea212cdb462b8669c214c711771fb9a897fdc1c60 DIST xmlts20130923.tar.gz 641522 BLAKE2B 63a47bc69278ef510cd0b3779aed729e1b309e30efa0015d28ed051cc03f9dfddb447ab57b07b3393e8f47393d15473b0e199c34cb1f5f746b15ddfaa55670be SHA512 d5c4d26b324ed21f4e0641cd7f8b76dbf9de80df8b519982e44d41c960df29fd03618e02e9693b2d11ad06d19c4a965274c95a048ec3b9653eacb919a7f8b733 DIST xsts-2002-01-16.tar.gz 6894439 BLAKE2B 1e9ec63d2c104655e64249e07440a04d862fcbcd4d4e19745d81b34994319b510a531c9d6df1491fae1e90b5d0764f0f1a827251ca8df5d613178b0eab01ef25 SHA512 43300af6d39c1e2221b0ed7318fe14c7464eeb6eb030ed1e22eb29b4ab17f014e2a4c8887c3a46ae5d243e3072da27f00f4e285498ae6f1288177d38d1108288 DIST xsts-2004-01-14.tar.gz 2761085 BLAKE2B 41545995fb3a65d053257c376c07d45ffd1041a433bfbdb46d4dd87a5afb60c18c8629a3d988323f9e7a1d709775b5a7e5930276a7121c0725a22705c0976e36 SHA512 32854388d7e720ad67156baf50bf2bae7bd878ca3e35fd7e44e57cad3f434f69d56bbbedd61509f8a1faf01c9eae74a078df8fe130780b182c05c05cb1c39ebe diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.2-r1.ebuild index 4188cee3ca8..928f3de7752 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.2-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.2-r1.ebuild @@ -16,7 +16,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 ~arm64-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" fi S="${WORKDIR}/${PN}-${PV%_rc*}" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.2.ebuild index 69fa511bf50..f03996832b3 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.2.ebuild @@ -16,7 +16,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 ~arm64-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" fi S="${WORKDIR}/${PN}-${PV%_rc*}" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.3.ebuild new file mode 100644 index 00000000000..16b574fce6a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.3.ebuild @@ -0,0 +1,165 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Note: Please bump in sync with dev-libs/libxslt + +PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_REQ_USE="xml(+)" +inherit python-r1 meson-multilib + +DESCRIPTION="XML C parser and toolkit" +HOMEPAGE="https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home" +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/libxml2" + inherit git-r3 +else + inherit gnome.org + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +fi + +S="${WORKDIR}/${PN}-${PV%_rc*}" + +LICENSE="MIT" +# see so_version = v_maj + v_min_compat for subslot +SLOT="2/16" +IUSE="doc icu python readline static-libs test" +RESTRICT="!test? ( test )" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND=" + virtual/libiconv + >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] + icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] ) + python? ( ${PYTHON_DEPS} ) + readline? ( sys-libs/readline:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + doc? ( + app-text/docbook-xsl-stylesheets + app-text/doxygen + dev-libs/libxslt + ) + python? ( app-text/doxygen ) +" + +MULTILIB_CHOST_TOOLS=( + /usr/bin/xml2-config +) + +PATCHES=( + "${FILESDIR}"/${PN}-2.14.2-no-git.patch +) + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + else + default + fi + + cd "${S}" || die +} + +src_prepare() { + default + + sed -e "/^dir_doc/ s/meson.project_name()$/\'${PF}\'/" -i meson.build || die +} + +python_configure() { + local emesonargs=( + $(meson_feature icu) + $(meson_native_use_feature readline) + $(meson_native_use_feature readline history) + -Ddocs=disabled + -Dpython=enabled + -Dschematron=enabled + ) + mkdir "${BUILD_DIR}" || die + pushd "${BUILD_DIR}" >/dev/null || die + meson_src_configure + popd >/dev/null || die +} + +multilib_src_configure() { + local emesonargs=( + -Ddefault_library=$(multilib_native_usex static-libs both shared) + $(meson_feature icu) + $(meson_native_use_feature doc docs) + $(meson_native_use_feature readline) + $(meson_native_use_feature readline history) + -Dpython=disabled + -Dschematron=enabled + + # There has been a clean break with a soname bump. + # It's time to deal with the breakage. + # bug #935452 + -Dlegacy=disabled + ) + meson_src_configure + + if multilib_is_native_abi && use python ; then + python_foreach_impl python_configure + fi +} + +python_compile() { + pushd "${BUILD_DIR}" >/dev/null || die + meson_src_compile + popd >/dev/null || die +} + +multilib_src_compile() { + meson_src_compile + + if multilib_is_native_abi && use python ; then + python_foreach_impl python_compile + fi +} + +multilib_src_test() { + meson_src_test + + if multilib_is_native_abi && use python ; then + python_foreach_impl meson_src_test + fi +} + +python_install() { + pushd "${BUILD_DIR}" >/dev/null || die + meson_src_install + python_optimize + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi && use python ; then + python_foreach_impl python_install + fi + + meson_src_install +} + +pkg_postinst() { + # We don't want to do the xmlcatalog during stage1, as xmlcatalog will not + # be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887. + if [[ -n "${ROOT}" ]]; then + elog "Skipping XML catalog creation for stage building (bug #208887)." + else + # Need an XML catalog, so no-one writes to a non-existent one + CATALOG="${EROOT}/etc/xml/catalog" + + # We don't want to clobber an existing catalog though, + # only ensure that one is there + # + if [[ ! -e "${CATALOG}" ]]; then + [[ -d "${EROOT}/etc/xml" ]] || mkdir -p "${EROOT}/etc/xml" + "${EPREFIX}"/usr/bin/xmlcatalog --create > "${CATALOG}" + einfo "Created XML catalog in ${CATALOG}" + fi + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/lzo/lzo-2.10.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/lzo/lzo-2.10.ebuild index aba4b77fb8b..98e62b71be5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/lzo/lzo-2.10.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/lzo/lzo-2.10.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit multilib-minimal usr-ldscript +inherit dot-a multilib-minimal usr-ldscript DESCRIPTION="An extremely fast compression and decompression library" HOMEPAGE="https://www.oberhumer.com/opensource/lzo/" @@ -14,6 +14,11 @@ SLOT="2" KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="examples static-libs" +src_configure() { + use static-libs && lto-guarantee-fat + multilib-minimal_src_configure +} + multilib_src_configure() { ECONF_SOURCE=${S} \ econf \ @@ -31,6 +36,9 @@ multilib_src_install() { } multilib_src_install_all() { + einstalldocs + strip-lto-bytecode + rm "${ED}"/usr/share/doc/${PF}/COPYING || die if use examples; then diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/mpc/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/mpc/Manifest index 6091f60b3f9..7b6b879e047 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/mpc/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/mpc/Manifest @@ -2,3 +2,5 @@ DIST mpc-1.3.1.tar.gz 773573 BLAKE2B 76434e6f8830af3571836d51576bfebbc9701e9bbb5 DIST mpc-1.3.1.tar.gz.sig 119 BLAKE2B ec48cf3a37c3b4a923b354d5e321d73561361586dd6dee2ccfaf7e05021ec43dd34e6045dec475a47fae36cf5b36d9b3901ba677cb1bfc9016c3f28392c46099 SHA512 5c2e6cccf9c5e6a401095e4abf4c4c8eb44ae4cd81debaa94da817f68f7ef39a732e969d5c264912b0a44fd2a0575e2f903d71def38cb95fa073851e3a537e5c DIST mpc-1.4.0.tar.xz 532056 BLAKE2B d00dbc52a92efd619498671475743c9f35797343c731542f881c04c4a0b198f5b36df51bfde3ce520866d1851958409a6dd0de02d85d7b2e0ba00ccb27a30464 SHA512 de297e434b05905101b5a860e732b598da82129bdc28e3efebc0b36a107b6f2f4ae6962f55921ee20193df1dab241caf74dfc5d4dc1ae4b4edefbbcfe5b9c762 DIST mpc-1.4.0.tar.xz.sig 119 BLAKE2B 6e821ce7e8ba4ba6f5622eaba8859d373bb3dae4bafa6c8d7295b74d55034fe73c7d30388744727164cb1ca124ddf305e9f3055fe9c583f5365468103509e6a1 SHA512 55d8aa606c683543bff8e766b46b5edc35759d1465b0fb51ef953e9c40dfcf4d1853277b7d98d231eee160dbfb68a3b7742d8226d01c8980f6cf4c23ff05d2d1 +DIST mpc-1.4.1.tar.xz 531992 BLAKE2B 793b4cf37e7e805dcbf24bc39903d5d778702e80cf5eac60b840834f09868656856a008cff6b45e7a5a312c3ed21a593d84f45765e9ac456ab3dd38a083acff1 SHA512 cdfbe64e80e30df64dbd536e8104a6bb10471582415d5b45a1dd30eb2a312781b38389a9531243413c14e0f88866a35159b20e77900718f28c1030253a1305b9 +DIST mpc-1.4.1.tar.xz.sig 119 BLAKE2B 433c8192edfc88d30876c26dd500ab6bb6943e6884d251b879f6da5bde0ce569d6509991a5035ba189fa6a04185c89d539539003f0ee1e56d5ccd607244736bc SHA512 1145e1f50c523596178cd3719eef35628467b203949fe350cb1be514095497cccae0b98f652c26e30c96babddf83a09ce12096360feea9b4f5fa96ad488cc71e diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/mpc/mpc-1.4.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/mpc/mpc-1.4.1.ebuild new file mode 100644 index 00000000000..e92836c6622 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/mpc/mpc-1.4.1.ebuild @@ -0,0 +1,44 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/mpc.asc +inherit multilib-minimal verify-sig + +DESCRIPTION="A library for multiprecision complex arithmetic with exact rounding" +HOMEPAGE="https://www.multiprecision.org/mpc/ https://gitlab.inria.fr/mpc/mpc" + +if [[ ${PV} == *_rc* ]] ; then + SRC_URI="https://www.multiprecision.org/downloads/${P/_}.tar.xz" + S="${WORKDIR}"/${PN}-$(ver_cut 1-3) +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 ~arm64-macos ~x64-macos ~x64-solaris" +fi + +LICENSE="LGPL-3+ FDL-1.3+" +SLOT="0/3" # libmpc.so.3 +IUSE="static-libs" + +DEPEND=" + >=dev-libs/gmp-5.0.0:=[${MULTILIB_USEDEP},static-libs?] + >=dev-libs/mpfr-4.1.0:=[${MULTILIB_USEDEP},static-libs?] +" +RDEPEND="${DEPEND}" +BDEPEND=" + verify-sig? ( sec-keys/openpgp-keys-mpc ) +" + +multilib_src_configure() { + ECONF_SOURCE="${S}" econf $(use_enable static-libs static) +} + +multilib_src_install_all() { + einstalldocs + find "${ED}" -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/mpdecimal/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/mpdecimal/Manifest index 05a8896edb7..ddebcad8b1a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/mpdecimal/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/mpdecimal/Manifest @@ -1,3 +1,2 @@ DIST dectest.zip 791733 BLAKE2B ba74ee96f6687ce34cac8406fd7fd1f743d72647a5f883f1054829d992d4dc0f61c9e3b88e2529f425cc2fbda14dfc372b3fbfafe6553baabb3244172fed712f SHA512 05f9d12aec1ebfc9ca211b01705b41c5cd1bbc54d9aa6c4799b40fb3ab1835433fd1a277735d26d2530c3793c58b107b3abb1c31f64340e5e9d7856d92c821cf -DIST mpdecimal-4.0.0.tar.gz 315325 BLAKE2B aed5b6d5c03b12017989bbac9a166366e800ce5ee8d2fad5a1b81def48877126233998df306968902c728776616b1c06ce0ef05ea066c07daf841a53541a09f9 SHA512 7610ac53ac79f7a8a33fa7a3e61515810444ec73ebca859df7a9ddc18e96b990c99323172810c9cc7f6d6e1502c0be308cd443d6c2d5d0c871648e4842e05d59 DIST mpdecimal-4.0.1.tar.gz 316268 BLAKE2B fcdb89721b0e16ba8cba25fab953e1f0a4b24366d0dfbc11c942e37537a3716699917013ab9e73e809c48174add8da41b4991b0250cbef07966cab81ae85b3eb SHA512 431fa8ab90d6b8cdecc38b1618fd89d040185dec3c1150203e20f40f10a16160058f6b8abddd000f6ecb74f4dc42d9fef8111444f1496ab34c34f6b814ed32b7 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/mpdecimal/mpdecimal-4.0.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/mpdecimal/mpdecimal-4.0.0.ebuild deleted file mode 100644 index 7578ab1c935..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/mpdecimal/mpdecimal-4.0.0.ebuild +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright 2024-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DESCRIPTION="Correctly-rounded arbitrary precision decimal floating point arithmetic" -HOMEPAGE="https://www.bytereef.org/mpdecimal/" -SRC_URI=" - https://www.bytereef.org/software/mpdecimal/releases/${P}.tar.gz - test? ( - https://speleotrove.com/decimal/dectest.zip - ) -" - -LICENSE="BSD-2" -SLOT="$(ver_cut 1)" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="cxx test" -RESTRICT="!test? ( test )" - -BDEPEND=" - test? ( - app-arch/unzip - ) -" - -src_unpack() { - unpack "${P}.tar.gz" - if use test; then - mkdir "${P}/tests/testdata" || die - cd "${P}/tests/testdata" || die - unpack dectest.zip - fi -} - -src_prepare() { - default - - # sigh - sed -i -e "s:/lib:/$(get_libdir):" lib*/.pc/*.pc.in || die -} - -src_configure() { - local myconf=( - # just COPYRIGHT.txt - --docdir=/removeme - $(use_enable cxx) - ) - - # more sigh - # https://bugs.gentoo.org/931599 - local -x LDXXFLAGS="${LDFLAGS}" LD="${CC}" LDXX="${CXX}" - econf "${myconf[@]}" -} - -src_test() { - emake check -} - -src_install() { - default - rm -r "${D}/removeme" || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/npth/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/npth/Manifest index 2ccde18e9ee..7bf4f6aba1d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/npth/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/npth/Manifest @@ -1,3 +1,2 @@ -DIST npth-1.7.tar.bz2 313213 BLAKE2B 39bc5857fb61a4264bef6ff23c28755d2a3b3ceef93034aefd5cf1c2ad905adf696c6753ebd5cea5e0a875df4ecb97db03e023a50a27f51ec0641bbc36b54089 SHA512 8893023bcf953a3f7c490cf8116bed323a9d4af2bea35277e919f437916fda8b8e68ded28ec1777717cf9187c504892556159cbdb8bc02ed4a8b30b3d897d244 DIST npth-1.8.tar.bz2 317739 BLAKE2B 554620f6a45f57bb958d245f7464abffd565b592941f0c404ce384c854be57ee35754a78dcf6afac751ee87e1df230bf3d2b78fb37cb1ef3e5ea534ddfd4ef2a SHA512 34fdeea3d8a7a594d8fdbcc6d5d389b5c8e282e8e84c1491b1e51960c0fa007df6a1d62543f0107f0772f3215557d4b25c2a9c7067cb0ae2f8de7b4d63d09fb4 DIST npth-1.8.tar.bz2.sig 238 BLAKE2B 6078bb8eed027a85c86abd7d8a442b65227bdd87d3f6f30cf1568079ba19643ddeb70ab7560cf63c4a69463d1550c9b19aa938ec9d74e9a6c5579c7af2263979 SHA512 c63a98efefd988badfcefb21bc0e6b30ea3c958d964806ecf52eecfd724d8e3eee98e175aa95e216128a33d3cf4412bb108e708608cb02f087368ac02f4e0c2b diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/npth/files/npth-1.7-musl.patch b/sdk_container/src/third_party/portage-stable/dev-libs/npth/files/npth-1.7-musl.patch deleted file mode 100644 index 5b51a3fd4a2..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/npth/files/npth-1.7-musl.patch +++ /dev/null @@ -1,16 +0,0 @@ -https://bugs.gentoo.org/925443 -https://dev.gnupg.org/T5664 ---- a/configure.ac -+++ b/configure.ac -@@ -381,7 +381,10 @@ fi - AC_SUBST(INSERT_NO_RWLOCK) - - case "${host}" in -- *-*-linux*|*-*-gnu*) -+ *-*-linux-musl*) -+ INSERT_EXPOSE_RWLOCK_API="1" -+ ;; -+ *-*-linux-gnu*|*-*-gnu*) - INSERT_EXPOSE_RWLOCK_API="defined(__USE_UNIX98) || defined(__USE_XOPEN2K)" - ;; - *) diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/npth/npth-1.7-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/npth/npth-1.7-r1.ebuild deleted file mode 100644 index d4d1fd5ccba..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/npth/npth-1.7-r1.ebuild +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools flag-o-matic - -DESCRIPTION="New GNU Portable Threads Library" -HOMEPAGE="https://git.gnupg.org/cgi-bin/gitweb.cgi?p=npth.git" -SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2" - -LICENSE="LGPL-2.1+" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="test" -RESTRICT="!test? ( test )" - -PATCHES=( - "${FILESDIR}"/${P}-musl.patch -) - -src_prepare() { - default - eautoreconf -} - -src_configure() { - append-ldflags $(test-flags-CCLD -Wl,--undefined-version) - - econf $(use_enable test tests) \ - --enable-install-npth-config -} - -src_install() { - default - - # no static archives - find "${ED}" -name '*.la' -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/nspr/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/nspr/Manifest index 9a18fec80ff..49d2132cb61 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/nspr/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/nspr/Manifest @@ -1,4 +1,3 @@ DIST nspr-4.36.tar.gz 1036274 BLAKE2B 369d851db0f425f0c6c3cdaeb333320860b77b49b40b77cc983998de3f9128f9d987f143e9f2ce155d609fb23f3f9ed0d0abe7d74e20c59763e2b9bdd1835817 SHA512 55d21e196508ad29a179639fc8006f44b04dc2c0b5a85895e727f0a4f0ea37aeeceb936e37ac6b271b882a18e9f06d96133a60f19cee6345f8424c1c66e270ee -DIST nspr-4.37.tar.gz 1057241 BLAKE2B 672c07a00db9a9f1fe113aedbee748477b7081c7c6b87efdda1eb8a69b37da661d56eb5a5b2b438cdcd193358e25a277a5ffa43ca274a1894bba718cd05bb2e4 SHA512 f8247f9891effea53f32912c9cfe36117f85528684d2e19e8f8df839e1d0bd376de4eb2855d72b8c10f2c7da6ee0de31b6b235d25c5612cd936719eda036dc4b DIST nspr-4.38.2.tar.gz 1025394 BLAKE2B 1e677504bed875651d7204d6df1a0f9671233bdab5a7b7cfdd691084c16c31a74a1126569372e4fe59edc8318b622551f979fbe55c8e64df1d977dbd63962cac SHA512 f17302b0973ab006f9e6af70199ac6bb40d6266f96ab4d6692f56c24979907a7f0a20cf9d926aa80084f2e0ce7dfd56de89a7547b5e7e8caafa7afa5eb0b7bd8 -DIST nspr-4.38.tar.gz 1024854 BLAKE2B a81cfcf371479146abed18bf1f34dded3b793512e2d9c4a7d3e6981b7fc9e6941c6186ad0dce0b27cc95a1e70cfb9c6184baba0c1c2fd9651676c530799e7ab9 SHA512 689c059c799d792826a5b40236439b823d099f8621036e901c2d4d9af428f33cef3f29506c541af7f8e42ba003c169813ef2acfd64e263b231729c6d3455efe5 +DIST nspr-4.39.tar.gz 1014093 BLAKE2B dfb8a050ee29974d5226c4140901ba1704af9ddf6939053e495cf698b23c2eb2aff4fec968cb321648ea4cb373cd85cb81283693b11d2b761e3dcc85294dfa57 SHA512 201627666814552e3c98f66a0bdb18194670dcbdbc8cf3241079d918891d46aef1b10e9339beb84802d1de4189993340febab27344e97f8de21ceb1f43c77bda diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/nspr/nspr-4.37.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/nspr/nspr-4.37.ebuild deleted file mode 100644 index a00cd43bfaa..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/nspr/nspr-4.37.ebuild +++ /dev/null @@ -1,176 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools flag-o-matic toolchain-funcs multilib-minimal - -MIN_PV="$(ver_cut 2)" - -DESCRIPTION="Netscape Portable Runtime" -HOMEPAGE="https://www.mozilla.org/projects/nspr/" -SRC_URI="https://archive.mozilla.org/pub/nspr/releases/v${PV}/src/${P}.tar.gz" - -LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris" -IUSE="debug" - -MULTILIB_CHOST_TOOLS=( - /usr/bin/nspr-config -) - -PATCHES=( - "${FILESDIR}"/${PN}-4.7.1-solaris.patch - "${FILESDIR}"/${PN}-4.8.4-darwin-install_name.patch - "${FILESDIR}"/${PN}-4.8.9-link-flags.patch - # We do not need to pass -L$libdir via nspr-config --libs - "${FILESDIR}"/${PN}-4.9.5_nspr_config.patch -) - -QA_CONFIGURE_OPTIONS="--disable-static" - -src_prepare() { - cd "${S}"/nspr || die - - default - - if use elibc_musl; then - eapply "${FILESDIR}"/${PN}-4.21-ipv6-musl-support.patch - eapply "${FILESDIR}"/nspr-4.35-bgo-905998-lfs64-musl.patch - fi - - # rename configure.in to configure.ac for new autotools compatibility - if [[ -e "${S}"/nspr/configure.in ]] ; then - einfo "Renaming configure.in to configure.ac" - mv "${S}"/nspr/configure.{in,ac} || die - else - elog "configure.in rename logic can be removed from ebuild." - fi - - # We must run eautoconf to regenerate configure - eautoconf - - # make sure it won't find Perl out of Prefix - sed -i -e "s/perl5//g" "${S}"/nspr/configure || die - - # Respect LDFLAGS - sed -i -e 's/\$(MKSHLIB) \$(OBJS)/\$(MKSHLIB) \$(LDFLAGS) \$(OBJS)/g' \ - "${S}"/nspr/config/rules.mk || die -} - -multilib_src_configure() { - # -Werror=strict-aliasing - # https://bugs.gentoo.org/867634 - # - # Testsuite-only issue. Still, this makes it challenging to test the package with LTO - # enabled... - append-flags -fno-strict-aliasing - filter-lto - - # The build system overrides user optimization level based on a configure flag. #886987 - local my_optlvl=$(get-flag '-O*') - - # bgo #923802 - append-lfs-flags - - # We use the standard BUILD_xxx but nspr uses HOST_xxx - tc-export_build_env BUILD_CC - export HOST_CC=${BUILD_CC} HOST_CFLAGS=${BUILD_CFLAGS} HOST_LDFLAGS=${BUILD_LDFLAGS} - tc-export AR AS CC CXX RANLIB - [[ ${CBUILD} != ${CHOST} ]] \ - && export CROSS_COMPILE=1 \ - || unset CROSS_COMPILE - - local myconf=( --libdir="${EPREFIX}/usr/$(get_libdir)" ) - - # Optimization is disabled when debug is enabled. - if use debug; then - myconf+=( --enable-debug ) - else - myconf+=( --disable-debug ) - myconf+=( --enable-optimize="${my_optlvl}" ) - fi - - # The configure has some fancy --enable-{{n,x}32,64bit} switches - # that trigger some code conditional to platform & arch. This really - # matters for the few common arches (x86, ppc) but we pass a little - # more of them to be future-proof. - - # use ABI first, this will work for most cases - case "${ABI}" in - alpha|arm|hppa|m68k|o32|ppc|s390|sh|sparc|x86) ;; - n32) myconf+=( --enable-n32 );; - x32) myconf+=( --enable-x32 );; - s390x|*64) myconf+=( --enable-64bit );; - default) # no abi actually set, fall back to old check - einfo "Running a short build test to determine 64bit'ness" - # TODO: Port this to toolchain-funcs tc-get-ptr-size/tc-get-build-ptr-size - echo > "${T}"/test.c || die - ${CC} ${CFLAGS} ${CPPFLAGS} -fno-lto -c "${T}"/test.c -o "${T}"/test.o || die - case $(file -S "${T}"/test.o) in - *32-bit*x86-64*) myconf+=( --enable-x32 );; - *64-bit*|*ppc64*|*x86_64*) myconf+=( --enable-64bit );; - *32-bit*|*ppc*|*i386*) ;; - *) die "Failed to detect whether your arch is 64bits or 32bits, disable distcc if you're using it, please";; - esac ;; - *) ;; - esac - - # Ancient autoconf needs help finding the right tools. - LC_ALL="C" ECONF_SOURCE="${S}/nspr" \ - ac_cv_path_AR="${AR}" \ - ac_cv_path_AS="${AS}" \ - econf "${myconf[@]}" -} - -multilib_src_test() { - # https://firefox-source-docs.mozilla.org/nspr/running_nspr_tests.html - cd "${BUILD_DIR}/pr/tests" || die - einfo "Building tests" - emake - - einfo "Running test suite" - ../../../${P}/${PN}/pr/tests/runtests.pl | tee "${T}"/${ABI}-tests.log - - # Needed to check if runtests.pl itself or the tee (somehow) failed - # (can't use die with pipes to check each component) - [[ ${PIPESTATUS[@]} == "0 0" ]] || die "Tests failed to run!" - - local known_failures=( - # network-sandbox related? - cltsrv - # network-sandbox related? - gethost - ) - - local known_failure - for known_failure in "${known_failures[@]}" ; do - sed -i -e "/${known_failure}.*FAILED/d" "${T}"/${ABI}-tests.log || die - done - - # But to actually check the test results, we examine the log. - if grep -q "FAILED" "${T}"/${ABI}-tests.log ; then - die "Test failure for ${ABI}!" - fi -} - -multilib_src_install() { - # Their build system is royally confusing, as usual - MINOR_VERSION=${MIN_PV} # Used for .so version - emake DESTDIR="${D}" install - - einfo "removing static libraries as upstream has requested!" - rm "${ED}"/usr/$(get_libdir)/*.a || die "failed to remove static libraries." - - # install nspr-config - dobin config/nspr-config - - # Remove stupid files in /usr/bin - rm "${ED}"/usr/bin/prerr.properties || die - - # This is used only to generate prerr.c and prerr.h at build time. - # No other projects use it, and we don't want to depend on perl. - # Talked to upstream and they agreed w/punting. - rm "${ED}"/usr/bin/compile-et.pl || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/nspr/nspr-4.38.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/nspr/nspr-4.38.ebuild deleted file mode 100644 index a50b8c57707..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/nspr/nspr-4.38.ebuild +++ /dev/null @@ -1,176 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools flag-o-matic toolchain-funcs multilib-minimal - -MIN_PV="$(ver_cut 2)" - -DESCRIPTION="Netscape Portable Runtime" -HOMEPAGE="https://www.mozilla.org/projects/nspr/" -SRC_URI="https://archive.mozilla.org/pub/nspr/releases/v${PV}/src/${P}.tar.gz" - -LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" -IUSE="debug" - -MULTILIB_CHOST_TOOLS=( - /usr/bin/nspr-config -) - -PATCHES=( - "${FILESDIR}"/${PN}-4.7.1-solaris.patch - "${FILESDIR}"/${PN}-4.8.4-darwin-install_name.patch - "${FILESDIR}"/${PN}-4.8.9-link-flags.patch - # We do not need to pass -L$libdir via nspr-config --libs - "${FILESDIR}"/${PN}-4.9.5_nspr_config.patch -) - -QA_CONFIGURE_OPTIONS="--disable-static" - -src_prepare() { - cd "${S}"/nspr || die - - default - - if use elibc_musl; then - eapply "${FILESDIR}"/${PN}-4.21-ipv6-musl-support.patch - eapply "${FILESDIR}"/nspr-4.35-bgo-905998-lfs64-musl.patch - fi - - # rename configure.in to configure.ac for new autotools compatibility - if [[ -e "${S}"/nspr/configure.in ]] ; then - einfo "Renaming configure.in to configure.ac" - mv "${S}"/nspr/configure.{in,ac} || die - else - elog "configure.in rename logic can be removed from ebuild." - fi - - # We must run eautoconf to regenerate configure - eautoconf - - # make sure it won't find Perl out of Prefix - sed -i -e "s/perl5//g" "${S}"/nspr/configure || die - - # Respect LDFLAGS - sed -i -e 's/\$(MKSHLIB) \$(OBJS)/\$(MKSHLIB) \$(LDFLAGS) \$(OBJS)/g' \ - "${S}"/nspr/config/rules.mk || die -} - -multilib_src_configure() { - # -Werror=strict-aliasing - # https://bugs.gentoo.org/867634 - # - # Testsuite-only issue. Still, this makes it challenging to test the package with LTO - # enabled... - append-flags -fno-strict-aliasing - filter-lto - - # The build system overrides user optimization level based on a configure flag. #886987 - local my_optlvl=$(get-flag '-O*') - - # bgo #923802 - append-lfs-flags - - # We use the standard BUILD_xxx but nspr uses HOST_xxx - tc-export_build_env BUILD_CC - export HOST_CC=${BUILD_CC} HOST_CFLAGS=${BUILD_CFLAGS} HOST_LDFLAGS=${BUILD_LDFLAGS} - tc-export AR AS CC CXX RANLIB - [[ ${CBUILD} != ${CHOST} ]] \ - && export CROSS_COMPILE=1 \ - || unset CROSS_COMPILE - - local myconf=( --libdir="${EPREFIX}/usr/$(get_libdir)" ) - - # Optimization is disabled when debug is enabled. - if use debug; then - myconf+=( --enable-debug ) - else - myconf+=( --disable-debug ) - myconf+=( --enable-optimize="${my_optlvl}" ) - fi - - # The configure has some fancy --enable-{{n,x}32,64bit} switches - # that trigger some code conditional to platform & arch. This really - # matters for the few common arches (x86, ppc) but we pass a little - # more of them to be future-proof. - - # use ABI first, this will work for most cases - case "${ABI}" in - alpha|arm|hppa|m68k|o32|ppc|s390|sh|sparc|x86) ;; - n32) myconf+=( --enable-n32 );; - x32) myconf+=( --enable-x32 );; - s390x|*64) myconf+=( --enable-64bit );; - default) # no abi actually set, fall back to old check - einfo "Running a short build test to determine 64bit'ness" - # TODO: Port this to toolchain-funcs tc-get-ptr-size/tc-get-build-ptr-size - echo > "${T}"/test.c || die - ${CC} ${CFLAGS} ${CPPFLAGS} -fno-lto -c "${T}"/test.c -o "${T}"/test.o || die - case $(file -S "${T}"/test.o) in - *32-bit*x86-64*) myconf+=( --enable-x32 );; - *64-bit*|*ppc64*|*x86_64*) myconf+=( --enable-64bit );; - *32-bit*|*ppc*|*i386*) ;; - *) die "Failed to detect whether your arch is 64bits or 32bits, disable distcc if you're using it, please";; - esac ;; - *) ;; - esac - - # Ancient autoconf needs help finding the right tools. - LC_ALL="C" ECONF_SOURCE="${S}/nspr" \ - ac_cv_path_AR="${AR}" \ - ac_cv_path_AS="${AS}" \ - econf "${myconf[@]}" -} - -multilib_src_test() { - # https://firefox-source-docs.mozilla.org/nspr/running_nspr_tests.html - cd "${BUILD_DIR}/pr/tests" || die - einfo "Building tests" - emake - - einfo "Running test suite" - ../../../${P}/${PN}/pr/tests/runtests.pl | tee "${T}"/${ABI}-tests.log - - # Needed to check if runtests.pl itself or the tee (somehow) failed - # (can't use die with pipes to check each component) - [[ ${PIPESTATUS[@]} == "0 0" ]] || die "Tests failed to run!" - - local known_failures=( - # network-sandbox related? - cltsrv - # network-sandbox related? - gethost - ) - - local known_failure - for known_failure in "${known_failures[@]}" ; do - sed -i -e "/${known_failure}.*FAILED/d" "${T}"/${ABI}-tests.log || die - done - - # But to actually check the test results, we examine the log. - if grep -q "FAILED" "${T}"/${ABI}-tests.log ; then - die "Test failure for ${ABI}!" - fi -} - -multilib_src_install() { - # Their build system is royally confusing, as usual - MINOR_VERSION=${MIN_PV} # Used for .so version - emake DESTDIR="${D}" install - - einfo "removing static libraries as upstream has requested!" - rm "${ED}"/usr/$(get_libdir)/*.a || die "failed to remove static libraries." - - # install nspr-config - dobin config/nspr-config - - # Remove stupid files in /usr/bin - rm "${ED}"/usr/bin/prerr.properties || die - - # This is used only to generate prerr.c and prerr.h at build time. - # No other projects use it, and we don't want to depend on perl. - # Talked to upstream and they agreed w/punting. - rm "${ED}"/usr/bin/compile-et.pl || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/nspr/nspr-4.39.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/nspr/nspr-4.39.ebuild new file mode 100644 index 00000000000..03eea63a237 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/nspr/nspr-4.39.ebuild @@ -0,0 +1,160 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic toolchain-funcs multilib-minimal + +MIN_PV="$(ver_cut 2)" + +DESCRIPTION="Netscape Portable Runtime" +HOMEPAGE="https://www.mozilla.org/projects/nspr/" +SRC_URI="https://archive.mozilla.org/pub/nspr/releases/v${PV}/src/${P}.tar.gz" + +LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" +IUSE="debug" + +MULTILIB_CHOST_TOOLS=( + /usr/bin/nspr-config +) + +PATCHES=( + "${FILESDIR}"/${PN}-4.7.1-solaris.patch + "${FILESDIR}"/${PN}-4.8.4-darwin-install_name.patch + "${FILESDIR}"/${PN}-4.8.9-link-flags.patch + # We do not need to pass -L$libdir via nspr-config --libs + "${FILESDIR}"/${PN}-4.9.5_nspr_config.patch +) + +QA_CONFIGURE_OPTIONS="--disable-static" + +src_prepare() { + cd "${S}"/nspr || die + + default + + if use elibc_musl; then + eapply "${FILESDIR}"/${PN}-4.21-ipv6-musl-support.patch + eapply "${FILESDIR}"/nspr-4.35-bgo-905998-lfs64-musl.patch + fi + + # rename configure.in to configure.ac for new autotools compatibility + if [[ -e "${S}"/nspr/configure.in ]] ; then + einfo "Renaming configure.in to configure.ac" + mv "${S}"/nspr/configure.{in,ac} || die + else + elog "configure.in rename logic can be removed from ebuild." + fi + + # We must run eautoconf to regenerate configure + eautoconf + + # make sure it won't find Perl out of Prefix + sed -i -e "s/perl5//g" "${S}"/nspr/configure || die + + # Respect LDFLAGS + sed -i -e 's/\$(MKSHLIB) \$(OBJS)/\$(MKSHLIB) \$(LDFLAGS) \$(OBJS)/g' \ + "${S}"/nspr/config/rules.mk || die +} + +multilib_src_configure() { + # -Werror=strict-aliasing + # https://bugs.gentoo.org/867634 + # + # Testsuite-only issue. Still, this makes it challenging to test the package with LTO + # enabled... + append-flags -fno-strict-aliasing + filter-lto + + # The build system overrides user optimization level based on a configure flag. #886987 + local my_optlvl=$(get-flag '-O*') + + # bgo #923802 + append-lfs-flags + + # We use the standard BUILD_xxx but nspr uses HOST_xxx + tc-export_build_env BUILD_CC + export HOST_CC=${BUILD_CC} HOST_CFLAGS=${BUILD_CFLAGS} HOST_LDFLAGS=${BUILD_LDFLAGS} + tc-export AR AS CC CXX RANLIB + [[ ${CBUILD} != ${CHOST} ]] \ + && export CROSS_COMPILE=1 \ + || unset CROSS_COMPILE + + local myconf=( --libdir="${EPREFIX}/usr/$(get_libdir)" ) + + # Optimization is disabled when debug is enabled. + if use debug; then + myconf+=( --enable-debug ) + else + myconf+=( --disable-debug ) + myconf+=( --enable-optimize="${my_optlvl}" ) + fi + + # The configure has some fancy --enable-{{n,x}32,64bit} switches + # that trigger some code conditional to platform & arch. This really + # matters for the few common arches (x86, ppc) but we pass a little + # more of them to be future-proof. + case $(tc-get-ptr-size) in + 4) use abi_x86_x32 && myconf+=( --enable-x32 );; + 8) myconf+=( --enable-64bit );; + esac + + # Ancient autoconf needs help finding the right tools. + LC_ALL="C" ECONF_SOURCE="${S}/nspr" \ + ac_cv_path_AR="${AR}" \ + ac_cv_path_AS="${AS}" \ + econf "${myconf[@]}" +} + +multilib_src_test() { + # https://firefox-source-docs.mozilla.org/nspr/running_nspr_tests.html + cd "${BUILD_DIR}/pr/tests" || die + einfo "Building tests" + emake + + einfo "Running test suite" + ../../../${P}/${PN}/pr/tests/runtests.pl | tee "${T}"/${ABI}-tests.log + + # Needed to check if runtests.pl itself or the tee (somehow) failed + # (can't use die with pipes to check each component) + [[ ${PIPESTATUS[@]} == "0 0" ]] || die "Tests failed to run!" + + local known_failures=( + # network-sandbox related? + cltsrv + # network-sandbox related? + gethost + ) + + local known_failure + for known_failure in "${known_failures[@]}" ; do + sed -i -e "/${known_failure}.*FAILED/d" "${T}"/${ABI}-tests.log || die + done + + # But to actually check the test results, we examine the log. + if grep -q "FAILED" "${T}"/${ABI}-tests.log ; then + die "Test failure for ${ABI}!" + fi +} + +multilib_src_install() { + # Their build system is royally confusing, as usual + MINOR_VERSION=${MIN_PV} # Used for .so version + emake DESTDIR="${D}" install + + einfo "removing static libraries as upstream has requested!" + rm "${ED}"/usr/$(get_libdir)/*.a || die "failed to remove static libraries." + + # install nspr-config + dobin config/nspr-config + + # Remove stupid files in /usr/bin + rm "${ED}"/usr/bin/prerr.properties || die + + # This is used only to generate prerr.c and prerr.h at build time. + # No other projects use it, and we don't want to depend on perl. + # Talked to upstream and they agreed w/punting. + rm "${ED}"/usr/bin/compile-et.pl || die +} 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 abfc5962eec..deee34b7350 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 @@ -1,12 +1,20 @@ DIST openssl-3.0.19.tar.gz 15280904 BLAKE2B 0d21fd9037b87c5d22c75e2201208394fa7d6a37ed7a44cc6ae760ab95ff6743a00d26b90141871ba5bd76a56500142df33d04219379e51b6f74e411e9d2b3af SHA512 6e602ac7217e1b4423793ee5c4c10745f70fcde3f9820d6c894ebeedb4f29566e2d0c3c590ae210484dcea4eb53db5bb8dbbfee14bbaca3e147406b1343c3cd7 DIST openssl-3.0.19.tar.gz.asc 833 BLAKE2B f5ed372d80afc3fde1c4298166fabb512bb0f350725497d98a83575b98b049dd8ec3dc169043b11f9135702d37d762bb24afd98eab75d5a42b6554bec2064c8f SHA512 3ae5adb82d071658c3a839d7713c7d4fd09b13dc36860327d0347ca94cb0c712081f03d3e8251af2297b7d1792345a078e18ffa8b92e5f90fe6d5370152813e8 +DIST openssl-3.0.20.tar.gz 15292815 BLAKE2B 10681682203f0d734e624c93c67c5d399941385d2874bb980012d79b63d9b165b0f5405f27cc99be3571584c4957ef3d108bfe4187ddd9bc3b794179a5c6be76 SHA512 3583a44bf9dec4deeade371d6861ce799821a85b32a4d9a8fcae253d78df8f93025ed73fb8efcaf23cc305b11d5aec439852444b3207d211f55660d1f89f5c9c +DIST openssl-3.0.20.tar.gz.asc 833 BLAKE2B 6efee85870e0d8d1d9b36ef90975d0ee9810a26abc881b0a881274952931685f4edc37d61e454fe4d7e4ec5202df0aa23e31644620d2ae5f57d894d71b66c53e SHA512 e132722e7ec7f96f1ca8f21e05e48cce07cd4d801746d5ad21d8f6be9df4c49aa6c8183b87bd1fc1cbb83a481c57c8425eeb19b2bc9c2e28983c57bac181d89e DIST openssl-3.3.6.tar.gz 18035615 BLAKE2B 3cc0b33885449192863edc4600d144a98903d2c323f4a6f11e2aba8e6dfa5fa45a9d025d5de60c0511972cb42de9ef7fc81073d8abc5d1d2886b660089b9aaf5 SHA512 3c0840420f30f74404446a9d9fe9ee48222e867190ddc9e51e1c0f1f45c3c0caad6cb41068f65adc2be2aa5e0b8447c42ee821dd28e2ec60140cf004dc3493c1 DIST openssl-3.3.6.tar.gz.asc 833 BLAKE2B 93ea9f040912defd9a228309ce110b1dc535e219223afb0299eacbabb17c333bc282a7656bd870f3d01aa69856c409908d3d0610e541a56d919b1f204bd0b571 SHA512 90f7a392b1348f74e3617212fbad8974d92b8d48832a8d5c338ad792ae25a067ae102475ba935cd41d1a5d89e80458a5f05ef921e942279149d8534bf9ac01e6 +DIST openssl-3.3.7.tar.gz 18047292 BLAKE2B ef0b772e34265bb11617d0b2ccf4e67e5795fc5b663d321fcb015fac619fbcedbc4bd139f6ae588782831f37653bfa3e1cf2f15c4f98b6bdd57fdb24a077ec63 SHA512 ff7976bfc5549f7f0d80cc55b4e1e9abaeb0f931028e47660e9738168b399d838354b2ca67338e2fd5443f3eb06912ea64cb1de0ab98bd04cfe3cc252d7b7f8d +DIST openssl-3.3.7.tar.gz.asc 833 BLAKE2B 8b38cc04eac3dad814ca5b8bb5e775a5285c44a9c46cc3e5f0b97fb684390a3c717b8964e28bd4fce69e73af48732860d9b6cb94f676168875fc01a9965dcda3 SHA512 9e5830b8d5c9341c88631dbeb549e30d11abaf99a5045830c5a4fc6c87c16f5931983db105e67cb5a4654f9e9e62c80031d7715e7da688c3686141ac73aa6f1f DIST openssl-3.4.4.tar.gz 18278255 BLAKE2B 022d97f839120bdb21a8fa011b42cd1e0f732253f4b7e02172a8cfb5f6a60c855500ce542d49e256ff3cb6428a929487e921ee4834f74dd57d10165ec44924ab SHA512 2f75b045f0dddd2421ecd7b1817a4e5a7608293e797135eb945573d1115b2d89f0fd3706ee5e02c7de2e50b3bfc59ac73014e2cb6270ff6b9e1515691347dbb2 DIST openssl-3.4.4.tar.gz.asc 833 BLAKE2B c8c4e9338e5e6f4630701e894e551bd0606401462762755832e607d3145688624b61beba0c6128f6fbc632d50b8eac13da7c4530300e5579527ad4523251f521 SHA512 a599e8d77426de126a6358d159b46ab9d301962016fa85219f0294e6eb667733436ceeccb0de6017adb71c1b9cd52a496882919e9edd65e749a8ae95d5143cb4 +DIST openssl-3.4.5.tar.gz 18295030 BLAKE2B 8447ea0b861e068463ef5127e158dceab1dfd6516861211e2b4e636f8114887034f2d86c55b41a6aa221ba5d377e0ffdbf9e533e2d8efc7101a5e6cc8c96ab70 SHA512 dd6006d5733f8d28b8bed2027e9ebd4afb071ed50d6fffea12127873ba26a3b1550f8225b5b8d59896db975985586c96d3425ef651d8382798981d07fd873532 +DIST openssl-3.4.5.tar.gz.asc 833 BLAKE2B 463903df98db3deda9d1da0f02375ac9492f39a9e5bd50fbdd95837022d5cbf874aaa8f39f01449e059e6668a79c1c92e0020af3b88c9a70cb2b4fc5695d82cc SHA512 0eaa5bc2aa068fdaa591c4495ed55237c71c4b8d4b079820e1c3377b09d19955917fcdd9f4e9994ccdae9905158381c4869a396f3729ad54d5ac64a4b87980ab DIST openssl-3.5.5.tar.gz 53104821 BLAKE2B 5fe5f7e768ade2dcffdd90841875de3e3a463aac979d57462fa5c69ec5e7288063dfc35cd6b049db007cff9135089fa05956f715476e12efc58a7d6969f6d29a SHA512 7cf0eb91bac175f7fe0adcafef457790d43fe7f98e2d4bef681c2fd5ca365e1fa5b562c645a60ab602365adedf9d91c074624eea66d3d7e155639fc50d5861ec DIST openssl-3.5.5.tar.gz.asc 833 BLAKE2B 122e9abcadb8559ef42dda7cc985c1457852243f8e8fb12e9a1d3b824853a56f311726252c6b1cfde47c3d5500bf36c18d8f7f19c42582c8f40d974dac22011f SHA512 82645f4fb427467b1e52f096ef6c6ccbdaa5aefcd28c8d3149a92f7c7711d0936e1e097f4168db6196809c19f83c1b85068d327cc1f0c5ad9f33d9d3686003d7 -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 -DIST openssl-3.6.1.tar.gz 54891951 BLAKE2B da949967d40ca9e17baf1bedded5080e37bce2dfc187f2a46f80ec01e708f9d550d055ef8557812135c4a1081b8f3477c5d4dbe46e0f39a9b696a7dbdc6b769a SHA512 492cd2e0a7506e085d9840a929ead994390409a35c24e47e0cf44987920711b61f1513f21b7eee50e56f226b26cd654cda6dbd1f6e439563a93a8f0e530fefb5 -DIST openssl-3.6.1.tar.gz.asc 833 BLAKE2B 3af3fc0b57503cf5d1a8c34a460d76fcde1823250c721ac10f523196f57ceb3e7ceb66332af3e10ec24eefa3e4acec145349bedf37fe29fe2dde787f3001ebb3 SHA512 a1feb4e309d5288ed33e9459cee24272b67321eb037e11effd8ac0626aca792be5b442cc8c5e0c1abd288a1c0d05c8af7927b8c4a08e7685c92a6561ad806659 +DIST openssl-3.5.6.tar.gz 53121812 BLAKE2B 07b86010043aeb09c796162ff85e602e53f3e9b03277d269c534716d7e645de1bda336c07282dcf1286f3cce9dfc54a17b48b68c3e388f27ad709177b5d5d225 SHA512 7e48989c01751104e1c94fde05726c0d6d7cb0dd4f3d045e0e8f36b1d330a2557665970c44ec9aae86f5f7420315326022249247cd6845e6d598134aa74ac33c +DIST openssl-3.5.6.tar.gz.asc 833 BLAKE2B fa7ea81667830959a5221fb683ba131bc7d3e3e24af1a9ca78cd5cbf1e66cb40754980c2fb47f45852cdff4fe317b0273af866a311d5150457824c73052407b2 SHA512 426c9d855fe735b39a7cfb7508ae5676869a79f02de306b349199ef9d437b7316c40beb090f45258d6e1517b8689a3977611704ffd26f853f22cae70ed832b7a +DIST openssl-3.6.2.tar.gz 54913556 BLAKE2B 21a23c53d16e9fbfb4c6d606d6056e7bb72e15c964c43a7f02837d805584bc34917fb2527cbc7fa75de63f3b5f840c693e7b43ac95e4bf9c10dce27f130bf69f SHA512 46549ed4d6b0160adfa3e1406bc16f3083a7f3c85bdda289c1dbebd0db91433c39855dae765787ec68157faffba4cdb05a0600af4652e3e35da939e0bad8ef1e +DIST openssl-3.6.2.tar.gz.asc 833 BLAKE2B 089164a42cdbb22d688ab314fae83d3fa16fb8d0c206ce8d0fe82a670b6e5fb0859e8842d0c0f75184d8e7022086aa05feeb5193e720ef58c18c7d303a6ec157 SHA512 bc1710380b80e0b9d35fe706604357c1f801d0b6ab1481b53061e21d6f55904fe8961ec10ead5c454dc637c88586f3093df71d2210b960d65c112466422d51ff +DIST openssl-4.0.0.tar.gz 55046677 BLAKE2B bea6e52456df3d6881dd9e800113886af64168eaa92a69cec95fb6e1cebfb675581fc75f0918aa6aa6654a36043444326da080db58781fe073ea0d0911e81982 SHA512 46d456fae5358c566f860ab873533e84edb3f0757cb0697ee8768fdb2fca2cb4770849014444c56d0c8690730d2fc9476127240eb6a53fd17c58b3be6433dc10 +DIST openssl-4.0.0.tar.gz.asc 833 BLAKE2B c128958a9b47e9c061cc34ca6cca4d48def528005d796336e01f89e4344bff21ee772f332ed2a65697b0344fed7e1d1309069f4c186bb7cdac9cd7e09446cd6f SHA512 8609e8a9def07853d3054a4730ffee088512dd7aaf994d9df674818ec7cd519b20eecce6cfcb613d5da9d3d35e27839fbcec9772f7e734217f1463a42e5c95a1 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.0.20.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.0.20.ebuild new file mode 100644 index 00000000000..5a790b1794a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.0.20.ebuild @@ -0,0 +1,289 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/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 ~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/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=" + tls-compression? ( >=virtual/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 + 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() { + # 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 +} + +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.7.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.3.7.ebuild new file mode 100644 index 00000000000..37c84927c78 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.3.7.ebuild @@ -0,0 +1,301 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/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 ~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=" + !=virtual/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 + 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.4.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.4.5.ebuild new file mode 100644 index 00000000000..aee6f99cf00 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.4.5.ebuild @@ -0,0 +1,297 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/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 ~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=" + !=virtual/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 + 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.5.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.5.5.ebuild deleted file mode 100644 index 03e01312067..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.5.5.ebuild +++ /dev/null @@ -1,297 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/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 ~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=" - !=virtual/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 - 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 - 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.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.5.6.ebuild new file mode 100644 index 00000000000..2045afba5e9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.5.6.ebuild @@ -0,0 +1,336 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openssl.org.asc +inherit edo flag-o-matic linux-info sysroot toolchain-funcs +inherit multibuild multilib multilib-build 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 ~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=" + !=virtual/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 +} + +_openssl_variant() { + local OPENSSL_VARIANT=${MULTIBUILD_VARIANT} + mkdir -p "${BUILD_DIR}" || die + pushd "${BUILD_DIR}" >/dev/null || die + "$@" + popd >/dev/null || die +} + +openssl_foreach_variant() { + local MULTIBUILD_VARIANTS=( "${OPENSSL_VARIANTS[@]}" ) + multibuild_foreach_variant _openssl_variant "$@" +} + +openssl_run_phase() { + multilib_foreach_abi openssl_foreach_variant "$@" +} + +openssl_is_default_variant() { + [[ ${OPENSSL_VARIANT} == shared ]] && multilib_is_native_abi +} + +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 + + OPENSSL_VARIANTS=( shared ) + use static-libs && OPENSSL_VARIANTS+=( static ) + + openssl_run_phase openssl_src_configure +} + +openssl_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} + + $(openssl_is_default_variant || 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) + + threads + ) + + if [[ ${OPENSSL_VARIANT} == static ]]; then + myeconfargs+=( no-module no-shared ) + fi + + edo perl "${S}/Configure" "${myeconfargs[@]}" +} + +src_compile() { + openssl_run_phase openssl_src_compile +} + +openssl_src_compile() { + emake build_sw + if openssl_is_default_variant; then + emake build_docs + fi +} + +src_test() { + openssl_run_phase openssl_src_test +} + +openssl_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 +} + +openssl_src_install() { + if [[ ${OPENSSL_VARIANT} == static ]]; then + dolib.a libcrypto.a libssl.a + return + fi + + # Only -j1 is supported for the install targets: + # https://github.com/openssl/openssl/issues/21999#issuecomment-1771150305 + emake DESTDIR="${D}" -j1 install_sw + rm "${ED}"/usr/$(get_libdir)/lib{crypto,ssl}.a || die + + 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 openssl_is_default_variant; then + emake DESTDIR="${D}" -j1 install_ssldirs + emake DESTDIR="${D}" DOCDIR='$(INSTALLTOP)'/share/doc/${PF} -j1 install_docs + fi + + multilib_prepare_wrappers + multilib_check_headers +} + +src_install() { + openssl_run_phase openssl_src_install + multilib_install_wrappers + + # 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 deleted file mode 100644 index 6dc7d4179ae..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.6.0.ebuild +++ /dev/null @@ -1,297 +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/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 ~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=" - !=virtual/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 - 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 - 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.1-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.6.1-r1.ebuild deleted file mode 100644 index a31a3060870..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.6.1-r1.ebuild +++ /dev/null @@ -1,336 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openssl.org.asc -inherit edo flag-o-matic linux-info sysroot toolchain-funcs -inherit multibuild multilib multilib-build 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 ~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=" - !=virtual/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 -} - -_openssl_variant() { - local OPENSSL_VARIANT=${MULTIBUILD_VARIANT} - mkdir -p "${BUILD_DIR}" || die - pushd "${BUILD_DIR}" >/dev/null || die - "$@" - popd >/dev/null || die -} - -openssl_foreach_variant() { - local MULTIBUILD_VARIANTS=( "${OPENSSL_VARIANTS[@]}" ) - multibuild_foreach_variant _openssl_variant "$@" -} - -openssl_run_phase() { - multilib_foreach_abi openssl_foreach_variant "$@" -} - -openssl_is_default_variant() { - [[ ${OPENSSL_VARIANT} == shared ]] && multilib_is_native_abi -} - -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 - - OPENSSL_VARIANTS=( shared ) - use static-libs && OPENSSL_VARIANTS+=( static ) - - openssl_run_phase openssl_src_configure -} - -openssl_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} - - $(openssl_is_default_variant || 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) - - threads - ) - - if [[ ${OPENSSL_VARIANT} == static ]]; then - myeconfargs+=( no-module no-shared ) - fi - - edo perl "${S}/Configure" "${myeconfargs[@]}" -} - -src_compile() { - openssl_run_phase openssl_src_compile -} - -openssl_src_compile() { - emake build_sw - if openssl_is_default_variant; then - emake build_docs - fi -} - -src_test() { - openssl_run_phase openssl_src_test -} - -openssl_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 -} - -openssl_src_install() { - if [[ ${OPENSSL_VARIANT} == static ]]; then - dolib.a libcrypto.a libssl.a - return - fi - - # Only -j1 is supported for the install targets: - # https://github.com/openssl/openssl/issues/21999#issuecomment-1771150305 - emake DESTDIR="${D}" -j1 install_sw - rm "${ED}"/usr/$(get_libdir)/lib{crypto,ssl}.a || die - - 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 openssl_is_default_variant; then - emake DESTDIR="${D}" -j1 install_ssldirs - emake DESTDIR="${D}" DOCDIR='$(INSTALLTOP)'/share/doc/${PF} -j1 install_docs - fi - - multilib_prepare_wrappers - multilib_check_headers -} - -src_install() { - openssl_run_phase openssl_src_install - multilib_install_wrappers - - # 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.5-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.6.2.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.5.5-r1.ebuild rename to sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.6.2.ebuild diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-4.0.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-4.0.0.ebuild new file mode 100644 index 00000000000..b71950f71e1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-4.0.0.ebuild @@ -0,0 +1,329 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openssl.org.asc +inherit edo flag-o-matic linux-info sysroot toolchain-funcs +inherit multibuild multilib multilib-build 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/${MY_P}/${MY_P}.tar.gz + verify-sig? ( + https://github.com/openssl/openssl/releases/download/${MY_P}/${MY_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 ~x64-macos ~x64-solaris" + fi + + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-openssl-20260415 )" +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=" + !=virtual/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 +} + +_openssl_variant() { + local OPENSSL_VARIANT=${MULTIBUILD_VARIANT} + mkdir -p "${BUILD_DIR}" || die + pushd "${BUILD_DIR}" >/dev/null || die + "$@" + popd >/dev/null || die +} + +openssl_foreach_variant() { + local MULTIBUILD_VARIANTS=( "${OPENSSL_VARIANTS[@]}" ) + multibuild_foreach_variant _openssl_variant "$@" +} + +openssl_run_phase() { + multilib_foreach_abi openssl_foreach_variant "$@" +} + +openssl_is_default_variant() { + [[ ${OPENSSL_VARIANT} == shared ]] && multilib_is_native_abi +} + +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 + + OPENSSL_VARIANTS=( shared ) + use static-libs && OPENSSL_VARIANTS+=( static ) + + openssl_run_phase openssl_src_configure +} + +openssl_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} + + $(openssl_is_default_variant || 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) + + threads + ) + + if [[ ${OPENSSL_VARIANT} == static ]]; then + myeconfargs+=( no-module no-shared ) + fi + + edo perl "${S}/Configure" "${myeconfargs[@]}" +} + +src_compile() { + openssl_run_phase openssl_src_compile +} + +openssl_src_compile() { + emake build_sw + if openssl_is_default_variant; then + emake build_docs + fi +} + +src_test() { + openssl_run_phase openssl_src_test +} + +openssl_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 +} + +openssl_src_install() { + if [[ ${OPENSSL_VARIANT} == static ]]; then + dolib.a libcrypto.a libssl.a + return + fi + + # Only -j1 is supported for the install targets: + # https://github.com/openssl/openssl/issues/21999#issuecomment-1771150305 + emake DESTDIR="${D}" -j1 install_sw + rm "${ED}"/usr/$(get_libdir)/lib{crypto,ssl}.a || die + + 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 openssl_is_default_variant; then + emake DESTDIR="${D}" -j1 install_ssldirs + emake DESTDIR="${D}" DOCDIR='$(INSTALLTOP)'/share/doc/${PF} -j1 install_docs + fi + + multilib_prepare_wrappers + multilib_check_headers +} + +src_install() { + openssl_run_phase openssl_src_install + multilib_install_wrappers + + 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-4.0.9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-4.0.9999.ebuild new file mode 100644 index 00000000000..5c8a482db6c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-4.0.9999.ebuild @@ -0,0 +1,329 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openssl.org.asc +inherit edo flag-o-matic linux-info sysroot toolchain-funcs +inherit multibuild multilib multilib-build 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/${MY_P}/${MY_P}.tar.gz + verify-sig? ( + https://github.com/openssl/openssl/releases/download/${MY_P}/${MY_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 ~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=" + !=virtual/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 +} + +_openssl_variant() { + local OPENSSL_VARIANT=${MULTIBUILD_VARIANT} + mkdir -p "${BUILD_DIR}" || die + pushd "${BUILD_DIR}" >/dev/null || die + "$@" + popd >/dev/null || die +} + +openssl_foreach_variant() { + local MULTIBUILD_VARIANTS=( "${OPENSSL_VARIANTS[@]}" ) + multibuild_foreach_variant _openssl_variant "$@" +} + +openssl_run_phase() { + multilib_foreach_abi openssl_foreach_variant "$@" +} + +openssl_is_default_variant() { + [[ ${OPENSSL_VARIANT} == shared ]] && multilib_is_native_abi +} + +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 + + OPENSSL_VARIANTS=( shared ) + use static-libs && OPENSSL_VARIANTS+=( static ) + + openssl_run_phase openssl_src_configure +} + +openssl_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} + + $(openssl_is_default_variant || 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) + + threads + ) + + if [[ ${OPENSSL_VARIANT} == static ]]; then + myeconfargs+=( no-module no-shared ) + fi + + edo perl "${S}/Configure" "${myeconfargs[@]}" +} + +src_compile() { + openssl_run_phase openssl_src_compile +} + +openssl_src_compile() { + emake build_sw + if openssl_is_default_variant; then + emake build_docs + fi +} + +src_test() { + openssl_run_phase openssl_src_test +} + +openssl_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 +} + +openssl_src_install() { + if [[ ${OPENSSL_VARIANT} == static ]]; then + dolib.a libcrypto.a libssl.a + return + fi + + # Only -j1 is supported for the install targets: + # https://github.com/openssl/openssl/issues/21999#issuecomment-1771150305 + emake DESTDIR="${D}" -j1 install_sw + rm "${ED}"/usr/$(get_libdir)/lib{crypto,ssl}.a || die + + 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 openssl_is_default_variant; then + emake DESTDIR="${D}" -j1 install_ssldirs + emake DESTDIR="${D}" DOCDIR='$(INSTALLTOP)'/share/doc/${PF} -j1 install_docs + fi + + multilib_prepare_wrappers + multilib_check_headers +} + +src_install() { + openssl_run_phase openssl_src_install + multilib_install_wrappers + + 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/rapidjson/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/Manifest index b922188e51c..150d1bb68a8 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/Manifest @@ -1 +1,2 @@ DIST rapidjson-1.1.0.tar.gz 1019402 BLAKE2B e1564b3cfa020f76437b0a35048a42ff2cd98b5ce285e63f228e158885182e5cecda13407cdf30c03fa39b47cbc579ff0065f6c2682d04b806e8f9ea8d36fc4e SHA512 2e82a4bddcd6c4669541f5945c2d240fb1b4fdd6e239200246d3dd50ce98733f0a4f6d3daa56f865d8c88779c036099c52a9ae85d47ad263686b68a88d832dff +DIST rapidjson-1.1.0_p20250205.tar.gz 1116703 BLAKE2B b4657b1a09437d947fea754f3de492993ae1335228b17d7fd7d4542e47009d7af64d0f8fa39923865accd6e7af86165e2545372bdeb425aef5480dcc96fb111e SHA512 50f8723414a6e63eadd45f97be5c44e9fff2d06216c8cc4df802f5bfc2a9416a039f2c69e9bb1882f7e756cd38a7097eea05cab76c739f45805dc41617140799 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/files/rapidjson-1.1.1-cmake4.patch b/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/files/rapidjson-1.1.1-cmake4.patch new file mode 100644 index 00000000000..2eeda098f1c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/files/rapidjson-1.1.1-cmake4.patch @@ -0,0 +1,20 @@ +https://bugs.gentoo.org/951839 +https://github.com/Tencent/rapidjson/issues/2159 fixed in git already +Update further to min. 3.10. + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,4 +1,4 @@ +-CMAKE_MINIMUM_REQUIRED(VERSION 3.5) ++CMAKE_MINIMUM_REQUIRED(VERSION 3.10) + + SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules) + +--- a/example/CMakeLists.txt ++++ b/example/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 2.8) ++cmake_minimum_required(VERSION 3.10) + + if(POLICY CMP0054) + cmake_policy(SET CMP0054 NEW) diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/files/rapidjson-1.1.1-valgrind_optional.patch b/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/files/rapidjson-1.1.1-valgrind_optional.patch deleted file mode 100644 index e05c2800087..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/files/rapidjson-1.1.1-valgrind_optional.patch +++ /dev/null @@ -1,21 +0,0 @@ -https://github.com/Tencent/rapidjson/issues/1808 - ---- a/test/unittest/CMakeLists.txt -+++ b/test/unittest/CMakeLists.txt -@@ -78,12 +78,15 @@ - COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) - --if(NOT MSVC) -+find_program(VALGRIND_EXECUTABLE valgrind) -+if(VALGRIND_EXECUTABLE) - # Not running SIMD.* unit test cases for Valgrind - add_test(NAME valgrind_unittest - COMMAND valgrind --suppressions=${CMAKE_SOURCE_DIR}/test/valgrind.supp --leak-check=full --error-exitcode=1 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest --gtest_filter=-SIMD.* - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) -+endif(VALGRIND_EXECUTABLE) - -+if(NOT MSVC) - if(CMAKE_BUILD_TYPE STREQUAL "Debug") - add_test(NAME symbol_check - COMMAND sh -c "objdump -t -C libnamespacetest.a | grep rapidjson ; test $? -ne 0" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/metadata.xml b/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/metadata.xml index a3be7bec65f..6c566808816 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/metadata.xml @@ -6,7 +6,7 @@ Craig Andrews - https://github.com/miloyip/rapidjson/issues - miloyip/rapidjson + https://github.com/Tencent/rapidjson/issues + Tencent/rapidjson diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/rapidjson-1.1.0-r4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/rapidjson-1.1.0-r4.ebuild deleted file mode 100644 index e2df1e4023b..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/rapidjson-1.1.0-r4.ebuild +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake - -DESCRIPTION="A fast JSON parser/generator for C++ with both SAX/DOM style API" -HOMEPAGE="https://rapidjson.org/" - -if [[ ${PV} == *9999 ]] ; then - EGIT_REPO_URI="https://github.com/miloyip/rapidjson.git" - EGIT_SUBMODULES=() - inherit git-r3 -else - SRC_URI="https://github.com/miloyip/rapidjson/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86" - S="${WORKDIR}/rapidjson-${PV}" -fi - -LICENSE="MIT" -SLOT="0" -IUSE="doc examples test" -RESTRICT="!test? ( test )" - -BDEPEND=" - doc? ( app-text/doxygen ) - test? ( dev-cpp/gtest ) -" - -PATCHES=( - "${FILESDIR}/${P}-gcc-7.patch" - "${FILESDIR}/${P}-system_gtest.patch" - "${FILESDIR}/${P}-valgrind_optional.patch" - "${FILESDIR}/${P}-gcc14-const.patch" -) - -src_prepare() { - cmake_src_prepare - - sed -i -e 's| -march=native||g' CMakeLists.txt || die - sed -i -e 's| -Werror||g' CMakeLists.txt example/CMakeLists.txt test/unittest/CMakeLists.txt || die -} - -src_configure() { - local mycmakeargs=( - -DDOC_INSTALL_DIR="${EPREFIX}/usr/share/doc/${PF}" - -DLIB_INSTALL_DIR="${EPREFIX}/usr/$(get_libdir)" - -DRAPIDJSON_BUILD_CXX11=OFF # latest gtest requires C++14 or later - -DRAPIDJSON_BUILD_DOC=$(usex doc) - -DRAPIDJSON_BUILD_EXAMPLES=$(usex examples) - -DRAPIDJSON_BUILD_TESTS=$(usex test) - -DRAPIDJSON_BUILD_THIRDPARTY_GTEST=OFF - ) - use test && mycmakeargs+=( - -DVALGRIND_EXECUTABLE= - ) - cmake_src_configure -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/rapidjson-1.1.0_p20250205.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/rapidjson-1.1.0_p20250205.ebuild new file mode 100644 index 00000000000..8e8324cdb72 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/rapidjson-1.1.0_p20250205.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="A fast JSON parser/generator for C++ with both SAX/DOM style API" +HOMEPAGE="https://rapidjson.org/" + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://github.com/Tencent/rapidjson.git" + EGIT_SUBMODULES=() + inherit git-r3 +else + # no up-to-date releases or tags + COMMIT="24b5e7a8b27f42fa16b96fc70aade9106cf7102f" + SRC_URI="https://github.com/Tencent/rapidjson/archive/${COMMIT}.tar.gz -> rapidjson-${PV}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + S="${WORKDIR}/rapidjson-${COMMIT}" +fi + +LICENSE="MIT" +SLOT="0" +IUSE="doc examples test" +RESTRICT="!test? ( test )" + +BDEPEND=" + doc? ( app-text/doxygen ) + test? ( dev-cpp/gtest ) +" + +PATCHES=( + "${FILESDIR}/${PN}-1.1.0-system_gtest.patch" + "${FILESDIR}/${PN}-1.1.1-cmake4.patch" +) + +src_prepare() { + cmake_src_prepare + + sed -i -e 's| -march=native||g' CMakeLists.txt || die + sed -i -e 's| -mcpu=native||g' CMakeLists.txt || die + sed -i -e 's| -Werror||g' CMakeLists.txt || die +} + +src_configure() { + local mycmakeargs=( + -DDOC_INSTALL_DIR="${EPREFIX}/usr/share/doc/${PF}" + -DLIB_INSTALL_DIR="${EPREFIX}/usr/$(get_libdir)" + -DRAPIDJSON_BUILD_CXX11=OFF # latest gtest requires C++14 or later + -DRAPIDJSON_BUILD_CXX17=ON + -DRAPIDJSON_BUILD_DOC=$(usex doc) + -DRAPIDJSON_BUILD_EXAMPLES=$(usex examples) + -DRAPIDJSON_BUILD_TESTS=$(usex test) + -DRAPIDJSON_BUILD_THIRDPARTY_GTEST=OFF + ) + use test && mycmakeargs+=( + -DVALGRIND_FOUND= + ) + cmake_src_configure +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/rapidjson-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/rapidjson-9999.ebuild index b98b72a191b..8e8324cdb72 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/rapidjson-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/rapidjson/rapidjson-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -9,13 +9,15 @@ DESCRIPTION="A fast JSON parser/generator for C++ with both SAX/DOM style API" HOMEPAGE="https://rapidjson.org/" if [[ ${PV} == *9999 ]] ; then - EGIT_REPO_URI="https://github.com/miloyip/rapidjson.git" + EGIT_REPO_URI="https://github.com/Tencent/rapidjson.git" EGIT_SUBMODULES=() inherit git-r3 else - SRC_URI="https://github.com/miloyip/rapidjson/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" - S="${WORKDIR}/rapidjson-${PV}" + # no up-to-date releases or tags + COMMIT="24b5e7a8b27f42fa16b96fc70aade9106cf7102f" + SRC_URI="https://github.com/Tencent/rapidjson/archive/${COMMIT}.tar.gz -> rapidjson-${PV}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + S="${WORKDIR}/rapidjson-${COMMIT}" fi LICENSE="MIT" @@ -30,7 +32,7 @@ BDEPEND=" PATCHES=( "${FILESDIR}/${PN}-1.1.0-system_gtest.patch" - "${FILESDIR}/${PN}-1.1.1-valgrind_optional.patch" + "${FILESDIR}/${PN}-1.1.1-cmake4.patch" ) src_prepare() { @@ -53,7 +55,7 @@ src_configure() { -DRAPIDJSON_BUILD_THIRDPARTY_GTEST=OFF ) use test && mycmakeargs+=( - -DVALGRIND_EXECUTABLE= + -DVALGRIND_FOUND= ) cmake_src_configure } diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/Manifest index dc75ae4652d..9c6bb8f38a6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/Manifest @@ -6,3 +6,4 @@ DIST tree-sitter-0.26.3.tar.gz 900789 BLAKE2B 8532bd460f3fd4e1cec9daecc45fcc8563 DIST tree-sitter-0.26.5.tar.gz 905701 BLAKE2B 3771c0b31704f6182ae10c2629566984883a9bfcfc914e40a3d30889eb3ef30f19213a45e9732b067042893dd89e27b51b8f5fa50f2d7d8cec81aeb8666ebece SHA512 c8ffa86caf5841208dd2c987c6437111c7514635ebc76e910deb38ba64252caa99ae8453f1acd8af8e167cc2c7fe7194d481cd53533802601b331c60d20f2a49 DIST tree-sitter-0.26.6.tar.gz 906770 BLAKE2B c6fcbc901f86795d6e5de5e22d4b7f34425f1f25ff9134de27baa0a68d917c376accd4a7a9d33faaee4e82e4dd7440085a06b55d5f57e5fe9756c195147867d5 SHA512 33ce5617ac53e276cccc8fa34e3a6b3e29a5bd572b381da4a7d6d78cbb7485d85120be8c0e25e02d3fbae4c36793b02bcfd788a2cdfe73f026742b184e16d572 DIST tree-sitter-0.26.7.tar.gz 907267 BLAKE2B 7e734913ab81e700192c8d829b136300d5507da2f0cd1e3b059df81202fcd8da76884e605bda48a13d4f4317f335d1cb2cdb1aa60fbcfcce021280106512e3ff SHA512 0060809339744be4b3b24bae8115d2793dc113618ab1a79c347456f5b8341b15d2026e7b62d2e4e3c5226c8bf85a089221133457a80bfdd0413cd82bf7c4a172 +DIST tree-sitter-0.26.8.tar.gz 908286 BLAKE2B 92da23e47a25b618cf1645204455377f0cc16f5070f59356b53b088e41a0e7175f79ba3ee582388c462a188d2084b47ab21f40b0ae8ec4872c4098a2c8b4f6f3 SHA512 a5786e8235bceec2b4e8ed5ba035f143a3eabb587d33fa5d97c5e9e7a16c52b57dda72201b56c737ce3819b2d7cf53bef8852944d7a6a6ff85ea24a84fcb0042 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.26.8.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.26.8.ebuild new file mode 100644 index 00000000000..dd1667f5a0d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.26.8.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake optfeature + +DESCRIPTION="Tree-sitter is a parser generator tool and an incremental parsing library" +HOMEPAGE="https://tree-sitter.github.io/" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/${PN}/${PN}" +else + SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" +fi + +LICENSE="MIT" +# ABI is not stable. Revisit after tree-sitter-1.0. +# https://bugs.gentoo.org/930039 +# https://github.com/tree-sitter/tree-sitter/pull/3302 +SLOT="0/${PV}" +RESTRICT="test" # tests are for CLI and not the lib + +pkg_postinst() { + optfeature "building and testing grammars" dev-util/tree-sitter-cli +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-9999.ebuild index 424dd8528a1..3abf2d9fb7d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-9999.ebuild @@ -2,17 +2,18 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit optfeature toolchain-funcs + +inherit cmake optfeature DESCRIPTION="Tree-sitter is a parser generator tool and an incremental parsing library" -HOMEPAGE="https://github.com/tree-sitter/tree-sitter" +HOMEPAGE="https://tree-sitter.github.io/" if [[ ${PV} == *9999* ]]; then inherit git-r3 EGIT_REPO_URI="https://github.com/${PN}/${PN}" else SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" fi LICENSE="MIT" @@ -22,29 +23,6 @@ LICENSE="MIT" SLOT="0/${PV}" RESTRICT="test" # tests are for CLI and not the lib -PATCHES=( - "${FILESDIR}/${PN}-0.26.3-no-static.patch" -) - -src_prepare() { - default - tc-export CC -} - -src_compile() { - emake \ - PREFIX="${EPREFIX}/usr" \ - LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ - STRIP="" # bug 930020 -} - -src_install() { - emake DESTDIR="${D}" \ - PREFIX="${EPREFIX}/usr" \ - LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ - install -} - pkg_postinst() { optfeature "building and testing grammars" dev-util/tree-sitter-cli } diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/Manifest index 766cf0789e4..316046541d5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/Manifest @@ -1,3 +1,6 @@ -DIST xmlsec1-1.3.7.tar.gz 2468083 BLAKE2B 6e3b14d476cc6d37e5f9324383432dfacc1a3ac0340bcf709f70b2e8f99dadee23d48e12569b50768446dfa3601868c99190bb44fdeb5c6fc2a0bb48cfd7335e SHA512 0813ad0f7821f765947a7d81d276ba479bf54430279a7b9da31988d1ec76c60b81d3d57f1088a69a2cc0d8d27fa932ce1cb051457d1c0c5a6f071a2df4395cb8 +DIST xmlsec1-1.3.10.sig 566 BLAKE2B bb247dbbfbf42df10ed878ee8a7ecf2a0cc95efa61aef07c10f1fb078aa6a480e6b198f5ee2dd90c62b5a4010517bcb91a913ad22b9fde6e0f1feaca927896bc SHA512 3554858a3b8f1a25352e575014bd408ada17b06c748d4406747c39e465026ca3b38bfdedf042e4c1a2f45f924b77f1acea293a71bed63af389b5960415664b37 +DIST xmlsec1-1.3.10.tar.gz 3223525 BLAKE2B daccafb583931d5010b9a5d4060803da3563e5e57778ec7f58ad33efc08176731af0652a83c93757efaeef195b763d0d8ab1aee72761994a4b6003e6acf4c33c SHA512 45fd71bff27571e880f08962577850e7067a424a8379e2bbe28ab9aa5a2c51a0516c0f6b24992b01cad93fd353a8cc79874c18df6c1a4121274b2e7b7db2b8b6 +DIST xmlsec1-1.3.11.sig 566 BLAKE2B c73270b75045024c9575ac7ac2ab157a987de736ceaf061d5834c7c5048fdeee54fe080fc7cce8affaa3b41af56beb08715394fd5fc4d749e0f0085d627327af SHA512 8bd25f47535ebbd81daadf528ffaff1e26c1e91898ed674e78d3426bdd4568fa7f07db63d2e1f0ad2ec2fcf0862e90e3092254306f0b8cc37206569a2677e13b +DIST xmlsec1-1.3.11.tar.gz 2998250 BLAKE2B 39bb30893992c5c80dc9c60096d6c0abf1dc140a6e66b9165b68be50f9bdc5f11f6d72a800584b5a7a01b7a6a22c655edae7943ea57d622e09cc40011522a55e SHA512 5a1dc5c94af681a25a28f606d8ba966e589748aee2a3d1069859437f14c710156eb80a8ab77842bf177eaa2762ba2603ea805c50ce6d3c1a237196f54cb9e617 DIST xmlsec1-1.3.9.sig 566 BLAKE2B 14ef29d34882dd350c6e32354726b65d23708f9040228eb82f4a6429c5cc4f3aaa57d836aee7c23998bd23e292544d4e81c5f1899f51fe067f144d9e6d0eb798 SHA512 b10ac56d22bfa235ef6837981a80034f4ac5883d6b251249f2c87fbd6490c69e122c0618f50ee50a7830d2f8be70463c40b0820d184fcee52f87e8d726862c05 DIST xmlsec1-1.3.9.tar.gz 2377806 BLAKE2B 4d756275a83bb2649bc2ca6d08528762db6c115487286ad8e6a04657640a6eaf39f7d121c0e20bae068b99a8184d825856904f39ccdd7bdd5a3d250a6b17ecad SHA512 a04bad95578be0617ee840b3f875b8721e61e07c76d44de63afc3abf27be4919b9e6d48f3619174808f03cfb96542ca7f9965484fb3d657966a386f50f37170c diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.10-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.10-r1.ebuild new file mode 100644 index 00000000000..8739b665350 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.10-r1.ebuild @@ -0,0 +1,109 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/alekseysanin.asc +inherit autotools verify-sig + +DESCRIPTION="Command line tool for signing, verifying, encrypting and decrypting XML" +HOMEPAGE="https://www.aleksey.com/xmlsec/" +SRC_URI=" + https://www.aleksey.com/xmlsec/download/${PN}1-${PV}.tar.gz + https://www.aleksey.com/xmlsec/download/older-releases/${PN}1-${PV}.tar.gz + verify-sig? ( + https://www.aleksey.com/xmlsec/download/${PN}1-${PV}.sig + https://www.aleksey.com/xmlsec/download/older-releases/${PN}1-${PV}.sig + ) +" +S="${WORKDIR}/${PN}1-${PV}" + +LICENSE="MIT" +# configure.ac: "For simplicity we just bump current all the time and don't bother" +SLOT="0/${PV}" +KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86" +IUSE="doc gcrypt gnutls http nss +openssl static-libs test" +RESTRICT="!test? ( test )" +REQUIRED_USE=" + || ( gnutls nss openssl ) +" + +RDEPEND=" + >=dev-libs/libxml2-2.9.13:= + >=dev-libs/libxslt-1.1.35:= + >=dev-libs/libltdl-1.0.0:= + gcrypt? ( >=dev-libs/libgcrypt-1.4.0:= ) + gnutls? ( >=net-libs/gnutls-3.8.3:= ) + nss? ( + >=dev-libs/nspr-4.34.1:= + >=dev-libs/nss-3.91:= + ) + openssl? ( >=dev-libs/openssl-3.0.13:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + test? ( + nss? ( + >=dev-libs/nss-3.91[utils] + ) + ) + verify-sig? ( sec-keys/openpgp-keys-alekseysanin ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.3.0-optimisation.patch +) + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${PN}1-${PV}.{tar.gz,sig} + fi + default +} + +src_prepare() { + default + + eautoreconf + + # skip failing test (this is fixed in 1.3.11) - #972730 + sed -i '1842s/zyes/zskip/' tests/testDSig.sh || die +} + +src_configure() { + local myeconfargs=( + $(use_enable doc docs) + $(use_enable http) + $(use_enable static-libs static) + $(use_with gcrypt) + $(use_with gnutls) + $(use_with nss nspr) + $(use_with nss) + $(use_with openssl) + --disable-ftp + --disable-werror + --enable-concatkdf + --enable-dh + --enable-ec + --enable-files + --enable-mans + --enable-pbkdf2 + --enable-pkgconfig + --enable-sha3 + ) + + # Bash because of bug #721128 + CONFIG_SHELL="${BROOT}"/bin/bash econf "${myeconfargs[@]}" +} + +src_test() { + # See https://github.com/lsh123/xmlsec/issues/280 for TZ=UTC + TZ=UTC SHELL="${BROOT}"/bin/bash emake TMPFOLDER="${T}" -Onone check +} + +src_install() { + default + + find "${ED}" -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.11-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.11-r1.ebuild new file mode 100644 index 00000000000..4f3c5ba12dc --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.11-r1.ebuild @@ -0,0 +1,120 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/alekseysanin.asc +inherit autotools verify-sig + +MY_PV=$(ver_rs 3 '-') # normalize RC versions +DESCRIPTION="Command line tool for signing, verifying, encrypting and decrypting XML" +HOMEPAGE="https://www.aleksey.com/xmlsec/" +SRC_URI=" + https://www.aleksey.com/xmlsec/download/${PN}1-${MY_PV}.tar.gz + https://www.aleksey.com/xmlsec/download/older-releases/${PN}1-${PV}.tar.gz + verify-sig? ( + https://www.aleksey.com/xmlsec/download/${PN}1-${PV}.sig + https://www.aleksey.com/xmlsec/download/older-releases/${PN}1-${PV}.sig + ) +" +S="${WORKDIR}/${PN}1-$(ver_cut 1-3)" + +LICENSE="MIT" +# configure.ac: "For simplicity we just bump current all the time and don't bother" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="doc gcrypt gnutls http nss +openssl static-libs test" +RESTRICT="!test? ( test )" +REQUIRED_USE=" + || ( gnutls nss openssl ) +" + +RDEPEND=" + >=dev-libs/libxml2-2.9.13:= + >=dev-libs/libxslt-1.1.35:= + >=dev-libs/libltdl-1.0.0:= + gcrypt? ( >=dev-libs/libgcrypt-1.4.0:= ) + gnutls? ( >=net-libs/gnutls-3.8.3:= ) + nss? ( + >=dev-libs/nspr-4.34.1:= + >=dev-libs/nss-3.91:= + ) + openssl? ( >=dev-libs/openssl-3.0.13:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + doc? ( + app-text/doxygen + virtual/pandoc + ) + test? ( + nss? ( + >=dev-libs/nss-3.91[utils] + ) + ) + verify-sig? ( sec-keys/openpgp-keys-alekseysanin ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.3.0-optimisation.patch +) + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${PN}1-${MY_PV}.{tar.gz,sig} + fi + default +} + +src_prepare() { + default + + # Upstream has removed the option not to build docs - use the Force + if ! use doc; then + sed -i -e 's/^SUBDIRS.*$/SUBDIRS = include src apps man/' Makefile.am || die + fi + + eautoreconf +} + +src_configure() { + local myeconfargs=( + $(use_enable http) + $(use_enable static-libs static) + $(use_with gcrypt) + $(use_with gnutls) + $(use_with nss nspr) + $(use_with nss) + $(use_with openssl) + --disable-ftp + --disable-werror + --enable-concatkdf + --enable-dh + --enable-ec + --enable-files + --enable-pbkdf2 + --enable-pkgconfig + --enable-sha3 + --with-man-dir="${EPREFIX}"/usr/share/man/man1 + ) + if use doc; then + myeconfargs+=( + "--with-docs-dir=${EPREFIX}/usr/share/doc/${PF}" + ) + fi + + # Bash because of bug #721128 + CONFIG_SHELL="${BROOT}"/bin/bash econf "${myeconfargs[@]}" +} + +src_test() { + # See https://github.com/lsh123/xmlsec/issues/280 for TZ=UTC + TZ=UTC SHELL="${BROOT}"/bin/bash emake TMPFOLDER="${T}" -Onone check +} + +src_install() { + default + + find "${ED}" -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.7-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.7-r1.ebuild deleted file mode 100644 index 5d1a9be8149..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.7-r1.ebuild +++ /dev/null @@ -1,96 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools - -DESCRIPTION="Command line tool for signing, verifying, encrypting and decrypting XML" -HOMEPAGE="https://www.aleksey.com/xmlsec" -SRC_URI=" - https://www.aleksey.com/xmlsec/download/${PN}1-${PV}.tar.gz - https://www.aleksey.com/xmlsec/download/older-releases/${PN}1-${PV}.tar.gz -" -S="${WORKDIR}/${PN}1-${PV}" - -LICENSE="MIT" -# Upstream consider major version bumps to be changes in either X or Y in X.Y.Z -SLOT="0/$(ver_cut 1-2)" -KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86" -IUSE="doc gcrypt gnutls http nss +openssl static-libs test" -RESTRICT="!test? ( test )" -REQUIRED_USE=" - || ( gnutls nss openssl ) -" - -RDEPEND=" - >=dev-libs/libxml2-2.7.4:= - >=dev-libs/libxslt-1.0.20 - dev-libs/libltdl - gcrypt? ( >=dev-libs/libgcrypt-1.4.0:= ) - gnutls? ( >=net-libs/gnutls-3.6.13:= ) - nss? ( - >=dev-libs/nspr-4.4.1 - >=dev-libs/nss-3.9 - ) - openssl? ( dev-libs/openssl:= ) -" -DEPEND="${RDEPEND}" -BDEPEND=" - virtual/pkgconfig - test? ( - nss? ( - >=dev-libs/nss-3.9[utils] - ) - ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-1.3.0-optimisation.patch -) - -src_prepare() { - default - - eautoreconf -} - -src_configure() { - local myeconfargs=( - $(use_enable doc docs) - $(use_enable static-libs static) - $(use_with gcrypt) - $(use_with gnutls) - $(use_with nss nspr) - $(use_with nss) - $(use_with openssl) - - --disable-werror - --enable-mans - --enable-pkgconfig - - --enable-concatkdf - --enable-pbkdf2 - --enable-ec - --enable-dh - --enable-sha3 - - --enable-files - $(use_enable http) - --disable-ftp - ) - - # Bash because of bug #721128 - CONFIG_SHELL="${BROOT}"/bin/bash econf "${myeconfargs[@]}" -} - -src_test() { - # See https://github.com/lsh123/xmlsec/issues/280 for TZ=UTC - TZ=UTC SHELL="${BROOT}"/bin/bash emake TMPFOLDER="${T}" -Onone check -} - -src_install() { - default - - find "${ED}" -name '*.la' -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.9.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.9.ebuild index c035d93176c..224b9134c0a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.9.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.9.ebuild @@ -10,14 +10,18 @@ DESCRIPTION="Command line tool for signing, verifying, encrypting and decrypting HOMEPAGE="https://www.aleksey.com/xmlsec/" SRC_URI=" https://www.aleksey.com/xmlsec/download/${PN}1-${PV}.tar.gz - verify-sig? ( https://www.aleksey.com/xmlsec/download/${PN}1-${PV}.sig ) + https://www.aleksey.com/xmlsec/download/older-releases/${PN}1-${PV}.tar.gz + verify-sig? ( + https://www.aleksey.com/xmlsec/download/${PN}1-${PV}.sig + https://www.aleksey.com/xmlsec/download/older-releases/${PN}1-${PV}.sig + ) " S="${WORKDIR}/${PN}1-${PV}" LICENSE="MIT" # Upstream consider major version bumps to be changes in either X or Y in X.Y.Z SLOT="0/$(ver_cut 1-2)" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86" IUSE="doc gcrypt gnutls http nss +openssl static-libs test" RESTRICT="!test? ( test )" REQUIRED_USE=" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/Manifest index 82fcb627ab0..841db580dae 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/Manifest @@ -1 +1,2 @@ DIST cachecontrol-0.14.3.tar.gz 28985 BLAKE2B 130b372dc5b17eadc1f16ca6ee361bbc5fc83306a333059f538972b2e9cf29b2e0f608faa904c3d2793c7289e5ad176193534a3d1997aca97c490b9784a10bc0 SHA512 12205946ac78263148da4751a55d8c19356bdf055953a014cedfb3084869bb73034860592b5785d4e3e0bd3317c7dc80061105146460a1059eeef458ed5e8dfb +DIST cachecontrol-0.14.3.tar.gz.provenance 9158 BLAKE2B 8b3a70b0ab37ce47a7d67ef853b8718f46a5af7617ddfac50500ec9250e4e15ac60df83fab9311a26bfb03231ebc29425b37eca5e692a6e7defc7ce14502c1c9 SHA512 1b7aff5ee5d9e734122c2dcba2a462620c6e031aedc0ce6eb7d7d2f449c5e95a7a1c27fecaf2d7bb192a4983adabab4954d92733f5401c51616d3b6dfc3c771d diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/cachecontrol-0.14.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/cachecontrol-0.14.3.ebuild index 438d34d6fba..e45d15165f6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/cachecontrol-0.14.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/cachecontrol-0.14.3.ebuild @@ -1,17 +1,18 @@ -# Copyright 2022-2025 Gentoo Authors +# Copyright 2022-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=flit +PYPI_VERIFY_REPO=https://github.com/psf/cachecontrol PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) inherit distutils-r1 pypi DESCRIPTION="httplib2 caching for requests" HOMEPAGE=" - https://pypi.org/project/CacheControl/ https://github.com/psf/cachecontrol/ + https://pypi.org/project/CacheControl/ " LICENSE="Apache-2.0" @@ -30,6 +31,7 @@ BDEPEND=" ) " +EPYTEST_PLUGINS=() distutils_enable_tests pytest python_test() { @@ -41,6 +43,5 @@ python_test() { ) fi - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 epytest } diff --git a/sdk_container/src/third_party/portage-stable/dev-python/certifi/certifi-3024.7.22.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/certifi/certifi-3024.7.22.ebuild index 1bc566c605c..33744881df7 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/certifi/certifi-3024.7.22.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/certifi/certifi-3024.7.22.ebuild @@ -1,11 +1,11 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # please keep this ebuild at EAPI 8 -- sys-apps/portage dep EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) +PYTHON_COMPAT=( python3_{11..15} pypy3_11 ) inherit distutils-r1 @@ -35,6 +35,7 @@ EPYTEST_IGNORE=( tests/test_requests.py ) +EPYTEST_PLUGINS=() distutils_enable_tests pytest src_prepare() { diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cffi/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/cffi/Manifest index 5e85e6e3f01..71dbc6b8cdf 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cffi/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/cffi/Manifest @@ -1,2 +1 @@ -DIST cffi-1.17.1.tar.gz 516621 BLAKE2B 902844a14c0765ada6adf5054a9462a195b49b2ea4d7441deeff97dd6d9209accd29257697002ee1bad7e143ebf983a2d98077b17e08b060dd1ee75dc682e3d8 SHA512 907129891d56351ca5cb885aae62334ad432321826d6eddfaa32195b4c7b7689a80333e6d14d0aab479a646aba148b9852c0815b80344dfffa4f183a5e74372c DIST cffi-2.0.0.tar.gz 523588 BLAKE2B 2038eb1eeb89b1015ea40202cc5dc0da62989288a41cccf75baeea86051a085e28798e75ce0a74316c2f5bd94e83e0b89d3df6b97ee0f4f61dac301e239bb3e9 SHA512 a8bf705e626f6b5858cc20e9044a23fd653d155e2a2d4cb59f1eed00ef13ebd92d5a2f07738c66b361cb24d863786d4379dcd9c176250b546fbd45758e51d4f4 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cffi/cffi-1.17.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cffi/cffi-1.17.1.ebuild deleted file mode 100644 index 081f538a02f..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/cffi/cffi-1.17.1.ebuild +++ /dev/null @@ -1,71 +0,0 @@ -# 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_EXT=1 -DISTUTILS_USE_PEP517=setuptools -# DO NOT ADD pypy to PYTHON_COMPAT -# pypy bundles a modified version of cffi. Use python_gen_cond_dep instead. -PYTHON_COMPAT=( python3_{11..14} ) - -inherit distutils-r1 toolchain-funcs pypi - -DESCRIPTION="Foreign Function Interface for Python calling C code" -HOMEPAGE=" - https://cffi.readthedocs.io/ - https://pypi.org/project/cffi/ -" - -LICENSE="MIT" -SLOT="0/${PV}" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" - -# Needs recent libffi for HPPA fixes -DEPEND=" - >=dev-libs/libffi-3.4.4-r1:= -" -# setuptools as a modern distutils provider -RDEPEND=" - ${DEPEND} - dev-python/pycparser[${PYTHON_USEDEP}] - dev-python/setuptools[${PYTHON_USEDEP}] -" -BDEPEND=" - ${RDEPEND} - virtual/pkgconfig - test? ( - dev-python/py[${PYTHON_USEDEP}] - ) -" - -distutils_enable_sphinx doc/source -distutils_enable_tests pytest - -PATCHES=( - "${FILESDIR}"/cffi-1.14.0-darwin-no-brew.patch -) - -src_prepare() { - if [[ ${CHOST} == *darwin* ]] ; then - # Don't obsessively try to find libffi - sed -i -e "s/.*\-iwithsysroot\/usr\/include\/ffi.*/\tpass/" setup.py || die - fi - distutils-r1_src_prepare -} - -src_configure() { - tc-export PKG_CONFIG -} - -python_test() { - local EPYTEST_IGNORE=( - # these tests call pip - testing/cffi0/test_zintegration.py - ) - - "${EPYTHON}" -c "import _cffi_backend as backend" || die - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - epytest src/c testing -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cffi/cffi-2.0.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cffi/cffi-2.0.0.ebuild index 8579f8054cb..d998f430286 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cffi/cffi-2.0.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/cffi/cffi-2.0.0.ebuild @@ -8,7 +8,7 @@ DISTUTILS_EXT=1 DISTUTILS_USE_PEP517=setuptools # DO NOT ADD pypy to PYTHON_COMPAT # pypy bundles a modified version of cffi. Use python_gen_cond_dep instead. -PYTHON_COMPAT=( python3_{11..14} python3_14t ) +PYTHON_COMPAT=( python3_{11..15} python3_{14,15}t ) inherit distutils-r1 toolchain-funcs pypi diff --git a/sdk_container/src/third_party/portage-stable/dev-python/chardet/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/chardet/Manifest index e098bc0ddf1..6446a6f0c77 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/chardet/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/chardet/Manifest @@ -1,2 +1 @@ -DIST chardet-5.2.0.gh.tar.gz 2067352 BLAKE2B e9b960bad6ad7e9933f0fcd6e445bdefdd795f6150bf96e59714bfb9bd0cf63adeba80b608a1890f07be81565c160977fa96140984720407d93b0919eeb71a8b SHA512 3c6614882b251e53322eb75fdd01c3d7664c5f611bbfc1480fa10d57f02906b4be42a8b7ff4d3bdc00465340a2ca46b31f1f0d25f64d4f69df0ac0876e71e87f DIST chardet-6.0.0.post1.tar.gz 12521798 BLAKE2B 1aac9c3fa5a7e7ac3dd366e02a2395f929a9df3141e7bf609415be471d82179e9f72de7a8584bcad34a04f9ebf426be61205c3c6932a792b770f3971500fe3d0 SHA512 c0581f1c108413407e4155ea1beceb84626c91472640657f2e17359624f7649046882ce2815330c7ce96a4320b1a85840b0235c4329637eb73f21bae85504c31 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/chardet/chardet-5.2.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/chardet/chardet-5.2.0.ebuild deleted file mode 100644 index ed4bbbb264d..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/chardet/chardet-5.2.0.ebuild +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) - -inherit distutils-r1 - -DESCRIPTION="Universal encoding detector" -HOMEPAGE=" - https://github.com/chardet/chardet/ - https://pypi.org/project/chardet/ -" -SRC_URI=" - https://github.com/chardet/chardet/archive/${PV}.tar.gz - -> ${P}.gh.tar.gz -" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris" - -distutils_enable_tests pytest - -EPYTEST_DESELECT=( - # super flaky test - # https://github.com/chardet/chardet/issues/256 - test.py::test_detect_all_and_detect_one_should_agree -) diff --git a/sdk_container/src/third_party/portage-stable/dev-python/chardet/chardet-6.0.0_p1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/chardet/chardet-6.0.0_p1.ebuild index e4af02e4598..4c0ad215835 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/chardet/chardet-6.0.0_p1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/chardet/chardet-6.0.0_p1.ebuild @@ -16,7 +16,7 @@ HOMEPAGE=" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris" BDEPEND=" dev-python/hatch-vcs[${PYTHON_USEDEP}] diff --git a/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/Manifest index e5791017418..93e0ebfcf72 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/Manifest @@ -1,6 +1,2 @@ -DIST charset_normalizer-3.4.4.tar.gz 129418 BLAKE2B 0f462077fe20ffc9555a5628263b48370d50e43261f30abb7715e3c82ba3c7fcb3bec1c2adea65ad5864e0bd656b79fd5129fbd2791edee66ec2839d210f48d3 SHA512 ea3e15123b6a526ef52abeae2a8a8af0b044380606d4ef4a43ca1feb4c626b5899b511634ee8927b959f5ab1dbbd3c57651d1ac3a91c5ab67cd905034f759c9c -DIST charset_normalizer-3.4.4.tar.gz.provenance 9506 BLAKE2B 890a0a810b142da096c1c0d805d9014bac9d1facfd0d51439c12167b047ade62e0d50fc1e6ffb65f5b019586a0706bb21bd75d485c5b9041cfe693ce38b15207 SHA512 55c4a7299bc0c3b556f5d1d344a77c653f0537719bd68ecf036c6339a8e09c169dee1d4d967f86946074b3da2e09f4a85ad1473fe7500cf427faf3dd8a5f95a8 -DIST charset_normalizer-3.4.5.tar.gz 134804 BLAKE2B 632f80f4afc5ed131ef7154cdfc3d8bb3d74caf96f55309f8dddfd6bd6c32ce56e8e38c657bd20129f44167236e8369b2454f430779cc62ab4d658fffef9e1f8 SHA512 4d58d983a948644d89a25f5563171447c8fadcc252a9a3471d4b5e5ffeff94ddd56bce6a5c3fa84744a15b37b14145f645cef9b1635ef2bfe470abe5e259f55b -DIST charset_normalizer-3.4.5.tar.gz.provenance 9583 BLAKE2B 8ab9655ddbf42e167d90d327c68826c803fc320cd54c90aba1fe09f2d383b58f58dabd19a7cce1c98a6d95cfdc8323af626aea32636d4f123c798607b729c9ef SHA512 d8aaeef462c2ef47196f69837cefe34d908457c51d0b8f25b4a1b1bbf875f1e3f7b97a175fd19a870c04adb5453fb46719b92518d95f43f3eb8a723cba9bde8a -DIST charset_normalizer-3.4.6.tar.gz 143363 BLAKE2B fe06d11b1293f11265f14322f58b51edfd7ad137efd5fe9b51d21aca0c21269d813ef3d1f6448ac21217b253399053ab9246d0edb74ff88ed15a24245c50e00d SHA512 4108b46e103c7b6d1ad3b63f04fdef991246c933cfad05897c0bc3d65b1e5b2aefd9ab50e4d270004a5bfbc0410b8133e0bcab86e9902ff31e6a498d31daeb19 -DIST charset_normalizer-3.4.6.tar.gz.provenance 9540 BLAKE2B 6f5eddb585ff17c06a7c8c1c8b6abc45f0388934e68c08c6238120831c7f302fdbee6db1b6e303d6c1360a0cc5c85e9affe6d68f2d3d5ffc88a9e47da6e540a3 SHA512 33d061e52ceae37d4123abcdae0aaddfdfd63c5706b49aaca610e3c586641282badb967e74274d0f7f4a53d36aa8b24eff630901e52187f8ce31cebc14c6e6bd +DIST charset_normalizer-3.4.7.tar.gz 144271 BLAKE2B 46baf0eb8691da293f19206eaa9006b46c365291f57ed8a51d1d97771134cf6a280d25d0ef31712d2526d2013f71645c9906c0ac540c0ffea572f3ea502b375c SHA512 e0682214fc75b5e2a2ce5284ead57ca2883f4151c1dbdfd8399c38ca14251fa53b6f598f87408b1d6dbd5636bf627eec481b582dfe3f314cad761b5d63433250 +DIST charset_normalizer-3.4.7.tar.gz.provenance 9402 BLAKE2B 9e3905ea5aa0fb8577b5ccfb2684eb3afc6ab59a45fef0d07167ee0b78f1ee5136548c46ba023e928145b52abc7ac79178117c323e2f7b98deefc0cac616b417 SHA512 d90705ed0ab90ef4502984712ee01ffc859fcbceb0b28201f8e53525a7290f64ffbc9bbe27d784663e92cde592216ce9ed8a8b7ab2e14ab6b89eac293e1b2494 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.4-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.4-r1.ebuild deleted file mode 100644 index 78e01117778..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.4-r1.ebuild +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 2022-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 -DISTUTILS_EXT=1 -PYPI_VERIFY_REPO=https://github.com/jawah/charset_normalizer -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="The Real First Universal Charset Detector" -HOMEPAGE=" - https://pypi.org/project/charset-normalizer/ - https://github.com/jawah/charset_normalizer/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" -IUSE="+native-extensions" - -BDEPEND=" - native-extensions? ( - $(python_gen_cond_dep ' - dev-python/mypy[${PYTHON_USEDEP}] - ' python3.{11..14}) - ) - dev-python/setuptools[${PYTHON_USEDEP}] -" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -python_compile() { - local -x CHARSET_NORMALIZER_USE_MYPYC=$(usex native-extensions 1 0) - - distutils-r1_python_compile -} - -python_test() { - epytest -o addopts= -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.4.ebuild deleted file mode 100644 index e1103f33c10..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.4.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright 2022-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/jawah/charset_normalizer -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="The Real First Universal Charset Detector" -HOMEPAGE=" - https://pypi.org/project/charset-normalizer/ - https://github.com/jawah/charset_normalizer/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos" - -BDEPEND=" - dev-python/setuptools[${PYTHON_USEDEP}] -" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -python_test() { - epytest -o addopts= -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.5.ebuild deleted file mode 100644 index 901831b8b65..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.5.ebuild +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 2022-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# please keep this ebuild at EAPI 8 -- sys-apps/portage dep -EAPI=8 - -DISTUTILS_USE_PEP517=standalone -DISTUTILS_EXT=1 -PYPI_VERIFY_REPO=https://github.com/jawah/charset_normalizer -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="The Real First Universal Charset Detector" -HOMEPAGE=" - https://pypi.org/project/charset-normalizer/ - https://github.com/jawah/charset_normalizer/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" -IUSE="+native-extensions" - -BDEPEND=" - native-extensions? ( - $(python_gen_cond_dep ' - dev-python/mypy[${PYTHON_USEDEP}] - ' python3.{11..14}) - ) - dev-python/setuptools[${PYTHON_USEDEP}] -" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -python_compile() { - local -x CHARSET_NORMALIZER_USE_MYPYC=$(usex native-extensions 1 0) - - distutils-r1_python_compile -} - -python_test() { - epytest -o addopts= -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.6.ebuild deleted file mode 100644 index 901831b8b65..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.6.ebuild +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 2022-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# please keep this ebuild at EAPI 8 -- sys-apps/portage dep -EAPI=8 - -DISTUTILS_USE_PEP517=standalone -DISTUTILS_EXT=1 -PYPI_VERIFY_REPO=https://github.com/jawah/charset_normalizer -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="The Real First Universal Charset Detector" -HOMEPAGE=" - https://pypi.org/project/charset-normalizer/ - https://github.com/jawah/charset_normalizer/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" -IUSE="+native-extensions" - -BDEPEND=" - native-extensions? ( - $(python_gen_cond_dep ' - dev-python/mypy[${PYTHON_USEDEP}] - ' python3.{11..14}) - ) - dev-python/setuptools[${PYTHON_USEDEP}] -" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -python_compile() { - local -x CHARSET_NORMALIZER_USE_MYPYC=$(usex native-extensions 1 0) - - distutils-r1_python_compile -} - -python_test() { - epytest -o addopts= -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.7.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.7.ebuild new file mode 100644 index 00000000000..1199e0f25c3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.7.ebuild @@ -0,0 +1,45 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=standalone +DISTUTILS_EXT=1 +PYPI_VERIFY_REPO=https://github.com/jawah/charset_normalizer +PYTHON_COMPAT=( python3_{11..15} pypy3_11 ) + +inherit distutils-r1 pypi + +DESCRIPTION="The Real First Universal Charset Detector" +HOMEPAGE=" + https://pypi.org/project/charset-normalizer/ + https://github.com/jawah/charset_normalizer/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos" +IUSE="+native-extensions" + +BDEPEND=" + native-extensions? ( + $(python_gen_cond_dep ' + dev-python/mypy[${PYTHON_USEDEP}] + ' python3.{11..14}) + ) + dev-python/setuptools[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +python_compile() { + local -x CHARSET_NORMALIZER_USE_MYPYC=$(usex native-extensions 1 0) + + distutils-r1_python_compile +} + +python_test() { + epytest -o addopts= +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cryptography/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/Manifest index 60a4959ef53..3606b140999 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 @@ -1,40 +1,76 @@ DIST asn1-0.22.0.crate 47124 BLAKE2B d3ebce2752152968862a957c3bf87291d09dd7895ec1ac8012e4b968174b7a8013c98dde65f54dedf3c4ed4a206d1c306393e93c5b39783af44dbe36bb1b3116 SHA512 403c9fccf8a4c7f487a52528b23fd37790770526b75187b3634744ab9aff072eccdec5bf309e8532df6eb86fe70e60535d0783638c77c248b37296a0993feedf +DIST asn1-0.24.1.crate 50502 BLAKE2B ebb6ec767929765aa37a34f25c9ace8cebabc4b01268245c71691a247317d920e3f5dc6ff4026711e1ba99701f55d84eb1b8b66d79e9b88ad50d25606070a746 SHA512 72ab6700bc365456f6038f9d6d5ccb29a3baf378596f538b68e0e11d3668e57cebaabf72145d8fa86b6441d66eafe38aaadab41eb7b61731fd356a75ff5c45ee DIST asn1_derive-0.22.0.crate 8953 BLAKE2B ef2f3d248b0b5980b2475b4eb8127f4846ac200d2f8c7324757b571359ddf393f664b5b7189020bb12a390840c8fe0c423ab4c58e2359bf667d244d2e8f4e13c SHA512 bbbf3b498d2a59f19f044b627335e1b75a5341ee75b5cb281b09e3ab6e23c9f5a3d5f0eb09435fbeda211daedd9f9a867dbd99400b74e95f192fb0e09e694ab1 +DIST asn1_derive-0.24.1.crate 9534 BLAKE2B e498f5af8fef329668554673a2c583b1d0049a235ed70f2a7a26ab724304240b277c44b33995749437600568e084aaf018430b96c7011d8483bb6965ba0e9bfa SHA512 00990444fb13a033ea831f0688611ecbe33f8cdb63717382cdbccaa0834f953302383f05ae425525d8c336908780d7b80be0db430e1f233bded0544f32c9c199 DIST autocfg-1.5.0.crate 18729 BLAKE2B 27580e39b366c6fca02c9db09997b6415c409f12068f1249184268bf96fd85ba659e25ec730f99e10caf452f96c486f3d7442bf09c4552b5f39519b21d6f88cc SHA512 f279856f234d39d369623576acf9546a1ca24d7fe449f36d4fb93ea75a7efaf2c4015b9616a69bbbed358c5e5882e16b045352f046aa4c049b3d13b1e8257b08 DIST base64-0.22.1.crate 81597 BLAKE2B 6f216a560bd36e6e6b74e908344b457594cc768d9763070e269b56a14b150cbfc4b7f599d4c2a0a5f783638170ee132f0796fefb14fcac7fd73c58db0791007a SHA512 91cf2e4e7fc8815f9b8a86a7fa722a20eee3dc1dd57111b29e420de87ce7836bcdb1db01d3cafb9a977710ef63e7cc41b7772762323e68e0e832156858aace20 +DIST bitflags-2.11.1.crate 49082 BLAKE2B c9c875b54e0a12115ecd846ef0a66bc7070d38892285a4142f1b1f26b07d407fa440a2943f310046f5fbc9a2428fcc56f2e44d06360e551d4b27c9b8cf93eab0 SHA512 c91b5a8b420d8e875a0906ef9b518a392487fba5399355aa5e908132149ddea7cc4222dd271cd5072e50dd9abd6e56420f4205652ba32a57af46bf07636604b7 DIST bitflags-2.9.4.crate 47950 BLAKE2B b880246b54377ef161c54a811f09ced975d1f2049400c1bbba944712b8ef8b9ea79599d2354cc2a9ccd4c1b1329faad78738ed4e051735b14b642a9451ce68ae SHA512 a832e01985551db9d700ba177bb2ffe436e78e3bdcf7b2d8e86fc7cb885674d5656fce05bffb5a4cbe0df7b015dcfa6df8dbc1351c097d2c3a3dac199d3f37b1 DIST cc-1.2.37.crate 90111 BLAKE2B c97656ab4642b180af1adf16736de03b5117774a2fd85d3cbbeb06744ab14a1f20accf8eb59c43dfc7fd803c59f92f30ccd7b2a6e3b53d8ecf45c8a2adb71483 SHA512 062bf65f73e5ae092391efaad510af39c96913d5647073eaa32e9475b34b6d87d2e4448f0dd54ecdf9b979a84819f861d05daf7fdbc06885f6b41162d55bb81f +DIST cc-1.2.60.crate 97051 BLAKE2B 292350c3fe7dc3e023fe4f7cd07b3a5a7233996963b42391243948f834a17cf69781bab32cf46d62722c45437f50123450811dce8aa0e96ee63f35480cc15d90 SHA512 d67fd7400bd1d20f26f7a6743ac02ad09dba0b8002172b87907f4a7ae2487ee41feb2f24fe375ca91a3ac4fde1dc8b48b6703b74297c9eb42bd1e91ac8fe4e80 +DIST cc-1.2.61.crate 97163 BLAKE2B d46641d905e44c60e36c3918c6fb666c7d5f19316a1415e5f51909f79a00773bd763784a71aa7ee85a4c058177596a06a5c4a807904bbd2340c31103312d415d SHA512 4728983b06cf6cfb8a042759b7da2d9123939cb3c87fd78d3d7dc565871b5a4aa522afe515bbfff62218d8ef5ca16ed88f777c30b746820c13c9a6bf98dc7ddd DIST cfg-if-1.0.3.crate 8719 BLAKE2B 5cd0ac122110740895b45cdf8e0f738f2de1882d5a06c696d08e906765e4ddcd72a866dcc115da52d9fece205c9ad15dc25ad98dff36b32517012a7586e986ee SHA512 afe424a191c2aaaffec3d114e0116d0324d12117aeb22df78e47ad6752444bc5acb074ab0a174476b71e584a37743f9dcc2b0e8036d590fcc5afc7c55f86122b -DIST cryptography-46.0.5.tar.gz 750064 BLAKE2B 7ae24a245583daf64a01cfbb9269e9d5aca82929543957572bea56f9e295593e81f836c87bd32bcb7aaa58253b7a156401a1d29992b60e73fd5926016fbbb4cd SHA512 5bc5ea5b85c600504c46e2376a45cee749f41e2b4a6eb639b05d289370dcdc82b2ace423532f5591da16ca56ea32919e47ec154cb72bf7e1f5f3f923c744a185 -DIST cryptography-46.0.5.tar.gz.provenance 9455 BLAKE2B 43796d3302d572eed76aadcab803b95217172945d77838f6fb1171fdd6f61bc811690aa73434479ac228fa98ad39cb513e781a6bc9c11311447350a6b7e1036f SHA512 317dcd14b36f056c1e5486c65cb5f8d82cfc0c2e3324279093e9d3533553bf2b120f3b0ecc99033c8d915fa712825eed2070b9b61fd8e98ceb6c21cf7bdd755d -DIST cryptography_vectors-46.0.5.tar.gz 33809256 BLAKE2B 26d428128708491bff05eb09939b22cec0f1b2248379ed063c078504663775b3e0a5a2223355674a4fc0c7bf563a73724098032f8f1a5c963fc21f5616afd653 SHA512 44197977e2c46680d9c78061bb04e8ba9e5118666a90c76e560d2f5b2ca1488615b380dd23429ab2bec75bc73c8c9b87bb51a7d6220067a8eb548fbfb5b23c8e -DIST cryptography_vectors-46.0.5.tar.gz.provenance 9561 BLAKE2B e8da4de62146333dbe154e913b8f6ac6b6e7fe7b334ba89ad09a446a85b0ebba65d4bae63d805becca692c2ad22e46d39efd54cf2db3b1505c017dbde377522c SHA512 199ea26934c99fc5097cc3c56f2991e34a9c9a2dae4881ba27fcefb0dcf2cb17b19568388d52fdadbb80c1cff6bb6bcd6d61afc0ef1d93b0fe28995984957457 +DIST cfg-if-1.0.4.crate 9360 BLAKE2B beadbfb273ee97cbb6e3740891fbace57511399ad203459b66b397587d794677a9515cde4e9ec4320c3795518bf1551d72b9a889f8ac4b225168f493288b7c19 SHA512 176e04df7ba783b7143bb84397b777f5c5a1305c08a5c3a218d4a66830620be89ed68992ba27686165bcd3fb2f34b2daf80b2a1d4b481ecc267c988e84d28e9d +DIST cryptography-46.0.7.tar.gz 750652 BLAKE2B f7b929d9eafe32d76fd497823309f227895cef18684a9fd90e1740302fa12e039690d5425b4a7d2bd0fcf81322d456d9ee4c230157c7cdc1d109bc283d6191ef SHA512 9176c9d2a5b1930735acb63b97335cd4e3d514cfd66664a3f16ad895a92f155282098cae97c35df97c74dae61c88698f5f94f548c5172a7c1867480225eeff40 +DIST cryptography-46.0.7.tar.gz.provenance 9275 BLAKE2B 6d3cb97787775582d3e477aebdf4900d5dae1cb5659f94e71b164d1224a27e8fd18bf89f51af2505901f231985c0baf2e4b1893a72e86c6962b778f0b330f9fe SHA512 60aad2ce095f7b875127a08170535f68140bf5950c0462bec6345a601a6fa9cf867a2af283ff581e55bf16cbf445f9d0934987a7f1a0b6b35f38124309695703 +DIST cryptography-47.0.0.tar.gz 830863 BLAKE2B fa4f148133c23025ede6bdfcbbce65288dbe61f0a28e3792ef9e1a7143ae05bd7e42947e0ffa3f70d027b7d2064f8d755eb9a83e4719c83ae4f4c79490e0c49e SHA512 0d2fd9de7b6cfafef5f66e4fb10b7eaa8712bc0ed7bca19a017963b8ea707813a7bdc841f7d4aa512da7963eff3707792d46cb93058875fcc447961256c32d9e +DIST cryptography-47.0.0.tar.gz.provenance 9322 BLAKE2B 9107587d781c2fc6eaa26d40f96b404a054bcf317f56974f2efc5f88111f4ed9ab1aa6fc91b2101ae3c5b66467b43858e0a0010df18001999a4a904773ef97df SHA512 744b8be907b623b44c3b4e0aba8ffdb61fa54df5161c20c946da272e0d5ec4cd23a242edb7d2378b8783d50a610be7e6e902ef02acac25a90b67b7908ab5f01d +DIST cryptography-48.0.0.tar.gz 832984 BLAKE2B 100bbd35411874c4b9a6fb855fa19dd5271c753daa28cd6c52fac0b926dbcee6b4dce37a59c28b5ff435028965a60fa898e501f6215e837cc28e056c1b8a4680 SHA512 4d04983e25eb5fc856705f63e8cca32a357ef0a369c4596b1beb2e0befa2b3dcd763eb4e9baed4230bd75aa6738790ec56b107a45d5e02ce09f78fc1851c2ff9 +DIST cryptography-48.0.0.tar.gz.provenance 9676 BLAKE2B a61479b36aae65fd67c0622f6483da49bbd2666131a2f5b016796125168bae24d7bedfcfa7987e89ae8fa051c2e0875ac6b6d8e60f736186812a7909d3fcad7d SHA512 0053d20118f0b427ee0fc9e787e938a4e8e78467a693403fb3118a5a1577dbea7f613b2cf72d2a79620ca966d850e33ba4f565b69a1217c1a834dac751076fd6 +DIST cryptography_vectors-46.0.7.tar.gz 33809310 BLAKE2B 879746285546b1d099e52f58fa15668147557e9099867c0eeda0fa100ead69a7168085f28d322d8938d40f0802acefc9a3810cbce94fd373481bb2f7264df58f SHA512 d16ac5bd0e263761d856b7e6be7101ea2417ba0fe2e3acb42ccb6b3bb98e8695bb81404a05b36bd1b5e426e6ef31e692b140bd5e152c44b98075d63e4d5d0bb4 +DIST cryptography_vectors-46.0.7.tar.gz.provenance 9283 BLAKE2B 25dad799e1654365825f43c7bc3374bef296ae664e7855b9899938c8a597d0f57076170d064b67642dbcaa22dc29792156850b7c2f3425ac1a2e9c3380925479 SHA512 4772b27a74f4c0345c8f9959762571b0ff1d8e1fa08a24e68adc6d008f3abb21f16731fbf369cbc0907977f583f17796dc209ea3e591345dfaaa5a0cbd2c0068 +DIST cryptography_vectors-47.0.0.tar.gz 54877496 BLAKE2B f8c24d09bb84557a4ad9f5c885da47a95853948104c49b0e4e877e62c35e8c826fa0c470e8450c230c727de19102a8c80992b52aa51aee051267ab43e966535b SHA512 82fbad5a395879ba4dac4aa015271522a832da126f7ec204274821d78100ed17c4047bf4d1526f82e7785bdf9d375741eecfe4cd24f3c5dcdcabc2c7cd01f67d +DIST cryptography_vectors-47.0.0.tar.gz.provenance 9377 BLAKE2B 55019d10ba343cb445dc6d0934c12cfc6909ffb2b016520a9d75c485223175ba1fd7ea71bb2da9af37489c4bfda4c4956fc272acedbe5cd3276c2999c198bbb1 SHA512 6adbd02d17f64a7e4fa6bbe453f7eca936683f0e569dc1978a6a8db861eaec93600bf5c1198c0d25e200913a85d5f74ba44616cf05775c44fb042cc20c258cdd +DIST cryptography_vectors-48.0.0.tar.gz 54877461 BLAKE2B 1a8dbe98ff653f8f6ccf90843e8fbecfc6ed7123d9b78db2f34203336613c62083ab7e0803a95a0d3cdbf6b78f837302bc8ab927fc244e54a809f9a321cda67a SHA512 282d6bee83649ee2d80d4c4d51a0ca5de63d1af978e93d3cff2eee20a5aecede2c13e9164cd79e45af0b72fd7bacedf73653986d93032ed148ef55614f9751cb +DIST cryptography_vectors-48.0.0.tar.gz.provenance 9735 BLAKE2B 08065c55da5deeae8c41c7be9c35b1840834454d9fc18db789c5e696e66245c77fb910913465f6bfb242d5a3166113d3186ac1cfc61c3f83335b9e6f8a72204c SHA512 b0aa45486fe08563135739ba2fc3572a70f88bdf27eb4765e52fa0d1a7d8aff305c0076606c91d2325c07374310537c8d8f7f28b462e0f9cfebda6a973250e25 DIST find-msvc-tools-0.1.1.crate 30228 BLAKE2B 9f6d84697a0310021a59789a0aebcf5895490e4dd719a2ef820ddf2f225ecd13c814e2c03e8d4de4089a2d1599b469a900c0c1072f9b57dcce9fb8634dcea6b2 SHA512 cc91ce79858db4a6feb3ff0fe24d7b29a523285247116a42b27affacc3f034afc0d458ac8716922f5fec5f23deafd62e875ec899d4ea58531d028535c22e137e +DIST find-msvc-tools-0.1.9.crate 31493 BLAKE2B 4137592addf8b58f4e4c02be537a72b132b38cecc1c263c2569fe40e2cfe4377e7141679f32661f44ed467cf9723343ab13732b3d6f4a2a84c610d0958e7e30b SHA512 729b3c1c1d520dffe5d88fc8b58e47fb7e86dc26e568fc317eea5ca8de0ee953fbafaa20ab34a6bfb43173bab39a90ff6954c11dab8d545e902305dafc8cd3de DIST foreign-types-0.3.2.crate 7504 BLAKE2B 520818b702d990d296ecd31a8646850202509ccfa18edd0e1b260289619a6c351e758f317ec0824bd76eccb209b6f087057c25f1bd01a47897715013dd834867 SHA512 bf27b8243ed482c202d120383374f19ff09422535e24b9c1aebccc66529bf300ca17b8bbc76d67f98ac092e614497afe3add9dc68aa69c93074df05762f91232 DIST foreign-types-shared-0.1.1.crate 5672 BLAKE2B d2e42e04b6657e7a69fe0bd20c672176629c743e49a55fd007bb30e289710b70045d445ae9cae0eeaa747ee708c90e8abd9b5fc39bad8ec0666befe1b696d4f1 SHA512 bafdb2143e136fb0818e2ffd90b5c862b7181647d6568947d4e4531012bbf7a57b597221ec7056c1b562dfc0c3b5dead26d1a4111ebc15e7863737a873518a4a DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76 DIST indoc-2.0.6.crate 17164 BLAKE2B 1a6cff95bc12ea885ef36b935bf4f1c7870d65be0ff31ffc67dcab904fa80215c1254c1803c5d0c5686252addfad3512e9e1ec79d3edcba026a879f4706926d1 SHA512 e2ea2e5c8226c802bbe0631c1a99d2edd088cbafbf978b2a7b71c7c7f47754c6d4653f466e286441b61cc46def1c7f7a02d4785caab93a61dd785211dba7d1a9 DIST itoa-1.0.15.crate 11231 BLAKE2B 17c261baf95bff2f6cf0dbc33ab78ebbab0cf5dc56aeb7f8977377af868deb5957918f1763c2fe8c080e931489ea89ebcc16b3ebd976eeeb7663ff74989a1071 SHA512 158ca5dd4b04cb12d9292a4df63c72443adaf5aab1bd9aacdb964dc58878d847a64251f84897cb25c34648d4c973b44fef5b4c175d7c04cabc2c13b4631c2e42 +DIST itoa-1.0.18.crate 15935 BLAKE2B 8e41446056ccd94979f6f5a8fe8c48d6c47abaab99a41715cca31816f859b56e0cbacb998f300b62be8b719a6470f8a087f1439b72f2f6662d1cdd3d552ede5b SHA512 8dbad156e2863c28e2b380901a92414ef00e39f1fcdb06d91a0f3fb73108c2f7f36b699ccd93287808c24c29cca7f1783d48d5ca95f2173502963c0abcb2d09c DIST libc-0.2.175.crate 788728 BLAKE2B dfbcc891a6da7d327916883deec54dbcb0ee5e7fda0b805926f06088dbbbef0520a838c07a62ea075d6a5a035994ea8130efbbc88e08b928c13b06bc5cf75bb9 SHA512 02fa1b6e61ecec3b626f3c802b53e7f46c98558f6e8c810b46d7322c2e4825f1be87068942ac81c07a2188356c6e2b6836b0dddd784396e43ab3712a62cd17ea +DIST libc-0.2.186.crate 821883 BLAKE2B ebe7aac5f8937a8064c64a0d4dc72e5fc794080e09b96c6d245bdec0fd9a19d49ab38e25306e22e47564764cf5dcde45855237cffc70230a143eca2626bd5c3c SHA512 6a58e671ec6811dff9a0d7d4db8f37d38bcbca9efff20dad4706190e5cdb77b426567754bcf0ef0f2d0c31d6506401f724f3ca500b9bed57bb8605b1141ed690 DIST memoffset-0.9.1.crate 9032 BLAKE2B 0aab55fe084134bb599c52d77c96400db40949b1013e7037747ada4fcec8dc4a124b6f3755f04b36e057eb2fb4a6bd6f07d6eebcf166f8a71405ef434d802fbf SHA512 3a236c0f481e36973b9f805e454c2efe4dd375e6b4ee406b57145136c70d5fbf4e1183d563ebf3b5fbde7363bbf5f08f0d88e507aae5bda4cc75664ecd0e33aa DIST once_cell-1.21.3.crate 34534 BLAKE2B 3578aaef305cad2fdffdc40c392775a3540bfab3f3aeafd22466d9507bf8346b9fcc200929d48525b051070c0aaa423ecbcaa12868b34dca007991effb224166 SHA512 32a87506c6f4598f3ca2c88556014ef2093d5db9a08602335e847caa537a866492fa74c894e7e1da2e4289a1d3dbffcb90a9e37a4a1453203832f434b8206990 +DIST once_cell-1.21.4.crate 35010 BLAKE2B 9117ed1d478e626b7b7be2e3ff8b68a382b051112c7ca4425367bdae86977671f8b5c576131c82fb437740b6d98b72501f718f4172d39781decac2385e8fbd4d SHA512 af67669b0107f44268ba74c355200cb2ed1aab235a6989a8bc54323eb2c9a45677010f8672e7790edadd4c981e939436e0c3a099d33c06dce9c14fd5ede86155 DIST openssl-0.10.74.crate 285425 BLAKE2B 2d736aa20701a97230f10f4a75b3c3c0cea0a86b52facbb639dfe425ea052a4bd0abf494708ab96aad276000736ab4ce7dd8c47951f01181cd17c6e0be692107 SHA512 02f60bf13826a4225b4c849d7dee33fbb648c173bc32bc2139a50c38fdf5aeb9d5cfb092d86edeb6f281206454ccf2b41cc23c7af74ed976423b933eefe50867 +DIST openssl-0.10.78.crate 292622 BLAKE2B 17ec5a5efd1fa997a8179bb107912c62c47ea901d93df1c8c0c63e548427a01e57d79c23f0d4a7d614f0d2059c6c07097a4047aa91dfbc4d224c942615eb3587 SHA512 fc27483ebf36daf4b97a43aab2b347255a35e03268c4424df133c714da41a415025be7e6d12579590ab03d237eebaacf89c056d722a66591a7e77c1f45297b4d +DIST openssl-0.10.79.crate 307119 BLAKE2B c282a190830e6970bf4617d0a41cb12db34625c827c19ac02575635c2ff375ca2fc1ca5d2206a296af733c1fd5c5d4e962325820a3dd643e8913145385c9026b SHA512 da9b6025324499bef777f8a7caa3705e3857ddf0aa80c659da5adcc6b6518e8734ccdbe10410a578003bde1dec2006e8d7b84224d635d03003f4a91f2e71406d DIST openssl-macros-0.1.1.crate 5601 BLAKE2B 69dc1c1f3b7bc4f934cae0dce64c3efa501162e5279efd6af3b74f7a7716c04b6996b306b310f1c045cfa2eff2895314a47ecbb020a817e461c6d77d0bc11e92 SHA512 57e75c84f78fb83f884eeaedb0dd135ecb40192dad2facd908e6a575c9b65b38a2c93bca4630e09ea5a82c77d8bc8364cb2f5778cbfe9d8f484cafe3346b883c DIST openssl-sys-0.9.110.crate 80412 BLAKE2B c59794f0b31013231829db4c9b495a5083b4adcaed5779b4ee013bafe4667fdcee12ef7e2a0c30d4abbe340ef036dbf8c40a41e8293231d7f4137c9bc7bfa820 SHA512 8e43f0cc67ebb084c18df410322df75bc384adfcf8fcafe2b0febcd6ee47a1825037db880012c7076c7b11153a101d6d0006437ba0d53a7182f1bcdf51af8d65 +DIST openssl-sys-0.9.114.crate 75617 BLAKE2B f4c313dae993116f249d27d9b161263e8ed770ea8ba0446738aa9fcb2f94d2aebb069f6a713f94ed64e99350f3241b095ef6f433b0e4f75cc3de2b0916d04a75 SHA512 a1404b613d77b039fee2e2195867f8db75520aaa558d125c99f1a6694e513e15454914dd8ab84ab1ef4ab729afd53eac8ddf5f3c42d152f758faa1d0c1fbd258 +DIST openssl-sys-0.9.115.crate 75821 BLAKE2B 56de1b3874f67e0e5771d7b0227246a143ef862301769086dc10bece0b772cc08bf3f6169462b01bf9b90c5691ddd406531cb48104fe4619bbe8f1d19d9fa271 SHA512 2a5c46d20f8d194e92785311f3866cca4ccf8b0e1b665afd49768f230eee76e1e00f04415b4b2f2b8f449dbf9f11a62b56cb639dfdc1d4783ee8bb256864dd05 DIST pem-3.0.5.crate 18140 BLAKE2B 1a19acf6c5d4dafb4411688d87b668d2ea1abe8f561dc2d5de8894066c06e32c5c1392d0e6963d07bab27368a1b39a4f0520485500a1312e2ae43b5c0959ab16 SHA512 09b4a75bda0df6153799e56cdf175d88b7c88b49fda3e19fffba5aa821e433bf3bc9f254f5016131d3dd2d3146c3f6b73e71e04b81ac7d52b581c638cd60d0ff +DIST pem-3.0.6.crate 18362 BLAKE2B 0cdd4855872e51d70bf6f3031a28ed9580c0fbad3ec7680938f121753e637f925a57ccb67ed5b85f3c0dff8b4c1fe936aa3ab4b4067ab9a3a3dd17dec02680cd SHA512 4d485bc3a14d7480b6fd0627869d4093124f173a3aeaeaff4ed69a37ba50a8327e6e9325a92d1a5c8ef337b7ca812de2e74ac786eaa94a644de8daf15619de15 DIST pkg-config-0.3.32.crate 21370 BLAKE2B 74ded191f066bc223739b3d4afec58f23de57566e7604e3dd62001d9a095a7b6a3633fdb01fdc46960c8134a694d6bf097d9ecec62b38c4f14acafbbabd6e893 SHA512 59569110185fa665f76a13e884a67ad1578c55246abacfc18cb9f037b2d2d9ec3f2078a3adfe5cc82a451892c9ad55f918ee01362a741f57dc9ff6846a4e32e5 +DIST pkg-config-0.3.33.crate 21590 BLAKE2B 576349a975cd4b9ff08c7f797f300cb2774425c72ed7baced19e0ba6231246f4479939c61bcc9efeb9174a2d6917bf009f02e93c26800c65e798b9e51ccf4d8b SHA512 af931d889e72f51e0ae41c880a1f5aa6215b93148cf7041378664e4ba013d0c83d654e560a73c9d7b301b5a008c221e48ac81b413d1123786e003c97f7fff63a DIST portable-atomic-1.11.1.crate 185506 BLAKE2B 953bb1f2059dc1d891305eb89945f1f6a172fa50972725aee499de72b5dd9b4ad8ccefe4e891183ff8e6b64f4d1bb45ec33b06e0f5af34c940f817b290f746d9 SHA512 4c037ae0b4aef43077bdbf803389bc078d963f20d023e2e1d339a54f67fa9b27c174e7c1b6eca8881ecf301e30c431632d2c0dcedfb5b19552892fac0f81e2e1 +DIST portable-atomic-1.13.1.crate 197001 BLAKE2B 6d0898c2a537a9bf204b7749cca5f5fddf280772b56eb7ce8fdd9cf7d71561137b26ef89f415c40277a1c89981333eef78e5bb4624515a294ba28fdaeb4c70ea SHA512 2a1b31ac9814af884640b3398ab824a9795c72d260527a0966b193113808cfbb3345d50cd1beaebb45863437c3d06c8706d34b26efecceefc649319a4bc274a3 DIST proc-macro2-1.0.101.crate 53886 BLAKE2B db566c4fb6a197e0aa45cc074310853eaa24ceeafe9fb91f2014ba47cf6b1cbc34e4e9391456c946587540c8e270e1a37f5195cf03bd15ea5d4f171bba9772db SHA512 3171c807d24371da2931f9c706fb3129bb9bf3ac40418e5d14cfc372baf96e5fee9ede72091163858e3ba0b4f88594efa1031b0bb7128ca68e7b847dead6856c +DIST proc-macro2-1.0.106.crate 59765 BLAKE2B 87f95795621c4c992c370dc3a1240a2d5580e3362356525efe640f8f26ad0492b3c88755d575c080ff7db11376b0d82f31141bf6f86c895249b85e46c081220f SHA512 b726e2c92af434bfa88cd4f53c3fe6db647503567675fb439890dee3d15f5111137e3242b28d164114ce081c10acf3fd11950753ddb349190c87ee04e7d97744 DIST pyo3-0.26.0.crate 1151579 BLAKE2B bcc8236785502928bf4a0b7a320e0a8f3d6140c562de4351a52d015aaebb8dd6b4d68fe607c8ea13ec66941c8f01d2c18c4249adfacb521355d4bf158667f3a3 SHA512 e073a4d893f88aa0301ef0ead78048137515edd93c490e6dccbc301ff65a208534c65c1d216b04639d4b1ec1e4b69bc87bd34974e5d0659134c28dcce589c194 +DIST pyo3-0.28.3.crate 1204476 BLAKE2B 8540a1c51bac4fbe04ea34d5ce38471c13d5a3f0759e60cf21d67e846b00feb8316e70f32cb8dc6b74d09f0901ffc83d5f41b1a06da6d34790ef13e4cefcad45 SHA512 f955957eec4b95cc9337d331bba3bba52b4754b301cf86cd974601e64eb20c2424023b19be89a224661fe2e185de646cd3d0d00705b6b5cbd139856c9443a247 DIST pyo3-build-config-0.26.0.crate 34309 BLAKE2B 5ea8b51da2f425674cd3bfcc1090ffdd08da01d2161dc66b08995c20cc859422f9f84077c545e5a0580182910aeb9dbba97838915148a82b86948d1cca3c8722 SHA512 a982d0a0baa4af58c2cef7c0c4b2671e3f559ca7f30586eda9fbd05e842efa2bfea0089ddbc729225b848871f6a25f85e86576e1dff519192ba289cd92c6aa8b +DIST pyo3-build-config-0.28.3.crate 35961 BLAKE2B 61a0101913c6d563721049ca99256c2aefd89b017a7e18c82f4a6aceca0aefeaa71fd559cd43adfb5034ce076c904e5188f8f73961ea217287fbfd12caab9401 SHA512 78f85696901b16540d42187d10e888bd929b9f23415faeb73f9798abda1af3506a308145dd4113b070521271c72624d7930fb4b19bad25aa1afd3082030c9126 DIST pyo3-ffi-0.26.0.crate 78247 BLAKE2B 65f1c399bc763bf8afc36ccac27d28242ebcccebd08ab8d9b3165ca5c9abb10f76e76fe5a250aa1e0cdc1d1e8a613160660f07bc0dbc2812675acb9dfc8e89c2 SHA512 91c2ae828e997dee5e48d839794727e94576228e9329c358a3bc77a59f8f37fa0ae6c2579229782b3f46ab90725844ce9194b9de4d3849d824adf1d40743bf7e +DIST pyo3-ffi-0.28.3.crate 80881 BLAKE2B 4ac7066c911e2aec18aa9245efed00585d063f81d69910e6a146f8efbf2939ab5de519bbf2a3dde78b40c264e97c62490db80e9b2e84aaf080d63659a6676459 SHA512 ec49b5cc67d19f46c9daea76b37b4988af0f63b9ed67c71190f015a0aa9691d4a8ffd4128413de430928428e1e8e26d44c3103f561e6b71b7e8c4597ab602d9f DIST pyo3-macros-0.26.0.crate 8906 BLAKE2B 60eef72d27b5bc922b75f71ae24bb6f380288cb3a619bf2940b0de47b27e86cce0ffdb1fbdc9c0540d3f15c9df4884497aa1e6efec0f1579ac722b414818a428 SHA512 07bcddba0926c3dff7629da3260f9a38593fbb337b6a68d55c223f5944d912885e5319cd635ae1785026fed4adea1fcc19695ae83aca5bea127c5a8868fd2c43 +DIST pyo3-macros-0.28.3.crate 8963 BLAKE2B ca9967cfba565b873ed77565ff6eb8408473c227d191797e9db8c6b5cbc89abc17ffd57ae71e28877088fe19373da2f503cdefeae6b0a47796f6abcf62044f08 SHA512 57d178bd9b53dd98916e60c89bc26c34f9949829dc17bf7d6cc15b704bba7c874d85d6bd3c827d401268660a79230a6e32711048da939ec4e22342f3e08046d1 DIST pyo3-macros-backend-0.26.0.crate 81809 BLAKE2B 73885035855daf00b001e97e0a5ebe09412d212c8f01aa4db6638ef09990bf1bccbacf2e5a7e6ec21929bb1c2beba06587ecdb6ee954eda9e9c51c6c276cea95 SHA512 4146011a8ef18ecaa44b425eebe6e5e1370945063b98aaa83452e57b66aefbf5d483367b1d4d44aa5091303c4ba7f568c6428ecec0cfa6c90ba41631d4e99367 +DIST pyo3-macros-backend-0.28.3.crate 88063 BLAKE2B a484b12bbab3031838f61149ab9f08b9e460a2bd02089e08e58dac2cb747afbc0cdfe64018ed4c8cb0bbbd1d22e3eb05a6a72b020da6b71a584ec51ca8d24292 SHA512 45ce31ed64ee4fd0249736d480c9840a756bc45934d6803ae11e0680057ecf4cc74c71b47ccf9241fc3ab5c1e0b9c758426f08bd523d1ace92fc308302ea3c84 DIST quote-1.0.40.crate 31063 BLAKE2B 09036ff3e5ebbd775c466bb936de91d4c070481eb4b98c62a4cddcda57cd7b67d63f979b321f6ec64aabee3f5da6c28e7a3efb83f4647768ba578f1bd0bd0bdb SHA512 45a76e22a2b0bec47e4ba73c3b73cc41d821dfcce9876134c5d8eed514da214aee4ce7612e372c8709f888c0d8b9b7e5442f27adb7a59f3571f0339ed7e2ac99 +DIST quote-1.0.45.crate 31564 BLAKE2B 1b2c2c3e6ebabfe10affa4c43ca0bfd1f52d8fd49e1df463e13e63a82de41272089c8e09e4c02e8a33cfee768ace26d4d42a50752de8fb5a776c59806139ad5d SHA512 df96ede01ebd0ed642b758bf1d0862d0e116fc2b3343e14edb657ce5438ccabe743dec4a0a40de4dee98c134d169af9aba459faadf9c7a832b26377e755d49b0 DIST self_cell-1.2.0.crate 16883 BLAKE2B 56bd187fabc138c530aa23dfc69a330a7d0a8f86609801924fd1f4b0cefc43a99a8ba21d05e59272c9d32b83405b4c980df4f01e529772b760a9564dd8eb0c0a SHA512 41addc9b737d0379c0236b1821d6051d31dca6a76f463e6e56c3bac9015da4243f9fedc3d57e051f68f6f0aa610383a0b2cade07b1ea17e92173e2088a625af0 +DIST self_cell-1.2.2.crate 23264 BLAKE2B dd4208f060b09e673178d0c66ba98670187d613fd903254d17e711ed2538c4ce6cdca7c0d65482a163ed2c91c8aa9b19d7f29df025b9964d69ba0fab3a6c7d6d SHA512 b47fb19bc623b5d670c21a2b1c32dd298934e295cc5b965b2b244ff4a076a7de4c652e4d820db32e68301b4124334ebd25837b55c610b75dc60bdd95a6ef9420 DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a DIST syn-2.0.106.crate 301514 BLAKE2B 6b28b30ee067c23dc4bd1b38365d14c1700245c974e785173965b0822301966d642b36bdda25210d61f17a99fc71eb81e29a56c89d1649773908bae32778fb1f SHA512 e07e1058770fa3f1039eaf335340cefb597c0dd11bb90fec9fa777ca5815d0e0bb1711bb4db52cac77e205dd68fbe2bce0e1aa9895c2a52a1ea6d7758d13424c +DIST syn-2.0.117.crate 306011 BLAKE2B bbaec02c4322f522bdfc87caa4ce6fd1e09bbf8f4a102d9ed8728efacdd843a2750f616dce5b2d3a3e46bbb7d57439fbd10e328bc1d4a01e980986cd815798af SHA512 035c2e63542592b6a4058a2a82d4c2c1f5793f84fb1b04cbd393337a26fcf661a1f3bea439ce98a1fe943b1c4d36d2bda16df3bbc3fa6ca35e1548d530dc8416 DIST target-lexicon-0.13.3.crate 28498 BLAKE2B 397315667737abde41949081f8377f704c3a1105790162249a9f0c08b60f012e67d66550e9063d900ac98f5191d13c5ed23d1a8045f99373e7a673a3cfc029e7 SHA512 23422df6edb2a8cb0a9f048864faf76ccb27d6e97fbed7b208b77206941b196f155896a0381150e387142e976439a0a296dcf4cbb4df6bc0e11c65f97f979443 +DIST target-lexicon-0.13.5.crate 26928 BLAKE2B f8c62cb91f68a635e6ce3fc254df9ce378b5e8f62c1147404c967484b9ed97fb33d7993b4671611db76566063e999d658d201f856f70196ec678d72cc758cf6d SHA512 956df27c01e1186c5356117ffd07810fc0b62fb919d5bfd215955ba85be00ef675212a3c0dc36679986be7b825442fec5c93c7643b7e1e19c04572e6463546fc DIST unicode-ident-1.0.19.crate 47480 BLAKE2B d1b9d26833fcd1f3a8498abe2f4ba4202e4547315e48aa927c0f6e4a760c6c7000ff0c18d0cf45af362323c42843d745958c1b0419835f39e13dbc1559487026 SHA512 b17fcf6bffdb4745e0b1bf4983a0dcc4c84f8b4e2c2c618eefbbeae83f94ec75df87b55f9e2dede8c3b4c6e22107fcfc589475c0cbc2c58dfb8630db8d362183 +DIST unicode-ident-1.0.24.crate 49298 BLAKE2B 34ba2906a3ebc06f52a4ba77dff96a8f3fb977718d260886fa9e051c5830765641b65a63977110f3a79f31fa177b385f81b01d56c80f6a0324d36eae72e2ebf0 SHA512 7be712d8d0075ac9341790180e312f66264d3e0255c91b38df0951baa5e446dec24551bb2125a66a1cb9b6ca2f1ea37c0cc15fa3dd74f398ecf4d5302c7dc259 DIST unindent-0.2.4.crate 7422 BLAKE2B 2e7870cd4f78240dbb1e5fb9c0f9b55c57bb40242fe668f105a0e862f1d6300e31efbffe0cdff676a5f96a8d19dfb148f88bfef1cd8a710556d777fd0f4ee37f SHA512 58bd4fd20a0b0a7200e0ea3ea70553cea135a5a8f7a2fb178520c41228f435becce4b9981019b7c73a17df87a2ee9b2a47c4cec29a3011bfe848d48b2473761b DIST vcpkg-0.2.15.crate 228735 BLAKE2B 6b6bacd9a7fa38919241f45a97f58cae957e58d3aac99df208a26aa718e4f1644f4ccefa31b09151e5c1952288e0e5837c363918b98c7f55079a948a952c1c50 SHA512 7322a21e8811b2fe4e79e09dc321458068ecdf1953f05d36233f3278ecc0b1dfc64194db7010dd46fcf692285f42475beb090c6c6cac0c8f9fe0eb5c770e3172 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-46.0.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-46.0.7.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-46.0.5.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-46.0.7.ebuild diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-47.0.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-47.0.0.ebuild new file mode 100644 index 00000000000..5692d2fd2f9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-47.0.0.ebuild @@ -0,0 +1,139 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=maturin +PYPI_VERIFY_REPO=https://github.com/pyca/cryptography +PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) +PYTHON_REQ_USE="threads(+)" + +CARGO_OPTIONAL=yes +RUST_MIN_VER="1.83.0" +CRATES=" + asn1@0.24.1 + asn1_derive@0.24.1 + base64@0.22.1 + bitflags@2.11.1 + cc@1.2.60 + cfg-if@1.0.4 + find-msvc-tools@0.1.9 + foreign-types-shared@0.1.1 + foreign-types@0.3.2 + heck@0.5.0 + itoa@1.0.18 + libc@0.2.186 + once_cell@1.21.4 + openssl-macros@0.1.1 + openssl-sys@0.9.114 + openssl@0.10.78 + pem@3.0.6 + pkg-config@0.3.33 + portable-atomic@1.13.1 + proc-macro2@1.0.106 + pyo3-build-config@0.28.3 + pyo3-ffi@0.28.3 + pyo3-macros-backend@0.28.3 + pyo3-macros@0.28.3 + pyo3@0.28.3 + quote@1.0.45 + self_cell@1.2.2 + shlex@1.3.0 + syn@2.0.117 + target-lexicon@0.13.5 + unicode-ident@1.0.24 + vcpkg@0.2.15 +" + +inherit cargo distutils-r1 flag-o-matic pypi + +VEC_P=cryptography_vectors-$(ver_cut 1-3) +DESCRIPTION="Library providing cryptographic recipes and primitives" +HOMEPAGE=" + https://github.com/pyca/cryptography/ + https://pypi.org/project/cryptography/ +" +SRC_URI+=" + ${CARGO_CRATE_URIS} + test? ( + $(pypi_sdist_url cryptography_vectors "$(ver_cut 1-3)") + $(pypi_provenance_url "${VEC_P}.tar.gz" cryptography_vectors "$(ver_cut 1-3)") + -> ${VEC_P}.tar.gz.provenance + ) +" + +LICENSE="|| ( Apache-2.0 BSD ) PSF-2" +# Dependent crate licenses +LICENSE+=" + Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-3.0 +" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + >=dev-libs/openssl-1.0.2o-r6:0= + $(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() { + if use verify-provenance; then + pypi_verify_provenance "${DISTDIR}/${P}.tar.gz"{,.provenance} + use test && pypi_verify_provenance "${DISTDIR}/${VEC_P}.tar.gz"{,.provenance} + fi + + cargo_src_unpack +} + +src_prepare() { + distutils-r1_src_prepare + + sed -i -e 's:--benchmark-disable::' pyproject.toml || die + + # work around availability macros not supported in GCC (yet) + if [[ ${CHOST} == *-darwin* ]] ; then + local darwinok=0 + if [[ ${CHOST##*-darwin} -ge 16 ]] ; then + darwinok=1 + fi + sed -i -e 's/__builtin_available(macOS 10\.12, \*)/'"${darwinok}"'/' \ + src/_cffi_src/openssl/src/osrandom_engine.c || die + fi +} + +python_configure_all() { + filter-lto # bug #903908 +} + +python_test() { + local -x PYTHONPATH="${PYTHONPATH}:${WORKDIR}/${VEC_P}" + local EPYTEST_IGNORE=( + tests/bench + ) + epytest +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-48.0.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-48.0.0.ebuild new file mode 100644 index 00000000000..8e5d7f3fe67 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-48.0.0.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=maturin +PYPI_VERIFY_REPO=https://github.com/pyca/cryptography +PYTHON_COMPAT=( python3_{11..15} pypy3_11 ) +PYTHON_REQ_USE="threads(+)" + +CARGO_OPTIONAL=yes +RUST_MIN_VER="1.83.0" +CRATES=" + asn1@0.24.1 + asn1_derive@0.24.1 + base64@0.22.1 + bitflags@2.11.1 + cc@1.2.61 + cfg-if@1.0.4 + find-msvc-tools@0.1.9 + foreign-types-shared@0.1.1 + foreign-types@0.3.2 + heck@0.5.0 + itoa@1.0.18 + libc@0.2.186 + once_cell@1.21.4 + openssl-macros@0.1.1 + openssl-sys@0.9.115 + openssl@0.10.79 + pem@3.0.6 + pkg-config@0.3.33 + portable-atomic@1.13.1 + proc-macro2@1.0.106 + pyo3-build-config@0.28.3 + pyo3-ffi@0.28.3 + pyo3-macros-backend@0.28.3 + pyo3-macros@0.28.3 + pyo3@0.28.3 + quote@1.0.45 + self_cell@1.2.2 + shlex@1.3.0 + syn@2.0.117 + target-lexicon@0.13.5 + unicode-ident@1.0.24 + vcpkg@0.2.15 +" + +inherit cargo distutils-r1 flag-o-matic pypi + +VEC_P=cryptography_vectors-$(ver_cut 1-3) +DESCRIPTION="Library providing cryptographic recipes and primitives" +HOMEPAGE=" + https://github.com/pyca/cryptography/ + https://pypi.org/project/cryptography/ +" +SRC_URI+=" + ${CARGO_CRATE_URIS} + test? ( + $(pypi_sdist_url cryptography_vectors "$(ver_cut 1-3)") + $(pypi_provenance_url "${VEC_P}.tar.gz" cryptography_vectors "$(ver_cut 1-3)") + -> ${VEC_P}.tar.gz.provenance + ) +" + +LICENSE="|| ( Apache-2.0 BSD ) PSF-2" +# Dependent crate licenses +LICENSE+=" + Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-3.0 +" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + >=dev-libs/openssl-1.0.2o-r6:0= + $(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 ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_unpack() { + if use verify-provenance; then + pypi_verify_provenance "${DISTDIR}/${P}.tar.gz"{,.provenance} + use test && pypi_verify_provenance "${DISTDIR}/${VEC_P}.tar.gz"{,.provenance} + fi + + cargo_src_unpack +} + +src_prepare() { + distutils-r1_src_prepare + + sed -i -e 's:--benchmark-disable::' pyproject.toml || die + + # work around availability macros not supported in GCC (yet) + if [[ ${CHOST} == *-darwin* ]] ; then + local darwinok=0 + if [[ ${CHOST##*-darwin} -ge 16 ]] ; then + darwinok=1 + fi + sed -i -e 's/__builtin_available(macOS 10\.12, \*)/'"${darwinok}"'/' \ + src/_cffi_src/openssl/src/osrandom_engine.c || die + fi +} + +python_configure_all() { + filter-lto # bug #903908 +} + +python_test() { + local -x PYTHONPATH="${PYTHONPATH}:${WORKDIR}/${VEC_P}" + local EPYTEST_IGNORE=( + tests/bench + ) + local EPYTEST_DESELECT=( + # OOMs depending on overcommit setting and available memory + tests/hazmat/primitives/test_argon2.py::TestArgon2::test_argon2_malloc_failure + ) + + epytest +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/cython/Manifest index 1c7d694c2ca..33395c6df4f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/Manifest @@ -1,5 +1,2 @@ -DIST cython-3.1.4.tar.gz 3190778 BLAKE2B 7e554db21ba009dc70157ad03b414091f9bba15586c5fa842b23cc28c116dc153857e99c9981dd0f783f696b6afa3b2689424231b88ae89bcf9233fa8006b9c9 SHA512 dd524d7de59f949a8bac1cb944a7a2b4eb26b13107db4fd6f9af000d5af18dd08ac5768253721e3513f5b4c1593fdd8cf055f4ffc17d541b2b90ca461522e8f1 -DIST cython-3.1.7.tar.gz 3192740 BLAKE2B ed0d15e387389de3e2b35d03326032a0ca112b24b0245ed764e5acbedcc0df07f50561ef18715679bf29fd2da6a288621033722741b2fc25809b43964e856786 SHA512 0d1ab6b0d53168588ea03116a5a2f4106f87266bca0fc46ec9ebc7c881da7ee2a83d9d7d841b551add73aedab7b2ca94419e87f6a387b1ab7ba850030a981fb1 -DIST cython-3.1.8.tar.gz 3193040 BLAKE2B 7cd6c2b196d4a6a69d11b4bc68daf8abe77606f306579a3a2287adc69797472a88ceaa0b5d84f5bbf8675c70fe407c86be03537cdcb94b097e95d47deae906f3 SHA512 6d1816c169d5d1113a76dbc29ba8f236588479fcd9f56be4883d51260bc5d010143a59f8f148cbf59e09370927fb946eee92b40022cbc5b67146d4bdad2726e9 -DIST cython-3.2.3.tar.gz 3276650 BLAKE2B 4f527760e1c658d0ace5b5f268e6cc73f823f3703830bf8a458f6bcd2a488eaa0d869c02358d2ec3d469b34de4f3b9b7a1c415f159dca22197c3fcb8d732856f SHA512 00bf2244da9c544fd3ea110cd1ab2aeadeb7e1df16fff4fdc926b90759c75f312c11171513d55dad6b5489f77c7c462905b789242641d6d6807b172db1a57b87 DIST cython-3.2.4.tar.gz 3280291 BLAKE2B f6f4baf07426ba46757a7b12ec05dd6781088e30d402d39dbe7e7e43b711ec11b9ecefd8bdca8e4c6a2920bc1c670e348328dc53ea074879b5e4e87159905d65 SHA512 bea1b21227632aa6d01239779e584e06d462ef76ae284abb36c0a70074260bd4909ee69d94db4e8c8fc9416d6949c3b53411844531a86cdbca75881b97f5d84b +DIST cython-3.2.5.tar.gz 3286381 BLAKE2B c3627213a2e62838b3aae120e0ab9cc33bb8f95a6c4ec9e10c6dc3e3ed00626b93bf3df3265ca601c4379c50598bec14b72de9bee9f8e8c96d125a175775086f SHA512 d11feb71bf2dbbbdffcac3e71e28eaa4d2583431f24e1722df4c0ab3fc33afc763ba4468e3bc7b8620b6d486357b8aa85dee248a195570329648c6b84312657a diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.4.ebuild deleted file mode 100644 index 438ec2a0f49..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.4.ebuild +++ /dev/null @@ -1,128 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_FULLY_TESTED=( python3_{11..14} ) -PYTHON_TESTED=( "${PYTHON_FULLY_TESTED[@]}" pypy3_11 ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) -PYTHON_REQ_USE="threads(+)" - -inherit distutils-r1 multiprocessing pypi toolchain-funcs - -DESCRIPTION="A Python to C compiler" -HOMEPAGE=" - https://cython.org/ - https://github.com/cython/cython/ - https://pypi.org/project/Cython/ -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="test test-full" -RESTRICT="!test? ( test )" - -BDEPEND=" - ${RDEPEND} - test? ( - test-full? ( - $(python_gen_cond_dep ' - dev-python/numpy[${PYTHON_USEDEP}] - ' "${PYTHON_FULLY_TESTED[@]}") - ) - ) -" - -PATCHES=( - "${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch" -) - -distutils_enable_sphinx docs \ - dev-python/jinja2 \ - dev-python/sphinx-issues \ - dev-python/sphinx-tabs - -python_compile() { - # Python gets confused when it is in sys.path before build. - local -x PYTHONPATH= - - if use elibc_musl ; then - # Workaround for bug #925318 - local -x LDFLAGS="${LDFLAGS} -Wl,-z,stack-size=2097152" - fi - - distutils-r1_python_compile -} - -python_test() { - # PYTHON_TESTED controls whether we expect the testsuite to - # pass at all, while PYTHON_FULLY_TESTED allows skipping before - # numpy is ported (and possibly other deps in future). - if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then - einfo "Skipping tests on ${EPYTHON} (xfail)" - return - fi - - # Needed to avoid confusing cache tests - unset CYTHON_FORCE_REGEN - - tc-export CC - - local testargs=( - -vv - -j "$(makeopts_jobs)" - --work-dir "${BUILD_DIR}"/tests - - --no-examples - --no-code-style - - # Fails to find embedded.c - --exclude 'embedded' - # coverage_installed_pkg needs dev-python/pip and doesn't like - # 'externally-managed' (bug #927995), but we don't really - # want automagic test dependencies at all, so just skip - # unimportant-for-us coverage tests entirely. - --exclude 'run.coverage*' - --exclude 'Cython.Coverage' - # Automagic on dev-python/python-tests, could add this in future - --exclude 'run.test_exceptions' - # TODO: Unpackaged dev-python/interpreters-pep-734 (interpreters_backport) - # This only shows up as a failure with >=3.13. - --exclude 'subinterpreters_threading_stress_test' - - # The fix for https://github.com/cython/cython/issues/6938 - # changes these tests s.t. they break with our build layout. - --exclude 'build.depfile*' - ) - - if [[ ${EPYTHON} == pypy3* ]] ; then - testargs+=( - # Recursion issue - --exclude 'run.if_else_expr' - --exclude 'run.test_patma*' - # Slight output difference (missing '<') - --exclude 'run.cpp_exception_ptr_just_handler' - - ) - fi - - # Keep test-full for numpy as it's large and doesn't pass tests itself - # on niche arches. - if ! use test-full || ! has "${EPYTHON/./_}" "${PYTHON_FULLY_TESTED[@]}"; then - testargs+=( - --exclude 'run.numpy*' - --exclude 'run.ufunc' - --exclude 'numpy*' - ) - fi - - "${PYTHON}" runtests.py "${testargs[@]}" || die "Tests fail with ${EPYTHON}" -} - -python_install_all() { - local DOCS=( CHANGES.rst README.rst ToDo.txt USAGE.txt ) - distutils-r1_python_install_all -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.7.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.7.ebuild deleted file mode 100644 index 5b79d143300..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.7.ebuild +++ /dev/null @@ -1,132 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_FULLY_TESTED=( python3_{11..14} ) -PYTHON_TESTED=( "${PYTHON_FULLY_TESTED[@]}" pypy3_11 ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) -PYTHON_REQ_USE="threads(+)" - -inherit distutils-r1 multiprocessing pypi toolchain-funcs - -DESCRIPTION="A Python to C compiler" -HOMEPAGE=" - https://cython.org/ - https://github.com/cython/cython/ - https://pypi.org/project/Cython/ -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="test test-full" -RESTRICT="!test? ( test )" - -BDEPEND=" - ${RDEPEND} - test? ( - test-full? ( - $(python_gen_cond_dep ' - dev-python/numpy[${PYTHON_USEDEP}] - ' "${PYTHON_FULLY_TESTED[@]}") - ) - ) -" - -PATCHES=( - "${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch" -) - -distutils_enable_sphinx docs \ - dev-python/jinja2 \ - dev-python/sphinx-issues \ - dev-python/sphinx-tabs - -python_compile() { - # Python gets confused when it is in sys.path before build. - local -x PYTHONPATH= - - if use elibc_musl ; then - # Workaround for bug #925318 - local -x LDFLAGS="${LDFLAGS} -Wl,-z,stack-size=2097152" - fi - - distutils-r1_python_compile -} - -python_test() { - # PYTHON_TESTED controls whether we expect the testsuite to - # pass at all, while PYTHON_FULLY_TESTED allows skipping before - # numpy is ported (and possibly other deps in future). - if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then - einfo "Skipping tests on ${EPYTHON} (xfail)" - return - fi - - # Needed to avoid confusing cache tests - unset CYTHON_FORCE_REGEN - - # uses $(nproc) to additionally parallelize many OpenMP-based jobs, - # leading to overcommitting - local -x OMP_NUM_THREADS=1 - - tc-export CC - - local testargs=( - -vv - -j "$(makeopts_jobs)" - --work-dir "${BUILD_DIR}"/tests - - --no-examples - --no-code-style - - # Fails to find embedded.c - --exclude 'embedded' - # coverage_installed_pkg needs dev-python/pip and doesn't like - # 'externally-managed' (bug #927995), but we don't really - # want automagic test dependencies at all, so just skip - # unimportant-for-us coverage tests entirely. - --exclude 'run.coverage*' - --exclude 'Cython.Coverage' - # Automagic on dev-python/python-tests, could add this in future - --exclude 'run.test_exceptions' - # TODO: Unpackaged dev-python/interpreters-pep-734 (interpreters_backport) - # This only shows up as a failure with >=3.13. - --exclude 'subinterpreters_threading_stress_test' - - # The fix for https://github.com/cython/cython/issues/6938 - # changes these tests s.t. they break with our build layout. - --exclude 'build.depfile*' - ) - - if [[ ${EPYTHON} == pypy3* ]] ; then - testargs+=( - # Recursion issue - --exclude 'run.if_else_expr' - --exclude 'run.test_patma*' - # Slight output difference (missing '<') - --exclude 'run.cpp_exception_ptr_just_handler' - - ) - fi - - # Keep test-full for numpy as it's large and doesn't pass tests itself - # on niche arches. - if ! use test-full || ! has "${EPYTHON/./_}" "${PYTHON_FULLY_TESTED[@]}"; then - testargs+=( - --exclude 'run.numpy*' - --exclude 'run.ufunc' - --exclude 'numpy*' - ) - fi - - "${PYTHON}" runtests.py "${testargs[@]}" || die "Tests fail with ${EPYTHON}" -} - -python_install_all() { - local DOCS=( CHANGES.rst README.rst ToDo.txt USAGE.txt ) - distutils-r1_python_install_all -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.8.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.8.ebuild deleted file mode 100644 index cea99bf4105..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.8.ebuild +++ /dev/null @@ -1,132 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_FULLY_TESTED=( python3_{11..14} ) -PYTHON_TESTED=( "${PYTHON_FULLY_TESTED[@]}" pypy3_11 ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) -PYTHON_REQ_USE="threads(+)" - -inherit distutils-r1 multiprocessing pypi toolchain-funcs - -DESCRIPTION="A Python to C compiler" -HOMEPAGE=" - https://cython.org/ - https://github.com/cython/cython/ - https://pypi.org/project/Cython/ -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="test test-full" -RESTRICT="!test? ( test )" - -BDEPEND=" - ${RDEPEND} - test? ( - test-full? ( - $(python_gen_cond_dep ' - dev-python/numpy[${PYTHON_USEDEP}] - ' "${PYTHON_FULLY_TESTED[@]}") - ) - ) -" - -PATCHES=( - "${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch" -) - -distutils_enable_sphinx docs \ - dev-python/jinja2 \ - dev-python/sphinx-issues \ - dev-python/sphinx-tabs - -python_compile() { - # Python gets confused when it is in sys.path before build. - local -x PYTHONPATH= - - if use elibc_musl ; then - # Workaround for bug #925318 - local -x LDFLAGS="${LDFLAGS} -Wl,-z,stack-size=2097152" - fi - - distutils-r1_python_compile -} - -python_test() { - # PYTHON_TESTED controls whether we expect the testsuite to - # pass at all, while PYTHON_FULLY_TESTED allows skipping before - # numpy is ported (and possibly other deps in future). - if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then - einfo "Skipping tests on ${EPYTHON} (xfail)" - return - fi - - # Needed to avoid confusing cache tests - unset CYTHON_FORCE_REGEN - - # uses $(nproc) to additionally parallelize many OpenMP-based jobs, - # leading to overcommitting - local -x OMP_NUM_THREADS=1 - - tc-export CC - - local testargs=( - -vv - -j "$(makeopts_jobs)" - --work-dir "${BUILD_DIR}"/tests - - --no-examples - --no-code-style - - # Fails to find embedded.c - --exclude 'embedded' - # coverage_installed_pkg needs dev-python/pip and doesn't like - # 'externally-managed' (bug #927995), but we don't really - # want automagic test dependencies at all, so just skip - # unimportant-for-us coverage tests entirely. - --exclude 'run.coverage*' - --exclude 'Cython.Coverage' - # Automagic on dev-python/python-tests, could add this in future - --exclude 'run.test_exceptions' - # TODO: Unpackaged dev-python/interpreters-pep-734 (interpreters_backport) - # This only shows up as a failure with >=3.13. - --exclude 'subinterpreters_threading_stress_test' - - # The fix for https://github.com/cython/cython/issues/6938 - # changes these tests s.t. they break with our build layout. - --exclude 'build.depfile*' - ) - - if [[ ${EPYTHON} == pypy3* ]] ; then - testargs+=( - # Recursion issue - --exclude 'run.if_else_expr' - --exclude 'run.test_patma*' - # Slight output difference (missing '<') - --exclude 'run.cpp_exception_ptr_just_handler' - - ) - fi - - # Keep test-full for numpy as it's large and doesn't pass tests itself - # on niche arches. - if ! use test-full || ! has "${EPYTHON/./_}" "${PYTHON_FULLY_TESTED[@]}"; then - testargs+=( - --exclude 'run.numpy*' - --exclude 'run.ufunc' - --exclude 'numpy*' - ) - fi - - "${PYTHON}" runtests.py "${testargs[@]}" || die "Tests fail with ${EPYTHON}" -} - -python_install_all() { - local DOCS=( CHANGES.rst README.rst ToDo.txt USAGE.txt ) - distutils-r1_python_install_all -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.2.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.2.3.ebuild deleted file mode 100644 index 1d9399568f5..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.2.3.ebuild +++ /dev/null @@ -1,133 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_FULLY_TESTED=( python3_{11..14} ) -PYTHON_TESTED=( "${PYTHON_FULLY_TESTED[@]}" pypy3_11 ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) -PYTHON_REQ_USE="threads(+)" - -inherit distutils-r1 multiprocessing pypi toolchain-funcs - -DESCRIPTION="A Python to C compiler" -HOMEPAGE=" - https://cython.org/ - https://github.com/cython/cython/ - https://pypi.org/project/Cython/ -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="test test-full" -RESTRICT="!test? ( test )" - -BDEPEND=" - ${RDEPEND} - test? ( - test-full? ( - $(python_gen_cond_dep ' - dev-python/numpy[${PYTHON_USEDEP}] - ' "${PYTHON_FULLY_TESTED[@]}") - ) - ) -" - -PATCHES=( - "${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch" -) - -distutils_enable_sphinx docs \ - dev-python/jinja2 \ - dev-python/sphinx-issues \ - dev-python/sphinx-tabs - -python_compile() { - # Python gets confused when it is in sys.path before build. - local -x PYTHONPATH= - - if use elibc_musl ; then - # Workaround for bug #925318 - local -x LDFLAGS="${LDFLAGS} -Wl,-z,stack-size=2097152" - fi - - distutils-r1_python_compile -} - -python_test() { - # PYTHON_TESTED controls whether we expect the testsuite to - # pass at all, while PYTHON_FULLY_TESTED allows skipping before - # numpy is ported (and possibly other deps in future). - if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then - einfo "Skipping tests on ${EPYTHON} (xfail)" - return - fi - - # Needed to avoid confusing cache tests - unset CYTHON_FORCE_REGEN - - # uses $(nproc) to additionally parallelize many OpenMP-based jobs, - # leading to overcommitting - local -x OMP_NUM_THREADS=1 - - tc-export CC - - local testargs=( - -vv - -j "$(makeopts_jobs)" - --work-dir "${BUILD_DIR}"/tests - - --no-examples - --no-code-style - - # Fails to find embedded.c - --exclude 'embedded' - # coverage_installed_pkg needs dev-python/pip and doesn't like - # 'externally-managed' (bug #927995), but we don't really - # want automagic test dependencies at all, so just skip - # unimportant-for-us coverage tests entirely. - --exclude 'run.coverage*' - --exclude 'Cython.Coverage' - # Automagic on dev-python/python-tests, could add this in future - --exclude 'run.test_exceptions' - # TODO: Unpackaged dev-python/interpreters-pep-734 (interpreters_backport) - # This only shows up as a failure with >=3.13. - --exclude 'subinterpreters_threading_stress_test' - - # The fix for https://github.com/cython/cython/issues/6938 - # changes these tests s.t. they break with our build layout. - --exclude 'build.depfile*' - ) - - if [[ ${EPYTHON} == pypy3* ]] ; then - testargs+=( - # Recursion issue - --exclude 'run.if_else_expr' - --exclude 'run.test_patma*' - # Slight output difference (missing '<') - --exclude 'run.cpp_exception_ptr_just_handler' - # No freethreading here - --exclude 'run.freethreaded_list_indexing_stress_test' - ) - fi - - # Keep test-full for numpy as it's large and doesn't pass tests itself - # on niche arches. - if ! use test-full || ! has "${EPYTHON/./_}" "${PYTHON_FULLY_TESTED[@]}"; then - testargs+=( - --exclude 'run.numpy*' - --exclude 'run.ufunc' - --exclude 'numpy*' - ) - fi - - "${PYTHON}" runtests.py "${testargs[@]}" || die "Tests fail with ${EPYTHON}" -} - -python_install_all() { - local DOCS=( CHANGES.rst README.rst ToDo.txt USAGE.txt ) - distutils-r1_python_install_all -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.2.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.2.4.ebuild index 1d9399568f5..f38944e445c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.2.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.2.4.ebuild @@ -7,7 +7,7 @@ DISTUTILS_EXT=1 DISTUTILS_USE_PEP517=setuptools PYTHON_FULLY_TESTED=( python3_{11..14} ) PYTHON_TESTED=( "${PYTHON_FULLY_TESTED[@]}" pypy3_11 ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_15 python3_{13..15}t ) PYTHON_REQ_USE="threads(+)" inherit distutils-r1 multiprocessing pypi toolchain-funcs @@ -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 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="test test-full" RESTRICT="!test? ( test )" @@ -40,10 +40,12 @@ PATCHES=( "${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch" ) -distutils_enable_sphinx docs \ - dev-python/jinja2 \ - dev-python/sphinx-issues \ - dev-python/sphinx-tabs +# disabled to workaround pkgcheck performance issue +# https://github.com/pkgcore/pkgcheck/issues/782 +#distutils_enable_sphinx docs \ +# dev-python/jinja2 \ +# dev-python/sphinx-issues \ +# dev-python/sphinx-tabs python_compile() { # Python gets confused when it is in sys.path before build. diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.2.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.2.5.ebuild new file mode 100644 index 00000000000..b0678ce89f7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.2.5.ebuild @@ -0,0 +1,135 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_FULLY_TESTED=( python3_{11..14} ) +PYTHON_TESTED=( "${PYTHON_FULLY_TESTED[@]}" pypy3_11 ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_15 python3_{13..15}t ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 multiprocessing pypi toolchain-funcs + +DESCRIPTION="A Python to C compiler" +HOMEPAGE=" + https://cython.org/ + https://github.com/cython/cython/ + https://pypi.org/project/Cython/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="test test-full" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${RDEPEND} + test? ( + test-full? ( + $(python_gen_cond_dep ' + dev-python/numpy[${PYTHON_USEDEP}] + ' "${PYTHON_FULLY_TESTED[@]}") + ) + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch" +) + +# disabled to workaround pkgcheck performance issue +# https://github.com/pkgcore/pkgcheck/issues/782 +#distutils_enable_sphinx docs \ +# dev-python/jinja2 \ +# dev-python/sphinx-issues \ +# dev-python/sphinx-tabs + +python_compile() { + # Python gets confused when it is in sys.path before build. + local -x PYTHONPATH= + + if use elibc_musl ; then + # Workaround for bug #925318 + local -x LDFLAGS="${LDFLAGS} -Wl,-z,stack-size=2097152" + fi + + distutils-r1_python_compile +} + +python_test() { + # PYTHON_TESTED controls whether we expect the testsuite to + # pass at all, while PYTHON_FULLY_TESTED allows skipping before + # numpy is ported (and possibly other deps in future). + if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then + einfo "Skipping tests on ${EPYTHON} (xfail)" + return + fi + + # Needed to avoid confusing cache tests + unset CYTHON_FORCE_REGEN + + # uses $(nproc) to additionally parallelize many OpenMP-based jobs, + # leading to overcommitting + local -x OMP_NUM_THREADS=1 + + tc-export CC + + local testargs=( + -vv + -j "$(makeopts_jobs)" + --work-dir "${BUILD_DIR}"/tests + + --no-examples + --no-code-style + + # Fails to find embedded.c + --exclude 'embedded' + # coverage_installed_pkg needs dev-python/pip and doesn't like + # 'externally-managed' (bug #927995), but we don't really + # want automagic test dependencies at all, so just skip + # unimportant-for-us coverage tests entirely. + --exclude 'run.coverage*' + --exclude 'Cython.Coverage' + # Automagic on dev-python/python-tests, could add this in future + --exclude 'run.test_exceptions' + # TODO: Unpackaged dev-python/interpreters-pep-734 (interpreters_backport) + # This only shows up as a failure with >=3.13. + --exclude 'subinterpreters_threading_stress_test' + + # The fix for https://github.com/cython/cython/issues/6938 + # changes these tests s.t. they break with our build layout. + --exclude 'build.depfile*' + ) + + if [[ ${EPYTHON} == pypy3* ]] ; then + testargs+=( + # Recursion issue + --exclude 'run.if_else_expr' + --exclude 'run.test_patma*' + # Slight output difference (missing '<') + --exclude 'run.cpp_exception_ptr_just_handler' + # No freethreading here + --exclude 'run.freethreaded_list_indexing_stress_test' + ) + fi + + # Keep test-full for numpy as it's large and doesn't pass tests itself + # on niche arches. + if ! use test-full || ! has "${EPYTHON/./_}" "${PYTHON_FULLY_TESTED[@]}"; then + testargs+=( + --exclude 'run.numpy*' + --exclude 'run.ufunc' + --exclude 'numpy*' + ) + fi + + "${PYTHON}" runtests.py "${testargs[@]}" || die "Tests fail with ${EPYTHON}" +} + +python_install_all() { + local DOCS=( CHANGES.rst README.rst ToDo.txt USAGE.txt ) + distutils-r1_python_install_all +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/dependency-groups/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/dependency-groups/Manifest index 888b1391e94..76d616f0d9c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/dependency-groups/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/dependency-groups/Manifest @@ -1 +1,2 @@ DIST dependency_groups-1.3.1.tar.gz 10093 BLAKE2B 527f1e9a3594df9c811b50f933edbd4d188b2b2338a07a2154e7e999f48d7ce75f06aaf3ecd6ab4b3b367d05c1aed51c1e474d4558a42048d69bf13e9ca245ad SHA512 03e707791494da58cb860e9d605e657812f538d8f39d239f99108236c42eb831467969a561fbc587aa33a88794652aa2e63b43421b3beda42a825602f3fe7c17 +DIST dependency_groups-1.3.1.tar.gz.provenance 9242 BLAKE2B e94c82b28e5fe1c63cab2f589129dcd8a39cc09f0c21265c2b576081b66dd5c52af6ce8bcc4a50322897884bb7bf8a1582fa1ec8308ea71b968d93857500f61e SHA512 8ad890b7fde03724c60285d23d40ebe19b917823638fc72d2a7af88251e74023ff6be8bc59a8ada32918c9edabace2e3e2dbe5747d25f6614bd0c0a1affbdad3 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/dependency-groups/dependency-groups-1.3.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/dependency-groups/dependency-groups-1.3.1.ebuild index ea126cfcd06..4cf9132d0fb 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/dependency-groups/dependency-groups-1.3.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/dependency-groups/dependency-groups-1.3.1.ebuild @@ -1,9 +1,10 @@ -# Copyright 2025 Gentoo Authors +# Copyright 2025-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=flit +PYPI_VERIFY_REPO=https://github.com/pypa/dependency-groups PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) inherit distutils-r1 pypi @@ -22,4 +23,5 @@ RDEPEND=" dev-python/packaging[${PYTHON_USEDEP}] " +EPYTEST_PLUGINS=() distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/distlib/distlib-0.4.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/distlib/distlib-0.4.0-r1.ebuild new file mode 100644 index 00000000000..bc76cd5497f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/distlib/distlib-0.4.0-r1.ebuild @@ -0,0 +1,60 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) + +inherit distutils-r1 + +DESCRIPTION="Low-level components of distutils2/packaging" +HOMEPAGE=" + https://pypi.org/project/distlib/ + https://github.com/pypa/distlib/ +" +SRC_URI=" + https://github.com/pypa/distlib/archive/${PV}.tar.gz -> ${P}.gh.tar.gz +" + +LICENSE="PSF-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" +IUSE="test" +RESTRICT="!test? ( test )" + +# pypiserver is called as external executable +BDEPEND=" + test? ( + dev-python/pypiserver + ) +" + +src_prepare() { + local PATCHES=( + # use system pypiserver instead of bundled one + "${FILESDIR}/distlib-0.3.9-system-pypiserver.patch" + # https://github.com/pypa/distlib/commit/6286442857de9f734686d08f0e59ca8048ee357a + "${FILESDIR}/${P}-py314-test.patch" + # https://github.com/pypa/distlib/pull/256 + "${FILESDIR}/${P}-py315.patch" + ) + + # make sure it's not used + rm tests/pypi-server-standalone.py || die + + distutils-r1_src_prepare +} + +python_test() { + local -x SKIP_ONLINE=1 + local -x PYTHONHASHSEED=0 + + # disable system-site-packages -- distlib has no deps, and is very + # fragile to packages actually installed on the system + sed -i -e '/system-site-packages/s:true:false:' \ + "${BUILD_DIR}/install${EPREFIX}/usr/pyvenv.cfg" || die + + "${EPYTHON}" tests/test_all.py -v -x || + die "Tests failed with ${EPYTHON}" +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/distlib/files/distlib-0.4.0-py315.patch b/sdk_container/src/third_party/portage-stable/dev-python/distlib/files/distlib-0.4.0-py315.patch new file mode 100644 index 00000000000..4a27f020370 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/distlib/files/distlib-0.4.0-py315.patch @@ -0,0 +1,51 @@ +From 53a497ae37b3220662ac177e9477e9551e4e37b0 Mon Sep 17 00:00:00 2001 +From: Victor Stinner +Date: Wed, 14 Jan 2026 14:32:40 +0100 +Subject: [PATCH] Update cache_from_source() for Python 3.15 + +The debug_override parameter of cache_from_source() is deprecated in +Python 3.14. The function docstring says: + + The debug_override parameter is deprecated. If debug_override + is not None, a True value is the same as setting 'optimization' + to the empty string while a False value is equivalent to setting + 'optimization' to '1'. + +The parameter has been removed in Python 3.15. + +Fixes #255 +--- + distlib/util.py | 6 +++++- + tests/test_util.py | 2 +- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/distlib/util.py b/distlib/util.py +index 0d5bd7a..b700384 100644 +--- a/distlib/util.py ++++ b/distlib/util.py +@@ -589,7 +589,11 @@ def ensure_dir(self, path): + self.dirs_created.add(path) + + def byte_compile(self, path, optimize=False, force=False, prefix=None, hashed_invalidation=False): +- dpath = cache_from_source(path, not optimize) ++ if not optimize: ++ optimization = '' ++ else: ++ optimization = '1' ++ dpath = cache_from_source(path, optimization=optimization) + logger.info('Byte-compiling %s to %s', path, dpath) + if not self.dry_run: + if force or self.newer(path, dpath): +diff --git a/tests/test_util.py b/tests/test_util.py +index d8694a9..d4bb572 100644 +--- a/tests/test_util.py ++++ b/tests/test_util.py +@@ -652,7 +652,7 @@ def test_is_writable(self): + + def test_byte_compile(self): + path = os.path.join(self.workdir, 'hello.py') +- dpath = cache_from_source(path, True) ++ dpath = cache_from_source(path, optimization='') + self.fileop.write_text_file(path, 'print("Hello, world!")', 'utf-8') + self.fileop.byte_compile(path, optimize=False) + self.assertTrue(os.path.exists(dpath)) diff --git a/sdk_container/src/third_party/portage-stable/dev-python/docutils/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/docutils/Manifest index 54d7cdde87a..0fc4d8fcb82 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/docutils/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/docutils/Manifest @@ -1,4 +1,2 @@ -DIST docutils-0.21.2.tar.gz 2204444 BLAKE2B 727c2f97fc5835a0ffa62e38ea85af366cd89ad1eaec0b8af8b1f3b12e6cddfddb65161ba34f9109952d37ba2cf8985f3c3b6905ebb2ac1c9a984cce3fb4d170 SHA512 7fafa331f5687448e80d299c20cdccc4b49819fa471b5f586bf0ab18c694ba43a70f58e7c76b0a70a16267585548389214e11a4998ad7fdc19a27f0f7644539c -DIST docutils-0.22.2.tar.gz 2289092 BLAKE2B cef7861efe59766fc4883f945d7c52d026b6dae378f95fac074698e31ef2a32bece572e09f2307a1f1ebc7b63f963b53cd5a5e09538a7fe5bcdec9864ecfd4d4 SHA512 dfa6825fe1c5f870719da054badc3af69854b64b9e1057210b7aa6ecd2eff0f809fa311d3d30b1eb4fa542f68eacc26b6be314f1897c8a7cb423ab91f8f15102 -DIST docutils-0.22.3.tar.gz 2290153 BLAKE2B 78b4ee1dd643de2b1e97757592ca2962eb11beb7beb2cf6c718857b1533a55240c44993e840b720eb4cfa327cafa6a9b1ebdea46eac2f0f6a3f9d06d1eb4851a SHA512 097e4dd76c984ba6789b44b971db046e29941791f1deaf7899ccc239f8ec96db47ef204f72bf93f3e11ff42b2e30ee21a59cb323ecfab0b6063f2f9be036c241 DIST docutils-0.22.4.tar.gz 2291750 BLAKE2B ec9ef492f067d91a3300a7707a88426d08714b85ff2970d6bdf8f94e8a7a42c576364445c0997dee5d19a76ab763793465ed131bb6ce6453c058d61371aed61c SHA512 80f4450f1ab81eb2425e246e1436cecda1ecd0c0ff70c24d34c2f651ab70afd55577a809b50ccd73d41e098790582fdc3b6594511308b51efe0c3005edbdcf72 +DIST docutils-0.23rc1.tar.gz 2303934 BLAKE2B 1ee8ba3f05e00e6d1068116351868c8face1c89d9f2bf2b6d0a28a294e5b959d2759c142e911ac4d840158f3e13af22981071e121db619b3102a58b405cc8517 SHA512 6c92aa01176acc7587e9ee37867b1be3a16a8572eba7498a4de9358f0bcf5ae99754b3516d83719954a738242f05e386966cf03341520a017292ed3bcffb9e34 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/docutils/docutils-0.21.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/docutils/docutils-0.21.2.ebuild deleted file mode 100644 index bb5c2fbd723..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/docutils/docutils-0.21.2.ebuild +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="Python Documentation Utilities (reference reStructuredText impl.)" -HOMEPAGE=" - https://docutils.sourceforge.io/ - https://pypi.org/project/docutils/ -" - -# 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 ~arm64-macos ~x64-macos ~x64-solaris" - -RDEPEND=" - dev-python/pillow[${PYTHON_USEDEP}] - dev-python/pygments[${PYTHON_USEDEP}] -" -BDEPEND=" - ${RDEPEND} -" - -PATCHES=( - # r10019 upstream - "${FILESDIR}/${P}-pygments-2.19.patch" - # this changed back at some point, but upstream didn't hit it - # because of https://sourceforge.net/p/docutils/bugs/500/ - "${FILESDIR}/${P}-pillow.patch" -) - -python_compile_all() { - # Generate html docs from reStructured text sources. - - # Place html4css1.css in base directory to ensure that the generated reference to it is correct. - cp docutils/writers/html4css1/html4css1.css . || die - - cd tools || die - "${EPYTHON}" buildhtml.py --input-encoding=utf-8 --no-datestamp \ - --stylesheet-path=../html4css1.css, --traceback ../docs || die -} - -src_test() { - cd test || die - distutils-r1_src_test -} - -python_test() { - "${EPYTHON}" alltests.py -v || die "Testing failed with ${EPYTHON}" -} - -python_install() { - distutils-r1_python_install - - # Install tools. - python_doscript tools/buildhtml.py -} - -install_txt_doc() { - local doc="${1}" - local dir="txt/$(dirname ${doc})" - docinto "${dir}" - dodoc "${doc}" -} - -python_install_all() { - local DOCS=( *.txt ) - local HTML_DOCS=( docs tools docutils/writers/html4css1/html4css1.css ) - - distutils-r1_python_install_all - - local doc - while IFS= read -r -d '' doc; do - install_txt_doc "${doc}" - done < <(find docs tools -name '*.txt' -print0) -} 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 deleted file mode 100644 index 80cb5fafbea..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/docutils/docutils-0.22.2.ebuild +++ /dev/null @@ -1,62 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="Python Documentation Utilities (reference reStructuredText impl.)" -HOMEPAGE=" - https://docutils.sourceforge.io/ - https://pypi.org/project/docutils/ -" - -# 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 ~arm64-macos ~x64-macos ~x64-solaris" - -RDEPEND=" - dev-python/pillow[${PYTHON_USEDEP}] - dev-python/pygments[${PYTHON_USEDEP}] -" -BDEPEND=" - ${RDEPEND} -" - -python_compile_all() { - # Generate html docs from reStructured text sources. - - # Place html4css1.css in base directory to ensure that the generated reference to it is correct. - cp docutils/writers/html4css1/html4css1.css . || die - - cd tools || die - "${EPYTHON}" buildhtml.py --input-encoding=utf-8 --no-datestamp \ - --stylesheet-path=../html4css1.css, --traceback ../docs || die -} - -src_test() { - cd test || die - distutils-r1_src_test -} - -python_test() { - "${EPYTHON}" alltests.py -v || die "Testing failed with ${EPYTHON}" -} - -python_install() { - distutils-r1_python_install - - # Install tools. - python_doscript tools/buildhtml.py -} - -python_install_all() { - local DOCS=( *.rst ) - local HTML_DOCS=( docs tools docutils/writers/html4css1/html4css1.css ) - - distutils-r1_python_install_all -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/docutils/docutils-0.22.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/docutils/docutils-0.22.3.ebuild deleted file mode 100644 index 5012dfcda78..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/docutils/docutils-0.22.3.ebuild +++ /dev/null @@ -1,62 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="Python Documentation Utilities (reference reStructuredText impl.)" -HOMEPAGE=" - https://docutils.sourceforge.io/ - https://pypi.org/project/docutils/ -" - -# 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 ~arm64-macos ~x64-macos ~x64-solaris" - -RDEPEND=" - dev-python/pillow[${PYTHON_USEDEP}] - dev-python/pygments[${PYTHON_USEDEP}] -" -BDEPEND=" - ${RDEPEND} -" - -python_compile_all() { - # Generate html docs from reStructured text sources. - - # Place html4css1.css in base directory to ensure that the generated reference to it is correct. - cp docutils/writers/html4css1/html4css1.css . || die - - cd tools || die - "${EPYTHON}" buildhtml.py --input-encoding=utf-8 --no-datestamp \ - --stylesheet-path=../html4css1.css, --traceback ../docs || die -} - -src_test() { - cd test || die - distutils-r1_src_test -} - -python_test() { - "${EPYTHON}" alltests.py -v || die "Testing failed with ${EPYTHON}" -} - -python_install() { - distutils-r1_python_install - - # Install tools. - python_doscript tools/buildhtml.py -} - -python_install_all() { - local DOCS=( *.rst ) - local HTML_DOCS=( docs tools docutils/writers/html4css1/html4css1.css ) - - distutils-r1_python_install_all -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/docutils/docutils-0.23_rc1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/docutils/docutils-0.23_rc1.ebuild new file mode 100644 index 00000000000..03d371d14d7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/docutils/docutils-0.23_rc1.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Python Documentation Utilities (reference reStructuredText impl.)" +HOMEPAGE=" + https://docutils.sourceforge.io/ + https://pypi.org/project/docutils/ +" + +# GPL-3+ only for emacs/rst.el +LICENSE="BSD BSD-2 GPL-3+ PSF-2.4 public-domain" +SLOT="0" +if [[ ${PV} != *_rc* ]]; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +fi + +RDEPEND=" + dev-python/pillow[${PYTHON_USEDEP}] + dev-python/pygments[${PYTHON_USEDEP}] +" +BDEPEND=" + ${RDEPEND} +" + +python_compile_all() { + # Generate html docs from reStructured text sources. + + # Place html4css1.css in base directory to ensure that the generated reference to it is correct. + cp docutils/writers/html4css1/html4css1.css . || die + + cd tools || die + "${EPYTHON}" buildhtml.py --input-encoding=utf-8 --no-datestamp \ + --stylesheet-path=../html4css1.css, --traceback ../docs || die +} + +src_test() { + cd test || die + distutils-r1_src_test +} + +python_test() { + "${EPYTHON}" alltests.py -v || die "Testing failed with ${EPYTHON}" +} + +python_install() { + distutils-r1_python_install + + # Install tools. + python_doscript tools/buildhtml.py +} + +python_install_all() { + local DOCS=( *.rst ) + local HTML_DOCS=( docs tools docutils/writers/html4css1/html4css1.css ) + + distutils-r1_python_install_all +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/docutils/files/docutils-0.21.2-pillow.patch b/sdk_container/src/third_party/portage-stable/dev-python/docutils/files/docutils-0.21.2-pillow.patch deleted file mode 100644 index 993283ed798..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/docutils/files/docutils-0.21.2-pillow.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/test/test_writers/test_html5_polyglot_parts.py b/test/test_writers/test_html5_polyglot_parts.py -index 7122f8469..749f541e4 100644 ---- a/test/test_writers/test_html5_polyglot_parts.py -+++ b/test/test_writers/test_html5_polyglot_parts.py -@@ -43,10 +43,6 @@ if PIL: - REQUIRES_PIL = '' - ONLY_LOCAL = 'Can only read local images.' - DUMMY_PNG_NOT_FOUND = "[Errno 2] No such file or directory: 'dummy.png'" -- # Pillow reports the absolute path since version 10.3.0 (cf. [bugs: 485]) -- if (tuple(int(i) for i in PIL.__version__.split('.')) >= (10, 3)): -- DUMMY_PNG_NOT_FOUND = ("[Errno 2] No such file or directory: '%s'" -- % Path('dummy.png').resolve()) - SCALING_OUTPUT = 'style="width: 32.0px; height: 32.0px;" ' - NO_PIL_SYSTEM_MESSAGE = '' - else: diff --git a/sdk_container/src/third_party/portage-stable/dev-python/docutils/files/docutils-0.21.2-pygments-2.19.patch b/sdk_container/src/third_party/portage-stable/dev-python/docutils/files/docutils-0.21.2-pygments-2.19.patch deleted file mode 100644 index e667226d19d..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/docutils/files/docutils-0.21.2-pygments-2.19.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 5854d09635b3fa1048d84bba17de4c38805beccd Mon Sep 17 00:00:00 2001 -From: aa-turner -Date: Fri, 7 Mar 2025 22:49:46 +0000 -Subject: [PATCH] Support Pygments 2.19 in tests - -git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk@10019 929543f6-e4f2-0310-98a6-ba3bd3dd1d04 ---- - .../test_rst/test_directives/test_code.py | 16 +++++++++++----- - .../test_rst/test_directives/test_code_long.py | 7 +++---- - test/test_writers/test_html5_polyglot_parts.py | 4 +--- - 3 files changed, 15 insertions(+), 12 deletions(-) - -diff --git a/test/test_parsers/test_rst/test_directives/test_code.py b/test/test_parsers/test_rst/test_directives/test_code.py -index a54901dfe..a714f8fc5 100755 ---- a/test/test_parsers/test_rst/test_directives/test_code.py -+++ b/test/test_parsers/test_rst/test_directives/test_code.py -@@ -25,10 +25,16 @@ from docutils.utils.code_analyzer import with_pygments - - if with_pygments: - import pygments -- _pv = re.match(r'^([0-9]+)\.([0-9]*)', pygments.__version__) -- PYGMENTS_2_14_PLUS = (int(_pv[1]), int(_pv[2])) >= (2, 14) -+ -+ pygments_version = tuple(map(int, pygments.__version__.split('.')[:2])) -+else: -+ pygments_version = (0, 0) -+ -+PYGMENTS_2_14_PLUS = pygments_version >= (2, 14) -+if pygments_version >= (2, 19): -+ def_ws = '\n ' - else: -- PYGMENTS_2_14_PLUS = None -+ def_ws = ' ' - - - class ParserTestCase(unittest.TestCase): -@@ -160,14 +166,14 @@ totest['code_parsing'] = [ - # and now for something completely different - print(8/2) - """, --"""\ -+f"""\ - - - - 7 \n\ - - def -- \n\ -+ {def_ws} - - my_function - -diff --git a/test/test_parsers/test_rst/test_directives/test_code_long.py b/test/test_parsers/test_rst/test_directives/test_code_long.py -index 89cb4b172..037768c01 100755 ---- a/test/test_parsers/test_rst/test_directives/test_code_long.py -+++ b/test/test_parsers/test_rst/test_directives/test_code_long.py -@@ -22,8 +22,7 @@ from docutils.parsers.rst import Parser - from docutils.utils import new_document - from docutils.utils.code_analyzer import with_pygments - from test.test_parsers.test_rst.test_directives.test_code \ -- import PYGMENTS_2_14_PLUS -- -+ import PYGMENTS_2_14_PLUS, def_ws - - @unittest.skipUnless(with_pygments, 'needs Pygments') - class ParserTestCase(unittest.TestCase): -@@ -55,14 +54,14 @@ totest['code_parsing_long'] = [ - # and now for something completely different - print(8/2) - """, --"""\ -+f"""\ - - - - 7 \n\ - - def -- \n\ -+ {def_ws} - - my_function - -diff --git a/test/test_writers/test_html5_polyglot_parts.py b/test/test_writers/test_html5_polyglot_parts.py -index 7122f8469..afe504d41 100644 ---- a/test/test_writers/test_html5_polyglot_parts.py -+++ b/test/test_writers/test_html5_polyglot_parts.py -@@ -14,7 +14,6 @@ standard values, and any entries with empty values. - - from pathlib import Path - import os --import re - import sys - import unittest - -@@ -30,8 +29,7 @@ from docutils.utils.code_analyzer import with_pygments - - if with_pygments: - import pygments -- _pv = re.match(r'^([0-9]+)\.([0-9]*)', pygments.__version__) -- if (int(_pv[1]), int(_pv[2])) >= (2, 14): -+ if tuple(map(int, pygments.__version__.split('.')[:2])) >= (2, 14): - # pygments output changed in version 2.14 - with_pygments = False - diff --git a/sdk_container/src/third_party/portage-stable/dev-python/editables/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/editables/Manifest index 65adaad28cf..dda0ae854a2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/editables/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/editables/Manifest @@ -1 +1,2 @@ DIST editables-0.5.gh.tar.gz 15469 BLAKE2B 9bbbc61a4e0a57edc6b7ba463da0d6c2f40090e347e67f203f16163bec70b63a2289332e9d69a46919f8aa009be1ec96e1b1cd2708ce5eb6ab33af6eb36360e0 SHA512 ac39d2e6a51625697c517b85fec11b525b1a41f82cf4f55c7595fed19da867065a62eee5e3656706f7402d0499754f4a142da77d699c59dffc8b769fa1c3dbe2 +DIST editables-0.6.gh.tar.gz 18722 BLAKE2B 8970dd52a93b99f2af62e9fe9c0c2b6f9a97cff9f1d4574e8960336ba73cf570dbba9467847fadf127b593384b1de29a81028432b3f923accefe41ca63e4f38d SHA512 123a5aec65cfa259dddfd6a8c0e4a51f5ad722e36cd360fd4d5094b853805b0332ec1b143a19e5fae79e5f841124bbd6162bb6fe64d8d92d7edcf5b640afcdc4 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/editables/editables-0.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/editables/editables-0.6.ebuild new file mode 100644 index 00000000000..efb7437a989 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/editables/editables-0.6.ebuild @@ -0,0 +1,26 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYTHON_COMPAT=( pypy3_11 python3_{11..15} python3_{13..15}t ) + +inherit distutils-r1 + +DESCRIPTION="A Python library for creating 'editable wheels'" +HOMEPAGE=" + https://pypi.org/project/editables/ + https://github.com/pfmoore/editables/ +" +SRC_URI=" + https://github.com/pfmoore/editables/archive/${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 ~arm64-macos ~x64-macos ~x64-solaris" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/Manifest index ae87a228235..a742f5daadb 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/Manifest @@ -1,4 +1,4 @@ DIST flit_core-3.12.0-py3-none-any.whl 45594 BLAKE2B 7c6cb6eb03d45bbba27f27b3728881b57fe82dd38e03f884d3b7c46116eb2b9dd76f92bdaf7f594ef8ccbe12ec8f9a56424ff9e9fc7a839c4818a113fdf0c3d3 SHA512 790c12b1f43201e365fb3f8f2f0a54e1a578876799dfdf8bfeea679a25ea096bf62946d006618c1458ae6e37ce6d00998f37e9aba426d5ab80d32ef2d75da4e0 -DIST pip-25.3.gh.tar.gz 9115712 BLAKE2B 87d848c497163a45ee3de8f6f75c80b5051b07062c5a15450ae98b59a6cebc6bf03ca8525d57929493f2cfeb28d5623401eba69f0bdfc734389efbb84eafdf53 SHA512 f50db092213ec3bb819d3da5669f73d119b5ec7f7ac5e8a587a17c27eafa32bc17a057df09389c526a3769ef3577f5553187d54ceffa89aed63f4b4498ff044e DIST pip-26.0.1.gh.tar.gz 9227871 BLAKE2B 96a2fab2de472b3cde570f3bcbd6bc5e5c48ef2f0808ca9b2b6c0f57a611f723cd0f5d592b6b5f553fb57a6909459f57b4130f2451cd95c3b18678e02215e0c9 SHA512 3786df7522ea65bc20fb9885ce5c2ddc60200a536a1f754a8d7dc278115c73258863e4c51ac7e9a60dda0b70263730dc194f70e1e8f8d00178a8b3c724333bf0 -DIST pip-26.0.gh.tar.gz 9226836 BLAKE2B fe24bd8fca7fa2b64ed865a880a430c420a9e73e35a9f1f2405473d4778467f48a8bc0607c1423760ff23706d3e11ddfeb20cd5a7f6522530a679994278ee1d8 SHA512 62a62b2db4e7a6c795cf01ab553b94068f0d1c62470c1f5c2b3164344a84fa68f7854eec99d93b9f56193c61276d95d8af21a3cb6b78f0db4f013d9997e78199 +DIST pip-26.1.1.gh.tar.gz 9267528 BLAKE2B 7623f0d584baf05d46f29f662ecbbb2299d82aba0204c522326e1fb7350e31e32dff660b8360bfe8505f56f38d50d0b874e84118dff95a64e9f60510a2965dc7 SHA512 777fab14b5e7e7edeffbc7ae86f4e6061e9f7cf43adcaebcb4d099c184c4f2ad6a63019a70d95b98b631821c3472713c9545fb8d65b684da67cfc31ee9293054 +DIST pip-26.1.gh.tar.gz 9268351 BLAKE2B 55773ba9ead364dcb8b900fb2f196dd768f688f54ae2ef190ae1739fec3fcc22f260c25df6ffb097e3b14ad321c51535cb71a921eafe4430a3eb30b94e38cc1e SHA512 cb3dde18f1b16ffeb36a0eeec02b64a0a363e1ef50070126fdbb152ba03749830095f85a98267e552169b7953b5839558be2c3ee8f78802cb56dd4f139b72762 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/ensurepip-pip-25.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/ensurepip-pip-25.3.ebuild deleted file mode 100644 index 52b52013ad9..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/ensurepip-pip-25.3.ebuild +++ /dev/null @@ -1,189 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -# PYTHON_COMPAT is used only for testing -PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) -PYTHON_REQ_USE="ssl(+),threads(+)" - -inherit distutils-r1 pypi - -FLIT_CORE_PV=3.12.0 - -MY_P=${P#ensurepip-} -DESCRIPTION="Shared pip wheel for ensurepip Python module" -HOMEPAGE=" - https://pip.pypa.io/en/stable/ - https://pypi.org/project/pip/ - https://github.com/pypa/pip/ -" -SRC_URI=" - https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${MY_P}.gh.tar.gz - test? ( - $(pypi_wheel_url flit-core "${FLIT_CORE_PV}") - ) -" -S=${WORKDIR}/${MY_P} - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="test test-rust" -RESTRICT="!test? ( test )" - -BDEPEND=" - ${RDEPEND} - test? ( - -Date: Thu, 31 Jul 2025 05:10:08 +0200 -Subject: [PATCH] Disable coverage & socket plugins inside test venvs - ---- - tests/conftest.py | 33 --------------------------------- - 1 file changed, 33 deletions(-) - -diff --git a/tests/conftest.py b/tests/conftest.py -index c98b87117..f4ef35a7e 100644 ---- a/tests/conftest.py -+++ b/tests/conftest.py -@@ -444,25 +444,6 @@ def wheel_install(tmpdir_factory: pytest.TempPathFactory, common_wheels: Path) - - return _common_wheel_editable_install(tmpdir_factory, common_wheels, "wheel") - - --@pytest.fixture(scope="session") --def coverage_install( -- tmpdir_factory: pytest.TempPathFactory, common_wheels: Path --) -> Path: -- return _common_wheel_editable_install(tmpdir_factory, common_wheels, "coverage") -- -- --@pytest.fixture(scope="session") --def socket_install(tmpdir_factory: pytest.TempPathFactory, common_wheels: Path) -> Path: -- lib_dir = _common_wheel_editable_install( -- tmpdir_factory, common_wheels, "pytest_subket" -- ) -- # pytest-subket is only included so it can intercept and block unexpected -- # network requests. It should NOT be visible to the pip under test. -- dist_info = next(lib_dir.glob("*.dist-info")) -- shutil.rmtree(dist_info) -- return lib_dir -- -- - def install_pth_link( - venv: VirtualEnvironment, project_name: str, lib_dir: Path - ) -> None: -@@ -479,8 +460,6 @@ def virtualenv_template( - pip_editable_parts: tuple[Path, ...], - setuptools_install: Path, - wheel_install: Path, -- coverage_install: Path, -- socket_install: Path, - ) -> VirtualEnvironment: - venv_type: VirtualEnvironmentType - if request.config.getoption("--use-venv"): -@@ -494,11 +473,7 @@ def virtualenv_template( - - # Install setuptools, wheel, pytest-subket, and pip. - install_pth_link(venv, "setuptools", setuptools_install) - install_pth_link(venv, "wheel", wheel_install) -- install_pth_link(venv, "pytest_subket", socket_install) -- # Also copy pytest-subket's .pth file so it can intercept socket calls. -- with open(venv.site / "pytest_socket.pth", "w") as f: -- f.write(socket_install.joinpath("pytest_socket.pth").read_text()) - - pth, dist_info = pip_editable_parts - -@@ -511,13 +485,6 @@ def virtualenv_template( - # detects changed files. - venv.site.joinpath("easy-install.pth").touch() - -- # Install coverage and pth file for executing it in any spawned processes -- # in this virtual environment. -- install_pth_link(venv, "coverage", coverage_install) -- # zz prefix ensures the file is after easy-install.pth. -- with open(venv.site / "zz-coverage-helper.pth", "a") as f: -- f.write("import coverage; coverage.process_startup()") -- - # Drop (non-relocatable) launchers. - for exe in os.listdir(venv.bin): - if not exe.startswith(("python", "libpy")): # Don't remove libpypy-c.so... diff --git a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/Manifest index b09847cd1f3..ad7da0f2da0 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/Manifest @@ -1,6 +1,2 @@ DIST setuptools-79.0.1-py3-none-any.whl 1256281 BLAKE2B 8ae51bdd1c0ccada116757c2bd765225fcf4bedc7ada18567ae12f09b6978cdbcddd4f635a39a5568b6d3ed4388e4f73af5c33a7060f2ac0d0907fc82d8fd74f SHA512 fef6cfc6f95a5bb7320f1680e1c665cb8d9a4e4227cde4d8aab8a50bed4bcf04320085b9d7d5343359f887008db5c5a861e57f3d08b7b0b2311a28adaeee6b4a -DIST setuptools-80.10.2.tar.gz 1200343 BLAKE2B 575eacccf3f9f846658d55d55425263d8847419644e62506b9e953c5a5db541dc6b3d8c4fcf096ec1e46406ecad545569111dc265aa8474ba17ebe57a10b382d SHA512 7dbc657878b418a9bdba124e5b8f98228af0590ffbb02c6396ac5b3d84be8f04b327780a7b1f9fa223d4c179004e822e2b00eec673f8eeb700b08b095ff6491d -DIST setuptools-80.9.0.tar.gz 1319958 BLAKE2B ab367912eec92b0d1251916d09c1dd2e311767eec87225beaff870dff923b47ba1732d2f7393b7d9e55d1ff1249c612e4403019e0021048951f9fc3b775c04c9 SHA512 36eb1f219d29c6b9e135936bde2001ad70a971c8069cd0175d3a5325b450e6843a903d3f70043c9f534768ebeab8ab0c544b8f44456555d333f1ed72daa5c18b -DIST setuptools-81.0.0.tar.gz 1198299 BLAKE2B a92fa15e03c99f6d7acbc0a24e6d3b4b31d514c031195b1dd0ae238611c44c3c979847c45437e5e4221fb8f750a7264fb55235ee7d4a8207ef19a67306d5360c SHA512 4dda2f0796d1a32d160e0786fc6ebb9908483e16edac6b0335df4779a0a8331f13b70fbf69986a27cc8f6ff10c1f696599059710fef99f36ff1e766f04220466 -DIST setuptools-82.0.0.tar.gz 1144893 BLAKE2B dae5c129ba4f490f7e9e7cfc42ff4147010fcd2f63e7e5bf6635a4153e5c3882f2ee265f01baa23d8c0f6c562c90c5408a998db0b95e5ea9c5a2fade167059d5 SHA512 52424f813bb8efa1d3aa8cb910338d29c36c6a641f7ded91d298c1abe7c1a24d572c60c14c028f3825af29b46d57a4ee454845b1d22b73b03278a9500d957dd9 DIST setuptools-82.0.1.tar.gz 1152316 BLAKE2B d7f6eaf62ec66355b65642bc20a7a549e167dd6d1c0cdb15926b6644a23cab7737d713cd9418e0cc09161eb0bff53ffd0b8781c96d9203717077121c1e3cc0d5 SHA512 5d70e9efd818245fb8119a4eed64d776078469ed884facc188f141ea491efd9fde5c10c928d3236ea5e2e431b16616f18ed14870b867f95e6320251707332395 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.10.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.10.2.ebuild deleted file mode 100644 index f801cf0b808..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.10.2.ebuild +++ /dev/null @@ -1,134 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=standalone -PYPI_PN=${PN#ensurepip-} -# PYTHON_COMPAT used only for testing -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) -PYTHON_REQ_USE="xml(+)" - -inherit distutils-r1 pypi - -DESCRIPTION="Shared setuptools wheel for ensurepip Python module" -HOMEPAGE=" - https://github.com/pypa/setuptools/ - https://pypi.org/project/setuptools/ -" - -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" -IUSE="test" -RESTRICT="!test? ( test )" - -BDEPEND=" - ${RDEPEND} - test? ( - >=dev-python/build-1.0.3[${PYTHON_USEDEP}] - >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}] - >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}] - >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}] - >=dev-python/jaraco-path-3.7.2[${PYTHON_USEDEP}] - >=dev-python/jaraco-test-5.5[${PYTHON_USEDEP}] - dev-python/pip[${PYTHON_USEDEP}] - dev-python/pyproject-hooks[${PYTHON_USEDEP}] - >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}] - >=dev-python/virtualenv-20[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=( pytest-{home,subprocess,timeout} ) -EPYTEST_XDIST=1 -distutils_enable_tests pytest - -declare -A VENDOR_LICENSES=( - [autocommand]=LGPL-3 - [backports.tarfile]=MIT - [importlib_metadata]=Apache-2.0 - [jaraco_context]=MIT - [jaraco_functools]=MIT - [jaraco.text]=MIT - [more_itertools]=MIT - [packaging]="|| ( Apache-2.0 MIT )" - [platformdirs]=MIT - [tomli]=MIT - [wheel]=MIT - [zipp]=MIT -) -LICENSE+=" ${VENDOR_LICENSES[*]}" - -src_prepare() { - distutils-r1_src_prepare - - # Verify that we've covered licenses for all vendored packages - cd setuptools/_vendor || die - local packages=( *.dist-info ) - local pkg missing=() - for pkg in "${packages[@]%%-*}"; do - if [[ ! -v "VENDOR_LICENSES[${pkg}]" ]]; then - missing+=( "${pkg}" ) - else - unset "VENDOR_LICENSES[${pkg}]" - fi - done - - if [[ ${missing[@]} || ${VENDOR_LICENSES[@]} ]]; then - [[ ${missing[@]} ]] && - eerror "License missing for packages: ${missing[*]}" - [[ ${VENDOR_LICENSES[@]} ]] && - eerror "Vendored packages removed: ${!VENDOR_LICENSES[*]}" - die "VENDOR_LICENSES outdated" - fi -} - -python_compile() { - # If we're testing, install for all implementations. - # If we're not, just get one wheel built. - if use test || [[ -z ${DISTUTILS_WHEEL_PATH} ]]; then - distutils-r1_python_compile - fi -} - -python_test() { - local EPYTEST_DESELECT=( - # TODO - setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic - setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors - # TODO, probably some random package - setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass - # relies on -Werror - setuptools/_static.py::setuptools._static.Dict - setuptools/_static.py::setuptools._static.List - # Internet - setuptools/tests/test_namespaces.py::TestNamespaces::test_mixed_site_and_non_site - setuptools/tests/test_namespaces.py::TestNamespaces::test_namespace_package_installed_and_cwd - setuptools/tests/test_namespaces.py::TestNamespaces::test_packages_in_the_same_namespace_installed_and_cwd - setuptools/tests/test_namespaces.py::TestNamespaces::test_pkg_resources_import - # broken by warnings from setuptools-scm - setuptools/tests/config/test_apply_pyprojecttoml.py::TestPresetField::test_scripts_dont_require_dynamic_entry_points - ) - - case ${EPYTHON} in - pypy3.11) - EPYTEST_DESELECT+=( - # fails and breaks other tests - setuptools/tests/test_editable_install.py - ) - ;; - esac - - local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH} - epytest -o tmp_path_retention_policy=all \ - -m "not uses_network" setuptools -} - -src_install() { - if [[ ${DISTUTILS_WHEEL_PATH} != *py3-none-any.whl ]]; then - die "Non-pure wheel produced?! ${DISTUTILS_WHEEL_PATH}" - fi - # TODO: compress it? - insinto /usr/lib/python/ensurepip - doins "${DISTUTILS_WHEEL_PATH}" -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0-r1.ebuild deleted file mode 100644 index f4b959d98c8..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0-r1.ebuild +++ /dev/null @@ -1,130 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=standalone -PYPI_PN=${PN#ensurepip-} -# PYTHON_COMPAT used only for testing -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) -PYTHON_REQ_USE="xml(+)" - -inherit distutils-r1 pypi - -DESCRIPTION="Shared setuptools wheel for ensurepip Python module" -HOMEPAGE=" - https://github.com/pypa/setuptools/ - https://pypi.org/project/setuptools/ -" - -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" -IUSE="test" -RESTRICT="!test? ( test )" - -BDEPEND=" - ${RDEPEND} - test? ( - >=dev-python/build-1.0.3[${PYTHON_USEDEP}] - >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}] - >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}] - >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}] - >=dev-python/jaraco-path-3.7.2[${PYTHON_USEDEP}] - >=dev-python/jaraco-test-5.5[${PYTHON_USEDEP}] - dev-python/pip[${PYTHON_USEDEP}] - dev-python/pyproject-hooks[${PYTHON_USEDEP}] - >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}] - >=dev-python/virtualenv-20[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=( pytest-{home,subprocess,timeout} ) -EPYTEST_XDIST=1 -distutils_enable_tests pytest - -declare -A VENDOR_LICENSES=( - [autocommand]=LGPL-3 - [backports.tarfile]=MIT - [importlib_metadata]=Apache-2.0 - [inflect]=MIT - [jaraco.collections]=MIT - [jaraco.context]=MIT - [jaraco.functools]=MIT - [jaraco.text]=MIT - [more_itertools]=MIT - [packaging]="|| ( Apache-2.0 MIT )" - [platformdirs]=MIT - [tomli]=MIT - [typeguard]=MIT - [typing_extensions]=PSF-2 - [wheel]=MIT # technically it also vendors packaging but we have that - [zipp]=MIT -) -LICENSE+=" ${VENDOR_LICENSES[*]}" - -src_prepare() { - distutils-r1_src_prepare - - # Verify that we've covered licenses for all vendored packages - cd setuptools/_vendor || die - local packages=( *.dist-info ) - local pkg missing=() - for pkg in "${packages[@]%%-*}"; do - if [[ ! -v "VENDOR_LICENSES[${pkg}]" ]]; then - missing+=( "${pkg}" ) - else - unset "VENDOR_LICENSES[${pkg}]" - fi - done - - if [[ ${missing[@]} || ${VENDOR_LICENSES[@]} ]]; then - [[ ${missing[@]} ]] && - eerror "License missing for packages: ${missing[*]}" - [[ ${VENDOR_LICENSES[@]} ]] && - eerror "Vendored packages removed: ${!VENDOR_LICENSES[*]}" - die "VENDOR_LICENSES outdated" - fi -} - -python_compile() { - # If we're testing, install for all implementations. - # If we're not, just get one wheel built. - if use test || [[ -z ${DISTUTILS_WHEEL_PATH} ]]; then - distutils-r1_python_compile - fi -} - -python_test() { - local EPYTEST_DESELECT=( - # TODO - setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic - setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors - # TODO, probably some random package - setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass - # relies on -Werror - setuptools/_static.py::setuptools._static.Dict - setuptools/_static.py::setuptools._static.List - ) - - case ${EPYTHON} in - pypy3.11) - EPYTEST_DESELECT+=( - setuptools/tests/test_editable_install.py::TestCustomBuildWheel::test_access_plat_name - ) - ;; - esac - - local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH} - epytest -o tmp_path_retention_policy=all \ - -m "not uses_network" setuptools -} - -src_install() { - if [[ ${DISTUTILS_WHEEL_PATH} != *py3-none-any.whl ]]; then - die "Non-pure wheel produced?! ${DISTUTILS_WHEEL_PATH}" - fi - # TODO: compress it? - insinto /usr/lib/python/ensurepip - doins "${DISTUTILS_WHEEL_PATH}" -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/ensurepip-setuptools-81.0.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/ensurepip-setuptools-81.0.0.ebuild deleted file mode 100644 index b21255f360c..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/ensurepip-setuptools-81.0.0.ebuild +++ /dev/null @@ -1,137 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=standalone -PYPI_PN=${PN#ensurepip-} -# PYTHON_COMPAT used only for testing -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) -PYTHON_REQ_USE="xml(+)" - -inherit distutils-r1 pypi - -DESCRIPTION="Shared setuptools wheel for ensurepip Python module" -HOMEPAGE=" - https://github.com/pypa/setuptools/ - https://pypi.org/project/setuptools/ -" - -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" -IUSE="test" -RESTRICT="!test? ( test )" - -BDEPEND=" - ${RDEPEND} - test? ( - >=dev-python/build-1.0.3[${PYTHON_USEDEP}] - >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}] - >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}] - >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}] - >=dev-python/jaraco-path-3.7.2[${PYTHON_USEDEP}] - >=dev-python/jaraco-test-5.5[${PYTHON_USEDEP}] - dev-python/pip[${PYTHON_USEDEP}] - dev-python/pyproject-hooks[${PYTHON_USEDEP}] - >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}] - >=dev-python/virtualenv-20[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=( pytest-{home,subprocess,timeout} ) -EPYTEST_XDIST=1 -distutils_enable_tests pytest - -declare -A VENDOR_LICENSES=( - [autocommand]=LGPL-3 - [backports.tarfile]=MIT - [importlib_metadata]=Apache-2.0 - [jaraco_context]=MIT - [jaraco_functools]=MIT - [jaraco.text]=MIT - [more_itertools]=MIT - [packaging]="|| ( Apache-2.0 MIT )" - [platformdirs]=MIT - [tomli]=MIT - [wheel]=MIT - [zipp]=MIT -) -LICENSE+=" ${VENDOR_LICENSES[*]}" - -src_prepare() { - distutils-r1_src_prepare - - # Verify that we've covered licenses for all vendored packages - cd setuptools/_vendor || die - local packages=( *.dist-info ) - local pkg missing=() - for pkg in "${packages[@]%%-*}"; do - if [[ ! -v "VENDOR_LICENSES[${pkg}]" ]]; then - missing+=( "${pkg}" ) - else - unset "VENDOR_LICENSES[${pkg}]" - fi - done - - if [[ ${missing[@]} || ${VENDOR_LICENSES[@]} ]]; then - [[ ${missing[@]} ]] && - eerror "License missing for packages: ${missing[*]}" - [[ ${VENDOR_LICENSES[@]} ]] && - eerror "Vendored packages removed: ${!VENDOR_LICENSES[*]}" - die "VENDOR_LICENSES outdated" - fi -} - -python_compile() { - # If we're testing, install for all implementations. - # If we're not, just get one wheel built. - if use test || [[ -z ${DISTUTILS_WHEEL_PATH} ]]; then - distutils-r1_python_compile - fi -} - -python_test() { - local EPYTEST_DESELECT=( - # TODO - setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic - setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors - # TODO, probably some random package - setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass - # relies on -Werror - setuptools/_static.py::setuptools._static.Dict - setuptools/_static.py::setuptools._static.List - # Internet - setuptools/tests/test_namespaces.py::TestNamespaces::test_mixed_site_and_non_site - setuptools/tests/test_namespaces.py::TestNamespaces::test_namespace_package_installed_and_cwd - setuptools/tests/test_namespaces.py::TestNamespaces::test_packages_in_the_same_namespace_installed_and_cwd - setuptools/tests/test_namespaces.py::TestNamespaces::test_pkg_resources_import - # broken by warnings from setuptools-scm - setuptools/tests/config/test_apply_pyprojecttoml.py::TestPresetField::test_scripts_dont_require_dynamic_entry_points - # TODO - setuptools/tests/test_config_discovery.py::TestDiscoverPackagesAndPyModules::test_py_modules_when_wheel_dir_is_cwd - 'setuptools/tests/test_egg_info.py::TestEggInfo::test_requires[setup_requires_with_markers]' - ) - - case ${EPYTHON} in - pypy3.11) - EPYTEST_DESELECT+=( - # fails and breaks other tests - setuptools/tests/test_editable_install.py - ) - ;; - esac - - local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH} - epytest -o tmp_path_retention_policy=all \ - -m "not uses_network" setuptools -} - -src_install() { - if [[ ${DISTUTILS_WHEEL_PATH} != *py3-none-any.whl ]]; then - die "Non-pure wheel produced?! ${DISTUTILS_WHEEL_PATH}" - fi - # TODO: compress it? - insinto /usr/lib/python/ensurepip - doins "${DISTUTILS_WHEEL_PATH}" -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/ensurepip-setuptools-82.0.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/ensurepip-setuptools-82.0.0.ebuild deleted file mode 100644 index b21255f360c..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/ensurepip-setuptools-82.0.0.ebuild +++ /dev/null @@ -1,137 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=standalone -PYPI_PN=${PN#ensurepip-} -# PYTHON_COMPAT used only for testing -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) -PYTHON_REQ_USE="xml(+)" - -inherit distutils-r1 pypi - -DESCRIPTION="Shared setuptools wheel for ensurepip Python module" -HOMEPAGE=" - https://github.com/pypa/setuptools/ - https://pypi.org/project/setuptools/ -" - -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" -IUSE="test" -RESTRICT="!test? ( test )" - -BDEPEND=" - ${RDEPEND} - test? ( - >=dev-python/build-1.0.3[${PYTHON_USEDEP}] - >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}] - >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}] - >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}] - >=dev-python/jaraco-path-3.7.2[${PYTHON_USEDEP}] - >=dev-python/jaraco-test-5.5[${PYTHON_USEDEP}] - dev-python/pip[${PYTHON_USEDEP}] - dev-python/pyproject-hooks[${PYTHON_USEDEP}] - >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}] - >=dev-python/virtualenv-20[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=( pytest-{home,subprocess,timeout} ) -EPYTEST_XDIST=1 -distutils_enable_tests pytest - -declare -A VENDOR_LICENSES=( - [autocommand]=LGPL-3 - [backports.tarfile]=MIT - [importlib_metadata]=Apache-2.0 - [jaraco_context]=MIT - [jaraco_functools]=MIT - [jaraco.text]=MIT - [more_itertools]=MIT - [packaging]="|| ( Apache-2.0 MIT )" - [platformdirs]=MIT - [tomli]=MIT - [wheel]=MIT - [zipp]=MIT -) -LICENSE+=" ${VENDOR_LICENSES[*]}" - -src_prepare() { - distutils-r1_src_prepare - - # Verify that we've covered licenses for all vendored packages - cd setuptools/_vendor || die - local packages=( *.dist-info ) - local pkg missing=() - for pkg in "${packages[@]%%-*}"; do - if [[ ! -v "VENDOR_LICENSES[${pkg}]" ]]; then - missing+=( "${pkg}" ) - else - unset "VENDOR_LICENSES[${pkg}]" - fi - done - - if [[ ${missing[@]} || ${VENDOR_LICENSES[@]} ]]; then - [[ ${missing[@]} ]] && - eerror "License missing for packages: ${missing[*]}" - [[ ${VENDOR_LICENSES[@]} ]] && - eerror "Vendored packages removed: ${!VENDOR_LICENSES[*]}" - die "VENDOR_LICENSES outdated" - fi -} - -python_compile() { - # If we're testing, install for all implementations. - # If we're not, just get one wheel built. - if use test || [[ -z ${DISTUTILS_WHEEL_PATH} ]]; then - distutils-r1_python_compile - fi -} - -python_test() { - local EPYTEST_DESELECT=( - # TODO - setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic - setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors - # TODO, probably some random package - setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass - # relies on -Werror - setuptools/_static.py::setuptools._static.Dict - setuptools/_static.py::setuptools._static.List - # Internet - setuptools/tests/test_namespaces.py::TestNamespaces::test_mixed_site_and_non_site - setuptools/tests/test_namespaces.py::TestNamespaces::test_namespace_package_installed_and_cwd - setuptools/tests/test_namespaces.py::TestNamespaces::test_packages_in_the_same_namespace_installed_and_cwd - setuptools/tests/test_namespaces.py::TestNamespaces::test_pkg_resources_import - # broken by warnings from setuptools-scm - setuptools/tests/config/test_apply_pyprojecttoml.py::TestPresetField::test_scripts_dont_require_dynamic_entry_points - # TODO - setuptools/tests/test_config_discovery.py::TestDiscoverPackagesAndPyModules::test_py_modules_when_wheel_dir_is_cwd - 'setuptools/tests/test_egg_info.py::TestEggInfo::test_requires[setup_requires_with_markers]' - ) - - case ${EPYTHON} in - pypy3.11) - EPYTEST_DESELECT+=( - # fails and breaks other tests - setuptools/tests/test_editable_install.py - ) - ;; - esac - - local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH} - epytest -o tmp_path_retention_policy=all \ - -m "not uses_network" setuptools -} - -src_install() { - if [[ ${DISTUTILS_WHEEL_PATH} != *py3-none-any.whl ]]; then - die "Non-pure wheel produced?! ${DISTUTILS_WHEEL_PATH}" - fi - # TODO: compress it? - insinto /usr/lib/python/ensurepip - doins "${DISTUTILS_WHEEL_PATH}" -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/ensurepip-setuptools-82.0.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/ensurepip-setuptools-82.0.1.ebuild index b21255f360c..ac0d3a70443 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/ensurepip-setuptools-82.0.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-setuptools/ensurepip-setuptools-82.0.1.ebuild @@ -19,7 +19,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" IUSE="test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/Manifest index b3c6b27a2ec..cafb7ef983a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/Manifest @@ -1,2 +1 @@ -DIST fastjsonschema-2.21.1.tar.gz 373939 BLAKE2B 2cd91b1ff6aa6e9996faf93d3f0d49cacb7f1b2bbb7001e0e01ce8bf385ac8ff84ce6d1c1c5f8607d05d675b0d42f3f5caee781547907f96717d504312d0902b SHA512 935c68ede28f7026825114ec588ae39713cf28eba9bafc68e106111da92f7cf1f25101a06c4b841f7198f55540af719853efe04f5e25f0cc92ef6638d638c54e DIST fastjsonschema-2.21.2.tar.gz 374130 BLAKE2B 198cca481d765b43b21101020718b59e3ccba2728a0a2a0ce56c7b73ce1ff6102c2e3916c9fd4c8fe8f2f3e931d87fd7ffc76e6d7983c5a2d87eca2cfa5aa721 SHA512 9e16f533065267ba48eeda70e8a41fdc10b1b99832a3ddaa0d48d01a783e4555d2fb790201ca3f47b959d3e1f06f68b9f83672f90cc1969355d28f0f24cb9837 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/fastjsonschema-2.21.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/fastjsonschema-2.21.1.ebuild deleted file mode 100644 index b3d132e3d15..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/fastjsonschema-2.21.1.ebuild +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 2020-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) - -inherit distutils-r1 pypi - -DESCRIPTION="Fast JSON schema validator for Python" -HOMEPAGE=" - https://github.com/horejsek/python-fastjsonschema/ - https://pypi.org/project/fastjsonschema/ -" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - -distutils_enable_tests pytest - -EPYTEST_IGNORE=( - tests/benchmarks -) diff --git a/sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/fastjsonschema-2.21.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/fastjsonschema-2.21.2.ebuild index 12727d6bc08..0e4bd4296d2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/fastjsonschema-2.21.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/fastjsonschema-2.21.2.ebuild @@ -1,10 +1,10 @@ -# Copyright 2020-2025 Gentoo Authors +# Copyright 2020-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) +PYTHON_COMPAT=( pypy3_11 python3_{11..15} ) inherit distutils-r1 pypi diff --git a/sdk_container/src/third_party/portage-stable/dev-python/flit-core/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/flit-core/Manifest index cf5c2428e8a..e1d4e90f3a2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/flit-core/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/flit-core/Manifest @@ -1 +1,2 @@ DIST flit_core-3.12.0.tar.gz 53690 BLAKE2B 2dbc8cb1803d2b05693d458ab29d141631af268ad1620ccd91d7fe1636eab6c776c5482d94fdd2006dafa8b5cb45cb41d29fb80ac91e29877b43ba8e94ac2bd5 SHA512 189dcd674722164b165e18b11c4dc72b8309fa2e3c82fc1ed6a9160bb5c6c1f86e2b2cfa111603cf73dca0dba74a496a664d5cbb6242587b47f139c42f7ae8bd +DIST flit_core-3.12.0.tar.gz.provenance 9041 BLAKE2B 565e305d207998db9d44d21a857f71e20aff110126f099800461f551bac89a3dd692eafe053c54f4f68a7d9d34b9c60c52415a80ccbce4f577963da59164cc3e SHA512 a59272bcc25fafbba551030602fc0ae7601f2d5aa912a37eedf7e364f69186719f0636cd824c4c51145f1c848b5a8005c5b886a593c9b4c46afd9f039000f04f diff --git a/sdk_container/src/third_party/portage-stable/dev-python/flit-core/flit-core-3.12.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/flit-core/flit-core-3.12.0.ebuild index f10cb335e91..9bafd47d7d3 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/flit-core/flit-core-3.12.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/flit-core/flit-core-3.12.0.ebuild @@ -1,11 +1,12 @@ -# Copyright 2019-2025 Gentoo Authors +# Copyright 2019-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # please keep this ebuild at EAPI 8 -- sys-apps/portage dep EAPI=8 DISTUTILS_USE_PEP517=standalone -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) +PYPI_VERIFY_REPO=https://github.com/pypa/flit +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) inherit distutils-r1 pypi @@ -23,6 +24,7 @@ BDEPEND=" test? ( dev-python/testpath[${PYTHON_USEDEP}] ) " +EPYTEST_PLUGINS=() distutils_enable_tests pytest src_prepare() { @@ -33,8 +35,3 @@ src_prepare() { sed -i -e 's:from \.vendor ::' flit_core/*.py || die sed -i -e '/license-files/d' pyproject.toml || die } - -python_test() { - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - epytest -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/gpep517/gpep517-19.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/gpep517/gpep517-19.ebuild index f4312018151..1319effb33c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/gpep517/gpep517-19.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/gpep517/gpep517-19.ebuild @@ -1,11 +1,11 @@ -# Copyright 2022-2025 Gentoo Authors +# Copyright 2022-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # please keep this ebuild at EAPI 8 -- sys-apps/portage dep EAPI=8 DISTUTILS_USE_PEP517=no -PYTHON_COMPAT=( pypy3_11 python3_{11..14} python3_{13,14}t ) +PYTHON_COMPAT=( pypy3_11 python3_{11..15} python3_{13..15}t ) inherit distutils-r1 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/hatch-vcs/hatch-vcs-0.5.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/hatch-vcs/hatch-vcs-0.5.0.ebuild index bcbd8aee9c4..4646c907dc5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/hatch-vcs/hatch-vcs-0.5.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/hatch-vcs/hatch-vcs-0.5.0.ebuild @@ -1,10 +1,10 @@ -# Copyright 2022-2025 Gentoo Authors +# Copyright 2022-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=hatchling -PYTHON_COMPAT=( pypy3_11 python3_{11..14} python3_{13,14}t ) +PYTHON_COMPAT=( pypy3_11 python3_{11..15} python3_{13..15}t ) inherit distutils-r1 @@ -31,4 +31,5 @@ BDEPEND=" ) " +EPYTEST_PLUGINS=() distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/hatchling/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/hatchling/Manifest index 91f364775c6..6042bd81390 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/hatchling/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/hatchling/Manifest @@ -1,3 +1 @@ -DIST hatch-hatchling-v1.27.0.gh.tar.gz 5275714 BLAKE2B 5db266a4efa8d315ac991b4f109834cbe3710d6b944de78591f3707d1552a60ac24c1970c093190c2b3fdb8515d7ed5f4af7a32a1a364cefe9f4c08eef84b369 SHA512 d519428c4c7c21950df2484f38332b5c89525347f3557ff21a55a85811955c8466f6eb4f919d824ab7a576cd35d8a59e4a5e7827100f6ea1e38c10c0f1864a29 -DIST hatch-hatchling-v1.28.0.gh.tar.gz 5296066 BLAKE2B 2def4eee372b0fbf2019c716f63fdd35b110ce6a17a0fcfd4208a52334cd16ab1db9bd73d3a46ab652dd43ac8be02fb1bd4f5b7df44016895523f7900001ab99 SHA512 cbf29be0d0e2e0053c39034a697b4bebce4754205713c9dc35c9f3c9ea9be2652924664c0d11b90869443995c6f9f06ce20ca06afe10a2ac174a0e9dc2e737a2 DIST hatch-hatchling-v1.29.0.gh.tar.gz 5301488 BLAKE2B d1e36649483f213c56488caf018ad3a3310fafa944e11484ae613021e081999a80321d353c68cfb64bc149558e2c996b788f7b11a228d2f658175165d515bdcd SHA512 321f9ab996dcab54341653e2abf5bdb893c4ac307c62aa9f0dd222609a18f82cd502fb0d0ac598f109d519a0dc8ab40866a37d1ea4023d7d58fe442da7c32ff9 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/hatchling/hatchling-1.27.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/hatchling/hatchling-1.27.0.ebuild deleted file mode 100644 index afeb21abdba..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/hatchling/hatchling-1.27.0.ebuild +++ /dev/null @@ -1,101 +0,0 @@ -# Copyright 2022-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=standalone -PYTHON_TESTED=( pypy3_11 python3_{11..14} ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) - -inherit distutils-r1 - -TAG=${P/-/-v} -MY_P=hatch-${TAG} -DESCRIPTION="Modern, extensible Python build backend" -HOMEPAGE=" - https://pypi.org/project/hatchling/ - https://github.com/pypa/hatch/ -" -SRC_URI=" - https://github.com/pypa/hatch/archive/${TAG}.tar.gz - -> ${MY_P}.gh.tar.gz -" -S=${WORKDIR}/${MY_P}/backend - -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" -IUSE="test" -RESTRICT="!test? ( test )" - -# deps are listed in backend/src/hatchling/ouroboros.py -# editables are optional but required for editable installs -RDEPEND=" - >=dev-python/editables-0.3[${PYTHON_USEDEP}] - >=dev-python/packaging-24.2[${PYTHON_USEDEP}] - >=dev-python/pathspec-0.10.1[${PYTHON_USEDEP}] - >=dev-python/pluggy-1.0.0[${PYTHON_USEDEP}] - $(python_gen_cond_dep ' - >=dev-python/tomli-1.2.2[${PYTHON_USEDEP}] - ' 3.10) - dev-python/trove-classifiers[${PYTHON_USEDEP}] -" -BDEPEND=" - ${RDEPEND} - test? ( - $(python_gen_cond_dep ' - dev-python/atomicwrites[${PYTHON_USEDEP}] - dev-python/click[${PYTHON_USEDEP}] - dev-python/httpx[${PYTHON_USEDEP}] - dev-python/platformdirs[${PYTHON_USEDEP}] - dev-python/pytest[${PYTHON_USEDEP}] - dev-python/pytest-mock[${PYTHON_USEDEP}] - dev-python/rich[${PYTHON_USEDEP}] - dev-python/tomli-w[${PYTHON_USEDEP}] - dev-python/virtualenv[${PYTHON_USEDEP}] - ' "${PYTHON_TESTED[@]}") - ) -" - -src_test() { - # top-level "tests" directory contains tests both for hatch - # and hatchling - cd "${WORKDIR}/${MY_P}" || die - - # sigh; standalone test suites are overrated, right? - echo "__version__ = '${PV}'" > src/hatch/_version.py || die - local -x PYTHONPATH="src:${PYTHONPATH}" - - # do not require uv for portability, sigh - mkdir "${T}/bin" || die - cat > "${T}/bin/uv" <<-EOF || die - #!/bin/sh - exit 127 - EOF - chmod +x "${T}/bin/uv" || die - local -x PATH=${T}/bin:${PATH} - - # tests mock cargo subprocess call but the backend raises if CARGO - # is not set and shutil.which() can't find it - local -x CARGO=cargo - - distutils-r1_src_test -} - -python_test() { - if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then - einfo "Skipping tests on ${EPYTHON}" - return - fi - - local -x EPYTEST_DESELECT=( - # most of these run uv to install stuff - # the few remaining tests aren't worth running - tests/backend/dep/test_core.py - # broken if CARGO is set - tests/backend/builders/test_binary.py::TestBuildBootstrap::test_no_cargo - ) - - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - epytest -p pytest_mock tests/backend -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/hatchling/hatchling-1.28.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/hatchling/hatchling-1.28.0.ebuild deleted file mode 100644 index 44e7f59ad80..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/hatchling/hatchling-1.28.0.ebuild +++ /dev/null @@ -1,101 +0,0 @@ -# Copyright 2022-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=standalone -PYTHON_TESTED=( pypy3_11 python3_{11..14} ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) - -inherit distutils-r1 - -TAG=${P/-/-v} -MY_P=hatch-${TAG} -DESCRIPTION="Modern, extensible Python build backend" -HOMEPAGE=" - https://pypi.org/project/hatchling/ - https://github.com/pypa/hatch/ -" -SRC_URI=" - https://github.com/pypa/hatch/archive/${TAG}.tar.gz - -> ${MY_P}.gh.tar.gz -" -S=${WORKDIR}/${MY_P}/backend - -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" -IUSE="test" -RESTRICT="!test? ( test )" - -# deps are listed in backend/src/hatchling/ouroboros.py -# editables are optional but required for editable installs -RDEPEND=" - >=dev-python/editables-0.3[${PYTHON_USEDEP}] - >=dev-python/packaging-24.2[${PYTHON_USEDEP}] - >=dev-python/pathspec-0.10.1[${PYTHON_USEDEP}] - >=dev-python/pluggy-1.0.0[${PYTHON_USEDEP}] - $(python_gen_cond_dep ' - >=dev-python/tomli-1.2.2[${PYTHON_USEDEP}] - ' 3.10) - dev-python/trove-classifiers[${PYTHON_USEDEP}] -" -BDEPEND=" - ${RDEPEND} - test? ( - $(python_gen_cond_dep ' - dev-python/atomicwrites[${PYTHON_USEDEP}] - dev-python/click[${PYTHON_USEDEP}] - dev-python/httpx[${PYTHON_USEDEP}] - dev-python/platformdirs[${PYTHON_USEDEP}] - dev-python/pytest[${PYTHON_USEDEP}] - dev-python/pytest-mock[${PYTHON_USEDEP}] - dev-python/rich[${PYTHON_USEDEP}] - dev-python/tomli-w[${PYTHON_USEDEP}] - dev-python/virtualenv[${PYTHON_USEDEP}] - ' "${PYTHON_TESTED[@]}") - ) -" - -src_test() { - # top-level "tests" directory contains tests both for hatch - # and hatchling - cd "${WORKDIR}/${MY_P}" || die - - # sigh; standalone test suites are overrated, right? - echo "__version__ = '${PV}'" > src/hatch/_version.py || die - local -x PYTHONPATH="src:${PYTHONPATH}" - - # do not require uv for portability, sigh - mkdir "${T}/bin" || die - cat > "${T}/bin/uv" <<-EOF || die - #!/bin/sh - exit 127 - EOF - chmod +x "${T}/bin/uv" || die - local -x PATH=${T}/bin:${PATH} - - # tests mock cargo subprocess call but the backend raises if CARGO - # is not set and shutil.which() can't find it - local -x CARGO=cargo - - distutils-r1_src_test -} - -python_test() { - if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then - einfo "Skipping tests on ${EPYTHON}" - return - fi - - local -x EPYTEST_DESELECT=( - # most of these run uv to install stuff - # the few remaining tests aren't worth running - tests/backend/dep/test_core.py - # broken if CARGO is set - tests/backend/builders/test_binary.py::TestBuildBootstrap::test_no_cargo - ) - - local EPYTEST_PLUGINS=( pytest-mock ) - epytest tests/backend -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/hatchling/hatchling-1.29.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/hatchling/hatchling-1.29.0.ebuild index df05e77c380..4e17b514368 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/hatchling/hatchling-1.29.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/hatchling/hatchling-1.29.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DISTUTILS_USE_PEP517=standalone PYTHON_TESTED=( pypy3_11 python3_{11..14} ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_15 python3_{13..15}t ) inherit distutils-r1 @@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}/backend 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" IUSE="test" RESTRICT="!test? ( test )" 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 e41092816d7..40b821da952 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,2 +1,6 @@ -DIST idna-3.10.tar.gz 190490 BLAKE2B 887d92fd54b2f55b33856fcb9af3d6541a8cb28b9d49d1ee621dac7e1597ad5d2370000d6bfd895d5e515b4b6837949b5085fb391f283c375ffe4529072a8dd6 SHA512 bdc00fb42c48a34ec3df91b0592fe41785061f891a252ce82f168d99089a52e8e5bc7a823794f61e7915c0f691d911ed8b3bf7aecf3e2aeb3fc85da4ef35f47e -DIST idna-3.11.tar.gz 194582 BLAKE2B aae4678630c54453d924938bca45b75517be531c27e5b4f87ca2f4718b8feae735da43af3f7a0481cfb39b5e60decbca7abcf6e3c89e46945193d75220bc93fe SHA512 f99359b515ae66a124f21336c8b5a4d2842c2ac6f64b2f6f3e25502f376d799bec848fbbf49d886f4ff787e72a0aa49a3416d63f213bc872fc980eaaa977c917 +DIST idna-3.14.tar.gz 198272 BLAKE2B e7c7084109b82c797a9d04074e77533eedd1b339e334a9f48beee4405c1f62b9bcad02ec726445c71b96354088cedc23ee3b9cd3772a77b004f06a2f66382e76 SHA512 be45700d70b8527445c00c9f760311a448d1a38116883e69549405ebc89b78dded0a939625564841c44c51efaad03e2054ba883f284b152552b9fe84ffdb229b +DIST idna-3.14.tar.gz.provenance 8986 BLAKE2B a9cbeae466fc385c997838513fe35efc862741be2f6b80f0c1151272b0bb473d6ed7efaa8584be1d647d8ed76127a524c7aaa102b248d16c1f9d51baf71af0a6 SHA512 e982ee5071a6a3ba7760c9e622419e47fce5fd210583ba78e70c5ac07a78adb3b2d6479020a7f2c8988b4a45b50b3968412a86d054e57df176c8817d1b54338b +DIST idna-3.15.tar.gz 199245 BLAKE2B fa738fd388a5a7d5a67db32e117b4e226c525673981e63a950d8044b9df49a6af5ce7b6db146455233b294648a79b1ca20b14cbe13283ed11a02413120a54338 SHA512 8cd0efd9f82d1e5ec73b06202fed42c54e9aee4ebf5612fe29cb6c76f459d24027e545339dc3e79ad9abd0849b0e31bca42bf41f36c87391d9707f92b8326e26 +DIST idna-3.15.tar.gz.provenance 9268 BLAKE2B 83321fc9054407e98c6d1681481edbab71965b37ef88d85a37d50cb2611166d35adbd3571041e1e3b20a7344cd8b4f8840a322df8acc771d3d3d046703bf386f SHA512 413242a897960230b76e5c4f50cbd6e7560bd2694e9bb834ea758958cf359218587cde31c34f377d3abf3447cea9f39580bd89a88d52518b0b4aa97260454228 +DIST idna-3.16.tar.gz 203770 BLAKE2B 9c5f3bb70bce27492241ebd786a4d55254de059a4cce65f999aadf06953d16fe739821051dcd4a4a6bded5e923a4aea27c819a58290b08addc7b3eabe6be05bb SHA512 abeff925d95de523a393b460b5865bed8871c670149f8229adb06d49c08459ff2c2f317c49f614b03218fa11b4ec1f1b6fa2d407a634711506b8f166d4aa6020 +DIST idna-3.16.tar.gz.provenance 9315 BLAKE2B 0eb00371eeed32442723485fae4dd2ad62c13a13e2321c0d0728830e862fcf85d0604963020ff17938aa5cf2179791bff9955533c05008006c5d2b3d43b3125c SHA512 733fb40fbe5f15d5b43505bb8da027e6ec3414a2b8f4186d39f35eb5056d89f236b64748bf66e89ae1dd06e4fc69286f0b64ba8a046de984a28c83cfb5f76182 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/idna/idna-3.10.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/idna/idna-3.10.ebuild deleted file mode 100644 index 621533bb780..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/idna/idna-3.10.ebuild +++ /dev/null @@ -1,22 +0,0 @@ -# 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 ~arm64-macos ~x64-macos ~x64-solaris" - -distutils_enable_tests unittest 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 deleted file mode 100644 index 621533bb780..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/idna/idna-3.11.ebuild +++ /dev/null @@ -1,22 +0,0 @@ -# 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 ~arm64-macos ~x64-macos ~x64-solaris" - -distutils_enable_tests unittest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/idna/idna-3.14.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/idna/idna-3.14.ebuild new file mode 100644 index 00000000000..e02a248b3f7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/idna/idna-3.14.ebuild @@ -0,0 +1,23 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYPI_VERIFY_REPO=https://github.com/kjd/idna +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}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 ~arm64-macos ~x64-macos ~x64-solaris" + +distutils_enable_tests unittest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/idna/idna-3.15.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/idna/idna-3.15.ebuild new file mode 100644 index 00000000000..d70ef90abbe --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/idna/idna-3.15.ebuild @@ -0,0 +1,23 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYPI_VERIFY_REPO=https://github.com/kjd/idna +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}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 ~arm64-macos ~x64-macos ~x64-solaris" + +distutils_enable_tests unittest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/idna/idna-3.16.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/idna/idna-3.16.ebuild new file mode 100644 index 00000000000..d70ef90abbe --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/idna/idna-3.16.ebuild @@ -0,0 +1,23 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYPI_VERIFY_REPO=https://github.com/kjd/idna +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}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 ~arm64-macos ~x64-macos ~x64-solaris" + +distutils_enable_tests unittest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/installer/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/installer/Manifest index 2dad2ff96f1..057413dffd0 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/installer/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/installer/Manifest @@ -1,2 +1,6 @@ DIST installer-0.7.0-py3-none-any.whl.zip 453838 BLAKE2B 59bb698e7a4232a5254b6f6c4a042c68a22a26e15c1205707d3c9734513e92bf4518a09341619eab9ef0023ee65fcaa9837a4befb7a2452f1592411654374595 SHA512 8e10013521238ef8fb2f5ab4bd00f6154c05046011cad8824d96b7cdc4ed235b87e534d1e163a47a11dbfb5bb3cf19d9a2ea3edd1e9c9ce5fbc9a375010c36dc DIST installer-0.7.0.tar.gz 474349 BLAKE2B 76b86d14c0f4f0eba091ff08ef27e1b2f23c93318d197b3c41f5fef45eb11acc54bb1d35e3afc1e0dd98b30cc4cd3d9963ab1ba0bfe9d294ee3d0933ddaa24db SHA512 e89c2d28ca73d9c4291d645dda675fdcfcaba2e4f8765b9fa4a2f211e27711510f3d171b96a6b024c11808ba7f06b7b560a7cb31fafba815bd5c7396f26789f7 +DIST installer-1.0.1-py3-none-any.whl 464455 BLAKE2B 2856ed291d82acae94af2ea622554356f960175bb7961da11d2e434eb80fbc5346e24e01a0603c55a2bd8a22e44be1d8200a872d35d88d339e91461ac62e004c SHA512 655b26bea8a979a23f752346e54117b2513bfa8cc7932efa4ed8d6ccccc52f320d84904d989c235321cf69688eeec806e749632cfd57873dc91b59524823c85c +DIST installer-1.0.1-py3-none-any.whl.provenance 9282 BLAKE2B 1b2400ad2db330c2f0e1a72deae66779fe4261bbd7433b13b87cd9be8d0bc7a273f681ca77136cbaf7c7edc2c132b16d0e30a86b2a56bd194654cc07cca26041 SHA512 5831d2c3608ee8fa5477283b6dfddaedb6730da5da0568261b17e22117c6c4a5a2ae21ed0d6d5549cbcab88f9dd3823462a1fff487ec5335ac1dff867e715a63 +DIST installer-1.0.1.tar.gz 481132 BLAKE2B 95bf26cb5d14c934f8126b656aec519a51199ec9ea95bc903016a170cbc906a884f4571a060c175ca4bb47f27cabf265c91c5c769b62d51158ee66a128aae040 SHA512 cabc4efb8ce66ce85c2139e264f66c449f9e5cf1f8c860afa7f147daf0b983716fe02182ef1f6e4abbc4b6be34d75738a0281c77dda9d48a075c212301278a73 +DIST installer-1.0.1.tar.gz.provenance 9321 BLAKE2B 6df8598216f029c7e524e28ac045fb4f89c529c1e79c6ac15ebe1d68a74b787b3d83855079cc5148f5f14b96b3bca44fdc446643e296dc352c9aa7a3fd1af34e SHA512 593b2a63d4cca980faf0eb1c0125117afeb94c580bac5680e1fdc71e27bfb2cd232fe9c986e2eb5a5b4316e31613eeea428f6800ebcc7f7389321af37c718217 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/installer/installer-0.7.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/installer/installer-0.7.0.ebuild index 80c144eee74..de554d8a562 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/installer/installer-0.7.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/installer/installer-0.7.0.ebuild @@ -1,11 +1,11 @@ -# Copyright 2022-2025 Gentoo Authors +# Copyright 2022-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # please keep this ebuild at EAPI 8 -- sys-apps/portage dep EAPI=8 DISTUTILS_USE_PEP517=no -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) inherit distutils-r1 pypi @@ -27,6 +27,7 @@ BDEPEND=" app-arch/unzip " +EPYTEST_PLUGINS=() distutils_enable_tests pytest python_compile() { diff --git a/sdk_container/src/third_party/portage-stable/dev-python/installer/installer-1.0.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/installer/installer-1.0.1.ebuild new file mode 100644 index 00000000000..be8567454e6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/installer/installer-1.0.1.ebuild @@ -0,0 +1,71 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=no +PYPI_VERIFY_REPO=https://github.com/pypa/installer +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) + +inherit distutils-r1 pypi + +WHEEL_NAME=$(pypi_wheel_name) +DESCRIPTION="A library for installing Python wheels" +HOMEPAGE=" + https://pypi.org/project/installer/ + https://github.com/pypa/installer/ + https://installer.readthedocs.io/en/latest/ +" +SRC_URI+=" + $(pypi_wheel_url) + verify-provenance? ( + $(pypi_provenance_url "${WHEEL_NAME}") -> ${WHEEL_NAME}.provenance + ) +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + +BDEPEND=" + app-arch/unzip +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +src_unpack() { + if use verify-provenance; then + pypi_verify_provenance "${DISTDIR}/${WHEEL_NAME}"{,.provenance} + fi + + pypi_src_unpack + + cp "${DISTDIR}/${WHEEL_NAME}" "${WHEEL_NAME}.zip" || die + unpack "./${WHEEL_NAME}.zip" +} + +python_compile() { + python_domodule src/installer "${WORKDIR}"/*.dist-info +} + +python_test() { + local EPYTEST_DESELECT=() + + case ${EPYTHON} in + python3.15*) + EPYTEST_DESELECT+=( + # extra warnings for os.path.commonprefix() + tests/test_core.py::TestInstall::test_skips_pycache_and_warns + ) + ;; + esac + + epytest +} + +python_install() { + distutils-r1_python_install + python_optimize +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-collections/jaraco-collections-5.2.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-collections/jaraco-collections-5.2.1.ebuild index 6bb5317fa20..26b3d67058e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-collections/jaraco-collections-5.2.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-collections/jaraco-collections-5.2.1.ebuild @@ -1,11 +1,11 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=flit PYPI_PN=${PN/-/.} -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) inherit distutils-r1 pypi @@ -23,6 +23,7 @@ RDEPEND=" dev-python/jaraco-text[${PYTHON_USEDEP}] " +EPYTEST_PLUGINS=() distutils_enable_tests pytest src_configure() { @@ -35,8 +36,3 @@ src_configure() { -e '/^dynamic =/d' \ pyproject.toml || die } - -python_test() { - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - epytest -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-context/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-context/Manifest index 8fe7538bcc1..5b8e1f9cd96 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-context/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-context/Manifest @@ -1,3 +1 @@ -DIST jaraco_context-6.1.0.tar.gz 15850 BLAKE2B e7d25d18fa97e77ce152b9152326e4980f305fd9ade71cc890546d8400c4102bb5bcc896b8ae079876f69e7d685d88d3c14bfae7aed46be5e28bad0c89caa77d SHA512 19f9fe4e00cc94f46177604e2a6e44af3c21be22b2059f8f7d0c586a77007196a163df68e545808b5f73d10c4e429903ff33274f110a15601481f4eff8cf9f8f -DIST jaraco_context-6.1.1.tar.gz 15832 BLAKE2B bf329f1cb601bb793f68caa214cc683d968ac3a08615522868f451df5c4430d131d1a1cb3d8ff8d4d9165c0502432d3f401896911c0c0ea2827af69871dd8f50 SHA512 38ea4be2972ae21f98d3c1d77363db8d82d88ff786757004d7adc576383960c8193cdd89e5662b0772b99072fe4cd7099815f179f8042a6d64f335c0d3dd66ff DIST jaraco_context-6.1.2.tar.gz 16801 BLAKE2B 85c9f0b6dde0c30839dd248eb34a094fe6e2ad3d56ac10b55f7e6d648dc30a7af6e2d5da500ad360dedf809437f958719579395f4b5c3ccc9af7ea1d1c2e57ea SHA512 2aac4b3263685e73121b2f4bb2a059a8175544c71fdda0a28e26565090ced8c4e0b3e238e6aed32caa21512f228a06b4b576ec6d8335f71629800be149248d82 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-context/jaraco-context-6.1.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-context/jaraco-context-6.1.0.ebuild deleted file mode 100644 index 208f6c5506b..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-context/jaraco-context-6.1.0.ebuild +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# please keep this ebuild at EAPI 8 -- sys-apps/portage dep -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYPI_PN=${PN/-/.} -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="Context managers by jaraco" -HOMEPAGE=" - https://github.com/jaraco/jaraco.context/ - https://pypi.org/project/jaraco.context/ -" - -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" - -RDEPEND=" - $(python_gen_cond_dep ' - dev-python/backports-tarfile[${PYTHON_USEDEP}] - ' 3.11) -" -BDEPEND=" - test? ( - dev-python/portend[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -EPYTEST_DESELECT=( - # Internet - jaraco/context/__init__.py::jaraco.context.repo_context -) - -src_configure() { - grep -q 'build-backend = "setuptools' pyproject.toml || - die "Upstream changed build-backend, recheck" - # write a custom pyproject.toml to ease setuptools bootstrap - cat > pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "jaraco.context" - version = "${PV}" - description = "Context managers by jaraco" - EOF -} - -python_install() { - distutils-r1_python_install - # rename to workaround a bug in pkg_resources - # https://bugs.gentoo.org/834522 - mv "${D}$(python_get_sitedir)"/jaraco{_,.}context-${PV}.dist-info || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-context/jaraco-context-6.1.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-context/jaraco-context-6.1.1.ebuild deleted file mode 100644 index 2573cade011..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-context/jaraco-context-6.1.1.ebuild +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# please keep this ebuild at EAPI 8 -- sys-apps/portage dep -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYPI_PN=${PN/-/.} -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="Context managers by jaraco" -HOMEPAGE=" - https://github.com/jaraco/jaraco.context/ - https://pypi.org/project/jaraco.context/ -" - -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" - -RDEPEND=" - $(python_gen_cond_dep ' - dev-python/backports-tarfile[${PYTHON_USEDEP}] - ' 3.11) -" -BDEPEND=" - test? ( - dev-python/portend[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -EPYTEST_DESELECT=( - # Internet - jaraco/context/__init__.py::jaraco.context.repo_context -) - -src_configure() { - grep -q 'build-backend = "setuptools' pyproject.toml || - die "Upstream changed build-backend, recheck" - # write a custom pyproject.toml to ease setuptools bootstrap - cat > pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "jaraco.context" - version = "${PV}" - description = "Context managers by jaraco" - EOF -} - -python_install() { - distutils-r1_python_install - # rename to workaround a bug in pkg_resources - # https://bugs.gentoo.org/834522 - mv "${D}$(python_get_sitedir)"/jaraco{_,.}context-${PV}.dist-info || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-context/jaraco-context-6.1.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-context/jaraco-context-6.1.2.ebuild index 2573cade011..cfe8a34686a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-context/jaraco-context-6.1.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-context/jaraco-context-6.1.2.ebuild @@ -6,7 +6,7 @@ EAPI=8 DISTUTILS_USE_PEP517=flit PYPI_PN=${PN/-/.} -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) inherit distutils-r1 pypi @@ -18,7 +18,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" RDEPEND=" $(python_gen_cond_dep ' diff --git a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/Manifest index f145acea4a5..9c8661f6a11 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/Manifest @@ -1,2 +1,2 @@ -DIST jaraco_functools-4.3.0.tar.gz 19755 BLAKE2B c49e39a1b689b9d68e619b8164e1746d53bf3ccc30bd8810846fce122f7a21c67288a8ee1d425f47b410adf18baec3223d78f6b6a7db02d18ab75af535f6cc6b SHA512 494c1eba6963d6c679200d110f3f4de00be7caa5b3783675debfa53f622d6c13bfcadda291f3cdb3ce670d8975a20c813a6a7f9c9145bf5f0503eb71363ed86f DIST jaraco_functools-4.4.0.tar.gz 19943 BLAKE2B c731e73db1fc74d33d0d312f3c93fc61dae1d47a239f34ad2ab8c5cd45b5dba40a1f50c96fa5d30740bb6a4dcbeae2eec99e5b1ca370574c6c226c107dd344a1 SHA512 7bfdddd2da31dee0461e791726254fcfbcf69dd198ccdfd2c87c771feb589b17a5789669e23c2cc8be4b207c073d84b03c26da3fcf7ae9c3157efd088f50cec3 +DIST jaraco_functools-4.5.0.tar.gz 20272 BLAKE2B 5e6c7fee636eac91bdfbe226bccc70c98ae7c92c70ebf79436f8b7db226992921b48dad180a21ca01338a628a41a71a87c1f1511a709f8b322b6a4df1bf64e16 SHA512 b674baff8f5f882b82deb86f09da8db8a2a78cf7658f0348edaf690da38804f064191a9311d95b6aefe74a3bb31408e0a1acd577a6e4f2553a7ebb340521615f diff --git a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/jaraco-functools-4.3.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/jaraco-functools-4.3.0.ebuild deleted file mode 100644 index 815aa6d7f2d..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/jaraco-functools-4.3.0.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# 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 -PYPI_PN=${PN/-/.} -PYTHON_COMPAT=( pypy3_11 python3_{11..14} python3_{13,14}t ) - -inherit distutils-r1 pypi - -DESCRIPTION="Additional functions used by other projects by developer jaraco" -HOMEPAGE=" - https://github.com/jaraco/jaraco.functools/ - https://pypi.org/project/jaraco.functools/ -" - -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" - -RDEPEND=" - >=dev-python/more-itertools-0.12.0-r1[${PYTHON_USEDEP}] -" -BDEPEND=" - test? ( - dev-python/jaraco-classes[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -src_configure() { - grep -q 'build-backend = "setuptools' pyproject.toml || - die "Upstream changed build-backend, recheck" - # write a custom pyproject.toml to ease setuptools bootstrap - cat > pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "jaraco.functools" - version = "${PV}" - description = "Functools like those found in stdlib" - EOF -} - -python_install() { - distutils-r1_python_install - # rename to workaround a bug in pkg_resources - # https://bugs.gentoo.org/834522 - mv "${D}$(python_get_sitedir)"/jaraco{_,.}functools-${PV}.dist-info || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/jaraco-functools-4.4.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/jaraco-functools-4.4.0.ebuild index 00a86640341..ba60834ce51 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/jaraco-functools-4.4.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/jaraco-functools-4.4.0.ebuild @@ -6,7 +6,7 @@ EAPI=8 DISTUTILS_USE_PEP517=flit PYPI_PN=${PN/-/.} -PYTHON_COMPAT=( pypy3_11 python3_{11..14} python3_{13,14}t ) +PYTHON_COMPAT=( pypy3_11 python3_{11..15} python3_{13..15}t ) inherit distutils-r1 pypi diff --git a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/jaraco-functools-4.5.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/jaraco-functools-4.5.0.ebuild new file mode 100644 index 00000000000..56556e02a7a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/jaraco-functools-4.5.0.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYPI_PN=${PN/-/.} +PYTHON_COMPAT=( pypy3_11 python3_{11..15} python3_{13..15}t ) + +inherit distutils-r1 pypi + +DESCRIPTION="Additional functions used by other projects by developer jaraco" +HOMEPAGE=" + https://github.com/jaraco/jaraco.functools/ + https://pypi.org/project/jaraco.functools/ +" + +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" + +RDEPEND=" + >=dev-python/more-itertools-0.12.0-r1[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/jaraco-classes[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +src_configure() { + grep -q 'build-backend = "setuptools' pyproject.toml || + die "Upstream changed build-backend, recheck" + # write a custom pyproject.toml to ease setuptools bootstrap + cat > pyproject.toml <<-EOF || die + [build-system] + requires = ["flit_core >=3.2,<4"] + build-backend = "flit_core.buildapi" + + [project] + name = "jaraco.functools" + version = "${PV}" + description = "Functools like those found in stdlib" + EOF +} + +python_install() { + distutils-r1_python_install + # rename to workaround a bug in pkg_resources + # https://bugs.gentoo.org/834522 + mv "${D}$(python_get_sitedir)"/jaraco{_,.}functools-${PV}.dist-info || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-text/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-text/Manifest index b7533e22e01..d15531906cc 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-text/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-text/Manifest @@ -1,3 +1 @@ -DIST jaraco_text-4.0.0.tar.gz 17009 BLAKE2B 4aa4381de0988383f4442a1caaab48eae79f2cbe564438b540adfed12d9cfb3680de1e5579029be204024256ba9f3327af225db73f2bd68fed7b2bdd4859a799 SHA512 240c4f6f3df6916e9015479147474a43ea9e858e22821f53263c1ef42c61336c36a34baa9c7384b9d345cf42e10b7499e2efa3c85178a0c2abc47fcd82b63fb3 -DIST jaraco_text-4.1.0.tar.gz 19153 BLAKE2B 8585bb938ce694e7d438fe0faf17c51f9fd8392cc7157a4816a94a043aa1cd1e047d25c34fc0e27b82ccae1a73d000a82a90493c1b72f20fe8375c5bade02565 SHA512 8af0377c47c673b5d2a7d6d92f37b945bbe6aa451df7dd152669a8ef1f378c8b04283e23291393c70b818d32a96acffd16f71d401d9115775469a94c19926413 DIST jaraco_text-4.2.0.tar.gz 20077 BLAKE2B c2c991586f5696995ad60b0238c110fb1094c8b51c35961e01faec6a4b18f5ca1951d1c273c3908d41f1bf26fab7e639f5f4903328e106b7f770416c9990c218 SHA512 63cd8b4c7a66231b4951e2c5d5b8fcc6cab2fd3bddee0f6fb254eafdf131fc1cd8ed88430e0a822096dfd7d871acef335ac30e899b7f715832800cce4005f1dd diff --git a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-text/jaraco-text-4.0.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-text/jaraco-text-4.0.0.ebuild deleted file mode 100644 index bbd47bc73db..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-text/jaraco-text-4.0.0.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# 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 -PYPI_PN=${PN/-/.} -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="Text utilities used by other projects by developer jaraco" -HOMEPAGE=" - https://github.com/jaraco/jaraco.text/ - https://pypi.org/project/jaraco.text/ -" - -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" - -RDEPEND=" - >=dev-python/jaraco-context-4.1.1-r1[${PYTHON_USEDEP}] - >=dev-python/jaraco-functools-3.5.0-r1[${PYTHON_USEDEP}] -" - -distutils_enable_tests pytest - -src_configure() { - grep -q 'build-backend = "setuptools' pyproject.toml || - die "Upstream changed build-backend, recheck" - # write a custom pyproject.toml to ease setuptools bootstrap - cat > pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "jaraco.text" - version = "${PV}" - description = "Module for text manipulation" - EOF - - # remove CLI tools, they have annoying deps, no entry points - # and since there are dashes in their names, they can't be imported - # anyway - rm jaraco/text/*-*.py || die -} - -python_install() { - distutils-r1_python_install - # rename to workaround a bug in pkg_resources - # https://bugs.gentoo.org/834522 - mv "${D}$(python_get_sitedir)"/jaraco{_,.}text-${PV}.dist-info || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-text/jaraco-text-4.1.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-text/jaraco-text-4.1.0.ebuild deleted file mode 100644 index 837e46d167f..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-text/jaraco-text-4.1.0.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# please keep this ebuild at EAPI 8 -- sys-apps/portage dep -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYPI_PN=${PN/-/.} -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="Text utilities used by other projects by developer jaraco" -HOMEPAGE=" - https://github.com/jaraco/jaraco.text/ - https://pypi.org/project/jaraco.text/ -" - -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" - -RDEPEND=" - >=dev-python/jaraco-context-4.1.1-r1[${PYTHON_USEDEP}] - >=dev-python/jaraco-functools-3.5.0-r1[${PYTHON_USEDEP}] -" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -src_configure() { - grep -q 'build-backend = "setuptools' pyproject.toml || - die "Upstream changed build-backend, recheck" - # write a custom pyproject.toml to ease setuptools bootstrap - cat > pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "jaraco.text" - version = "${PV}" - description = "Module for text manipulation" - EOF - - # remove CLI tools, they have annoying deps, no entry points - # and since there are dashes in their names, they can't be imported - # anyway - rm jaraco/text/*-*.py || die -} - -python_install() { - distutils-r1_python_install - # rename to workaround a bug in pkg_resources - # https://bugs.gentoo.org/834522 - mv "${D}$(python_get_sitedir)"/jaraco{_,.}text-${PV}.dist-info || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-text/jaraco-text-4.2.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-text/jaraco-text-4.2.0.ebuild index bd02f14b5eb..bcd4040e213 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-text/jaraco-text-4.2.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-text/jaraco-text-4.2.0.ebuild @@ -6,7 +6,7 @@ EAPI=8 DISTUTILS_USE_PEP517=flit PYPI_PN=${PN/-/.} -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) inherit distutils-r1 pypi @@ -18,7 +18,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" RDEPEND=" >=dev-python/jaraco-context-4.1.1-r1[${PYTHON_USEDEP}] diff --git a/sdk_container/src/third_party/portage-stable/dev-python/jinja2/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/jinja2/Manifest index d65ee391eb3..84bc3198c2c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/jinja2/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/jinja2/Manifest @@ -1 +1,2 @@ DIST jinja2-3.1.6.tar.gz 245115 BLAKE2B 494aa04ec2fa9fcc1d89b24148eaec371e2be70d4c6d5e24dd6b2efc6e91ebb0da92fade8667979bf26ba32c87f754ebc5d5d21d2a35f9b4ce7bc228b53a46e3 SHA512 bddd5e142f1462426c57b2efafdfafdfc6b66de257668707940896feae71eabdf19e0b6e34ef49b965153baf9b1eb59bb5a97349bb287ea0921dd2a751e967ab +DIST jinja2-3.1.6.tar.gz.provenance 9088 BLAKE2B 5ea9e770540c9a6f27ac0bb4a2d404a4a91304d844aebbf3ed4c2276340182642f532c81a10460e9af163b828769274f2010e906f76816e1c5da0f33dd962ccb SHA512 2337f7f106406f51c1af12b367a8b41b4b3effe2eb2f98be1d28c169ff25856a64e62da92f70fd4133a8feee04af4ee1121053a3f72268ee05f9bd19a88b97df diff --git a/sdk_container/src/third_party/portage-stable/dev-python/jinja2/jinja2-3.1.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/jinja2/jinja2-3.1.6.ebuild index b1164120fa2..a1d91830d6f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/jinja2/jinja2-3.1.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/jinja2/jinja2-3.1.6.ebuild @@ -1,11 +1,12 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=flit PYPI_PN=jinja2 -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) +PYPI_VERIFY_REPO=https://github.com/pallets/jinja +PYTHON_COMPAT=( python3_{11..15} pypy3_11 ) PYTHON_REQ_USE="threads(+)" inherit distutils-r1 pypi @@ -28,6 +29,8 @@ RDEPEND=" distutils_enable_sphinx docs \ dev-python/sphinx-issues \ dev-python/pallets-sphinx-themes + +EPYTEST_PLUGINS=() distutils_enable_tests pytest # XXX: handle Babel better? @@ -48,7 +51,6 @@ python_test() { ) fi - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 epytest } 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 beabe78ff15..c6afbe53f3f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/lark/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/lark/Manifest @@ -1,2 +1 @@ -DIST lark-1.3.0.tar.gz 259551 BLAKE2B 0df524ef483efeb7ab42973a1c06146e4e50fb59c489606498cc7dd8db61be76c7cf12062981cdbe9121ad98a1f892940d0b4d592d63c7d8d1563de4feab2f65 SHA512 d20191bb98e823f078359ccf2f391f9d01c80d7481d3c8061f8a6a8083f069e11029017158f773683b8e662f6cc81075f5cb4965c5fecde3956f131e3938af3d DIST lark-1.3.1.tar.gz 382732 BLAKE2B d08d8f73d79699f33795a46d1e8ae4aa86425e63df4dea19ce9aefaa18749bed5505f5dd657313e4d0463cd217f851494b939da7e134557f4a8f6c26321d7f42 SHA512 aee4ec6a6dd2e25801c66688861d0b25b68b7b916492764b3f8621dd70c33a93b364cb70d84ccac645cb7156892b90b503d6c79dedb9f656830c70a9b43549d0 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lark/lark-1.3.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lark/lark-1.3.0.ebuild deleted file mode 100644 index 598cdbf0800..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/lark/lark-1.3.0.ebuild +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{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/lark/lark-1.3.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lark/lark-1.3.1.ebuild index 52da9be463d..fa3a8d5ad20 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/lark/lark-1.3.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/lark/lark-1.3.1.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) +PYTHON_COMPAT=( python3_{11..15} pypy3_11 ) inherit distutils-r1 pypi diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lazy-object-proxy/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/lazy-object-proxy/Manifest index b38e2e1780b..f5ed416ad1d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/lazy-object-proxy/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/lazy-object-proxy/Manifest @@ -1,2 +1 @@ -DIST lazy_object_proxy-1.11.0.tar.gz 44736 BLAKE2B e620131e34a6862af34aa0bda58f201b0db4a9b94785a4f2f1b27900ce93cce9539c52ac6f8488c94672b7fe3e09965467b568fd596ee4e32b6a88d4763af632 SHA512 1c0fe6a5c8fc549e706109235fc380e45d0ff706d7f0915780f93d1ce19be800bb68983baca9959a80679d10d95e24823ffbd66062f64065364a764737d691d7 DIST lazy_object_proxy-1.12.0.tar.gz 43681 BLAKE2B 6c3985743ad33cc13ac2a50b36bd00f24c2f72ed715313594edaa2123905c088d5479fc15d6449c275856a080e8066c0ff5c6b01e41920d113dc0fff01a91fa0 SHA512 af1baef392793d5bcfe8cb94237516a66f63784faad1f70b46f5fed697579ea659afa0843e48b33b85dfaa2c45b6e549768695479235df56981398439b046f45 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lazy-object-proxy/files/lazy-object-proxy-1.10.0-pure-tests.patch b/sdk_container/src/third_party/portage-stable/dev-python/lazy-object-proxy/files/lazy-object-proxy-1.10.0-pure-tests.patch deleted file mode 100644 index c7806c68bb7..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/lazy-object-proxy/files/lazy-object-proxy-1.10.0-pure-tests.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 25decee2bd5a68d290dd3349aa9a72ce41b398b6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= -Date: Fri, 15 Dec 2023 17:45:42 +0100 -Subject: [PATCH] Support SETUPPY_FORCE_PURE in tests - -Support testing without the C extension if SETUPPY_FORCE_PURE is set. -This makes the test suite behavior consistent with setup.py behavior. ---- - tests/conftest.py | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/tests/conftest.py b/tests/conftest.py -index 11d0379..2ba3209 100644 ---- a/tests/conftest.py -+++ b/tests/conftest.py -@@ -1,3 +1,4 @@ -+import os - import sys - - import pytest -@@ -19,7 +20,7 @@ class FakeModule: - try: - from lazy_object_proxy.cext import Proxy - except ImportError: -- if PYPY: -+ if PYPY or os.environ.get('SETUPPY_FORCE_PURE'): - pytest.skip(reason='C Extension not available.') - else: - raise diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lazy-object-proxy/files/lazy-object-proxy-1.11.0-py314.patch b/sdk_container/src/third_party/portage-stable/dev-python/lazy-object-proxy/files/lazy-object-proxy-1.11.0-py314.patch deleted file mode 100644 index ae80997a416..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/lazy-object-proxy/files/lazy-object-proxy-1.11.0-py314.patch +++ /dev/null @@ -1,39 +0,0 @@ -From daba375a4c424ee114123122e5c1285e3db4d62e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= -Date: Sat, 31 May 2025 10:52:38 +0200 -Subject: [PATCH 1/5] Loosen exception regexps for Python 3.14 - -Python 3.14 changes the exception message for passing wrong types -to `await` to: - - TypeError: 'int' object can't be awaited - -Loosen the regular expression to accept both the old and the new -exception message. ---- - tests/test_async_py3.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tests/test_async_py3.py b/tests/test_async_py3.py -index 0d9450b..3fbba18 100644 ---- a/tests/test_async_py3.py -+++ b/tests/test_async_py3.py -@@ -498,7 +498,7 @@ def test_await_1(lop): - async def foo(): - await 1 - -- with pytest.raises(TypeError, match='object int can.t.*await'): -+ with pytest.raises(TypeError, match='int.*can.t.*await'): - run_async(lop.Proxy(foo)) - - -@@ -506,7 +506,7 @@ def test_await_2(lop): - async def foo(): - await [] - -- with pytest.raises(TypeError, match='object list can.t.*await'): -+ with pytest.raises(TypeError, match='list.*can.t.*await'): - run_async(lop.Proxy(foo)) - - - diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lazy-object-proxy/lazy-object-proxy-1.11.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lazy-object-proxy/lazy-object-proxy-1.11.0.ebuild deleted file mode 100644 index 2cb50350c63..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/lazy-object-proxy/lazy-object-proxy-1.11.0.ebuild +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="A fast and thorough lazy object proxy" -HOMEPAGE=" - https://github.com/ionelmc/python-lazy-object-proxy/ - https://pypi.org/project/lazy-object-proxy/ - https://python-lazy-object-proxy.readthedocs.io/ -" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" -IUSE="+native-extensions" - -BDEPEND=" - >=dev-python/setuptools-scm-8[${PYTHON_USEDEP}] -" - -distutils_enable_tests pytest - -PATCHES=( - # https://github.com/ionelmc/python-lazy-object-proxy/pull/79 - "${FILESDIR}/${PN}-1.10.0-pure-tests.patch" - # https://github.com/ionelmc/python-lazy-object-proxy/pull/88 - "${FILESDIR}/${P}-py314.patch" -) - -python_prepare_all() { - distutils-r1_python_prepare_all - - # No need to benchmark - sed \ - -e '/benchmark/s:test_:_&:g' \ - -e '/pytest.mark.benchmark/d' \ - -i tests/test_lazy_object_proxy.py || die - - if use native-extensions; then - unset SETUPPY_FORCE_PURE - else - export SETUPPY_FORCE_PURE=1 - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/Manifest index 6cabd4386c5..9f8721ced42 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/Manifest @@ -1,3 +1,2 @@ -DIST linkify-it-py-2.0.3.gh.tar.gz 76727 BLAKE2B df0d2c8f31a9715c6eadd1f8fb295990b5ed82b8f49231071f8220045d9b64ec21098477d43a74afa21592b2a345357654a23df38636e852a767c62443580e34 SHA512 6621533246a42f3b13fb7dd9f1366cadb0e3c291bcb92fd899bc6389cb9f7904ababf4b5dbae51a561a4f50f8a20597badf03c82653ae8db75d9a5a484bc1229 DIST linkify_it_py-2.1.0.tar.gz 29158 BLAKE2B 6421c09a9018036f97639a164186ff702c9d54d4381f3c9cc51d6bd106a6e5814b32d76d992b7c6981052574758bfc891d5006c34fe953c5cea21580dfc2bc35 SHA512 298d25a9bd9df57b6caf6157b642018e828c2b5fbacaa2ff11c0007b48f2090d7f14680efe3a365d9bb0f2a97660eb9e95424c8b63dfd8f9aeee6a5a5c70211d DIST linkify_it_py-2.1.0.tar.gz.provenance 9582 BLAKE2B f78f211d5ffca6a85f695fb037a0885aedc3caa10801c1165355b3698a7b08b1205de0265eb8f40e83aec3e94294e595196bc1d4fb46022ac4ca7ea055dee5fd SHA512 01ea5d707b170fcdcd8dac6ddb88a5100c4eb7e532b15bb50ae1c0091b1feec7950e331b8ba53477225cc878968e57ea7a113a5472847882c03ac1dce19e1ebd diff --git a/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/linkify-it-py-2.0.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/linkify-it-py-2.0.3.ebuild deleted file mode 100644 index ccba5a2db37..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/linkify-it-py-2.0.3.ebuild +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 2022-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) - -inherit distutils-r1 - -DESCRIPTION="Links recognition library with full unicode support" -HOMEPAGE=" - https://github.com/tsutsu3/linkify-it-py/ - https://pypi.org/project/linkify-it-py/ -" -# no tests in sdist, as of 2.0.1 -SRC_URI=" - https://github.com/tsutsu3/linkify-it-py/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/uc-micro-py[${PYTHON_USEDEP}] -" - -distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/linkify-it-py-2.1.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/linkify-it-py-2.1.0.ebuild index d2771ae953e..35b2fc8bfbb 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/linkify-it-py-2.1.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/linkify-it-py-2.1.0.ebuild @@ -17,7 +17,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" RDEPEND=" dev-python/uc-micro-py[${PYTHON_USEDEP}] diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/lxml/Manifest index b6f4a15fc68..9f573ba16b5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/lxml/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/lxml/Manifest @@ -1,4 +1,2 @@ -DIST lxml-5.4.0.gh.tar.gz 950906 BLAKE2B 00c47f34178df5f1b3555f5980a0c7ca9ecc5f0b54cc2756125fd6b2684e369563220c42d380f43af4e53ed2756ebfd71e9f6e1113aa192f14c76defb56c944a SHA512 a7f297b94fd88f20de9371bef207f8e95243a060b24e4006ec310c4a94f6147c8bb38fc3cff0f874f0b76282e745bb62e65a5cba2ce6e34ee54be0e3fde66724 -DIST lxml-6.0.0.gh.tar.gz 987497 BLAKE2B 9d3d61c4f478014942b276d8e5bb8137d67edf05294a821461bd4304a857481cff694a2d97a8c9cbffe0fef7d755aff7c6a6f67eae832f637ff2e5bdc105a7f3 SHA512 05519e03067de5d85be76994070c0a25f35eb52c2df5fc540aa6d2661af09636021c9b6b60d102c687cd9b8f800ecffdb9f2407d7d0f5bbbc43c4c0b38a3b18e -DIST lxml-6.0.1.gh.tar.gz 988844 BLAKE2B de4a2964f3118a40a1d2638134a29683297952b00c225477ede859be1f985c821e7125e3bb0be03866d08f7dff10971a23de63cfd16aa8ea805035b28124391b SHA512 7a41325af7b2b802ed368274444fbe4f272141c93f798ea60305c67a11484c73c5686dc24a37a784be1e574ad22bb4ff06111e868ef0567156e6a143f7742554 -DIST lxml-6.0.2.gh.tar.gz 990107 BLAKE2B c01a94fef56754599100b65927b40c2d786d631f02bbfe6cff3865a00531ab26fc6a0fe5cf9b02bdcf01beb45ef94fd4436ed4c06f5c8fd9e707bcae80c0f2f4 SHA512 164dc5e38e394f4396faf0b06729039f6807a227e1a2755a6991e6dce569cc64244d5edfd2cf2af0d4e845d7155a76f6e391e32f3d5aac21dff3c07cbbe06460 +DIST lxml-6.1.0.gh.tar.gz 992616 BLAKE2B bf0269bb5d757fb91e586b73436a2502b86ba23a4f09143d1af5131ba4d8fbec57cd5ce0804113a8d258c6312f17404b0d67992722f19b9544610bf26f7caf7b SHA512 c738958839f9fb627ede8c4758b849d60be5210617fb2f4d9d2072f9f724a54d63648964b8716b0e23eaba044d77d02e621579c7aaee53fa2e30bc206a4a8534 +DIST lxml-6.1.1.gh.tar.gz 995492 BLAKE2B 0ddb8b59ad1c6fa237830fed00ee5fd8626930a25baa08ab8343530568ae2917dfc2c8bd72a2f700ac62a1420db628ef63a86178790e4405844ccfd271ca3bdb SHA512 c8bd3825f5b15af8a39b7e0a11b114ad67bcfcaf8fd08928e34918ea194525d26fa498057a30a014e452817d78a839bea7cf5221f089ae8ba0d4f5f4527dc62d diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-5.3.0-pypy.patch b/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-5.3.0-pypy.patch deleted file mode 100644 index c83c73c8193..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-5.3.0-pypy.patch +++ /dev/null @@ -1,177 +0,0 @@ -From b6ba59657c8c7e169e8eeb763d85ca6136df3eea Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= -Date: Fri, 29 Mar 2024 16:22:00 +0100 -Subject: [PATCH] skip tests that are broken on pypy - ---- - src/lxml/tests/test_http_io.py | 3 ++- - src/lxml/tests/test_nsclasses.py | 3 ++- - src/lxml/tests/test_objectify.py | 37 ++++++++++++++++++++++++++++++-- - 3 files changed, 39 insertions(+), 4 deletions(-) - -diff --git a/src/lxml/tests/test_http_io.py b/src/lxml/tests/test_http_io.py -index 8385e393..0b259299 100644 ---- a/src/lxml/tests/test_http_io.py -+++ b/src/lxml/tests/test_http_io.py -@@ -10,3 +10,3 @@ import gzip - --from .common_imports import etree, HelperTestCase, BytesIO, _bytes -+from .common_imports import etree, HelperTestCase, BytesIO, _bytes, IS_PYPY - from .dummy_http_server import webserver, HTTPRequestCollector -@@ -14,2 +14,3 @@ from .dummy_http_server import webserver, HTTPRequestCollector - -+@unittest.skipIf(IS_PYPY, "broken on pypy") - class HttpIOTestCase(HelperTestCase): -diff --git a/src/lxml/tests/test_nsclasses.py b/src/lxml/tests/test_nsclasses.py -index 0c33f20c..08540001 100644 ---- a/src/lxml/tests/test_nsclasses.py -+++ b/src/lxml/tests/test_nsclasses.py -@@ -8,3 +8,3 @@ import unittest - --from .common_imports import etree, HelperTestCase, _bytes, make_doctest -+from .common_imports import etree, HelperTestCase, _bytes, make_doctest, IS_PYPY - -@@ -45,2 +45,3 @@ class ETreeNamespaceClassesTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_ns_classes(self): -diff --git a/src/lxml/tests/test_objectify.py b/src/lxml/tests/test_objectify.py -index 39fe0098..92c857f8 100644 ---- a/src/lxml/tests/test_objectify.py -+++ b/src/lxml/tests/test_objectify.py -@@ -10,3 +10,4 @@ import unittest - from .common_imports import ( -- etree, HelperTestCase, fileInTestDir, doctest, make_doctest, _bytes, _str, BytesIO -+ etree, HelperTestCase, fileInTestDir, doctest, make_doctest, _bytes, _str, BytesIO, -+ IS_PYPY - ) -@@ -383,2 +384,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_setattr(self): -@@ -818,2 +820,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_build_tree(self): -@@ -847,2 +850,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_bool(self): -@@ -884,2 +888,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_str(self): -@@ -891,2 +896,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_str_intliteral(self): -@@ -898,2 +904,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_str_floatliteral(self): -@@ -905,2 +912,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_str_mul(self): -@@ -917,2 +925,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_str_add(self): -@@ -992,2 +1001,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_ustr(self): -@@ -999,2 +1009,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_ustr_intliteral(self): -@@ -1006,2 +1017,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_ustr_floatliteral(self): -@@ -1013,2 +1025,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_ustr_mul(self): -@@ -1025,2 +1038,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_ustr_add(self): -@@ -1050,2 +1064,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_int(self): -@@ -1066,2 +1081,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_float(self): -@@ -1082,2 +1098,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_float_precision(self): -@@ -1101,2 +1118,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_float_precision_consistency(self): -@@ -1187,2 +1205,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_unregistered(self): -@@ -1349,2 +1368,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_str_cmp(self): -@@ -1376,2 +1396,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_int_cmp(self): -@@ -1398,2 +1419,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_type_bool_cmp(self): -@@ -2067,2 +2089,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_registered_type_stringify(self): -@@ -2537,2 +2560,3 @@ class ObjectifyTestCase(HelperTestCase): - # type-looked-up as ObjectifiedElement (no annotations) -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_efactory_int(self): -@@ -2542,2 +2566,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_efactory_float(self): -@@ -2547,2 +2572,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_efactory_str(self): -@@ -2552,2 +2578,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_efactory_unicode(self): -@@ -2557,2 +2584,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_efactory_bool(self): -@@ -2562,2 +2590,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_efactory_none(self): -@@ -2567,2 +2596,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_efactory_value_concatenation(self): -@@ -2577,2 +2607,3 @@ class ObjectifyTestCase(HelperTestCase): - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_efactory_nested(self): -@@ -2745,3 +2776,5 @@ def test_suite(): - suite.addTests(doctest.DocTestSuite(objectify)) -- suite.addTests([make_doctest('objectify.txt')]) -+ if not IS_PYPY: -+ suite.addTests([make_doctest('objectify.txt')]) -+ suite.addTests([make_doctest('../../../doc/objectify.txt')]) - return suite --- -2.46.0 - diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-5.4.0-cython-3.1.patch b/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-5.4.0-cython-3.1.patch deleted file mode 100644 index 4e7fbac5b4e..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-5.4.0-cython-3.1.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 6d5d6aed2e38e1abc625f29c0b3e97fc8c60ae3b Mon Sep 17 00:00:00 2001 -From: Stefan Behnel -Date: Wed, 28 Aug 2024 11:16:55 +0200 -Subject: [PATCH] Avoid custom "tp_new()" call and add a safe-guard that - element lookups actually return a type. - ---- - src/lxml/etree.pyx | 12 +++++------- - src/lxml/includes/etree_defs.h | 8 ++------ - src/lxml/python.pxd | 1 - - 3 files changed, 7 insertions(+), 14 deletions(-) - -diff --git a/src/lxml/etree.pyx b/src/lxml/etree.pyx -index c21d1343..90579af9 100644 ---- a/src/lxml/etree.pyx -+++ b/src/lxml/etree.pyx -@@ -1636,11 +1636,6 @@ cdef public class _Element [ type LxmlElementType, object LxmlElement ]: - return CSSSelector(expr, translator=translator)(self) - - --cdef extern from "includes/etree_defs.h": -- # macro call to 't->tp_new()' for fast instantiation -- cdef object NEW_ELEMENT "PY_NEW" (object t) -- -- - @cython.linetrace(False) - cdef _Element _elementFactory(_Document doc, xmlNode* c_node): - cdef _Element result -@@ -1650,12 +1645,15 @@ cdef _Element _elementFactory(_Document doc, xmlNode* c_node): - if c_node is NULL: - return None - -- element_class = LOOKUP_ELEMENT_CLASS( -+ element_class = LOOKUP_ELEMENT_CLASS( - ELEMENT_CLASS_LOOKUP_STATE, doc, c_node) -+ if type(element_class) is not type: -+ if not isinstance(element_class, type): -+ raise TypeError(f"Element class is not a type, got {type(element_class)}") - if hasProxy(c_node): - # prevent re-entry race condition - we just called into Python - return getProxy(c_node) -- result = NEW_ELEMENT(element_class) -+ result = element_class.__new__(element_class) - if hasProxy(c_node): - # prevent re-entry race condition - we just called into Python - result._c_node = NULL -diff --git a/src/lxml/includes/etree_defs.h b/src/lxml/includes/etree_defs.h -index 17d470d0..8645869f 100644 ---- a/src/lxml/includes/etree_defs.h -+++ b/src/lxml/includes/etree_defs.h -@@ -177,7 +177,7 @@ long _ftol2( double dblSource ) { return _ftol( dblSource ); } - - #ifdef __GNUC__ - /* Test for GCC > 2.95 */ --#if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)) -+#if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)) - #define unlikely_condition(x) __builtin_expect((x), 0) - #else /* __GNUC__ > 2 ... */ - #define unlikely_condition(x) (x) -@@ -190,10 +190,6 @@ long _ftol2( double dblSource ) { return _ftol( dblSource ); } - #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type) - #endif - --#define PY_NEW(T) \ -- (((PyTypeObject*)(T))->tp_new( \ -- (PyTypeObject*)(T), __pyx_empty_tuple, NULL)) -- - #define _fqtypename(o) ((Py_TYPE(o))->tp_name) - - #define lxml_malloc(count, item_size) \ -@@ -268,7 +264,7 @@ static void* lxml_unpack_xmldoc_capsule(PyObject* capsule, int* is_owned) { - * 'inclusive' is 1). The _ELEMENT_ variants will only stop on nodes - * that match _isElement(), the normal variant will stop on every node - * except text nodes. -- * -+ * - * To traverse the node and all of its children and siblings in Pyrex, call - * cdef xmlNode* some_node - * BEGIN_FOR_EACH_ELEMENT_FROM(some_node.parent, some_node, 1) -diff --git a/src/lxml/python.pxd b/src/lxml/python.pxd -index d0877355..e0ec762e 100644 ---- a/src/lxml/python.pxd -+++ b/src/lxml/python.pxd -@@ -131,7 +131,6 @@ cdef extern from "includes/etree_defs.h": # redefines some functions as macros - cdef void* lxml_unpack_xmldoc_capsule(object capsule, bint* is_owned) except? NULL - cdef bint _isString(object obj) - cdef const_char* _fqtypename(object t) -- cdef object PY_NEW(object t) - cdef bint IS_PYPY - cdef object PyOS_FSPath(object obj) - diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-6.0.0-pypy.patch b/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-6.0.0-pypy.patch deleted file mode 100644 index 4e2584abdea..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-6.0.0-pypy.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 405dd576104cf0e92fbd40d5b294abd93ecb9d41 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= -Date: Fri, 29 Mar 2024 16:22:00 +0100 -Subject: [PATCH] skip tests that are broken on pypy - ---- - src/lxml/tests/test_http_io.py | 3 ++- - src/lxml/tests/test_nsclasses.py | 3 ++- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/lxml/tests/test_http_io.py b/src/lxml/tests/test_http_io.py -index 12c9d606..d95e3e06 100644 ---- a/src/lxml/tests/test_http_io.py -+++ b/src/lxml/tests/test_http_io.py -@@ -8,7 +8,7 @@ import textwrap - import sys - import gzip - --from .common_imports import etree, HelperTestCase, BytesIO, _bytes -+from .common_imports import etree, HelperTestCase, BytesIO, _bytes, IS_PYPY - from .dummy_http_server import webserver, HTTPRequestCollector - - -@@ -18,6 +18,7 @@ def needs_http(test_method, _skip_when_called=unittest.skip("needs HTTP support - return _skip_when_called(test_method) - - -+@unittest.skipIf(IS_PYPY, "broken on pypy") - class HttpIOTestCase(HelperTestCase): - etree = etree - -diff --git a/src/lxml/tests/test_nsclasses.py b/src/lxml/tests/test_nsclasses.py -index 0c33f20c..08540001 100644 ---- a/src/lxml/tests/test_nsclasses.py -+++ b/src/lxml/tests/test_nsclasses.py -@@ -6,7 +6,7 @@ namespace registry mechanism - - import unittest - --from .common_imports import etree, HelperTestCase, _bytes, make_doctest -+from .common_imports import etree, HelperTestCase, _bytes, make_doctest, IS_PYPY - - class ETreeNamespaceClassesTestCase(HelperTestCase): - -@@ -43,6 +43,7 @@ class ETreeNamespaceClassesTestCase(HelperTestCase): - self.Namespace('ns02').clear() - self.Namespace('ns03').clear() - -+ @unittest.skipIf(IS_PYPY, "broken on pypy") - def test_ns_classes(self): - bluff_dict = {'bluff' : self.bluff_class} - maeh_dict = {'maeh' : self.maeh_class} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-6.0.4-pypy.patch b/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-6.0.4-pypy.patch new file mode 100644 index 00000000000..deb1dd03021 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-6.0.4-pypy.patch @@ -0,0 +1,107 @@ +From f3c07ca0ea5908462a26370f7d7a18bbbc8ae416 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= +Date: Mon, 13 Apr 2026 05:28:04 +0200 +Subject: [PATCH] Skip tests failing on PyPy +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The test failures occur in older lxml versions too, so it's either +a regression in PyPy itself or in Cython. + +Signed-off-by: Michał Górny +--- + src/lxml/tests/test_etree.py | 6 +++++- + src/lxml/tests/test_xslt.py | 6 +++++- + 2 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/src/lxml/tests/test_etree.py b/src/lxml/tests/test_etree.py +index 5658ad73..5cf4f136 100644 +--- a/src/lxml/tests/test_etree.py ++++ b/src/lxml/tests/test_etree.py +@@ -26,7 +26,7 @@ from .common_imports import etree, HelperTestCase, needs_feature + from .common_imports import fileInTestDir, fileUrlInTestDir, read_file, path2url, tmpfile + from .common_imports import SillyFileLike, LargeFileLikeUnicode, doctest, make_doctest + from .common_imports import canonicalize, _str, _bytes +-from .common_imports import SimpleFSPath ++from .common_imports import SimpleFSPath, IS_PYPY + + print(f""" + TESTED VERSION: {etree.__version__} +@@ -5308,6 +5308,7 @@ class ETreeC14NTestCase(HelperTestCase): + self.assertEqual(b'', + data) + ++ @unittest.skipIf(IS_PYPY, "broken on pypy") + def test_c14n_file_gzip(self): + tree = self.parse(b''+b''*200+b'') + with tmpfile() as filename: +@@ -5317,6 +5318,7 @@ class ETreeC14NTestCase(HelperTestCase): + self.assertEqual(b''+b''*200+b'', + data) + ++ @unittest.skipIf(IS_PYPY, "broken on pypy") + def test_c14n_file_gzip_pathlike(self): + tree = self.parse(b''+b''*200+b'') + with tmpfile() as filename: +@@ -5624,6 +5626,7 @@ class ETreeWriteTestCase(HelperTestCase): + self.assertEqual(b'', + data) + ++ @unittest.skipIf(IS_PYPY, "broken on pypy") + def test_write_file_gzip(self): + tree = self.parse(b''+b''*200+b'') + with tmpfile() as filename: +@@ -5633,6 +5636,7 @@ class ETreeWriteTestCase(HelperTestCase): + self.assertEqual(b''+b''*200+b'', + data) + ++ @unittest.skipIf(IS_PYPY, "broken on pypy") + def test_write_file_gzip_pathlike(self): + tree = self.parse(b''+b''*200+b'') + with tmpfile() as filename: +diff --git a/src/lxml/tests/test_xslt.py b/src/lxml/tests/test_xslt.py +index 244a46f7..87c084cf 100644 +--- a/src/lxml/tests/test_xslt.py ++++ b/src/lxml/tests/test_xslt.py +@@ -14,7 +14,7 @@ from textwrap import dedent + from tempfile import NamedTemporaryFile, mkdtemp + + from .common_imports import ( +- etree, HelperTestCase, fileInTestDir, make_doctest, SimpleFSPath ++ etree, HelperTestCase, fileInTestDir, make_doctest, SimpleFSPath, IS_PYPY + ) + + +@@ -164,6 +164,7 @@ class ETreeXSLTTestCase(HelperTestCase): + finally: + os.unlink(f.name) + ++ @unittest.skipIf(IS_PYPY, "broken on pypy") + def test_xslt_write_output_file_path(self): + with self._xslt_setup() as res: + f = NamedTemporaryFile(delete=False) +@@ -177,6 +178,7 @@ class ETreeXSLTTestCase(HelperTestCase): + finally: + os.unlink(f.name) + ++ @unittest.skipIf(IS_PYPY, "broken on pypy") + def test_xslt_write_output_file_pathlike(self): + with self._xslt_setup() as res: + f = NamedTemporaryFile(delete=False) +@@ -190,6 +192,7 @@ class ETreeXSLTTestCase(HelperTestCase): + finally: + os.unlink(f.name) + ++ @unittest.skipIf(IS_PYPY, "broken on pypy") + def test_xslt_write_output_file_path_urlescaped(self): + # libxml2 should not unescape file paths. + with self._xslt_setup() as res: +@@ -204,6 +207,7 @@ class ETreeXSLTTestCase(HelperTestCase): + finally: + os.unlink(f.name) + ++ @unittest.skipIf(IS_PYPY, "broken on pypy") + def test_xslt_write_output_file_path_urlescaped_plus(self): + with self._xslt_setup() as res: + f = NamedTemporaryFile(prefix='p+%2e', suffix='.xml.gz', delete=False) diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-5.4.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-5.4.0-r2.ebuild deleted file mode 100644 index f732ebb9c29..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-5.4.0-r2.ebuild +++ /dev/null @@ -1,122 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) - -inherit distutils-r1 optfeature toolchain-funcs - -DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries" -HOMEPAGE=" - https://lxml.de/ - https://pypi.org/project/lxml/ - https://github.com/lxml/lxml/ -" -SRC_URI=" - https://github.com/lxml/lxml/archive/${P}.tar.gz - -> ${P}.gh.tar.gz -" -S=${WORKDIR}/lxml-${P} - -LICENSE="BSD ElementTree GPL-2 PSF-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="doc examples +threads test" -RESTRICT="!test? ( test )" - -# Note: lib{xml2,xslt} are used as C libraries, not Python modules. -DEPEND=" - >=dev-libs/libxml2-2.10.3:= - >=dev-libs/libxslt-1.1.38 -" -RDEPEND=" - ${DEPEND} -" -BDEPEND=" - virtual/pkgconfig - >=dev-python/cython-3.0.10[${PYTHON_USEDEP}] - doc? ( - $(python_gen_any_dep ' - dev-python/docutils[${PYTHON_USEDEP}] - dev-python/pygments[${PYTHON_USEDEP}] - dev-python/sphinx[${PYTHON_USEDEP}] - dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] - ') - ) - test? ( - dev-python/cssselect[${PYTHON_USEDEP}] - ) -" - -PATCHES=( - "${FILESDIR}/${PN}-5.3.0-pypy.patch" - # https://github.com/lxml/lxml/commit/6d5d6aed2e38e1abc625f29c0b3e97fc8c60ae3b - "${FILESDIR}/${PN}-5.4.0-cython-3.1.patch" -) - -python_check_deps() { - use doc || return 0 - python_has_version -b "dev-python/docutils[${PYTHON_USEDEP}]" && - python_has_version -b "dev-python/pygments[${PYTHON_USEDEP}]" && - python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" && - python_has_version -b "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]" -} - -python_prepare_all() { - # don't use some random SDK on Darwin - sed -i -e '/_ldflags =/s/=.*isysroot.*darwin.*None/= None/' \ - setupinfo.py || die - - distutils-r1_python_prepare_all -} - -python_compile() { - local DISTUTILS_ARGS=( - # by default it adds -w to CFLAGS - --warnings - ) - tc-export PKG_CONFIG - distutils-r1_python_compile -} - -python_compile_all() { - # disable automagic dep on coverage - use doc && emake CYTHON_WITH_COVERAGE= html -} - -python_test() { - local dir=${BUILD_DIR}/test$(python_get_sitedir)/lxml - local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH} - - cp -al "${BUILD_DIR}"/{install,test} || die - cp -al src/lxml/tests "${dir}/" || die - cp -al src/lxml/html/tests "${dir}/html/" || die - mkdir "${dir}"/../../doc || die - # this one needs to be copied, because upstream uses doc/../../../doc - cp -r "${S}"/doc "${dir}"/../../ || die - ln -s "${S}"/doc "${dir}"/../../../../ || die - - "${EPYTHON}" test.py --no-src -vv --all-levels -p || - die "Tests fail on ${EPYTHON}" -} - -python_install_all() { - if use doc; then - local DOCS=( README.rst *.txt doc/*.txt ) - local HTML_DOCS=( doc/html/. ) - fi - if use examples; then - dodoc -r samples - fi - - distutils-r1_python_install_all -} - -pkg_postinst() { - optfeature "Support for BeautifulSoup as a parser backend" dev-python/beautifulsoup4 - optfeature "Translates CSS selectors to XPath 1.0 expressions" dev-python/cssselect - optfeature "Support for lxml.html.clean sanitizer" dev-python/lxml-html-clean -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.0.ebuild deleted file mode 100644 index 7ca2ac69f47..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.0.ebuild +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) - -inherit distutils-r1 optfeature toolchain-funcs - -DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries" -HOMEPAGE=" - https://lxml.de/ - https://pypi.org/project/lxml/ - https://github.com/lxml/lxml/ -" -SRC_URI=" - https://github.com/lxml/lxml/archive/${P}.tar.gz - -> ${P}.gh.tar.gz -" -S=${WORKDIR}/lxml-${P} - -LICENSE="BSD ElementTree GPL-2 PSF-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="doc examples +threads test" -RESTRICT="!test? ( test )" - -# Note: lib{xml2,xslt} are used as C libraries, not Python modules. -DEPEND=" - >=dev-libs/libxml2-2.10.3:= - >=dev-libs/libxslt-1.1.38 -" -RDEPEND=" - ${DEPEND} -" -BDEPEND=" - virtual/pkgconfig - >=dev-python/cython-3.1.2[${PYTHON_USEDEP}] - doc? ( - $(python_gen_any_dep ' - dev-python/docutils[${PYTHON_USEDEP}] - dev-python/pygments[${PYTHON_USEDEP}] - dev-python/sphinx[${PYTHON_USEDEP}] - dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] - ') - ) - test? ( - dev-python/cssselect[${PYTHON_USEDEP}] - ) -" - -PATCHES=( - "${FILESDIR}/${PN}-6.0.0-pypy.patch" -) - -python_check_deps() { - use doc || return 0 - python_has_version -b "dev-python/docutils[${PYTHON_USEDEP}]" && - python_has_version -b "dev-python/pygments[${PYTHON_USEDEP}]" && - python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" && - python_has_version -b "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]" -} - -python_prepare_all() { - # don't use some random SDK on Darwin - sed -i -e '/_ldflags =/s/=.*isysroot.*darwin.*None/= None/' \ - setupinfo.py || die - - distutils-r1_python_prepare_all -} - -python_compile() { - local DISTUTILS_ARGS=( - # by default it adds -w to CFLAGS - --warnings - ) - tc-export PKG_CONFIG - distutils-r1_python_compile -} - -python_compile_all() { - # disable automagic dep on coverage - use doc && emake CYTHON_WITH_COVERAGE= html -} - -python_test() { - local dir=${BUILD_DIR}/test$(python_get_sitedir)/lxml - local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH} - - cp -al "${BUILD_DIR}"/{install,test} || die - cp -al src/lxml/tests "${dir}/" || die - cp -al src/lxml/html/tests "${dir}/html/" || die - mkdir "${dir}"/../../doc || die - # this one needs to be copied, because upstream uses doc/../../../doc - cp -r "${S}"/doc "${dir}"/../../ || die - ln -s "${S}"/doc "${dir}"/../../../../ || die - - "${EPYTHON}" test.py --no-src -vv --all-levels -p || - die "Tests fail on ${EPYTHON}" -} - -python_install_all() { - if use doc; then - local DOCS=( README.rst *.txt doc/*.txt ) - local HTML_DOCS=( doc/html/. ) - fi - if use examples; then - dodoc -r samples - fi - - distutils-r1_python_install_all -} - -pkg_postinst() { - optfeature "Support for BeautifulSoup as a parser backend" dev-python/beautifulsoup4 - optfeature "Translates CSS selectors to XPath 1.0 expressions" dev-python/cssselect - optfeature "Support for lxml.html.clean sanitizer" dev-python/lxml-html-clean -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.1.ebuild deleted file mode 100644 index 7ca2ac69f47..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.1.ebuild +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) - -inherit distutils-r1 optfeature toolchain-funcs - -DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries" -HOMEPAGE=" - https://lxml.de/ - https://pypi.org/project/lxml/ - https://github.com/lxml/lxml/ -" -SRC_URI=" - https://github.com/lxml/lxml/archive/${P}.tar.gz - -> ${P}.gh.tar.gz -" -S=${WORKDIR}/lxml-${P} - -LICENSE="BSD ElementTree GPL-2 PSF-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="doc examples +threads test" -RESTRICT="!test? ( test )" - -# Note: lib{xml2,xslt} are used as C libraries, not Python modules. -DEPEND=" - >=dev-libs/libxml2-2.10.3:= - >=dev-libs/libxslt-1.1.38 -" -RDEPEND=" - ${DEPEND} -" -BDEPEND=" - virtual/pkgconfig - >=dev-python/cython-3.1.2[${PYTHON_USEDEP}] - doc? ( - $(python_gen_any_dep ' - dev-python/docutils[${PYTHON_USEDEP}] - dev-python/pygments[${PYTHON_USEDEP}] - dev-python/sphinx[${PYTHON_USEDEP}] - dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] - ') - ) - test? ( - dev-python/cssselect[${PYTHON_USEDEP}] - ) -" - -PATCHES=( - "${FILESDIR}/${PN}-6.0.0-pypy.patch" -) - -python_check_deps() { - use doc || return 0 - python_has_version -b "dev-python/docutils[${PYTHON_USEDEP}]" && - python_has_version -b "dev-python/pygments[${PYTHON_USEDEP}]" && - python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" && - python_has_version -b "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]" -} - -python_prepare_all() { - # don't use some random SDK on Darwin - sed -i -e '/_ldflags =/s/=.*isysroot.*darwin.*None/= None/' \ - setupinfo.py || die - - distutils-r1_python_prepare_all -} - -python_compile() { - local DISTUTILS_ARGS=( - # by default it adds -w to CFLAGS - --warnings - ) - tc-export PKG_CONFIG - distutils-r1_python_compile -} - -python_compile_all() { - # disable automagic dep on coverage - use doc && emake CYTHON_WITH_COVERAGE= html -} - -python_test() { - local dir=${BUILD_DIR}/test$(python_get_sitedir)/lxml - local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH} - - cp -al "${BUILD_DIR}"/{install,test} || die - cp -al src/lxml/tests "${dir}/" || die - cp -al src/lxml/html/tests "${dir}/html/" || die - mkdir "${dir}"/../../doc || die - # this one needs to be copied, because upstream uses doc/../../../doc - cp -r "${S}"/doc "${dir}"/../../ || die - ln -s "${S}"/doc "${dir}"/../../../../ || die - - "${EPYTHON}" test.py --no-src -vv --all-levels -p || - die "Tests fail on ${EPYTHON}" -} - -python_install_all() { - if use doc; then - local DOCS=( README.rst *.txt doc/*.txt ) - local HTML_DOCS=( doc/html/. ) - fi - if use examples; then - dodoc -r samples - fi - - distutils-r1_python_install_all -} - -pkg_postinst() { - optfeature "Support for BeautifulSoup as a parser backend" dev-python/beautifulsoup4 - optfeature "Translates CSS selectors to XPath 1.0 expressions" dev-python/cssselect - optfeature "Support for lxml.html.clean sanitizer" dev-python/lxml-html-clean -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.2.ebuild deleted file mode 100644 index 995eae7de9d..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.2.ebuild +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) - -inherit distutils-r1 optfeature toolchain-funcs - -DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries" -HOMEPAGE=" - https://lxml.de/ - https://pypi.org/project/lxml/ - https://github.com/lxml/lxml/ -" -SRC_URI=" - https://github.com/lxml/lxml/archive/${P}.tar.gz - -> ${P}.gh.tar.gz -" -S=${WORKDIR}/lxml-${P} - -LICENSE="BSD ElementTree GPL-2 PSF-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="doc examples +threads test" -RESTRICT="!test? ( test )" - -# Note: lib{xml2,xslt} are used as C libraries, not Python modules. -DEPEND=" - >=dev-libs/libxml2-2.10.3:= - >=dev-libs/libxslt-1.1.38 -" -RDEPEND=" - ${DEPEND} -" -BDEPEND=" - virtual/pkgconfig - >=dev-python/cython-3.1.4[${PYTHON_USEDEP}] - doc? ( - $(python_gen_any_dep ' - dev-python/docutils[${PYTHON_USEDEP}] - dev-python/pygments[${PYTHON_USEDEP}] - dev-python/sphinx[${PYTHON_USEDEP}] - dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] - ') - ) - test? ( - dev-python/cssselect[${PYTHON_USEDEP}] - ) -" - -PATCHES=( - "${FILESDIR}/${PN}-6.0.0-pypy.patch" -) - -python_check_deps() { - use doc || return 0 - python_has_version -b "dev-python/docutils[${PYTHON_USEDEP}]" && - python_has_version -b "dev-python/pygments[${PYTHON_USEDEP}]" && - python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" && - python_has_version -b "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]" -} - -python_prepare_all() { - # don't use some random SDK on Darwin - sed -i -e '/_ldflags =/s/=.*isysroot.*darwin.*None/= None/' \ - setupinfo.py || die - - distutils-r1_python_prepare_all -} - -python_compile() { - local DISTUTILS_ARGS=( - # by default it adds -w to CFLAGS - --warnings - ) - tc-export PKG_CONFIG - distutils-r1_python_compile -} - -python_compile_all() { - # disable automagic dep on coverage - use doc && emake CYTHON_WITH_COVERAGE= html -} - -python_test() { - local dir=${BUILD_DIR}/test$(python_get_sitedir)/lxml - local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH} - - cp -al "${BUILD_DIR}"/{install,test} || die - cp -al src/lxml/tests "${dir}/" || die - cp -al src/lxml/html/tests "${dir}/html/" || die - mkdir "${dir}"/../../doc || die - # this one needs to be copied, because upstream uses doc/../../../doc - cp -r "${S}"/doc "${dir}"/../../ || die - ln -s "${S}"/doc "${dir}"/../../../../ || die - - "${EPYTHON}" test.py --no-src -vv --all-levels -p || - die "Tests fail on ${EPYTHON}" -} - -python_install_all() { - if use doc; then - local DOCS=( README.rst *.txt doc/*.txt ) - local HTML_DOCS=( doc/html/. ) - fi - if use examples; then - dodoc -r samples - fi - - distutils-r1_python_install_all -} - -pkg_postinst() { - optfeature "Support for BeautifulSoup as a parser backend" dev-python/beautifulsoup4 - optfeature "Translates CSS selectors to XPath 1.0 expressions" dev-python/cssselect - optfeature "Support for lxml.html.clean sanitizer" dev-python/lxml-html-clean -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.1.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.1.0.ebuild new file mode 100644 index 00000000000..386440cdfa3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.1.0.ebuild @@ -0,0 +1,120 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..15} pypy3_11 ) + +inherit distutils-r1 optfeature toolchain-funcs + +DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries" +HOMEPAGE=" + https://lxml.de/ + https://pypi.org/project/lxml/ + https://github.com/lxml/lxml/ +" +SRC_URI=" + https://github.com/lxml/lxml/archive/${P}.tar.gz + -> ${P}.gh.tar.gz +" +S=${WORKDIR}/lxml-${P} + +LICENSE="BSD ElementTree GPL-2 PSF-2" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="doc examples +threads test" +RESTRICT="!test? ( test )" + +# Note: lib{xml2,xslt} are used as C libraries, not Python modules. +DEPEND=" + >=dev-libs/libxml2-2.10.3:= + >=dev-libs/libxslt-1.1.38 +" +RDEPEND=" + ${DEPEND} +" +BDEPEND=" + virtual/pkgconfig + >=dev-python/cython-3.1.4[${PYTHON_USEDEP}] + doc? ( + $(python_gen_any_dep ' + dev-python/docutils[${PYTHON_USEDEP}] + dev-python/pygments[${PYTHON_USEDEP}] + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] + ') + ) + test? ( + dev-python/cssselect[${PYTHON_USEDEP}] + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-6.0.4-pypy.patch" +) + +python_check_deps() { + use doc || return 0 + python_has_version -b "dev-python/docutils[${PYTHON_USEDEP}]" && + python_has_version -b "dev-python/pygments[${PYTHON_USEDEP}]" && + python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" && + python_has_version -b "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]" +} + +python_prepare_all() { + # don't use some random SDK on Darwin + sed -i -e '/_ldflags =/s/=.*isysroot.*darwin.*None/= None/' \ + setupinfo.py || die + + distutils-r1_python_prepare_all +} + +python_compile() { + local DISTUTILS_ARGS=( + # by default it adds -w to CFLAGS + --warnings + ) + tc-export PKG_CONFIG + distutils-r1_python_compile +} + +python_compile_all() { + # disable automagic dep on coverage + use doc && emake CYTHON_WITH_COVERAGE= html +} + +python_test() { + local dir=${BUILD_DIR}/test$(python_get_sitedir)/lxml + local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH} + + cp -al "${BUILD_DIR}"/{install,test} || die + cp -al src/lxml/tests "${dir}/" || die + cp -al src/lxml/html/tests "${dir}/html/" || die + mkdir "${dir}"/../../doc || die + # this one needs to be copied, because upstream uses doc/../../../doc + cp -r "${S}"/doc "${dir}"/../../ || die + ln -s "${S}"/doc "${dir}"/../../../../ || die + + "${EPYTHON}" test.py --no-src -vv --all-levels -p || + die "Tests fail on ${EPYTHON}" +} + +python_install_all() { + if use doc; then + local DOCS=( README.rst *.txt doc/*.txt ) + local HTML_DOCS=( doc/html/. ) + fi + if use examples; then + dodoc -r samples + fi + + distutils-r1_python_install_all +} + +pkg_postinst() { + optfeature "Support for BeautifulSoup as a parser backend" dev-python/beautifulsoup4 + optfeature "Translates CSS selectors to XPath 1.0 expressions" dev-python/cssselect + optfeature "Support for lxml.html.clean sanitizer" dev-python/lxml-html-clean +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.1.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.1.1.ebuild new file mode 100644 index 00000000000..61d0182a064 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.1.1.ebuild @@ -0,0 +1,123 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..15} pypy3_11 ) + +inherit distutils-r1 optfeature toolchain-funcs + +DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries" +HOMEPAGE=" + https://lxml.de/ + https://pypi.org/project/lxml/ + https://github.com/lxml/lxml/ +" +SRC_URI=" + https://github.com/lxml/lxml/archive/${P}.tar.gz + -> ${P}.gh.tar.gz +" +S=${WORKDIR}/lxml-${P} + +LICENSE="BSD ElementTree GPL-2 PSF-2" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="doc examples +threads test" +RESTRICT="!test? ( test )" + +# Note: lib{xml2,xslt} are used as C libraries, not Python modules. +DEPEND=" + >=dev-libs/libxml2-2.10.3:= + >=dev-libs/libxslt-1.1.38 +" +RDEPEND=" + ${DEPEND} +" +BDEPEND=" + virtual/pkgconfig + >=dev-python/cython-3.1.4[${PYTHON_USEDEP}] + doc? ( + $(python_gen_any_dep ' + dev-python/docutils[${PYTHON_USEDEP}] + dev-python/pygments[${PYTHON_USEDEP}] + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] + ') + ) + test? ( + dev-python/cssselect[${PYTHON_USEDEP}] + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-6.0.4-pypy.patch" +) + +python_check_deps() { + use doc || return 0 + python_has_version -b "dev-python/docutils[${PYTHON_USEDEP}]" && + python_has_version -b "dev-python/pygments[${PYTHON_USEDEP}]" && + python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" && + python_has_version -b "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]" +} + +python_prepare_all() { + # don't use some random SDK on Darwin + sed -i -e '/_ldflags =/s/=.*isysroot.*darwin.*None/= None/' \ + setupinfo.py || die + + distutils-r1_python_prepare_all +} + +python_compile() { + local DISTUTILS_ARGS=( + # by default it adds -w to CFLAGS + --warnings + ) + tc-export PKG_CONFIG + distutils-r1_python_compile +} + +python_compile_all() { + # disable automagic dep on coverage + use doc && emake CYTHON_WITH_COVERAGE= html +} + +python_test() { + # tests are completely broken on pypy by now + [[ ${EPYTHON} == pypy* ]] && return + + local dir=${BUILD_DIR}/test$(python_get_sitedir)/lxml + local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH} + + cp -al "${BUILD_DIR}"/{install,test} || die + cp -al src/lxml/tests "${dir}/" || die + cp -al src/lxml/html/tests "${dir}/html/" || die + mkdir "${dir}"/../../doc || die + # this one needs to be copied, because upstream uses doc/../../../doc + cp -r "${S}"/doc "${dir}"/../../ || die + ln -s "${S}"/doc "${dir}"/../../../../ || die + + "${EPYTHON}" test.py --no-src -vv --all-levels -p || + die "Tests fail on ${EPYTHON}" +} + +python_install_all() { + if use doc; then + local DOCS=( README.rst *.txt doc/*.txt ) + local HTML_DOCS=( doc/html/. ) + fi + if use examples; then + dodoc -r samples + fi + + distutils-r1_python_install_all +} + +pkg_postinst() { + optfeature "Support for BeautifulSoup as a parser backend" dev-python/beautifulsoup4 + optfeature "Translates CSS selectors to XPath 1.0 expressions" dev-python/cssselect + optfeature "Support for lxml.html.clean sanitizer" dev-python/lxml-html-clean +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/markdown-it-py/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/markdown-it-py/Manifest index 941b68deb9b..4a2ee8ce385 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/markdown-it-py/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/markdown-it-py/Manifest @@ -1,2 +1,3 @@ -DIST markdown-it-py-3.0.0.gh.tar.gz 275478 BLAKE2B ab264d6de015262e770b5da9c26a48a9fa40209119e38e12e4185aa8b5141986df62f2ff44d80c2d62732e75408b3a70bf35ae9b7ca899ae284636cc62ded710 SHA512 820265595ab650f5ac64419d5c2687d1ee361d2a0550b9d94e86ec826cfe5e89cbd69e59d6582aac41d3b95f00ce4a0b7213bf6cd590fdbd8fd9b743c7418759 DIST markdown-it-py-4.0.0.gh.tar.gz 279903 BLAKE2B c878259ae684875dfd9dd017ff5b541b842f2ef917e0f23fa00df77646684794f904eb3693106ce859853a375f8bd2e877346ef775341ed4452856f1793aa8a9 SHA512 617927d7038e2918b395c720d4b8d8327342c266c75b6fd5957961944c2bed51a8e2f01a9c184e5d85dfc4fd8b28e07f3cc1d677aa29192e1a8e54f29d6a0829 +DIST markdown-it-py-4.1.0.gh.tar.gz 292015 BLAKE2B b264b91bde959694b79de2ba8058a7a3938249d4c89b36da81b9edd6ea8e15af55b7dfac6a10ea2837f0df051b6d751fa8ebf37da7ecdac123b3a5d7fc773351 SHA512 483df889994a789b51f0a3dabb010d51bb5ca462f46a5b9a2096bd4f63b2a5f7d79a1ef86305e1ac43cbe65219b8541eff64c5bf1414a51fadc6f399dc234ad7 +DIST markdown-it-py-4.2.0.gh.tar.gz 294564 BLAKE2B 0f220d32998e07de0613ee623baca1c16cde5ef8e110bccc65e7dfad2054562a7c9767cad70905dad811c5eacb66b758cf36c0fa813ac8056c9da4202fdefa72 SHA512 81e659729f8da1ad269f40c693d66f0192c129dc42fcbcb09a14c617794816555d9f69137d09458d79f96eb5c92ea29e4d625616f994f7fcffa1b198a9830be0 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/markdown-it-py/markdown-it-py-3.0.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/markdown-it-py/markdown-it-py-3.0.0.ebuild deleted file mode 100644 index 8335d22a80e..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/markdown-it-py/markdown-it-py-3.0.0.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 2022-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) - -inherit distutils-r1 - -DESCRIPTION="Python port of markdown-it, Markdown parser" -HOMEPAGE=" - https://pypi.org/project/markdown-it-py/ - https://github.com/executablebooks/markdown-it-py/ -" -SRC_URI=" - https://github.com/executablebooks/markdown-it-py/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=" - -Date: Thu, 31 Jul 2025 05:10:08 +0200 -Subject: [PATCH] Disable coverage & socket plugins inside test venvs - ---- - tests/conftest.py | 33 --------------------------------- - 1 file changed, 33 deletions(-) - -diff --git a/tests/conftest.py b/tests/conftest.py -index c98b87117..f4ef35a7e 100644 ---- a/tests/conftest.py -+++ b/tests/conftest.py -@@ -444,25 +444,6 @@ def wheel_install(tmpdir_factory: pytest.TempPathFactory, common_wheels: Path) - - return _common_wheel_editable_install(tmpdir_factory, common_wheels, "wheel") - - --@pytest.fixture(scope="session") --def coverage_install( -- tmpdir_factory: pytest.TempPathFactory, common_wheels: Path --) -> Path: -- return _common_wheel_editable_install(tmpdir_factory, common_wheels, "coverage") -- -- --@pytest.fixture(scope="session") --def socket_install(tmpdir_factory: pytest.TempPathFactory, common_wheels: Path) -> Path: -- lib_dir = _common_wheel_editable_install( -- tmpdir_factory, common_wheels, "pytest_subket" -- ) -- # pytest-subket is only included so it can intercept and block unexpected -- # network requests. It should NOT be visible to the pip under test. -- dist_info = next(lib_dir.glob("*.dist-info")) -- shutil.rmtree(dist_info) -- return lib_dir -- -- - def install_pth_link( - venv: VirtualEnvironment, project_name: str, lib_dir: Path - ) -> None: -@@ -479,8 +460,6 @@ def virtualenv_template( - pip_editable_parts: tuple[Path, ...], - setuptools_install: Path, - wheel_install: Path, -- coverage_install: Path, -- socket_install: Path, - ) -> VirtualEnvironment: - venv_type: VirtualEnvironmentType - if request.config.getoption("--use-venv"): -@@ -494,11 +473,7 @@ def virtualenv_template( - - # Install setuptools, wheel, pytest-subket, and pip. - install_pth_link(venv, "setuptools", setuptools_install) - install_pth_link(venv, "wheel", wheel_install) -- install_pth_link(venv, "pytest_subket", socket_install) -- # Also copy pytest-subket's .pth file so it can intercept socket calls. -- with open(venv.site / "pytest_socket.pth", "w") as f: -- f.write(socket_install.joinpath("pytest_socket.pth").read_text()) - - pth, dist_info = pip_editable_parts - -@@ -511,13 +485,6 @@ def virtualenv_template( - # detects changed files. - venv.site.joinpath("easy-install.pth").touch() - -- # Install coverage and pth file for executing it in any spawned processes -- # in this virtual environment. -- install_pth_link(venv, "coverage", coverage_install) -- # zz prefix ensures the file is after easy-install.pth. -- with open(venv.site / "zz-coverage-helper.pth", "a") as f: -- f.write("import coverage; coverage.process_startup()") -- - # Drop (non-relocatable) launchers. - for exe in os.listdir(venv.bin): - if not exe.startswith(("python", "libpy")): # Don't remove libpypy-c.so... diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-25.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-25.3.ebuild deleted file mode 100644 index a306901ec2e..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-25.3.ebuild +++ /dev/null @@ -1,200 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# please bump dev-python/ensurepip-pip along with this package! - -DISTUTILS_USE_PEP517=flit -PYTHON_TESTED=( pypy3_11 python3_{11..14} ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) -PYTHON_REQ_USE="ssl(+),threads(+)" - -inherit distutils-r1 pypi shell-completion -FLIT_CORE_PV=3.12.0 - -DESCRIPTION="The PyPA recommended tool for installing Python packages" -HOMEPAGE=" - https://pip.pypa.io/en/stable/ - https://pypi.org/project/pip/ - https://github.com/pypa/pip/ -" -SRC_URI=" - https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${P}.gh.tar.gz - test? ( - $(pypi_wheel_url flit-core "${FLIT_CORE_PV}") - ) -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="test test-rust" -RESTRICT="!test? ( test )" - -# see src/pip/_vendor/vendor.txt -RDEPEND=" - >=dev-python/cachecontrol-0.14.3[${PYTHON_USEDEP}] - >=dev-python/dependency-groups-1.3.0[${PYTHON_USEDEP}] - >=dev-python/distlib-0.4.0[${PYTHON_USEDEP}] - >=dev-python/distro-1.9.0[${PYTHON_USEDEP}] - >=dev-python/msgpack-1.1.1[${PYTHON_USEDEP}] - >=dev-python/packaging-25.0[${PYTHON_USEDEP}] - >=dev-python/platformdirs-4.3.8[${PYTHON_USEDEP}] - >=dev-python/pyproject-hooks-1.2.0[${PYTHON_USEDEP}] - >=dev-python/requests-2.32.4[${PYTHON_USEDEP}] - >=dev-python/rich-14.1.0[${PYTHON_USEDEP}] - >=dev-python/resolvelib-1.2.0[${PYTHON_USEDEP}] - >=dev-python/setuptools-70.3.0[${PYTHON_USEDEP}] - >=dev-python/tomli-w-1.2.0[${PYTHON_USEDEP}] - >=dev-python/truststore-0.10.1[${PYTHON_USEDEP}] - >=dev-python/typing-extensions-4.13.2[${PYTHON_USEDEP}] -" -BDEPEND=" - ${RDEPEND} - test? ( - $(python_gen_cond_dep ' - dev-python/ensurepip-setuptools - dev-python/ensurepip-wheel - dev-python/freezegun[${PYTHON_USEDEP}] - dev-python/pretend[${PYTHON_USEDEP}] - dev-python/pytest[${PYTHON_USEDEP}] - dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] - dev-python/pytest-xdist[${PYTHON_USEDEP}] - dev-python/scripttest[${PYTHON_USEDEP}] - completion.bash || die - "${EPYTHON}" -c "${pipcmd}" completion --zsh > completion.zsh || die -} - -python_test() { - if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then - einfo "Skipping tests on ${EPYTHON}" - return 0 - fi - - local EPYTEST_DESELECT=( - tests/functional/test_inspect.py::test_inspect_basic - # Internet - tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist - tests/functional/test_install.py::test_double_install_fail - tests/functional/test_install.py::test_install_sdist_links - tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed - tests/functional/test_lock.py::test_lock_archive - tests/functional/test_lock.py::test_lock_vcs - # broken by system site-packages use - tests/functional/test_freeze.py::test_freeze_with_setuptools - tests/functional/test_install.py::test_install_subprocess_output_handling - tests/functional/test_pip_runner_script.py::test_runner_work_in_environments_with_no_pip - tests/functional/test_uninstall.py::test_basic_uninstall_distutils - tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup - tests/unit/test_base_command.py::test_base_command_local_tempdir_cleanup - tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers - # broken by unbundling - "tests/functional/test_debug.py::test_debug[vendored library versions:]" - tests/functional/test_debug.py::test_debug__library_versions - tests/functional/test_python_option.py::test_python_interpreter - tests/functional/test_uninstall.py::test_uninstall_non_local_distutils - ) - local EPYTEST_IGNORE=( - # from upstream options - tests/tests_cache - # requires proxy.py - tests/functional/test_proxy.py - ) - - case ${EPYTHON} in - pypy3*) - EPYTEST_DESELECT+=( - # unexpected tempfiles? - tests/functional/test_install_config.py::test_do_not_prompt_for_authentication - tests/functional/test_install_config.py::test_prompt_for_authentication - # wrong path - tests/functional/test_install.py::test_install_editable_with_prefix_setup_py - ) - ;; - esac - - if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then - EPYTEST_DESELECT+=( - tests/functional/test_install.py::test_install_sends_client_cert - tests/functional/test_install_config.py::test_do_not_prompt_for_authentication - tests/functional/test_install_config.py::test_prompt_for_authentication - tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed - ) - fi - - local -x PIP_DISABLE_PIP_VERSION_CHECK=1 - local EPYTEST_PLUGINS=() - # rerunfailures because test suite breaks if packages are installed - # to system site-packages while it's running - local EPYTEST_RERUNS=5 - local EPYTEST_XDIST=1 - epytest -m "not network" -o addopts= -o tmp_path_retention_policy=all \ - --use-venv -} - -python_install_all() { - local DOCS=( AUTHORS.txt docs/html/**/*.rst ) - distutils-r1_python_install_all - - newbashcomp completion.bash pip - newzshcomp completion.zsh _pip -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-26.0.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-26.0.1.ebuild index 604ce5887b5..c17cf70f9d8 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-26.0.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-26.0.1.ebuild @@ -28,7 +28,7 @@ SRC_URI=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE="test test-rust" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-26.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-26.0.ebuild deleted file mode 100644 index ef036e237ad..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-26.0.ebuild +++ /dev/null @@ -1,204 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# please bump dev-python/ensurepip-pip along with this package! - -DISTUTILS_USE_PEP517=flit -PYTHON_TESTED=( pypy3_11 python3_{11..14} ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) -PYTHON_REQ_USE="ssl(+),threads(+)" - -inherit distutils-r1 pypi shell-completion -FLIT_CORE_PV=3.12.0 - -DESCRIPTION="The PyPA recommended tool for installing Python packages" -HOMEPAGE=" - https://pip.pypa.io/en/stable/ - https://pypi.org/project/pip/ - https://github.com/pypa/pip/ -" -SRC_URI=" - https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${P}.gh.tar.gz - test? ( - $(pypi_wheel_url flit-core "${FLIT_CORE_PV}") - ) -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="test test-rust" -RESTRICT="!test? ( test )" - -# see src/pip/_vendor/vendor.txt -RDEPEND=" - >=dev-python/cachecontrol-0.14.3[${PYTHON_USEDEP}] - >=dev-python/dependency-groups-1.3.0[${PYTHON_USEDEP}] - >=dev-python/distlib-0.4.0[${PYTHON_USEDEP}] - >=dev-python/distro-1.9.0[${PYTHON_USEDEP}] - >=dev-python/msgpack-1.1.1[${PYTHON_USEDEP}] - >=dev-python/packaging-25.0[${PYTHON_USEDEP}] - >=dev-python/platformdirs-4.3.8[${PYTHON_USEDEP}] - >=dev-python/pyproject-hooks-1.2.0[${PYTHON_USEDEP}] - >=dev-python/requests-2.32.4[${PYTHON_USEDEP}] - >=dev-python/rich-14.1.0[${PYTHON_USEDEP}] - >=dev-python/resolvelib-1.2.0[${PYTHON_USEDEP}] - >=dev-python/setuptools-70.3.0[${PYTHON_USEDEP}] - >=dev-python/tomli-w-1.2.0[${PYTHON_USEDEP}] - >=dev-python/truststore-0.10.1[${PYTHON_USEDEP}] - >=dev-python/typing-extensions-4.13.2[${PYTHON_USEDEP}] -" -BDEPEND=" - ${RDEPEND} - test? ( - $(python_gen_cond_dep ' - dev-python/ensurepip-setuptools - dev-python/freezegun[${PYTHON_USEDEP}] - dev-python/pretend[${PYTHON_USEDEP}] - dev-python/pytest[${PYTHON_USEDEP}] - dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] - dev-python/pytest-xdist[${PYTHON_USEDEP}] - dev-python/scripttest[${PYTHON_USEDEP}] - >=dev-python/setuptools-70.1.0[${PYTHON_USEDEP}] - dev-python/virtualenv[${PYTHON_USEDEP}] - dev-python/werkzeug[${PYTHON_USEDEP}] - test-rust? ( - dev-python/cryptography[${PYTHON_USEDEP}] - ) - dev-vcs/git - ' "${PYTHON_TESTED[@]}") - ) -" - -python_prepare_all() { - local PATCHES=( - # remove coverage & pytest-subket wheel expectation from test suite - "${FILESDIR}/pip-26.0-test-wheels.patch" - # prepare to unbundle dependencies - "${FILESDIR}/pip-25.0.1-unbundle.patch" - ) - - distutils-r1_python_prepare_all - - # unbundle dependencies - rm -r src/pip/_vendor || die - find -name '*.py' -exec sed -i \ - -e 's:from pip\._vendor import:import:g' \ - -e 's:from pip\._vendor\.:from :g' \ - {} + || die - sed -i -e '/_vendor.*\(COPYING\|LICENSE\)/d' pyproject.toml || die - - if use test; then - local wheels=( - "${BROOT}"/usr/lib/python/ensurepip/{setuptools,wheel}-*.whl - "${DISTDIR}/$(pypi_wheel_name flit-core "${FLIT_CORE_PV}")" - ) - mkdir tests/data/common_wheels/ || die - cp "${wheels[@]}" tests/data/common_wheels/ || die - fi -} - -python_configure() { - if use test && has_version "dev-python/pip[${PYTHON_USEDEP}]"; then - "${EPYTHON}" -m pip check || - die "${EPYTHON} -m pip check failed, tests will fail" - fi -} - -python_compile_all() { - # 'pip completion' command embeds full $0 into completion script, which confuses - # 'complete' and causes QA warning when running as "${PYTHON} -m pip". - # This trick sets correct $0 while still calling just installed pip. - local pipcmd='if True: - import sys - sys.argv[0] = "pip" - __file__ = "" - from pip._internal.cli.main import main - sys.exit(main()) - ' - "${EPYTHON}" -c "${pipcmd}" completion --bash > completion.bash || die - "${EPYTHON}" -c "${pipcmd}" completion --zsh > completion.zsh || die -} - -python_test() { - if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then - einfo "Skipping tests on ${EPYTHON}" - return 0 - fi - - local EPYTEST_DESELECT=( - tests/functional/test_inspect.py::test_inspect_basic - # Internet - tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist - tests/functional/test_install.py::test_double_install_fail - tests/functional/test_install.py::test_install_sdist_links - tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed - tests/functional/test_lock.py::test_lock_archive - tests/functional/test_lock.py::test_lock_vcs - # broken by system site-packages use - tests/functional/test_freeze.py::test_freeze_with_setuptools - tests/functional/test_install.py::test_install_subprocess_output_handling - tests/functional/test_pip_runner_script.py::test_runner_work_in_environments_with_no_pip - tests/functional/test_uninstall.py::test_basic_uninstall_distutils - tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup - tests/unit/test_base_command.py::test_base_command_local_tempdir_cleanup - tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers - # broken by unbundling - "tests/functional/test_debug.py::test_debug[vendored library versions:]" - tests/functional/test_debug.py::test_debug__library_versions - tests/functional/test_freeze.py::test_freeze_multiple_exclude_with_all - tests/functional/test_install.py::test_install_package_with_same_name_in_curdir - tests/functional/test_pep517.py::test_nested_builds - tests/functional/test_python_option.py::test_python_interpreter - tests/functional/test_uninstall.py::test_basic_uninstall - tests/functional/test_uninstall.py::test_uninstall_non_local_distutils - ) - local EPYTEST_IGNORE=( - # from upstream options - tests/tests_cache - # requires proxy.py - tests/functional/test_proxy.py - ) - - case ${EPYTHON} in - pypy3*) - EPYTEST_DESELECT+=( - # unexpected tempfiles? - tests/functional/test_install_config.py::test_do_not_prompt_for_authentication - tests/functional/test_install_config.py::test_prompt_for_authentication - # wrong path - tests/functional/test_install.py::test_install_editable_with_prefix_setup_py - # wrong exception assumptions - tests/unit/test_utils_datetime.py::test_parse_iso_datetime_invalid - ) - ;; - esac - - if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then - EPYTEST_DESELECT+=( - tests/functional/test_install.py::test_install_sends_client_cert - tests/functional/test_install_config.py::test_do_not_prompt_for_authentication - tests/functional/test_install_config.py::test_prompt_for_authentication - tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed - ) - fi - - local -x PIP_DISABLE_PIP_VERSION_CHECK=1 - local EPYTEST_PLUGINS=() - # rerunfailures because test suite breaks if packages are installed - # to system site-packages while it's running - local EPYTEST_RERUNS=5 - local EPYTEST_XDIST=1 - epytest -m "not network" -o addopts= -o tmp_path_retention_policy=all \ - --use-venv -} - -python_install_all() { - local DOCS=( AUTHORS.txt docs/html/**/*.rst ) - distutils-r1_python_install_all - - newbashcomp completion.bash pip - newzshcomp completion.zsh _pip -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-26.1.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-26.1.1.ebuild new file mode 100644 index 00000000000..3faabd1fa3e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-26.1.1.ebuild @@ -0,0 +1,206 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# please bump dev-python/ensurepip-pip along with this package! + +DISTUTILS_USE_PEP517=flit +PYTHON_TESTED=( pypy3_11 python3_{11..14} ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) +PYTHON_REQ_USE="ssl(+),threads(+)" + +inherit distutils-r1 pypi shell-completion +FLIT_CORE_PV=3.12.0 + +DESCRIPTION="The PyPA recommended tool for installing Python packages" +HOMEPAGE=" + https://pip.pypa.io/en/stable/ + https://pypi.org/project/pip/ + https://github.com/pypa/pip/ +" +SRC_URI=" + https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${P}.gh.tar.gz + test? ( + $(pypi_wheel_url flit-core "${FLIT_CORE_PV}") + ) +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="test test-rust" +RESTRICT="!test? ( test )" + +# see src/pip/_vendor/vendor.txt +RDEPEND=" + >=dev-python/cachecontrol-0.14.3[${PYTHON_USEDEP}] + >=dev-python/dependency-groups-1.3.0[${PYTHON_USEDEP}] + >=dev-python/distlib-0.4.0[${PYTHON_USEDEP}] + >=dev-python/distro-1.9.0[${PYTHON_USEDEP}] + >=dev-python/msgpack-1.1.1[${PYTHON_USEDEP}] + >=dev-python/packaging-26.2[${PYTHON_USEDEP}] + >=dev-python/platformdirs-4.3.8[${PYTHON_USEDEP}] + >=dev-python/pyproject-hooks-1.2.0[${PYTHON_USEDEP}] + >=dev-python/requests-2.33.1[${PYTHON_USEDEP}] + >=dev-python/rich-14.1.0[${PYTHON_USEDEP}] + >=dev-python/resolvelib-1.2.0[${PYTHON_USEDEP}] + >=dev-python/setuptools-70.3.0[${PYTHON_USEDEP}] + >=dev-python/tomli-w-1.2.0[${PYTHON_USEDEP}] + >=dev-python/truststore-0.10.1[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.13.2[${PYTHON_USEDEP}] +" +BDEPEND=" + ${RDEPEND} + test? ( + $(python_gen_cond_dep ' + dev-python/ensurepip-setuptools + dev-python/freezegun[${PYTHON_USEDEP}] + dev-python/pretend[${PYTHON_USEDEP}] + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-python/scripttest[${PYTHON_USEDEP}] + completion.bash || die + "${EPYTHON}" -c "${pipcmd}" completion --zsh > completion.zsh || die +} + +python_test() { + if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then + einfo "Skipping tests on ${EPYTHON}" + return 0 + fi + + local EPYTEST_DESELECT=( + tests/functional/test_inspect.py::test_inspect_basic + # Internet + tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist + tests/functional/test_install.py::test_double_install_fail + tests/functional/test_install.py::test_install_sdist_links + tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed + tests/functional/test_lock.py::test_lock_archive + tests/functional/test_lock.py::test_lock_vcs + # broken by system site-packages use + tests/functional/test_freeze.py::test_freeze_with_setuptools + tests/functional/test_install.py::test_install_subprocess_output_handling + tests/functional/test_pip_runner_script.py::test_runner_work_in_environments_with_no_pip + tests/functional/test_uninstall.py::test_basic_uninstall_distutils + tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup + tests/unit/test_base_command.py::test_base_command_local_tempdir_cleanup + tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers + # broken by unbundling + "tests/functional/test_debug.py::test_debug[vendored library versions:]" + tests/functional/test_debug.py::test_debug__library_versions + tests/functional/test_freeze.py::test_freeze_multiple_exclude_with_all + tests/functional/test_install.py::test_install_package_with_same_name_in_curdir + tests/functional/test_pep517.py::test_nested_builds + tests/functional/test_python_option.py::test_python_interpreter + tests/functional/test_uninstall.py::test_basic_uninstall + tests/functional/test_uninstall.py::test_uninstall_non_local_distutils + ) + local EPYTEST_IGNORE=( + # from upstream options + tests/tests_cache + # requires proxy.py + tests/functional/test_proxy.py + ) + + case ${EPYTHON} in + pypy3*) + EPYTEST_DESELECT+=( + # unexpected tempfiles? + tests/functional/test_install_config.py::test_do_not_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_authentication + # wrong path + tests/functional/test_install.py::test_install_editable_with_prefix_setup_py + # wrong exception assumptions + tests/unit/test_utils_datetime.py::test_parse_iso_datetime_invalid + # TODO + tests/functional/test_install.py::test_install_warns_on_unexpected_post_install_import + ) + ;; + esac + + if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + tests/functional/test_install.py::test_install_sends_client_cert + tests/functional/test_install_config.py::test_do_not_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed + ) + fi + + local -x PIP_DISABLE_PIP_VERSION_CHECK=1 + local EPYTEST_PLUGINS=() + # rerunfailures because test suite breaks if packages are installed + # to system site-packages while it's running + local EPYTEST_RERUNS=5 + local EPYTEST_XDIST=1 + epytest -m "not network" -o addopts= -o tmp_path_retention_policy=all \ + --use-venv +} + +python_install_all() { + local DOCS=( AUTHORS.txt docs/html/**/*.rst ) + distutils-r1_python_install_all + + newbashcomp completion.bash pip + newzshcomp completion.zsh _pip +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-26.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-26.1.ebuild new file mode 100644 index 00000000000..3faabd1fa3e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-26.1.ebuild @@ -0,0 +1,206 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# please bump dev-python/ensurepip-pip along with this package! + +DISTUTILS_USE_PEP517=flit +PYTHON_TESTED=( pypy3_11 python3_{11..14} ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) +PYTHON_REQ_USE="ssl(+),threads(+)" + +inherit distutils-r1 pypi shell-completion +FLIT_CORE_PV=3.12.0 + +DESCRIPTION="The PyPA recommended tool for installing Python packages" +HOMEPAGE=" + https://pip.pypa.io/en/stable/ + https://pypi.org/project/pip/ + https://github.com/pypa/pip/ +" +SRC_URI=" + https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${P}.gh.tar.gz + test? ( + $(pypi_wheel_url flit-core "${FLIT_CORE_PV}") + ) +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="test test-rust" +RESTRICT="!test? ( test )" + +# see src/pip/_vendor/vendor.txt +RDEPEND=" + >=dev-python/cachecontrol-0.14.3[${PYTHON_USEDEP}] + >=dev-python/dependency-groups-1.3.0[${PYTHON_USEDEP}] + >=dev-python/distlib-0.4.0[${PYTHON_USEDEP}] + >=dev-python/distro-1.9.0[${PYTHON_USEDEP}] + >=dev-python/msgpack-1.1.1[${PYTHON_USEDEP}] + >=dev-python/packaging-26.2[${PYTHON_USEDEP}] + >=dev-python/platformdirs-4.3.8[${PYTHON_USEDEP}] + >=dev-python/pyproject-hooks-1.2.0[${PYTHON_USEDEP}] + >=dev-python/requests-2.33.1[${PYTHON_USEDEP}] + >=dev-python/rich-14.1.0[${PYTHON_USEDEP}] + >=dev-python/resolvelib-1.2.0[${PYTHON_USEDEP}] + >=dev-python/setuptools-70.3.0[${PYTHON_USEDEP}] + >=dev-python/tomli-w-1.2.0[${PYTHON_USEDEP}] + >=dev-python/truststore-0.10.1[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.13.2[${PYTHON_USEDEP}] +" +BDEPEND=" + ${RDEPEND} + test? ( + $(python_gen_cond_dep ' + dev-python/ensurepip-setuptools + dev-python/freezegun[${PYTHON_USEDEP}] + dev-python/pretend[${PYTHON_USEDEP}] + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-python/scripttest[${PYTHON_USEDEP}] + completion.bash || die + "${EPYTHON}" -c "${pipcmd}" completion --zsh > completion.zsh || die +} + +python_test() { + if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then + einfo "Skipping tests on ${EPYTHON}" + return 0 + fi + + local EPYTEST_DESELECT=( + tests/functional/test_inspect.py::test_inspect_basic + # Internet + tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist + tests/functional/test_install.py::test_double_install_fail + tests/functional/test_install.py::test_install_sdist_links + tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed + tests/functional/test_lock.py::test_lock_archive + tests/functional/test_lock.py::test_lock_vcs + # broken by system site-packages use + tests/functional/test_freeze.py::test_freeze_with_setuptools + tests/functional/test_install.py::test_install_subprocess_output_handling + tests/functional/test_pip_runner_script.py::test_runner_work_in_environments_with_no_pip + tests/functional/test_uninstall.py::test_basic_uninstall_distutils + tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup + tests/unit/test_base_command.py::test_base_command_local_tempdir_cleanup + tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers + # broken by unbundling + "tests/functional/test_debug.py::test_debug[vendored library versions:]" + tests/functional/test_debug.py::test_debug__library_versions + tests/functional/test_freeze.py::test_freeze_multiple_exclude_with_all + tests/functional/test_install.py::test_install_package_with_same_name_in_curdir + tests/functional/test_pep517.py::test_nested_builds + tests/functional/test_python_option.py::test_python_interpreter + tests/functional/test_uninstall.py::test_basic_uninstall + tests/functional/test_uninstall.py::test_uninstall_non_local_distutils + ) + local EPYTEST_IGNORE=( + # from upstream options + tests/tests_cache + # requires proxy.py + tests/functional/test_proxy.py + ) + + case ${EPYTHON} in + pypy3*) + EPYTEST_DESELECT+=( + # unexpected tempfiles? + tests/functional/test_install_config.py::test_do_not_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_authentication + # wrong path + tests/functional/test_install.py::test_install_editable_with_prefix_setup_py + # wrong exception assumptions + tests/unit/test_utils_datetime.py::test_parse_iso_datetime_invalid + # TODO + tests/functional/test_install.py::test_install_warns_on_unexpected_post_install_import + ) + ;; + esac + + if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + tests/functional/test_install.py::test_install_sends_client_cert + tests/functional/test_install_config.py::test_do_not_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed + ) + fi + + local -x PIP_DISABLE_PIP_VERSION_CHECK=1 + local EPYTEST_PLUGINS=() + # rerunfailures because test suite breaks if packages are installed + # to system site-packages while it's running + local EPYTEST_RERUNS=5 + local EPYTEST_XDIST=1 + epytest -m "not network" -o addopts= -o tmp_path_retention_policy=all \ + --use-venv +} + +python_install_all() { + local DOCS=( AUTHORS.txt docs/html/**/*.rst ) + distutils-r1_python_install_all + + newbashcomp completion.bash pip + newzshcomp completion.zsh _pip +} 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 2dac7d8e97b..11b0cfc1bb1 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,13 +1,4 @@ -DIST platformdirs-4.5.0.tar.gz 21632 BLAKE2B 06de7250dd254e03c29d32d2dbb9da65078c480e2cbdafe3dafd5602182b4472f5078d66a30a04e22c8493904097a60c82ac734b1d0ba304088b0180878dbf7f SHA512 cefe512f8f6cbe989eacdffbbb98a964000855cca46faade62180837d7e21dd6c43eb172211e55fd04090df04e2ef416d49e92d7ccc3a0253ce2a88fc3fb9358 -DIST platformdirs-4.5.1.tar.gz 21715 BLAKE2B f987cafe13a440716d73c6f98183bc1b4ae7d778931a81a4f140273d9fd1bc51e56633ff4a4381dbc2050284d9d0fa085ab54adbf504807c715f3441b8c8dab3 SHA512 33651a2aba8e844027d22f1e7a48fb32750a81a8d73807a4f10f37f1ba7ee8c8d3b2c391920328fb34fce1d3653e6d7f097a2c5e09b350a8ebfb6f21e3b1c488 -DIST platformdirs-4.5.1.tar.gz.provenance 9300 BLAKE2B ede576d4aa1a03871bd448efcd9613a209651bfcd91681a7afd680cf8f75e5dd8fbe6bca298a9cb51807da06f32fd80b27ba6adedf8b504c556724bfc18c3bf9 SHA512 6ad9983c790a1765ac70544f1ab04ecae0697d883fb355b6771688ac1b564e3b0fa7e8f538e586315d8a1e2f8e970b5818ba254546c6ed578ecbc56d6bfa42b0 -DIST platformdirs-4.7.0.tar.gz 23118 BLAKE2B d34ca4b0bdd0ab7a4ec95c5422c6bfa6250d5303366e1d925034e0c13fb49f97ee1632f5e7b633cf71ed2e12380386e010a8c62514a76ba61b7f6b26b0660333 SHA512 d5e28eb05c73c7a0187ccfa9df9b3819804fcb92ba4237f3c788d1d8722d1ec0fea54708c1d976077e4189b2187bf8f19657f05dc51a515ffa53c07da07e93ca -DIST platformdirs-4.7.0.tar.gz.provenance 9603 BLAKE2B c447cf6506e949e8581ee8be02c04ce744f1073e9b01bc3df0e2c30d03b83c1ac3e846077a2ecdbd7efeae385bbd7e1dadf2acfd72adc38bf8bffe8b937357b3 SHA512 67ab398c3993028f1439a1caaf90962574c949efd7edd1617addf85d0fe4aa344f6bfc94ac9077bcd8a9cb75cd40b91759b602c510223c4b9ca2f9843cbc92e0 -DIST platformdirs-4.8.0.tar.gz 27607 BLAKE2B 4b528902dc5843d832b20e4519f5b979025705a46fb436814cfc749bad372449e1a92043ef682f177378c16d5271a4950f6845fe50c7cc5509399e33cc87782d SHA512 fedf1c0afd7146345fece2ab54a53b1b60564258ca26e0bf099240a9ef51feede4228f95ec743e8a4719c647697458a115d1eae4793113867cf85b461b150de9 -DIST platformdirs-4.8.0.tar.gz.provenance 9748 BLAKE2B a707a61953bfcd8a3cc23e9bee0abb8f84d1f4ac1cd82dc6d334bef7e828fba53798f76bf63d7a4f1e70996166b610037c17f3f71c2e3cf6fd3d11a99ab33fab SHA512 369c4dded10a7a2432429cdd5f7ce6b2edca62d9c4af31c32fe5560258693e084621ae88b98b963274a23805fb63c9d233eab5ae674dff44cce5965ab9bc6c43 -DIST platformdirs-4.9.1.tar.gz 28392 BLAKE2B 4f471fee64760430175dbc01eb8d3384146d8b68a97fac0b714ad351daae1ee72629ad2a369f60b157444ae1e37093d183c7ad9557c35124647c6c0b727e5011 SHA512 3e4fc0841d1f23539947b765d397e50e7b4f4dc639b1286dbc082b685561e0f64af661a5dbb22ef0a3433a99ec88987a693e1462a5d4b150ea205982dae98c45 -DIST platformdirs-4.9.1.tar.gz.provenance 9415 BLAKE2B 208160d5268e2f3fa48836def656e9c11936b268b882de278d07bb7ad4039ead7374b9450701439de09e54fb1b402362417b08494e5099ce7e86d3283832483c SHA512 6a5dcc1a186d9d8bc41169a898690d957312974f9754e104a9721da1347ad6a29c7c232c48c1b57a84745da4ddb1c71371eb298ca99ea6fe8de0bde4f42da53b -DIST platformdirs-4.9.2.tar.gz 28394 BLAKE2B 2a44ddd40489767c7961a202d70ebf49ff01b7ea6f098d67e99cc55693c11fb9ca598414f0f9433895295bc1ce43981ff1c942a3aaff6014024c9a77c9e9e8b2 SHA512 3abd4570abae3964c6afd52493b5f99f81c5543833f01ca8f8c59cbd00108b4d8030b0dc8e7991cb807b6817f28552f008e962c88b12db4fc07ce4015f05e8ec -DIST platformdirs-4.9.2.tar.gz.provenance 9509 BLAKE2B d5631eb6e1cd8f2916a6900d085ff03e10a7a31a24a15984715f2b06525fe2b620ffe1676bd62a3a0b730fef1c99245086bc02eb5fd22344c1f338837e4d9f18 SHA512 18bc0ae845dbf90ac50cff9a071a0e6df28c8e13aa5a849590db739137f67edd85230357d1a5337262753f2c5416b5a8f880c8e82e0d85b3800b17a312c8a7fc DIST platformdirs-4.9.4.tar.gz 28737 BLAKE2B a71ac9b3b3b2a9a02e3cf8b20cc91740da278f6581753a360600c6c2ee6c887872f08bea324ea4334337d1ccf4bdf83fc7a2b14895dc72d6421598f9234dd17b SHA512 32108f239e76693f63789dd975463a44cbd4cc06f96a86a01d3d7fc675cb953a0d6818fb8fc92daef7f1ceba8bc62f2577d092d0e58c6c616740699a2140a0d7 DIST platformdirs-4.9.4.tar.gz.provenance 9698 BLAKE2B dc9bcf69c9bd816e61ff77096aa90f1abcabd6abad3d037d1bdf5efc354f02f53cb05b5779d874f4d9b3997172969f21777ac204050cd662dda3d8feb3ea006c SHA512 1321d072852a555f54721a6e3241aa808da665848afb3f91ca3bd47d8231dc21b85b566bd1064c5a92324aecfecc599a035ced9a8cdfff766ba53af44142d2b4 +DIST platformdirs-4.9.6.tar.gz 29400 BLAKE2B 8b41e158994241e6aa9338e239afb4d4788b4c710e978f160b35768d53cfdf18379f64beec70d661d9574a833dc0bb41aedd4964f392ce67880e8cc97e917757 SHA512 90030693cbe91f05702902787ac35c61aa4818189dbb5742f1d662b501584bd63d9b978367d826b58ca30d42e8479db86b479a0a6549c66a10a6409b96329ff5 +DIST platformdirs-4.9.6.tar.gz.provenance 9611 BLAKE2B c5dd3f37a1a5e19b4c4589f72df520138ae9701e88ef65ebf1035296cfc2d652de0bc99e3f7063dfe08ee7a6a282a73ad5bb91b68fe2233803facf2aa266dbb1 SHA512 7ee87d1e8643f83801d1662df7f9de33bbe8948f14472d9ea3cbf6e33ae1cbc101b1f7e0073dac7c0ff3408234f4825186cbe862cb221299a65ada7bb6a4f334 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.5.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.5.0.ebuild deleted file mode 100644 index bd86bb804eb..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.5.0.ebuild +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright 2021-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="A small Python module for determining appropriate platform-specific dirs" -HOMEPAGE=" - https://pypi.org/project/platformdirs/ - https://github.com/tox-dev/platformdirs/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" - -BDEPEND=" - test? ( - dev-python/appdirs[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=( pytest-mock ) -distutils_enable_tests pytest - -src_configure() { - grep -q 'build-backend = "hatchling' pyproject.toml || - die "Upstream changed build-backend, recheck" - # write a custom pyproject.toml to ease setuptools bootstrap - cat > pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "${PN}" - version = "${PV}" - description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".' - EOF - # sigh - cat > src/platformdirs/version.py <<-EOF || die - __version__ = version = '${PV}' - __version_tuple__ = version_tuple = (${PV//./, }) - EOF -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.5.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.5.1.ebuild deleted file mode 100644 index c6e08b2d1f7..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.5.1.ebuild +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright 2021-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYPI_VERIFY_REPO=https://github.com/tox-dev/platformdirs -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="A small Python module for determining appropriate platform-specific dirs" -HOMEPAGE=" - https://pypi.org/project/platformdirs/ - https://github.com/tox-dev/platformdirs/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" - -BDEPEND=" - test? ( - dev-python/appdirs[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=( pytest-mock ) -distutils_enable_tests pytest - -src_configure() { - grep -q 'build-backend = "hatchling' pyproject.toml || - die "Upstream changed build-backend, recheck" - # write a custom pyproject.toml to ease setuptools bootstrap - cat > pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "${PN}" - version = "${PV}" - description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".' - EOF - # sigh - cat > src/platformdirs/version.py <<-EOF || die - __version__ = version = '${PV}' - __version_tuple__ = version_tuple = (${PV//./, }) - EOF -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.7.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.7.0.ebuild deleted file mode 100644 index 559e2ecad51..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.7.0.ebuild +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright 2021-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYPI_VERIFY_REPO=https://github.com/tox-dev/platformdirs -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="A small Python module for determining appropriate platform-specific dirs" -HOMEPAGE=" - https://pypi.org/project/platformdirs/ - https://github.com/tox-dev/platformdirs/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" - -BDEPEND=" - test? ( - dev-python/appdirs[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=( pytest-mock ) -distutils_enable_tests pytest - -src_configure() { - grep -q 'build-backend = "hatchling' pyproject.toml || - die "Upstream changed build-backend, recheck" - # write a custom pyproject.toml to ease setuptools bootstrap - cat > pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "${PN}" - version = "${PV}" - description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".' - EOF - # sigh - cat > src/platformdirs/version.py <<-EOF || die - __version__ = version = '${PV}' - __version_tuple__ = version_tuple = (${PV//./, }) - EOF -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.8.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.8.0.ebuild deleted file mode 100644 index 559e2ecad51..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.8.0.ebuild +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright 2021-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYPI_VERIFY_REPO=https://github.com/tox-dev/platformdirs -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="A small Python module for determining appropriate platform-specific dirs" -HOMEPAGE=" - https://pypi.org/project/platformdirs/ - https://github.com/tox-dev/platformdirs/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" - -BDEPEND=" - test? ( - dev-python/appdirs[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=( pytest-mock ) -distutils_enable_tests pytest - -src_configure() { - grep -q 'build-backend = "hatchling' pyproject.toml || - die "Upstream changed build-backend, recheck" - # write a custom pyproject.toml to ease setuptools bootstrap - cat > pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "${PN}" - version = "${PV}" - description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".' - EOF - # sigh - cat > src/platformdirs/version.py <<-EOF || die - __version__ = version = '${PV}' - __version_tuple__ = version_tuple = (${PV//./, }) - EOF -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.9.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.9.1.ebuild deleted file mode 100644 index 559e2ecad51..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.9.1.ebuild +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright 2021-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYPI_VERIFY_REPO=https://github.com/tox-dev/platformdirs -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="A small Python module for determining appropriate platform-specific dirs" -HOMEPAGE=" - https://pypi.org/project/platformdirs/ - https://github.com/tox-dev/platformdirs/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" - -BDEPEND=" - test? ( - dev-python/appdirs[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=( pytest-mock ) -distutils_enable_tests pytest - -src_configure() { - grep -q 'build-backend = "hatchling' pyproject.toml || - die "Upstream changed build-backend, recheck" - # write a custom pyproject.toml to ease setuptools bootstrap - cat > pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "${PN}" - version = "${PV}" - description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".' - EOF - # sigh - cat > src/platformdirs/version.py <<-EOF || die - __version__ = version = '${PV}' - __version_tuple__ = version_tuple = (${PV//./, }) - EOF -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.9.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.9.2.ebuild deleted file mode 100644 index 559e2ecad51..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.9.2.ebuild +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright 2021-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYPI_VERIFY_REPO=https://github.com/tox-dev/platformdirs -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="A small Python module for determining appropriate platform-specific dirs" -HOMEPAGE=" - https://pypi.org/project/platformdirs/ - https://github.com/tox-dev/platformdirs/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" - -BDEPEND=" - test? ( - dev-python/appdirs[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=( pytest-mock ) -distutils_enable_tests pytest - -src_configure() { - grep -q 'build-backend = "hatchling' pyproject.toml || - die "Upstream changed build-backend, recheck" - # write a custom pyproject.toml to ease setuptools bootstrap - cat > pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "${PN}" - version = "${PV}" - description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".' - EOF - # sigh - cat > src/platformdirs/version.py <<-EOF || die - __version__ = version = '${PV}' - __version_tuple__ = version_tuple = (${PV//./, }) - EOF -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.9.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.9.4.ebuild index 559e2ecad51..641acd0e145 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.9.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.9.4.ebuild @@ -17,7 +17,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~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.9.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.9.6.ebuild new file mode 100644 index 00000000000..522d7bcb213 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.9.6.ebuild @@ -0,0 +1,50 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYPI_VERIFY_REPO=https://github.com/tox-dev/platformdirs +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) + +inherit distutils-r1 pypi + +DESCRIPTION="A small Python module for determining appropriate platform-specific dirs" +HOMEPAGE=" + https://pypi.org/project/platformdirs/ + https://github.com/tox-dev/platformdirs/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" + +BDEPEND=" + test? ( + dev-python/appdirs[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( pytest-mock ) +distutils_enable_tests pytest + +src_configure() { + grep -q 'build-backend = "hatchling' pyproject.toml || + die "Upstream changed build-backend, recheck" + # write a custom pyproject.toml to ease setuptools bootstrap + cat > pyproject.toml <<-EOF || die + [build-system] + requires = ["flit_core >=3.2,<4"] + build-backend = "flit_core.buildapi" + + [project] + name = "${PN}" + version = "${PV}" + description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".' + EOF + # sigh + cat > src/platformdirs/version.py <<-EOF || die + __version__ = version = '${PV}' + __version_tuple__ = version_tuple = (${PV//./, }) + EOF +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pluggy/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/pluggy/Manifest index 43abdf8073f..c688f278f09 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pluggy/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/pluggy/Manifest @@ -1 +1,2 @@ DIST pluggy-1.6.0.tar.gz 69412 BLAKE2B ccd5d0d89a2686cd1cfb25308df8cf8bcf1c3bf2348af0f0cf2ca7341d8f8fb84c7661ab2e085039f9a52958778f3dcea6247c2d690d40347fc9d7db58fe6bfc SHA512 8b88eb778ab955910bcde2b3a6c4925d0a239f932aa9b1d8a351aa21b8a922bd842f735e397ef15ed9bd8e51085a88723660e1e691888a9879e7144add32bff2 +DIST pluggy-1.6.0.tar.gz.provenance 9029 BLAKE2B 2437b65c24b98b149acb32a20d86f5893940826abf3354ee2b71f39e8755ddece904d1e2c4cb18174766e7e069aab7e833062da56d9a5a1991782fc19a02dfa3 SHA512 5a6e25c3364210d713d1b1909794453ba2987341a1c4a7f5f11079164fbc900259c5e2ec7e45806d92120d577304019815120a973f23499751d5263d247aecd9 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pluggy/pluggy-1.6.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pluggy/pluggy-1.6.0.ebuild index 0011aab6956..23bb0e8bcd2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pluggy/pluggy-1.6.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/pluggy/pluggy-1.6.0.ebuild @@ -1,10 +1,11 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) +PYPI_VERIFY_REPO=https://github.com/pytest-dev/pluggy +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) inherit distutils-r1 pypi @@ -23,4 +24,5 @@ BDEPEND=" dev-python/setuptools-scm[${PYTHON_USEDEP}] " +EPYTEST_PLUGINS=() distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/ply/files/ply-3.11-test-py315.patch b/sdk_container/src/third_party/portage-stable/dev-python/ply/files/ply-3.11-test-py315.patch new file mode 100644 index 00000000000..b3cab73a321 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/ply/files/ply-3.11-test-py315.patch @@ -0,0 +1,26 @@ +From 3ef4ef231342ca00f7f97772fea451c66aced03b Mon Sep 17 00:00:00 2001 +From: Tom spot Callaway +Date: Thu, 18 Dec 2025 10:39:22 -0500 +Subject: [PATCH] Fix testyacc.py to work with Python 3.15 + +Signed-off-by: Tom spot Callaway +--- + tests/testyacc.py | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/test/testyacc.py b/test/testyacc.py +index b488bf7..14ddef7 100644 +--- a/test/testyacc.py ++++ b/test/testyacc.py +@@ -21,7 +21,10 @@ def make_pymodule_path(filename): + file = os.path.basename(filename) + mod, ext = os.path.splitext(file) + +- if sys.hexversion >= 0x3040000: ++ if sys.hexversion >= 0x3050000: ++ import importlib.util ++ fullpath = importlib.util.cache_from_source(filename) ++ elif sys.hexversion >= 0x3040000: + import importlib.util + fullpath = importlib.util.cache_from_source(filename, ext=='.pyc') + elif sys.hexversion >= 0x3020000: diff --git a/sdk_container/src/third_party/portage-stable/dev-python/ply/ply-3.11-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/ply/ply-3.11-r2.ebuild index 104c3d02677..0cd334a50df 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/ply/ply-3.11-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/ply/ply-3.11-r2.ebuild @@ -1,16 +1,16 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) inherit distutils-r1 pypi DESCRIPTION="Python Lex-Yacc library" HOMEPAGE=" - http://www.dabeaz.com/ply/ + https://www.dabeaz.com/ply/ https://github.com/dabeaz/ply/ https://pypi.org/project/ply/ " @@ -25,6 +25,8 @@ DOCS=( ANNOUNCE CHANGES TODO ) PATCHES=( "${FILESDIR}/3.6-picklefile-IOError.patch" + # https://github.com/dabeaz/ply/pull/318 + "${FILESDIR}/${P}-test-py315.patch" "${WORKDIR}/${P}-py3.12-assert.patch" ) diff --git a/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/Manifest index f8a353f9fd4..4237e882fe6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/Manifest @@ -1,5 +1,6 @@ -DIST poetry_core-2.2.1.tar.gz 378867 BLAKE2B 973ffc150b9d7942d56378756d9297b4c190322f01048421f4de34dd432ca7af880950c1adc0fcde8fbf4a7e8143e4e0027ab7faebd5789476a7431ba4d09fdc SHA512 786ccaad8cfdd5991d755f811661ce2493b335e6ad927c1a15c62b1055571180759eef63ed14b243677e0bfcedcf08e471bab9e0b261f65096984d2b7370f972 -DIST poetry_core-2.3.0.tar.gz 380922 BLAKE2B 597d1ac22679ced340b0efd78fb5cf7f1250a2625ded3ea945da4d0836d6222239c269961e08a72e7b88bf3d137241eae6f8828516cfbe81dc39f9873ed40c0f SHA512 6bf2e33d6f7268eb0c598fd64eade580f410d68c1669663d2a472675a04b1a09dc23a97bb7fa9c9a13d9eca646a560a4907faf08d5494dc9a0a0572134f10baf -DIST poetry_core-2.3.0.tar.gz.provenance 9465 BLAKE2B 9053b932d721c5bdb20a2b2f015fa9430f538c94f1d4baeaa6c59a3d7c19d1f21d6eae7fae7a26e6f863716724725da5fa67870673eac9eaf41b4f71a61c71ce SHA512 19b05fcb2220defdf2f724978cde6e6cf1e538c9e44a385bd0de0568811fa192e9b34c701ea430bbfc824095d329d60e7b7159bd463e2244cd849fdd74ae2a75 -DIST poetry_core-2.3.1.tar.gz 381093 BLAKE2B f83eff637a980938304d971c4cd6060c0708be15cb1358627d2d27349024ce1b6e3b79b855e600056e6ad4618edb5afa783c175a0fbfe5ef246a1c5c29680b92 SHA512 65b4f606439d31056c75182d9d73d4b48c05fb40bc3aaa956728d9b73f006322567c957b7a6fe27359dcbfa10eb37da99bf10d7219de91c537284a21b5c1c3a3 -DIST poetry_core-2.3.1.tar.gz.provenance 9606 BLAKE2B 6ca145a74c90fc1029d5b8a35e0e40f6fc13f5bf4a8b4d5bbc1d365222699f3ab33d8bd86ed0782bbd51fe37509e8963ad6231a4f249defc1e99475e8bc681db SHA512 5f4f1b7e9eceff54725ea7888d5fbbeb6668721ffa0b9c1267e619f2e3223b514762d5c76924cca7a4e28ac577a35cd7ffa063c7638bd2b7c4a588a2a01978b4 +DIST poetry_core-2.3.2.tar.gz 382768 BLAKE2B 5c43d9b21664e80c4073d9a35648a835300eff7cbda4a1c161c10e22009e5e0480c467a4832d3dda3914a1f96a947a9ee9e3951ed041bd1be9f94bca7845c3a6 SHA512 804eca3433659215dda7beb9dd3733881640437d6bf6ef41fe0661a442203c392d92dc81d71e7d22c151d9920ba6e35f088fcdb02e1dfd464bdf9e2ff24d5c7e +DIST poetry_core-2.3.2.tar.gz.provenance 9892 BLAKE2B abeb5aabd1d9ad669489c65f431b6798830cc14beda1cd5ada44c14f2ef13981dd3814e8cbda1915429ad76c091cf04f0317fc851a761c27bf24c00ccb8477df SHA512 97877bb92d950dbdc0fd7bd118e95359238ce96b1dce715362ccf459882c4f2bc13af7703db1ba1b5425a0aa1b7c8955192b25cc17af929bcec3c307213040b7 +DIST poetry_core-2.4.0.tar.gz 413541 BLAKE2B 0f3ca81d311a8421759c1a99189b320f3a1506b9afb788454e1ac8e44d5467bb8b4d3fb00aec90cff8d896f0d704ab199a0d176a178c964072799934a54789ac SHA512 07452eb3d5c640891be58d7d882be327ddb38e4d59499ca2100c854640c174f666e1175e8bb739a31631b5df44b04be0354b7bc59878340cdda3a30f9f2c3dfa +DIST poetry_core-2.4.0.tar.gz.provenance 9571 BLAKE2B 5dd1a32af4cc5e537e44655b3b762f90d70ebdd6db4041b06614d8ebd136ad93cffd9dee70fb39c5d8e679312e959433db7f14a06c6dfe649d9a6184e93f4529 SHA512 c5e301d8bcb86c4cd57c16c1c27cbfe2b3bd8934a01c4defe50ea61f4ca01473f82ded0517a15ded77daf282c1ce650bce1b829800f41cea5d412baa2de8dd7d +DIST poetry_core-2.4.1.tar.gz 413699 BLAKE2B a4277944756924003e715fdd09e6ae5eddd1510cd0c7282105eeef0f1f9029f2b91e1dcb79fb11bd170f2a24b699f0da34e6b3913f9df17955e16fc341657e00 SHA512 13fbaa062eafa59a3d4ef1dbc681d834bc61e1d3218e908aabc198dea26135a307bc4b34abdb1043d453b9de9755653f1dc261cbd8e508bdce8477cc6ca4ee54 +DIST poetry_core-2.4.1.tar.gz.provenance 9524 BLAKE2B 975aedf84fd8e8a88f010d462613131cc1e20b2a7d4a0b99a15c58f2f7fab641b83776fb976b4f91f1f56fbf03aedc23d578eb6909f34c3f228a8033e167305c SHA512 1bd8a0bd785990c214fb51e44e1dd4020b2e799a5ac231c07316b37bcf789fda0fc87da4ca7a79bdf3cba70996ffc796da2f27da3936c010be5eed805f689998 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.2.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.2.1.ebuild deleted file mode 100644 index 8a25f1c8425..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.2.1.ebuild +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright 2022-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=standalone -PYTHON_TESTED=( pypy3_11 python3_{11..14} ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) - -inherit distutils-r1 pypi - -DESCRIPTION="Poetry PEP 517 Build Backend" -HOMEPAGE=" - https://github.com/python-poetry/poetry-core/ - https://pypi.org/project/poetry-core/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos" -IUSE="test" -RESTRICT="!test? ( test )" - -# check inside vendors/pyproject.toml -# (note that some are indirect deps) -RDEPEND=" - >=dev-python/fastjsonschema-2.21.2[${PYTHON_USEDEP}] - >=dev-python/lark-1.2.2[${PYTHON_USEDEP}] - >=dev-python/packaging-25.0[${PYTHON_USEDEP}] -" -BDEPEND=" - ${RDEPEND} - test? ( - $(python_gen_cond_dep ' - dev-python/build[${PYTHON_USEDEP}] - dev-python/pytest-mock[${PYTHON_USEDEP}] - dev-python/tomli-w[${PYTHON_USEDEP}] - >=dev-python/trove-classifiers-2022.5.19[${PYTHON_USEDEP}] - >=dev-python/virtualenv-20.21[${PYTHON_USEDEP}] - dev-vcs/git - ' "${PYTHON_TESTED[@]}") - ) -" - -src_prepare() { - # remove vendoring of dependencies - rm -r src/poetry/core/_vendor || die - sed -e '/__vendor_site__/d' -i src/poetry/core/__init__.py || die - - distutils-r1_src_prepare -} - -python_test() { - if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then - einfo "Skipping tests on ${EPYTHON} (unported deps)" - return - fi - - # Poetry expects test to be run inside a git repository, otherwise - # VCS-related logic doesn't get triggered. An empty repository - # suffices, though. - git init || die - - local EPYTEST_PLUGINS=( pytest-mock ) - epytest -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.3.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.3.1.ebuild deleted file mode 100644 index e8ed1928c37..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.3.1.ebuild +++ /dev/null @@ -1,67 +0,0 @@ -# Copyright 2022-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=standalone -PYPI_VERIFY_REPO=https://github.com/python-poetry/poetry-core -PYTHON_TESTED=( pypy3_11 python3_{11..14} ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) - -inherit distutils-r1 pypi - -DESCRIPTION="Poetry PEP 517 Build Backend" -HOMEPAGE=" - https://github.com/python-poetry/poetry-core/ - https://pypi.org/project/poetry-core/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" -IUSE="test" -RESTRICT="!test? ( test )" - -# check inside vendors/pyproject.toml -# (note that some are indirect deps) -RDEPEND=" - >=dev-python/fastjsonschema-2.21.2[${PYTHON_USEDEP}] - >=dev-python/lark-1.3.1[${PYTHON_USEDEP}] - >=dev-python/packaging-25.0[${PYTHON_USEDEP}] -" -BDEPEND=" - ${RDEPEND} - test? ( - $(python_gen_cond_dep ' - dev-python/build[${PYTHON_USEDEP}] - dev-python/pytest-mock[${PYTHON_USEDEP}] - dev-python/tomli-w[${PYTHON_USEDEP}] - >=dev-python/trove-classifiers-2022.5.19[${PYTHON_USEDEP}] - >=dev-python/virtualenv-20.21[${PYTHON_USEDEP}] - dev-vcs/git - ' "${PYTHON_TESTED[@]}") - ) -" - -src_prepare() { - # remove vendoring of dependencies - rm -r src/poetry/core/_vendor || die - sed -e '/__vendor_site__/d' -i src/poetry/core/__init__.py || die - - distutils-r1_src_prepare -} - -python_test() { - if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then - einfo "Skipping tests on ${EPYTHON} (unported deps)" - return - fi - - # Poetry expects test to be run inside a git repository, otherwise - # VCS-related logic doesn't get triggered. An empty repository - # suffices, though. - git init || die - - local EPYTEST_PLUGINS=( pytest-mock ) - epytest -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.3.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.3.2.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.3.0.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.3.2.ebuild diff --git a/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.4.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.4.0.ebuild new file mode 100644 index 00000000000..fabd2d16d50 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.4.0.ebuild @@ -0,0 +1,67 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=standalone +PYPI_VERIFY_REPO=https://github.com/python-poetry/poetry-core +PYTHON_TESTED=( pypy3_11 python3_{11..14} ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_15 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Poetry PEP 517 Build Backend" +HOMEPAGE=" + https://github.com/python-poetry/poetry-core/ + https://pypi.org/project/poetry-core/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" +IUSE="test" +RESTRICT="!test? ( test )" + +# check inside vendors/pyproject.toml +# (note that some are indirect deps) +RDEPEND=" + >=dev-python/fastjsonschema-2.21.2[${PYTHON_USEDEP}] + >=dev-python/lark-1.3.1[${PYTHON_USEDEP}] + >=dev-python/packaging-26.2[${PYTHON_USEDEP}] +" +BDEPEND=" + ${RDEPEND} + test? ( + $(python_gen_cond_dep ' + dev-python/build[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/tomli-w[${PYTHON_USEDEP}] + >=dev-python/trove-classifiers-2022.5.19[${PYTHON_USEDEP}] + >=dev-python/virtualenv-20.21[${PYTHON_USEDEP}] + dev-vcs/git + ' "${PYTHON_TESTED[@]}") + ) +" + +src_prepare() { + # remove vendoring of dependencies + rm -r src/poetry/core/_vendor || die + sed -e '/__vendor_site__/d' -i src/poetry/core/__init__.py || die + + distutils-r1_src_prepare +} + +python_test() { + if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then + einfo "Skipping tests on ${EPYTHON} (unported deps)" + return + fi + + # Poetry expects test to be run inside a git repository, otherwise + # VCS-related logic doesn't get triggered. An empty repository + # suffices, though. + git init || die + + local EPYTEST_PLUGINS=( pytest-mock ) + epytest +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.4.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.4.1.ebuild new file mode 100644 index 00000000000..fabd2d16d50 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.4.1.ebuild @@ -0,0 +1,67 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=standalone +PYPI_VERIFY_REPO=https://github.com/python-poetry/poetry-core +PYTHON_TESTED=( pypy3_11 python3_{11..14} ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_15 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Poetry PEP 517 Build Backend" +HOMEPAGE=" + https://github.com/python-poetry/poetry-core/ + https://pypi.org/project/poetry-core/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" +IUSE="test" +RESTRICT="!test? ( test )" + +# check inside vendors/pyproject.toml +# (note that some are indirect deps) +RDEPEND=" + >=dev-python/fastjsonschema-2.21.2[${PYTHON_USEDEP}] + >=dev-python/lark-1.3.1[${PYTHON_USEDEP}] + >=dev-python/packaging-26.2[${PYTHON_USEDEP}] +" +BDEPEND=" + ${RDEPEND} + test? ( + $(python_gen_cond_dep ' + dev-python/build[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/tomli-w[${PYTHON_USEDEP}] + >=dev-python/trove-classifiers-2022.5.19[${PYTHON_USEDEP}] + >=dev-python/virtualenv-20.21[${PYTHON_USEDEP}] + dev-vcs/git + ' "${PYTHON_TESTED[@]}") + ) +" + +src_prepare() { + # remove vendoring of dependencies + rm -r src/poetry/core/_vendor || die + sed -e '/__vendor_site__/d' -i src/poetry/core/__init__.py || die + + distutils-r1_src_prepare +} + +python_test() { + if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then + einfo "Skipping tests on ${EPYTHON} (unported deps)" + return + fi + + # Poetry expects test to be run inside a git repository, otherwise + # VCS-related logic doesn't get triggered. An empty repository + # suffices, though. + git init || die + + local EPYTEST_PLUGINS=( pytest-mock ) + epytest +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pycparser/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/pycparser/Manifest index d67b0388aa9..ec1534c509c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pycparser/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/pycparser/Manifest @@ -1,3 +1 @@ -DIST pycparser-2.22.tar.gz 172736 BLAKE2B a080df68cf114c355949b2911a80e89ed02a64b8d1d03e3c5807222249e5dfd2491f691962885dbadcdaf323b55a05c5597319ac082dcf6c67a9ac952be9a7e2 SHA512 c9a81c78d87162f71281a32a076b279f4f7f2e17253fe14c89c6db5f9b3554a6563ff700c385549a8b51ef8832f99f7bb4ac07f22754c7c475dd91feeb0cf87f -DIST pycparser-2.23.tar.gz 173734 BLAKE2B f9a11de129f6b5495df9a25778cfc73c1ed236f522b2c8ca2676fac14b78f35e2928547ea654adff4ea28a2dfa8a51d3a5b2085ab9f40e0d7b9ed5ec4568eb2b SHA512 317f02bf58482b9d80b7395fe6fe5f756230915473b65b219755ccf0f4f1d3b227f508925fcf81fe28bcd6c113cf93e0075bf16a9a499cb306e1627222b1b1a7 DIST pycparser-3.0.tar.gz 103492 BLAKE2B 20415045953c72f2aa90f1edd2dbace57958dcae74d8ce4fb5676576e30fc94c3657bbb3f688edaa082263844b0fdb98ef0acb2c06825accc81f52270909ada1 SHA512 333504ef076e369661823abcd1d1f0d4e01ebadd43b7039e403d80fc2418500c2ed2c42e7b997c6eaf9c56b16085dfccacc6d0be2d45f0033a90eac1a7ed49d0 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pycparser/pycparser-2.22.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pycparser/pycparser-2.22.ebuild deleted file mode 100644 index 1ea0876bec9..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/pycparser/pycparser-2.22.ebuild +++ /dev/null @@ -1,69 +0,0 @@ -# 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=setuptools -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="C parser and AST generator written in Python" -HOMEPAGE=" - https://github.com/eliben/pycparser/ - https://pypi.org/project/pycparser/ -" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" - -RDEPEND=" - dev-python/ply:=[${PYTHON_USEDEP}] -" -BDEPEND=" - ${RDEPEND} -" - -distutils_enable_tests unittest - -python_prepare_all() { - # remove the original files to guarantee their regen - rm pycparser/{c_ast,lextab,yacctab}.py || die - - # kill sys.path manipulations to force the tests to use built files - sed -i -e '/sys\.path/d' tests/*.py || die - - # Ensure we can find tests in our directory - sed -i -e 's/from tests.test_util/from test_util/g' tests/test_*.py || die - - # unbundle ply - rm -r pycparser/ply || die - sed -i -e 's:\(from \)[.]\(ply\b\):\1\2:' pycparser/*.py || die - sed -i -e "s:'pycparser.ply'::" setup.py || die - - ln -s "${S}"/examples tests/examples || die - - rm tests/test_examples.py || die - - distutils-r1_python_prepare_all -} - -python_test() { - # Skip tests if cpp is not in PATH - type -P cpp >/dev/null || return 0 - # change workdir to avoid '.' import - cd tests || die - - # Ensure that 'cpp' is called with the right arguments - # Tests don't seem to always pass the include they intend to use. - mkdir -p "${T}"/bin || die - cat > "${T}"/bin/cpp <<-EOF || die - #!${BROOT}/bin/bash - exec ${BROOT}/usr/bin/cpp -I${S}/utils/fake_libc_include/ \$@ - EOF - chmod +x "${T}"/bin/cpp || die - - PATH="${T}/bin:${PATH}" eunittest -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pycparser/pycparser-2.23.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pycparser/pycparser-2.23.ebuild deleted file mode 100644 index 1ea0876bec9..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/pycparser/pycparser-2.23.ebuild +++ /dev/null @@ -1,69 +0,0 @@ -# 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=setuptools -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="C parser and AST generator written in Python" -HOMEPAGE=" - https://github.com/eliben/pycparser/ - https://pypi.org/project/pycparser/ -" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" - -RDEPEND=" - dev-python/ply:=[${PYTHON_USEDEP}] -" -BDEPEND=" - ${RDEPEND} -" - -distutils_enable_tests unittest - -python_prepare_all() { - # remove the original files to guarantee their regen - rm pycparser/{c_ast,lextab,yacctab}.py || die - - # kill sys.path manipulations to force the tests to use built files - sed -i -e '/sys\.path/d' tests/*.py || die - - # Ensure we can find tests in our directory - sed -i -e 's/from tests.test_util/from test_util/g' tests/test_*.py || die - - # unbundle ply - rm -r pycparser/ply || die - sed -i -e 's:\(from \)[.]\(ply\b\):\1\2:' pycparser/*.py || die - sed -i -e "s:'pycparser.ply'::" setup.py || die - - ln -s "${S}"/examples tests/examples || die - - rm tests/test_examples.py || die - - distutils-r1_python_prepare_all -} - -python_test() { - # Skip tests if cpp is not in PATH - type -P cpp >/dev/null || return 0 - # change workdir to avoid '.' import - cd tests || die - - # Ensure that 'cpp' is called with the right arguments - # Tests don't seem to always pass the include they intend to use. - mkdir -p "${T}"/bin || die - cat > "${T}"/bin/cpp <<-EOF || die - #!${BROOT}/bin/bash - exec ${BROOT}/usr/bin/cpp -I${S}/utils/fake_libc_include/ \$@ - EOF - chmod +x "${T}"/bin/cpp || die - - PATH="${T}/bin:${PATH}" eunittest -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pycparser/pycparser-3.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pycparser/pycparser-3.0.ebuild index 024f349337b..0d0050d00d2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pycparser/pycparser-3.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/pycparser/pycparser-3.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) inherit distutils-r1 pypi @@ -17,7 +17,7 @@ HOMEPAGE=" LICENSE="BSD" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND=" dev-python/ply:=[${PYTHON_USEDEP}] diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pydecomp/pydecomp-0.3-r3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pydecomp/pydecomp-0.3-r3.ebuild index 2e97ca5b8c3..111fd57e3c0 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pydecomp/pydecomp-0.3-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/pydecomp/pydecomp-0.3-r3.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pydecomp/pydecomp-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pydecomp/pydecomp-9999.ebuild index d78ad0a1562..6e86c4d874b 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pydecomp/pydecomp-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/pydecomp/pydecomp-9999.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pygments/pygments-2.19.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pygments/pygments-2.19.2.ebuild index 6900d24c1f0..5bf0a08855a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pygments/pygments-2.19.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/pygments/pygments-2.19.2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 DISTUTILS_USE_PEP517=hatchling PYPI_PN=${PN^} PYTHON_FULLY_TESTED=( python3_{11..14} pypy3_11 ) -PYTHON_COMPAT=( "${PYTHON_FULLY_TESTED[@]}" python3_{13,14}t ) +PYTHON_COMPAT=( "${PYTHON_FULLY_TESTED[@]}" python3_15 python3_{13..15}t ) inherit distutils-r1 bash-completion-r1 pypi @@ -40,6 +40,7 @@ EPYTEST_DESELECT=( tests/test_html_formatter.py::test_ctags ) +EPYTEST_PLUGINS=() EPYTEST_XDIST=1 distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pyproject-hooks/pyproject-hooks-1.2.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pyproject-hooks/pyproject-hooks-1.2.0.ebuild index 39b5f2aaefd..ed46296a086 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pyproject-hooks/pyproject-hooks-1.2.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/pyproject-hooks/pyproject-hooks-1.2.0.ebuild @@ -1,10 +1,10 @@ -# Copyright 2021-2025 Gentoo Authors +# Copyright 2021-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=flit -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) inherit distutils-r1 pypi @@ -25,6 +25,7 @@ BDEPEND=" ) " +EPYTEST_PLUGINS=() distutils_enable_tests pytest EPYTEST_DESELECT=( diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pysocks/pysocks-1.7.1-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pysocks/pysocks-1.7.1-r2.ebuild index bfc8ea297b4..160dd81361e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pysocks/pysocks-1.7.1-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/pysocks/pysocks-1.7.1-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # please keep this ebuild at EAPI 8 -- sys-apps/portage dep @@ -7,7 +7,7 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools PYPI_NO_NORMALIZE=1 PYPI_PN=PySocks -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) +PYTHON_COMPAT=( python3_{11..15} pypy3_11 ) inherit distutils-r1 pypi diff --git a/sdk_container/src/third_party/portage-stable/dev-python/requests/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/requests/Manifest index 4f13ccf67b6..abc21471ae7 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/requests/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/requests/Manifest @@ -1,2 +1,8 @@ -DIST requests-2.32.4.tar.gz 135258 BLAKE2B 2ae4706d3a07b8484f9cddcb80a56121ecc2f16c345f6d518a259c45d20584d09e62eabb6e60ea76c2f558b5950c29e947c5ccb453774b1aeb953f5147c68f83 SHA512 8308da5ec2b1bd4442497dc8ecb21d4c1d3aba82987a264bc0f55b75d2522b303e5779f704d1b557a0f7d8a8f0a3533925cc34a58d98a95ce463a0dd59c5ac2d -DIST requests-2.32.5.tar.gz 134517 BLAKE2B 82bb875be132b815fd8eb51c896f41bdd3f16ef335f7a273d2b27d139f1a587d0cdcfae5975ce366426687b42796af1d65317d24e8e6cd069864bc259da9942f SHA512 2fbc05f5b638cefe59b9edaac86d53666d0416cebdbe8343caa818cae677a733c1f3a9ae62ef5c880b77cf706a2e3da57e0783d8936bda128f071367524189de +DIST requests-2.33.1.tar.gz 134120 BLAKE2B 290c77a0f0d90d04638be623f9a32955902869f89fd6eb8c2e2c3b15cdeb28455ec331c84bdba16d6aa69cb02d8567514a245280a0adf64f653f29aacb944f44 SHA512 058dc417085f8be99c2ea79fffecce833068d9342c925a8d8bd1b10c171e52fda5d4bdd8ae1a93b05b111e275c29b705ec79ac0c365fb10f6f81c49e6d839483 +DIST requests-2.33.1.tar.gz.provenance 9256 BLAKE2B 5257b1e8dac44c85b121e04d9591b73d8e2a95ba8ad7d5a45e954d0d676a44b877da0f800bcf934e843ceaf19522bb81eb616c646ad4ac56ee6c3b7ef74a5913 SHA512 5239edd498ff5c27a92a950b75985da8c59064f7abc04809ab71c54e7f3b8b82a268a291b0431560e5fe70266f0fe5a6151fb804c093a9f99c6a6138ba6b80fb +DIST requests-2.34.0.tar.gz 142436 BLAKE2B 3aa791f8ebc58f6cd0f51883653a6860ba6503071abdd267d3473e6fa9d325aeb3bef46890d4551f946d867482b2396a2328653b08ea4a8e1ef4a7a5a4c7fbbd SHA512 4e3b5c40489b682225667cf46e36058bc22dce6b580e3d01962ea7fa46517e15a775458ebeb970b53fb2f87048f3f09bf09ac599b66c36827622fea7c17e83b6 +DIST requests-2.34.0.tar.gz.provenance 9389 BLAKE2B b25418a2b8160ac911e40d74d6f5e5359752ed956c683acb06e6dc90b13eac198cce8f389f9e6a1ed68f5f7a0317e29bb3723fbfc4a71e6bcf08f604adc15d39 SHA512 8b6387f8c81e3b1d160498992af49991e50f9c85f064a9d4b88b2346f9524d5cc6e1f996b2b347a351b9681d51e1ba28cffb8d51c53d7143fdea99943d953ad1 +DIST requests-2.34.1.tar.gz 142783 BLAKE2B 868efc2e60868d71437b007fc7bab44b344e573ed94a9dd551dd7d675924de581aa9e940ced50f60305c944b38c5be89ef2832904ea19ce2f36b994c70be8093 SHA512 1e734caa69e99c120cfff2bd5aade24feaa0000684f5499fcad94ae246aa68720724ab7acbdd611df14ca6d20f705c906fa27b808f6cf6b97fc325e41abb4dae +DIST requests-2.34.1.tar.gz.provenance 9503 BLAKE2B cffe5ceda2925e220b2af586bcc8363ad0ace0cb045e5a40d7a620ab8c4a43ab600c82d3579d7c6ef52eec9521c938c9fed5e823c5dba0089de09a70355f082e SHA512 ea1ec91731c4e70fa348b5acbcc88a9e9d0b46058e74d771565ad99704c4f48d8c7f511d94c3ff59ccd43c12d4a3014f8bb7c3cdb8610f7610322aef18940f40 +DIST requests-2.34.2.tar.gz 142856 BLAKE2B 94c27e54dd0d49571179fbfe7ec666e507a5b698ea93d26c66069fa3e08bd5aeed157124111cf0b730dcd2626f5fd03b5616f08ea723c9a1e55946bdbe30316b SHA512 106d99c51c7e76d35e27dd64988afb0cc339d4f05fabb3ba1a2480e34744b4a66393e0c7873d236a9f220f6a8990d5a45a251cdbe9ce25f01e1591e693b6c9e7 +DIST requests-2.34.2.tar.gz.provenance 9311 BLAKE2B 3600692e3fd67856e5cab04f9583cd134ada2783ed229f5deb04ff7f01fc692f85661871944dabb11d2f05ec25a3495b27e582736f73d8d3ac6b56aa79528611 SHA512 e2fbe3954e86a1ef1aa05bf58a9cfc45c0cc4e82ccd4fba67261ff87b94627956504764b29c0cded131f6e9ce22a0dbfe74a16eb4885cf164dea1eec16f5aa81 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.32.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.32.4.ebuild deleted file mode 100644 index 478e2c10f95..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.32.4.ebuild +++ /dev/null @@ -1,65 +0,0 @@ -# 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=setuptools -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) -PYTHON_REQ_USE="threads(+)" - -inherit distutils-r1 pypi - -DESCRIPTION="HTTP library for human beings" -HOMEPAGE=" - https://requests.readthedocs.io/ - https://github.com/psf/requests/ - https://pypi.org/project/requests/ -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos" -IUSE="socks5 test-rust" - -RDEPEND=" - >=dev-python/certifi-2017.4.17[${PYTHON_USEDEP}] - =dev-python/pysocks-1.5.6[${PYTHON_USEDEP}] ) -" - -BDEPEND=" - test? ( - >=dev-python/pytest-httpbin-2.0.0[${PYTHON_USEDEP}] - dev-python/pytest-mock[${PYTHON_USEDEP}] - >=dev-python/pysocks-1.5.6[${PYTHON_USEDEP}] - test-rust? ( - dev-python/trustme[${PYTHON_USEDEP}] - ) - ) -" - -distutils_enable_tests pytest - -python_test() { - local EPYTEST_DESELECT=( - # Internet (doctests) - requests/__init__.py::requests - requests/api.py::requests.api.request - requests/models.py::requests.models.PreparedRequest - requests/sessions.py::requests.sessions.Session - # require IPv4 interface in 10.* range - tests/test_requests.py::TestTimeout::test_connect_timeout - tests/test_requests.py::TestTimeout::test_total_timeout_connect - ) - - if ! has_version "dev-python/trustme[${PYTHON_USEDEP}]"; then - EPYTEST_DESELECT+=( - tests/test_requests.py::TestRequests::test_https_warnings - ) - fi - - epytest -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.32.5-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.32.5-r1.ebuild deleted file mode 100644 index a62bff0d236..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.32.5-r1.ebuild +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# please keep this ebuild at EAPI 8 -- sys-apps/portage dep -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) -PYTHON_REQ_USE="threads(+)" - -inherit distutils-r1 pypi - -DESCRIPTION="HTTP library for human beings" -HOMEPAGE=" - https://requests.readthedocs.io/ - https://github.com/psf/requests/ - https://pypi.org/project/requests/ -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" -IUSE="socks5 test-rust" - -RDEPEND=" - >=dev-python/certifi-2017.4.17[${PYTHON_USEDEP}] - =dev-python/pysocks-1.5.6[${PYTHON_USEDEP}] ) -" - -BDEPEND=" - test? ( - >=dev-python/pysocks-1.5.6[${PYTHON_USEDEP}] - test-rust? ( - dev-python/trustme[${PYTHON_USEDEP}] - ) - ) -" - -EPYTEST_PLUGINS=( pytest-{httpbin,mock} ) -EPYTEST_XDIST=1 -distutils_enable_tests pytest - -src_prepare() { - distutils-r1_src_prepare - - # remove useless dependency check spam - sed -i -e '/def check_compatibility/a\ - return' src/requests/__init__.py || die -} - -python_test() { - local EPYTEST_DESELECT=( - # Internet (doctests) - requests/__init__.py::requests - requests/api.py::requests.api.request - requests/models.py::requests.models.PreparedRequest - requests/sessions.py::requests.sessions.Session - # require IPv4 interface in 10.* range - tests/test_requests.py::TestTimeout::test_connect_timeout - tests/test_requests.py::TestTimeout::test_total_timeout_connect - ) - - if ! has_version "dev-python/trustme[${PYTHON_USEDEP}]"; then - EPYTEST_DESELECT+=( - tests/test_requests.py::TestRequests::test_https_warnings - ) - fi - - epytest -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.32.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.32.5.ebuild deleted file mode 100644 index 39274b3900c..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.32.5.ebuild +++ /dev/null @@ -1,65 +0,0 @@ -# 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=setuptools -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) -PYTHON_REQ_USE="threads(+)" - -inherit distutils-r1 pypi - -DESCRIPTION="HTTP library for human beings" -HOMEPAGE=" - https://requests.readthedocs.io/ - https://github.com/psf/requests/ - https://pypi.org/project/requests/ -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos" -IUSE="socks5 test-rust" - -RDEPEND=" - >=dev-python/certifi-2017.4.17[${PYTHON_USEDEP}] - =dev-python/pysocks-1.5.6[${PYTHON_USEDEP}] ) -" - -BDEPEND=" - test? ( - >=dev-python/pysocks-1.5.6[${PYTHON_USEDEP}] - test-rust? ( - dev-python/trustme[${PYTHON_USEDEP}] - ) - ) -" - -EPYTEST_PLUGINS=( pytest-{httpbin,mock} ) -EPYTEST_XDIST=1 -distutils_enable_tests pytest - -python_test() { - local EPYTEST_DESELECT=( - # Internet (doctests) - requests/__init__.py::requests - requests/api.py::requests.api.request - requests/models.py::requests.models.PreparedRequest - requests/sessions.py::requests.sessions.Session - # require IPv4 interface in 10.* range - tests/test_requests.py::TestTimeout::test_connect_timeout - tests/test_requests.py::TestTimeout::test_total_timeout_connect - ) - - if ! has_version "dev-python/trustme[${PYTHON_USEDEP}]"; then - EPYTEST_DESELECT+=( - tests/test_requests.py::TestRequests::test_https_warnings - ) - fi - - epytest -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.33.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.33.1.ebuild new file mode 100644 index 00000000000..5856b4b6b3d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.33.1.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYPI_VERIFY_REPO=https://github.com/psf/requests +PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 pypi + +DESCRIPTION="HTTP library for human beings" +HOMEPAGE=" + https://requests.readthedocs.io/ + https://github.com/psf/requests/ + https://pypi.org/project/requests/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos" +IUSE="socks5 test-rust" + +RDEPEND=" + >=dev-python/certifi-2017.4.17[${PYTHON_USEDEP}] + =dev-python/pysocks-1.5.6[${PYTHON_USEDEP}] ) +" + +BDEPEND=" + test? ( + dev-python/httpbin[${PYTHON_USEDEP}] + >=dev-python/pysocks-1.5.6[${PYTHON_USEDEP}] + test-rust? ( + dev-python/trustme[${PYTHON_USEDEP}] + ) + ) +" + +EPYTEST_PLUGINS=( pytest-{httpbin,mock} ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + # remove useless dependency check spam + sed -i -e '/def check_compatibility/a\ + return' src/requests/__init__.py || die +} + +python_test() { + local EPYTEST_DESELECT=( + # Internet (doctests) + requests/__init__.py::requests + requests/api.py::requests.api.request + requests/models.py::requests.models.PreparedRequest + requests/sessions.py::requests.sessions.Session + # require IPv4 interface in 10.* range + tests/test_requests.py::TestTimeout::test_connect_timeout + tests/test_requests.py::TestTimeout::test_total_timeout_connect + ) + + if ! has_version "dev-python/trustme[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + tests/test_requests.py::TestRequests::test_https_warnings + ) + fi + + epytest +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.34.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.34.0.ebuild new file mode 100644 index 00000000000..32df62a8946 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.34.0.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYPI_VERIFY_REPO=https://github.com/psf/requests +PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 pypi + +DESCRIPTION="HTTP library for human beings" +HOMEPAGE=" + https://requests.readthedocs.io/ + https://github.com/psf/requests/ + https://pypi.org/project/requests/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" +IUSE="socks5 test-rust" + +RDEPEND=" + >=dev-python/certifi-2017.4.17[${PYTHON_USEDEP}] + =dev-python/pysocks-1.5.6[${PYTHON_USEDEP}] ) +" + +BDEPEND=" + test? ( + dev-python/httpbin[${PYTHON_USEDEP}] + >=dev-python/pysocks-1.5.6[${PYTHON_USEDEP}] + test-rust? ( + dev-python/trustme[${PYTHON_USEDEP}] + ) + ) +" + +EPYTEST_PLUGINS=( pytest-{httpbin,mock} ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + # remove useless dependency check spam + sed -i -e '/urllib3_version_list =/i\ + return' src/requests/__init__.py || die +} + +python_test() { + local EPYTEST_DESELECT=( + # Internet (doctests) + requests/__init__.py::requests + requests/api.py::requests.api.request + requests/models.py::requests.models.PreparedRequest + requests/sessions.py::requests.sessions.Session + # require IPv4 interface in 10.* range + tests/test_requests.py::TestTimeout::test_connect_timeout + tests/test_requests.py::TestTimeout::test_total_timeout_connect + ) + + if ! has_version "dev-python/trustme[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + tests/test_requests.py::TestRequests::test_https_warnings + ) + fi + + epytest +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.34.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.34.1.ebuild new file mode 100644 index 00000000000..32df62a8946 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.34.1.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYPI_VERIFY_REPO=https://github.com/psf/requests +PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 pypi + +DESCRIPTION="HTTP library for human beings" +HOMEPAGE=" + https://requests.readthedocs.io/ + https://github.com/psf/requests/ + https://pypi.org/project/requests/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" +IUSE="socks5 test-rust" + +RDEPEND=" + >=dev-python/certifi-2017.4.17[${PYTHON_USEDEP}] + =dev-python/pysocks-1.5.6[${PYTHON_USEDEP}] ) +" + +BDEPEND=" + test? ( + dev-python/httpbin[${PYTHON_USEDEP}] + >=dev-python/pysocks-1.5.6[${PYTHON_USEDEP}] + test-rust? ( + dev-python/trustme[${PYTHON_USEDEP}] + ) + ) +" + +EPYTEST_PLUGINS=( pytest-{httpbin,mock} ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + # remove useless dependency check spam + sed -i -e '/urllib3_version_list =/i\ + return' src/requests/__init__.py || die +} + +python_test() { + local EPYTEST_DESELECT=( + # Internet (doctests) + requests/__init__.py::requests + requests/api.py::requests.api.request + requests/models.py::requests.models.PreparedRequest + requests/sessions.py::requests.sessions.Session + # require IPv4 interface in 10.* range + tests/test_requests.py::TestTimeout::test_connect_timeout + tests/test_requests.py::TestTimeout::test_total_timeout_connect + ) + + if ! has_version "dev-python/trustme[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + tests/test_requests.py::TestRequests::test_https_warnings + ) + fi + + epytest +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.34.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.34.2.ebuild new file mode 100644 index 00000000000..32df62a8946 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/requests/requests-2.34.2.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYPI_VERIFY_REPO=https://github.com/psf/requests +PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 pypi + +DESCRIPTION="HTTP library for human beings" +HOMEPAGE=" + https://requests.readthedocs.io/ + https://github.com/psf/requests/ + https://pypi.org/project/requests/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" +IUSE="socks5 test-rust" + +RDEPEND=" + >=dev-python/certifi-2017.4.17[${PYTHON_USEDEP}] + =dev-python/pysocks-1.5.6[${PYTHON_USEDEP}] ) +" + +BDEPEND=" + test? ( + dev-python/httpbin[${PYTHON_USEDEP}] + >=dev-python/pysocks-1.5.6[${PYTHON_USEDEP}] + test-rust? ( + dev-python/trustme[${PYTHON_USEDEP}] + ) + ) +" + +EPYTEST_PLUGINS=( pytest-{httpbin,mock} ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + # remove useless dependency check spam + sed -i -e '/urllib3_version_list =/i\ + return' src/requests/__init__.py || die +} + +python_test() { + local EPYTEST_DESELECT=( + # Internet (doctests) + requests/__init__.py::requests + requests/api.py::requests.api.request + requests/models.py::requests.models.PreparedRequest + requests/sessions.py::requests.sessions.Session + # require IPv4 interface in 10.* range + tests/test_requests.py::TestTimeout::test_connect_timeout + tests/test_requests.py::TestTimeout::test_total_timeout_connect + ) + + if ! has_version "dev-python/trustme[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + tests/test_requests.py::TestRequests::test_https_warnings + ) + fi + + epytest +} 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 87e053bf5d7..e171319c8c6 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,4 +1 @@ -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.0.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/resolvelib/resolvelib-1.0.1.ebuild deleted file mode 100644 index fb6e4f04be6..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/resolvelib/resolvelib-1.0.1.ebuild +++ /dev/null @@ -1,33 +0,0 @@ -# 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 ) - -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 ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86" - -BDEPEND=" - test? ( - dev-python/commentjson[${PYTHON_USEDEP}] - dev-python/packaging[${PYTHON_USEDEP}] - ) -" - -distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/resolvelib/resolvelib-1.1.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/resolvelib/resolvelib-1.1.0.ebuild deleted file mode 100644 index f5e11734cce..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/resolvelib/resolvelib-1.1.0.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# 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}] - ) -" - -distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/resolvelib/resolvelib-1.2.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/resolvelib/resolvelib-1.2.0.ebuild deleted file mode 100644 index 2b6d85ef5fe..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/resolvelib/resolvelib-1.2.0.ebuild +++ /dev/null @@ -1,33 +0,0 @@ -# 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 f0957b88e00..8bb5b5baac2 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,4 +1,2 @@ -DIST rich-14.2.0.gh.tar.gz 15072049 BLAKE2B a44560624c3e3b77f279885935a239b162251087a4a58688c40ec7feb84fd7f4948b5966091231e71067131875c3ad71fd8ee4f5e72d90a872c5dc6f08d1d071 SHA512 8e1f7ee149ceac9074cf60ad1298f2b96cdeeb1f71e1e4181101ab0b0da858d03907998a8667fb73154abf02ae511c595257618bcc3321136df253842f8e4a85 -DIST rich-14.3.1.gh.tar.gz 15087781 BLAKE2B c89a1c935db2be86423835ce0f026ec488741cca1de08b32604e89f56ff4f1b7a00758f8bac74a8841803544a49ce5166c786cb8846178288f23ac8f167a8af2 SHA512 7d99cf7a2fa3682d27792d37b39a6ffd5ce403498581b7f19e829c709e49ca01f8a1290b5909eea8323879cccaafdad0301e2de81b4312f0c16751905afbc146 -DIST rich-14.3.2.gh.tar.gz 15086838 BLAKE2B 4ed2d676273dcb671b602982709179e7e2d317ce39ee1b882ee3c52c844b0357b6c4ab11e0617dd4db9edcd4865a01975f453b2fde8f97e73bced962467e315e SHA512 68a82b2c19c9ccf475549f5c096b646b40606626d86425ab2b87a18010039fca275ab431d96775a2770530ae975213109d984ed1934127c361c56f705c0dc13a -DIST rich-14.3.3.gh.tar.gz 15087403 BLAKE2B 3d21a0b1e5b5441bdcb9d0051a552ffe771287707bc0ab24d75cea5f6dc14b8fad9daffd0d4b1f0704c96883259d11a0c57701ae7c2628b86157912a1b7fa591 SHA512 61026597c8224f64bb113231dc1e991b7ed471793c72700ca8d52adf5234f96c84de09ec8d175a60582e68d8ff935c507fdb2599d0a567832f739abcb599ef96 +DIST rich-14.3.4.gh.tar.gz 15087431 BLAKE2B f0bc3e99dc7ed2afbe06a98c36b950baf4cf62b9fba2b3d288b9ee87027fcb05e7d6b34400f3838858c8f19e8324aeed7eef53c248dfdf036074b6a038323a83 SHA512 78be1ea9ee57c79a9d7863d7842459b701c773805812b9e7bf702715f90f64b2e9462b7a0093dd80005f5d988c86682d9e67044570b9de255f9972f8cc1f6dbd +DIST rich-15.0.0.gh.tar.gz 15088001 BLAKE2B a95ca3add5d4c9c193838586dc3672edc925383878c40eab8890648c277571246c131a3739e3a691d1055ab849626c4df4af921c32cbea19d3a970b9f059fdf9 SHA512 fa765977800b07b7a5fae07cab26b3db2e1cb5b493c1e846a6f84b6c24334b2baf31b4cd34e5bb3e461db6aa823eea2e5a9b01e4c3b3efae7f4eb4ef134695be 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 deleted file mode 100644 index 830523ebd4c..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/rich/rich-14.2.0.ebuild +++ /dev/null @@ -1,68 +0,0 @@ -# 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/rich/rich-14.3.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/rich/rich-14.3.1.ebuild deleted file mode 100644 index 11e999ca01e..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/rich/rich-14.3.1.ebuild +++ /dev/null @@ -1,68 +0,0 @@ -# Copyright 2022-2026 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/rich/rich-14.3.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/rich/rich-14.3.2.ebuild deleted file mode 100644 index 11e999ca01e..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/rich/rich-14.3.2.ebuild +++ /dev/null @@ -1,68 +0,0 @@ -# Copyright 2022-2026 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/rich/rich-14.3.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/rich/rich-14.3.3.ebuild deleted file mode 100644 index 4dcc880bb5b..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/rich/rich-14.3.3.ebuild +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright 2022-2026 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 - # flaky? plain broken? - tests/test_console.py::test_brokenpipeerror - ) - # 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/rich/rich-14.3.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/rich/rich-14.3.4.ebuild new file mode 100644 index 00000000000..3ba1d190579 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/rich/rich-14.3.4.ebuild @@ -0,0 +1,70 @@ +# Copyright 2022-2026 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 + # flaky? plain broken? + tests/test_console.py::test_brokenpipeerror + ) + # 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/rich/rich-15.0.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/rich/rich-15.0.0.ebuild new file mode 100644 index 00000000000..3ba1d190579 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/rich/rich-15.0.0.ebuild @@ -0,0 +1,70 @@ +# Copyright 2022-2026 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 + # flaky? plain broken? + tests/test_console.py::test_brokenpipeerror + ) + # 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 4cf9da4481e..1d6e7176910 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,4 +1,4 @@ -DIST setuptools_scm-10.0.1.tar.gz 54065 BLAKE2B 101089b650b73cb65588f084ad62713b55e786222a84ce48364c40489e348b0ec5cd744af74464db4764a6f580e29e30ada533583e0aae4f86ddf2b3836fffb3 SHA512 542cab6eed6153e0436911b35c0f5cac9d1e23218370e2e36e47507387e181346857ae15ba9a8e54cbc3f0335e58d0fa7ded13592e93e9d43d22cb427b4884ea -DIST setuptools_scm-10.0.1.tar.gz.provenance 10019 BLAKE2B 5513038b1a39ed43cbff58cc492eccb42df96077fdf8c9820f9e5e177ec3bb646a04b6d4d1ed8bd4d109af9bbaf6048a0043262d2fe41b78ad487503756a33e5 SHA512 a7f6b4e606133d9c62d20c85250cf5b03232828cd52f19e082cf0f794013e23437bbf535bd461ff776d9741d33917a9a871609cd0ede45bac13be6ddef7ba9c9 +DIST setuptools_scm-10.0.5.tar.gz 56748 BLAKE2B b41195c9f55f911a8287814ca92216cdc8169f0eec9573f20739d02a2b08fd89eaa268585b589e8e6351e8ec14d1411bf057265c04796891c764abc88a5685bd SHA512 7384b3d27497e298265aadb03dc7edd907c46cce9caf4c086751a84e5ae151e41cd4af7b07e641a5d799374c348585c118bb82a9715568b01a5cc814d71057fa +DIST setuptools_scm-10.0.5.tar.gz.provenance 9960 BLAKE2B a87ce476be89d90cd11ddff5c92bfaae0716f59dd4953f495273cd4a56f1f57f27461fb07c39884ce64c6b8094fa914e2a374580ca301e9b5ac35dc102f61700 SHA512 578aea9cb7238b26fc421fcef9de704598970700967af4f1a94ca9d582a16e408759f2434fe7fa623d69065cca2b795af0eef10ee4faf65fa86bbf84524c82b1 DIST setuptools_scm-9.2.2.tar.gz 203385 BLAKE2B 8577c4c6265ae851212be04b245b3da8b49d541174f5e675dea916c76b3cba5b5ab9f6264a97904e2d5ca02dee4e3f8eb88c9e8badbba2ed53bed531fe9f6b6c SHA512 757ca11a3d13601606b6914ea70e3d271d287f26ada976ec77334fc0f611208669585d2580994f1ddff830cd698a837d3e882dd5cdccdaf9f8eba34fdd8cb708 DIST setuptools_scm-9.2.2.tar.gz.provenance 9705 BLAKE2B b710df7f8cbb324aa2927243ab0416869319813016d64f589b7a9f565576fff58c1aee18da4ea9bc3fb5a969cf74c1fcaa1332812bf88267ec9f2bf437876e53 SHA512 6ac563d0ab5f1afce28976eb030364a451508ec7d47b6e99668c37b8ba09e3b56500b104d62ad6047fad9f6be0b2b6ebea66b561041485b9d15b84c39fe92313 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.0.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.0.1.ebuild deleted file mode 100644 index 1fa898a7605..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.0.1.ebuild +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# please keep this ebuild at EAPI 8 -- sys-apps/portage dep -EAPI=8 - -DISTUTILS_USE_PEP517=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="~amd64 ~s390" - -# there's an optional dep on rich for cute logs -RDEPEND=" - dev-python/packaging[${PYTHON_USEDEP}] - >=dev-python/setuptools-64[${PYTHON_USEDEP}] - >=dev-python/vcs-versioning-1.0.0[${PYTHON_USEDEP}] -" -BDEPEND=" - dev-python/setuptools[${PYTHON_USEDEP}] - >=dev-python/vcs-versioning-1.0.0[${PYTHON_USEDEP}] - test? ( - dev-python/build[${PYTHON_USEDEP}] - dev-python/typing-extensions[${PYTHON_USEDEP}] - dev-vcs/git - ) -" - -EPYTEST_PLUGINS=( pytest-timeout ) -EPYTEST_XDIST=1 -distutils_enable_tests pytest - -python_test() { - local EPYTEST_DESELECT=( - # Internet - testing_scm/test_functions.py::test_dump_version_mypy - testing_scm/test_integration.py::test_xmlsec_download_regression - testing_scm/test_regressions.py::test_pip_download - ) - - if ! has_version "dev-python/pip[${PYTHON_USEDEP}]"; then - EPYTEST_DESELECT+=( - testing_scm/test_integration.py::test_editable_install_without_env_var - testing_scm/test_integration.py::test_editable_install_version_file - ) - fi - - epytest -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.0.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.0.5.ebuild new file mode 100644 index 00000000000..4d7c9da0714 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.0.5.ebuild @@ -0,0 +1,58 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYPI_VERIFY_REPO=https://github.com/pypa/setuptools-scm +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}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 ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86" + +# there's an optional dep on rich for cute logs +RDEPEND=" + dev-python/packaging[${PYTHON_USEDEP}] + >=dev-python/setuptools-64[${PYTHON_USEDEP}] + >=dev-python/vcs-versioning-1.0.0[${PYTHON_USEDEP}] +" +BDEPEND=" + >=dev-python/vcs-versioning-1.0.0[${PYTHON_USEDEP}] + test? ( + dev-python/build[${PYTHON_USEDEP}] + dev-python/typing-extensions[${PYTHON_USEDEP}] + dev-vcs/git + ) +" + +EPYTEST_PLUGINS=( pytest-timeout ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_test() { + local EPYTEST_DESELECT=( + # Internet + testing_scm/test_functions.py::test_dump_version_mypy + testing_scm/test_integration.py::test_xmlsec_download_regression + testing_scm/test_regressions.py::test_pip_download + ) + + if ! has_version "dev-python/pip[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + testing_scm/test_integration.py::test_editable_install_without_env_var + testing_scm/test_integration.py::test_editable_install_version_file + ) + fi + + epytest +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/setuptools/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/setuptools/Manifest index 574ac4e4945..c38ebb75278 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/setuptools/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/setuptools/Manifest @@ -1,6 +1,2 @@ DIST setuptools-79.0.1.tar.gz 1367909 BLAKE2B d495a22753400b3b0ef71423e2c9b5adaad1a065d1f9638b5da8161b29c453495701c3efaa3abd2482777e186ba992bd7b57090dfc711d9cdfdaa8254616a8ff SHA512 5b68d7cc775f4318e178f7d7f69c60a01b1abc607411e88c88e3507a08bd85eed241b915d4be5f3ada90df4b68718056c2ba032943c1f53fe68d171c7d728179 -DIST setuptools-80.10.2.tar.gz 1200343 BLAKE2B 575eacccf3f9f846658d55d55425263d8847419644e62506b9e953c5a5db541dc6b3d8c4fcf096ec1e46406ecad545569111dc265aa8474ba17ebe57a10b382d SHA512 7dbc657878b418a9bdba124e5b8f98228af0590ffbb02c6396ac5b3d84be8f04b327780a7b1f9fa223d4c179004e822e2b00eec673f8eeb700b08b095ff6491d -DIST setuptools-80.9.0.tar.gz 1319958 BLAKE2B ab367912eec92b0d1251916d09c1dd2e311767eec87225beaff870dff923b47ba1732d2f7393b7d9e55d1ff1249c612e4403019e0021048951f9fc3b775c04c9 SHA512 36eb1f219d29c6b9e135936bde2001ad70a971c8069cd0175d3a5325b450e6843a903d3f70043c9f534768ebeab8ab0c544b8f44456555d333f1ed72daa5c18b -DIST setuptools-81.0.0.tar.gz 1198299 BLAKE2B a92fa15e03c99f6d7acbc0a24e6d3b4b31d514c031195b1dd0ae238611c44c3c979847c45437e5e4221fb8f750a7264fb55235ee7d4a8207ef19a67306d5360c SHA512 4dda2f0796d1a32d160e0786fc6ebb9908483e16edac6b0335df4779a0a8331f13b70fbf69986a27cc8f6ff10c1f696599059710fef99f36ff1e766f04220466 -DIST setuptools-82.0.0.tar.gz 1144893 BLAKE2B dae5c129ba4f490f7e9e7cfc42ff4147010fcd2f63e7e5bf6635a4153e5c3882f2ee265f01baa23d8c0f6c562c90c5408a998db0b95e5ea9c5a2fade167059d5 SHA512 52424f813bb8efa1d3aa8cb910338d29c36c6a641f7ded91d298c1abe7c1a24d572c60c14c028f3825af29b46d57a4ee454845b1d22b73b03278a9500d957dd9 DIST setuptools-82.0.1.tar.gz 1152316 BLAKE2B d7f6eaf62ec66355b65642bc20a7a549e167dd6d1c0cdb15926b6644a23cab7737d713cd9418e0cc09161eb0bff53ffd0b8781c96d9203717077121c1e3cc0d5 SHA512 5d70e9efd818245fb8119a4eed64d776078469ed884facc188f141ea491efd9fde5c10c928d3236ea5e2e431b16616f18ed14870b867f95e6320251707332395 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/setuptools/setuptools-80.10.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/setuptools/setuptools-80.10.2.ebuild deleted file mode 100644 index 6c954549ef5..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/setuptools/setuptools-80.10.2.ebuild +++ /dev/null @@ -1,119 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# please keep this ebuild at EAPI 8 -- sys-apps/portage dep -EAPI=8 - -# please bump dev-python/ensurepip-setuptools along with this package! - -DISTUTILS_USE_PEP517=standalone -PYTHON_TESTED=( python3_{11..14} pypy3_11 ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) -PYTHON_REQ_USE="xml(+)" - -inherit distutils-r1 pypi - -DESCRIPTION="Collection of extensions to Distutils" -HOMEPAGE=" - https://github.com/pypa/setuptools/ - https://pypi.org/project/setuptools/ -" - -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" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND=" - >=dev-python/jaraco-functools-4.4.0[${PYTHON_USEDEP}] - >=dev-python/jaraco-text-4.0.0[${PYTHON_USEDEP}] - >=dev-python/more-itertools-10.8.0[${PYTHON_USEDEP}] - >=dev-python/packaging-25.0[${PYTHON_USEDEP}] - >=dev-python/platformdirs-4.4.0[${PYTHON_USEDEP}] - >=dev-python/wheel-0.45.1[${PYTHON_USEDEP}] -" -BDEPEND=" - ${RDEPEND} - test? ( - $(python_gen_cond_dep ' - >=dev-python/build-1.0.3[${PYTHON_USEDEP}] - >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}] - >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}] - >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}] - >=dev-python/jaraco-path-3.7.2[${PYTHON_USEDEP}] - >=dev-python/jaraco-test-5.5[${PYTHON_USEDEP}] - dev-python/pip[${PYTHON_USEDEP}] - dev-python/pyproject-hooks[${PYTHON_USEDEP}] - dev-python/pytest[${PYTHON_USEDEP}] - >=dev-python/pytest-home-0.5[${PYTHON_USEDEP}] - dev-python/pytest-subprocess[${PYTHON_USEDEP}] - dev-python/pytest-timeout[${PYTHON_USEDEP}] - dev-python/pytest-xdist[${PYTHON_USEDEP}] - >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}] - >=dev-python/virtualenv-20[${PYTHON_USEDEP}] - ' "${PYTHON_TESTED[@]}") - ) -" -# setuptools-scm is here because installing plugins apparently breaks stuff at -# runtime, so let's pull it early. See bug #663324. -# -# trove-classifiers are optionally used in validation, if they are -# installed. Since we really oughtn't block them, let's always enforce -# the newest version for the time being to avoid errors. -# https://github.com/pypa/setuptools/issues/4459 -PDEPEND=" - dev-python/setuptools-scm[${PYTHON_USEDEP}] - >=dev-python/trove-classifiers-2024.10.16[${PYTHON_USEDEP}] -" - -src_prepare() { - local PATCHES=( - # https://github.com/abravalheri/validate-pyproject/pull/221 - "${FILESDIR}/setuptools-75.6.0-disable-trove-classifiers.patch" - ) - - distutils-r1_src_prepare - - # remove bundled dependencies - rm -r */_vendor || die -} - -python_test() { - if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then - return - fi - - local EPYTEST_DESELECT=( - # broken by unbundling (e.g. installs self-wheel into venv) - setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta - setuptools/tests/test_distutils_adoption.py - setuptools/tests/test_editable_install.py - setuptools/tests/test_sdist.py::test_sanity_check_setuptools_own_sdist - setuptools/tests/test_setuptools.py::test_wheel_includes_vendored_metadata - setuptools/tests/test_virtualenv.py::test_no_missing_dependencies - # TODO - setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic - setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors - # TODO, probably some random package - setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass - # relies on -Werror - setuptools/_static.py::setuptools._static.Dict - setuptools/_static.py::setuptools._static.List - # Internet - setuptools/tests/test_build_py.py::TestTypeInfoFiles::test_type_files_included_by_default - setuptools/tests/test_dist.py::test_dist_fetch_build_egg - setuptools/tests/test_namespaces.py::TestNamespaces::test_mixed_site_and_non_site - setuptools/tests/test_namespaces.py::TestNamespaces::test_namespace_package_installed_and_cwd - setuptools/tests/test_namespaces.py::TestNamespaces::test_packages_in_the_same_namespace_installed_and_cwd - setuptools/tests/test_namespaces.py::TestNamespaces::test_pkg_resources_import - # broken by warnings from setuptools-scm - setuptools/tests/config/test_apply_pyprojecttoml.py::TestPresetField::test_scripts_dont_require_dynamic_entry_points - ) - - local EPYTEST_XDIST=1 - local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH} - local EPYTEST_PLUGINS=( pytest-{home,subprocess,timeout} ) - epytest -o tmp_path_retention_policy=all \ - -m "not uses_network" setuptools -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/setuptools/setuptools-80.9.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/setuptools/setuptools-80.9.0-r1.ebuild deleted file mode 100644 index 7c049773659..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/setuptools/setuptools-80.9.0-r1.ebuild +++ /dev/null @@ -1,111 +0,0 @@ -# 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 - -# please bump dev-python/ensurepip-setuptools along with this package! - -DISTUTILS_USE_PEP517=standalone -PYTHON_TESTED=( python3_{11..14} pypy3_11 ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) -PYTHON_REQ_USE="xml(+)" - -inherit distutils-r1 pypi - -DESCRIPTION="Collection of extensions to Distutils" -HOMEPAGE=" - https://github.com/pypa/setuptools/ - https://pypi.org/project/setuptools/ -" - -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" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND=" - dev-python/jaraco-collections[${PYTHON_USEDEP}] - >=dev-python/jaraco-functools-4[${PYTHON_USEDEP}] - >=dev-python/jaraco-text-3.7.0-r1[${PYTHON_USEDEP}] - >=dev-python/more-itertools-8.12.0-r1[${PYTHON_USEDEP}] - >=dev-python/packaging-24.2[${PYTHON_USEDEP}] - >=dev-python/platformdirs-4.2.2[${PYTHON_USEDEP}] - >=dev-python/wheel-0.44.0[${PYTHON_USEDEP}] -" -BDEPEND=" - ${RDEPEND} - test? ( - $(python_gen_cond_dep ' - >=dev-python/build-1.0.3[${PYTHON_USEDEP}] - >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}] - >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}] - >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}] - >=dev-python/jaraco-path-3.7.2[${PYTHON_USEDEP}] - >=dev-python/jaraco-test-5.5[${PYTHON_USEDEP}] - dev-python/pip[${PYTHON_USEDEP}] - dev-python/pyproject-hooks[${PYTHON_USEDEP}] - dev-python/pytest[${PYTHON_USEDEP}] - >=dev-python/pytest-home-0.5[${PYTHON_USEDEP}] - dev-python/pytest-subprocess[${PYTHON_USEDEP}] - dev-python/pytest-timeout[${PYTHON_USEDEP}] - dev-python/pytest-xdist[${PYTHON_USEDEP}] - >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}] - >=dev-python/virtualenv-20[${PYTHON_USEDEP}] - ' "${PYTHON_TESTED[@]}") - ) -" -# setuptools-scm is here because installing plugins apparently breaks stuff at -# runtime, so let's pull it early. See bug #663324. -# -# trove-classifiers are optionally used in validation, if they are -# installed. Since we really oughtn't block them, let's always enforce -# the newest version for the time being to avoid errors. -# https://github.com/pypa/setuptools/issues/4459 -PDEPEND=" - dev-python/setuptools-scm[${PYTHON_USEDEP}] - >=dev-python/trove-classifiers-2024.10.16[${PYTHON_USEDEP}] -" - -src_prepare() { - local PATCHES=( - # https://github.com/abravalheri/validate-pyproject/pull/221 - "${FILESDIR}/setuptools-75.6.0-disable-trove-classifiers.patch" - ) - - distutils-r1_src_prepare - - # remove bundled dependencies - rm -r */_vendor || die -} - -python_test() { - if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then - return - fi - - local EPYTEST_DESELECT=( - # broken by unbundling (e.g. installs self-wheel into venv) - setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta - setuptools/tests/test_distutils_adoption.py - setuptools/tests/test_editable_install.py - setuptools/tests/test_sdist.py::test_sanity_check_setuptools_own_sdist - setuptools/tests/test_setuptools.py::test_wheel_includes_vendored_metadata - setuptools/tests/test_virtualenv.py::test_no_missing_dependencies - # TODO - setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic - setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors - # TODO, probably some random package - setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass - # relies on -Werror - setuptools/_static.py::setuptools._static.Dict - setuptools/_static.py::setuptools._static.List - ) - - local EPYTEST_XDIST=1 - local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH} - local EPYTEST_PLUGINS=( pytest-{home,subprocess,timeout} ) - epytest -o tmp_path_retention_policy=all \ - -m "not uses_network" setuptools -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/setuptools/setuptools-81.0.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/setuptools/setuptools-81.0.0.ebuild deleted file mode 100644 index 4daedc1b7e6..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/setuptools/setuptools-81.0.0.ebuild +++ /dev/null @@ -1,121 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# please keep this ebuild at EAPI 8 -- sys-apps/portage dep -EAPI=8 - -# please bump dev-python/ensurepip-setuptools along with this package! - -DISTUTILS_USE_PEP517=standalone -PYTHON_TESTED=( python3_{11..14} pypy3_11 ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) -PYTHON_REQ_USE="xml(+)" - -inherit distutils-r1 pypi - -DESCRIPTION="Collection of extensions to Distutils" -HOMEPAGE=" - https://github.com/pypa/setuptools/ - https://pypi.org/project/setuptools/ -" - -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" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND=" - >=dev-python/jaraco-functools-4.4.0[${PYTHON_USEDEP}] - >=dev-python/jaraco-text-4.0.0[${PYTHON_USEDEP}] - >=dev-python/more-itertools-10.8.0[${PYTHON_USEDEP}] - >=dev-python/packaging-25.0[${PYTHON_USEDEP}] - >=dev-python/platformdirs-4.4.0[${PYTHON_USEDEP}] - >=dev-python/wheel-0.45.1[${PYTHON_USEDEP}] -" -BDEPEND=" - ${RDEPEND} - test? ( - $(python_gen_cond_dep ' - >=dev-python/build-1.0.3[${PYTHON_USEDEP}] - >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}] - >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}] - >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}] - >=dev-python/jaraco-path-3.7.2[${PYTHON_USEDEP}] - >=dev-python/jaraco-test-5.5[${PYTHON_USEDEP}] - dev-python/pip[${PYTHON_USEDEP}] - dev-python/pyproject-hooks[${PYTHON_USEDEP}] - dev-python/pytest[${PYTHON_USEDEP}] - >=dev-python/pytest-home-0.5[${PYTHON_USEDEP}] - dev-python/pytest-subprocess[${PYTHON_USEDEP}] - dev-python/pytest-timeout[${PYTHON_USEDEP}] - dev-python/pytest-xdist[${PYTHON_USEDEP}] - >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}] - >=dev-python/virtualenv-20[${PYTHON_USEDEP}] - ' "${PYTHON_TESTED[@]}") - ) -" -# setuptools-scm is here because installing plugins apparently breaks stuff at -# runtime, so let's pull it early. See bug #663324. -# -# trove-classifiers are optionally used in validation, if they are -# installed. Since we really oughtn't block them, let's always enforce -# the newest version for the time being to avoid errors. -# https://github.com/pypa/setuptools/issues/4459 -PDEPEND=" - dev-python/setuptools-scm[${PYTHON_USEDEP}] - >=dev-python/trove-classifiers-2024.10.16[${PYTHON_USEDEP}] -" - -src_prepare() { - local PATCHES=( - # https://github.com/abravalheri/validate-pyproject/pull/221 - "${FILESDIR}/setuptools-75.6.0-disable-trove-classifiers.patch" - ) - - distutils-r1_src_prepare - - # remove bundled dependencies - rm -r */_vendor || die -} - -python_test() { - if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then - return - fi - - local EPYTEST_DESELECT=( - # broken by unbundling (e.g. installs self-wheel into venv) - setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta - setuptools/tests/test_distutils_adoption.py - setuptools/tests/test_editable_install.py - setuptools/tests/test_sdist.py::test_sanity_check_setuptools_own_sdist - setuptools/tests/test_setuptools.py::test_wheel_includes_vendored_metadata - setuptools/tests/test_virtualenv.py::test_no_missing_dependencies - # TODO - setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic - setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors - # TODO, probably some random package - setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass - # relies on -Werror - setuptools/_static.py::setuptools._static.Dict - setuptools/_static.py::setuptools._static.List - # Internet - setuptools/tests/test_build_py.py::TestTypeInfoFiles::test_type_files_included_by_default - setuptools/tests/test_dist.py::test_dist_fetch_build_egg - setuptools/tests/test_namespaces.py::TestNamespaces::test_mixed_site_and_non_site - setuptools/tests/test_namespaces.py::TestNamespaces::test_namespace_package_installed_and_cwd - setuptools/tests/test_namespaces.py::TestNamespaces::test_packages_in_the_same_namespace_installed_and_cwd - setuptools/tests/test_namespaces.py::TestNamespaces::test_pkg_resources_import - # broken by warnings from setuptools-scm - setuptools/tests/config/test_apply_pyprojecttoml.py::TestPresetField::test_scripts_dont_require_dynamic_entry_points - # TODO - 'setuptools/tests/test_egg_info.py::TestEggInfo::test_requires[setup_requires_with_markers]' - ) - - local EPYTEST_XDIST=1 - local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH} - local EPYTEST_PLUGINS=( pytest-{home,subprocess,timeout} ) - epytest -o tmp_path_retention_policy=all \ - -m "not uses_network" setuptools -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/setuptools/setuptools-82.0.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/setuptools/setuptools-82.0.0.ebuild deleted file mode 100644 index 4daedc1b7e6..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/setuptools/setuptools-82.0.0.ebuild +++ /dev/null @@ -1,121 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# please keep this ebuild at EAPI 8 -- sys-apps/portage dep -EAPI=8 - -# please bump dev-python/ensurepip-setuptools along with this package! - -DISTUTILS_USE_PEP517=standalone -PYTHON_TESTED=( python3_{11..14} pypy3_11 ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) -PYTHON_REQ_USE="xml(+)" - -inherit distutils-r1 pypi - -DESCRIPTION="Collection of extensions to Distutils" -HOMEPAGE=" - https://github.com/pypa/setuptools/ - https://pypi.org/project/setuptools/ -" - -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" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND=" - >=dev-python/jaraco-functools-4.4.0[${PYTHON_USEDEP}] - >=dev-python/jaraco-text-4.0.0[${PYTHON_USEDEP}] - >=dev-python/more-itertools-10.8.0[${PYTHON_USEDEP}] - >=dev-python/packaging-25.0[${PYTHON_USEDEP}] - >=dev-python/platformdirs-4.4.0[${PYTHON_USEDEP}] - >=dev-python/wheel-0.45.1[${PYTHON_USEDEP}] -" -BDEPEND=" - ${RDEPEND} - test? ( - $(python_gen_cond_dep ' - >=dev-python/build-1.0.3[${PYTHON_USEDEP}] - >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}] - >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}] - >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}] - >=dev-python/jaraco-path-3.7.2[${PYTHON_USEDEP}] - >=dev-python/jaraco-test-5.5[${PYTHON_USEDEP}] - dev-python/pip[${PYTHON_USEDEP}] - dev-python/pyproject-hooks[${PYTHON_USEDEP}] - dev-python/pytest[${PYTHON_USEDEP}] - >=dev-python/pytest-home-0.5[${PYTHON_USEDEP}] - dev-python/pytest-subprocess[${PYTHON_USEDEP}] - dev-python/pytest-timeout[${PYTHON_USEDEP}] - dev-python/pytest-xdist[${PYTHON_USEDEP}] - >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}] - >=dev-python/virtualenv-20[${PYTHON_USEDEP}] - ' "${PYTHON_TESTED[@]}") - ) -" -# setuptools-scm is here because installing plugins apparently breaks stuff at -# runtime, so let's pull it early. See bug #663324. -# -# trove-classifiers are optionally used in validation, if they are -# installed. Since we really oughtn't block them, let's always enforce -# the newest version for the time being to avoid errors. -# https://github.com/pypa/setuptools/issues/4459 -PDEPEND=" - dev-python/setuptools-scm[${PYTHON_USEDEP}] - >=dev-python/trove-classifiers-2024.10.16[${PYTHON_USEDEP}] -" - -src_prepare() { - local PATCHES=( - # https://github.com/abravalheri/validate-pyproject/pull/221 - "${FILESDIR}/setuptools-75.6.0-disable-trove-classifiers.patch" - ) - - distutils-r1_src_prepare - - # remove bundled dependencies - rm -r */_vendor || die -} - -python_test() { - if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then - return - fi - - local EPYTEST_DESELECT=( - # broken by unbundling (e.g. installs self-wheel into venv) - setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta - setuptools/tests/test_distutils_adoption.py - setuptools/tests/test_editable_install.py - setuptools/tests/test_sdist.py::test_sanity_check_setuptools_own_sdist - setuptools/tests/test_setuptools.py::test_wheel_includes_vendored_metadata - setuptools/tests/test_virtualenv.py::test_no_missing_dependencies - # TODO - setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic - setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors - # TODO, probably some random package - setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass - # relies on -Werror - setuptools/_static.py::setuptools._static.Dict - setuptools/_static.py::setuptools._static.List - # Internet - setuptools/tests/test_build_py.py::TestTypeInfoFiles::test_type_files_included_by_default - setuptools/tests/test_dist.py::test_dist_fetch_build_egg - setuptools/tests/test_namespaces.py::TestNamespaces::test_mixed_site_and_non_site - setuptools/tests/test_namespaces.py::TestNamespaces::test_namespace_package_installed_and_cwd - setuptools/tests/test_namespaces.py::TestNamespaces::test_packages_in_the_same_namespace_installed_and_cwd - setuptools/tests/test_namespaces.py::TestNamespaces::test_pkg_resources_import - # broken by warnings from setuptools-scm - setuptools/tests/config/test_apply_pyprojecttoml.py::TestPresetField::test_scripts_dont_require_dynamic_entry_points - # TODO - 'setuptools/tests/test_egg_info.py::TestEggInfo::test_requires[setup_requires_with_markers]' - ) - - local EPYTEST_XDIST=1 - local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH} - local EPYTEST_PLUGINS=( pytest-{home,subprocess,timeout} ) - epytest -o tmp_path_retention_policy=all \ - -m "not uses_network" setuptools -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/setuptools/setuptools-82.0.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/setuptools/setuptools-82.0.1.ebuild index 48ddb6adc2e..6a5b50a296e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/setuptools/setuptools-82.0.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/setuptools/setuptools-82.0.1.ebuild @@ -8,7 +8,7 @@ EAPI=8 DISTUTILS_USE_PEP517=standalone PYTHON_TESTED=( python3_{11..14} pypy3_11 ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_15 python3_{13..15}t ) PYTHON_REQ_USE="xml(+)" inherit distutils-r1 pypi @@ -21,7 +21,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" IUSE="test" RESTRICT="!test? ( test )" @@ -117,6 +117,6 @@ python_test() { local EPYTEST_XDIST=1 local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH} local EPYTEST_PLUGINS=( pytest-{home,subprocess,timeout} ) - epytest -o tmp_path_retention_policy=all \ + epytest -o filterwarnings= -o tmp_path_retention_policy=all \ -m "not uses_network" setuptools } diff --git a/sdk_container/src/third_party/portage-stable/dev-python/six/six-1.17.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/six/six-1.17.0.ebuild index 48c8485225c..bcae0cb09b6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/six/six-1.17.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/six/six-1.17.0.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) inherit distutils-r1 pypi @@ -19,23 +19,11 @@ SLOT="0" KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" distutils_enable_sphinx documentation --no-autodoc +EPYTEST_PLUGINS=() distutils_enable_tests pytest -python_test() { - local EPYTEST_DESELECT=( - # requires USE=gdb on CPython, no point in forcing the dep - # also missing on PyPy - 'test_six.py::test_move_items[dbm_ndbm]' - ) - - case ${EPYTHON} in - python3.13*) - EPYTEST_DESELECT+=( - 'test_six.py::test_move_items[tkinter_tix]' - ) - ;; - esac - - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - epytest -} +EPYTEST_DESELECT=( + # requires USE=gdb on CPython, no point in forcing the dep + # also missing on PyPy + 'test_six.py::test_move_items[dbm_ndbm]' +) diff --git a/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/Manifest index dc50cbb7b50..4755a267442 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/Manifest @@ -1,2 +1,3 @@ DIST snakeoil-0.10.11.tar.gz 174701 BLAKE2B 5dba8eac3fdd6dfc88fcb2ffac8cd16f18c28485d39e6726708f98f0c86cdc6d101bf343da75c505f34c59c0bede89b0adbc268bc6d93a996cfefce4e968ac75 SHA512 6cd4fb1449e1ccf74bf8042afa4e113704eb328c89ff1def59581e96031082b27d78f46574796f59a612148947626d727b13a04134bc895e96f2f4733ce54c41 DIST snakeoil-0.11.0.tar.gz 201462 BLAKE2B c8d9953b5fc482afbadd471c6de273518d1b30a42cff2cc45cd2700544bb9a84b25ea3686e8f056bd44562075f1eedf7db3af6cf935f177b513e9b3f0a76840c SHA512 6636def3a05469a3f22e0a510d00fd5d6399c561fa436f7028507b5b548c5d20200ec93fdf2d8ba03176e76f2d6a0e51f12f63fa4b6a16a11839552dcbd7543c +DIST snakeoil-0.11.0.tar.gz.provenance 9238 BLAKE2B 6724f3cde7cfabdfc44a8e0056a8c112d97ff7ffba98c90c998f8244a7ebf5b38198613b49f0df7dc9106cba6d07a68bb02b6cfaf70d83e6692f730a4fdce1c2 SHA512 990cf993fab784e7878517872183edf91b0a9725c08e618974a05b68c75c35b2bd03e865bd5a3ce21fcc138cbc84a1a0051be40fda639d5f3bcc8c8c0a6ef347 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-0.11.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-0.11.0.ebuild index 2fcd7bf922b..ff84f169e01 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-0.11.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-0.11.0.ebuild @@ -4,8 +4,10 @@ EAPI=8 DISTUTILS_USE_PEP517=flit +PYPI_VERIFY_REPO=https://github.com/pkgcore/snakeoil PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) PYTHON_REQ_USE="threads(+)" + inherit distutils-r1 if [[ ${PV} == *9999 ]] ; then @@ -18,10 +20,13 @@ else fi DESCRIPTION="misc common functionality and useful optimizations" -HOMEPAGE="https://github.com/pkgcore/snakeoil" +HOMEPAGE=" + https://github.com/pkgcore/snakeoil/ + https://pypi.org/project/snakeoil/ +" LICENSE="BSD BSD-2 MIT" SLOT="0" -EPYTEST_PLUGINS=( pytest-subtests ) +EPYTEST_PLUGINS=() distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-9999.ebuild index 48283cb36c6..b6398184541 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-9999.ebuild @@ -4,8 +4,10 @@ EAPI=8 DISTUTILS_USE_PEP517=flit +PYPI_VERIFY_REPO=https://github.com/pkgcore/snakeoil PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) PYTHON_REQ_USE="threads(+)" + inherit distutils-r1 if [[ ${PV} == *9999 ]] ; then @@ -18,10 +20,13 @@ else fi DESCRIPTION="misc common functionality and useful optimizations" -HOMEPAGE="https://github.com/pkgcore/snakeoil" +HOMEPAGE=" + https://github.com/pkgcore/snakeoil/ + https://pypi.org/project/snakeoil/ +" LICENSE="BSD BSD-2 MIT" SLOT="0" -EPYTEST_PLUGINS=( pytest-subtests ) +EPYTEST_PLUGINS=() distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/tomli-w/tomli-w-1.2.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/tomli-w/tomli-w-1.2.0.ebuild index 2b6f2ca7a1d..28167e38fa9 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/tomli-w/tomli-w-1.2.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/tomli-w/tomli-w-1.2.0.ebuild @@ -1,10 +1,10 @@ -# Copyright 2021-2025 Gentoo Authors +# Copyright 2021-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=flit -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) inherit distutils-r1 @@ -28,6 +28,7 @@ BDEPEND=" ) " +EPYTEST_PLUGINS=() distutils_enable_tests pytest python_test() { 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 763e554603c..bfd9979ca71 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,4 +1,2 @@ -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 -DIST tomli-2.4.0-py3-none-any.whl.zip 14477 BLAKE2B efe5a7e331e7606f63cab7796ee2b0dcba0230980202d352e1c5b8e5c95f28c2a2b2323940acdcef97a19b9408dc3ac9ddb4d763b9a021f1ce2525f50391d19d SHA512 9daddb30d6838ab2c65312b00a340ae25efc6957e967d5692b7beece6617c50ab747f52cec7aadb49613ccd5fc6fc551e16f8d0c0fee1bb5a75f1cfdc224f64d -DIST tomli-2.4.0.gh.tar.gz 81505 BLAKE2B ed4cf087daaeac563d87b646d2bf9f88732569956362fac1000bf7871928572c6936dfd28426050c3401dc911563be7f8f36baee714c0c7a1ebb6f3d960ebdb9 SHA512 8bd8c46d4e4337142fbd94a6a78b478db804bc7c535c11eb447a3613afdda3428b679dc06228b37ccaad73af334c204c38236b0b5287f7ff6d21387f1355d420 +DIST tomli-2.4.1-py3-none-any.whl.zip 14583 BLAKE2B 1ad652dc394bc4ced7a4424c185aea332f4a2fa3b414ae022ca3ed1897697e0a21428fdb8df3d0e38560d9ed992223f81c6fd448b8516a0aa95131925e0425eb SHA512 b1128513d7cf0df49590d0b90696c6d8a04fcada635fa989680ea3b3882bf4eae8a9fdcc42d1e767ba3fcac2786bd47a19dd722187fb7a78eaeb05b55f8e71e6 +DIST tomli-2.4.1.gh.tar.gz 81666 BLAKE2B ea0b49fa67f525aa1648e0cb627543aa9e4bf4f13ed0c36d1f4afc4a5325f4b71d3dbbf17262cf44fb6394b1b7c8f37bd409edcda2d597a4ea7fcee54a4f02ec SHA512 b7f79c349d5a7309452f940ac630504c52a36761bdcd2b3f451d06172641f59b48721ce15faceb70cd04f995150c9854c6725d6596bebbf06087c7ea95a3d3a4 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 deleted file mode 100644 index 7abe55f4d61..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/tomli/tomli-2.3.0.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# 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 ~arm64-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/tomli/tomli-2.4.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/tomli/tomli-2.4.0.ebuild deleted file mode 100644 index 4904868d6b1..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/tomli/tomli-2.4.0.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 2021-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# please keep this ebuild at EAPI 8 -- sys-apps/portage dep -EAPI=8 - -DISTUTILS_USE_PEP517=no -PYTHON_COMPAT=( python3_{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 ~arm64-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/tomli/tomli-2.4.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/tomli/tomli-2.4.1.ebuild new file mode 100644 index 00000000000..1fe75fac1d2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/tomli/tomli-2.4.1.ebuild @@ -0,0 +1,40 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=no +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}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 ~arm64-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/tree-sitter/files/tree-sitter-0.25.2-remove-deprecated-functions.patch b/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/files/tree-sitter-0.25.2-remove-deprecated-functions.patch new file mode 100644 index 00000000000..d5c62664c14 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/files/tree-sitter-0.25.2-remove-deprecated-functions.patch @@ -0,0 +1,467 @@ +https://github.com/tree-sitter/py-tree-sitter/commit/1542b4bb +From: ObserverOfTime +Date: Sun, 14 Dec 2025 13:41:36 +0200 +Subject: [PATCH] feat!: remove deprecated methods + +--- a/docs/classes/tree_sitter.Language.rst ++++ b/docs/classes/tree_sitter.Language.rst +@@ -16,14 +16,8 @@ Language + .. automethod:: node_kind_is_named + .. automethod:: node_kind_is_supertype + .. automethod:: node_kind_is_visible +- .. automethod:: query +- +- .. deprecated:: 0.25.0 +- Use the :class:`Query` constructor instead. + .. automethod:: subtypes + +- .. versionadded:: 0.25.0 +- + Special Methods + --------------- + +@@ -41,21 +35,9 @@ Language + ---------- + + .. autoattribute:: abi_version +- +- .. versionadded:: 0.25.0 + .. autoattribute:: field_count + .. autoattribute:: name +- +- .. versionadded:: 0.25.0 + .. autoattribute:: node_kind_count + .. autoattribute:: parse_state_count + .. autoattribute:: semantic_version +- +- .. versionadded:: 0.25.0 + .. autoattribute:: supertypes +- +- .. versionadded:: 0.25.0 +- .. autoattribute:: version +- +- .. deprecated:: 0.25.0 +- Use :attr:`abi_version` instead. +--- a/docs/classes/tree_sitter.LookaheadIterator.rst ++++ b/docs/classes/tree_sitter.LookaheadIterator.rst +@@ -8,29 +8,15 @@ LookaheadIterator + ------- + + .. automethod:: names +- +- .. versionadded:: 0.25.0 +- Replaces the ``iter_names`` method + .. automethod:: reset +- +- .. versionadded:: 0.25.0 +- Replaces the ``reset_state`` method + .. automethod:: symbols + +- .. versionadded:: 0.25.0 +- + Special Methods + --------------- + + .. automethod:: __iter__ +- +- .. versionchanged:: 0.25.0 +- Iterates over ``tuple[int, str]`` + .. automethod:: __next__ + +- .. versionchanged:: 0.25.0 +- Yields ``tuple[int, str]`` +- + Attributes + ---------- + +--- a/docs/classes/tree_sitter.Node.rst ++++ b/docs/classes/tree_sitter.Node.rst +@@ -18,11 +18,7 @@ Node + .. automethod:: field_name_for_child + .. automethod:: field_name_for_named_child + .. automethod:: first_child_for_byte +- +- .. versionadded:: 0.25.0 + .. automethod:: first_named_child_for_byte +- +- .. versionadded:: 0.25.0 + .. automethod:: named_child + .. automethod:: named_descendant_for_byte_range + .. automethod:: named_descendant_for_point_range +--- a/docs/classes/tree_sitter.Parser.rst ++++ b/docs/classes/tree_sitter.Parser.rst +@@ -7,10 +7,6 @@ Parser + ------- + + .. automethod:: parse +- +- .. versionchanged:: 0.25.0 +- * ``encoding`` can be one of ``"utf8", "utf16", "utf16le", "utf16be"``. +- * ``progress_callback`` parameter added. + .. automethod:: print_dot_graphs + .. automethod:: reset + +@@ -20,7 +16,3 @@ Parser + .. autoattribute:: included_ranges + .. autoattribute:: language + .. autoattribute:: logger +- .. autoattribute:: timeout_micros +- +- .. deprecated:: 0.25.0 +- Use the ``progress_callback`` in :meth:`parse`. +--- a/docs/classes/tree_sitter.Query.rst ++++ b/docs/classes/tree_sitter.Query.rst +@@ -21,11 +21,7 @@ Query + ------- + + .. automethod:: capture_name +- +- .. versionadded:: 0.25.0 + .. automethod:: capture_quantifier +- +- .. versionadded:: 0.25.0 + .. automethod:: disable_capture + .. automethod:: disable_pattern + .. automethod:: end_byte_for_pattern +@@ -37,13 +33,9 @@ Query + .. automethod:: start_byte_for_pattern + .. automethod:: string_value + +- .. versionadded:: 0.25.0 +- + Attributes + ---------- + + .. autoattribute:: capture_count + .. autoattribute:: pattern_count + .. autoattribute:: string_count +- +- .. versionadded:: 0.25.0 +--- a/docs/classes/tree_sitter.QueryCursor.rst ++++ b/docs/classes/tree_sitter.QueryCursor.rst +@@ -1,10 +1,8 @@ + QueryCursor +-===== ++=========== + + .. autoclass:: tree_sitter.QueryCursor + +- .. versionadded:: 0.25.0 +- + Methods + ------- + +@@ -19,4 +17,3 @@ QueryCursor + + .. autoattribute:: did_exceed_match_limit + .. autoattribute:: match_limit +- .. autoattribute:: timeout_micros +--- a/tree_sitter/__init__.pyi ++++ b/tree_sitter/__init__.pyi +@@ -27,9 +27,6 @@ class Language: + def abi_version(self) -> int: ... + @property + def semantic_version(self) -> tuple[int, int, int] | None: ... +- @deprecated("Use abi_version instead") +- @property +- def version(self) -> int: ... + @property + def node_kind_count(self) -> int: ... + @property +@@ -48,8 +45,6 @@ class Language: + def field_id_for_name(self, name: str, /) -> int | None: ... + def next_state(self, state: int, id: int, /) -> int: ... + def lookahead_iterator(self, state: int, /) -> LookaheadIterator | None: ... +- @deprecated("Use the Query() constructor instead") +- def query(self, source: str, /) -> Query: ... + def copy(self) -> Language: ... + def __repr__(self) -> str: ... + def __eq__(self, other: Any, /) -> bool: ... +@@ -226,22 +221,11 @@ class TreeCursor: + + @final + class Parser: +- @overload +- def __init__( +- self, +- language: Language | None = None, +- *, +- included_ranges: Sequence[Range] | None = None, +- logger: Callable[[LogType, str], None] | None = None, +- ) -> None: ... +- @deprecated("timeout_micros is deprecated") +- @overload + def __init__( + self, + language: Language | None = None, + *, + included_ranges: Sequence[Range] | None = None, +- timeout_micros: int | None = None, + logger: Callable[[LogType, str], None] | None = None, + ) -> None: ... + @property +@@ -256,15 +240,6 @@ class Parser: + def included_ranges(self, ranges: Sequence[Range]) -> None: ... + @included_ranges.deleter + def included_ranges(self) -> None: ... +- @deprecated("Use the progress_callback in parse()") +- @property +- def timeout_micros(self) -> int: ... +- @deprecated("Use the progress_callback in parse()") +- @timeout_micros.setter +- def timeout_micros(self, timeout: int) -> None: ... +- @deprecated("Use the progress_callback in parse()") +- @timeout_micros.deleter +- def timeout_micros(self) -> None: ... + @property + def logger(self) -> Callable[[LogType, str], None] | None: ... + @logger.setter +@@ -328,29 +303,13 @@ class Query: + + @final + class QueryCursor: +- @overload + def __init__(self, query: Query, *, match_limit: int = 0xFFFFFFFF) -> None: ... +- @deprecated("timeout_micros is deprecated") +- @overload +- def __init__( +- self, +- query: Query, +- *, +- match_limit: int = 0xFFFFFFFF, +- timeout_micros: int = 0 +- ) -> None: ... + @property + def match_limit(self) -> int: ... + @match_limit.setter + def match_limit(self, limit: int) -> None: ... + @match_limit.deleter + def match_limit(self) -> None: ... +- @deprecated("Use the progress_callback in matches() or captures()") +- @property +- def timeout_micros(self) -> int: ... +- @deprecated("Use the progress_callback in matches() or captures()") +- @timeout_micros.setter +- def timeout_micros(self, timeout: int) -> None: ... + @property + def did_exceed_match_limit(self) -> bool: ... + def set_max_start_depth(self, depth: int, /) -> None: ... +--- a/tree_sitter/binding/language.c ++++ b/tree_sitter/binding/language.c +@@ -63,13 +63,6 @@ PyObject *language_get_name(Language *self, void *Py_UNUSED(payload)) { + return PyUnicode_FromString(self->name); + } + +-PyObject *language_get_version(Language *self, void *Py_UNUSED(payload)) { +- if (REPLACE("version", "abi_version") < 0) { +- return NULL; +- } +- return PyLong_FromUnsignedLong(self->abi_version); +-} +- + PyObject *language_get_abi_version(Language *self, void *Py_UNUSED(payload)) { + return PyLong_FromUnsignedLong(self->abi_version); + } +@@ -237,19 +230,6 @@ PyObject *language_lookahead_iterator(Language *self, PyObject *args) { + return PyObject_Init((PyObject *)iter, state->lookahead_iterator_type); + } + +-PyObject *language_query(Language *self, PyObject *args) { +- ModuleState *state = GET_MODULE_STATE(self); +- char *source; +- Py_ssize_t length; +- if (!PyArg_ParseTuple(args, "s#:query", &source, &length)) { +- return NULL; +- } +- if (REPLACE("query()", "the Query() constructor") < 0) { +- return NULL; +- } +- return PyObject_CallFunction((PyObject *)state->query_type, "Os#", self, source, length); +-} +- + PyObject *language_copy(Language *self, PyObject *Py_UNUSED(args)) { + ModuleState *state = GET_MODULE_STATE(self); + Language *copied = PyObject_New(Language, state->language_type); +@@ -290,10 +270,6 @@ PyDoc_STRVAR(language_next_state_doc, + PyDoc_STRVAR(language_lookahead_iterator_doc, + "lookahead_iterator(self, state, /)\n--\n\n" + "Create a new :class:`LookaheadIterator` for this language and parse state."); +-PyDoc_STRVAR( +- language_query_doc, +- "query(self, source, /)\n--\n\n" +- "Create a new :class:`Query` from a string containing one or more S-expression patterns."); + PyDoc_STRVAR(language_copy_doc, "copy(self, /)\n--\n\n" + "Create a copy of the language."); + PyDoc_STRVAR(language_copy2_doc, "__copy__(self, /)\n--\n\n" +@@ -360,12 +336,6 @@ static PyMethodDef language_methods[] = { + .ml_flags = METH_VARARGS, + .ml_doc = language_lookahead_iterator_doc, + }, +- { +- .ml_name = "query", +- .ml_meth = (PyCFunction)language_query, +- .ml_flags = METH_VARARGS, +- .ml_doc = language_query_doc, +- }, + { + .ml_name = "copy", + .ml_meth = (PyCFunction)language_copy, +@@ -381,10 +351,6 @@ static PyMethodDef language_methods[] = { + + static PyGetSetDef language_accessors[] = { + {"name", (getter)language_get_name, NULL, PyDoc_STR("The name of the language."), NULL}, +- {"version", (getter)language_get_version, NULL, +- PyDoc_STR("The ABI version number that indicates which version of " +- "the Tree-sitter CLI was used to generate this language."), +- NULL}, + {"abi_version", (getter)language_get_abi_version, NULL, + PyDoc_STR("The ABI version number that indicates which version of " + "the Tree-sitter CLI was used to generate this language."), +--- a/tree_sitter/binding/parser.c ++++ b/tree_sitter/binding/parser.c +@@ -230,31 +230,6 @@ PyObject *parser_print_dot_graphs(Parser *self, PyObject *arg) { + Py_RETURN_NONE; + } + +-PyObject *parser_get_timeout_micros(Parser *self, void *Py_UNUSED(payload)) { +- if (DEPRECATE("Use the progress_callback in parse()") < 0) { +- return NULL; +- } +- return PyLong_FromUnsignedLong(ts_parser_timeout_micros(self->parser)); +-} +- +-int parser_set_timeout_micros(Parser *self, PyObject *arg, void *Py_UNUSED(payload)) { +- if (DEPRECATE("Use the progress_callback in parse()") < 0) { +- return -1; +- } +- if (arg == NULL || arg == Py_None) { +- ts_parser_set_timeout_micros(self->parser, 0); +- return 0; +- } +- if (!PyLong_Check(arg)) { +- PyErr_Format(PyExc_TypeError, "'timeout_micros' must be assigned an int, not %s", +- arg->ob_type->tp_name); +- return -1; +- } +- +- ts_parser_set_timeout_micros(self->parser, PyLong_AsSize_t(arg)); +- return 0; +-} +- + PyObject *parser_get_included_ranges(Parser *self, void *Py_UNUSED(payload)) { + uint32_t count; + const TSRange *ranges = ts_parser_included_ranges(self->parser, &count); +@@ -397,11 +372,10 @@ int parser_set_language(Parser *self, PyObject *arg, void *Py_UNUSED(payload)) { + + int parser_init(Parser *self, PyObject *args, PyObject *kwargs) { + ModuleState *state = GET_MODULE_STATE(self); +- PyObject *language = NULL, *included_ranges = NULL, *timeout_micros = NULL, *logger = NULL; +- char *keywords[] = {"language", "included_ranges", "timeout_micros", "logger", NULL}; +- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O!$OOO:__init__", keywords, +- state->language_type, &language, &included_ranges, +- &timeout_micros, &logger)) { ++ PyObject *language = NULL, *included_ranges = NULL, *logger = NULL; ++ char *keywords[] = {"language", "included_ranges", "logger", NULL}; ++ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O!$OO:__init__", keywords, ++ state->language_type, &language, &included_ranges, &logger)) { + return -1; + } + +@@ -411,9 +385,6 @@ int parser_init(Parser *self, PyObject *args, PyObject *kwargs) { + if (SET_ATTRIBUTE_ERROR(included_ranges)) { + return -1; + } +- if (SET_ATTRIBUTE_ERROR(timeout_micros)) { +- return -1; +- } + if (SET_ATTRIBUTE_ERROR(logger)) { + return -1; + } +@@ -469,8 +440,6 @@ static PyGetSetDef parser_accessors[] = { + PyDoc_STR("The language that will be used for parsing."), NULL}, + {"included_ranges", (getter)parser_get_included_ranges, (setter)parser_set_included_ranges, + PyDoc_STR("The ranges of text that the parser will include when parsing."), NULL}, +- {"timeout_micros", (getter)parser_get_timeout_micros, (setter)parser_set_timeout_micros, +- PyDoc_STR("The duration in microseconds that parsing is allowed to take."), NULL}, + {"logger", (getter)parser_get_logger, (setter)parser_set_logger, + PyDoc_STR("The logger that the parser should use during parsing."), NULL}, + {NULL}, +--- a/tree_sitter/binding/query_cursor.c ++++ b/tree_sitter/binding/query_cursor.c +@@ -1,7 +1,5 @@ + #include "types.h" + +-#include +- + PyObject *node_new_internal(ModuleState *state, TSNode node, PyObject *tree); + + bool query_satisfies_predicates(Query *query, TSQueryMatch match, Tree *tree, PyObject *callable); +@@ -25,16 +23,14 @@ int query_cursor_init(QueryCursor *self, PyObject *args, PyObject *kwargs) { + ModuleState *state = GET_MODULE_STATE(self); + PyObject *query = NULL; + uint32_t match_limit = UINT32_MAX; +- uint64_t timeout_micros = 0; +- char *keywords[] = {"query", "match_limit", "timeout_micros", NULL}; +- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!|$II:__init__", keywords, state->query_type, +- &query, &match_limit, &timeout_micros)) { ++ char *keywords[] = {"query", "match_limit", NULL}; ++ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!|$I:__init__", keywords, state->query_type, ++ &query, &match_limit)) { + return -1; + } + + self->query = Py_NewRef(query); + ts_query_cursor_set_match_limit(self->cursor, match_limit); +- ts_query_cursor_set_timeout_micros(self->cursor, timeout_micros); + + return 0; + } +@@ -237,32 +233,7 @@ int query_cursor_set_match_limit(QueryCursor *self, PyObject *arg, void *Py_UNUS + return -1; + } + +- ts_query_cursor_set_timeout_micros(self->cursor, PyLong_AsSize_t(arg)); +- return 0; +-} +- +-PyObject *query_cursor_get_timeout_micros(QueryCursor *self, void *Py_UNUSED(payload)) { +- if (DEPRECATE("Use the progress_callback in matches() or captures()") < 0) { +- return NULL; +- } +- return PyLong_FromUnsignedLong(ts_query_cursor_timeout_micros(self->cursor)); +-} +- +-int query_cursor_set_timeout_micros(QueryCursor *self, PyObject *arg, void *Py_UNUSED(payload)) { +- if (DEPRECATE("Use the progress_callback in matches() or captures()") < 0) { +- return -1; +- } +- if (arg == NULL || arg == Py_None) { +- ts_query_cursor_set_timeout_micros(self->cursor, 0); +- return 0; +- } +- if (!PyLong_Check(arg)) { +- PyErr_Format(PyExc_TypeError, "'timeout_micros' must be assigned an int, not %s", +- arg->ob_type->tp_name); +- return -1; +- } +- +- ts_query_cursor_set_timeout_micros(self->cursor, PyLong_AsSize_t(arg)); ++ ts_query_cursor_set_match_limit(self->cursor, PyLong_AsSize_t(arg)); + return 0; + } + +@@ -330,11 +301,6 @@ static PyMethodDef query_cursor_methods[] = { + }; + + static PyGetSetDef query_cursor_accessors[] = { +- {"timeout_micros", (getter)query_cursor_get_timeout_micros, +- (setter)query_cursor_set_timeout_micros, +- PyDoc_STR("The maximum duration in microseconds that query " +- "execution should be allowed to take before halting."), +- NULL}, + {"match_limit", (getter)query_cursor_get_match_limit, (setter)query_cursor_set_match_limit, + PyDoc_STR("The maximum number of in-progress matches."), NULL}, + {"did_exceed_match_limit", (getter)query_cursor_get_did_exceed_match_limit, NULL, +-- +2.54.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.25.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.25.2-r1.ebuild new file mode 100644 index 00000000000..412ba182df7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.25.2-r1.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..14} ) + +inherit distutils-r1 + +DESCRIPTION="Python bindings to the Tree-sitter parsing library" +HOMEPAGE=" + https://github.com/tree-sitter/py-tree-sitter/ + https://pypi.org/project/tree-sitter/ +" +SRC_URI=" + https://github.com/tree-sitter/py-tree-sitter/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" +S=${WORKDIR}/py-${P} + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" + +# setuptools is needed for distutils import +DEPEND=" + >=dev-libs/tree-sitter-0.25 + pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "trove-classifiers" - version = "${PV}" - description = "Canonical source for classifiers on PyPI (pypi.org)." - - [project.scripts] - trove-classifiers = "trove_classifiers.__main__:cli" - EOF -} - -python_test() { - epytest - "${EPYTHON}" -m tests.lib || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2025.12.1.14.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2025.12.1.14.ebuild deleted file mode 100644 index 2301e315624..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2025.12.1.14.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 2022-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYPI_VERIFY_REPO=https://github.com/pypa/trove-classifiers -PYTHON_COMPAT=( pypy3_11 python3_{11..14} python3_{13,14}t ) - -inherit distutils-r1 pypi - -DESCRIPTION="Canonical source for classifiers on PyPI (pypi.org)" -HOMEPAGE=" - https://github.com/pypa/trove-classifiers/ - https://pypi.org/project/trove-classifiers/ -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -src_configure() { - grep -q 'build-backend = "setuptools' pyproject.toml || - die "Upstream changed build-backend, recheck" - # write a custom pyproject.toml to ease hatchling bootstrap - cat > pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "trove-classifiers" - version = "${PV}" - description = "Canonical source for classifiers on PyPI (pypi.org)." - - [project.scripts] - trove-classifiers = "trove_classifiers.__main__:cli" - EOF -} - -python_test() { - epytest - "${EPYTHON}" -m tests.lib || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.1.12.15.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.4.28.13.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.1.12.15.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.4.28.13.ebuild diff --git a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.20.19.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.20.19.ebuild new file mode 100644 index 00000000000..4cc695305bf --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.20.19.ebuild @@ -0,0 +1,47 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYPI_VERIFY_REPO=https://github.com/pypa/trove-classifiers +PYTHON_COMPAT=( pypy3_11 python3_{11..15} python3_{13..15}t ) + +inherit distutils-r1 pypi + +DESCRIPTION="Canonical source for classifiers on PyPI (pypi.org)" +HOMEPAGE=" + https://github.com/pypa/trove-classifiers/ + https://pypi.org/project/trove-classifiers/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +src_configure() { + grep -q 'build-backend = "setuptools' pyproject.toml || + die "Upstream changed build-backend, recheck" + # write a custom pyproject.toml to ease hatchling bootstrap + cat > pyproject.toml <<-EOF || die + [build-system] + requires = ["flit_core >=3.2,<4"] + build-backend = "flit_core.buildapi" + + [project] + name = "trove-classifiers" + version = "${PV}" + description = "Canonical source for classifiers on PyPI (pypi.org)." + + [project.scripts] + trove-classifiers = "trove_classifiers.__main__:cli" + EOF +} + +python_test() { + epytest + "${EPYTHON}" -m tests.lib || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.22.10.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.22.10.ebuild new file mode 100644 index 00000000000..4cc695305bf --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.22.10.ebuild @@ -0,0 +1,47 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYPI_VERIFY_REPO=https://github.com/pypa/trove-classifiers +PYTHON_COMPAT=( pypy3_11 python3_{11..15} python3_{13..15}t ) + +inherit distutils-r1 pypi + +DESCRIPTION="Canonical source for classifiers on PyPI (pypi.org)" +HOMEPAGE=" + https://github.com/pypa/trove-classifiers/ + https://pypi.org/project/trove-classifiers/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +src_configure() { + grep -q 'build-backend = "setuptools' pyproject.toml || + die "Upstream changed build-backend, recheck" + # write a custom pyproject.toml to ease hatchling bootstrap + cat > pyproject.toml <<-EOF || die + [build-system] + requires = ["flit_core >=3.2,<4"] + build-backend = "flit_core.buildapi" + + [project] + name = "trove-classifiers" + version = "${PV}" + description = "Canonical source for classifiers on PyPI (pypi.org)." + + [project.scripts] + trove-classifiers = "trove_classifiers.__main__:cli" + EOF +} + +python_test() { + epytest + "${EPYTHON}" -m tests.lib || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.7.17.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.7.17.ebuild new file mode 100644 index 00000000000..4cc695305bf --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.7.17.ebuild @@ -0,0 +1,47 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYPI_VERIFY_REPO=https://github.com/pypa/trove-classifiers +PYTHON_COMPAT=( pypy3_11 python3_{11..15} python3_{13..15}t ) + +inherit distutils-r1 pypi + +DESCRIPTION="Canonical source for classifiers on PyPI (pypi.org)" +HOMEPAGE=" + https://github.com/pypa/trove-classifiers/ + https://pypi.org/project/trove-classifiers/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +src_configure() { + grep -q 'build-backend = "setuptools' pyproject.toml || + die "Upstream changed build-backend, recheck" + # write a custom pyproject.toml to ease hatchling bootstrap + cat > pyproject.toml <<-EOF || die + [build-system] + requires = ["flit_core >=3.2,<4"] + build-backend = "flit_core.buildapi" + + [project] + name = "trove-classifiers" + version = "${PV}" + description = "Canonical source for classifiers on PyPI (pypi.org)." + + [project.scripts] + trove-classifiers = "trove_classifiers.__main__:cli" + EOF +} + +python_test() { + epytest + "${EPYTHON}" -m tests.lib || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/truststore/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/truststore/Manifest index 6edfde706f9..6df038d13ef 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/truststore/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/truststore/Manifest @@ -1,3 +1 @@ -DIST truststore-0.10.1.gh.tar.gz 29120 BLAKE2B 2efb72b04f3e6fd5365d0d4f8fda12fcaa6fd2008cb17fdc76a679b4bff965040d30465cf78dc0a2cec2e02430100b5e6cc1f4ec4102326805a6d9bd52c38b10 SHA512 8a1c1269d44c0c33444c67d4302484eddcd3223b3e792b133efcf547ed1292cdca0ebc15447f68e7078928ea01d5c2108692dffb703d6bbdad0b9f1c23eeebe9 -DIST truststore-0.10.3.gh.tar.gz 29678 BLAKE2B b7731c471d749c2e685a84964d64afda93161d55fe74316da465ded4dabba01656b4e51e95b41cd0ce9e2745472f2835c5b2ad2cd4e393fa3891ee83bba54fa3 SHA512 64db26581aab8a010382f99b7609b46f4b6508b89430c75398d5f7c3f07b8bf666b12d7f82ff407aa163fbd614eaf309a00c8aac55eae0f7c031a4f66c9822de DIST truststore-0.10.4.gh.tar.gz 30349 BLAKE2B 0fe52c60dcd627c06eafae4a40946b14e81e2cbaf3a3c5c65b75a17c4a749688448813f353fce1f1836c30810552102402e44539d0ed5c4223c22458b7fe1f0a SHA512 b3cd9ca84ad2f82b8911ded4053686b0fc128d8bfee4bc217dc5e7df6294caf888fccfc1e8b87cf76f24638806ddc1e0b5cea4c37bc72c075c5078f4e85bef13 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/truststore/truststore-0.10.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/truststore/truststore-0.10.1.ebuild deleted file mode 100644 index 9fdb43e5de9..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/truststore/truststore-0.10.1.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 2023-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) - -inherit distutils-r1 - -DESCRIPTION="Verify certificates using native system trust stores" -HOMEPAGE=" - https://github.com/sethmlarson/truststore/ - https://pypi.org/project/truststore/ -" -SRC_URI=" - https://github.com/sethmlarson/truststore/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" -# The vast majority of tests require Internet access. -PROPERTIES="test_network" -RESTRICT="test" - -BDEPEND=" - test? ( - dev-python/aiohttp[${PYTHON_USEDEP}] - dev-python/httpx[${PYTHON_USEDEP}] - dev-python/pyopenssl[${PYTHON_USEDEP}] - dev-python/requests[${PYTHON_USEDEP}] - dev-python/trustme[${PYTHON_USEDEP}] - dev-python/urllib3[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=( pytest-{asyncio,httpserver,rerunfailures} ) -distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/truststore/truststore-0.10.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/truststore/truststore-0.10.3.ebuild deleted file mode 100644 index c7fedfd0565..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/truststore/truststore-0.10.3.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 2023-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) - -inherit distutils-r1 - -DESCRIPTION="Verify certificates using native system trust stores" -HOMEPAGE=" - https://github.com/sethmlarson/truststore/ - https://pypi.org/project/truststore/ -" -SRC_URI=" - https://github.com/sethmlarson/truststore/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" -# The vast majority of tests require Internet access. -PROPERTIES="test_network" -RESTRICT="test" - -BDEPEND=" - test? ( - dev-python/aiohttp[${PYTHON_USEDEP}] - dev-python/httpx[${PYTHON_USEDEP}] - dev-python/pyopenssl[${PYTHON_USEDEP}] - dev-python/requests[${PYTHON_USEDEP}] - dev-python/trustme[${PYTHON_USEDEP}] - dev-python/urllib3[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=( pytest-{asyncio,httpserver,rerunfailures} ) -distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/Manifest index fef32c7a6d8..dc71a97ad41 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/Manifest @@ -1,2 +1,2 @@ -DIST typing_extensions-4.14.1.tar.gz 107673 BLAKE2B 02f48033a36b66d541f49c3c84a65f6a47bf63a09d23bece262182cb3d9a527dd2eef17ec9c74b33b0cacbd52472eebfb4243a31575ef6c0c2846ae7499fca7c SHA512 9db9e56d321e707562b07d633c1c4bcfe2505947d9d40a3540273e1337619e8573ee014708686fba45d14fac7841ed2cddbe53288d8283a8fcede62a5afe5eee DIST typing_extensions-4.15.0.tar.gz 109391 BLAKE2B 6a34bd7862531d3471741749eb11562b19f72fdb120c85348b28452ba0de4146c3a553626640b1f38437b7d6478a8c74c59cf4498cfa435d8e94113500e7a692 SHA512 7ad50638ddbb575a929ffde20ac7b421970abacb311ce1b10b4bbc3b331318784863a8f67b44531327a69be08f5ab7ade65cbd1b5cd35af69fde491d800c8074 +DIST typing_extensions-4.15.0.tar.gz.provenance 9518 BLAKE2B dae04e788e20ad350a246c1bee1ef11200dec0ba650a5fd9a6fa160083b906cd19cf2330b3aa1dc3d5c8f0bed9627599bb6854b80a932e60adf2ee89391e4208 SHA512 1332e31df66302bf0e0c2e2d3171fd4b84d276d94348e2a3de215390b4d96fcd8794e05dc7d6327e76b22889739f435cc3eef270101acb8042d43cd34613974b diff --git a/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/files/typing-extensions-4.15.0-py314-test.patch b/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/files/typing-extensions-4.15.0-py314-test.patch new file mode 100644 index 00000000000..a17dc961576 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/files/typing-extensions-4.15.0-py314-test.patch @@ -0,0 +1,28 @@ +From aa81d37f98c3322d535a7d0c8dd093870f0fb5ef Mon Sep 17 00:00:00 2001 +From: Jelle Zijlstra +Date: Thu, 18 Sep 2025 21:03:16 -0700 +Subject: [PATCH] fix test on 3.14 + +--- + src/test_typing_extensions.py | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/test_typing_extensions.py b/src/test_typing_extensions.py +index 27f4059c..f07e1eb0 100644 +--- a/src/test_typing_extensions.py ++++ b/src/test_typing_extensions.py +@@ -4508,8 +4508,12 @@ def _make_td(future, class_name, annos, base, extra_names=None): + child = _make_td( + child_future, "Child", {"child": "int"}, "Base", {"Base": base} + ) +- base_anno = typing.ForwardRef("int", module="builtins") if base_future else int +- child_anno = typing.ForwardRef("int", module="builtins") if child_future else int ++ if sys.version_info >= (3, 14): ++ base_anno = typing.ForwardRef("int", module="builtins", owner=base) if base_future else int ++ child_anno = typing.ForwardRef("int", module="builtins", owner=child) if child_future else int ++ else: ++ base_anno = typing.ForwardRef("int", module="builtins") if base_future else int ++ child_anno = typing.ForwardRef("int", module="builtins") if child_future else int + self.assertEqual(base.__annotations__, {'base': base_anno}) + self.assertEqual( + child.__annotations__, {'child': child_anno, 'base': base_anno} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/typing-extensions-4.14.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/typing-extensions-4.14.1.ebuild deleted file mode 100644 index e8082ec6907..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/typing-extensions-4.14.1.ebuild +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="Backported and Experimental Type Hints for Python 3.7+" -HOMEPAGE=" - https://pypi.org/project/typing-extensions/ - https://github.com/python/typing_extensions/ -" - -LICENSE="PSF-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="test" -RESTRICT="!test? ( test )" - -BDEPEND=" - >=dev-python/flit-core-3.11[${PYTHON_USEDEP}] - test? ( - dev-python/test[${PYTHON_USEDEP}] - ) -" - -distutils_enable_tests unittest - -python_test() { - cd src || die - eunittest -} 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 e8082ec6907..0e5953aeef8 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 @@ -1,10 +1,11 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=flit -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) +PYPI_VERIFY_REPO=https://github.com/python/typing_extensions +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) inherit distutils-r1 pypi @@ -27,9 +28,40 @@ BDEPEND=" ) " -distutils_enable_tests unittest +# TODO: switch back to unittests once we don't need deselects +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +PATCHES=( + # https://github.com/python/typing_extensions/pull/683 + "${FILESDIR}/${P}-py314-test.patch" +) python_test() { + local EPYTEST_DESELECT=() + case ${EPYTHON} in + pypy3.11) + EPYTEST_DESELECT+=( + src/test_typing_extensions.py::NamedTupleTests::test_same_as_typing_NamedTuple + ) + ;; + python3.15*) + EPYTEST_DESELECT+=( + src/test_typing_extensions.py::AllTests::test_alias_names_still_exist + src/test_typing_extensions.py::AllTests::test_all_names_in___all__ + src/test_typing_extensions.py::AllTests::test_typing_extensions_includes_standard + src/test_typing_extensions.py::GetTypeHintTests::test_annotation_and_optional_default + src/test_typing_extensions.py::NoExtraItemsTests::test_constructor + src/test_typing_extensions.py::NoExtraItemsTests::test_repr + src/test_typing_extensions.py::TestSentinels::test_sentinel_deprecated + src/test_typing_extensions.py::TestSentinels::test_sentinel_deprecated_explicit_repr + src/test_typing_extensions.py::TypeAliasTypeTests::test_cannot_set_attributes + src/test_typing_extensions.py::TypeVarTupleTests::test_repr + src/test_typing_extensions.py::UnpackTests::test_repr + ) + ;; + esac + cd src || die - eunittest + epytest } diff --git a/sdk_container/src/third_party/portage-stable/dev-python/uc-micro-py/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/uc-micro-py/Manifest index fd280630a44..eba5501dc36 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/uc-micro-py/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/uc-micro-py/Manifest @@ -1,3 +1,2 @@ -DIST uc-micro-py-1.0.3.tar.gz 6043 BLAKE2B 9d5b4d111d83b2385bb5abcce962d3c8b4a2b4a6e731dfde56aa1e88d02af5c177fbb4f59f475e87f8d863933132fe34b183754f74839acb7a6d1da6aeb2d340 SHA512 6f69c84718e16f5bdac08787f728801bcb95591d984f58044e3914b08a5a9c41885d1106ad8f53afd82940b18e638ed285ccf57d1725582a0c160d7b1e0f265f DIST uc_micro_py-2.0.0.tar.gz 6611 BLAKE2B d00fb53eb42ce0825f145b53f1522df661547850ecdef9c837b61005c34148f0716bf5231690dd48f55068fff596a96013a40ef141924bef249235ad6ec7bf9e SHA512 cf1b6aca4e6cd01704842414ec2e9fac1ae21a5e5242427f4e3ac836012cd2d560a44796b9c67298eb1c9a9c56f6361f040ace3530cba3e466f0f118772e9866 DIST uc_micro_py-2.0.0.tar.gz.provenance 9430 BLAKE2B 94f731b44589d0da6dcd6bcbb4e936c11f7ab2b0bd4fe036e839eebe3a5a58ef4b4a25014381ff316087de7ff7ff5b0fe847dfed144d2d39e91381896a088147 SHA512 574dc2c66ced25eccbfefe77d66dd5c18a97ee4dafb7cca02460f758f2156eb90d283afe7337b4ee15bc9d912172da27ea1ca913e8c9062db3062d89f95c95c3 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/uc-micro-py/uc-micro-py-1.0.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/uc-micro-py/uc-micro-py-1.0.3.ebuild deleted file mode 100644 index f9312331b66..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/uc-micro-py/uc-micro-py-1.0.3.ebuild +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright 2022-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYPI_NO_NORMALIZE=1 -PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) - -inherit distutils-r1 pypi - -DESCRIPTION="Micro subset of unicode data files for linkify-it-py projects" -HOMEPAGE=" - https://github.com/tsutsu3/uc.micro-py/ - https://pypi.org/project/uc-micro-py/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - -distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/uc-micro-py/uc-micro-py-2.0.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/uc-micro-py/uc-micro-py-2.0.0.ebuild index d16e3c5226e..9cbe5e4baae 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/uc-micro-py/uc-micro-py-2.0.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/uc-micro-py/uc-micro-py-2.0.0.ebuild @@ -17,7 +17,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" EPYTEST_PLUGINS=() distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/urllib3/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/urllib3/Manifest index 2c4a465013f..b209d1bf7eb 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/urllib3/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/urllib3/Manifest @@ -1,3 +1,3 @@ DIST hypercorn-d1719f8c1570cbd8e6a3719ffdb14a4d72880abb.gh.tar.gz 156216 BLAKE2B fcb5f49653401e6e4079e1c770d3cd407602d4d6764437b735bd4ec04191dec59cdc930822fa2aff726ee25cddd0f71fd457dedf31026bff1da121d93af8b768 SHA512 62d6787d88a2e716f0ac04fc49f6cdc586e473a660ee754ff66961922ae78bcc75d1f78b091e78557dd60f006e8e480114738c7b4ff71beac804e4fc9603240b -DIST urllib3-2.6.3.tar.gz 435556 BLAKE2B 9e8cd91390da4ba0b71aa357735c25cd59f1509293a71d5c382a1e9b973c10158f0774b4da9e9dcf13932bdaeddff07ea67242bb92a981855e5d7afec153d629 SHA512 663c83a78908dac9bb05c7ac833183c2fdc2969d0662d21dd8751ba13c51880ee264f7804760f33ebdabfd1c1f04a5d44171a420396de6ae582f9789801b141c -DIST urllib3-2.6.3.tar.gz.provenance 9346 BLAKE2B 2b2cd838678933a5faa513e6974627f073826107d293e09354508f651c536bb63fe065406e1d8b845b933ee5db97b9e5a50ddb0417c52accab6e5367451bb507 SHA512 bb734fa663a6ff50bda97d2956825ef8eae3b0959f045f15f8b816881677eaa17eea8d832926fc664ee9398c33731d3917814617b32dfb7f40776cb6e69cd408 +DIST urllib3-2.7.0.tar.gz 433602 BLAKE2B 2a74917dbcca8a30cd0e202c6c4d1b2cb096b6466b4c7c4d7a11d74205f971cea41aac5628ea8d69cfd99f1a0ac1aff4221119cddcf53449e8271bc4d50e6abf SHA512 6f75e5873f18301de37c0d7f17c726b21c9928f2fe9ec58d843f1172b80be6eb05117bdf7af27dd7eb1ab0175a94e0f49cde01d8d8919f61de8710e163fabc03 +DIST urllib3-2.7.0.tar.gz.provenance 9499 BLAKE2B 86eb7207644c7f94a76f8818927d4e2301648c4bde0acc029f95ddf40ae3b777ad6149ca8fbfa51de26493c6c3987d99ddfb90df101c4e5eb1d3c85ddf101134 SHA512 25447cda48b206b5a351c9295771111bc0e61d53fb878a3735ac1d7c6a333df863b396b215a9bbc3a7821b368738aa3f5bbac7dbc67e617c354ff977e3432743 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/urllib3/urllib3-2.6.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/urllib3/urllib3-2.6.3.ebuild deleted file mode 100644 index 95ded3d81f9..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/urllib3/urllib3-2.6.3.ebuild +++ /dev/null @@ -1,107 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# please keep this ebuild at EAPI 8 -- sys-apps/portage dep -EAPI=8 - -DISTUTILS_USE_PEP517=hatchling -PYPI_VERIFY_REPO=https://github.com/urllib3/urllib3 -PYTHON_TESTED=( python3_{11..14} pypy3_11 ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) -PYTHON_REQ_USE="ssl(+)" - -inherit distutils-r1 pypi - -# The package has a test dependency on their own hypercorn fork. -HYPERCORN_COMMIT=d1719f8c1570cbd8e6a3719ffdb14a4d72880abb -DESCRIPTION="HTTP library with thread-safe connection pooling, file post, and more" -HOMEPAGE=" - https://github.com/urllib3/urllib3/ - https://pypi.org/project/urllib3/ -" -SRC_URI+=" - test? ( - https://github.com/urllib3/hypercorn/archive/${HYPERCORN_COMMIT}.tar.gz - -> hypercorn-${HYPERCORN_COMMIT}.gh.tar.gz - ) -" - -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" -IUSE="brotli http2 test zstd" -RESTRICT="!test? ( test )" - -# [secure] extra is deprecated and slated for removal, we don't need it: -# https://github.com/urllib3/urllib3/issues/2680 -RDEPEND=" - >=dev-python/pysocks-1.5.8[${PYTHON_USEDEP}] - =dev-python/brotlicffi-1.2.0.0[${PYTHON_USEDEP}] ) - http2? ( - =dev-python/h2-4[${PYTHON_USEDEP}] - ) - zstd? ( - $(python_gen_cond_dep ' - >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}] - ' 3.{11..13}) - ) -" -BDEPEND=" - dev-python/hatch-vcs[${PYTHON_USEDEP}] - test? ( - $(python_gen_cond_dep " - ${RDEPEND} - dev-python/brotlicffi[\${PYTHON_USEDEP}] - dev-python/freezegun[\${PYTHON_USEDEP}] - dev-python/h2[\${PYTHON_USEDEP}] - dev-python/httpx[\${PYTHON_USEDEP}] - dev-python/pytest[\${PYTHON_USEDEP}] - dev-python/pytest-rerunfailures[\${PYTHON_USEDEP}] - dev-python/pytest-timeout[\${PYTHON_USEDEP}] - dev-python/pytest-xdist[\${PYTHON_USEDEP}] - dev-python/quart[\${PYTHON_USEDEP}] - dev-python/quart-trio[\${PYTHON_USEDEP}] - dev-python/trio[\${PYTHON_USEDEP}] - >=dev-python/tornado-4.2.1[\${PYTHON_USEDEP}] - >=dev-python/trustme-0.5.3[\${PYTHON_USEDEP}] - " "${PYTHON_TESTED[@]}") - $(python_gen_cond_dep ' - >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}] - ' 3.{11..13}) - ) -" - -src_prepare() { - # upstream considers 0.5 s to be "long" for a timeout - # we get tons of test failures on *fast* systems because of that - sed -i -e '/LONG_TIMEOUT/s:0.5:5:' test/__init__.py || die - distutils-r1_src_prepare -} - -python_test() { - local -x PYTHONPATH=${WORKDIR}/hypercorn-${HYPERCORN_COMMIT}/src - local -x CI=1 - if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then - einfo "Skipping tests on ${EPYTHON}" - return - fi - - local EPYTEST_DESELECT=( - # TODO: timeouts - test/contrib/test_pyopenssl.py::TestSocketClosing::test_timeout_errors_cause_retries - test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_timeout_errors_cause_retries - # TODO - test/contrib/test_pyopenssl.py::TestSocketClosing::test_socket_shutdown_stops_recv - test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_socket_shutdown_stops_recv - # hangs randomly - test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_{2,3}::test_http2_probe_blocked_per_thread - test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_{2,3}::test_http2_probe_blocked_per_thread - ) - - local EPYTEST_PLUGINS=( pytest-timeout ) - local EPYTEST_RERUNS=10 - local EPYTEST_XDIST=1 - epytest --reruns-delay=2 -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/urllib3/urllib3-2.7.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/urllib3/urllib3-2.7.0.ebuild new file mode 100644 index 00000000000..6bca93c81e4 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/urllib3/urllib3-2.7.0.ebuild @@ -0,0 +1,116 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYPI_VERIFY_REPO=https://github.com/urllib3/urllib3 +PYTHON_TESTED=( python3_{11..14} pypy3_11 ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_15 ) +PYTHON_REQ_USE="ssl(+)" + +inherit distutils-r1 pypi + +# The package has a test dependency on their own hypercorn fork. +HYPERCORN_COMMIT=d1719f8c1570cbd8e6a3719ffdb14a4d72880abb +DESCRIPTION="HTTP library with thread-safe connection pooling, file post, and more" +HOMEPAGE=" + https://github.com/urllib3/urllib3/ + https://pypi.org/project/urllib3/ +" +SRC_URI+=" + test? ( + https://github.com/urllib3/hypercorn/archive/${HYPERCORN_COMMIT}.tar.gz + -> hypercorn-${HYPERCORN_COMMIT}.gh.tar.gz + ) +" + +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" +IUSE="brotli http2 test zstd" +RESTRICT="!test? ( test )" + +# [secure] extra is deprecated and slated for removal, we don't need it: +# https://github.com/urllib3/urllib3/issues/2680 +RDEPEND=" + >=dev-python/pysocks-1.5.8[${PYTHON_USEDEP}] + =dev-python/brotlicffi-1.2.0.0[${PYTHON_USEDEP}] ) + http2? ( + =dev-python/h2-4[${PYTHON_USEDEP}] + ) + zstd? ( + $(python_gen_cond_dep ' + >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}] + ' 3.{11..13}) + ) +" +BDEPEND=" + dev-python/hatch-vcs[${PYTHON_USEDEP}] + test? ( + $(python_gen_cond_dep " + ${RDEPEND} + dev-python/brotlicffi[\${PYTHON_USEDEP}] + dev-python/freezegun[\${PYTHON_USEDEP}] + dev-python/h2[\${PYTHON_USEDEP}] + dev-python/httpx[\${PYTHON_USEDEP}] + dev-python/pytest[\${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[\${PYTHON_USEDEP}] + dev-python/pytest-timeout[\${PYTHON_USEDEP}] + dev-python/pytest-xdist[\${PYTHON_USEDEP}] + dev-python/quart[\${PYTHON_USEDEP}] + dev-python/quart-trio[\${PYTHON_USEDEP}] + dev-python/trio[\${PYTHON_USEDEP}] + >=dev-python/tornado-4.2.1[\${PYTHON_USEDEP}] + >=dev-python/trustme-0.5.3[\${PYTHON_USEDEP}] + " "${PYTHON_TESTED[@]}") + $(python_gen_cond_dep ' + >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}] + ' 3.{11..13}) + ) +" + +src_prepare() { + # upstream considers 0.5 s to be "long" for a timeout + # we get tons of test failures on *fast* systems because of that + sed -i -e '/LONG_TIMEOUT/s:0.5:5:' test/__init__.py || die + distutils-r1_src_prepare +} + +python_test() { + local -x PYTHONPATH=${WORKDIR}/hypercorn-${HYPERCORN_COMMIT}/src + local -x CI=1 + if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then + einfo "Skipping tests on ${EPYTHON}" + return + fi + + local EPYTEST_DESELECT=( + # TODO: timeouts + test/contrib/test_pyopenssl.py::TestSocketClosing::test_timeout_errors_cause_retries + test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_timeout_errors_cause_retries + # TODO + test/contrib/test_pyopenssl.py::TestSocketClosing::test_socket_shutdown_stops_recv + test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_socket_shutdown_stops_recv + # hangs randomly + test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_{2,3}::test_http2_probe_blocked_per_thread + test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_{2,3}::test_http2_probe_blocked_per_thread + ) + case ${EPYTHON} in + pypy3.11) + EPYTEST_DESELECT+=( + # lots of random "coroutine not awaited" warnings + test/contrib/test_pyopenssl.py + test/with_dummyserver/test_https.py + ) + ;; + esac + + local EPYTEST_PLUGINS=( pytest-timeout ) + local EPYTEST_RERUNS=10 + local EPYTEST_XDIST=1 + epytest --reruns-delay=2 +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/Manifest new file mode 100644 index 00000000000..84ba562d90c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/Manifest @@ -0,0 +1,2 @@ +DIST vcs_versioning-1.1.1.tar.gz 97575 BLAKE2B c55952d68f021d6e7edf7ec7ba54a9a6e9716a0a220b035a5df5f33315f8a0a8b235a67139c52a1b53ba8dcd470d3c52cee11575f81f08b09d867dcf350416ac SHA512 e5bf9fa68eeb38c8d884f4bad6f93f1354854ad0ab04919d369ed1b40832c2ed117f4c9d9458ae5a8a71c84497f6d0ff0ca5b38881c7a3a057619b3da3cbbbbc +DIST vcs_versioning-1.1.1.tar.gz.provenance 9842 BLAKE2B 7c25bc61bc3f6644f82b03252f1fe9322ddd3e0aff8c473f54105f41b43951ae8b18fd6377d5dfa64b5c00f5ed17e32c3637fff03e0b7e4e8c27c796a0ff38bd SHA512 902b141380652204deadd5265c191dd86c154b6e5ee305148fdeee8d242a02ab129d59a0e1530422ba95b9d752d011fc6a4e8246931bd0558a6a0509778c0913 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/metadata.xml b/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/metadata.xml new file mode 100644 index 00000000000..6e90ce13129 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/metadata.xml @@ -0,0 +1,12 @@ + + + + + python@gentoo.org + + + + pypa/setuptools-scm + vcs-versioning + + diff --git a/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-1.1.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-1.1.1.ebuild new file mode 100644 index 00000000000..ff7260dd9dd --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-1.1.1.ebuild @@ -0,0 +1,39 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYPI_VERIFY_REPO=https://github.com/pypa/setuptools-scm +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Core VCS versioning functionality from setuptools-scm" +HOMEPAGE=" + https://github.com/pypa/setuptools-scm/ + https://pypi.org/project/vcs-versioning/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86" + +RDEPEND=" + >=dev-python/packaging-20[${PYTHON_USEDEP}] +" +BDEPEND=" + >=dev-python/packaging-20[${PYTHON_USEDEP}] + test? ( + >=dev-python/setuptools-scm-10[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +EPYTEST_DESELECT=( + # the usual nondescript gpg-agent failure + testing_vcs/test_git.py::test_git_getdate_signed_commit +) diff --git a/sdk_container/src/third_party/portage-stable/dev-python/wheel/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/wheel/Manifest index 57190424fb6..ae21fbc384f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/wheel/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/wheel/Manifest @@ -1,5 +1,2 @@ -DIST wheel-0.45.1.tar.gz 107545 BLAKE2B 13c8d60a2e39ded3d911c9e03915b01bda201f7e8cd6de456484ce6eeb2a990861a01f26e5d9f2ac4ca0ab2b6d0fea9db437d6f82cb39db9b1059c3c53202ec0 SHA512 df45f00e9eaeae2f27f813f31591590c961da2f6bff15bba6fb2a14d529c221f39b29894b8da408fe49cd4b760840a0e05c4baef377ccfacd9983c0bba83d6d8 -DIST wheel-0.46.2.tar.gz 60274 BLAKE2B f26a8d40f0fbe2da6bb8a406b79e5eca50de89309a16a8d0830a269e33340a78b624201400c211a69c991f470f14e99457bb63ec8db3bdf6b37c19d391545f34 SHA512 3337b53164ac1a7031e45708aba9cb259833d314d22564533c4af199ce12d8c89a4b22955ff0c0e9bcaa07bae78c81f08ff12c91d30b3c6be4d42dd9ccad1a31 -DIST wheel-0.46.2.tar.gz.provenance 9073 BLAKE2B 41f8c0d2a602ffab3d68bf57ddc18e4b4dd318beba4590037b2b7fa3811151e7b6fdbf8b8633462e47deba38a755fa8ce249c7d08abc98717f0a1f40eb6e3674 SHA512 b62349b72f682cd9667d0cec0732aab902db0659319850fa3882d3be4f5cbbae87a707f5371aef07fa35eb6f0a88558c439b2e0da4941466e3add9c19c47bf1b -DIST wheel-0.46.3.tar.gz 60605 BLAKE2B f896ffef160915d1a69bfa6dbd5a6cbefdd6b9e4f56867f15c6247d22ff0d6683171c51cf7e0f8808d8ffa536eb6540a1b2cd14ceba4a0e5cb9799d4261964ba SHA512 4bda170a085b00bead5bd5beb1cd865af3699a940774615c087b9e96c86a56a1f3992613df162bc055aebcc84bc0e13df310a38c6102cfc1d5d78e8af33d4e1a -DIST wheel-0.46.3.tar.gz.provenance 9316 BLAKE2B dc911d733141cf7f580e924665d08319f031175c96d4b65704484d153f7a24118ac612adcc33795cbfebd48e4a3fb9b59f7b3d04208b8fd27fa5c16e65819de5 SHA512 af6e542cf028921476106f8f7409f6012b3b7687f49fea45374096c428d114409e8494e8769820a3c2a71a2b94395669247ffce1bab25b6cd2f686dd70117e57 +DIST wheel-0.47.0.tar.gz 63854 BLAKE2B 1ff8414476e13bd39a921f007176365c7c38963249a1ee0bbc2e94174ac3280bbe23711f94f84f11958db886e6293f5afe77ef15310a488b6951b472a15d9957 SHA512 cf2010e36c031ba47f6302a233811e57f0187244b06cdeff5ae5d2fb6cc16dfba594facbb3f58f795ec308d71a8a0332d09e610bb8720f2c9e8942a914bf3bc4 +DIST wheel-0.47.0.tar.gz.provenance 9367 BLAKE2B a9047b77f0e8ebe89da557d9af1be2034785673eea4eb1089b80c2604528b52b0486b81624bf4978f9479adafdca3e405ce36ab97235e5449979e9a6c24921dc SHA512 50aaef2cd93d5013d34017ef4d4e0f125cac0405d89d60081e4e43d00971f14d64397f5c358056e146f52a9ffbeeff9dc80e391a94b9c87f5e1fa9aeb3b9f1f2 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/wheel/files/wheel-0.45.1-test.patch b/sdk_container/src/third_party/portage-stable/dev-python/wheel/files/wheel-0.45.1-test.patch deleted file mode 100644 index 49dba4e2e57..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/wheel/files/wheel-0.45.1-test.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 36877e99122e8df90d4aa41d414999857d6d852d Mon Sep 17 00:00:00 2001 -From: shenxianpeng -Date: Sun, 16 Mar 2025 01:35:32 +0800 -Subject: [PATCH] Fixed test failures (#651) - ---- - tests/test_bdist_wheel.py | 4 ++-- - tests/test_tagopt.py | 18 +++++++++--------- - tests/testdata/unicode.dist/setup.py | 2 +- - 3 files changed, 12 insertions(+), 12 deletions(-) - -diff --git a/tests/test_bdist_wheel.py b/tests/test_bdist_wheel.py -index fcb2dfc..21eddd0 100644 ---- a/tests/test_bdist_wheel.py -+++ b/tests/test_bdist_wheel.py -@@ -79,9 +79,9 @@ def test_no_scripts(wheel_paths): - - - def test_unicode_record(wheel_paths): -- path = next(path for path in wheel_paths if "unicode.dist" in path) -+ path = next(path for path in wheel_paths if "unicode_dist" in path) - with ZipFile(path) as zf: -- record = zf.read("unicode.dist-0.1.dist-info/RECORD") -+ record = zf.read("unicode_dist-0.1.dist-info/RECORD") - - assert "åäö_日本語.py".encode() in record - -diff --git a/tests/test_tagopt.py b/tests/test_tagopt.py -index 5335af4..5733e1a 100644 ---- a/tests/test_tagopt.py -+++ b/tests/test_tagopt.py -@@ -14,7 +14,7 @@ SETUP_PY = """\ - from setuptools import setup, Extension - - setup( -- name="Test", -+ name="test", - version="1.0", - author_email="author@example.com", - py_modules=["test"], -@@ -63,7 +63,7 @@ def test_default_tag(temp_pkg): - assert dist_dir.is_dir() - wheels = list(dist_dir.iterdir()) - assert len(wheels) == 1 -- assert wheels[0].name == f"Test-1.0-py{sys.version_info[0]}-none-any.whl" -+ assert wheels[0].name == f"test-1.0-py{sys.version_info[0]}-none-any.whl" - assert wheels[0].suffix == ".whl" - - -@@ -76,7 +76,7 @@ def test_build_number(temp_pkg): - assert dist_dir.is_dir() - wheels = list(dist_dir.iterdir()) - assert len(wheels) == 1 -- assert wheels[0].name == f"Test-1.0-1-py{sys.version_info[0]}-none-any.whl" -+ assert wheels[0].name == f"test-1.0-1-py{sys.version_info[0]}-none-any.whl" - assert wheels[0].suffix == ".whl" - - -@@ -89,7 +89,7 @@ def test_explicit_tag(temp_pkg): - assert dist_dir.is_dir() - wheels = list(dist_dir.iterdir()) - assert len(wheels) == 1 -- assert wheels[0].name.startswith("Test-1.0-py32-") -+ assert wheels[0].name.startswith("test-1.0-py32-") - assert wheels[0].suffix == ".whl" - - -@@ -101,7 +101,7 @@ def test_universal_tag(temp_pkg): - assert dist_dir.is_dir() - wheels = list(dist_dir.iterdir()) - assert len(wheels) == 1 -- assert wheels[0].name.startswith("Test-1.0-py2.py3-") -+ assert wheels[0].name.startswith("test-1.0-py2.py3-") - assert wheels[0].suffix == ".whl" - - -@@ -114,7 +114,7 @@ def test_universal_beats_explicit_tag(temp_pkg): - assert dist_dir.is_dir() - wheels = list(dist_dir.iterdir()) - assert len(wheels) == 1 -- assert wheels[0].name.startswith("Test-1.0-py2.py3-") -+ assert wheels[0].name.startswith("test-1.0-py2.py3-") - assert wheels[0].suffix == ".whl" - - -@@ -129,7 +129,7 @@ def test_universal_in_setup_cfg(temp_pkg): - assert dist_dir.is_dir() - wheels = list(dist_dir.iterdir()) - assert len(wheels) == 1 -- assert wheels[0].name.startswith("Test-1.0-py2.py3-") -+ assert wheels[0].name.startswith("test-1.0-py2.py3-") - assert wheels[0].suffix == ".whl" - - -@@ -144,7 +144,7 @@ def test_pythontag_in_setup_cfg(temp_pkg): - assert dist_dir.is_dir() - wheels = list(dist_dir.iterdir()) - assert len(wheels) == 1 -- assert wheels[0].name.startswith("Test-1.0-py32-") -+ assert wheels[0].name.startswith("test-1.0-py32-") - assert wheels[0].suffix == ".whl" - - -@@ -157,7 +157,7 @@ def test_legacy_wheel_section_in_setup_cfg(temp_pkg): - assert dist_dir.is_dir() - wheels = list(dist_dir.iterdir()) - assert len(wheels) == 1 -- assert wheels[0].name.startswith("Test-1.0-py2.py3-") -+ assert wheels[0].name.startswith("test-1.0-py2.py3-") - assert wheels[0].suffix == ".whl" - - -diff --git a/tests/testdata/unicode.dist/setup.py b/tests/testdata/unicode.dist/setup.py -index ec66d1e..46ef0a1 100644 ---- a/tests/testdata/unicode.dist/setup.py -+++ b/tests/testdata/unicode.dist/setup.py -@@ -3,7 +3,7 @@ from __future__ import annotations - from setuptools import setup - - setup( -- name="unicode.dist", -+ name="unicode_dist", - version="0.1", - description="A testing distribution \N{SNOWMAN}", - packages=["unicodedist"], diff --git a/sdk_container/src/third_party/portage-stable/dev-python/wheel/wheel-0.45.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/wheel/wheel-0.45.1.ebuild deleted file mode 100644 index 18f4815649a..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/wheel/wheel-0.45.1.ebuild +++ /dev/null @@ -1,64 +0,0 @@ -# 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="A built-package format for Python" -HOMEPAGE=" - https://github.com/pypa/wheel/ - https://pypi.org/project/wheel/ -" - -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" - -RDEPEND=" - dev-python/packaging[${PYTHON_USEDEP}] -" -BDEPEND=" - test? ( - dev-python/setuptools[${PYTHON_USEDEP}] - ) -" - -# xdist is slightly flaky here -EPYTEST_PLUGINS=( pytest-rerunfailures ) -EPYTEST_XDIST=1 -distutils_enable_tests pytest - -src_prepare() { - local PATCHES=( - # https://github.com/pypa/wheel/pull/651 - "${FILESDIR}/${P}-test.patch" - ) - - distutils-r1_src_prepare - - # unbundle packaging - rm -r src/wheel/vendored || die - find -name '*.py' -exec sed -i \ - -e 's:wheel\.vendored\.::' \ - -e 's:\.\+vendored\.::' {} + || die -} - -python_test() { - local EPYTEST_DESELECT=( - # fails if any setuptools plugin imported the module first - tests/test_bdist_wheel.py::test_deprecated_import - - # broken by setuptools license changes - # upstream removed the tests already - tests/test_bdist_wheel.py::test_licenses_default - tests/test_bdist_wheel.py::test_licenses_deprecated - tests/test_bdist_wheel.py::test_licenses_override - ) - - epytest --reruns=5 -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/wheel/wheel-0.46.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/wheel/wheel-0.46.2.ebuild deleted file mode 100644 index 0bca16de068..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/wheel/wheel-0.46.2.ebuild +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# please keep this ebuild at EAPI 8 -- sys-apps/portage dep -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYPI_VERIFY_REPO=https://github.com/pypa/wheel -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="A built-package format for Python" -HOMEPAGE=" - https://github.com/pypa/wheel/ - https://pypi.org/project/wheel/ -" - -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" - -RDEPEND=" - >=dev-python/packaging-26.0[${PYTHON_USEDEP}] -" -BDEPEND=" - test? ( - dev-python/setuptools[${PYTHON_USEDEP}] - ) -" - -# xdist is slightly flaky here -EPYTEST_PLUGINS=( pytest-rerunfailures ) -EPYTEST_RERUNS=5 -EPYTEST_XDIST=1 -distutils_enable_tests pytest - -python_test() { - local EPYTEST_DESELECT=( - # fails if any setuptools plugin imported the module first - tests/test_bdist_wheel.py::test_deprecated_import - ) - - epytest -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/wheel/wheel-0.46.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/wheel/wheel-0.46.3.ebuild deleted file mode 100644 index 675acf8caf5..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/wheel/wheel-0.46.3.ebuild +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# please keep this ebuild at EAPI 8 -- sys-apps/portage dep -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYPI_VERIFY_REPO=https://github.com/pypa/wheel -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) - -inherit distutils-r1 pypi - -DESCRIPTION="A built-package format for Python" -HOMEPAGE=" - https://github.com/pypa/wheel/ - https://pypi.org/project/wheel/ -" - -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" - -RDEPEND=" - >=dev-python/packaging-26.0[${PYTHON_USEDEP}] -" -BDEPEND=" - test? ( - dev-python/setuptools[${PYTHON_USEDEP}] - ) -" - -# xdist is slightly flaky here -EPYTEST_PLUGINS=( pytest-rerunfailures ) -EPYTEST_RERUNS=5 -EPYTEST_XDIST=1 -distutils_enable_tests pytest - -python_test() { - local EPYTEST_DESELECT=( - # fails if any setuptools plugin imported the module first - tests/test_bdist_wheel.py::test_deprecated_import - ) - - epytest -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/wheel/wheel-0.47.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/wheel/wheel-0.47.0.ebuild new file mode 100644 index 00000000000..334623a439b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/wheel/wheel-0.47.0.ebuild @@ -0,0 +1,41 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYPI_VERIFY_REPO=https://github.com/pypa/wheel +PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) + +inherit distutils-r1 pypi + +DESCRIPTION="A built-package format for Python" +HOMEPAGE=" + https://github.com/pypa/wheel/ + https://pypi.org/project/wheel/ +" + +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" + +RDEPEND=" + >=dev-python/packaging-26.0[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/setuptools[${PYTHON_USEDEP}] + ) +" + +# xdist is slightly flaky here +EPYTEST_PLUGINS=( pytest-rerunfailures ) +EPYTEST_RERUNS=5 +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +EPYTEST_DESELECT=( + # fails if any setuptools plugin imported the module first + tests/test_bdist_wheel.py::test_deprecated_import +) diff --git a/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-7.6.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-7.6.0-r1.ebuild new file mode 100644 index 00000000000..0d23cdf6c5a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-7.6.0-r1.ebuild @@ -0,0 +1,154 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( {15..22} ) +LLVM_OPTIONAL=1 +PYTHON_COMPAT=( python3_{11..14} ) + +inherit bash-completion-r1 linux-info llvm-r1 python-any-r1 toolchain-funcs + +DESCRIPTION="Tool for inspection and simple manipulation of eBPF programs and maps" +HOMEPAGE="https://github.com/libbpf/bpftool" + +if [[ ${PV} == *9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/libbpf/bpftool.git" + EGIT_SUBMODULES=(libbpf) +else + # bpftool typically vendors whatever libbpf is current at the time + # of a release, while libbpf publishes minor updates more frequently. + # Uncomment the following to bundle an updated libbpf e.g. in case of + # security or crasher bugs in libbpf and to keep the two synchronized. + # This allows us to quickly update the vendored lib with a revbump. + # Currently bpftool-x.y vendors libbpf-1.y; DO NOT mix different y versions. + # See the libbpf repo (https://github.com/libbpf/libbpf) for possible updates. + # LIBBPF_VERSION=1.5.0 + + if [[ ! -z ${LIBBPF_VERSION} ]] ; then + SRC_URI="https://github.com/libbpf/bpftool/archive/refs/tags/v${PV}.tar.gz -> bpftool-${PV}.tar.gz + https://github.com/libbpf/libbpf/archive/refs/tags/v${LIBBPF_VERSION}.tar.gz + -> libbpf-${LIBBPF_VERSION}.tar.gz" + else + # use tarball with bundled libbpf + SRC_URI="https://github.com/libbpf/bpftool/releases/download/v${PV}/bpftool-libbpf-v${PV}-sources.tar.gz" + S="${WORKDIR}/bpftool-libbpf-v${PV}-sources" + fi + + KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" +fi + +LICENSE="|| ( GPL-2 BSD-2 )" +SLOT="0" +IUSE="caps +clang llvm" +REQUIRED_USE="llvm? ( ${LLVM_REQUIRED_USE} )" + +RDEPEND=" + caps? ( sys-libs/libcap:= ) + llvm? ( $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}') ) + !llvm? ( sys-libs/binutils-libs:= ) + virtual/zlib:= + virtual/libelf:= +" +DEPEND=" + ${RDEPEND} + >=sys-kernel/linux-headers-5.8 +" +BDEPEND=" + ${PYTHON_DEPS} + app-arch/tar + dev-python/docutils + clang? ( $(llvm_gen_dep 'llvm-core/clang:${LLVM_SLOT}[llvm_targets_BPF]') ) + !clang? ( sys-devel/bpf-toolchain ) +" + +CONFIG_CHECK="~DEBUG_INFO_BTF" + +pkg_setup() { + linux-info_pkg_setup + python-any-r1_pkg_setup + use llvm && llvm-r1_pkg_setup +} + +src_prepare() { + default + + # prepare libbpf if necessary + if [[ ! -z ${LIBBPF_VERSION} ]] ; then + rm -rf libbpf || die + ln -s "${WORKDIR}/libbpf-${LIBBPF_VERSION}" libbpf || die + fi + + # remove -Werror from libbpf (bug 887981) + sed -i -e 's/\-Werror//g' libbpf/src/Makefile || die + + # remove -Werror from bpftool feature detection + sed -i -e 's/-Werror//g' src/Makefile.feature || die + + # remove hardcoded/unhelpful flags from bpftool + sed -e '/CFLAGS += -O2$/d' \ + -e '/CFLAGS += -W$/d' \ + -e '/CFLAGS += -Wextra$/d' \ + -i src/Makefile || die + + # always build bpf bits with std=gnu11 for kernel compatibility (bug 955156) + sed -i 's/-fno-stack-protector/& -std=gnu11/g' src/Makefile || die + + if ! use clang; then + # make people aware of what they are doing + ewarn "Using bpf-toolchain instead of clang due to USE=-clang." + ewarn "Please report any odd behaviours you observe, since using gcc for BPF" + ewarn "is still under development in both the Linux kernel and gcc itself." + + # prevent attribute warning about preserve_access_index + # since gcc does not support '#pragma clang attribute push': + # https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=675b4e2 + sed -i 's/std=gnu11/& -DBPF_NO_PRESERVE_ACCESS_INDEX/g' src/Makefile || die + + # remove bpf target & add assembly annotations to fix CO-RE feature detection + sed -i -e 's/-target bpf/-dA/' src/Makefile.feature || die + + # remove bpf target from skeleton build + sed -i -e 's/--target=bpf//g' src/Makefile || die + fi + + # Use rst2man or rst2man.py depending on which one exists (#930076) + type -P rst2man >/dev/null || sed -i -e 's/rst2man/rst2man.py/g' docs/Makefile || die +} + +bpftool_make() { + # which BPF compiler should we use? + if use clang; then + export CLANG="$(get_llvm_prefix -b)/bin/clang" + export LLVM_STRIP="$(get_llvm_prefix -b)/bin/llvm-strip" + else + # use bpf-toolchain + export CLANG="bpf-unknown-none-gcc" + export LLVM_STRIP="bpf-unknown-none-strip" + fi + + tc-export AR CC LD + + emake \ + ARCH="$(tc-arch-kernel)" \ + HOSTAR="$(tc-getBUILD_AR)" \ + HOSTCC="$(tc-getBUILD_CC)" \ + HOSTLD="$(tc-getBUILD_LD)" \ + bash_compdir="$(get_bashcompdir)" \ + feature-libcap="$(usex caps 1 0)" \ + feature-llvm="$(usex llvm 1 0)" \ + prefix="${EPREFIX}"/usr \ + V=1 \ + "$@" +} + +src_compile() { + bpftool_make -C src + bpftool_make -C docs +} + +src_install() { + bpftool_make DESTDIR="${D}" -C src install + bpftool_make mandir="${ED}"/usr/share/man -C docs install +} 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 deleted file mode 100644 index 26e7f97524d..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-7.6.0.ebuild +++ /dev/null @@ -1,153 +0,0 @@ -# Copyright 2021-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( {15..22} ) -LLVM_OPTIONAL=1 -PYTHON_COMPAT=( python3_{11..14} ) - -inherit bash-completion-r1 linux-info llvm-r1 python-any-r1 toolchain-funcs - -DESCRIPTION="Tool for inspection and simple manipulation of eBPF programs and maps" -HOMEPAGE="https://github.com/libbpf/bpftool" - -if [[ ${PV} == *9999* ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/libbpf/bpftool.git" - EGIT_SUBMODULES=(libbpf) -else - # bpftool typically vendors whatever libbpf is current at the time - # of a release, while libbpf publishes minor updates more frequently. - # Uncomment the following to bundle an updated libbpf e.g. in case of - # security or crasher bugs in libbpf and to keep the two synchronized. - # This allows us to quickly update the vendored lib with a revbump. - # Currently bpftool-x.y vendors libbpf-1.y; DO NOT mix different y versions. - # See the libbpf repo (https://github.com/libbpf/libbpf) for possible updates. - # LIBBPF_VERSION=1.5.0 - - if [[ ! -z ${LIBBPF_VERSION} ]] ; then - SRC_URI="https://github.com/libbpf/bpftool/archive/refs/tags/v${PV}.tar.gz -> bpftool-${PV}.tar.gz - https://github.com/libbpf/libbpf/archive/refs/tags/v${LIBBPF_VERSION}.tar.gz - -> libbpf-${LIBBPF_VERSION}.tar.gz" - else - # use tarball with bundled libbpf - SRC_URI="https://github.com/libbpf/bpftool/releases/download/v${PV}/bpftool-libbpf-v${PV}-sources.tar.gz" - S="${WORKDIR}/bpftool-libbpf-v${PV}-sources" - fi - - KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" -fi - -LICENSE="|| ( GPL-2 BSD-2 )" -SLOT="0" -IUSE="caps +clang llvm" -REQUIRED_USE="llvm? ( ${LLVM_REQUIRED_USE} )" - -RDEPEND=" - caps? ( sys-libs/libcap:= ) - llvm? ( $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}') ) - !llvm? ( sys-libs/binutils-libs:= ) - virtual/zlib:= - virtual/libelf:= -" -DEPEND=" - ${RDEPEND} - >=sys-kernel/linux-headers-5.8 -" -BDEPEND=" - ${PYTHON_DEPS} - app-arch/tar - dev-python/docutils - clang? ( $(llvm_gen_dep 'llvm-core/clang:${LLVM_SLOT}[llvm_targets_BPF]') ) - !clang? ( sys-devel/bpf-toolchain ) -" - -CONFIG_CHECK="~DEBUG_INFO_BTF" - -pkg_setup() { - python-any-r1_pkg_setup - use llvm && llvm-r1_pkg_setup -} - -src_prepare() { - default - - # prepare libbpf if necessary - if [[ ! -z ${LIBBPF_VERSION} ]] ; then - rm -rf libbpf || die - ln -s "${WORKDIR}/libbpf-${LIBBPF_VERSION}" libbpf || die - fi - - # remove -Werror from libbpf (bug 887981) - sed -i -e 's/\-Werror//g' libbpf/src/Makefile || die - - # remove -Werror from bpftool feature detection - sed -i -e 's/-Werror//g' src/Makefile.feature || die - - # remove hardcoded/unhelpful flags from bpftool - sed -e '/CFLAGS += -O2$/d' \ - -e '/CFLAGS += -W$/d' \ - -e '/CFLAGS += -Wextra$/d' \ - -i src/Makefile || die - - # always build bpf bits with std=gnu11 for kernel compatibility (bug 955156) - sed -i 's/-fno-stack-protector/& -std=gnu11/g' src/Makefile || die - - if ! use clang; then - # make people aware of what they are doing - ewarn "Using bpf-toolchain instead of clang due to USE=-clang." - ewarn "Please report any odd behaviours you observe, since using gcc for BPF" - ewarn "is still under development in both the Linux kernel and gcc itself." - - # prevent attribute warning about preserve_access_index - # since gcc does not support '#pragma clang attribute push': - # https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=675b4e2 - sed -i 's/std=gnu11/& -DBPF_NO_PRESERVE_ACCESS_INDEX/g' src/Makefile || die - - # remove bpf target & add assembly annotations to fix CO-RE feature detection - sed -i -e 's/-target bpf/-dA/' src/Makefile.feature || die - - # remove bpf target from skeleton build - sed -i -e 's/--target=bpf//g' src/Makefile || die - fi - - # Use rst2man or rst2man.py depending on which one exists (#930076) - type -P rst2man >/dev/null || sed -i -e 's/rst2man/rst2man.py/g' docs/Makefile || die -} - -bpftool_make() { - # which BPF compiler should we use? - if use clang; then - export CLANG="$(get_llvm_prefix -b)/bin/clang" - export LLVM_STRIP="$(get_llvm_prefix -b)/bin/llvm-strip" - else - # use bpf-toolchain - export CLANG="bpf-unknown-none-gcc" - export LLVM_STRIP="bpf-unknown-none-strip" - fi - - tc-export AR CC LD - - emake \ - ARCH="$(tc-arch-kernel)" \ - HOSTAR="$(tc-getBUILD_AR)" \ - HOSTCC="$(tc-getBUILD_CC)" \ - HOSTLD="$(tc-getBUILD_LD)" \ - bash_compdir="$(get_bashcompdir)" \ - feature-libcap="$(usex caps 1 0)" \ - feature-llvm="$(usex llvm 1 0)" \ - prefix="${EPREFIX}"/usr \ - V=1 \ - "$@" -} - -src_compile() { - bpftool_make -C src - bpftool_make -C docs -} - -src_install() { - bpftool_make DESTDIR="${D}" -C src install - bpftool_make mandir="${ED}"/usr/share/man -C docs install -} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-7.7.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-7.7.0-r1.ebuild new file mode 100644 index 00000000000..9d1f4259e7a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-7.7.0-r1.ebuild @@ -0,0 +1,166 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( {15..22} ) +LLVM_OPTIONAL=1 +PYTHON_COMPAT=( python3_{11..14} ) + +inherit bash-completion-r1 flag-o-matic linux-info llvm-r1 python-any-r1 toolchain-funcs + +DESCRIPTION="Tool for inspection and simple manipulation of eBPF programs and maps" +HOMEPAGE="https://github.com/libbpf/bpftool" + +if [[ ${PV} == *9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/libbpf/bpftool.git" + EGIT_SUBMODULES=(libbpf) +else + # bpftool typically vendors whatever libbpf is current at the time + # of a release, while libbpf publishes minor updates more frequently. + # Uncomment the following to bundle an updated libbpf e.g. in case of + # security or crasher bugs in libbpf and to keep the two synchronized. + # This allows us to quickly update the vendored lib with a revbump. + # Currently bpftool-x.y vendors libbpf-1.y; DO NOT mix different y versions. + # See the libbpf repo (https://github.com/libbpf/libbpf) for possible updates. + # LIBBPF_VERSION=1.7.0 + + if [[ ! -z ${LIBBPF_VERSION} ]] ; then + SRC_URI="https://github.com/libbpf/bpftool/archive/refs/tags/v${PV}.tar.gz -> bpftool-${PV}.tar.gz + https://github.com/libbpf/libbpf/archive/refs/tags/v${LIBBPF_VERSION}.tar.gz + -> libbpf-${LIBBPF_VERSION}.tar.gz" + else + # use tarball with bundled libbpf + SRC_URI="https://github.com/libbpf/bpftool/releases/download/v${PV}/bpftool-libbpf-v${PV}-sources.tar.gz" + S="${WORKDIR}/bpftool-libbpf-v${PV}-sources" + fi + + KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" +fi + +LICENSE="|| ( GPL-2 BSD-2 )" +SLOT="0" +IUSE="caps +clang llvm" +REQUIRED_USE="llvm? ( ${LLVM_REQUIRED_USE} )" + +RDEPEND=" + caps? ( sys-libs/libcap:= ) + llvm? ( $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}') ) + !llvm? ( sys-libs/binutils-libs:= ) + virtual/zlib:= + virtual/libelf:= +" +DEPEND=" + ${RDEPEND} + >=sys-kernel/linux-headers-5.8 +" +BDEPEND=" + ${PYTHON_DEPS} + app-arch/tar + dev-python/docutils + clang? ( $(llvm_gen_dep 'llvm-core/clang:${LLVM_SLOT}[llvm_targets_BPF]') ) + !clang? ( sys-devel/bpf-toolchain ) +" + +CONFIG_CHECK="~DEBUG_INFO_BTF" + +pkg_setup() { + linux-info_pkg_setup + python-any-r1_pkg_setup + use llvm && llvm-r1_pkg_setup +} + +src_prepare() { + default + + # prepare libbpf if necessary + if [[ ! -z ${LIBBPF_VERSION} ]] ; then + rm -rf libbpf || die + ln -s "${WORKDIR}/libbpf-${LIBBPF_VERSION}" libbpf || die + fi + + # remove -Werror from libbpf (bug 887981) + sed -i -e 's/\-Werror//g' libbpf/src/Makefile || die + + # remove -Werror from bpftool feature detection + sed -i -e 's/-Werror//g' src/Makefile.feature || die + + # remove hardcoded/unhelpful flags from bpftool + sed -e '/CFLAGS += -O2$/d' \ + -e '/CFLAGS += -W$/d' \ + -e '/CFLAGS += -Wextra$/d' \ + -i src/Makefile || die + + # always build bpf bits with std=gnu11 for kernel compatibility (bug 955156) + sed -i 's/-fno-stack-protector/& -std=gnu11/g' src/Makefile || die + + if ! use clang; then + # make people aware of what they are doing + ewarn "Using bpf-toolchain instead of clang due to USE=-clang." + ewarn "Please report any odd behaviours you observe, since using gcc for BPF" + ewarn "is still under development in both the Linux kernel and gcc itself." + + # prevent attribute warning about preserve_access_index + # since gcc does not support '#pragma clang attribute push': + # https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=675b4e2 + sed -i 's/std=gnu11/& -DBPF_NO_PRESERVE_ACCESS_INDEX/g' src/Makefile || die + + # remove bpf target & add assembly annotations to fix CO-RE feature detection + sed -i -e 's/-target bpf/-dA/' src/Makefile.feature || die + + # remove bpf target from skeleton build + sed -i -e 's/--target=bpf//g' src/Makefile || die + fi + + # Use rst2man or rst2man.py depending on which one exists (#930076) + type -P rst2man >/dev/null || sed -i -e 's/rst2man/rst2man.py/g' docs/Makefile || die +} + +src_configure() { + # filter LTO after discussion about UB in libbpf: + # https://lore.kernel.org/bpf/20260321024446.692008-1-irogers@google.com/ + filter-lto + + default +} + +bpftool_make() { + # which BPF compiler should we use? + if use clang; then + export CLANG="$(get_llvm_prefix -b)/bin/clang" + export LLVM_STRIP="$(get_llvm_prefix -b)/bin/llvm-strip" + else + # use bpf-toolchain + export CLANG="bpf-unknown-none-gcc" + export LLVM_STRIP="bpf-unknown-none-strip" + fi + + tc-export AR CC LD + + # add EXTRA_CFLAGS to be consistent with our libbpf ebuild + local extra_cflags="-fno-strict-aliasing" + + emake \ + ARCH="$(tc-arch-kernel)" \ + EXTRA_CFLAGS="${extra_cflags}" \ + HOSTAR="$(tc-getBUILD_AR)" \ + HOSTCC="$(tc-getBUILD_CC)" \ + HOSTLD="$(tc-getBUILD_LD)" \ + bash_compdir="$(get_bashcompdir)" \ + feature-libcap="$(usex caps 1 0)" \ + feature-llvm="$(usex llvm 1 0)" \ + prefix="${EPREFIX}"/usr \ + V=1 \ + "$@" +} + +src_compile() { + bpftool_make -C src + bpftool_make -C docs +} + +src_install() { + bpftool_make DESTDIR="${D}" -C src install + bpftool_make mandir="${ED}"/usr/share/man -C docs install +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-7.7.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-7.7.0.ebuild deleted file mode 100644 index 8153dfa9654..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-7.7.0.ebuild +++ /dev/null @@ -1,165 +0,0 @@ -# Copyright 2021-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( {15..22} ) -LLVM_OPTIONAL=1 -PYTHON_COMPAT=( python3_{11..14} ) - -inherit bash-completion-r1 flag-o-matic linux-info llvm-r1 python-any-r1 toolchain-funcs - -DESCRIPTION="Tool for inspection and simple manipulation of eBPF programs and maps" -HOMEPAGE="https://github.com/libbpf/bpftool" - -if [[ ${PV} == *9999* ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/libbpf/bpftool.git" - EGIT_SUBMODULES=(libbpf) -else - # bpftool typically vendors whatever libbpf is current at the time - # of a release, while libbpf publishes minor updates more frequently. - # Uncomment the following to bundle an updated libbpf e.g. in case of - # security or crasher bugs in libbpf and to keep the two synchronized. - # This allows us to quickly update the vendored lib with a revbump. - # Currently bpftool-x.y vendors libbpf-1.y; DO NOT mix different y versions. - # See the libbpf repo (https://github.com/libbpf/libbpf) for possible updates. - # LIBBPF_VERSION=1.7.0 - - if [[ ! -z ${LIBBPF_VERSION} ]] ; then - SRC_URI="https://github.com/libbpf/bpftool/archive/refs/tags/v${PV}.tar.gz -> bpftool-${PV}.tar.gz - https://github.com/libbpf/libbpf/archive/refs/tags/v${LIBBPF_VERSION}.tar.gz - -> libbpf-${LIBBPF_VERSION}.tar.gz" - else - # use tarball with bundled libbpf - SRC_URI="https://github.com/libbpf/bpftool/releases/download/v${PV}/bpftool-libbpf-v${PV}-sources.tar.gz" - S="${WORKDIR}/bpftool-libbpf-v${PV}-sources" - fi - - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" -fi - -LICENSE="|| ( GPL-2 BSD-2 )" -SLOT="0" -IUSE="caps +clang llvm" -REQUIRED_USE="llvm? ( ${LLVM_REQUIRED_USE} )" - -RDEPEND=" - caps? ( sys-libs/libcap:= ) - llvm? ( $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}') ) - !llvm? ( sys-libs/binutils-libs:= ) - virtual/zlib:= - virtual/libelf:= -" -DEPEND=" - ${RDEPEND} - >=sys-kernel/linux-headers-5.8 -" -BDEPEND=" - ${PYTHON_DEPS} - app-arch/tar - dev-python/docutils - clang? ( $(llvm_gen_dep 'llvm-core/clang:${LLVM_SLOT}[llvm_targets_BPF]') ) - !clang? ( sys-devel/bpf-toolchain ) -" - -CONFIG_CHECK="~DEBUG_INFO_BTF" - -pkg_setup() { - python-any-r1_pkg_setup - use llvm && llvm-r1_pkg_setup -} - -src_prepare() { - default - - # prepare libbpf if necessary - if [[ ! -z ${LIBBPF_VERSION} ]] ; then - rm -rf libbpf || die - ln -s "${WORKDIR}/libbpf-${LIBBPF_VERSION}" libbpf || die - fi - - # remove -Werror from libbpf (bug 887981) - sed -i -e 's/\-Werror//g' libbpf/src/Makefile || die - - # remove -Werror from bpftool feature detection - sed -i -e 's/-Werror//g' src/Makefile.feature || die - - # remove hardcoded/unhelpful flags from bpftool - sed -e '/CFLAGS += -O2$/d' \ - -e '/CFLAGS += -W$/d' \ - -e '/CFLAGS += -Wextra$/d' \ - -i src/Makefile || die - - # always build bpf bits with std=gnu11 for kernel compatibility (bug 955156) - sed -i 's/-fno-stack-protector/& -std=gnu11/g' src/Makefile || die - - if ! use clang; then - # make people aware of what they are doing - ewarn "Using bpf-toolchain instead of clang due to USE=-clang." - ewarn "Please report any odd behaviours you observe, since using gcc for BPF" - ewarn "is still under development in both the Linux kernel and gcc itself." - - # prevent attribute warning about preserve_access_index - # since gcc does not support '#pragma clang attribute push': - # https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=675b4e2 - sed -i 's/std=gnu11/& -DBPF_NO_PRESERVE_ACCESS_INDEX/g' src/Makefile || die - - # remove bpf target & add assembly annotations to fix CO-RE feature detection - sed -i -e 's/-target bpf/-dA/' src/Makefile.feature || die - - # remove bpf target from skeleton build - sed -i -e 's/--target=bpf//g' src/Makefile || die - fi - - # Use rst2man or rst2man.py depending on which one exists (#930076) - type -P rst2man >/dev/null || sed -i -e 's/rst2man/rst2man.py/g' docs/Makefile || die -} - -src_configure() { - # filter LTO after discussion about UB in libbpf: - # https://lore.kernel.org/bpf/20260321024446.692008-1-irogers@google.com/ - filter-lto - - default -} - -bpftool_make() { - # which BPF compiler should we use? - if use clang; then - export CLANG="$(get_llvm_prefix -b)/bin/clang" - export LLVM_STRIP="$(get_llvm_prefix -b)/bin/llvm-strip" - else - # use bpf-toolchain - export CLANG="bpf-unknown-none-gcc" - export LLVM_STRIP="bpf-unknown-none-strip" - fi - - tc-export AR CC LD - - # add EXTRA_CFLAGS to be consistent with our libbpf ebuild - local extra_cflags="-fno-strict-aliasing" - - emake \ - ARCH="$(tc-arch-kernel)" \ - EXTRA_CFLAGS="${extra_cflags}" \ - HOSTAR="$(tc-getBUILD_AR)" \ - HOSTCC="$(tc-getBUILD_CC)" \ - HOSTLD="$(tc-getBUILD_LD)" \ - bash_compdir="$(get_bashcompdir)" \ - feature-libcap="$(usex caps 1 0)" \ - feature-llvm="$(usex llvm 1 0)" \ - prefix="${EPREFIX}"/usr \ - V=1 \ - "$@" -} - -src_compile() { - bpftool_make -C src - bpftool_make -C docs -} - -src_install() { - bpftool_make DESTDIR="${D}" -C src install - bpftool_make mandir="${ED}"/usr/share/man -C docs install -} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-9999.ebuild index 8153dfa9654..9cd7b53c5d5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-9999.ebuild @@ -66,6 +66,7 @@ BDEPEND=" CONFIG_CHECK="~DEBUG_INFO_BTF" pkg_setup() { + linux-info_pkg_setup python-any-r1_pkg_setup use llvm && llvm-r1_pkg_setup } diff --git a/sdk_container/src/third_party/portage-stable/dev-util/bpftool/files/7.5.0-setting-error-code-in-do_loader.patch b/sdk_container/src/third_party/portage-stable/dev-util/bpftool/files/7.5.0-setting-error-code-in-do_loader.patch deleted file mode 100644 index 8b77603e13b..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/bpftool/files/7.5.0-setting-error-code-in-do_loader.patch +++ /dev/null @@ -1,45 +0,0 @@ -Patch from: https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=02a4694107b4c830d4bd6d194e98b3ac0bc86f29 -Adapted patch prefix to match the GH mirror sources. - -From 91588da58ed38e4ec870d479ab2d9467288893d2 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 11 Mar 2025 12:12:37 +0900 -Subject: bpf: bpftool: Setting error code in do_loader() - -From: Sewon Nam - -[ Upstream commit 02a4694107b4c830d4bd6d194e98b3ac0bc86f29 ] - -We are missing setting error code in do_loader() when -bpf_object__open_file() fails. This means the command's exit status code -will be successful, even though the operation failed. So make sure to -return the correct error code. To maintain consistency with other -locations where bpf_object__open_file() is called, return -1. - - [0] Closes: https://github.com/libbpf/bpftool/issues/156 - -Reported-by: Dan Carpenter -Signed-off-by: Sewon Nam -Signed-off-by: Andrii Nakryiko -Tested-by: Quentin Monnet -Reviewed-by: Quentin Monnet -Link: https://lore.kernel.org/bpf/d3b5b4b4-19bb-4619-b4dd-86c958c4a367@stanley.mountain/t/#u -Link: https://lore.kernel.org/bpf/20250311031238.14865-1-swnam0729@gmail.com -Signed-off-by: Alexei Starovoitov -Signed-off-by: Sasha Levin ---- - tools/bpf/bpftool/prog.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c -index e71be67f1d865..52ffb74ae4e89 100644 ---- a/src/prog.c -+++ b/src/prog.c -@@ -1928,6 +1928,7 @@ static int do_loader(int argc, char **argv) - - obj = bpf_object__open_file(file, &open_opts); - if (!obj) { -+ err = -1; - p_err("failed to open object file"); - goto err_close_obj; - } diff --git a/sdk_container/src/third_party/portage-stable/dev-util/catalyst/catalyst-4.1.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/catalyst/catalyst-4.1.1.ebuild index 1b5e0729438..f4df6931ce5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/catalyst/catalyst-4.1.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/catalyst/catalyst-4.1.1.ebuild @@ -15,7 +15,7 @@ else S="${WORKDIR}/${MY_P/_/-}" fi -PYTHON_COMPAT=( python3_{12..13} ) +PYTHON_COMPAT=( python3_{12..14} ) DISTUTILS_USE_PEP517=setuptools inherit distutils-r1 linux-info optfeature tmpfiles ${SRC_ECLASS} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/catalyst/catalyst-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/catalyst/catalyst-9999.ebuild index 6643569e71d..f4df6931ce5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/catalyst/catalyst-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/catalyst/catalyst-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -15,7 +15,7 @@ else S="${WORKDIR}/${MY_P/_/-}" fi -PYTHON_COMPAT=( python3_{12..13} ) +PYTHON_COMPAT=( python3_{12..14} ) DISTUTILS_USE_PEP517=setuptools inherit distutils-r1 linux-info optfeature tmpfiles ${SRC_ECLASS} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/debugedit/Manifest b/sdk_container/src/third_party/portage-stable/dev-util/debugedit/Manifest index cf9bf77a396..81721bfa0d9 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/debugedit/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-util/debugedit/Manifest @@ -1,4 +1,2 @@ -DIST debugedit-5.2.tar.xz 196724 BLAKE2B ced3d1ff03f06cc2411627067c3e194951793b230fb37ac8f2528c6dd898841ca452b0f86107de3830c03123d34987c42a0427e40c579d775764bf5b09180410 SHA512 0fe21d7576ca8ea8067f6afe5c02807ace77051249d8911531e6f9d077db59487ee29dfbdb5e9c80aebaa8bd22c6efe515d25a502d614bc058f24d174c7ebe4b -DIST debugedit-5.2.tar.xz.sig 310 BLAKE2B 599db2dfb9a85a70dff9aadf606f6eb308246e1628ca465ba7d58fb73842ed9c4b4e27ee23818d968c8fd7314678b7bb63ba1f77ad94bb7ed15e8f0d4bd94ee3 SHA512 5c80ea4b43e1363399b858a0758e944f49cedf50828f60867651f65e5469d217e7a6b4ac790266016ed5eb512ae7af67690d99ea020d8497b8289c3a88c9908d DIST debugedit-5.3.tar.xz 206124 BLAKE2B 0b8c59249eff751e4927c2c94ce656bf112732c518702e2f41ab5c8f50393a3fed627d545dc6f4fc2164e25c58b396ea237f45669c8fb1f5e2e409325406e056 SHA512 a02e04f5b91e0ec5d880207658e5b89b28424ffee6aed7374c495c0c49b2f0180eeb2277bdb758a3d245279a2083d5f7b8b4872b8972b92d5c92ef5f1d27d958 DIST debugedit-5.3.tar.xz.sig 119 BLAKE2B 94356067afe2185acfc6f94cbb8dec1e6fbf6a12ff66fa137cfbdebdead2f9cca9525bb63b5c8b03ff0015e38f741c7a4c01dd41d7b188dc0abf8da4cabd422e SHA512 51b04d7639b8c2eb619ce08934ea19504a3fc1d3ddf3c46bb0f3c47f1d3b18ccae7590e54b3e2a798078da879eecd50b43c1c350e6cff2564de13df8d1c7cfe7 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/debugedit/debugedit-5.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/debugedit/debugedit-5.2-r1.ebuild deleted file mode 100644 index 0b8b28ab50d..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/debugedit/debugedit-5.2-r1.ebuild +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit multiprocessing optfeature verify-sig toolchain-funcs - -DESCRIPTION="Create debuginfo and source file distributions" -HOMEPAGE="https://sourceware.org/debugedit/" -SRC_URI=" - https://sourceware.org/ftp/debugedit/${PV}/${P}.tar.xz - verify-sig? ( https://sourceware.org/ftp/debugedit/${PV}/${P}.tar.xz.sig ) -" - -LICENSE="GPL-3+ GPL-2+ LGPL-2+" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="test" -RESTRICT="!test? ( test )" - -DEPEND=" - >=dev-libs/elfutils-0.176-r1:= - >=dev-libs/xxhash-0.8:= - elibc_musl? ( >=sys-libs/error-standalone-2.0 ) -" -RDEPEND=" - ${DEPEND} -" -BDEPEND=" - sys-apps/help2man - virtual/pkgconfig - test? ( - app-alternatives/cpio - dev-debug/gdb - sys-devel/dwz - ) - verify-sig? ( - sec-keys/openpgp-keys-debugedit - ) -" - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/debugedit.gpg - -PATCHES=( - "${FILESDIR}"/${P}-bashism.patch - "${FILESDIR}"/${P}-buildid.patch -) - -src_configure() { - tc-export PKG_CONFIG - - if use elibc_musl; then - export CFLAGS="${CFLAGS} $(${PKG_CONFIG} --cflags error-standalone)" - export LIBS="${LIBS} $(${PKG_CONFIG} --libs error-standalone)" - fi - - local myconf=( - # avoid BDEP on dwz - DWZ=dwz - ac_cv_dwz_j=yes - - # We don't want to effectively bundle xxhash. It fails to - # build with -Og and such too (bug #956627). - --disable-inlined-xxhash - ) - econf "${myconf[@]}" -} - -src_test() { - local -x CCACHE_DISABLE=1 - emake -Onone check TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)" -} - -pkg_postinst() { - optfeature "dwz support in find-debuginfo" sys-devel/dwz -} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/debugedit/debugedit-5.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/debugedit/debugedit-5.3.ebuild index 822ec217386..f024c73cb32 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/debugedit/debugedit-5.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/debugedit/debugedit-5.3.ebuild @@ -14,7 +14,7 @@ SRC_URI=" LICENSE="GPL-3+ GPL-2+ LGPL-2+" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE="test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-util/debugedit/files/debugedit-5.2-bashism.patch b/sdk_container/src/third_party/portage-stable/dev-util/debugedit/files/debugedit-5.2-bashism.patch deleted file mode 100644 index 8f5bd0eac22..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/debugedit/files/debugedit-5.2-bashism.patch +++ /dev/null @@ -1,35 +0,0 @@ -https://sourceware.org/cgit/debugedit/commit/?id=40b9c550dd2f94a069f3bedf51ceb310d7487d88 - -From 40b9c550dd2f94a069f3bedf51ceb310d7487d88 Mon Sep 17 00:00:00 2001 -From: Michał Górny -Date: Tue, 8 Jul 2025 07:40:20 +0200 -Subject: tests/debugedit.at: Replace 'type -p' bashism -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Replace 'type -p' with more portable 'command -v', in order to fix -running the test suite on non-bash shells. Note that while the test -itself invokes bash, the backticks are evaluated within the context -of the shell used by autotest. - -Signed-off-by: Michał Górny ---- - tests/find-debuginfo.at | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/find-debuginfo.at b/tests/find-debuginfo.at -index 5552ce1..dd59374 100644 ---- a/tests/find-debuginfo.at -+++ b/tests/find-debuginfo.at -@@ -67,7 +67,7 @@ AT_CHECK([$READELF --debug-dump=line subdir_build/dupes.a | grep `pwd`], [0], [s - - # run conversion, under bash -x tracing for fuller testing log - AT_CHECK([[env RPM_BUILD_DIR=${PWD} RPM_BUILD_ROOT=${PWD} RPM_PACKAGE_NAME=pkg RPM_PACKAGE_VERSION=ver RPM_PACKAGE_RELEASE=rel RPM_ARCH=arch \ -- bash -x `type -p find-debuginfo` -S sourcefiles.list -v ${PWD}/subdir_build]], [0], [stdout], [ignore]) -+ bash -x `command -v find-debuginfo` -S sourcefiles.list -v ${PWD}/subdir_build]], [0], [stdout], [ignore]) - - # list new .a contents; ar tPv contains timestamps / subdirs, so not a good fit for AT_DATA() here - AT_CHECK([$AR tPv subdir_build/dupes.a],[0],[stdout],[ignore]) --- -cgit diff --git a/sdk_container/src/third_party/portage-stable/dev-util/debugedit/files/debugedit-5.2-buildid.patch b/sdk_container/src/third_party/portage-stable/dev-util/debugedit/files/debugedit-5.2-buildid.patch deleted file mode 100644 index 09875de1652..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/debugedit/files/debugedit-5.2-buildid.patch +++ /dev/null @@ -1,37 +0,0 @@ -https://sourceware.org/cgit/debugedit/commit/?id=c011f478dca2c89d52958a8999b99663d14db85d - -From c011f478dca2c89d52958a8999b99663d14db85d Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -Date: Tue, 8 Jul 2025 13:05:37 +0200 -Subject: find-debuginfo.at: Make sure foo, bar and baz have build-ids - -There are still distros that don't configure gcc with ---enable-linker-build-id. So explicitly add -Wl,--build-id -to the test binaries generated. - -https://sourceware.org/bugzilla/show_bug.cgi?id=33135 - -Signed-off-by: Mark Wielaard ---- - tests/find-debuginfo.at | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/tests/find-debuginfo.at b/tests/find-debuginfo.at -index dd59374..1d7ad57 100644 ---- a/tests/find-debuginfo.at -+++ b/tests/find-debuginfo.at -@@ -93,9 +93,9 @@ cp "${abs_srcdir}"/data/SOURCES/baz.c subdir_build - cd subdir_build - # Three almost identical binaries - # so dwz has something to put into the alt file --$CC $CFLAGS -g3 -I. -o foo foo.c bar.c baz.c --$CC $CFLAGS -g3 -I. -o bar bar.c baz.c foo.c --$CC $CFLAGS -g3 -I. -o baz baz.c foo.c bar.c -+$CC $CFLAGS -Wl,--build-id -g3 -I. -o foo foo.c bar.c baz.c -+$CC $CFLAGS -Wl,--build-id -g3 -I. -o bar bar.c baz.c foo.c -+$CC $CFLAGS -Wl,--build-id -g3 -I. -o baz baz.c foo.c bar.c - cd .. - ]]) - --- -cgit 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 f8c7fd7eaba..f842808b8e3 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,6 @@ DIST glib-2.82.5.tar.xz 5554704 BLAKE2B e7853034be1137f8b793483df9e9ce1465dd10a990eb9b3cb9ac76c9f8f86ccc6fda85645b04b35963b28c33e0f6c02df4f3d03e06cc278b8515e588d6bd05f6 SHA512 a6b035c32a42b9d6f4c031a29da405848002619654b58c9205f2f78dbb9698cd5866f31ab213adc04aa214d2c48840a9592c0a1e9201e6851ebd435635f393ae DIST glib-2.84.4.tar.xz 5618200 BLAKE2B 5faee382433085cd598545a99e2e95ce430be4ac5ca10106b70f2404ddacf328f4223bc092a23025f9bf8b936619a88a9dfb220674a07e9250cf4213c6213be9 SHA512 2de9b2f7376c0e5f6ee585087090675d597c474199a10d04aad18df688b6ca77d17e93a86ec07482898663f51c82121992272496318138f77ca5ad2c340a4bd3 DIST glib-2.86.4.tar.xz 5692304 BLAKE2B 20dee8c99fdb410d7f9c09366f1688dbc075638fdecd44f67562cc9cc46e34712cd1357d5a4facadd36f3c45fceeb83c7910be4f9c819ad20778339cdfb34452 SHA512 13e8beb84f3464f50c9764d0d3c6822a4bb41ae65e6c3ffac4200a5b441acdd2eb6f838a6b0722cae501e367ce9cfd4f8516b684a391c2f088a593172abcacd9 +DIST glib-2.86.5.tar.xz 5695864 BLAKE2B 67fb6d9bde2c47647bfc7979bf3486aac0c7c32d51593ac37c2e988556d3225faa7c702b3f39103051a6671e142c2ae2baf309451720262d18311f519385f17c SHA512 e14e56659594cb1f929cf62b01f415b867592f83d7a624a8806c609c762fcdf6ab7bc4c68ab1faafd709f7448a52b8e37a7066a53c84b52607a8b5261bc8f222 +DIST glib-2.88.0.tar.xz 5788396 BLAKE2B b540e0f5490f85b44cfad5d819f4a6fd911addc26fed8b8b49852bd6ec322d7d16136b691452030cf5f590374ea06cf8fdb8c9109d5cbe7b68625379bbd40615 SHA512 ceead8d88720db17dc6bbff7aff14f261f90afc5e8261448aae0657f89b5fcc616cf62f4b049be88a4ddd3f50a869bbcdb66b29777da4969a47987828ecac280 +DIST glib-2.88.1.tar.xz 5789296 BLAKE2B d9a0e54d2c1b5128aee76f1743cbeea84a24af5a2252ba1c649943bbca3fbc5f08896249542526560c92dd0e60cbd8a72498c3cfe1535d1f0bf85316ce37dba1 SHA512 74e6d6086081e5dfb5b7fd3b74f59171033be0c340ff2dd798fea9cb42e5f680e13b2ac3dde8dd423bceb9c6556103005f9542aeda166e9a3b89da8bacecca23 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.86.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.86.5.ebuild new file mode 100644 index 00000000000..851f8ee3a96 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.86.5.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2026 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 ~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/gdbus-codegen/gdbus-codegen-2.88.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.88.0.ebuild new file mode 100644 index 00000000000..851f8ee3a96 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.88.0.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2026 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 ~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/gdbus-codegen/gdbus-codegen-2.88.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.88.1.ebuild new file mode 100644 index 00000000000..851f8ee3a96 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.88.1.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2026 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 ~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 f8c7fd7eaba..f842808b8e3 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,6 @@ DIST glib-2.82.5.tar.xz 5554704 BLAKE2B e7853034be1137f8b793483df9e9ce1465dd10a990eb9b3cb9ac76c9f8f86ccc6fda85645b04b35963b28c33e0f6c02df4f3d03e06cc278b8515e588d6bd05f6 SHA512 a6b035c32a42b9d6f4c031a29da405848002619654b58c9205f2f78dbb9698cd5866f31ab213adc04aa214d2c48840a9592c0a1e9201e6851ebd435635f393ae DIST glib-2.84.4.tar.xz 5618200 BLAKE2B 5faee382433085cd598545a99e2e95ce430be4ac5ca10106b70f2404ddacf328f4223bc092a23025f9bf8b936619a88a9dfb220674a07e9250cf4213c6213be9 SHA512 2de9b2f7376c0e5f6ee585087090675d597c474199a10d04aad18df688b6ca77d17e93a86ec07482898663f51c82121992272496318138f77ca5ad2c340a4bd3 DIST glib-2.86.4.tar.xz 5692304 BLAKE2B 20dee8c99fdb410d7f9c09366f1688dbc075638fdecd44f67562cc9cc46e34712cd1357d5a4facadd36f3c45fceeb83c7910be4f9c819ad20778339cdfb34452 SHA512 13e8beb84f3464f50c9764d0d3c6822a4bb41ae65e6c3ffac4200a5b441acdd2eb6f838a6b0722cae501e367ce9cfd4f8516b684a391c2f088a593172abcacd9 +DIST glib-2.86.5.tar.xz 5695864 BLAKE2B 67fb6d9bde2c47647bfc7979bf3486aac0c7c32d51593ac37c2e988556d3225faa7c702b3f39103051a6671e142c2ae2baf309451720262d18311f519385f17c SHA512 e14e56659594cb1f929cf62b01f415b867592f83d7a624a8806c609c762fcdf6ab7bc4c68ab1faafd709f7448a52b8e37a7066a53c84b52607a8b5261bc8f222 +DIST glib-2.88.0.tar.xz 5788396 BLAKE2B b540e0f5490f85b44cfad5d819f4a6fd911addc26fed8b8b49852bd6ec322d7d16136b691452030cf5f590374ea06cf8fdb8c9109d5cbe7b68625379bbd40615 SHA512 ceead8d88720db17dc6bbff7aff14f261f90afc5e8261448aae0657f89b5fcc616cf62f4b049be88a4ddd3f50a869bbcdb66b29777da4969a47987828ecac280 +DIST glib-2.88.1.tar.xz 5789296 BLAKE2B d9a0e54d2c1b5128aee76f1743cbeea84a24af5a2252ba1c649943bbca3fbc5f08896249542526560c92dd0e60cbd8a72498c3cfe1535d1f0bf85316ce37dba1 SHA512 74e6d6086081e5dfb5b7fd3b74f59171033be0c340ff2dd798fea9cb42e5f680e13b2ac3dde8dd423bceb9c6556103005f9542aeda166e9a3b89da8bacecca23 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.86.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.86.5.ebuild new file mode 100644 index 00000000000..37c201f7571 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.86.5.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2026 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 ~arm64-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/glib-utils/glib-utils-2.88.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.88.0.ebuild new file mode 100644 index 00000000000..37c201f7571 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.88.0.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2026 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 ~arm64-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/glib-utils/glib-utils-2.88.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.88.1.ebuild new file mode 100644 index 00000000000..37c201f7571 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.88.1.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2026 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 ~arm64-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 07da249167c..6756cade125 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/maturin/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-util/maturin/Manifest @@ -1,6 +1,8 @@ -DIST maturin-1.11.5-vendor.tar.xz 16507616 BLAKE2B 83b6607c91a0925ad52bbdb888eef01fa871a29129600471269d25c9a2a56206c845a56f1bfd5dbcaaf9b74da88df35e6f3c857d551834fc8564853d6e455b0e SHA512 94a8c8cb296afd33da5175e6ce39ecd8ccb739df30bfac0476551352a002032cefa5de6ea41c81f65cd905225d1cf8a13f473594560a8f2a29df563a4adc9e9a -DIST maturin-1.11.5.gh.tar.gz 596610 BLAKE2B f78673c59d13211771d37b74468041255cb8f7fa2113851e3fda2da8811e34c1a6e5c0eeb5d61430653342b97f899fff24984446e533759d3db06458afab2eda SHA512 49e7976be5790f524d5a423519c4ee73ccb450f0e84fea5ba691421cd8e303cb4166324d42985b1ae321a71c4295f244632da194a5be7cacbe7951cdbc0dbb92 -DIST maturin-1.12.5-vendor.tar.xz 19322640 BLAKE2B e8c537c78ed6cf6a590185d3b5b152fa1761098bfd05c0d68c579d2e0ff4dada3b680c564a26750ff7ff0e4d6870d9922828d59a05d61bb933d02077e0acf65a SHA512 5cba7f88f4a8716441c11ae27f59b3f8dc7debffe5c0f8d41b3dea4944f3d293da3361cea037ea762c4f63e933c8afe502d90f2ba1d19ca9006ff3a4d131cd8b -DIST maturin-1.12.5.gh.tar.gz 648930 BLAKE2B 46f32b6dd0bc8af554841aac26800449737fdb7556df6497bfb7694e8444cabd6c43bc0ead9cb9ebec1d365333136c4e79853ee8606fad1556b3ae0fb27e01b5 SHA512 1f0ea04bdf568839cba8aa3f521e3dc3ff6ffc3b0212731ae6ce2b551992dcf1ee798ba2ac2064bc36d9fbcc4b8541b6ccf588a9e8834955a9976e507711dc07 DIST maturin-1.12.6-vendor.tar.xz 19339996 BLAKE2B 5fa56bde7c2445eebd51802e58ae53cc9fa7742d04d0b79043f29bdedee8b3e0871042ca1481b310398c3ffd51b518f97bf74c13999c7bc0b83dd2b9e5e4799d SHA512 c32f476784de0d86e4d3ec47a92f9e7d17f5e257b81b7aef8914e76d03d822f8117bb45ea055cb6e391ca1dfa9b6ae211e1eab117cda9559316eff8a1111d2e3 DIST maturin-1.12.6.gh.tar.gz 650246 BLAKE2B ea808aac177168947c059506ae19c53d322811fc8c0c20c01cf8a40364344daca0a3ffba09032352b0faea2f3f88286509d5fc4434658f30fbe6971aaa6d657f SHA512 49d4e6d759be491f7c689c37738586f0059ec4c0067ed9862858b124aad904504e7af44d2b58c1aa123b268a536ab2bdecef53564c8a0e649e37678fdf0170be +DIST maturin-1.13.1-vendor.tar.xz 21185996 BLAKE2B 1f1dfd72948296a29e70de2dc75b76dbb9569ca24bc77f09123bc3c06895bf1e61c2b02da3bec3e4c38dbcc1f560a89a6982cbf7741157a247c9cf7fa7e3b8ae SHA512 98d3c1905d9bce620a28d4e9deceef16ee8a26e837cc029758b807de706370906fb12cdec3a827cdc20ae9df72c33907a3432432501dbcdcd458c328fb07cac0 +DIST maturin-1.13.1.gh.tar.gz 727220 BLAKE2B 33495999ede9aaa47e37a89c68fceb3bed7d9a473a45253a3960cd101a938a72834c68b4fa8638af4f758206fcbc712fbd892f181ff889a405ba33fe632cd546 SHA512 b5487a89d3a400467dcb381f80e0e33bccf5bd28272460c781452862887cc1244b89ed6abab7099c95ace0fa247b71ac1eaedce2da4707338a579f33c8087d29 +DIST maturin-1.13.2-vendor.tar.xz 21259304 BLAKE2B 0b30000345c42a23bd732f5b9ead6643ce634ff8f6bde62f37a13664e9d1e62367b9597562b1c760fea0a38d5e82204c126a873f5b1b606adc67de98ce92185e SHA512 3a3fe108f5b0fee1f77c0484c1db3877e39b07145f7aa9c8ebe760e8f1a8a3fd6fb1d90be403bc243624c6451de1ef973f789af23fbb24e4387c7728b18298c2 +DIST maturin-1.13.2.gh.tar.gz 759073 BLAKE2B 3ae9ccfd1eb04e3d3571c9078bc7d2a4e55bc96cd789dd43d660c5175fa5fb8669849a548dd961caf0b55a8ee702f8d684435d6788753748deb279b3f40b9555 SHA512 c24f6186a16105de8b75b117333fe16245bed4294bea64479a0e2a2f90fc7ab40aed9078f8c10df45da85dccf64061a284c7e261f32ae5c3c6ee5adcda644dde +DIST maturin-1.13.3-vendor.tar.xz 21271368 BLAKE2B 5f81814e104e108ee79f296e270f91dc5d610188a41b054d61cf14e8cb59ddce1c64d14dd2293b576f6447bfa5c983070e783fb52c1ded265c61d57e42b42508 SHA512 3fe99c4c39af8abc9ebfff8cc6c32e646787ce5d34b54f39854a5206c0844c624ce40a4f1c07329308908109bb1ededae401813bc5a85e93df1d5a87a4b721a4 +DIST maturin-1.13.3.gh.tar.gz 759742 BLAKE2B ce1314d57c089459ecc3cb4290807c5d26fa06766d2473d8474013901a9be6546ab5fac19f77cb6d03b9b457b4ef91c9ffdb8ac40aed50041640bd69d5d9cd8a SHA512 ed5d08ae5598a20a0570c815d162ea1979edbeade4c12c1d346a59b414a84dae63e22246c283549970d3d72a9c6d6bd333f95b24e29cd6714468df5feeff89a7 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.11.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.11.5.ebuild deleted file mode 100644 index 2453d1d5537..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.11.5.ebuild +++ /dev/null @@ -1,157 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -DISTUTILS_UPSTREAM_PEP517=standalone -PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) -RUST_MIN_VER=1.85.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? ( Apache-2.0 OFL-1.1 )" -LICENSE+=" - 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT MPL-2.0 - Unicode-3.0 ZLIB BZIP2 -" # crates -SLOT="0" -KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="doc +ssl test" -RESTRICT="!test? ( test )" - -RDEPEND=" - app-arch/xz-utils - app-arch/zstd:= - ssl? ( dev-libs/openssl:= ) -" -DEPEND="${RDEPEND}" -BDEPEND=" - virtual/pkgconfig - doc? ( >=app-text/mdbook-0.5 ) - test? ( - $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') - dev-python/boltons[${PYTHON_USEDEP}] - dev-python/virtualenv[${PYTHON_USEDEP}] - dev-vcs/git - elibc_musl? ( dev-util/patchelf ) - ) -" - -QA_FLAGS_IGNORED="usr/bin/${PN}" - -src_prepare() { - distutils-r1_src_prepare - - # we build the Rust executable (just once) via cargo_src_compile - sed -i -e '/setuptools_rust/d' -e '/rust_extensions/d' setup.py || die - - if use test; then - # used to prevent use of network during tests, and silence pip - # if it finds unrelated issues with system packages (bug #913613) - cat > "${T}"/pip.conf <<-EOF || die - [global] - quiet = 2 - - [install] - no-index = yes - no-dependencies = yes - EOF - - # uv does not work easily w/ network-sandbox, force virtualenv - sed -i 's/"uv"/"uv-not-found"/' tests/common/mod.rs || die - - # 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 "${T}"/html guide || die - - if ! tc-is-cross-compiler; then - local maturin=$(cargo_target_dir)/maturin - "${maturin}" completions bash > "${T}"/${PN} || die - "${maturin}" completions fish > "${T}"/${PN}.fish || die - "${maturin}" completions zsh > "${T}"/_${PN} || die - else - ewarn "shell completion files were skipped due to cross-compilation" - fi -} - -python_test() { - local -x MATURIN_TEST_PYTHON=${EPYTHON} - local -x PIP_CONFIG_FILE=${T}/pip.conf - local -x VIRTUALENV_SYSTEM_SITE_PACKAGES=1 - - # need this for (new) python versions not yet recognized by pyo3 - local -x PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 - - local 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 - # these currently attempt to install tomli regardless of python version - --skip pep517_default_profile - --skip pep517_editable_profile - ) - - cargo_src_test -- "${skip[@]}" -} - -python_install_all() { - dobin "$(cargo_target_dir)"/maturin - - dodoc Changelog.md README.md - use doc && dodoc -r "${T}"/html - - if ! tc-is-cross-compiler; then - dobashcomp "${T}"/${PN} - dofishcomp "${T}"/${PN}.fish - dozshcomp "${T}"/_${PN} - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.12.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.12.5.ebuild deleted file mode 100644 index 5bc928ae485..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.12.5.ebuild +++ /dev/null @@ -1,157 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -DISTUTILS_UPSTREAM_PEP517=standalone -PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) -RUST_MIN_VER=1.88.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? ( Apache-2.0 OFL-1.1 )" -LICENSE+=" - 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD - CDLA-Permissive-2.0 MIT MPL-2.0 Unicode-3.0 ZLIB BZIP2 -" # crates -SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="doc +ssl test" -RESTRICT="!test? ( test )" - -RDEPEND=" - app-arch/xz-utils - app-arch/zstd:= - ssl? ( dev-libs/openssl:= ) -" -DEPEND="${RDEPEND}" -BDEPEND=" - virtual/pkgconfig - doc? ( >=app-text/mdbook-0.5 ) - test? ( - $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') - dev-python/boltons[${PYTHON_USEDEP}] - dev-python/virtualenv[${PYTHON_USEDEP}] - dev-vcs/git - elibc_musl? ( dev-util/patchelf ) - ) -" - -QA_FLAGS_IGNORED="usr/bin/${PN}" - -src_prepare() { - distutils-r1_src_prepare - - # we build the Rust executable (just once) via cargo_src_compile - sed -i -e '/setuptools_rust/d' -e '/rust_extensions/d' setup.py || die - - if use test; then - # used to prevent use of network during tests, and silence pip - # if it finds unrelated issues with system packages (bug #913613) - cat > "${T}"/pip.conf <<-EOF || die - [global] - quiet = 2 - - [install] - no-index = yes - no-dependencies = yes - EOF - - # uv does not work easily w/ network-sandbox, force virtualenv - sed -i 's/"uv"/"uv-not-found"/' tests/common/mod.rs || die - - # 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 "${T}"/html guide || die - - if ! tc-is-cross-compiler; then - local maturin=$(cargo_target_dir)/maturin - "${maturin}" completions bash > "${T}"/${PN} || die - "${maturin}" completions fish > "${T}"/${PN}.fish || die - "${maturin}" completions zsh > "${T}"/_${PN} || die - else - ewarn "shell completion files were skipped due to cross-compilation" - fi -} - -python_test() { - local -x MATURIN_TEST_PYTHON=${EPYTHON} - local -x PIP_CONFIG_FILE=${T}/pip.conf - local -x VIRTUALENV_SYSTEM_SITE_PACKAGES=1 - - # need this for (new) python versions not yet recognized by pyo3 - local -x PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 - - local 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 - # these currently attempt to install tomli regardless of python version - --skip pep517_default_profile - --skip pep517_editable_profile - ) - - cargo_src_test -- "${skip[@]}" -} - -python_install_all() { - dobin "$(cargo_target_dir)"/maturin - - dodoc Changelog.md README.md - use doc && dodoc -r "${T}"/html - - if ! tc-is-cross-compiler; then - dobashcomp "${T}"/${PN} - dofishcomp "${T}"/${PN}.fish - dozshcomp "${T}"/_${PN} - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.12.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.12.6.ebuild index 5bc928ae485..c9444bc5be9 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.12.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.12.6.ebuild @@ -14,7 +14,7 @@ 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 + https://distfiles.gentoo.org/pub/dev/ionen@gentoo.org/${P}-vendor.tar.xz " # ^ tarball also includes test-crates' Cargo.lock(s) crates for tests @@ -24,14 +24,14 @@ LICENSE+=" CDLA-Permissive-2.0 MIT MPL-2.0 Unicode-3.0 ZLIB BZIP2 " # 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 x86" IUSE="doc +ssl test" RESTRICT="!test? ( test )" RDEPEND=" app-arch/xz-utils app-arch/zstd:= - ssl? ( dev-libs/openssl:= ) + ssl? ( "${T}"/pip.conf <<-EOF || die + [global] + quiet = 2 + + [install] + no-index = yes + no-dependencies = yes + EOF + + # uv does not work easily w/ network-sandbox, force virtualenv + sed -i 's/"uv"/"uv-not-found"/' tests/common/mod.rs || die + + # needed by several sdist:: tests + git init -q || die + git config --global user.email "larry@gentoo.org" || die + git config --global user.name "Larry the Cow" || die + git add . || die + git commit -qm init || die + + fi +} + +src_configure() { + export OPENSSL_NO_VENDOR=1 + export ZSTD_SYS_USE_PKG_CONFIG=1 + + # https://github.com/rust-lang/stacker/issues/79 + use s390 && ! is-flagq '-march=*' && + append-cflags $(test-flags-CC -march=z10) + + local myfeatures=( + # like release.yml + native-tls for better platform support than rustls + full + password-storage + $(usev ssl native-tls) + ) + + cargo_src_configure --no-default-features +} + +python_compile_all() { + cargo_src_compile + + use !doc || mdbook build -d "${T}"/html guide || die + + if ! tc-is-cross-compiler; then + local maturin=$(cargo_target_dir)/maturin + "${maturin}" completions bash > "${T}"/${PN} || die + "${maturin}" completions fish > "${T}"/${PN}.fish || die + "${maturin}" completions zsh > "${T}"/_${PN} || die + else + ewarn "shell completion files were skipped due to cross-compilation" + fi +} + +python_test() { + local -x MATURIN_TEST_PYTHON=${EPYTHON} + local -x PIP_CONFIG_FILE=${T}/pip.conf + local -x VIRTUALENV_SYSTEM_SITE_PACKAGES=1 + + # need this for (new) python versions not yet recognized by pyo3 + local -x PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 + + local CARGO_SKIP_TESTS=( + # picky cli output test that easily benignly fail (bug #937992) + cli_tests + # fragile depending on rust version, also wants libpypy*-c.so for pypy + errors::pyo3_no_extension_module + # fails for unsupported rust targets, non-issue here (bug #973104) + errors::pypi_compatibility_linux_tag + # unimportant tests that require uv, and not obvious to get it + # to work with network-sandbox (not worth the trouble) + develop::develop_uv_cases::case_1_hello_world + develop::develop_uv_cases::case_2_pyo3_ffi_pure + # compliance tests using zig (if present) need old libc (bug #946967) + integration::integration_cases::case_07_cffi_mixed_py_subdir + integration::integration_cases::case_16_pyo3_stub_generation_zig + # avoid need for wasm over a single hello world test + integration::integration_wasm_hello_world + # these currently attempt to install tomli regardless of python version + pep517::pep517_default_profile + pep517::pep517_editable_profile + # unimportant and simpler to skip, does not work with just `git init` + sdist::lib_with_parent_workspace_git_dep_sdist + ) + + cargo_src_test +} + +python_install_all() { + dobin "$(cargo_target_dir)"/maturin + + dodoc Changelog.md README.md + use doc && dodoc -r "${T}"/html + + if ! tc-is-cross-compiler; then + dobashcomp "${T}"/${PN} + dofishcomp "${T}"/${PN}.fish + dozshcomp "${T}"/_${PN} + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.13.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.13.2.ebuild new file mode 100644 index 00000000000..a48ed8b2042 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.13.2.ebuild @@ -0,0 +1,161 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_UPSTREAM_PEP517=standalone +PYTHON_COMPAT=( pypy3_11 python3_{11..15} ) +RUST_MIN_VER=1.89.0 +inherit cargo distutils-r1 flag-o-matic shell-completion toolchain-funcs + +DESCRIPTION="Build and publish crates with pyo3, rust-cpython and cffi bindings" +HOMEPAGE="https://www.maturin.rs/" +SRC_URI=" + https://github.com/PyO3/maturin/archive/refs/tags/v${PV}.tar.gz + -> ${P}.gh.tar.gz + https://distfiles.gentoo.org/pub/dev/ionen@gentoo.org/${P}-vendor.tar.xz +" +# ^ tarball also includes test-crates' Cargo.lock(s) crates for tests + +LICENSE="|| ( Apache-2.0 MIT ) doc? ( Apache-2.0 OFL-1.1 )" +LICENSE+=" + 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD + CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 openssl Unicode-3.0 ZLIB + BZIP2 +" # crates +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="doc +ssl test" +RESTRICT="!test? ( test )" + +RDEPEND=" + app-arch/xz-utils + app-arch/zstd:= + ssl? ( dev-libs/openssl:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + doc? ( >=app-text/mdbook-0.5 ) + test? ( + $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') + dev-python/boltons[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] + dev-vcs/git + elibc_musl? ( dev-util/patchelf ) + ) +" + +QA_FLAGS_IGNORED="usr/bin/${PN}" + +src_prepare() { + distutils-r1_src_prepare + + # we build the Rust executable (just once) via cargo_src_compile + sed -i -e '/setuptools_rust/d' -e '/rust_extensions/d' setup.py || die + + if use test; then + # used to prevent use of network during tests, and silence pip + # if it finds unrelated issues with system packages (bug #913613) + cat > "${T}"/pip.conf <<-EOF || die + [global] + quiet = 2 + + [install] + no-index = yes + no-dependencies = yes + EOF + + # uv does not work easily w/ network-sandbox, force virtualenv + sed -i 's/"uv"/"uv-not-found"/' tests/common/mod.rs || die + + # needed by several sdist:: tests + git init -q || die + git config --global user.email "larry@gentoo.org" || die + git config --global user.name "Larry the Cow" || die + git add . || die + git commit -qm init || die + + fi +} + +src_configure() { + export OPENSSL_NO_VENDOR=1 + export ZSTD_SYS_USE_PKG_CONFIG=1 + + # https://github.com/rust-lang/stacker/issues/79 + use s390 && ! is-flagq '-march=*' && + append-cflags $(test-flags-CC -march=z10) + + local myfeatures=( + # like release.yml + native-tls for better platform support than rustls + full + password-storage + $(usev ssl native-tls) + ) + + cargo_src_configure --no-default-features +} + +python_compile_all() { + cargo_src_compile + + use !doc || mdbook build -d "${T}"/html guide || die + + if ! tc-is-cross-compiler; then + local maturin=$(cargo_target_dir)/maturin + "${maturin}" completions bash > "${T}"/${PN} || die + "${maturin}" completions fish > "${T}"/${PN}.fish || die + "${maturin}" completions zsh > "${T}"/_${PN} || die + else + ewarn "shell completion files were skipped due to cross-compilation" + fi +} + +python_test() { + local -x MATURIN_TEST_PYTHON=${EPYTHON} + local -x PIP_CONFIG_FILE=${T}/pip.conf + local -x VIRTUALENV_SYSTEM_SITE_PACKAGES=1 + + # need this for (new) python versions not yet recognized by pyo3 + local -x PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 + + local CARGO_SKIP_TESTS=( + # picky cli output test that easily benignly fail (bug #937992) + cli_tests + # fragile depending on rust version, also wants libpypy*-c.so for pypy + errors::pyo3_no_extension_module + # fails for unsupported rust targets, non-issue here (bug #973104) + errors::pypi_compatibility_linux_tag + # unimportant tests that require uv, and not obvious to get it + # to work with network-sandbox (not worth the trouble) + develop::develop_uv_cases::case_1_hello_world + develop::develop_uv_cases::case_2_pyo3_ffi_pure + # compliance tests using zig (if present) need old libc (bug #946967) + integration::integration_cases::case_07_cffi_mixed_py_subdir + integration::integration_cases::case_16_pyo3_stub_generation_zig + # avoid need for wasm over a single hello world test + integration::integration_wasm_hello_world + # these currently attempt to install tomli regardless of python version + pep517::pep517_default_profile + pep517::pep517_editable_profile + # unimportant and simpler to skip, does not work with just `git init` + sdist::lib_with_parent_workspace_git_dep_sdist + ) + + cargo_src_test +} + +python_install_all() { + dobin "$(cargo_target_dir)"/maturin + + dodoc Changelog.md README.md + use doc && dodoc -r "${T}"/html + + if ! tc-is-cross-compiler; then + dobashcomp "${T}"/${PN} + dofishcomp "${T}"/${PN}.fish + dozshcomp "${T}"/_${PN} + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.13.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.13.3.ebuild new file mode 100644 index 00000000000..a48ed8b2042 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.13.3.ebuild @@ -0,0 +1,161 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_UPSTREAM_PEP517=standalone +PYTHON_COMPAT=( pypy3_11 python3_{11..15} ) +RUST_MIN_VER=1.89.0 +inherit cargo distutils-r1 flag-o-matic shell-completion toolchain-funcs + +DESCRIPTION="Build and publish crates with pyo3, rust-cpython and cffi bindings" +HOMEPAGE="https://www.maturin.rs/" +SRC_URI=" + https://github.com/PyO3/maturin/archive/refs/tags/v${PV}.tar.gz + -> ${P}.gh.tar.gz + https://distfiles.gentoo.org/pub/dev/ionen@gentoo.org/${P}-vendor.tar.xz +" +# ^ tarball also includes test-crates' Cargo.lock(s) crates for tests + +LICENSE="|| ( Apache-2.0 MIT ) doc? ( Apache-2.0 OFL-1.1 )" +LICENSE+=" + 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD + CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 openssl Unicode-3.0 ZLIB + BZIP2 +" # crates +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="doc +ssl test" +RESTRICT="!test? ( test )" + +RDEPEND=" + app-arch/xz-utils + app-arch/zstd:= + ssl? ( dev-libs/openssl:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + doc? ( >=app-text/mdbook-0.5 ) + test? ( + $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') + dev-python/boltons[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] + dev-vcs/git + elibc_musl? ( dev-util/patchelf ) + ) +" + +QA_FLAGS_IGNORED="usr/bin/${PN}" + +src_prepare() { + distutils-r1_src_prepare + + # we build the Rust executable (just once) via cargo_src_compile + sed -i -e '/setuptools_rust/d' -e '/rust_extensions/d' setup.py || die + + if use test; then + # used to prevent use of network during tests, and silence pip + # if it finds unrelated issues with system packages (bug #913613) + cat > "${T}"/pip.conf <<-EOF || die + [global] + quiet = 2 + + [install] + no-index = yes + no-dependencies = yes + EOF + + # uv does not work easily w/ network-sandbox, force virtualenv + sed -i 's/"uv"/"uv-not-found"/' tests/common/mod.rs || die + + # needed by several sdist:: tests + git init -q || die + git config --global user.email "larry@gentoo.org" || die + git config --global user.name "Larry the Cow" || die + git add . || die + git commit -qm init || die + + fi +} + +src_configure() { + export OPENSSL_NO_VENDOR=1 + export ZSTD_SYS_USE_PKG_CONFIG=1 + + # https://github.com/rust-lang/stacker/issues/79 + use s390 && ! is-flagq '-march=*' && + append-cflags $(test-flags-CC -march=z10) + + local myfeatures=( + # like release.yml + native-tls for better platform support than rustls + full + password-storage + $(usev ssl native-tls) + ) + + cargo_src_configure --no-default-features +} + +python_compile_all() { + cargo_src_compile + + use !doc || mdbook build -d "${T}"/html guide || die + + if ! tc-is-cross-compiler; then + local maturin=$(cargo_target_dir)/maturin + "${maturin}" completions bash > "${T}"/${PN} || die + "${maturin}" completions fish > "${T}"/${PN}.fish || die + "${maturin}" completions zsh > "${T}"/_${PN} || die + else + ewarn "shell completion files were skipped due to cross-compilation" + fi +} + +python_test() { + local -x MATURIN_TEST_PYTHON=${EPYTHON} + local -x PIP_CONFIG_FILE=${T}/pip.conf + local -x VIRTUALENV_SYSTEM_SITE_PACKAGES=1 + + # need this for (new) python versions not yet recognized by pyo3 + local -x PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 + + local CARGO_SKIP_TESTS=( + # picky cli output test that easily benignly fail (bug #937992) + cli_tests + # fragile depending on rust version, also wants libpypy*-c.so for pypy + errors::pyo3_no_extension_module + # fails for unsupported rust targets, non-issue here (bug #973104) + errors::pypi_compatibility_linux_tag + # unimportant tests that require uv, and not obvious to get it + # to work with network-sandbox (not worth the trouble) + develop::develop_uv_cases::case_1_hello_world + develop::develop_uv_cases::case_2_pyo3_ffi_pure + # compliance tests using zig (if present) need old libc (bug #946967) + integration::integration_cases::case_07_cffi_mixed_py_subdir + integration::integration_cases::case_16_pyo3_stub_generation_zig + # avoid need for wasm over a single hello world test + integration::integration_wasm_hello_world + # these currently attempt to install tomli regardless of python version + pep517::pep517_default_profile + pep517::pep517_editable_profile + # unimportant and simpler to skip, does not work with just `git init` + sdist::lib_with_parent_workspace_git_dep_sdist + ) + + cargo_src_test +} + +python_install_all() { + dobin "$(cargo_target_dir)"/maturin + + dodoc Changelog.md README.md + use doc && dodoc -r "${T}"/html + + if ! tc-is-cross-compiler; then + dobashcomp "${T}"/${PN} + dofishcomp "${T}"/${PN}.fish + dozshcomp "${T}"/_${PN} + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pahole/Manifest b/sdk_container/src/third_party/portage-stable/dev-util/pahole/Manifest index 1c9439a3cbb..e16a9eb2105 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/pahole/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-util/pahole/Manifest @@ -4,3 +4,5 @@ DIST dwarves-1.29.tar.sign 228 BLAKE2B ebf58feb5a3823263ef0bd2cd1fabfd4ed196a029 DIST dwarves-1.29.tar.xz 2341312 BLAKE2B a13738139445ed78243566d569e635600bbf9515c77bccde856ac41537541ad4f5c432913fd6becfa959b7a912a9d483b9d77d7aa597f7f5e96495bd70bfb7e2 SHA512 02f1922d8db46e60b4aedb4e37da34eaf28d6ee86d8c202c9eaaf31f8acc931dc2ec8c715fd62e1adef676022f366b45f3ac843d93e9b1e7865323bb0a92ca24 DIST dwarves-1.30.tar.sign 228 BLAKE2B 13de57292cf934ea41367227eb8468884c1b95714036b4b646a63d7bdbde57f378e54a053cbd42210a3001ed490ddda54b7b7c43fb3a360500a3c4f7314163ef SHA512 13862a60d331295492b85c52a70cf92a952c69a2a0c813cab0df9929a77f5f1e244d6f8a37f572f8d1a20f06e834aaa1b47123ac5f2fc9313b0cdd08dfc085d5 DIST dwarves-1.30.tar.xz 2345336 BLAKE2B c45da2970669baecbb2c12d962fa769b45f435d4ec5fd7fe0db587b1ee4ac072e431d626ab796193b967a4221a95072314a84c9009a431eff5b31ff324e896ee SHA512 222ad1f8e7bd4e079b4bf9059eaadebc23a0f4a95a77374b1162a1704acdceb794743e61bc14ec1cbda9a7c686f6972c243e784aeedf39cc15b6a8c6a4f1e2eb +DIST dwarves-1.31.tar.sign 228 BLAKE2B 1553b8437938b114a7345f2dc71e02b478b7198d186c44dcb7644412aff392170dc3a02ec1b15d2e077f96b445f6b587b255968920c3adb4aa708c0e77c9de3f SHA512 2d847911c9e371788a70ed08a28ef0d08953fe31a3b47965061bf3c44b3ef751c84c8b3601c3fd2ca83504ca68f1bf443968c581c28fce6f4de5d66b747e06ad +DIST dwarves-1.31.tar.xz 2350084 BLAKE2B b7206e6ba2caf687ab04f1e91db8370b6c5e35a2b9569464495716611376de8489f002c0eeba94e8b2b11e522641d34d31b957fb9814c3c4a837127ea63e8c90 SHA512 0761159c6e0400b32761c7497a2dde2f0ba1992a381480c2a20c33e3aceafeb3a1a7d58ecc3a8ae236a2dc5b4eca0ed38b5fc9b13a83cfc1e6b980ccf835214e diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pahole/files/pahole-1.31-dwarf_loader-llvm-20.patch b/sdk_container/src/third_party/portage-stable/dev-util/pahole/files/pahole-1.31-dwarf_loader-llvm-20.patch new file mode 100644 index 00000000000..fd0f0ffe1f4 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/pahole/files/pahole-1.31-dwarf_loader-llvm-20.patch @@ -0,0 +1,57 @@ +https://git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?id=4783a4ddd4740d948fb987ed8a7cf2932d5ad5c4 + +From 4783a4ddd4740d948fb987ed8a7cf2932d5ad5c4 Mon Sep 17 00:00:00 2001 +From: Yao Zi +Date: Sat, 13 Dec 2025 08:27:22 +0000 +Subject: dwarf_loader: Handle DW_AT_location attrs containing + DW_OP_plus_uconst + +LLVM has a GlobalMerge pass, which tries to group multiple global +variables together and address them with through a single register with +offsets coded in instructions, to reduce register pressure. Address of +symbols transformed by the pass may be represented by an DWARF +expression consisting of DW_OP_addrx and DW_OP_plus_uconst, which +naturally matches the way a merged variable is addressed. + +However, our dwarf_loader currently ignores anything but the first in +the location expression, including the DW_OP_plus_uconst atom, which +appears the second operation in this case. This could result in broken +BTF information produced by pahole, where several merged symbols are +given the same offset, even though in fact they don't overlap. + +LLVM has enabled MergeGlobal pass for PowerPC[1] and RISC-V[2] by +default since version 20, let's handle DW_OP_plus_uconst operations in +DW_AT_location attributes correctly to ensure correct BTF could be +produced for LLVM-built kernels. + +Fixes: a6ea527aab91 ("variable: Add ->addr member") +Reported-by: q66 +Closes: https://github.com/ClangBuiltLinux/linux/issues/2089 +Link: https://github.com/llvm/llvm-project/commit/aaa37d6755e6 # [1] +Link: https://github.com/llvm/llvm-project/commit/9d02264b03ea # [2] +Link: https://lore.kernel.org/dwarves/20251213082721.51017-2-me@ziyao.cc/ +Signed-off-by: Yao Zi +Acked-by: Yonghong Song +Signed-off-by: Alan Maguire +--- + dwarf_loader.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/dwarf_loader.c b/dwarf_loader.c +index 79be3f5..77aab8a 100644 +--- a/dwarf_loader.c ++++ b/dwarf_loader.c +@@ -708,6 +708,11 @@ static enum vscope dwarf__location(Dwarf_Die *die, uint64_t *addr, struct locati + case DW_OP_addrx: + scope = VSCOPE_GLOBAL; + *addr = expr[0].number; ++ ++ if (location->exprlen == 2 && ++ expr[1].atom == DW_OP_plus_uconst) ++ *addr += expr[1].number; ++ + break; + case DW_OP_reg1 ... DW_OP_reg31: + case DW_OP_breg0 ... DW_OP_breg31: +-- +cgit 1.3-korg diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pahole/pahole-1.31.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/pahole/pahole-1.31.ebuild new file mode 100644 index 00000000000..cf36dd8a34f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/pahole/pahole-1.31.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +inherit cmake python-single-r1 + +MY_PN=dwarves +MY_P=${MY_PN}-${PV%%_p*} + +DESCRIPTION="pahole (Poke-a-Hole) and other DWARF utilities" +HOMEPAGE="https://git.kernel.org/cgit/devel/pahole/pahole.git/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_BRANCH="next" + EGIT_REPO_URI="https://git.kernel.org/pub/scm/devel/pahole/pahole.git" + inherit git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/arnaldocarvalhodemelo.asc + inherit verify-sig + SRC_URI="http://fedorapeople.org/~acme/${MY_PN}/${MY_P}.tar.xz + verify-sig? ( http://fedorapeople.org/~acme/${MY_PN}/${MY_P}.tar.sign )" + if [[ ${PV} == *_p* ]] ; then + # Patch rollups from git format-patch. Sometimes there are important + # fixes in git which haven't been released (and no release in sight). + # Patch rollups are a bit better for understanding where changes have + # come from for users. + SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-patches.tar.xz" + fi + S="${WORKDIR}"/${MY_P} + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-arnaldocarvalhodemelo )" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +LICENSE="GPL-2" # only +SLOT="0" +IUSE="debug" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND="${PYTHON_DEPS} + >=dev-libs/elfutils-0.178 + virtual/zlib:=" +DEPEND="${RDEPEND}" + +DOCS=( README README.ctracer NEWS ) + +PATCHES=( + "${FILESDIR}/${PN}-1.10-python-import.patch" + "${FILESDIR}/${P}-dwarf_loader-llvm-20.patch" +) + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + return + fi + + if use verify-sig; then + verify-sig_uncompress_verify_unpack "${DISTDIR}"/${MY_P}.tar.xz \ + "${DISTDIR}"/${MY_P}.tar.sign + else + default + fi +} + +src_prepare() { + [[ -d "${WORKDIR}"/${P}-patches ]] && PATCHES+=( "${WORKDIR}"/${P}-patches ) + + cmake_src_prepare + python_fix_shebang ostra/ostra-cg ostra/python/ostra.py +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/Manifest b/sdk_container/src/third_party/portage-stable/dev-util/perf/Manifest index ff0f8aaeba2..ed404eed066 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/perf/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-util/perf/Manifest @@ -1,4 +1,6 @@ DIST linux-6.14.tar.xz 149408504 BLAKE2B 11835719804b406fe281ea1c276a84dc0cbaa808552ddcca9233d3eaeb1c001d0455c7205379b02de8e8db758c1bae6fe7ceb6697e63e3cf9ae7187dc7a9715e SHA512 71dcaa3772d8d9797c3ae30cae9c582b11a7047a3bbcb8dfd479a4dffb40ff0da74cf3d45175f50cc9992e338bcadd46c9c570f54054ca3bde6661768d3d22eb DIST linux-6.18.tar.xz 154309096 BLAKE2B b94b7b9bf18aca0c3e50baf79b009a1448fc6cd9c3ee019f641cc247dcf53a4abef4274ee0608ad8cd4943af69854363a95d26e117ff23620bb07dccb158859f SHA512 88599ffdec96d150c1feb9b261ba93bb0301a9d0e1ad6bef7aeab1f5372cbfc57d8b43c7e902bd8f76921d1dbd8189663c142ea869e51d0e2b483b150ee00fe0 DIST linux-6.19.tar.xz 156067644 BLAKE2B d1551c058e9a1201a0fa769b427255f13bb0d73fdd384e2c0302956cc9a1eeba255b013fa87a15fdad508bc00fdae2085590572c76cfe20fe2af31ba87b7d289 SHA512 01b29c7f4e5bc0c9802794c2cd027fece825f90417be229a71e60eefce530010d5d301749c54ae744e9d4a483518e769e2bb7e6e9209687681ad7fff11c3ed86 +DIST linux-7.0.tar.xz 157143652 BLAKE2B 3d9795083c8938f80f480de0d10bfd9c525640e59d5c7f22983de3f12ee42c84c31be902cafb05579ddb1c32bac5ed06b0d4953f9705450be185bd2d9ab08f89 SHA512 8c85b708342f8f09ca25b2234b22e93b62b144a9ef919fbb21827f52fa47498e778c79db1559524dd7fb360f95b2ce174171443c1859656c281be41d2b6c5a0b DIST patch-6.18.5.xz 414548 BLAKE2B 50fe5af5616fb080d90111c9b10d7f24ffa40ea6bcd7a645250622ff4adf7923f09bd1a93c82947c6e56a77ea457eb5df14aa215f6c3cae036cc1f11cc20f3d0 SHA512 2c07af94135abbb1fc118be061c7b39e3b692783e67231954eabe1ccac8948a126084e651d5648aebd6d58667ac82ba41264057df1cc81fcaa161df5eee56395 +DIST patch-6.19.12.xz 948944 BLAKE2B 155a7b412f7e0699c6b23cc3a53b9ab0fe38980d9ece77977f50c51f748cb79e4076fde7eac574ee68a85dbe661a4e6bc10ed5a6cb5b1fc5fc3b1ec150f25757 SHA512 375caad1de11ef1466f7e2fa85775e990f215bae0e269d4a97661c936f633df40c51af849880ef05c4cd323cf1d27804b72222cb12df98af021623742e000330 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.14.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.14.ebuild index f6bccde71da..3ea6211b2a5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.14.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.14.ebuild @@ -1,9 +1,10 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( {18..20} ) +LLVM_OPTIONAL=1 PYTHON_COMPAT=( python3_{11..13} python3_13t) inherit bash-completion-r1 estack flag-o-matic linux-info llvm-r1 toolchain-funcs python-r1 @@ -39,6 +40,7 @@ IUSE="abi_mips_o32 abi_mips_n32 abi_mips_n64 babeltrace capstone big-endian bpf REQUIRED_USE=" ${PYTHON_REQUIRED_USE} + bpf? ( ${LLVM_REQUIRED_USE} ) " # setuptools (and Python) are always needed even if not building Python bindings diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.18.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.18.5.ebuild index 5ad740b933c..d2c4f064d6f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.18.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.18.5.ebuild @@ -4,6 +4,7 @@ EAPI=8 LLVM_COMPAT=( {18..21} ) +LLVM_OPTIONAL=1 PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t) inherit bash-completion-r1 estack flag-o-matic linux-info llvm-r1 toolchain-funcs python-single-r1 @@ -39,6 +40,7 @@ IUSE="abi_mips_o32 abi_mips_n32 abi_mips_n64 babeltrace capstone big-endian bpf REQUIRED_USE=" ${PYTHON_REQUIRED_USE} + bpf? ( ${LLVM_REQUIRED_USE} ) " # setuptools (and Python) are always needed even if not building Python bindings diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.19.12.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.19.12.ebuild new file mode 100644 index 00000000000..8dae6b0c428 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.19.12.ebuild @@ -0,0 +1,338 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( {18..21} ) +LLVM_OPTIONAL=1 +PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t) +inherit bash-completion-r1 estack flag-o-matic linux-info llvm-r2 toolchain-funcs python-single-r1 + +DESCRIPTION="Userland tools for Linux Performance Counters" +HOMEPAGE="https://perfwiki.github.io/main/" + +LINUX_V="${PV:0:1}.x" +if [[ ${PV} == *_rc* ]] ; then + LINUX_VER=$(ver_cut 1-2).$(($(ver_cut 3)-1)) + PATCH_VERSION=$(ver_cut 1-3) + LINUX_PATCH=patch-${PV//_/-}.xz + SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/testing/${LINUX_PATCH} + https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/testing/v${PATCH_VERSION}/${LINUX_PATCH}" +elif [[ ${PV} == *.*.* ]] ; then + # stable-release series + LINUX_VER=$(ver_cut 1-2) + LINUX_PATCH=patch-${PV}.xz + SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_PATCH}" +else + LINUX_VER=${PV} +fi + +LINUX_SOURCES="linux-${LINUX_VER}.tar.xz" +SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" + +S_K="${WORKDIR}/linux-${LINUX_VER}" +S="${S_K}/tools/perf" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" +IUSE="abi_mips_o32 abi_mips_n32 abi_mips_n64 babeltrace capstone big-endian bpf caps crypt debug gtk java libpfm +libtraceevent +libtracefs lzma numa perl +python +slang systemtap tcmalloc unwind" + +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + bpf? ( ${LLVM_REQUIRED_USE} ) +" + +# setuptools (and Python) are always needed even if not building Python bindings +BDEPEND=" + ${LINUX_PATCH+dev-util/patchutils} + ${PYTHON_DEPS} + >=app-arch/tar-1.34-r2 + $(python_gen_cond_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ') + app-alternatives/yacc + app-alternatives/lex + sys-apps/which + virtual/pkgconfig + app-text/asciidoc + app-text/sgml-common + app-text/xmlto + sys-process/time +" + +RDEPEND=" + babeltrace? ( dev-util/babeltrace:0/1 ) + bpf? ( + dev-libs/libbpf + dev-util/bpftool + dev-util/pahole + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT}= + llvm-core/llvm:${LLVM_SLOT}= + ') + ) + caps? ( sys-libs/libcap ) + capstone? ( dev-libs/capstone ) + crypt? ( dev-libs/openssl:= ) + gtk? ( x11-libs/gtk+:2 ) + java? ( virtual/jre:* ) + libpfm? ( dev-libs/libpfm:= ) + libtraceevent? ( dev-libs/libtraceevent ) + libtracefs? ( dev-libs/libtracefs ) + lzma? ( app-arch/xz-utils ) + numa? ( sys-process/numactl ) + perl? ( dev-lang/perl:= ) + python? ( ${PYTHON_DEPS} ) + slang? ( sys-libs/slang ) + systemtap? ( dev-debug/systemtap ) + tcmalloc? ( dev-util/google-perftools ) + unwind? ( sys-libs/libunwind:= ) + app-arch/zstd:= + dev-libs/elfutils + virtual/zlib:= + virtual/libcrypt +" + +DEPEND="${RDEPEND} + >=sys-kernel/linux-headers-5.10 + java? ( virtual/jdk ) +" + +QA_FLAGS_IGNORED=( + 'usr/bin/perf-read-vdso32' # not linked with anything except for libc + 'usr/libexec/perf-core/dlfilters/.*' # plugins +) + +pkg_setup() { + local CONFIG_CHECK=" + ~!SCHED_OMIT_FRAME_POINTER + ~DEBUG_INFO + ~FRAME_POINTER + ~FTRACE + ~FTRACE_SYSCALLS + ~FUNCTION_TRACER + ~KALLSYMS + ~KALLSYMS_ALL + ~KPROBES + ~KPROBE_EVENTS + ~PERF_EVENTS + ~STACKTRACE + ~TRACEPOINTS + ~UPROBES + ~UPROBE_EVENTS + " + + use bpf && llvm-r2_pkg_setup + # We enable python unconditionally as libbpf always generates + # API headers using python script + python_setup + + if use bpf ; then + CONFIG_CHECK+="~BPF ~BPF_EVENTS ~BPF_SYSCALL ~DEBUG_INFO_BTF ~HAVE_EBPF_JIT ~UNWINDER_FRAME_POINTER" + fi + + linux-info_pkg_setup +} + +# src_unpack and src_prepare are copied to dev-util/bpftool since +# it's building from the same tarball, please keep it in sync with bpftool +src_unpack() { + local paths=( + 'arch/*/include/*' 'arch/*/lib/*' 'arch/*/tools/*' 'include/*' + 'kernel/bpf/*' 'lib/*' 'scripts/*' 'tools/arch/*' 'tools/bpf/*' + 'tools/build/*' 'tools/include/*' 'tools/lib/*' 'tools/perf/*' + 'tools/scripts/*' + ) + + # We expect the tar implementation to support the -j option (both + # GNU tar and libarchive's tar support that). + echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}" + gtar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \ + "${paths[@]/#/linux-${LINUX_VER}/}" || die + + if [[ -n ${LINUX_PATCH} ]] ; then + eshopts_push -o noglob + ebegin "Filtering partial source patch" + xzcat "${DISTDIR}"/${LINUX_PATCH} | filterdiff -p1 ${paths[@]/#/-i} > ${P}.patch + assert -n "Unpacking to ${P} from ${DISTDIR}/${LINUX_PATCH} failed" + eend $? || die "filterdiff failed" + test -s ${P}.patch || die "patch is empty?!" + eshopts_pop + fi + + local a + for a in ${A}; do + [[ ${a} == ${LINUX_SOURCES} ]] && continue + [[ ${a} == ${LINUX_PATCH} ]] && continue + unpack ${a} + done +} + +src_prepare() { + default + if [[ -n ${LINUX_PATCH} ]] ; then + pushd "${S_K}" >/dev/null || die + eapply "${WORKDIR}"/${P}.patch + popd || die + fi + + pushd "${S_K}" >/dev/null || die + # Gentoo patches go here + popd || die + + # Drop some upstream too-developer-oriented flags and fix the + # Makefile in general + sed -i \ + -e "s@\$(sysconfdir_SQ)/bash_completion.d@$(get_bashcompdir)@" \ + "${S}"/Makefile.perf || die + # A few places still use -Werror w/out $(WERROR) protection. + sed -i -e 's@-Werror@@' \ + "${S}"/Makefile.perf "${S_K}"/tools/lib/bpf/Makefile \ + "${S_K}"/tools/lib/perf/Makefile || die + + # Avoid the call to make kernelversion + sed -i -e '/PERF-VERSION-GEN/d' Makefile.perf || die + echo "#define PERF_VERSION \"${PV}\"" > PERF-VERSION-FILE + + # The code likes to compile local assembly files which lack ELF markings. + find -name '*.S' -exec sed -i '$a.section .note.GNU-stack,"",%progbits' {} + +} + +puse() { usex $1 "" 1; } +perf_make() { + # The arch parsing is a bit funky. The perf tools package is integrated + # into the kernel, so it wants an ARCH that looks like the kernel arch, + # but it also wants to know about the split value -- i386/x86_64 vs just + # x86. We can get that by telling the func to use an older linux version. + # It's kind of a hack, but not that bad ... + + # LIBDIR sets a search path of perf-gtk.so. Bug 515954 + + local arch=$(tc-arch-kernel) + local java_dir + use java && java_dir="${EPREFIX}/etc/java-config-2/current-system-vm" + + # sync this with the whitelist in tools/perf/Makefile.config + local disable_libdw + if ! use amd64 && ! use x86 && \ + ! use arm && \ + ! use arm64 && \ + ! use ppc && ! use ppc64 \ + ! use s390 && \ + ! use riscv && \ + ! use loong + then + disable_libdw=1 + fi + + # perf directly invokes LD for linking without going through CC, on mips + # it is required to specify the emulation. port of below buildroot patch + # https://patchwork.ozlabs.org/project/buildroot/patch/20170217105905.32151-1-Vincent.Riera@imgtec.com/ + local linker="$(tc-getLD)" + if use mips + then + if use big-endian + then + use abi_mips_n64 && linker+=" -m elf64btsmip" + use abi_mips_n32 && linker+=" -m elf32btsmipn32" + use abi_mips_o32 && linker+=" -m elf32btsmip" + else + use abi_mips_n64 && linker+=" -m elf64ltsmip" + use abi_mips_n32 && linker+=" -m elf32ltsmipn32" + use abi_mips_o32 && linker+=" -m elf32ltsmip" + fi + fi + + # FIXME: NO_CORESIGHT + local emakeargs=( + V=1 VF=1 + HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)" + CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="${linker}" NM="$(tc-getNM)" + CLANG="${CHOST}-clang" + PKG_CONFIG="$(tc-getPKG_CONFIG)" + prefix="${EPREFIX}/usr" bindir_relative="bin" + tipdir="share/doc/${PF}" + EXTRA_CFLAGS="${CPPFLAGS} ${CFLAGS}" + EXTRA_LDFLAGS="${LDFLAGS}" + ARCH="${arch}" + BUILD_BPF_SKEL=$(usex bpf 1 "") + BUILD_NONDISTRO= + JDIR="${java_dir}" + CORESIGHT= + GTK2=$(usex gtk 1 "") + feature-gtk2-infobar=$(usex gtk 1 "") + LIBPERL=$(usex perl 1 "") + NO_AUXTRACE= + NO_BACKTRACE= + NO_CAPSTONE=$(puse capstone) + NO_DEMANGLE= + NO_JVMTI=$(puse java) + NO_LIBAUDIT=1 + NO_LIBBABELTRACE=$(puse babeltrace) + NO_LIBBIONIC=1 + NO_LIBBPF=$(puse bpf) + NO_LIBCAP=$(puse caps) + NO_LIBCRYPTO=$(puse crypt) + NO_LIBDW_DWARF_UNWIND="${disable_libdw}" + NO_LIBELF= + NO_LIBLLVM=$(puse bpf) + NO_LIBNUMA=$(puse numa) + NO_LIBPFM4=$(puse libpfm) + NO_LIBPYTHON=$(puse python) + NO_LIBTRACEEVENT=$(puse libtraceevent) + NO_LIBUNWIND=$(puse unwind) + NO_SDT=$(puse systemtap) + NO_SHELLCHECK=1 + NO_SLANG=$(puse slang) + NO_LZMA=$(puse lzma) + NO_ZLIB= + TCMALLOC=$(usex tcmalloc 1 "") + WERROR=0 + DEBUG=$(usex debug 1 "") + libdir="${EPREFIX}/usr/$(get_libdir)" + LIBDIR="${EPREFIX}/usr/libexec/perf-core" + "$@" + ) + NO_JEVENTS=$(puse python) emake "${emakeargs[@]}" +} + +src_compile() { + filter-lto + + # capstone-6 compatibility (#964350) + append-cppflags -DCAPSTONE_AARCH64_COMPAT_HEADER -DCAPSTONE_SYSTEMZ_COMPAT_HEADER + + perf_make -f Makefile.perf + perf_make -C Documentation man +} + +src_test() { + : +} + +src_install() { + perf_make -f Makefile.perf install DESTDIR="${D}" + + if use python; then + perf_make -f Makefile.perf install-python_ext DESTDIR="${D}" + fi + + if use gtk; then + local libdir + libdir="$(get_libdir)" + # on some arches it ends up in lib even on 64bit, ppc64 for instance. + [[ -f "${ED}"/usr/lib/libperf-gtk.so ]] && libdir="lib" + mv "${ED}"/usr/${libdir}/libperf-gtk.so \ + "${ED}"/usr/libexec/perf-core || die + fi + + dodoc CREDITS + + dodoc *txt Documentation/*.txt + + # perf needs this decompressed to print out tips for users + docompress -x /usr/share/doc/${PF}/tips.txt + + doman Documentation/*.1 +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.19.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.19.ebuild deleted file mode 100644 index 5ad740b933c..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.19.ebuild +++ /dev/null @@ -1,336 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( {18..21} ) -PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t) -inherit bash-completion-r1 estack flag-o-matic linux-info llvm-r1 toolchain-funcs python-single-r1 - -DESCRIPTION="Userland tools for Linux Performance Counters" -HOMEPAGE="https://perfwiki.github.io/main/" - -LINUX_V="${PV:0:1}.x" -if [[ ${PV} == *_rc* ]] ; then - LINUX_VER=$(ver_cut 1-2).$(($(ver_cut 3)-1)) - PATCH_VERSION=$(ver_cut 1-3) - LINUX_PATCH=patch-${PV//_/-}.xz - SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/testing/${LINUX_PATCH} - https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/testing/v${PATCH_VERSION}/${LINUX_PATCH}" -elif [[ ${PV} == *.*.* ]] ; then - # stable-release series - LINUX_VER=$(ver_cut 1-2) - LINUX_PATCH=patch-${PV}.xz - SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_PATCH}" -else - LINUX_VER=${PV} -fi - -LINUX_SOURCES="linux-${LINUX_VER}.tar.xz" -SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" - -S_K="${WORKDIR}/linux-${LINUX_VER}" -S="${S_K}/tools/perf" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" -IUSE="abi_mips_o32 abi_mips_n32 abi_mips_n64 babeltrace capstone big-endian bpf caps crypt debug gtk java libpfm +libtraceevent +libtracefs lzma numa perl +python +slang systemtap tcmalloc unwind" - -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} -" - -# setuptools (and Python) are always needed even if not building Python bindings -BDEPEND=" - ${LINUX_PATCH+dev-util/patchutils} - ${PYTHON_DEPS} - >=app-arch/tar-1.34-r2 - $(python_gen_cond_dep ' - dev-python/setuptools[${PYTHON_USEDEP}] - ') - app-alternatives/yacc - app-alternatives/lex - sys-apps/which - virtual/pkgconfig - app-text/asciidoc - app-text/sgml-common - app-text/xmlto - sys-process/time -" - -RDEPEND=" - babeltrace? ( dev-util/babeltrace:0/1 ) - bpf? ( - dev-libs/libbpf - dev-util/bpftool - dev-util/pahole - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT}= - llvm-core/llvm:${LLVM_SLOT}= - ') - ) - caps? ( sys-libs/libcap ) - capstone? ( dev-libs/capstone ) - crypt? ( dev-libs/openssl:= ) - gtk? ( x11-libs/gtk+:2 ) - java? ( virtual/jre:* ) - libpfm? ( dev-libs/libpfm:= ) - libtraceevent? ( dev-libs/libtraceevent ) - libtracefs? ( dev-libs/libtracefs ) - lzma? ( app-arch/xz-utils ) - numa? ( sys-process/numactl ) - perl? ( dev-lang/perl:= ) - python? ( ${PYTHON_DEPS} ) - slang? ( sys-libs/slang ) - systemtap? ( dev-debug/systemtap ) - tcmalloc? ( dev-util/google-perftools ) - unwind? ( sys-libs/libunwind:= ) - app-arch/zstd:= - dev-libs/elfutils - virtual/zlib:= - virtual/libcrypt -" - -DEPEND="${RDEPEND} - >=sys-kernel/linux-headers-5.10 - java? ( virtual/jdk ) -" - -QA_FLAGS_IGNORED=( - 'usr/bin/perf-read-vdso32' # not linked with anything except for libc - 'usr/libexec/perf-core/dlfilters/.*' # plugins -) - -pkg_setup() { - local CONFIG_CHECK=" - ~!SCHED_OMIT_FRAME_POINTER - ~DEBUG_INFO - ~FRAME_POINTER - ~FTRACE - ~FTRACE_SYSCALLS - ~FUNCTION_TRACER - ~KALLSYMS - ~KALLSYMS_ALL - ~KPROBES - ~KPROBE_EVENTS - ~PERF_EVENTS - ~STACKTRACE - ~TRACEPOINTS - ~UPROBES - ~UPROBE_EVENTS - " - - use bpf && llvm-r1_pkg_setup - # We enable python unconditionally as libbpf always generates - # API headers using python script - python_setup - - if use bpf ; then - CONFIG_CHECK+="~BPF ~BPF_EVENTS ~BPF_SYSCALL ~DEBUG_INFO_BTF ~HAVE_EBPF_JIT ~UNWINDER_FRAME_POINTER" - fi - - linux-info_pkg_setup -} - -# src_unpack and src_prepare are copied to dev-util/bpftool since -# it's building from the same tarball, please keep it in sync with bpftool -src_unpack() { - local paths=( - 'arch/*/include/*' 'arch/*/lib/*' 'arch/*/tools/*' 'include/*' - 'kernel/bpf/*' 'lib/*' 'scripts/*' 'tools/arch/*' 'tools/bpf/*' - 'tools/build/*' 'tools/include/*' 'tools/lib/*' 'tools/perf/*' - 'tools/scripts/*' - ) - - # We expect the tar implementation to support the -j option (both - # GNU tar and libarchive's tar support that). - echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}" - gtar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \ - "${paths[@]/#/linux-${LINUX_VER}/}" || die - - if [[ -n ${LINUX_PATCH} ]] ; then - eshopts_push -o noglob - ebegin "Filtering partial source patch" - xzcat "${DISTDIR}"/${LINUX_PATCH} | filterdiff -p1 ${paths[@]/#/-i} > ${P}.patch - assert -n "Unpacking to ${P} from ${DISTDIR}/${LINUX_PATCH} failed" - eend $? || die "filterdiff failed" - test -s ${P}.patch || die "patch is empty?!" - eshopts_pop - fi - - local a - for a in ${A}; do - [[ ${a} == ${LINUX_SOURCES} ]] && continue - [[ ${a} == ${LINUX_PATCH} ]] && continue - unpack ${a} - done -} - -src_prepare() { - default - if [[ -n ${LINUX_PATCH} ]] ; then - pushd "${S_K}" >/dev/null || die - eapply "${WORKDIR}"/${P}.patch - popd || die - fi - - pushd "${S_K}" >/dev/null || die - # Gentoo patches go here - popd || die - - # Drop some upstream too-developer-oriented flags and fix the - # Makefile in general - sed -i \ - -e "s@\$(sysconfdir_SQ)/bash_completion.d@$(get_bashcompdir)@" \ - "${S}"/Makefile.perf || die - # A few places still use -Werror w/out $(WERROR) protection. - sed -i -e 's@-Werror@@' \ - "${S}"/Makefile.perf "${S_K}"/tools/lib/bpf/Makefile \ - "${S_K}"/tools/lib/perf/Makefile || die - - # Avoid the call to make kernelversion - sed -i -e '/PERF-VERSION-GEN/d' Makefile.perf || die - echo "#define PERF_VERSION \"${PV}\"" > PERF-VERSION-FILE - - # The code likes to compile local assembly files which lack ELF markings. - find -name '*.S' -exec sed -i '$a.section .note.GNU-stack,"",%progbits' {} + -} - -puse() { usex $1 "" 1; } -perf_make() { - # The arch parsing is a bit funky. The perf tools package is integrated - # into the kernel, so it wants an ARCH that looks like the kernel arch, - # but it also wants to know about the split value -- i386/x86_64 vs just - # x86. We can get that by telling the func to use an older linux version. - # It's kind of a hack, but not that bad ... - - # LIBDIR sets a search path of perf-gtk.so. Bug 515954 - - local arch=$(tc-arch-kernel) - local java_dir - use java && java_dir="${EPREFIX}/etc/java-config-2/current-system-vm" - - # sync this with the whitelist in tools/perf/Makefile.config - local disable_libdw - if ! use amd64 && ! use x86 && \ - ! use arm && \ - ! use arm64 && \ - ! use ppc && ! use ppc64 \ - ! use s390 && \ - ! use riscv && \ - ! use loong - then - disable_libdw=1 - fi - - # perf directly invokes LD for linking without going through CC, on mips - # it is required to specify the emulation. port of below buildroot patch - # https://patchwork.ozlabs.org/project/buildroot/patch/20170217105905.32151-1-Vincent.Riera@imgtec.com/ - local linker="$(tc-getLD)" - if use mips - then - if use big-endian - then - use abi_mips_n64 && linker+=" -m elf64btsmip" - use abi_mips_n32 && linker+=" -m elf32btsmipn32" - use abi_mips_o32 && linker+=" -m elf32btsmip" - else - use abi_mips_n64 && linker+=" -m elf64ltsmip" - use abi_mips_n32 && linker+=" -m elf32ltsmipn32" - use abi_mips_o32 && linker+=" -m elf32ltsmip" - fi - fi - - # FIXME: NO_CORESIGHT - local emakeargs=( - V=1 VF=1 - HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)" - CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="${linker}" NM="$(tc-getNM)" - CLANG="${CHOST}-clang" - PKG_CONFIG="$(tc-getPKG_CONFIG)" - prefix="${EPREFIX}/usr" bindir_relative="bin" - tipdir="share/doc/${PF}" - EXTRA_CFLAGS="${CPPFLAGS} ${CFLAGS}" - EXTRA_LDFLAGS="${LDFLAGS}" - ARCH="${arch}" - BUILD_BPF_SKEL=$(usex bpf 1 "") - BUILD_NONDISTRO= - JDIR="${java_dir}" - CORESIGHT= - GTK2=$(usex gtk 1 "") - feature-gtk2-infobar=$(usex gtk 1 "") - LIBPERL=$(usex perl 1 "") - NO_AUXTRACE= - NO_BACKTRACE= - NO_CAPSTONE=$(puse capstone) - NO_DEMANGLE= - NO_JVMTI=$(puse java) - NO_LIBAUDIT=1 - NO_LIBBABELTRACE=$(puse babeltrace) - NO_LIBBIONIC=1 - NO_LIBBPF=$(puse bpf) - NO_LIBCAP=$(puse caps) - NO_LIBCRYPTO=$(puse crypt) - NO_LIBDW_DWARF_UNWIND="${disable_libdw}" - NO_LIBELF= - NO_LIBLLVM=$(puse bpf) - NO_LIBNUMA=$(puse numa) - NO_LIBPFM4=$(puse libpfm) - NO_LIBPYTHON=$(puse python) - NO_LIBTRACEEVENT=$(puse libtraceevent) - NO_LIBUNWIND=$(puse unwind) - NO_SDT=$(puse systemtap) - NO_SHELLCHECK=1 - NO_SLANG=$(puse slang) - NO_LZMA=$(puse lzma) - NO_ZLIB= - TCMALLOC=$(usex tcmalloc 1 "") - WERROR=0 - DEBUG=$(usex debug 1 "") - libdir="${EPREFIX}/usr/$(get_libdir)" - LIBDIR="${EPREFIX}/usr/libexec/perf-core" - "$@" - ) - NO_JEVENTS=$(puse python) emake "${emakeargs[@]}" -} - -src_compile() { - filter-lto - - # capstone-6 compatibility (#964350) - append-cppflags -DCAPSTONE_AARCH64_COMPAT_HEADER -DCAPSTONE_SYSTEMZ_COMPAT_HEADER - - perf_make -f Makefile.perf - perf_make -C Documentation man -} - -src_test() { - : -} - -src_install() { - perf_make -f Makefile.perf install DESTDIR="${D}" - - if use python; then - perf_make -f Makefile.perf install-python_ext DESTDIR="${D}" - fi - - if use gtk; then - local libdir - libdir="$(get_libdir)" - # on some arches it ends up in lib even on 64bit, ppc64 for instance. - [[ -f "${ED}"/usr/lib/libperf-gtk.so ]] && libdir="lib" - mv "${ED}"/usr/${libdir}/libperf-gtk.so \ - "${ED}"/usr/libexec/perf-core || die - fi - - dodoc CREDITS - - dodoc *txt Documentation/*.txt - - # perf needs this decompressed to print out tips for users - docompress -x /usr/share/doc/${PF}/tips.txt - - doman Documentation/*.1 -} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-7.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-7.0.ebuild new file mode 100644 index 00000000000..57872aa22f6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-7.0.ebuild @@ -0,0 +1,323 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( {18..22} ) +LLVM_OPTIONAL=1 +PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t) +inherit bash-completion-r1 estack flag-o-matic linux-info llvm-r2 toolchain-funcs python-single-r1 + +DESCRIPTION="Userland tools for Linux Performance Counters" +HOMEPAGE="https://perfwiki.github.io/main/" + +LINUX_V="${PV:0:1}.x" +if [[ ${PV} == *_rc* ]] ; then + LINUX_VER=$(ver_cut 1-2).$(($(ver_cut 3)-1)) + PATCH_VERSION=$(ver_cut 1-3) + LINUX_PATCH=patch-${PV//_/-}.xz + SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/testing/${LINUX_PATCH} + https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/testing/v${PATCH_VERSION}/${LINUX_PATCH}" +elif [[ ${PV} == *.*.* ]] ; then + # stable-release series + LINUX_VER=$(ver_cut 1-2) + LINUX_PATCH=patch-${PV}.xz + SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_PATCH}" +else + LINUX_VER=${PV} +fi + +LINUX_SOURCES="linux-${LINUX_VER}.tar.xz" +SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" + +S_K="${WORKDIR}/linux-${LINUX_VER}" +S="${S_K}/tools/perf" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" +IUSE="abi_mips_o32 abi_mips_n32 abi_mips_n64 babeltrace capstone big-endian bpf caps crypt debug gtk java libpfm +libtraceevent +libtracefs lzma numa perl +python +slang systemtap tcmalloc" + +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + bpf? ( ${LLVM_REQUIRED_USE} ) +" + +# setuptools (and Python) are always needed even if not building Python bindings +BDEPEND=" + ${LINUX_PATCH+dev-util/patchutils} + ${PYTHON_DEPS} + >=app-arch/tar-1.34-r2 + $(python_gen_cond_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ') + app-alternatives/yacc + app-alternatives/lex + sys-apps/which + virtual/pkgconfig + app-text/asciidoc + app-text/sgml-common + app-text/xmlto + sys-process/time +" + +RDEPEND=" + babeltrace? ( dev-util/babeltrace:0/1 ) + bpf? ( + dev-libs/libbpf + dev-util/bpftool + dev-util/pahole + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT}= + llvm-core/llvm:${LLVM_SLOT}= + ') + ) + caps? ( sys-libs/libcap ) + capstone? ( dev-libs/capstone ) + crypt? ( dev-libs/openssl:= ) + gtk? ( x11-libs/gtk+:2 ) + java? ( virtual/jre:* ) + libpfm? ( dev-libs/libpfm:= ) + libtraceevent? ( dev-libs/libtraceevent ) + libtracefs? ( dev-libs/libtracefs ) + lzma? ( app-arch/xz-utils ) + numa? ( sys-process/numactl ) + perl? ( dev-lang/perl:= ) + python? ( ${PYTHON_DEPS} ) + slang? ( sys-libs/slang ) + systemtap? ( dev-debug/systemtap ) + tcmalloc? ( dev-util/google-perftools ) + app-arch/zstd:= + dev-libs/elfutils + virtual/zlib:= + virtual/libcrypt +" + +DEPEND="${RDEPEND} + >=sys-kernel/linux-headers-5.10 + java? ( virtual/jdk ) +" + +QA_FLAGS_IGNORED=( + 'usr/bin/perf-read-vdso32' # not linked with anything except for libc + 'usr/libexec/perf-core/dlfilters/.*' # plugins +) + +pkg_setup() { + local CONFIG_CHECK=" + ~!SCHED_OMIT_FRAME_POINTER + ~DEBUG_INFO + ~FRAME_POINTER + ~FTRACE + ~FTRACE_SYSCALLS + ~FUNCTION_TRACER + ~KALLSYMS + ~KALLSYMS_ALL + ~KPROBES + ~KPROBE_EVENTS + ~PERF_EVENTS + ~STACKTRACE + ~TRACEPOINTS + ~UPROBES + ~UPROBE_EVENTS + " + + use bpf && llvm-r2_pkg_setup + # We enable python unconditionally as libbpf always generates + # API headers using python script + python_setup + + if use bpf ; then + CONFIG_CHECK+="~BPF ~BPF_EVENTS ~BPF_SYSCALL ~DEBUG_INFO_BTF ~HAVE_EBPF_JIT" + fi + + linux-info_pkg_setup +} + +# src_unpack and src_prepare are copied to dev-util/bpftool since +# it's building from the same tarball, please keep it in sync with bpftool +src_unpack() { + local paths=( + 'arch/*/include/*' 'arch/*/lib/*' 'arch/*/tools/*' 'include/*' + 'kernel/bpf/*' 'lib/*' 'scripts/*' 'tools/arch/*' 'tools/bpf/*' + 'tools/build/*' 'tools/include/*' 'tools/lib/*' 'tools/perf/*' + 'tools/scripts/*' + ) + + # We expect the tar implementation to support the -j option (both + # GNU tar and libarchive's tar support that). + echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}" + gtar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \ + "${paths[@]/#/linux-${LINUX_VER}/}" || die + + if [[ -n ${LINUX_PATCH} ]] ; then + eshopts_push -o noglob + ebegin "Filtering partial source patch" + xzcat "${DISTDIR}"/${LINUX_PATCH} | filterdiff -p1 ${paths[@]/#/-i} > ${P}.patch + assert -n "Unpacking to ${P} from ${DISTDIR}/${LINUX_PATCH} failed" + eend $? || die "filterdiff failed" + test -s ${P}.patch || die "patch is empty?!" + eshopts_pop + fi + + local a + for a in ${A}; do + [[ ${a} == ${LINUX_SOURCES} ]] && continue + [[ ${a} == ${LINUX_PATCH} ]] && continue + unpack ${a} + done +} + +src_prepare() { + default + if [[ -n ${LINUX_PATCH} ]] ; then + pushd "${S_K}" >/dev/null || die + eapply "${WORKDIR}"/${P}.patch + popd || die + fi + + pushd "${S_K}" >/dev/null || die + # Gentoo patches go here + popd || die + + # Drop some upstream too-developer-oriented flags and fix the + # Makefile in general + sed -i \ + -e "s@\$(sysconfdir_SQ)/bash_completion.d@$(get_bashcompdir)@" \ + "${S}"/Makefile.perf || die + # A few places still use -Werror w/out $(WERROR) protection. + sed -i -e 's@-Werror@@' \ + "${S}"/Makefile.perf "${S_K}"/tools/lib/bpf/Makefile \ + "${S_K}"/tools/lib/perf/Makefile || die + + # Avoid the call to make kernelversion + sed -i -e '/PERF-VERSION-GEN/d' Makefile.perf || die + echo "#define PERF_VERSION \"${PV}\"" > PERF-VERSION-FILE + + # The code likes to compile local assembly files which lack ELF markings. + find -name '*.S' -exec sed -i '$a.section .note.GNU-stack,"",%progbits' {} + +} + +puse() { usex $1 "" 1; } +perf_make() { + # The arch parsing is a bit funky. The perf tools package is integrated + # into the kernel, so it wants an ARCH that looks like the kernel arch, + # but it also wants to know about the split value -- i386/x86_64 vs just + # x86. We can get that by telling the func to use an older linux version. + # It's kind of a hack, but not that bad ... + + # LIBDIR sets a search path of perf-gtk.so. Bug 515954 + + local arch=$(tc-arch-kernel) + local java_dir + use java && java_dir="${EPREFIX}/etc/java-config-2/current-system-vm" + + # perf directly invokes LD for linking without going through CC, on mips + # it is required to specify the emulation. port of below buildroot patch + # https://patchwork.ozlabs.org/project/buildroot/patch/20170217105905.32151-1-Vincent.Riera@imgtec.com/ + local linker="$(tc-getLD)" + if use mips + then + if use big-endian + then + use abi_mips_n64 && linker+=" -m elf64btsmip" + use abi_mips_n32 && linker+=" -m elf32btsmipn32" + use abi_mips_o32 && linker+=" -m elf32btsmip" + else + use abi_mips_n64 && linker+=" -m elf64ltsmip" + use abi_mips_n32 && linker+=" -m elf32ltsmipn32" + use abi_mips_o32 && linker+=" -m elf32ltsmip" + fi + fi + + # FIXME: NO_CORESIGHT + local emakeargs=( + V=1 VF=1 + HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)" + CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="${linker}" NM="$(tc-getNM)" + CLANG="${CHOST}-clang" + PKG_CONFIG="$(tc-getPKG_CONFIG)" + prefix="${EPREFIX}/usr" bindir_relative="bin" + tipdir="share/doc/${PF}" + EXTRA_CFLAGS="${CPPFLAGS} ${CFLAGS}" + EXTRA_LDFLAGS="${LDFLAGS}" + ARCH="${arch}" + BUILD_BPF_SKEL=$(usex bpf 1 "") + BUILD_NONDISTRO= + JDIR="${java_dir}" + CORESIGHT= + GTK2=$(usex gtk 1 "") + feature-gtk2-infobar=$(usex gtk 1 "") + LIBPERL=$(usex perl 1 "") + NO_AUXTRACE= + NO_BACKTRACE= + NO_CAPSTONE=$(puse capstone) + NO_DEMANGLE= + NO_JVMTI=$(puse java) + NO_LIBAUDIT=1 + NO_LIBBABELTRACE=$(puse babeltrace) + NO_LIBBIONIC=1 + NO_LIBBPF=$(puse bpf) + NO_LIBCAP=$(puse caps) + NO_LIBCRYPTO=$(puse crypt) + NO_LIBELF= + NO_LIBLLVM=$(puse bpf) + NO_LIBNUMA=$(puse numa) + NO_LIBPFM4=$(puse libpfm) + NO_LIBPYTHON=$(puse python) + NO_LIBTRACEEVENT=$(puse libtraceevent) + NO_LIBUNWIND=1 + NO_SDT=$(puse systemtap) + NO_SHELLCHECK=1 + NO_SLANG=$(puse slang) + NO_LZMA=$(puse lzma) + NO_ZLIB= + TCMALLOC=$(usex tcmalloc 1 "") + WERROR=0 + DEBUG=$(usex debug 1 "") + libdir="${EPREFIX}/usr/$(get_libdir)" + LIBDIR="${EPREFIX}/usr/libexec/perf-core" + "$@" + ) + NO_JEVENTS=$(puse python) emake "${emakeargs[@]}" +} + +src_compile() { + filter-lto + + # capstone-6 compatibility (#964350) + append-cppflags -DCAPSTONE_AARCH64_COMPAT_HEADER -DCAPSTONE_SYSTEMZ_COMPAT_HEADER + + perf_make -f Makefile.perf + perf_make -C Documentation man +} + +src_test() { + : +} + +src_install() { + perf_make -f Makefile.perf install DESTDIR="${D}" + + if use python; then + perf_make -f Makefile.perf install-python_ext DESTDIR="${D}" + fi + + if use gtk; then + local libdir + libdir="$(get_libdir)" + # on some arches it ends up in lib even on 64bit, ppc64 for instance. + [[ -f "${ED}"/usr/lib/libperf-gtk.so ]] && libdir="lib" + mv "${ED}"/usr/${libdir}/libperf-gtk.so \ + "${ED}"/usr/libexec/perf-core || die + fi + + dodoc CREDITS + + dodoc *txt Documentation/*.txt + + # perf needs this decompressed to print out tips for users + docompress -x /usr/share/doc/${PF}/tips.txt + + doman Documentation/*.1 +} diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/Manifest b/sdk_container/src/third_party/portage-stable/dev-vcs/git/Manifest index b5b5b83ee1d..dbb415809a1 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/Manifest @@ -1,21 +1,9 @@ -DIST git-2.49.1.tar.xz 7773832 BLAKE2B 89bd1202f580aa11ea774809140c02c2cde1f55730d7b0e9e75f9ca1f8dee006b31cd34e689a42a942b61bae2a01d46bcec22f4ae7aeee7d007c5ac109a3be06 SHA512 4dc63f2935e66d708dbecfdb77c6e5d697f4bc79af51ab860ed87499336d66d44f16abc7edf414c56f30d46de3a1a676c56c240557140c91aa388136e652cbdc -DIST git-2.50.1.tar.xz 7880972 BLAKE2B 4e5e3168d7dd88cc508920dd773df2ec6b568c70e8068a18010f01241ebc9e9140ca13a9820e14f0d4695e966c436aef305a81e61cc66007b756b75f48dd5d16 SHA512 09f37290c0d4d074b97363f4a4be1813426e93ac3fa993c4d671bb1462bcc9335713c17d1442196a35205a603eeb052662382935d27498875a251f4fe86f6b36 -DIST git-2.51.0.tar.xz 7857228 BLAKE2B b385ee2c7aed601435952c983045055c970cdda607d83ae8ba904ee10e5e76bca097ccbe0f22e4e1467c6d606c9eecb952ffb382f351124325b6fd5d87083596 SHA512 2b8c59589266c0c9e58a9f4fda4a970a8a492e2e0ecbafc414fcfacac4a04251f0115b3676f4599a415b53906f1dea312b18a42e9bde455286abd62ec327beaf -DIST git-2.51.1.tar.xz 7865216 BLAKE2B 3bb26baee468498f882eb3bf995c58cf441a9e7537ca3dafbe58cf24a947d37a52749b62e3095446787514f0eb9e1d767d4efbee29a8d63851803e8c6bb4daa6 SHA512 bc22d26bbfad4a549d2fb6bed11eb019c2dee607c86bf8faaa986774e526e5b367d80c9a79ab50358624634d840e8e0d27e0b46411d1aabbf76728b7a7f138dd -DIST git-2.51.2.tar.xz 7865980 BLAKE2B d567f52da82cabc5d2e4f542f02209aa170536864769fa49c9a24c5129e0603a940b1adf6dedf892c8971d947400a104d312b376f3f6aa23029cb57dffc9acb4 SHA512 547c3e522d9e6a2c2ccab24ee0c7f4f2d29878759563356e3a2ae9675884b7044ce5a236803170a203b79443760eb18a7089eec02bd105316e3ab045ab7603a7 DIST git-2.52.0.tar.xz 7957064 BLAKE2B f228174814b1048f12543a6a20f771017991f9a23778f12fc32020b38837990eb19bc69e891078692ac4ad4ae1cb2e0e77400760964e09c491046e4ed8b16f96 SHA512 965e5ebb72d1f080d64e34bdb75f0bb1689c9dd41dcf63b020d986bad49808ac09bfb1115962bc0c5b95bac8622367ac4cd09aa89266f73d2137fe94c90dd3ed DIST git-2.53.0.tar.xz 7993096 BLAKE2B a23ccb2f793d37347e892f6094ad589510c93011a53fb2c14cdcbfbe6d87413edb4585a98253e4ca5124217f66ad783f4fa584f38dc25ffa34772da01dc45f02 SHA512 f9c0c0f527e10fe3eb524e368b1a24088bfd41097d8cac7854dae7ff21ab8ab2a1716384be53ea6174023ca5a2af3eeddca1d9feb57e447713f82e061df55c8d -DIST git-htmldocs-2.49.1.tar.xz 1602244 BLAKE2B 8d6df9ff42660123577933a95971bdd47d94b650b2cb8abafa4f4cbd981d016d3d3fdcbb08f22616ee44f928fc0aaac4f0ffee8a1d1d0c659240fcc2db9e2a25 SHA512 39db559a507b732d18ce1fa3ac513e87ca27b1d5df0f6d26cdead7b5add4eb29889d4c81e09b25c6fdbd813a0f13c833a22a4b6bbba6dea3b126e841a61424f8 -DIST git-htmldocs-2.50.1.tar.xz 1615796 BLAKE2B 6d340b552075bce7d724824eefd03540d558e24c07b49e48f1bb4262a5b3632b6aa7782bb02b15aaf424d22e5460bffee066f1e2bb0018791dcec8afa79dd3b8 SHA512 ebe437851b039bab4ec83be807583a23beaf43073248ffdcddee2328fc621b5b712c094faac3ee15a783f5a0cbdd92c2635879426007e8ef0ddcb70f227782f9 -DIST git-htmldocs-2.51.0.tar.xz 1627664 BLAKE2B 17106db9d7edf8717281d5af88ec9b53c91f6ba56552d5952d25ff593b4d227194df53a33dd52eb4791dd5044a7d867f8bed2371087e6dfdb4a0110e09f70055 SHA512 55460724b73bc42ebb611a4c0657f59040e8e7b28d56cb26814ae97c1b13ce3577e57e5a66f2749a93b7b3496b8a665ce5a2c31ba471eadb3267813915dc7051 -DIST git-htmldocs-2.51.1.tar.xz 1629412 BLAKE2B e135a355e84c4bd1a1d1e54dd6ff875b43145649cdc90696b1650f74ff3a0b2a94190d23ffffc22b621703fbb713d042283a5e65b0ed60860cc892d26b44226e SHA512 0abfbef358162d03fc033bca23bc95cae0561e8f4852abfd49d53d546005caf0b6f759776c7bbada8353cb340b3b48b0c1cd0415db0bbf04efe591e7b9411fe1 -DIST git-htmldocs-2.51.2.tar.xz 1629724 BLAKE2B ed8593f9ccbd8017656af7193914638c25be7ed2a449d3509d49949a1eff2134b3a9c163802155610e32cb07f9ea4eced9ebd0758eb0f36b0ff028c0ee0462f0 SHA512 cafb7fa2f0a3be6bff006f65c8462047e6f2c80482b09df7c45e7caba12acee670ddb886c125dcc751a5d701ebf812737f981bd0bcbc3035432de26db981929a +DIST git-2.54.0.tar.xz 8126372 BLAKE2B 68ee0623ff5a695a35dae2f31e3f410ebd4b6a8296c7c9fd03f53668878e9164b78ca82869c8a0719b3fae981f514f2022c45b39df7174b5e883348bdd269a82 SHA512 cb363917124edc245c9f6745e6e0c4093990275b4d57f9d2213c655b304ac81b05ece8d88546122727495ebc48a5ae19ab166a3ee43b6b8c68da488ac0270064 DIST git-htmldocs-2.52.0.tar.xz 1657524 BLAKE2B c21219b1059ee593ea850464473ba3466f83b44932261b70abecb7837a0e5c2434d71e29c495ac33faad9a34bda061b81187f691c57e8dc9557a56f8030dbeea SHA512 6fee6834bbd1400acef575fd206f58fb15472d45bad8f4ca9066930a3b4b1be8a633bb94c11f83644177266a06e2c4bb8a9478f10c4f1742016f59d07612c5e4 DIST git-htmldocs-2.53.0.tar.xz 1675212 BLAKE2B b3df781089a91c36b91f46ee7801162ef925cfaee470813b0c33e58690a7494b1946ec487538769a153ec275d9dd13e5386fb8552185f274ca07e1e2e1a88afd SHA512 0c752d1aa78747f2ce9f73c3fca06ac69b543c4b546bfd13e1b22552a41a417982feee60adc6e525c88c6887e98c3b843c680ea6fd3a250f7e8317338dee3036 -DIST git-manpages-2.49.1.tar.xz 594536 BLAKE2B b29aea1817053fefacc9a16abb86ea9fb4f2f239a268661a357cda16ab02b55ff3736b0c7d870fcacf4867bd063e14177bc46109115845fdea26b1870ff5f463 SHA512 0fbd824bfd68c72e8a6509989ffd016d1256cc3c5dfe4634170de2a07cdbdb4506f4b9136fa3176ac56c6f20f518a16758f1391bbd658be0caa8ebcc34158feb -DIST git-manpages-2.50.1.tar.xz 598416 BLAKE2B c47be82829562057a99da3dc801958c2f7d1eeabb5af3c28cc3a66ec03a02b96e2d1d670ce39f7ab1d39fc113abe896c73b2126129cd98c3d33292267f160690 SHA512 9de90823bfb815ce31938794b80bf8526d162125afe23084114c47d360235a8d63b6fcdf78613bd91ee492b8d8c614d026cce51733bdd63bffe533f7da616d05 -DIST git-manpages-2.51.0.tar.xz 602200 BLAKE2B 12b103871dcd8173e88e2eb96621620682c19aecfb6ecbd7a9b3d8bb7358eed78c00af0738c502c5ff71ac8d85894c68ed33f395aed426d580210d4c1d36faf6 SHA512 ee2eb3bc90a63cb28ccdc8716b2d610b55eefbc0da255b7360695bc686ba52841b147c879a4f8b2ecdb767814b815929f7e0dd57fa612a87ef5e36b862056144 -DIST git-manpages-2.51.1.tar.xz 602552 BLAKE2B a8781e1b7b040b39ca17ee9ea20688bc14bdd0a948e1bab2e39e01747770a97f64119e4eacdedd07e3d281469025958ca34d73faacad7c36381e9a9c8f4fe4ab SHA512 e8f00835472c2078023e28cb9ae1ac2aac8c4e950a8ef453eafe894d9bb8411e3e89108606b3783c00883db2bb041defb0bf9dd5b3558bcbd6b07b7f28c66e92 -DIST git-manpages-2.51.2.tar.xz 602340 BLAKE2B 856c4531ed27b53f390f738774d758813f717b378bd64e4736e8627fe898b34b64b8d4b9fb686573f21d90d8db859062371586c440f3c6efca38346a04f7120b SHA512 d6443f22590797eb6947fbb317e2ec52beeabd6d3117425e23d93085952c4d9eaa8d26ae677a8f4d73938f9611ac636f5f26e29527cc96d1a6612c2853103a94 +DIST git-htmldocs-2.54.0.tar.xz 1695136 BLAKE2B bfb8d7ee1f33b545534928a09901b863dd775e42651a032366cb8549e3e5980dc92d8a0d6f74aee27e715521c28dad9625954c661f5fa165ff8149546d2a4238 SHA512 f6ccd8bbe3664096b7d50ffbc0b4c7fa77776047b396f9247dfee7744115807dddfd447819b6e50a0a0c46ce830c59567bc642af13d1cb732ae417daeb919ce2 DIST git-manpages-2.52.0.tar.xz 607864 BLAKE2B 6736100b503afd95aa7d6d9878a5c9420b44c5755b31c99e4b6db4a567db0984a6a786d2fac07baea95bf2b758c68fef042b75b10c848732add19fe17f3243bf SHA512 8e7998ed101fa4c7e9707721cbbc61e07bab56647c69f2d46d16c30465a825e223429cfab1ddfa58302a0563a12a8e5886133566bc6a1097ab0970d8ae4458d7 DIST git-manpages-2.53.0.tar.xz 614136 BLAKE2B c2c309de1853ffceee4b3a334e2983fbfa5ce6a40ac60215aded917cff45b4e5eef7a38812cafec2515dd5538ceec8333a50525df09e15c012b4968435578487 SHA512 babb19223cd0da4e930449a4e246007283b5787b19b1c7ea341969bf6321f3de1164db9d1920de16535c4b18d03935c6e3fc329d9e2308aec4b4cb70514518a9 +DIST git-manpages-2.54.0.tar.xz 622912 BLAKE2B cca36435ec488cd2e1bbecd34885be5e0faaec4320c19fffb2a829b5f3b93241bf09a4464112544a7da73b8b434c0a7d838c69a49d0adc8859ba4ae1806a58c7 SHA512 c046d7c3d204587f16085621acde11d7df06ee194a38ff8aacf2ff2d9e446cc5c056a1557512aed150db30097da1e0b165507e9944f8b25249402a356b50d4bd diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.49.0-diff-implement-config.diff.renames-copies-harder.patch b/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.49.0-diff-implement-config.diff.renames-copies-harder.patch deleted file mode 100644 index 27159f71ffa..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.49.0-diff-implement-config.diff.renames-copies-harder.patch +++ /dev/null @@ -1,160 +0,0 @@ -https://lore.kernel.org/git/20240311213928.1872437-1-sam@gentoo.org/ - -From dd8ed5e247032dc94f9b92aaa8be987154f58c27 Mon Sep 17 00:00:00 2001 -Message-ID: -From: Sam James -Date: Fri, 16 Feb 2024 22:07:54 +0000 -Subject: [PATCH 1/2] diff: implement config.diff.renames=copies-harder - -This patch adds a config value for 'diff.renames' called 'copies-harder' -which make it so '-C -C' is in effect always passed for 'git log -p', -'git diff', etc. - -This allows specifying that 'git log -p', 'git diff', etc should always act -as if '-C --find-copies-harder' was passed. - -It has proven this especially useful for certain types of repository (like -Gentoo's ebuild repositories) because files are often copies of a previous -version: - -Suppose a directory 'sys-devel/gcc' contains recipes for building -GCC, with one file for each supported upstream branch: - gcc-13.x.build.recipe - gcc-12.x.build.recipe - gcc-11.x.build.recipe - gcc-10.x.build.recipe - -gcc-13.x.build.recipe was started as a copy of gcc-12.x.build.recipe -(which was started as a copy of gcc-11.x.build.recipe, etc.). Previous versions -are kept around to support parallel installation of multiple versions. - -Being able to easily observe the diff relative to other recipes within the -directory has been a quality of life improvement for such repo layouts. - -Signed-off-by: Sam James ---- - Documentation/config/status.adoc | 4 +++- - diff.c | 11 +++++++++-- - diff.h | 1 + - diffcore-rename.c | 6 ++++-- - merge-ort.c | 2 +- - merge-recursive.c | 2 +- - 7 files changed, 22 insertions(+), 10 deletions(-) - -diff --git a/Documentation/config/status.adoc b/Documentation/config/status.adoc -index 8caf90f51c..e15add32a3 100644 ---- a/Documentation/config/status.adoc -+++ b/Documentation/config/status.adoc -@@ -33,7 +33,9 @@ status.renames:: - Whether and how Git detects renames in linkgit:git-status[1] and - linkgit:git-commit[1] . If set to "false", rename detection is - disabled. If set to "true", basic rename detection is enabled. -- If set to "copies" or "copy", Git will detect copies, as well. -+ If set to "copies" or "copy", Git will detect copies, as well. If set -+ to "copies-harder", Git will spend extra cycles to find more copies even -+ in unmodified paths, see '--find-copies-harder' in linkgit:git-diff[1] (Gentoo patch). - Defaults to the value of diff.renames. - - status.showStash:: -diff --git a/diff.c b/diff.c -index c89c15d98e..743a504f6f 100644 ---- a/diff.c -+++ b/diff.c -@@ -212,6 +212,8 @@ int git_config_rename(const char *var, const char *value) - { - if (!value) - return DIFF_DETECT_RENAME; -+ if (!strcasecmp(value, "copies-harder")) -+ return DIFF_DETECT_COPY_HARDER; - if (!strcasecmp(value, "copies") || !strcasecmp(value, "copy")) - return DIFF_DETECT_COPY; - return git_config_bool(var,value) ? DIFF_DETECT_RENAME : 0; -@@ -4900,8 +4902,12 @@ void diff_setup_done(struct diff_options *options) - else - options->flags.diff_from_contents = 0; - -- if (options->flags.find_copies_harder) -+ /* Just fold this in as it makes the patch-to-git smaller */ -+ if (options->flags.find_copies_harder || -+ options->detect_rename == DIFF_DETECT_COPY_HARDER) { -+ options->flags.find_copies_harder = 1; - options->detect_rename = DIFF_DETECT_COPY; -+ } - - if (!options->flags.relative_name) - options->prefix = NULL; -@@ -5340,7 +5346,8 @@ static int diff_opt_find_copies(const struct option *opt, - if (*arg != 0) - return error(_("invalid argument to %s"), opt->long_name); - -- if (options->detect_rename == DIFF_DETECT_COPY) -+ if (options->detect_rename == DIFF_DETECT_COPY || -+ options->detect_rename == DIFF_DETECT_COPY_HARDER) - options->flags.find_copies_harder = 1; - else - options->detect_rename = DIFF_DETECT_COPY; -diff --git a/diff.h b/diff.h -index ff0348e4a9..08cb6f587c 100644 ---- a/diff.h -+++ b/diff.h -@@ -561,6 +561,7 @@ int git_config_rename(const char *var, const char *value); - - #define DIFF_DETECT_RENAME 1 - #define DIFF_DETECT_COPY 2 -+#define DIFF_DETECT_COPY_HARDER 3 - - #define DIFF_PICKAXE_ALL 1 - #define DIFF_PICKAXE_REGEX 2 -diff --git a/diffcore-rename.c b/diffcore-rename.c -index 91b77993c7..1219882f0d 100644 ---- a/diffcore-rename.c -+++ b/diffcore-rename.c -@@ -302,7 +302,8 @@ static int find_identical_files(struct hashmap *srcs, - } - /* Give higher scores to sources that haven't been used already */ - score = !source->rename_used; -- if (source->rename_used && options->detect_rename != DIFF_DETECT_COPY) -+ if (source->rename_used && options->detect_rename != DIFF_DETECT_COPY && -+ options->detect_rename != DIFF_DETECT_COPY_HARDER) - continue; - score += basename_same(source, target); - if (score > best_score) { -@@ -1407,7 +1408,8 @@ void diffcore_rename_extended(struct diff_options *options, - trace2_region_enter("diff", "setup", options->repo); - info.setup = 0; - assert(!dir_rename_count || strmap_empty(dir_rename_count)); -- want_copies = (detect_rename == DIFF_DETECT_COPY); -+ want_copies = (detect_rename == DIFF_DETECT_COPY || -+ detect_rename == DIFF_DETECT_COPY_HARDER); - if (dirs_removed && (break_idx || want_copies)) - BUG("dirs_removed incompatible with break/copy detection"); - if (break_idx && relevant_sources) -diff --git a/merge-ort.c b/merge-ort.c -index 46e78c3ffa..94699789bd 100644 ---- a/merge-ort.c -+++ b/merge-ort.c -@@ -4921,7 +4921,7 @@ static void merge_start(struct merge_options *opt, struct merge_result *result) - * sanity check them anyway. - */ - assert(opt->detect_renames >= -1 && -- opt->detect_renames <= DIFF_DETECT_COPY); -+ opt->detect_renames <= DIFF_DETECT_COPY_HARDER); - assert(opt->verbosity >= 0 && opt->verbosity <= 5); - assert(opt->buffer_output <= 2); - assert(opt->obuf.len == 0); -diff --git a/merge-recursive.c b/merge-recursive.c -index 884ccf99a5..b979d43b85 100644 ---- a/merge-recursive.c -+++ b/merge-recursive.c -@@ -3771,7 +3771,7 @@ static int merge_start(struct merge_options *opt, struct tree *head) - assert(opt->branch1 && opt->branch2); - - assert(opt->detect_renames >= -1 && -- opt->detect_renames <= DIFF_DETECT_COPY); -+ opt->detect_renames <= DIFF_DETECT_COPY_HARDER); - assert(opt->detect_directory_renames >= MERGE_DIRECTORY_RENAMES_NONE && - opt->detect_directory_renames <= MERGE_DIRECTORY_RENAMES_TRUE); - assert(opt->rename_limit >= -1); --- -2.48.1 - diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.49.0-docs.patch b/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.49.0-docs.patch deleted file mode 100644 index 13ea597cfbc..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.49.0-docs.patch +++ /dev/null @@ -1,49 +0,0 @@ -https://public-inbox.org/git/20250316060605.166364-1-eschwartz@gentoo.org/T/ - -From: Eli Schwartz -To: git@vger.kernel.org -Cc: Patrick Steinhardt , - Sam James -Subject: [PATCH] meson: fix perl detection when docs are enabled, but perl bindings aren't -Date: Sun, 16 Mar 2025 02:06:05 -0400 -Message-ID: <20250316060605.166364-1-eschwartz@gentoo.org> -X-Mailer: git-send-email 2.48.1 -Precedence: bulk -X-Mailing-List: git@vger.kernel.org -List-Id: -List-Subscribe: -List-Unsubscribe: -MIME-Version: 1.0 -Content-Transfer-Encoding: 8bit - -The `perl` variable in meson.build is assigned to a program lookup, -which may have the value "not-found object" if configuring with -`-Dperl=disabled`. - -There is already a list of other cases where we do need a perl command, -even when not building perl bindings. Building documentation should be -one of those cases, but was missing from the list. Add it. - -Fixes: - -``` -$ meson setup builddir/ -Ddocs=man -Dperl=disabled -Dtests=false -[...] -Documentation/meson.build:308:22: ERROR: Tried to use not-found external program in "command" -``` - -Bug: https://bugs.gentoo.org/949247 -Signed-off-by: Eli Schwartz ---- a/meson.build -+++ b/meson.build -@@ -772,7 +772,7 @@ endif - # features. It is optional if you want to neither execute tests nor use any of - # these optional features. - perl_required = get_option('perl') --if get_option('tests') or get_option('gitweb').enabled() or 'netrc' in get_option('credential_helpers') -+if get_option('tests') or get_option('gitweb').enabled() or 'netrc' in get_option('credential_helpers') or get_option('docs') != [] - perl_required = true - endif - --- -2.48.1 diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.49.0-meson-solaris-override.patch b/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.49.0-meson-solaris-override.patch deleted file mode 100644 index 7866afd1381..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.49.0-meson-solaris-override.patch +++ /dev/null @@ -1,38 +0,0 @@ -meson.build: hardwire Solaris support - -- need __EXTENSIONS__ in order to use functions like memmem, strlcopy, - etc. -- need __EXTENSIONS__ for NSIG symbol from signal.h too -- define for appropriate missing functions and struct members -- avoid believing sys/sysinfo.h is providing the same as on Linux -- add missing network libraries so we can succeed linking the final - executable - ---- a/meson.build -+++ b/meson.build -@@ -1014,7 +1014,7 @@ - libgit_c_args += '-DHAVE_ALLOCA_H' - endif - --if compiler.has_header('sys/sysinfo.h') -+if host_machine.system() != 'sunos' and compiler.has_header('sys/sysinfo.h') - libgit_c_args += '-DHAVE_SYSINFO' - endif - -@@ -1250,6 +1250,16 @@ - libgit_sources += 'compat/strlcpy.c' - endif - -+if host_machine.system() == 'sunos' -+ libgit_c_args += '-DNO_HSTRERROR' -+ libgit_c_args += '-DNO_GETPAGESIZE' -+ libgit_c_args += '-DNO_NSEC' -+ libgit_c_args += '-D__EXTENSIONS__' -+ libgit_sources += 'compat/hstrerror.c' -+ libgit_dependencies += compiler.find_library('socket') -+ libgit_dependencies += compiler.find_library('nsl') -+endif -+ - if not compiler.has_function('strdup') - libgit_c_args += '-DOVERRIDE_STRDUP' - libgit_sources += 'compat/strdup.c' diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.49.0-meson-use-test_environment-conditionally.patch b/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.49.0-meson-use-test_environment-conditionally.patch deleted file mode 100644 index d9df28c4b57..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.49.0-meson-use-test_environment-conditionally.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 310a34bace801d288e369c6a01a8d04ffc4c3c06 Mon Sep 17 00:00:00 2001 -Message-ID: <310a34bace801d288e369c6a01a8d04ffc4c3c06.1741975400.git.sam@gentoo.org> -From: Sam James -Date: Fri, 14 Mar 2025 18:00:15 +0000 -Subject: [PATCH] meson: use test_environment conditionally. - -test_environment is only defined with -Dtests, so use it conditionally -and define a stub environment() instead, to avoid erroring out: - -``` -$ meson setup -Dtests=false -Dcontrib=subtree build -[...] - -contrib/subtree/meson.build:15:27: ERROR: Unknown variable "test_environment". -``` - -Do the same for 'netrc' in contrib/ as it uses the same pattern. ---- - contrib/credential/netrc/meson.build | 8 ++++++-- - contrib/subtree/meson.build | 8 ++++++-- - 2 files changed, 12 insertions(+), 4 deletions(-) - -diff --git a/contrib/credential/netrc/meson.build b/contrib/credential/netrc/meson.build -index a990dbb86d..6d815d01c4 100644 ---- a/contrib/credential/netrc/meson.build -+++ b/contrib/credential/netrc/meson.build -@@ -7,8 +7,12 @@ credential_netrc = custom_target( - install_dir: get_option('libexecdir') / 'git-core', - ) - --credential_netrc_testenv = test_environment --credential_netrc_testenv.set('CREDENTIAL_NETRC_PATH', credential_netrc.full_path()) -+if get_option('tests') -+ credential_netrc_testenv = test_environment -+ credential_netrc_testenv.set('CREDENTIAL_NETRC_PATH', credential_netrc.full_path()) -+else -+ credential_netrc_testenv = environment() -+endif - - test('t-git-credential-netrc', - shell, -diff --git a/contrib/subtree/meson.build b/contrib/subtree/meson.build -index 9c72b23625..d18f188216 100644 ---- a/contrib/subtree/meson.build -+++ b/contrib/subtree/meson.build -@@ -12,8 +12,12 @@ git_subtree = custom_target( - install_dir: get_option('libexecdir') / 'git-core', - ) - --subtree_test_environment = test_environment --subtree_test_environment.prepend('PATH', meson.current_build_dir()) -+if get_option('tests') -+ subtree_test_environment = test_environment -+ subtree_test_environment.prepend('PATH', meson.current_build_dir()) -+else -+ subtree_test_environment = environment() -+endif - - test('t7900-subtree', shell, - args: [ 't7900-subtree.sh' ], --- -2.48.1 - diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.51.1-openssh-10.1-tests.patch b/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.51.1-openssh-10.1-tests.patch deleted file mode 100644 index ffcfd73787d..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.51.1-openssh-10.1-tests.patch +++ /dev/null @@ -1,14 +0,0 @@ -https://bugs.gentoo.org/964608 -(Tangentially: https://bugs.debian.org/1118288) -https://lore.kernel.org/git/4e2952e512afc780b621d2c153b3e6e4eb7ed89a.camel@xry111.site/ ---- a/t/t7528-signed-commit-ssh.sh -+++ b/t/t7528-signed-commit-ssh.sh -@@ -82,7 +82,7 @@ test_expect_success GPGSSH 'create signed commits' ' - test_expect_success GPGSSH 'sign commits using literal public keys with ssh-agent' ' - test_when_finished "test_unconfig commit.gpgsign" && - test_config gpg.format ssh && -- eval $(ssh-agent) && -+ eval $(ssh-agent -T || ssh-agent) && - test_when_finished "kill ${SSH_AGENT_PID}" && - test_when_finished "test_unconfig user.signingkey" && - mkdir tmpdir && diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.54.0-0001-rust-don-t-pass-quiet-to-cargo.patch b/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.54.0-0001-rust-don-t-pass-quiet-to-cargo.patch new file mode 100644 index 00000000000..795e33e5e71 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.54.0-0001-rust-don-t-pass-quiet-to-cargo.patch @@ -0,0 +1,30 @@ +From 0f7b6cf83c868a009c9843522429ba6810990ae6 Mon Sep 17 00:00:00 2001 +Message-ID: <0f7b6cf83c868a009c9843522429ba6810990ae6.1776707419.git.sam@gentoo.org> +From: Sam James +Date: Tue, 18 Nov 2025 18:10:03 +0000 +Subject: [PATCH 1/2] rust: don't pass --quiet to cargo + +This obscures that cargo is being invoked at all and it means even +ninja --verbose has no mention of it other than invoking the target. + +Signed-off-by: Sam James +--- + src/cargo-meson.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/cargo-meson.sh b/src/cargo-meson.sh +index 75f3cd1265..26a6d3bb16 100755 +--- a/src/cargo-meson.sh ++++ b/src/cargo-meson.sh +@@ -31,7 +31,7 @@ case "$(cargo -vV | sed -n 's/^host: \(.*\)$/\1/p')" in + LIBNAME=libgitcore.a;; + esac + +-cargo build --lib --quiet --manifest-path="$SOURCE_DIR/Cargo.toml" --target-dir="$BUILD_DIR" "$@" ++cargo build --lib --manifest-path="$SOURCE_DIR/Cargo.toml" --target-dir="$BUILD_DIR" "$@" + RET=$? + if test $RET -ne 0 + then +-- +2.53.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.54.0-0002-rust-respect-CARGO-environment-variable.patch b/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.54.0-0002-rust-respect-CARGO-environment-variable.patch new file mode 100644 index 00000000000..da7148e34e3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.54.0-0002-rust-respect-CARGO-environment-variable.patch @@ -0,0 +1,32 @@ +From 1fe93707dbb6d9c5214250f576151cb5cec3762f Mon Sep 17 00:00:00 2001 +Message-ID: <1fe93707dbb6d9c5214250f576151cb5cec3762f.1776707419.git.sam@gentoo.org> +In-Reply-To: <0f7b6cf83c868a009c9843522429ba6810990ae6.1776707419.git.sam@gentoo.org> +References: <0f7b6cf83c868a009c9843522429ba6810990ae6.1776707419.git.sam@gentoo.org> +From: Sam James +Date: Tue, 18 Nov 2025 18:10:47 +0000 +Subject: [PATCH 2/2] rust: respect $CARGO environment variable + +Respect the CARGO environment variable if set. Gentoo uses this to +control the version of rust/cargo for a build. + +Signed-off-by: Sam James +--- + src/cargo-meson.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/cargo-meson.sh b/src/cargo-meson.sh +index 26a6d3bb16..b7b9578861 100755 +--- a/src/cargo-meson.sh ++++ b/src/cargo-meson.sh +@@ -31,7 +31,7 @@ case "$(cargo -vV | sed -n 's/^host: \(.*\)$/\1/p')" in + LIBNAME=libgitcore.a;; + esac + +-cargo build --lib --manifest-path="$SOURCE_DIR/Cargo.toml" --target-dir="$BUILD_DIR" "$@" ++${CARGO:-cargo} build --lib --manifest-path="$SOURCE_DIR/Cargo.toml" --target-dir="$BUILD_DIR" "$@" + RET=$? + if test $RET -ne 0 + then +-- +2.53.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.49.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.49.1.ebuild deleted file mode 100644 index 58040deafed..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.49.1.ebuild +++ /dev/null @@ -1,506 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -GENTOO_DEPEND_ON_PERL=no - -# bug #329479: git-remote-testgit is not multiple-version aware -PYTHON_COMPAT=( python3_{11..14} ) - -inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd meson - -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN" - -if [[ ${PV} == *9999 ]]; then - EGIT_REPO_URI="https://git.kernel.org/pub/scm/git/git.git" - - inherit git-r3 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches. - # See https://git-scm.com/docs/gitworkflows#_graduation - # In order of stability: - # 9999-r0: maint - # 9999-r1: master - # 9999-r2: next - # 9999-r3: seen - case ${PVR} in - 9999) EGIT_BRANCH=maint ;; - 9999-r1) EGIT_BRANCH=master ;; - 9999-r2) EGIT_BRANCH=next;; - 9999-r3) EGIT_BRANCH=seen ;; - esac -fi - -MY_PV="${PV/_rc/.rc}" -MY_P="${PN}-${MY_PV}" - -DOC_VER="${MY_PV}" - -DESCRIPTION="Stupid content tracker: distributed VCS designed for speed and efficiency" -HOMEPAGE="https://www.git-scm.com/" - -if [[ ${PV} != *9999 ]]; then - SRC_URI_SUFFIX="xz" - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git" - - [[ ${PV/rc} != ${PV} ]] && SRC_URI_KORG+='/testing' - - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}" - SRC_URI+=" ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}" - SRC_URI+=" doc? ( ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} )" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" - fi -fi - -S="${WORKDIR}"/${MY_P} - -LICENSE="GPL-2" -SLOT="0" -IUSE="+curl cgi cvs doc keyring +gpg highlight +iconv mediawiki +nls +pcre perforce +perl +safe-directory selinux subversion test tk +webdav xinetd" - -# Common to both DEPEND and RDEPEND -DEPEND=" - dev-libs/openssl:= - virtual/zlib:= - curl? ( - net-misc/curl - webdav? ( dev-libs/expat ) - ) - keyring? ( - app-crypt/libsecret - dev-libs/glib:2 - ) - iconv? ( virtual/libiconv ) - pcre? ( dev-libs/libpcre2:= ) - perl? ( dev-lang/perl:=[-build(-)] ) - tk? ( dev-lang/tk:= ) -" -RDEPEND=" - ${DEPEND} - gpg? ( app-crypt/gnupg ) - perl? ( - dev-perl/Error - dev-perl/MailTools - dev-perl/Authen-SASL - >=virtual/perl-libnet-3.110.0-r4[ssl] - cgi? ( - dev-perl/CGI - highlight? ( app-text/highlight ) - ) - cvs? ( - >=dev-vcs/cvsps-2.1:0 - dev-perl/DBI - dev-perl/DBD-SQLite - ) - mediawiki? ( - dev-perl/DateTime-Format-ISO8601 - dev-perl/HTML-Tree - dev-perl/MediaWiki-API - ) - subversion? ( - dev-vcs/subversion[-dso(-),perl] - dev-perl/libwww-perl - dev-perl/TermReadKey - ) - ) - perforce? ( ${PYTHON_DEPS} ) - selinux? ( sec-policy/selinux-git ) -" - -# This is how info docs are created with Git: -# .txt/asciidoc --(asciidoc)---------> .xml/docbook -# .xml/docbook --(docbook2texi.pl)--> .texi -# .texi --(makeinfo)---------> .info -BDEPEND=" - doc? ( - app-text/asciidoc - app-text/docbook2X - app-text/xmlto - sys-apps/texinfo - ) - keyring? ( virtual/pkgconfig ) - nls? ( sys-devel/gettext ) - test? ( - app-arch/unzip - app-crypt/gnupg - dev-lang/perl - ) -" - -# Live ebuild builds man pages and HTML docs, additionally -if [[ ${PV} == *9999 ]]; then - BDEPEND+=" app-text/asciidoc" -fi - -SITEFILE="50${PN}-gentoo.el" - -REQUIRED_USE=" - cgi? ( perl ) - cvs? ( perl ) - mediawiki? ( perl ) - perforce? ( ${PYTHON_REQUIRED_USE} ) - subversion? ( perl ) - webdav? ( curl ) -" - -RESTRICT="!test? ( test )" - -PATCHES=( - "${FILESDIR}"/${PN}-2.48.1-macos-no-fsmonitor.patch - "${FILESDIR}"/${PN}-2.49.0-meson-use-test_environment-conditionally.patch - "${FILESDIR}"/${PN}-2.49.0-docs.patch - - # This patch isn't merged upstream but is kept in the ebuild by - # demand from developers. It's opt-in (needs a config option) - # and the documentation mentions that it is a Gentoo addition. - "${FILESDIR}"/${PN}-2.49.0-diff-implement-config.diff.renames-copies-harder.patch -) - -pkg_setup() { - if use subversion && has_version "dev-vcs/subversion[dso]" ; then - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built" - ewarn "with USE=dso, there may be weird crashes in git-svn. You" - ewarn "have been warned!" - fi - - if use perforce ; then - python-single-r1_pkg_setup - fi -} - -src_unpack() { - if [[ ${PV} != *9999 ]] ; then - unpack ${MY_P}.tar.${SRC_URI_SUFFIX} - - cd "${S}" || die - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX} - - if use doc ; then - pushd "${S}"/Documentation &>/dev/null || die - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} - popd &>/dev/null || die - fi - else - git-r3_src_unpack - fi - -} - -src_prepare() { - if ! use safe-directory ; then - # This patch neuters the "safe directory" detection. - # bugs #838271, #838223 - PATCHES+=( - "${FILESDIR}"/git-2.46.2-unsafe-directory.patch - ) - fi - - if [[ ${CHOST} == *-solaris* ]] ; then - # meson.build doesn't carry any Solaris logic, and "sees" - # functions that are not available by default, provide backup - # definitions to match autoconf/Makefile - PATCHES+=( - "${FILESDIR}"/${PN}-2.49.0-meson-solaris-override.patch - ) - fi - - default -} - -src_configure() { - local contrib=( - completion - subtree - - $(usev perl 'contacts') - ) - local credential_helpers=( - $(usev keyring 'libsecret') - $(usev perl 'netrc') - ) - - # Needs macOS Frameworks that can't currently be built with GCC. - if [[ ${CHOST} == *-darwin* ]] && tc-is-clang ; then - credential_helpers+=( osxkeychain ) - fi - - local native_file="${T}"/meson.ini.local - cat >> ${native_file} <<-EOF || die - [binaries] - # We don't want to bake /usr/bin/sh from usrmerged systems into - # binaries. /bin/sh is required by POSIX. - sh='/bin/sh' - EOF - - local emesonargs=( - --native-file "${native_file}" - - $(meson_feature curl) - $(meson_feature cgi gitweb) - $(meson_feature webdav expat) - $(meson_feature iconv) - $(meson_feature nls gettext) - $(meson_feature pcre pcre2) - $(meson_feature perl) - $(meson_feature perforce python) - $(meson_use test tests) - - -Dcontrib=$(IFS=, ; echo "${contrib[*]}" ) - -Dcredential_helpers=$(IFS=, ; echo "${credential_helpers[*]}" ) - - -Dmacos_use_homebrew_gettext=false - -Dperl_cpan_fallback=false - # TODO: allow zlib-ng - -Dzlib_backend=zlib - ) - - [[ ${CHOST} == *-darwin* ]] && emesonargs+=( -Dfsmonitor=false ) - - # For non-live, we use a downloaded docs tarball instead. - if [[ ${PV} == *9999 ]] || use doc ; then - emesonargs+=( - -Ddocs="man$(usev doc ',html')" - ) - fi - - if [[ ${PV} != *9999 ]] ; then - # Non-live ebuilds download the sources from a tarball which does not - # include a .git directory. Coccinelle assumes it exists and fails - # otherwise. - # - # Fixes https://bugs.gentoo.org/952004 - emesonargs+=( - -Dcoccinelle=disabled - ) - fi - - meson_src_configure - - if use tk ; then - ( - EMESON_SOURCE="${S}"/gitk-git - BUILD_DIR="${WORKDIR}"/gitk-git_build - emesonargs=() - meson_src_configure - ) - fi -} - -git_emake() { - local mymakeargs=( - prefix="${EPREFIX}"/usr - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html - sysconfdir="${EPREFIX}"/etc - perllibdir="$(use perl && perl_get_raw_vendorlib)" - - CC="$(tc-getCC)" - CFLAGS="${CFLAGS}" - LDFLAGS="${LDFLAGS}" - PKG_CONFIG="$(tc-getPKG_CONFIG)" - OPTAR="$(tc-getAR)" - OPTCC="$(tc-getCC)" - OPTCFLAGS="${CFLAGS}" - OPTLDFLAGS="${LDFLAGS}" - - PERL_PATH="${EPREFIX}/usr/bin/perl" - PERL_MM_OPT="" - - V=1 - - "$@" - ) - - emake "${mymakeargs[@]}" -} - -src_compile() { - meson_src_compile - - if use mediawiki ; then - git_emake -C contrib/mw-to-git - fi - - if use tk ; then - git_emake -C git-gui gitexecdir="${EPREFIX}/usr/libexec/git-core" - - ( - EMESON_SOURCE="${S}"/gitk-git - BUILD_DIR="${WORKDIR}"/gitk-git_build - meson_src_compile - ) - - fi - - if use doc ; then - # Workaround fragments that still use the Makefile and can't - # find the bits from Meson's out-of-source build - ln -s "${BUILD_DIR}"/Documentation/asciidoc.conf "${S}"/Documentation/asciidoc.conf || die - fi - - git_emake -C contrib/diff-highlight -} - -src_test() { - # t0610-reftable-basics.sh uses $A - local -x A= - - meson_src_test -} - -src_install() { - meson_src_install - - if use doc ; then - cp -r "${ED}"/usr/share/doc/git-doc/. "${ED}"/usr/share/doc/${PF}/html || die - rm -rf "${ED}"/usr/share/doc/git-doc/ || die - fi - - # Depending on the tarball and manual rebuild of the documentation, the - # manpages may exist in either OR both of these directories. - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157] - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157] - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines} - - local d - for d in / /howto/ /technical/ ; do - docinto ${d} - dodoc Documentation${d}*.adoc - done - docinto / - - newbashcomp contrib/completion/git-completion.bash ${PN} - bashcomp_alias git gitk - # Not really a bash-completion file (bug #477920) - # but still needed uncompressed (bug #507480) - insinto /usr/share/${PN} - doins contrib/completion/git-prompt.sh - - #dobin contrib/fast-import/git-p4 # Moved upstream - #dodoc contrib/fast-import/git-p4.txt # Moved upstream - newbin contrib/fast-import/import-tars.perl import-tars - exeinto /usr/libexec/git-core/ - newexe contrib/git-resurrect.sh git-resurrect - - # diff-highlight - dobin contrib/diff-highlight/diff-highlight - newdoc contrib/diff-highlight/README README.diff-highlight - - # git-jump - exeinto /usr/libexec/git-core/ - doexe contrib/git-jump/git-jump - newdoc contrib/git-jump/README git-jump.txt - - dodir /usr/share/${PN}/contrib - # The following are excluded: - # completion - installed above - # diff-highlight - done above - # emacs - removed upstream - # examples - these are stuff that is not used in Git anymore actually - # git-jump - done above - # gitview - installed above - # p4import - excluded because fast-import has a better one - # patches - stuff the Git guys made to go upstream to other places - # persistent-https - TODO - # mw-to-git - TODO - # subtree - built seperately - # svnimport - use git-svn - # thunderbird-patch-inline - fixes thunderbird - local contrib_objects=( - buildsystems - fast-import - hooks - remotes2config.sh - rerere-train.sh - stats - workdir - ) - local i - for i in "${contrib_objects[@]}" ; do - cp -rf "${S}"/contrib/${i} "${ED}"/usr/share/${PN}/contrib || die "Failed contrib ${i}" - done - - if use cgi ; then - # We used to install in /usr/share/${PN}/gitweb - # but upstream installs in /usr/share/gitweb - # so we will install a symlink and use their location for compat with other - # distros - dosym ../gitweb /usr/share/${PN}/gitweb - - # INSTALL discusses configuration issues, not just installation - docinto / - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb - newdoc "${S}"/gitweb/README README.gitweb - - for d in "${ED}"/usr/lib{,64}/perl5/ ; do - if [[ -d "${d}" ]] ; then - find "${d}" -name .packlist -delete || die - fi - done - else - rm -rf "${ED}"/usr/share/gitweb - fi - - if use perl ; then - dodir "$(perl_get_vendorlib)" - mv "${ED}"/usr/share/perl5/Git.pm "${ED}/$(perl_get_vendorlib)" || die - mv "${ED}"/usr/share/perl5/Git "${ED}/$(perl_get_vendorlib)" || die - fi - - if use mediawiki ; then - git_emake -C contrib/mw-to-git DESTDIR="${D}" install - fi - - if ! use subversion ; then - rm -f "${ED}"/usr/libexec/git-core/git-svn \ - "${ED}"/usr/share/man/man1/git-svn.1* - fi - - if use xinetd ; then - insinto /etc/xinetd.d - newins "${FILESDIR}"/git-daemon.xinetd git-daemon - fi - - if ! use prefix ; then - newinitd "${FILESDIR}"/git-daemon-r2.initd git-daemon - newconfd "${FILESDIR}"/git-daemon.confd git-daemon - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service" - systemd_dounit "${FILESDIR}/git-daemon.socket" - fi - - if use tk ; then - ( - EMESON_SOURCE="${S}"/gitk-git - BUILD_DIR="${WORKDIR}"/gitk-git_build - meson_src_install - ) - - git_emake -C git-gui gitexecdir="${EPREFIX}/usr/libexec/git-core" DESTDIR="${D}" install - fi - - perl_delete_localpod - - # Remove disabled linguas - # we could remove sources in src_prepare, but install does not - # handle missing locale dir well - rm_loc() { - if [[ -e "${ED}/usr/share/locale/${1}" ]] ; then - rm -r "${ED}/usr/share/locale/${1}" || die - fi - } - plocale_for_each_disabled_locale rm_loc -} - -pkg_postinst() { - if [[ -z ${REPLACING_VERSIONS} ]] ; then - elog "Please read /usr/share/bash-completion/completions/git for Git bash command" - elog "completion." - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt" - elog "Note that the prompt bash code is now in that separate script" - fi - - optfeature_header "Some scripts require additional dependencies:" - optfeature git-quiltimport dev-util/quilt - optfeature git-instaweb www-servers/lighttpd www-servers/apache www-servers/nginx -} diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.50.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.50.1.ebuild deleted file mode 100644 index e3361d6cd3c..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.50.1.ebuild +++ /dev/null @@ -1,499 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -GENTOO_DEPEND_ON_PERL=no - -# bug #329479: git-remote-testgit is not multiple-version aware -PYTHON_COMPAT=( python3_{11..14} ) - -inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd meson - -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN" - -if [[ ${PV} == *9999 ]]; then - EGIT_REPO_URI="https://git.kernel.org/pub/scm/git/git.git" - - inherit git-r3 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches. - # See https://git-scm.com/docs/gitworkflows#_graduation - # In order of stability: - # 9999-r0: maint - # 9999-r1: master - # 9999-r2: next - # 9999-r3: seen - case ${PVR} in - 9999) EGIT_BRANCH=maint ;; - 9999-r1) EGIT_BRANCH=master ;; - 9999-r2) EGIT_BRANCH=next;; - 9999-r3) EGIT_BRANCH=seen ;; - esac -fi - -MY_PV="${PV/_rc/.rc}" -MY_P="${PN}-${MY_PV}" - -DOC_VER="${MY_PV}" - -DESCRIPTION="Stupid content tracker: distributed VCS designed for speed and efficiency" -HOMEPAGE="https://www.git-scm.com/" - -if [[ ${PV} != *9999 ]]; then - SRC_URI_SUFFIX="xz" - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git" - - [[ ${PV/rc} != ${PV} ]] && SRC_URI_KORG+='/testing' - - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}" - SRC_URI+=" ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}" - SRC_URI+=" doc? ( ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} )" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" - fi -fi - -S="${WORKDIR}"/${MY_P} - -LICENSE="GPL-2" -SLOT="0" -IUSE="+curl cgi cvs doc keyring +gpg highlight +iconv mediawiki +nls +pcre perforce +perl +safe-directory selinux subversion test tk +webdav xinetd" - -# Common to both DEPEND and RDEPEND -DEPEND=" - dev-libs/openssl:= - virtual/zlib:= - curl? ( - net-misc/curl - webdav? ( dev-libs/expat ) - ) - keyring? ( - app-crypt/libsecret - dev-libs/glib:2 - ) - iconv? ( virtual/libiconv ) - pcre? ( dev-libs/libpcre2:= ) - perl? ( dev-lang/perl:=[-build(-)] ) - tk? ( dev-lang/tk:= ) -" -RDEPEND=" - ${DEPEND} - gpg? ( app-crypt/gnupg ) - perl? ( - dev-perl/Error - dev-perl/MailTools - dev-perl/Authen-SASL - >=virtual/perl-libnet-3.110.0-r4[ssl] - cgi? ( - dev-perl/CGI - highlight? ( app-text/highlight ) - ) - cvs? ( - >=dev-vcs/cvsps-2.1:0 - dev-perl/DBI - dev-perl/DBD-SQLite - ) - mediawiki? ( - dev-perl/DateTime-Format-ISO8601 - dev-perl/HTML-Tree - dev-perl/MediaWiki-API - ) - subversion? ( - dev-vcs/subversion[-dso(-),perl] - dev-perl/libwww-perl - dev-perl/TermReadKey - ) - ) - perforce? ( ${PYTHON_DEPS} ) - selinux? ( sec-policy/selinux-git ) -" - -# This is how info docs are created with Git: -# .txt/asciidoc --(asciidoc)---------> .xml/docbook -# .xml/docbook --(docbook2texi.pl)--> .texi -# .texi --(makeinfo)---------> .info -BDEPEND=" - doc? ( - app-text/asciidoc - app-text/docbook2X - app-text/xmlto - sys-apps/texinfo - ) - keyring? ( virtual/pkgconfig ) - nls? ( sys-devel/gettext ) - test? ( - app-arch/unzip - app-crypt/gnupg - dev-lang/perl - ) -" - -# Live ebuild builds man pages and HTML docs, additionally -if [[ ${PV} == *9999 ]]; then - BDEPEND+=" app-text/asciidoc" -fi - -SITEFILE="50${PN}-gentoo.el" - -REQUIRED_USE=" - cgi? ( perl ) - cvs? ( perl ) - mediawiki? ( perl ) - perforce? ( ${PYTHON_REQUIRED_USE} ) - subversion? ( perl ) - webdav? ( curl ) -" - -RESTRICT="!test? ( test )" - -PATCHES=( - "${FILESDIR}"/${PN}-2.48.1-macos-no-fsmonitor.patch - - # This patch isn't merged upstream but is kept in the ebuild by - # demand from developers. It's opt-in (needs a config option) - # and the documentation mentions that it is a Gentoo addition. - "${FILESDIR}"/${PN}-2.50.0-diff-implement-config.diff.renames-copies-harder.patch -) - -pkg_setup() { - if use subversion && has_version "dev-vcs/subversion[dso]" ; then - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built" - ewarn "with USE=dso, there may be weird crashes in git-svn. You" - ewarn "have been warned!" - fi - - if use perforce ; then - python-single-r1_pkg_setup - fi -} - -src_unpack() { - if [[ ${PV} != *9999 ]] ; then - unpack ${MY_P}.tar.${SRC_URI_SUFFIX} - - cd "${S}" || die - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX} - - if use doc ; then - pushd "${S}"/Documentation &>/dev/null || die - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} - popd &>/dev/null || die - fi - else - git-r3_src_unpack - fi - -} - -src_prepare() { - if ! use safe-directory ; then - # This patch neuters the "safe directory" detection. - # bugs #838271, #838223 - PATCHES+=( - "${FILESDIR}"/git-2.46.2-unsafe-directory.patch - ) - fi - - default -} - -src_configure() { - local contrib=( - completion - subtree - - $(usev perl 'contacts') - ) - local credential_helpers=( - $(usev keyring 'libsecret') - $(usev perl 'netrc') - ) - - # Needs macOS Frameworks that can't currently be built with GCC. - if [[ ${CHOST} == *-darwin* ]] && tc-is-clang ; then - credential_helpers+=( osxkeychain ) - fi - - local native_file="${T}"/meson.ini.local - cat >> ${native_file} <<-EOF || die - [binaries] - # We don't want to bake /usr/bin/sh from usrmerged systems into - # binaries. /bin/sh is required by POSIX. - sh='/bin/sh' - EOF - - local emesonargs=( - --native-file "${native_file}" - - $(meson_feature curl) - $(meson_feature cgi gitweb) - $(meson_feature webdav expat) - $(meson_feature iconv) - $(meson_feature nls gettext) - $(meson_feature pcre pcre2) - $(meson_feature perl) - $(meson_feature perforce python) - $(meson_use test tests) - - -Dcontrib=$(IFS=, ; echo "${contrib[*]}" ) - -Dcredential_helpers=$(IFS=, ; echo "${credential_helpers[*]}" ) - - -Dmacos_use_homebrew_gettext=false - -Dperl_cpan_fallback=false - # TODO: allow zlib-ng - -Dzlib_backend=zlib - ) - - [[ ${CHOST} == *-darwin* ]] && emesonargs+=( -Dfsmonitor=false ) - - # For non-live, we use a downloaded docs tarball instead. - if [[ ${PV} == *9999 ]] || use doc ; then - emesonargs+=( - -Ddocs="man$(usev doc ',html')" - ) - fi - - if [[ ${PV} != *9999 ]] ; then - # Non-live ebuilds download the sources from a tarball which does not - # include a .git directory. Coccinelle assumes it exists and fails - # otherwise. - # - # Fixes https://bugs.gentoo.org/952004 - emesonargs+=( - -Dcoccinelle=disabled - ) - fi - - meson_src_configure - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - emesonargs=() - meson_src_configure - ) - done - fi -} - -git_emake() { - local mymakeargs=( - prefix="${EPREFIX}"/usr - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html - sysconfdir="${EPREFIX}"/etc - perllibdir="$(use perl && perl_get_raw_vendorlib)" - - CC="$(tc-getCC)" - CFLAGS="${CFLAGS}" - LDFLAGS="${LDFLAGS}" - PKG_CONFIG="$(tc-getPKG_CONFIG)" - OPTAR="$(tc-getAR)" - OPTCC="$(tc-getCC)" - OPTCFLAGS="${CFLAGS}" - OPTLDFLAGS="${LDFLAGS}" - - PERL_PATH="${EPREFIX}/usr/bin/perl" - PERL_MM_OPT="" - - V=1 - - "$@" - ) - - emake "${mymakeargs[@]}" -} - -src_compile() { - meson_src_compile - - if use mediawiki ; then - git_emake -C contrib/mw-to-git - fi - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_compile - ) - done - fi - - if use doc ; then - # Workaround fragments that still use the Makefile and can't - # find the bits from Meson's out-of-source build - ln -s "${BUILD_DIR}"/Documentation/asciidoc.conf "${S}"/Documentation/asciidoc.conf || die - fi - - git_emake -C contrib/diff-highlight -} - -src_test() { - # t0610-reftable-basics.sh uses $A - local -x A= - - meson_src_test -} - -src_install() { - meson_src_install - - if use doc ; then - cp -r "${ED}"/usr/share/doc/git-doc/. "${ED}"/usr/share/doc/${PF}/html || die - rm -rf "${ED}"/usr/share/doc/git-doc/ || die - fi - - # Depending on the tarball and manual rebuild of the documentation, the - # manpages may exist in either OR both of these directories. - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157] - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157] - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines} - - local d - for d in / /howto/ /technical/ ; do - docinto ${d} - dodoc Documentation${d}*.adoc - done - docinto / - - newbashcomp contrib/completion/git-completion.bash ${PN} - bashcomp_alias git gitk - # Not really a bash-completion file (bug #477920) - # but still needed uncompressed (bug #507480) - insinto /usr/share/${PN} - doins contrib/completion/git-prompt.sh - - #dobin contrib/fast-import/git-p4 # Moved upstream - #dodoc contrib/fast-import/git-p4.txt # Moved upstream - newbin contrib/fast-import/import-tars.perl import-tars - exeinto /usr/libexec/git-core/ - newexe contrib/git-resurrect.sh git-resurrect - - # diff-highlight - dobin contrib/diff-highlight/diff-highlight - newdoc contrib/diff-highlight/README README.diff-highlight - - # git-jump - exeinto /usr/libexec/git-core/ - doexe contrib/git-jump/git-jump - newdoc contrib/git-jump/README git-jump.txt - - dodir /usr/share/${PN}/contrib - # The following are excluded: - # completion - installed above - # diff-highlight - done above - # emacs - removed upstream - # examples - these are stuff that is not used in Git anymore actually - # git-jump - done above - # gitview - installed above - # p4import - excluded because fast-import has a better one - # patches - stuff the Git guys made to go upstream to other places - # persistent-https - TODO - # mw-to-git - TODO - # subtree - built seperately - # svnimport - use git-svn - # thunderbird-patch-inline - fixes thunderbird - local contrib_objects=( - buildsystems - fast-import - hooks - remotes2config.sh - rerere-train.sh - stats - workdir - ) - local i - for i in "${contrib_objects[@]}" ; do - cp -rf "${S}"/contrib/${i} "${ED}"/usr/share/${PN}/contrib || die "Failed contrib ${i}" - done - - if use cgi ; then - # We used to install in /usr/share/${PN}/gitweb - # but upstream installs in /usr/share/gitweb - # so we will install a symlink and use their location for compat with other - # distros - dosym ../gitweb /usr/share/${PN}/gitweb - - # INSTALL discusses configuration issues, not just installation - docinto / - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb - newdoc "${S}"/gitweb/README README.gitweb - - for d in "${ED}"/usr/lib{,64}/perl5/ ; do - if [[ -d "${d}" ]] ; then - find "${d}" -name .packlist -delete || die - fi - done - else - rm -rf "${ED}"/usr/share/gitweb - fi - - if use perl ; then - dodir "$(perl_get_vendorlib)" - mv "${ED}"/usr/share/perl5/Git.pm "${ED}/$(perl_get_vendorlib)" || die - mv "${ED}"/usr/share/perl5/Git "${ED}/$(perl_get_vendorlib)" || die - fi - - if use mediawiki ; then - git_emake -C contrib/mw-to-git DESTDIR="${D}" install - fi - - if ! use subversion ; then - rm -f "${ED}"/usr/libexec/git-core/git-svn \ - "${ED}"/usr/share/man/man1/git-svn.1* - fi - - if use xinetd ; then - insinto /etc/xinetd.d - newins "${FILESDIR}"/git-daemon.xinetd git-daemon - fi - - if ! use prefix ; then - newinitd "${FILESDIR}"/git-daemon-r2.initd git-daemon - newconfd "${FILESDIR}"/git-daemon.confd git-daemon - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service" - systemd_dounit "${FILESDIR}/git-daemon.socket" - fi - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_install - ) - done - fi - - perl_delete_localpod - - # Remove disabled linguas - # we could remove sources in src_prepare, but install does not - # handle missing locale dir well - rm_loc() { - if [[ -e "${ED}/usr/share/locale/${1}" ]] ; then - rm -r "${ED}/usr/share/locale/${1}" || die - fi - } - plocale_for_each_disabled_locale rm_loc -} - -pkg_postinst() { - if [[ -z ${REPLACING_VERSIONS} ]] ; then - elog "Please read /usr/share/bash-completion/completions/git for Git bash command" - elog "completion." - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt" - elog "Note that the prompt bash code is now in that separate script" - fi - - optfeature_header "Some scripts require additional dependencies:" - optfeature git-quiltimport dev-util/quilt - optfeature git-instaweb www-servers/lighttpd www-servers/apache www-servers/nginx -} diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.0.ebuild deleted file mode 100644 index ac778840c2b..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.0.ebuild +++ /dev/null @@ -1,476 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -GENTOO_DEPEND_ON_PERL=no - -# bug #329479: git-remote-testgit is not multiple-version aware -PYTHON_COMPAT=( python3_{11..14} ) - -inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd meson - -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN" - -if [[ ${PV} == *9999 ]]; then - EGIT_REPO_URI="https://git.kernel.org/pub/scm/git/git.git" - - inherit git-r3 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches. - # See https://git-scm.com/docs/gitworkflows#_graduation - # In order of stability: - # 9999-r0: maint - # 9999-r1: master - # 9999-r2: next - # 9999-r3: seen - case ${PVR} in - 9999) EGIT_BRANCH=maint ;; - 9999-r1) EGIT_BRANCH=master ;; - 9999-r2) EGIT_BRANCH=next;; - 9999-r3) EGIT_BRANCH=seen ;; - esac -fi - -MY_PV="${PV/_rc/.rc}" -MY_P="${PN}-${MY_PV}" - -DOC_VER="${MY_PV}" - -DESCRIPTION="Stupid content tracker: distributed VCS designed for speed and efficiency" -HOMEPAGE="https://www.git-scm.com/" - -if [[ ${PV} != *9999 ]]; then - SRC_URI_SUFFIX="xz" - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git" - - [[ ${PV/rc} != ${PV} ]] && SRC_URI_KORG+='/testing' - - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}" - SRC_URI+=" ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}" - SRC_URI+=" doc? ( ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} )" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" - fi -fi - -S="${WORKDIR}"/${MY_P} - -LICENSE="GPL-2" -SLOT="0" -IUSE="+curl cgi cvs doc keyring +gpg highlight +iconv +nls +pcre perforce +perl +safe-directory selinux subversion test tk +webdav xinetd" - -# Common to both DEPEND and RDEPEND -DEPEND=" - dev-libs/openssl:= - virtual/zlib:= - curl? ( - net-misc/curl - webdav? ( dev-libs/expat ) - ) - keyring? ( - app-crypt/libsecret - dev-libs/glib:2 - ) - iconv? ( virtual/libiconv ) - pcre? ( dev-libs/libpcre2:= ) - perl? ( dev-lang/perl:=[-build(-)] ) - tk? ( dev-lang/tk:= ) -" -RDEPEND=" - ${DEPEND} - gpg? ( app-crypt/gnupg ) - perl? ( - dev-perl/Error - dev-perl/MailTools - dev-perl/Authen-SASL - >=virtual/perl-libnet-3.110.0-r4[ssl] - cgi? ( - dev-perl/CGI - highlight? ( app-text/highlight ) - ) - cvs? ( - >=dev-vcs/cvsps-2.1:0 - dev-perl/DBI - dev-perl/DBD-SQLite - ) - subversion? ( - dev-vcs/subversion[-dso(-),perl] - dev-perl/libwww-perl - dev-perl/TermReadKey - ) - ) - perforce? ( ${PYTHON_DEPS} ) - selinux? ( sec-policy/selinux-git ) -" - -# This is how info docs are created with Git: -# .txt/asciidoc --(asciidoc)---------> .xml/docbook -# .xml/docbook --(docbook2texi.pl)--> .texi -# .texi --(makeinfo)---------> .info -BDEPEND=" - doc? ( - app-text/asciidoc - app-text/docbook2X - app-text/xmlto - sys-apps/texinfo - ) - keyring? ( virtual/pkgconfig ) - nls? ( sys-devel/gettext ) - test? ( - app-arch/unzip - app-crypt/gnupg - dev-lang/perl - ) -" - -# Live ebuild builds man pages and HTML docs, additionally -if [[ ${PV} == *9999 ]]; then - BDEPEND+=" app-text/asciidoc" -fi - -SITEFILE="50${PN}-gentoo.el" - -REQUIRED_USE=" - cgi? ( perl ) - cvs? ( perl ) - perforce? ( ${PYTHON_REQUIRED_USE} ) - subversion? ( perl ) - webdav? ( curl ) -" - -RESTRICT="!test? ( test )" - -PATCHES=( - "${FILESDIR}"/${PN}-2.48.1-macos-no-fsmonitor.patch - - # This patch isn't merged upstream but is kept in the ebuild by - # demand from developers. It's opt-in (needs a config option) - # and the documentation mentions that it is a Gentoo addition. - "${FILESDIR}"/${PN}-2.50.0-diff-implement-config.diff.renames-copies-harder.patch -) - -pkg_setup() { - if use subversion && has_version "dev-vcs/subversion[dso]" ; then - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built" - ewarn "with USE=dso, there may be weird crashes in git-svn. You" - ewarn "have been warned!" - fi - - if use perforce ; then - python-single-r1_pkg_setup - fi -} - -src_unpack() { - if [[ ${PV} != *9999 ]] ; then - unpack ${MY_P}.tar.${SRC_URI_SUFFIX} - - cd "${S}" || die - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX} - - if use doc ; then - pushd "${S}"/Documentation &>/dev/null || die - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} - popd &>/dev/null || die - fi - else - git-r3_src_unpack - fi - -} - -src_prepare() { - if ! use safe-directory ; then - # This patch neuters the "safe directory" detection. - # bugs #838271, #838223 - PATCHES+=( - "${FILESDIR}"/git-2.46.2-unsafe-directory.patch - ) - fi - - default -} - -src_configure() { - local contrib=( - completion - subtree - - $(usev perl 'contacts') - ) - local credential_helpers=( - $(usev keyring 'libsecret') - $(usev perl 'netrc') - ) - - # Needs macOS Frameworks that can't currently be built with GCC. - if [[ ${CHOST} == *-darwin* ]] && tc-is-clang ; then - credential_helpers+=( osxkeychain ) - fi - - local native_file="${T}"/meson.ini.local - cat >> ${native_file} <<-EOF || die - [binaries] - # We don't want to bake /usr/bin/sh from usrmerged systems into - # binaries. /bin/sh is required by POSIX. - sh='/bin/sh' - EOF - - local emesonargs=( - --native-file "${native_file}" - - $(meson_feature curl) - $(meson_feature cgi gitweb) - $(meson_feature webdav expat) - $(meson_feature iconv) - $(meson_feature nls gettext) - $(meson_feature pcre pcre2) - $(meson_feature perl) - $(meson_feature perforce python) - $(meson_use test tests) - - -Dcontrib=$(IFS=, ; echo "${contrib[*]}" ) - -Dcredential_helpers=$(IFS=, ; echo "${credential_helpers[*]}" ) - - -Dmacos_use_homebrew_gettext=false - -Dperl_cpan_fallback=false - # TODO: allow zlib-ng - -Dzlib_backend=zlib - ) - - [[ ${CHOST} == *-darwin* ]] && emesonargs+=( -Dfsmonitor=false ) - - # For non-live, we use a downloaded docs tarball instead. - if [[ ${PV} == *9999 ]] || use doc ; then - emesonargs+=( - -Ddocs="man$(usev doc ',html')" - ) - fi - - if [[ ${PV} != *9999 ]] ; then - # Non-live ebuilds download the sources from a tarball which does not - # include a .git directory. Coccinelle assumes it exists and fails - # otherwise. - # - # Fixes https://bugs.gentoo.org/952004 - emesonargs+=( - -Dcoccinelle=disabled - ) - fi - - meson_src_configure - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - emesonargs=() - meson_src_configure - ) - done - fi -} - -git_emake() { - local mymakeargs=( - prefix="${EPREFIX}"/usr - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html - sysconfdir="${EPREFIX}"/etc - perllibdir="$(use perl && perl_get_raw_vendorlib)" - - CC="$(tc-getCC)" - CFLAGS="${CFLAGS}" - LDFLAGS="${LDFLAGS}" - PKG_CONFIG="$(tc-getPKG_CONFIG)" - OPTAR="$(tc-getAR)" - OPTCC="$(tc-getCC)" - OPTCFLAGS="${CFLAGS}" - OPTLDFLAGS="${LDFLAGS}" - - PERL_PATH="${EPREFIX}/usr/bin/perl" - PERL_MM_OPT="" - - V=1 - - "$@" - ) - - emake "${mymakeargs[@]}" -} - -src_compile() { - meson_src_compile - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_compile - ) - done - fi - - if use doc ; then - # Workaround fragments that still use the Makefile and can't - # find the bits from Meson's out-of-source build - ln -s "${BUILD_DIR}"/Documentation/asciidoc.conf "${S}"/Documentation/asciidoc.conf || die - fi - - git_emake -C contrib/diff-highlight -} - -src_test() { - # t0610-reftable-basics.sh uses $A - local -x A= - - meson_src_test -} - -src_install() { - meson_src_install - - if use doc ; then - cp -r "${ED}"/usr/share/doc/git-doc/. "${ED}"/usr/share/doc/${PF}/html || die - rm -rf "${ED}"/usr/share/doc/git-doc/ || die - fi - - # Depending on the tarball and manual rebuild of the documentation, the - # manpages may exist in either OR both of these directories. - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157] - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157] - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines} - - local d - for d in / /howto/ /technical/ ; do - docinto ${d} - dodoc Documentation${d}*.adoc - done - docinto / - - newbashcomp contrib/completion/git-completion.bash ${PN} - bashcomp_alias git gitk - # Not really a bash-completion file (bug #477920) - # but still needed uncompressed (bug #507480) - insinto /usr/share/${PN} - doins contrib/completion/git-prompt.sh - - #dobin contrib/fast-import/git-p4 # Moved upstream - #dodoc contrib/fast-import/git-p4.txt # Moved upstream - newbin contrib/fast-import/import-tars.perl import-tars - - # diff-highlight - dobin contrib/diff-highlight/diff-highlight - newdoc contrib/diff-highlight/README README.diff-highlight - - # git-jump - exeinto /usr/libexec/git-core/ - doexe contrib/git-jump/git-jump - newdoc contrib/git-jump/README git-jump.txt - - dodir /usr/share/${PN}/contrib - # The following are excluded: - # completion - installed above - # diff-highlight - done above - # git-jump - done above - # gitview - installed above - # p4import - excluded because fast-import has a better one - # patches - stuff the Git guys made to go upstream to other places - # subtree - built seperately - # svnimport - use git-svn - # thunderbird-patch-inline - fixes thunderbird - local contrib_objects=( - buildsystems - fast-import - rerere-train.sh - stats - ) - local i - for i in "${contrib_objects[@]}" ; do - cp -rf "${S}"/contrib/${i} "${ED}"/usr/share/${PN}/contrib || die "Failed contrib ${i}" - done - - if use cgi ; then - # We used to install in /usr/share/${PN}/gitweb - # but upstream installs in /usr/share/gitweb - # so we will install a symlink and use their location for compat with other - # distros - dosym ../gitweb /usr/share/${PN}/gitweb - - # INSTALL discusses configuration issues, not just installation - docinto / - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb - newdoc "${S}"/gitweb/README README.gitweb - - for d in "${ED}"/usr/lib{,64}/perl5/ ; do - if [[ -d "${d}" ]] ; then - find "${d}" -name .packlist -delete || die - fi - done - else - rm -rf "${ED}"/usr/share/gitweb - fi - - if use perl ; then - dodir "$(perl_get_vendorlib)" - mv "${ED}"/usr/share/perl5/Git.pm "${ED}/$(perl_get_vendorlib)" || die - mv "${ED}"/usr/share/perl5/Git "${ED}/$(perl_get_vendorlib)" || die - fi - - if ! use subversion ; then - rm -f "${ED}"/usr/libexec/git-core/git-svn \ - "${ED}"/usr/share/man/man1/git-svn.1* - fi - - if use xinetd ; then - insinto /etc/xinetd.d - newins "${FILESDIR}"/git-daemon.xinetd git-daemon - fi - - if ! use prefix ; then - newinitd "${FILESDIR}"/git-daemon-r2.initd git-daemon - newconfd "${FILESDIR}"/git-daemon.confd git-daemon - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service" - systemd_dounit "${FILESDIR}/git-daemon.socket" - fi - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_install - ) - done - fi - - perl_delete_localpod - - # Remove disabled linguas - # we could remove sources in src_prepare, but install does not - # handle missing locale dir well - rm_loc() { - if [[ -e "${ED}/usr/share/locale/${1}" ]] ; then - rm -r "${ED}/usr/share/locale/${1}" || die - fi - } - plocale_for_each_disabled_locale rm_loc -} - -pkg_postinst() { - if [[ -z ${REPLACING_VERSIONS} ]] ; then - elog "Please read /usr/share/bash-completion/completions/git for Git bash command" - elog "completion." - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt" - elog "Note that the prompt bash code is now in that separate script" - fi - - optfeature_header "Some scripts require additional dependencies:" - optfeature git-quiltimport dev-util/quilt - optfeature git-instaweb www-servers/lighttpd www-servers/apache www-servers/nginx -} diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.1.ebuild deleted file mode 100644 index 91b4e8a4cac..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.1.ebuild +++ /dev/null @@ -1,478 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -GENTOO_DEPEND_ON_PERL=no - -# bug #329479: git-remote-testgit is not multiple-version aware -PYTHON_COMPAT=( python3_{11..14} ) - -inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd meson - -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN" - -if [[ ${PV} == *9999 ]]; then - EGIT_REPO_URI="https://git.kernel.org/pub/scm/git/git.git" - - inherit git-r3 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches. - # See https://git-scm.com/docs/gitworkflows#_graduation - # In order of stability: - # 9999-r0: maint - # 9999-r1: master - # 9999-r2: next - # 9999-r3: seen - case ${PVR} in - 9999) EGIT_BRANCH=maint ;; - 9999-r1) EGIT_BRANCH=master ;; - 9999-r2) EGIT_BRANCH=next;; - 9999-r3) EGIT_BRANCH=seen ;; - esac -fi - -MY_PV="${PV/_rc/.rc}" -MY_P="${PN}-${MY_PV}" - -DOC_VER="${MY_PV}" - -DESCRIPTION="Stupid content tracker: distributed VCS designed for speed and efficiency" -HOMEPAGE="https://www.git-scm.com/" - -if [[ ${PV} != *9999 ]]; then - SRC_URI_SUFFIX="xz" - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git" - - [[ ${PV/rc} != ${PV} ]] && SRC_URI_KORG+='/testing' - - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}" - SRC_URI+=" ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}" - SRC_URI+=" doc? ( ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} )" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" - fi -fi - -S="${WORKDIR}"/${MY_P} - -LICENSE="GPL-2" -SLOT="0" -IUSE="+curl cgi cvs doc keyring +gpg highlight +iconv +nls +pcre perforce +perl +safe-directory selinux subversion test tk +webdav xinetd" - -# Common to both DEPEND and RDEPEND -DEPEND=" - dev-libs/openssl:= - virtual/zlib:= - curl? ( - net-misc/curl - webdav? ( dev-libs/expat ) - ) - keyring? ( - app-crypt/libsecret - dev-libs/glib:2 - ) - iconv? ( virtual/libiconv ) - pcre? ( dev-libs/libpcre2:= ) - perl? ( dev-lang/perl:=[-build(-)] ) - tk? ( dev-lang/tk:= ) -" -RDEPEND=" - ${DEPEND} - gpg? ( app-crypt/gnupg ) - perl? ( - dev-perl/Error - dev-perl/MailTools - dev-perl/Authen-SASL - >=virtual/perl-libnet-3.110.0-r4[ssl] - cgi? ( - dev-perl/CGI - highlight? ( app-text/highlight ) - ) - cvs? ( - >=dev-vcs/cvsps-2.1:0 - dev-perl/DBI - dev-perl/DBD-SQLite - ) - subversion? ( - dev-vcs/subversion[-dso(-),perl] - dev-perl/libwww-perl - dev-perl/TermReadKey - ) - ) - perforce? ( ${PYTHON_DEPS} ) - selinux? ( sec-policy/selinux-git ) -" - -# This is how info docs are created with Git: -# .txt/asciidoc --(asciidoc)---------> .xml/docbook -# .xml/docbook --(docbook2texi.pl)--> .texi -# .texi --(makeinfo)---------> .info -BDEPEND=" - doc? ( - app-text/asciidoc - app-text/docbook2X - app-text/xmlto - sys-apps/texinfo - ) - keyring? ( virtual/pkgconfig ) - nls? ( sys-devel/gettext ) - test? ( - app-arch/unzip - app-crypt/gnupg - dev-lang/perl - ) -" - -# Live ebuild builds man pages and HTML docs, additionally -if [[ ${PV} == *9999 ]]; then - BDEPEND+=" app-text/asciidoc" -fi - -SITEFILE="50${PN}-gentoo.el" - -REQUIRED_USE=" - cgi? ( perl ) - cvs? ( perl ) - perforce? ( ${PYTHON_REQUIRED_USE} ) - subversion? ( perl ) - webdav? ( curl ) -" - -RESTRICT="!test? ( test )" - -PATCHES=( - "${FILESDIR}"/${PN}-2.48.1-macos-no-fsmonitor.patch - - # This patch isn't merged upstream but is kept in the ebuild by - # demand from developers. It's opt-in (needs a config option) - # and the documentation mentions that it is a Gentoo addition. - "${FILESDIR}"/${PN}-2.50.0-diff-implement-config.diff.renames-copies-harder.patch - - "${FILESDIR}"/${PN}-2.51.1-openssh-10.1-tests.patch -) - -pkg_setup() { - if use subversion && has_version "dev-vcs/subversion[dso]" ; then - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built" - ewarn "with USE=dso, there may be weird crashes in git-svn. You" - ewarn "have been warned!" - fi - - if use perforce ; then - python-single-r1_pkg_setup - fi -} - -src_unpack() { - if [[ ${PV} != *9999 ]] ; then - unpack ${MY_P}.tar.${SRC_URI_SUFFIX} - - cd "${S}" || die - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX} - - if use doc ; then - pushd "${S}"/Documentation &>/dev/null || die - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} - popd &>/dev/null || die - fi - else - git-r3_src_unpack - fi - -} - -src_prepare() { - if ! use safe-directory ; then - # This patch neuters the "safe directory" detection. - # bugs #838271, #838223 - PATCHES+=( - "${FILESDIR}"/git-2.46.2-unsafe-directory.patch - ) - fi - - default -} - -src_configure() { - local contrib=( - completion - subtree - - $(usev perl 'contacts') - ) - local credential_helpers=( - $(usev keyring 'libsecret') - $(usev perl 'netrc') - ) - - # Needs macOS Frameworks that can't currently be built with GCC. - if [[ ${CHOST} == *-darwin* ]] && tc-is-clang ; then - credential_helpers+=( osxkeychain ) - fi - - local native_file="${T}"/meson.ini.local - cat >> ${native_file} <<-EOF || die - [binaries] - # We don't want to bake /usr/bin/sh from usrmerged systems into - # binaries. /bin/sh is required by POSIX. - sh='/bin/sh' - EOF - - local emesonargs=( - --native-file "${native_file}" - - $(meson_feature curl) - $(meson_feature cgi gitweb) - $(meson_feature webdav expat) - $(meson_feature iconv) - $(meson_feature nls gettext) - $(meson_feature pcre pcre2) - $(meson_feature perl) - $(meson_feature perforce python) - $(meson_use test tests) - - -Dcontrib=$(IFS=, ; echo "${contrib[*]}" ) - -Dcredential_helpers=$(IFS=, ; echo "${credential_helpers[*]}" ) - - -Dmacos_use_homebrew_gettext=false - -Dperl_cpan_fallback=false - # TODO: allow zlib-ng - -Dzlib_backend=zlib - ) - - [[ ${CHOST} == *-darwin* ]] && emesonargs+=( -Dfsmonitor=false ) - - # For non-live, we use a downloaded docs tarball instead. - if [[ ${PV} == *9999 ]] || use doc ; then - emesonargs+=( - -Ddocs="man$(usev doc ',html')" - ) - fi - - if [[ ${PV} != *9999 ]] ; then - # Non-live ebuilds download the sources from a tarball which does not - # include a .git directory. Coccinelle assumes it exists and fails - # otherwise. - # - # Fixes https://bugs.gentoo.org/952004 - emesonargs+=( - -Dcoccinelle=disabled - ) - fi - - meson_src_configure - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - emesonargs=() - meson_src_configure - ) - done - fi -} - -git_emake() { - local mymakeargs=( - prefix="${EPREFIX}"/usr - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html - sysconfdir="${EPREFIX}"/etc - perllibdir="$(use perl && perl_get_raw_vendorlib)" - - CC="$(tc-getCC)" - CFLAGS="${CFLAGS}" - LDFLAGS="${LDFLAGS}" - PKG_CONFIG="$(tc-getPKG_CONFIG)" - OPTAR="$(tc-getAR)" - OPTCC="$(tc-getCC)" - OPTCFLAGS="${CFLAGS}" - OPTLDFLAGS="${LDFLAGS}" - - PERL_PATH="${EPREFIX}/usr/bin/perl" - PERL_MM_OPT="" - - V=1 - - "$@" - ) - - emake "${mymakeargs[@]}" -} - -src_compile() { - meson_src_compile - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_compile - ) - done - fi - - if use doc ; then - # Workaround fragments that still use the Makefile and can't - # find the bits from Meson's out-of-source build - ln -s "${BUILD_DIR}"/Documentation/asciidoc.conf "${S}"/Documentation/asciidoc.conf || die - fi - - git_emake -C contrib/diff-highlight -} - -src_test() { - # t0610-reftable-basics.sh uses $A - local -x A= - - meson_src_test -} - -src_install() { - meson_src_install - - if use doc ; then - cp -r "${ED}"/usr/share/doc/git-doc/. "${ED}"/usr/share/doc/${PF}/html || die - rm -rf "${ED}"/usr/share/doc/git-doc/ || die - fi - - # Depending on the tarball and manual rebuild of the documentation, the - # manpages may exist in either OR both of these directories. - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157] - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157] - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines} - - local d - for d in / /howto/ /technical/ ; do - docinto ${d} - dodoc Documentation${d}*.adoc - done - docinto / - - newbashcomp contrib/completion/git-completion.bash ${PN} - bashcomp_alias git gitk - # Not really a bash-completion file (bug #477920) - # but still needed uncompressed (bug #507480) - insinto /usr/share/${PN} - doins contrib/completion/git-prompt.sh - - #dobin contrib/fast-import/git-p4 # Moved upstream - #dodoc contrib/fast-import/git-p4.txt # Moved upstream - newbin contrib/fast-import/import-tars.perl import-tars - - # diff-highlight - dobin contrib/diff-highlight/diff-highlight - newdoc contrib/diff-highlight/README README.diff-highlight - - # git-jump - exeinto /usr/libexec/git-core/ - doexe contrib/git-jump/git-jump - newdoc contrib/git-jump/README git-jump.txt - - dodir /usr/share/${PN}/contrib - # The following are excluded: - # completion - installed above - # diff-highlight - done above - # git-jump - done above - # gitview - installed above - # p4import - excluded because fast-import has a better one - # patches - stuff the Git guys made to go upstream to other places - # subtree - built seperately - # svnimport - use git-svn - # thunderbird-patch-inline - fixes thunderbird - local contrib_objects=( - buildsystems - fast-import - rerere-train.sh - stats - ) - local i - for i in "${contrib_objects[@]}" ; do - cp -rf "${S}"/contrib/${i} "${ED}"/usr/share/${PN}/contrib || die "Failed contrib ${i}" - done - - if use cgi ; then - # We used to install in /usr/share/${PN}/gitweb - # but upstream installs in /usr/share/gitweb - # so we will install a symlink and use their location for compat with other - # distros - dosym ../gitweb /usr/share/${PN}/gitweb - - # INSTALL discusses configuration issues, not just installation - docinto / - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb - newdoc "${S}"/gitweb/README README.gitweb - - for d in "${ED}"/usr/lib{,64}/perl5/ ; do - if [[ -d "${d}" ]] ; then - find "${d}" -name .packlist -delete || die - fi - done - else - rm -rf "${ED}"/usr/share/gitweb - fi - - if use perl ; then - dodir "$(perl_get_vendorlib)" - mv "${ED}"/usr/share/perl5/Git.pm "${ED}/$(perl_get_vendorlib)" || die - mv "${ED}"/usr/share/perl5/Git "${ED}/$(perl_get_vendorlib)" || die - fi - - if ! use subversion ; then - rm -f "${ED}"/usr/libexec/git-core/git-svn \ - "${ED}"/usr/share/man/man1/git-svn.1* - fi - - if use xinetd ; then - insinto /etc/xinetd.d - newins "${FILESDIR}"/git-daemon.xinetd git-daemon - fi - - if ! use prefix ; then - newinitd "${FILESDIR}"/git-daemon-r2.initd git-daemon - newconfd "${FILESDIR}"/git-daemon.confd git-daemon - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service" - systemd_dounit "${FILESDIR}/git-daemon.socket" - fi - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_install - ) - done - fi - - perl_delete_localpod - - # Remove disabled linguas - # we could remove sources in src_prepare, but install does not - # handle missing locale dir well - rm_loc() { - if [[ -e "${ED}/usr/share/locale/${1}" ]] ; then - rm -r "${ED}/usr/share/locale/${1}" || die - fi - } - plocale_for_each_disabled_locale rm_loc -} - -pkg_postinst() { - if [[ -z ${REPLACING_VERSIONS} ]] ; then - elog "Please read /usr/share/bash-completion/completions/git for Git bash command" - elog "completion." - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt" - elog "Note that the prompt bash code is now in that separate script" - fi - - optfeature_header "Some scripts require additional dependencies:" - optfeature git-quiltimport dev-util/quilt - optfeature git-instaweb www-servers/lighttpd www-servers/apache www-servers/nginx -} diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.2-r1.ebuild deleted file mode 100644 index 2d8e874785b..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.2-r1.ebuild +++ /dev/null @@ -1,476 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -GENTOO_DEPEND_ON_PERL=no - -# bug #329479: git-remote-testgit is not multiple-version aware -PYTHON_COMPAT=( python3_{11..14} ) - -inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd meson - -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN" - -if [[ ${PV} == *9999 ]]; then - EGIT_REPO_URI="https://git.kernel.org/pub/scm/git/git.git" - - inherit git-r3 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches. - # See https://git-scm.com/docs/gitworkflows#_graduation - # In order of stability: - # 9999-r0: maint - # 9999-r1: master - # 9999-r2: next - # 9999-r3: seen - case ${PVR} in - 9999) EGIT_BRANCH=maint ;; - 9999-r1) EGIT_BRANCH=master ;; - 9999-r2) EGIT_BRANCH=next;; - 9999-r3) EGIT_BRANCH=seen ;; - esac -fi - -MY_PV="${PV/_rc/.rc}" -MY_P="${PN}-${MY_PV}" - -DOC_VER="${MY_PV}" - -DESCRIPTION="Stupid content tracker: distributed VCS designed for speed and efficiency" -HOMEPAGE="https://www.git-scm.com/" - -if [[ ${PV} != *9999 ]]; then - SRC_URI_SUFFIX="xz" - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git" - - [[ ${PV/rc} != ${PV} ]] && SRC_URI_KORG+='/testing' - - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}" - SRC_URI+=" ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}" - SRC_URI+=" doc? ( ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} )" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" - fi -fi - -S="${WORKDIR}"/${MY_P} - -LICENSE="GPL-2" -SLOT="0" -IUSE="+curl cgi cvs doc keyring +gpg highlight +iconv +nls +pcre perforce +perl +safe-directory selinux subversion test tk +webdav xinetd" - -# Common to both DEPEND and RDEPEND -DEPEND=" - dev-libs/openssl:= - virtual/zlib:= - curl? ( - net-misc/curl - webdav? ( dev-libs/expat ) - ) - keyring? ( - app-crypt/libsecret - dev-libs/glib:2 - ) - iconv? ( virtual/libiconv ) - pcre? ( dev-libs/libpcre2:= ) - perl? ( dev-lang/perl:=[-build(-)] ) - tk? ( dev-lang/tk:= ) -" -RDEPEND=" - ${DEPEND} - gpg? ( app-alternatives/gpg ) - perl? ( - dev-perl/Error - dev-perl/MailTools - dev-perl/Authen-SASL - >=virtual/perl-libnet-3.110.0-r4[ssl] - cgi? ( - dev-perl/CGI - highlight? ( app-text/highlight ) - ) - cvs? ( - >=dev-vcs/cvsps-2.1:0 - dev-perl/DBI - dev-perl/DBD-SQLite - ) - subversion? ( - dev-vcs/subversion[-dso(-),perl] - dev-perl/libwww-perl - dev-perl/TermReadKey - ) - ) - perforce? ( ${PYTHON_DEPS} ) - selinux? ( sec-policy/selinux-git ) -" - -# This is how info docs are created with Git: -# .txt/asciidoc --(asciidoc)---------> .xml/docbook -# .xml/docbook --(docbook2texi.pl)--> .texi -# .texi --(makeinfo)---------> .info -BDEPEND=" - doc? ( - app-text/asciidoc - app-text/docbook2X - app-text/xmlto - sys-apps/texinfo - ) - keyring? ( virtual/pkgconfig ) - nls? ( sys-devel/gettext ) - test? ( - app-arch/unzip - app-crypt/gnupg - dev-lang/perl - ) -" - -# Live ebuild builds man pages and HTML docs, additionally -if [[ ${PV} == *9999 ]]; then - BDEPEND+=" app-text/asciidoc" -fi - -SITEFILE="50${PN}-gentoo.el" - -REQUIRED_USE=" - cgi? ( perl ) - cvs? ( perl ) - perforce? ( ${PYTHON_REQUIRED_USE} ) - subversion? ( perl ) - webdav? ( curl ) -" - -RESTRICT="!test? ( test )" - -PATCHES=( - "${FILESDIR}"/${PN}-2.48.1-macos-no-fsmonitor.patch - - # This patch isn't merged upstream but is kept in the ebuild by - # demand from developers. It's opt-in (needs a config option) - # and the documentation mentions that it is a Gentoo addition. - "${FILESDIR}"/${PN}-2.50.0-diff-implement-config.diff.renames-copies-harder.patch -) - -pkg_setup() { - if use subversion && has_version "dev-vcs/subversion[dso]" ; then - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built" - ewarn "with USE=dso, there may be weird crashes in git-svn. You" - ewarn "have been warned!" - fi - - if use perforce ; then - python-single-r1_pkg_setup - fi -} - -src_unpack() { - if [[ ${PV} != *9999 ]] ; then - unpack ${MY_P}.tar.${SRC_URI_SUFFIX} - - cd "${S}" || die - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX} - - if use doc ; then - pushd "${S}"/Documentation &>/dev/null || die - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} - popd &>/dev/null || die - fi - else - git-r3_src_unpack - fi - -} - -src_prepare() { - if ! use safe-directory ; then - # This patch neuters the "safe directory" detection. - # bugs #838271, #838223 - PATCHES+=( - "${FILESDIR}"/git-2.46.2-unsafe-directory.patch - ) - fi - - default -} - -src_configure() { - local contrib=( - completion - subtree - - $(usev perl 'contacts') - ) - local credential_helpers=( - $(usev keyring 'libsecret') - $(usev perl 'netrc') - ) - - # Needs macOS Frameworks that can't currently be built with GCC. - if [[ ${CHOST} == *-darwin* ]] && tc-is-clang ; then - credential_helpers+=( osxkeychain ) - fi - - local native_file="${T}"/meson.ini.local - cat >> ${native_file} <<-EOF || die - [binaries] - # We don't want to bake /usr/bin/sh from usrmerged systems into - # binaries. /bin/sh is required by POSIX. - sh='/bin/sh' - EOF - - local emesonargs=( - --native-file "${native_file}" - - $(meson_feature curl) - $(meson_feature cgi gitweb) - $(meson_feature webdav expat) - $(meson_feature iconv) - $(meson_feature nls gettext) - $(meson_feature pcre pcre2) - $(meson_feature perl) - $(meson_feature perforce python) - $(meson_use test tests) - - -Dcontrib=$(IFS=, ; echo "${contrib[*]}" ) - -Dcredential_helpers=$(IFS=, ; echo "${credential_helpers[*]}" ) - - -Dmacos_use_homebrew_gettext=false - -Dperl_cpan_fallback=false - # TODO: allow zlib-ng - -Dzlib_backend=zlib - ) - - [[ ${CHOST} == *-darwin* ]] && emesonargs+=( -Dfsmonitor=false ) - - # For non-live, we use a downloaded docs tarball instead. - if [[ ${PV} == *9999 ]] || use doc ; then - emesonargs+=( - -Ddocs="man$(usev doc ',html')" - ) - fi - - if [[ ${PV} != *9999 ]] ; then - # Non-live ebuilds download the sources from a tarball which does not - # include a .git directory. Coccinelle assumes it exists and fails - # otherwise. - # - # Fixes https://bugs.gentoo.org/952004 - emesonargs+=( - -Dcoccinelle=disabled - ) - fi - - meson_src_configure - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - emesonargs=() - meson_src_configure - ) - done - fi -} - -git_emake() { - local mymakeargs=( - prefix="${EPREFIX}"/usr - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html - sysconfdir="${EPREFIX}"/etc - perllibdir="$(use perl && perl_get_raw_vendorlib)" - - CC="$(tc-getCC)" - CFLAGS="${CFLAGS}" - LDFLAGS="${LDFLAGS}" - PKG_CONFIG="$(tc-getPKG_CONFIG)" - OPTAR="$(tc-getAR)" - OPTCC="$(tc-getCC)" - OPTCFLAGS="${CFLAGS}" - OPTLDFLAGS="${LDFLAGS}" - - PERL_PATH="${EPREFIX}/usr/bin/perl" - PERL_MM_OPT="" - - V=1 - - "$@" - ) - - emake "${mymakeargs[@]}" -} - -src_compile() { - meson_src_compile - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_compile - ) - done - fi - - if use doc ; then - # Workaround fragments that still use the Makefile and can't - # find the bits from Meson's out-of-source build - ln -s "${BUILD_DIR}"/Documentation/asciidoc.conf "${S}"/Documentation/asciidoc.conf || die - fi - - git_emake -C contrib/diff-highlight -} - -src_test() { - # t0610-reftable-basics.sh uses $A - local -x A= - - meson_src_test -} - -src_install() { - meson_src_install - - if use doc ; then - cp -r "${ED}"/usr/share/doc/git-doc/. "${ED}"/usr/share/doc/${PF}/html || die - rm -rf "${ED}"/usr/share/doc/git-doc/ || die - fi - - # Depending on the tarball and manual rebuild of the documentation, the - # manpages may exist in either OR both of these directories. - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157] - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157] - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines} - - local d - for d in / /howto/ /technical/ ; do - docinto ${d} - dodoc Documentation${d}*.adoc - done - docinto / - - newbashcomp contrib/completion/git-completion.bash ${PN} - bashcomp_alias git gitk - # Not really a bash-completion file (bug #477920) - # but still needed uncompressed (bug #507480) - insinto /usr/share/${PN} - doins contrib/completion/git-prompt.sh - - #dobin contrib/fast-import/git-p4 # Moved upstream - #dodoc contrib/fast-import/git-p4.txt # Moved upstream - newbin contrib/fast-import/import-tars.perl import-tars - - # diff-highlight - dobin contrib/diff-highlight/diff-highlight - newdoc contrib/diff-highlight/README README.diff-highlight - - # git-jump - exeinto /usr/libexec/git-core/ - doexe contrib/git-jump/git-jump - newdoc contrib/git-jump/README git-jump.txt - - dodir /usr/share/${PN}/contrib - # The following are excluded: - # completion - installed above - # diff-highlight - done above - # git-jump - done above - # gitview - installed above - # p4import - excluded because fast-import has a better one - # patches - stuff the Git guys made to go upstream to other places - # subtree - built seperately - # svnimport - use git-svn - # thunderbird-patch-inline - fixes thunderbird - local contrib_objects=( - buildsystems - fast-import - rerere-train.sh - stats - ) - local i - for i in "${contrib_objects[@]}" ; do - cp -rf "${S}"/contrib/${i} "${ED}"/usr/share/${PN}/contrib || die "Failed contrib ${i}" - done - - if use cgi ; then - # We used to install in /usr/share/${PN}/gitweb - # but upstream installs in /usr/share/gitweb - # so we will install a symlink and use their location for compat with other - # distros - dosym ../gitweb /usr/share/${PN}/gitweb - - # INSTALL discusses configuration issues, not just installation - docinto / - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb - newdoc "${S}"/gitweb/README README.gitweb - - for d in "${ED}"/usr/lib{,64}/perl5/ ; do - if [[ -d "${d}" ]] ; then - find "${d}" -name .packlist -delete || die - fi - done - else - rm -rf "${ED}"/usr/share/gitweb - fi - - if use perl ; then - dodir "$(perl_get_vendorlib)" - mv "${ED}"/usr/share/perl5/Git.pm "${ED}/$(perl_get_vendorlib)" || die - mv "${ED}"/usr/share/perl5/Git "${ED}/$(perl_get_vendorlib)" || die - fi - - if ! use subversion ; then - rm -f "${ED}"/usr/libexec/git-core/git-svn \ - "${ED}"/usr/share/man/man1/git-svn.1* - fi - - if use xinetd ; then - insinto /etc/xinetd.d - newins "${FILESDIR}"/git-daemon.xinetd git-daemon - fi - - if ! use prefix ; then - newinitd "${FILESDIR}"/git-daemon-r2.initd git-daemon - newconfd "${FILESDIR}"/git-daemon.confd git-daemon - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service" - systemd_dounit "${FILESDIR}/git-daemon.socket" - fi - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_install - ) - done - fi - - perl_delete_localpod - - # Remove disabled linguas - # we could remove sources in src_prepare, but install does not - # handle missing locale dir well - rm_loc() { - if [[ -e "${ED}/usr/share/locale/${1}" ]] ; then - rm -r "${ED}/usr/share/locale/${1}" || die - fi - } - plocale_for_each_disabled_locale rm_loc -} - -pkg_postinst() { - if [[ -z ${REPLACING_VERSIONS} ]] ; then - elog "Please read /usr/share/bash-completion/completions/git for Git bash command" - elog "completion." - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt" - elog "Note that the prompt bash code is now in that separate script" - fi - - optfeature_header "Some scripts require additional dependencies:" - optfeature git-quiltimport dev-util/quilt - optfeature git-instaweb www-servers/lighttpd www-servers/apache www-servers/nginx -} diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.2-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.2-r2.ebuild deleted file mode 100644 index f3026549573..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.2-r2.ebuild +++ /dev/null @@ -1,491 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -GENTOO_DEPEND_ON_PERL=no - -# bug #329479: git-remote-testgit is not multiple-version aware -PYTHON_COMPAT=( python3_{11..14} ) - -inherit toolchain-funcs perl-module shell-completion optfeature plocale python-single-r1 systemd meson flag-o-matic - -PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN" - -if [[ ${PV} == *9999 ]]; then - EGIT_REPO_URI="https://git.kernel.org/pub/scm/git/git.git" - - inherit git-r3 - # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches. - # See https://git-scm.com/docs/gitworkflows#_graduation - # In order of stability: - # 9999-r0: maint - # 9999-r1: master - # 9999-r2: next - # 9999-r3: seen - case ${PVR} in - 9999) EGIT_BRANCH=maint ;; - 9999-r1) EGIT_BRANCH=master ;; - 9999-r2) EGIT_BRANCH=next;; - 9999-r3) EGIT_BRANCH=seen ;; - esac -fi - -MY_PV="${PV/_rc/.rc}" -MY_P="${PN}-${MY_PV}" - -DOC_VER="${MY_PV}" - -DESCRIPTION="Stupid content tracker: distributed VCS designed for speed and efficiency" -HOMEPAGE="https://www.git-scm.com/" - -if [[ ${PV} != *9999 ]]; then - SRC_URI_SUFFIX="xz" - SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git" - - [[ ${PV/rc} != ${PV} ]] && SRC_URI_KORG+='/testing' - - SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}" - SRC_URI+=" ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}" - SRC_URI+=" doc? ( ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} )" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" - fi -fi - -S="${WORKDIR}"/${MY_P} - -LICENSE="GPL-2" -SLOT="0" -IUSE="+curl cgi cvs doc keyring +gpg highlight +iconv +nls +pcre perforce +perl +safe-directory selinux subversion test tk +webdav xinetd" - -# Common to both DEPEND and RDEPEND -DEPEND=" - dev-libs/openssl:= - virtual/zlib:= - curl? ( - net-misc/curl - webdav? ( dev-libs/expat ) - ) - keyring? ( - app-crypt/libsecret - dev-libs/glib:2 - ) - iconv? ( virtual/libiconv ) - pcre? ( dev-libs/libpcre2:= ) - perl? ( dev-lang/perl:=[-build(-)] ) - tk? ( dev-lang/tk:= ) -" -RDEPEND=" - ${DEPEND} - gpg? ( app-alternatives/gpg ) - perl? ( - dev-perl/Error - dev-perl/MailTools - dev-perl/Authen-SASL - >=virtual/perl-libnet-3.110.0-r4[ssl] - cgi? ( - dev-perl/CGI - highlight? ( app-text/highlight ) - ) - cvs? ( - >=dev-vcs/cvsps-2.1:0 - dev-perl/DBI - dev-perl/DBD-SQLite - ) - subversion? ( - dev-vcs/subversion[-dso(-),perl] - dev-perl/libwww-perl - dev-perl/TermReadKey - ) - ) - perforce? ( ${PYTHON_DEPS} ) - selinux? ( sec-policy/selinux-git ) -" - -# This is how info docs are created with Git: -# .txt/asciidoc --(asciidoc)---------> .xml/docbook -# .xml/docbook --(docbook2texi.pl)--> .texi -# .texi --(makeinfo)---------> .info -BDEPEND=" - doc? ( - app-text/asciidoc - app-text/docbook2X - app-text/xmlto - sys-apps/texinfo - ) - keyring? ( virtual/pkgconfig ) - nls? ( sys-devel/gettext ) - test? ( - app-arch/unzip - app-crypt/gnupg - dev-lang/perl - ) -" - -# Live ebuild builds man pages and HTML docs, additionally -if [[ ${PV} == *9999 ]]; then - BDEPEND+=" app-text/asciidoc" -fi - -SITEFILE="50${PN}-gentoo.el" - -REQUIRED_USE=" - cgi? ( perl ) - cvs? ( perl ) - perforce? ( ${PYTHON_REQUIRED_USE} ) - subversion? ( perl ) - webdav? ( curl ) -" - -RESTRICT="!test? ( test )" - -PATCHES=( - "${FILESDIR}"/${PN}-2.48.1-macos-no-fsmonitor.patch - - # This patch isn't merged upstream but is kept in the ebuild by - # demand from developers. It's opt-in (needs a config option) - # and the documentation mentions that it is a Gentoo addition. - "${FILESDIR}"/${PN}-2.50.0-diff-implement-config.diff.renames-copies-harder.patch - - # Backports for cross - "${FILESDIR}"/0001-meson-ignore-subprojects-.wraplock.patch - "${FILESDIR}"/0002-meson-only-detect-ICONV_OMITS_BOM-if-possible.patch - "${FILESDIR}"/0003-meson-use-is_cross_build-where-possible.patch -) - -pkg_setup() { - if use subversion && has_version "dev-vcs/subversion[dso]" ; then - ewarn "Per Gentoo bugs #223747, #238586, when subversion is built" - ewarn "with USE=dso, there may be weird crashes in git-svn. You" - ewarn "have been warned!" - fi - - if use perforce ; then - python-single-r1_pkg_setup - fi -} - -src_unpack() { - if [[ ${PV} != *9999 ]] ; then - unpack ${MY_P}.tar.${SRC_URI_SUFFIX} - - cd "${S}" || die - unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX} - - if use doc ; then - pushd "${S}"/Documentation &>/dev/null || die - unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} - popd &>/dev/null || die - fi - else - git-r3_src_unpack - fi - -} - -src_prepare() { - if ! use safe-directory ; then - # This patch neuters the "safe directory" detection. - # bugs #838271, #838223 - PATCHES+=( - "${FILESDIR}"/git-2.46.2-unsafe-directory.patch - ) - fi - - default -} - -src_configure() { - local contrib=( - completion - subtree - - $(usev perl 'contacts') - ) - local credential_helpers=( - $(usev keyring 'libsecret') - $(usev perl 'netrc') - ) - - # Needs macOS Frameworks that can't currently be built with GCC. - if [[ ${CHOST} == *-darwin* ]] && tc-is-clang ; then - credential_helpers+=( osxkeychain ) - fi - - local native_file="${T}"/meson.ini.local - cat >> ${native_file} <<-EOF || die - [binaries] - # We don't want to bake /usr/bin/sh from usrmerged systems into - # binaries. /bin/sh is required by POSIX. - sh='/bin/sh' - EOF - - local emesonargs=( - --native-file "${native_file}" - - $(meson_feature curl) - $(meson_feature cgi gitweb) - $(meson_feature webdav expat) - $(meson_feature iconv) - $(meson_feature nls gettext) - $(meson_feature pcre pcre2) - $(meson_feature perl) - $(meson_feature perforce python) - $(meson_use test tests) - - -Dcontrib=$(IFS=, ; echo "${contrib[*]}" ) - -Dcredential_helpers=$(IFS=, ; echo "${credential_helpers[*]}" ) - - -Dmacos_use_homebrew_gettext=false - -Dperl_cpan_fallback=false - # TODO: allow zlib-ng - -Dzlib_backend=zlib - ) - - [[ ${CHOST} == *-darwin* ]] && emesonargs+=( -Dfsmonitor=false ) - [[ ${CHOST} == *-solaris* ]] && append-flags -D__EXTENSIONS__ - - # For non-live, we use a downloaded docs tarball instead. - if [[ ${PV} == *9999 ]] || use doc ; then - emesonargs+=( - -Ddocs="man$(usev doc ',html')" - ) - fi - - if [[ ${PV} != *9999 ]] ; then - # Non-live ebuilds download the sources from a tarball which does not - # include a .git directory. Coccinelle assumes it exists and fails - # otherwise. - # - # Fixes https://bugs.gentoo.org/952004 - emesonargs+=( - -Dcoccinelle=disabled - ) - fi - - meson_src_configure - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - emesonargs=() - meson_src_configure - ) - done - fi -} - -git_emake() { - local mymakeargs=( - prefix="${EPREFIX}"/usr - htmldir="${EPREFIX}"/usr/share/doc/${PF}/html - sysconfdir="${EPREFIX}"/etc - perllibdir="$(use perl && perl_get_raw_vendorlib)" - - CC="$(tc-getCC)" - CFLAGS="${CFLAGS}" - LDFLAGS="${LDFLAGS}" - PKG_CONFIG="$(tc-getPKG_CONFIG)" - OPTAR="$(tc-getAR)" - OPTCC="$(tc-getCC)" - OPTCFLAGS="${CFLAGS}" - OPTLDFLAGS="${LDFLAGS}" - - PERL_PATH="${EPREFIX}/usr/bin/perl" - PERL_MM_OPT="" - - V=1 - - "$@" - ) - - emake "${mymakeargs[@]}" -} - -src_compile() { - meson_src_compile - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_compile - ) - done - fi - - if use doc ; then - # Workaround fragments that still use the Makefile and can't - # find the bits from Meson's out-of-source build - ln -s "${BUILD_DIR}"/Documentation/asciidoc.conf "${S}"/Documentation/asciidoc.conf || die - fi - - git_emake -C contrib/diff-highlight -} - -src_test() { - # t0610-reftable-basics.sh uses $A - local -x A= - - meson_src_test -} - -src_install() { - meson_src_install - - if use doc ; then - cp -r "${ED}"/usr/share/doc/git-doc/. "${ED}"/usr/share/doc/${PF}/html || die - rm -rf "${ED}"/usr/share/doc/git-doc/ || die - fi - - # Depending on the tarball and manual rebuild of the documentation, the - # manpages may exist in either OR both of these directories. - find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157] - find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157] - dodoc README* Documentation/{SubmittingPatches,CodingGuidelines} - - local d - for d in / /howto/ /technical/ ; do - docinto ${d} - dodoc Documentation${d}*.adoc - done - docinto / - - newbashcomp contrib/completion/git-completion.bash ${PN} - bashcomp_alias git gitk - newzshcomp contrib/completion/git-completion.zsh _${PN} - # Not really a bash-completion file (bug #477920) - # but still needed uncompressed (bug #507480) - insinto /usr/share/${PN} - doins contrib/completion/git-prompt.sh - - #dobin contrib/fast-import/git-p4 # Moved upstream - #dodoc contrib/fast-import/git-p4.txt # Moved upstream - newbin contrib/fast-import/import-tars.perl import-tars - - # diff-highlight - dobin contrib/diff-highlight/diff-highlight - newdoc contrib/diff-highlight/README README.diff-highlight - - # git-jump - exeinto /usr/libexec/git-core/ - doexe contrib/git-jump/git-jump - newdoc contrib/git-jump/README git-jump.txt - - dodir /usr/share/${PN}/contrib - # The following are excluded: - # completion - installed above - # diff-highlight - done above - # git-jump - done above - # gitview - installed above - # p4import - excluded because fast-import has a better one - # patches - stuff the Git guys made to go upstream to other places - # subtree - built seperately - # svnimport - use git-svn - # thunderbird-patch-inline - fixes thunderbird - local contrib_objects=( - buildsystems - fast-import - rerere-train.sh - stats - ) - local i - for i in "${contrib_objects[@]}" ; do - cp -rf "${S}"/contrib/${i} "${ED}"/usr/share/${PN}/contrib || die "Failed contrib ${i}" - done - - if use cgi ; then - # We used to install in /usr/share/${PN}/gitweb - # but upstream installs in /usr/share/gitweb - # so we will install a symlink and use their location for compat with other - # distros - dosym ../gitweb /usr/share/${PN}/gitweb - - # INSTALL discusses configuration issues, not just installation - docinto / - newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb - newdoc "${S}"/gitweb/README README.gitweb - - for d in "${ED}"/usr/lib{,64}/perl5/ ; do - if [[ -d "${d}" ]] ; then - find "${d}" -name .packlist -delete || die - fi - done - else - rm -rf "${ED}"/usr/share/gitweb - fi - - if use perl ; then - dodir "$(perl_get_vendorlib)" - mv "${ED}"/usr/share/perl5/Git.pm "${ED}/$(perl_get_vendorlib)" || die - mv "${ED}"/usr/share/perl5/Git "${ED}/$(perl_get_vendorlib)" || die - fi - - if ! use subversion ; then - rm -f "${ED}"/usr/libexec/git-core/git-svn \ - "${ED}"/usr/share/man/man1/git-svn.1* - fi - - if use xinetd ; then - insinto /etc/xinetd.d - newins "${FILESDIR}"/git-daemon.xinetd git-daemon - fi - - if ! use prefix ; then - newinitd "${FILESDIR}"/git-daemon-r2.initd git-daemon - newconfd "${FILESDIR}"/git-daemon.confd git-daemon - systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service" - systemd_dounit "${FILESDIR}/git-daemon.socket" - fi - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_install - ) - done - fi - - perl_delete_localpod - - # Remove disabled linguas - # we could remove sources in src_prepare, but install does not - # handle missing locale dir well - rm_loc() { - if [[ -e "${ED}/usr/share/locale/${1}" ]] ; then - rm -r "${ED}/usr/share/locale/${1}" || die - fi - } - plocale_for_each_disabled_locale rm_loc -} - -pkg_postinst() { - if [[ -z ${REPLACING_VERSIONS} ]] ; then - elog "Please read /usr/share/bash-completion/completions/git for Git bash command" - elog "completion." - elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt" - elog "Note that the prompt bash code is now in that separate script" - fi - - if has_version app-shells/zsh ; then - elog 'There are two competing zsh completions available for Git.' - elog 'One is from app-shells/zsh, the other from dev-vcs/git.' - elog 'To choose between them, order the entries of $fpath so that your' - elog 'desired completion is earlier in the list or symlink the relevant' - elog 'script into a personal override directory early on fpath.' - fi - - optfeature_header "Some scripts require additional dependencies:" - optfeature git-quiltimport dev-util/quilt - optfeature git-instaweb www-servers/lighttpd www-servers/apache www-servers/nginx -} diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.52.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.52.0.ebuild index 0b243219b5b..de2865405d7 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.52.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.52.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -51,7 +51,7 @@ if [[ ${PV} != *9999 ]]; then SRC_URI+=" doc? ( ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} )" if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" fi fi diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.53.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.53.0.ebuild index ee41b0eaa09..20b909278e8 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.53.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.53.0.ebuild @@ -51,7 +51,7 @@ if [[ ${PV} != *9999 ]]; then SRC_URI+=" doc? ( ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} )" if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" fi fi diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.54.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.54.0.ebuild new file mode 100644 index 00000000000..62e904225e5 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.54.0.ebuild @@ -0,0 +1,460 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GENTOO_DEPEND_ON_PERL=no + +# bug #329479: git-remote-testgit is not multiple-version aware +PYTHON_COMPAT=( python3_{11..14} ) +RUST_OPTIONAL=1 +inherit flag-o-matic toolchain-funcs perl-module shell-completion optfeature +inherit plocale python-single-r1 rust systemd meson + +PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN" + +if [[ ${PV} == *9999 ]]; then + EGIT_REPO_URI="https://git.kernel.org/pub/scm/git/git.git" + + inherit git-r3 + # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches. + # See https://git-scm.com/docs/gitworkflows#_graduation + # In order of stability: + # 9999-r0: maint + # 9999-r1: master + # 9999-r2: next + # 9999-r3: seen + case ${PVR} in + 9999) EGIT_BRANCH=maint ;; + 9999-r1) EGIT_BRANCH=master ;; + 9999-r2) EGIT_BRANCH=next;; + 9999-r3) EGIT_BRANCH=seen ;; + esac +fi + +MY_PV="${PV/_rc/.rc}" +MY_P="${PN}-${MY_PV}" + +DOC_VER="${MY_PV}" + +DESCRIPTION="Stupid content tracker: distributed VCS designed for speed and efficiency" +HOMEPAGE="https://www.git-scm.com/" + +if [[ ${PV} != *9999 ]]; then + SRC_URI_SUFFIX="xz" + SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git" + + [[ ${PV/rc} != ${PV} ]] && SRC_URI_KORG+='/testing' + + SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}" + SRC_URI+=" ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}" + SRC_URI+=" doc? ( ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} )" + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + fi +fi + +S="${WORKDIR}"/${MY_P} + +LICENSE="GPL-2" +SLOT="0" +IUSE="+curl cgi cvs doc keyring +gpg highlight +iconv +nls +pcre perforce +perl rust +safe-directory selinux subversion test tk +webdav xinetd" + +# Common to both DEPEND and RDEPEND +DEPEND=" + dev-libs/openssl:= + virtual/zlib:= + curl? ( + net-misc/curl + webdav? ( dev-libs/expat ) + ) + keyring? ( + app-crypt/libsecret + dev-libs/glib:2 + ) + iconv? ( virtual/libiconv ) + pcre? ( dev-libs/libpcre2:= ) + perl? ( dev-lang/perl:=[-build(-)] ) + tk? ( dev-lang/tk:= ) +" +RDEPEND=" + ${DEPEND} + gpg? ( app-alternatives/gpg ) + perl? ( + dev-perl/Error + dev-perl/MailTools + dev-perl/Authen-SASL + >=virtual/perl-libnet-3.110.0-r4[ssl] + cgi? ( + dev-perl/CGI + highlight? ( app-text/highlight ) + ) + cvs? ( + >=dev-vcs/cvsps-2.1:0 + dev-perl/DBI + dev-perl/DBD-SQLite + ) + subversion? ( + dev-vcs/subversion[-dso(-),perl] + dev-perl/libwww-perl + dev-perl/TermReadKey + ) + ) + perforce? ( ${PYTHON_DEPS} ) + selinux? ( sec-policy/selinux-git ) +" + +# This is how info docs are created with Git: +# .txt/asciidoc --(asciidoc)---------> .xml/docbook +# .xml/docbook --(docbook2texi.pl)--> .texi +# .texi --(makeinfo)---------> .info +BDEPEND=" + doc? ( + app-text/asciidoc + app-text/docbook2X + app-text/xmlto + sys-apps/texinfo + ) + keyring? ( virtual/pkgconfig ) + nls? ( sys-devel/gettext ) + rust? ( ${RUST_DEPEND} ) + test? ( + app-arch/unzip + app-crypt/gnupg + dev-lang/perl + ) +" + +# Live ebuild builds man pages and HTML docs, additionally +if [[ ${PV} == *9999 ]]; then + BDEPEND+=" app-text/asciidoc" +fi + +SITEFILE="50${PN}-gentoo.el" + +REQUIRED_USE=" + cgi? ( perl ) + cvs? ( perl ) + perforce? ( ${PYTHON_REQUIRED_USE} ) + subversion? ( perl ) + webdav? ( curl ) +" + +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}"/${PN}-2.48.1-macos-no-fsmonitor.patch + + # This patch isn't merged upstream but is kept in the ebuild by + # demand from developers. It's opt-in (needs a config option) + # and the documentation mentions that it is a Gentoo addition. + "${FILESDIR}"/${PN}-2.50.0-diff-implement-config.diff.renames-copies-harder.patch + + "${FILESDIR}"/${PN}-2.54.0-0001-rust-don-t-pass-quiet-to-cargo.patch + "${FILESDIR}"/${PN}-2.54.0-0002-rust-respect-CARGO-environment-variable.patch +) + +pkg_setup() { + if use subversion && has_version "dev-vcs/subversion[dso]" ; then + ewarn "Per Gentoo bugs #223747, #238586, when subversion is built" + ewarn "with USE=dso, there may be weird crashes in git-svn. You" + ewarn "have been warned!" + fi + + if use perforce ; then + python-single-r1_pkg_setup + fi + + if use rust ; then + rust_pkg_setup + fi +} + +src_unpack() { + if [[ ${PV} != *9999 ]] ; then + unpack ${MY_P}.tar.${SRC_URI_SUFFIX} + + cd "${S}" || die + unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX} + + if use doc ; then + pushd "${S}"/Documentation &>/dev/null || die + unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} + popd &>/dev/null || die + fi + else + git-r3_src_unpack + fi + +} + +src_prepare() { + if ! use safe-directory ; then + # This patch neuters the "safe directory" detection. + # bugs #838271, #838223 + PATCHES+=( + "${FILESDIR}"/git-2.46.2-unsafe-directory.patch + ) + fi + + default +} + +src_configure() { + local contrib=( + completion + subtree + + $(usev perl 'contacts') + ) + local credential_helpers=( + $(usev keyring 'libsecret') + $(usev perl 'netrc') + ) + + # Needs macOS Frameworks that can't currently be built with GCC. + if [[ ${CHOST} == *-darwin* ]] && tc-is-clang ; then + credential_helpers+=( osxkeychain ) + fi + + local native_file="${T}"/meson.ini.local + cat >> ${native_file} <<-EOF || die + [binaries] + # We don't want to bake /usr/bin/sh from usrmerged systems into + # binaries. /bin/sh is required by POSIX. + sh='/bin/sh' + EOF + + local emesonargs=( + --native-file "${native_file}" + + $(meson_feature curl) + $(meson_feature cgi gitweb) + $(meson_feature webdav expat) + $(meson_feature tk gitk) + $(meson_feature tk git_gui) + $(meson_feature iconv) + $(meson_feature nls gettext) + $(meson_feature pcre pcre2) + $(meson_feature perl) + $(meson_feature perforce python) + $(meson_feature rust) + $(meson_use test tests) + + -Dcontrib=$(IFS=, ; echo "${contrib[*]}" ) + -Dcredential_helpers=$(IFS=, ; echo "${credential_helpers[*]}" ) + + -Dmacos_use_homebrew_gettext=false + -Dperl_cpan_fallback=false + # TODO: allow zlib-ng + -Dzlib_backend=zlib + ) + + [[ ${CHOST} == *-darwin* ]] && emesonargs+=( -Dfsmonitor=false ) + [[ ${CHOST} == *-solaris* ]] && append-flags -D__EXTENSIONS__ + + # For non-live, we use a downloaded docs tarball instead. + if [[ ${PV} == *9999 ]] || use doc ; then + emesonargs+=( + -Ddocs="man$(usev doc ',html')" + -Dhtmldir="${EPREFIX}/usr/share/doc/${PF}/html" + ) + fi + + if [[ ${PV} != *9999 ]] ; then + # Non-live ebuilds download the sources from a tarball which does not + # include a .git directory. Coccinelle assumes it exists and fails + # otherwise. + # + # Fixes https://bugs.gentoo.org/952004 + emesonargs+=( + -Dcoccinelle=disabled + ) + fi + + meson_src_configure +} + +git_emake() { + local mymakeargs=( + prefix="${EPREFIX}"/usr + htmldir="${EPREFIX}"/usr/share/doc/${PF}/html + sysconfdir="${EPREFIX}"/etc + perllibdir="$(use perl && perl_get_raw_vendorlib)" + + CC="$(tc-getCC)" + CFLAGS="${CFLAGS}" + LDFLAGS="${LDFLAGS}" + PKG_CONFIG="$(tc-getPKG_CONFIG)" + OPTAR="$(tc-getAR)" + OPTCC="$(tc-getCC)" + OPTCFLAGS="${CFLAGS}" + OPTLDFLAGS="${LDFLAGS}" + + PERL_PATH="${EPREFIX}/usr/bin/perl" + PERL_MM_OPT="" + + V=1 + + "$@" + ) + + emake "${mymakeargs[@]}" +} + +src_compile() { + meson_src_compile + + if use doc ; then + # Workaround fragments that still use the Makefile and can't + # find the bits from Meson's out-of-source build + ln -s "${BUILD_DIR}"/Documentation/asciidoc.conf "${S}"/Documentation/asciidoc.conf || die + fi + + git_emake -C contrib/diff-highlight +} + +src_test() { + # t0610-reftable-basics.sh uses $A + local -x A= + + meson_src_test +} + +src_install() { + meson_src_install + + # Depending on the tarball and manual rebuild of the documentation, the + # manpages may exist in either OR both of these directories. + find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157] + find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157] + dodoc README* Documentation/{SubmittingPatches,CodingGuidelines} + + local d + for d in / /howto/ /technical/ ; do + docinto ${d} + dodoc Documentation${d}*.adoc + done + docinto / + + newbashcomp contrib/completion/git-completion.bash ${PN} + bashcomp_alias git gitk + newzshcomp contrib/completion/git-completion.zsh _${PN} + # Not really a bash-completion file (bug #477920) + # but still needed uncompressed (bug #507480) + insinto /usr/share/${PN} + doins contrib/completion/git-prompt.sh + + #dobin contrib/fast-import/git-p4 # Moved upstream + #dodoc contrib/fast-import/git-p4.txt # Moved upstream + newbin contrib/fast-import/import-tars.perl import-tars + + # diff-highlight + dobin contrib/diff-highlight/diff-highlight + newdoc contrib/diff-highlight/README README.diff-highlight + + # git-jump + exeinto /usr/libexec/git-core/ + doexe contrib/git-jump/git-jump + newdoc contrib/git-jump/README git-jump.txt + + dodir /usr/share/${PN}/contrib + # The following are excluded: + # completion - installed above + # diff-highlight - done above + # git-jump - done above + # gitview - installed above + # p4import - excluded because fast-import has a better one + # patches - stuff the Git guys made to go upstream to other places + # subtree - built seperately + # svnimport - use git-svn + # thunderbird-patch-inline - fixes thunderbird + local contrib_objects=( + buildsystems + fast-import + rerere-train.sh + stats + ) + local i + for i in "${contrib_objects[@]}" ; do + cp -rf "${S}"/contrib/${i} "${ED}"/usr/share/${PN}/contrib || die "Failed contrib ${i}" + done + + if use cgi ; then + # We used to install in /usr/share/${PN}/gitweb + # but upstream installs in /usr/share/gitweb + # so we will install a symlink and use their location for compat with other + # distros + dosym ../gitweb /usr/share/${PN}/gitweb + + # INSTALL discusses configuration issues, not just installation + docinto / + newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb + newdoc "${S}"/gitweb/README README.gitweb + + for d in "${ED}"/usr/lib{,64}/perl5/ ; do + if [[ -d "${d}" ]] ; then + find "${d}" -name .packlist -delete || die + fi + done + else + rm -rf "${ED}"/usr/share/gitweb + fi + + if use perl ; then + dodir "$(perl_get_vendorlib)" + mv "${ED}"/usr/share/perl5/Git.pm "${ED}/$(perl_get_vendorlib)" || die + mv "${ED}"/usr/share/perl5/Git "${ED}/$(perl_get_vendorlib)" || die + fi + + if ! use subversion ; then + rm -f "${ED}"/usr/libexec/git-core/git-svn \ + "${ED}"/usr/share/man/man1/git-svn.1* + fi + + if use xinetd ; then + insinto /etc/xinetd.d + newins "${FILESDIR}"/git-daemon.xinetd git-daemon + fi + + if ! use prefix ; then + newinitd "${FILESDIR}"/git-daemon-r2.initd git-daemon + newconfd "${FILESDIR}"/git-daemon.confd git-daemon + systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service" + systemd_dounit "${FILESDIR}/git-daemon.socket" + fi + + perl_delete_localpod + + # Remove disabled linguas + # we could remove sources in src_prepare, but install does not + # handle missing locale dir well + rm_loc() { + if [[ -e "${ED}/usr/share/locale/${1}" ]] ; then + rm -r "${ED}/usr/share/locale/${1}" || die + fi + } + plocale_for_each_disabled_locale rm_loc +} + +pkg_postinst() { + if [[ -z ${REPLACING_VERSIONS} ]] ; then + elog "Please read /usr/share/bash-completion/completions/git for Git bash command" + elog "completion." + elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt" + elog "Note that the prompt bash code is now in that separate script" + fi + + if has_version app-shells/zsh ; then + elog 'There are two competing zsh completions available for Git.' + elog 'One is from app-shells/zsh, the other from dev-vcs/git.' + elog 'To choose between them, order the entries of $fpath so that your' + elog 'desired completion is earlier in the list or symlink the relevant' + elog 'script into a personal override directory early on fpath.' + fi + + optfeature_header "Some scripts require additional dependencies:" + optfeature git-quiltimport dev-util/quilt + optfeature git-instaweb www-servers/lighttpd www-servers/apache www-servers/nginx +} diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r1.ebuild index c15a030e803..62e904225e5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -151,8 +151,8 @@ PATCHES=( # and the documentation mentions that it is a Gentoo addition. "${FILESDIR}"/${PN}-2.50.0-diff-implement-config.diff.renames-copies-harder.patch - "${FILESDIR}"/${PN}-2.52.0-0001-rust-don-t-pass-quiet-to-cargo.patch - "${FILESDIR}"/${PN}-2.52.0-0002-rust-respect-CARGO-environment-variable.patch + "${FILESDIR}"/${PN}-2.54.0-0001-rust-don-t-pass-quiet-to-cargo.patch + "${FILESDIR}"/${PN}-2.54.0-0002-rust-respect-CARGO-environment-variable.patch ) pkg_setup() { @@ -232,6 +232,8 @@ src_configure() { $(meson_feature curl) $(meson_feature cgi gitweb) $(meson_feature webdav expat) + $(meson_feature tk gitk) + $(meson_feature tk git_gui) $(meson_feature iconv) $(meson_feature nls gettext) $(meson_feature pcre pcre2) @@ -272,18 +274,6 @@ src_configure() { fi meson_src_configure - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - emesonargs=() - meson_src_configure - ) - done - fi } git_emake() { @@ -316,17 +306,6 @@ git_emake() { src_compile() { meson_src_compile - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_compile - ) - done - fi - if use doc ; then # Workaround fragments that still use the Makefile and can't # find the bits from Meson's out-of-source build @@ -446,17 +425,6 @@ src_install() { systemd_dounit "${FILESDIR}/git-daemon.socket" fi - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_install - ) - done - fi - perl_delete_localpod # Remove disabled linguas diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r2.ebuild index c15a030e803..62e904225e5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -151,8 +151,8 @@ PATCHES=( # and the documentation mentions that it is a Gentoo addition. "${FILESDIR}"/${PN}-2.50.0-diff-implement-config.diff.renames-copies-harder.patch - "${FILESDIR}"/${PN}-2.52.0-0001-rust-don-t-pass-quiet-to-cargo.patch - "${FILESDIR}"/${PN}-2.52.0-0002-rust-respect-CARGO-environment-variable.patch + "${FILESDIR}"/${PN}-2.54.0-0001-rust-don-t-pass-quiet-to-cargo.patch + "${FILESDIR}"/${PN}-2.54.0-0002-rust-respect-CARGO-environment-variable.patch ) pkg_setup() { @@ -232,6 +232,8 @@ src_configure() { $(meson_feature curl) $(meson_feature cgi gitweb) $(meson_feature webdav expat) + $(meson_feature tk gitk) + $(meson_feature tk git_gui) $(meson_feature iconv) $(meson_feature nls gettext) $(meson_feature pcre pcre2) @@ -272,18 +274,6 @@ src_configure() { fi meson_src_configure - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - emesonargs=() - meson_src_configure - ) - done - fi } git_emake() { @@ -316,17 +306,6 @@ git_emake() { src_compile() { meson_src_compile - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_compile - ) - done - fi - if use doc ; then # Workaround fragments that still use the Makefile and can't # find the bits from Meson's out-of-source build @@ -446,17 +425,6 @@ src_install() { systemd_dounit "${FILESDIR}/git-daemon.socket" fi - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_install - ) - done - fi - perl_delete_localpod # Remove disabled linguas diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r3.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r3.ebuild index c15a030e803..62e904225e5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -151,8 +151,8 @@ PATCHES=( # and the documentation mentions that it is a Gentoo addition. "${FILESDIR}"/${PN}-2.50.0-diff-implement-config.diff.renames-copies-harder.patch - "${FILESDIR}"/${PN}-2.52.0-0001-rust-don-t-pass-quiet-to-cargo.patch - "${FILESDIR}"/${PN}-2.52.0-0002-rust-respect-CARGO-environment-variable.patch + "${FILESDIR}"/${PN}-2.54.0-0001-rust-don-t-pass-quiet-to-cargo.patch + "${FILESDIR}"/${PN}-2.54.0-0002-rust-respect-CARGO-environment-variable.patch ) pkg_setup() { @@ -232,6 +232,8 @@ src_configure() { $(meson_feature curl) $(meson_feature cgi gitweb) $(meson_feature webdav expat) + $(meson_feature tk gitk) + $(meson_feature tk git_gui) $(meson_feature iconv) $(meson_feature nls gettext) $(meson_feature pcre pcre2) @@ -272,18 +274,6 @@ src_configure() { fi meson_src_configure - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - emesonargs=() - meson_src_configure - ) - done - fi } git_emake() { @@ -316,17 +306,6 @@ git_emake() { src_compile() { meson_src_compile - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_compile - ) - done - fi - if use doc ; then # Workaround fragments that still use the Makefile and can't # find the bits from Meson's out-of-source build @@ -446,17 +425,6 @@ src_install() { systemd_dounit "${FILESDIR}/git-daemon.socket" fi - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_install - ) - done - fi - perl_delete_localpod # Remove disabled linguas diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999.ebuild index c15a030e803..62e904225e5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -151,8 +151,8 @@ PATCHES=( # and the documentation mentions that it is a Gentoo addition. "${FILESDIR}"/${PN}-2.50.0-diff-implement-config.diff.renames-copies-harder.patch - "${FILESDIR}"/${PN}-2.52.0-0001-rust-don-t-pass-quiet-to-cargo.patch - "${FILESDIR}"/${PN}-2.52.0-0002-rust-respect-CARGO-environment-variable.patch + "${FILESDIR}"/${PN}-2.54.0-0001-rust-don-t-pass-quiet-to-cargo.patch + "${FILESDIR}"/${PN}-2.54.0-0002-rust-respect-CARGO-environment-variable.patch ) pkg_setup() { @@ -232,6 +232,8 @@ src_configure() { $(meson_feature curl) $(meson_feature cgi gitweb) $(meson_feature webdav expat) + $(meson_feature tk gitk) + $(meson_feature tk git_gui) $(meson_feature iconv) $(meson_feature nls gettext) $(meson_feature pcre pcre2) @@ -272,18 +274,6 @@ src_configure() { fi meson_src_configure - - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - emesonargs=() - meson_src_configure - ) - done - fi } git_emake() { @@ -316,17 +306,6 @@ git_emake() { src_compile() { meson_src_compile - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_compile - ) - done - fi - if use doc ; then # Workaround fragments that still use the Makefile and can't # find the bits from Meson's out-of-source build @@ -446,17 +425,6 @@ src_install() { systemd_dounit "${FILESDIR}/git-daemon.socket" fi - if use tk ; then - local tkdir - for tkdir in git-gui gitk-git ; do - ( - EMESON_SOURCE="${S}"/${tkdir} - BUILD_DIR="${WORKDIR}"/${tkdir}_build - meson_src_install - ) - done - fi - perl_delete_localpod # Remove disabled linguas diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/metadata.xml b/sdk_container/src/third_party/portage-stable/dev-vcs/git/metadata.xml index 47fec3c4204..63a8bc607f9 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/metadata.xml @@ -24,7 +24,6 @@ Support fetching and pushing (requires webdav too) over http:// and https:// protocols Pull in gnupg for signing -- without gnupg, attempts at signing will fail at runtime! GitWeb support for app-text/highlight - Support pulling and pushing from MediaWiki Add support for Perforce version control system (requires manual installation of Perforce client) Build components using Rust, starting with 2.52 with varint. This will become mandatory upstream with Git 3.0. Respect the safe.directory setting diff --git a/sdk_container/src/third_party/portage-stable/eclass/cargo.eclass b/sdk_container/src/third_party/portage-stable/eclass/cargo.eclass index e88ff48036e..6a233b6b385 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/cargo.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/cargo.eclass @@ -201,6 +201,22 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo" # } # @CODE +# @ECLASS_VARIABLE: CARGO_SKIP_TESTS +# @DEFAULT_UNSET +# @DESCRIPTION: +# Optional array of test names to be skipped. +# Should be defined before calling cargo_src_test. +# +# @CODE +# src_test() { +# local CARGO_SKIP_TESTS=( +# tests::filesystem +# tests::network +# ) +# cargo_src_test --no-fail-fast +# } +# @CODE + # @ECLASS_VARIABLE: ECARGO_HOME # @OUTPUT_VARIABLE # @DESCRIPTION: @@ -555,7 +571,6 @@ cargo_src_unpack() { eqawarn "a crate tarball instead and fetch it via SRC_URI. You can use" eqawarn "'pycargoebuild --crate-tarball' to create one." fi - einfo "this package uses ${#crates[@]} number of crates: you are all good" fi cargo_gen_config @@ -836,7 +851,35 @@ cargo_src_test() { _cargo_check_initialized - set -- "${CARGO}" test $(usex debug "" --release) ${ECARGO_ARGS[@]} "$@" + # This is the same as myfeatures in cargo_src_configure: + # Prefix all test names with '--skip'. + [[ -z ${CARGO_SKIP_TESTS} ]] && declare -a CARGO_SKIP_TESTS=() + local CARGO_SKIP_TESTS_TYPE=$(declare -p CARGO_SKIP_TESTS 2>&-) + if [[ "${CARGO_SKIP_TESTS_TYPE}" != "declare -a CARGO_SKIP_TESTS="* ]]; then + die "CARGO_SKIP_TESTS must be declared as an array" + fi + + skip=( ${CARGO_SKIP_TESTS[@]/#/--skip } ) + + # The skip args must be passed to the test harness, after a '--' on + # the command line of cargo test. + # To avoid breakage if the caller of cargo_src_test also passes '--', + # we split the caller args and group the skip args together with the + # caller args. + local args=( $@ ) + + sep="${#args}" + for i in "${!args[@]}"; do + [[ "${args[i]}" == "--" ]] && sep="$i"; + done + + cargo_test_args=( ${args[@]:0:sep} ) + test_harness_args=( -- ${skip[@]} ${args[@]:sep} ) + + set -- "${CARGO}" test $(usex debug "" --release) \ + ${ECARGO_ARGS[@]} \ + ${cargo_test_args[@]} \ + ${test_harness_args[@]} einfo "${@}" cargo_env "${@}" || die "cargo test failed" } diff --git a/sdk_container/src/third_party/portage-stable/eclass/dist-kernel-utils.eclass b/sdk_container/src/third_party/portage-stable/eclass/dist-kernel-utils.eclass index 1ebf17092b3..a910f397360 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/dist-kernel-utils.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/dist-kernel-utils.eclass @@ -53,7 +53,7 @@ dist-kernel_get_image_path() { arm) echo arch/arm/boot/zImage ;; - hppa|ppc|ppc64|sparc) + hppa|ppc|ppc64|s390|sparc) # https://www.kernel.org/doc/html/latest/powerpc/bootwrapper.html # ./ is required because of ${image_path%/*} # substitutions in the code diff --git a/sdk_container/src/third_party/portage-stable/eclass/distutils-r1.eclass b/sdk_container/src/third_party/portage-stable/eclass/distutils-r1.eclass index 7cafa199bda..176a8b33ba9 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/distutils-r1.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/distutils-r1.eclass @@ -1036,6 +1036,8 @@ distutils_wheel_install() { -o -path '*.dist-info/license_files' \ -o -path '*.dist-info/licenses/*' \ -o -path '*.dist-info/licenses' \ + -o -path '*.dist-info/sboms/*' \ + -o -path '*.dist-info/sboms' \ -o -path '*.dist-info/zip-safe' \ \) -delete || die @@ -1092,7 +1094,7 @@ distutils_pep517_install() { local maturin_args=( "${DISTUTILS_ARGS[@]}" --auditwheel=skip # see bug #831171 - --jobs="$(makeopts_jobs)" + --jobs="$(get_makeopts_jobs)" $(in_iuse debug && usex debug '--profile=dev' '') ) diff --git a/sdk_container/src/third_party/portage-stable/eclass/git-r3.eclass b/sdk_container/src/third_party/portage-stable/eclass/git-r3.eclass index 719e2eea4fb..99f846b237b 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/git-r3.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/git-r3.eclass @@ -322,6 +322,27 @@ _git-r3_env_setup() { fi } +# @FUNCTION: _git-r3_get_object_format +# @USAGE: +# @INTERNAL +# @DESCRIPTION: +# Determine the object format from hash. Prints "sha1" or "sha256". +_git-r3_get_object_format() { + local h=${1} + + case "${#h}" in + 40) + echo sha1 + ;; + 64) + echo sha256 + ;; + *) + die "Unrecognized hash: ${h}" + ;; + esac +} + # @FUNCTION: _git-r3_set_gitdir # @USAGE: # @INTERNAL @@ -334,7 +355,8 @@ _git-r3_env_setup() { _git-r3_set_gitdir() { debug-print-function ${FUNCNAME} "$@" - local repo_name=${1#*://*/} + local repo_uri=${1} + local repo_name=${repo_uri#*://*/} # strip the trailing slash repo_name=${repo_name%/} @@ -391,7 +413,13 @@ _git-r3_set_gitdir() { umask "${EVCS_UMASK}" || die "Bad options to umask: ${EVCS_UMASK}" fi mkdir "${GIT_DIR}" || die - git init --bare -b __init__ || die + + # determine the remote object format + local head_ref=( + $(git ls-remote "${repo_uri}" "HEAD" || die) + ) + local object_format=$(_git-r3_get_object_format "${head_ref[0]}") + git init --object-format="${object_format}" --bare -b __init__ || die if [[ ${saved_umask} ]]; then umask "${saved_umask}" || die fi @@ -850,7 +878,15 @@ git-r3_fetch() { if [[ ${saved_umask} ]]; then umask "${saved_umask}" || die fi - [[ ${success} ]] || die "Unable to fetch from any of EGIT_REPO_URI" + if [[ ! ${success} ]]; then + eerror "Fetching git repository failed. Please inspect the log for errors." + eerror "If you see 'mismatched algorithm' errors, please remove the local clone" + eerror "and try again:" + eerror " rm -r ${GIT_DIR}" + eerror + + die "Unable to fetch from any of EGIT_REPO_URI" + fi # submodules can reference commits in any branch # always use the 'mirror' mode to accommodate that, bug #503332 @@ -958,7 +994,8 @@ git-r3_checkout() { # use git init+fetch instead of clone since the latter doesn't like # non-empty directories. - git init --quiet -b __init__ || die + local object_format=$(_git-r3_get_object_format "${new_commit_id}") + git init --object-format="${object_format}" --quiet -b __init__ || die if [[ ${EGIT_LFS} ]]; then # The "skip-repo" flag will just skip the installation of the pre-push hooks. # We don't use these hook as we don't do any pushes diff --git a/sdk_container/src/third_party/portage-stable/eclass/go-env.eclass b/sdk_container/src/third_party/portage-stable/eclass/go-env.eclass index e686d9ef903..af843a8e81b 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/go-env.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/go-env.eclass @@ -6,12 +6,12 @@ # Flatcar Linux Maintainers # @AUTHOR: # Flatcar Linux Maintainers -# @SUPPORTED_EAPIS: 7 8 +# @SUPPORTED_EAPIS: 7 8 9 # @BLURB: Helper eclass for setting up the Go build environment. # @DESCRIPTION: # This eclass includes helper functions for setting up the build environment for # Go ebuilds. Intended to be called by other Go eclasses in an early build -# stage, e.g. src_unpack. +# stage, e.g. src_configure. # @ECLASS_VARIABLE: GOMAXPROCS # @USER_VARIABLE @@ -77,7 +77,7 @@ # Optimisation setting for riscv when building for CBUILD. case ${EAPI} in - 7|8) ;; + 7|8|9) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac @@ -86,6 +86,26 @@ _GO_ENV_ECLASS=1 inherit flag-o-matic multiprocessing sysroot toolchain-funcs +# @ECLASS_VARIABLE: CGO_ENABLED +# @DESCRIPTION: +# Whether to enable the cgo tool that lets Go packages call C code. Upstream Go +# enables this by default for native builds when a C compiler is found. Some +# projects will forcibly enable it by necessity. Other projects may disable it +# by default or even forcibly disable it to make the resulting binaries more +# portable. When enabled, certain standard library packages will use the libc +# over their own built-in code for things like DNS resolution, which is +# generally preferable. It makes sense for a distribution to enable it where +# possible, even when cross-compiling. Ebuilds may force this setting one way or +# the other before inheriting this eclass where necessary, although upstream +# projects will likely do this for you. If you believe that a project should not +# force it, then please work with upstream to have the variable respected. +# Ebuilds may also disable it by default if this is more appropriate. See +# https://pkg.go.dev/cmd/cgo. +case ${EAPI} in + 7|8) : ;; + *) export CGO_ENABLED="${CGO_ENABLED:-1}" ;; +esac + # @FUNCTION: go-env_set_compile_environment # @DESCRIPTION: # Sets up the environment to build Go code for CHOST. This includes variables @@ -147,9 +167,12 @@ go-env_set_compile_environment() { # go run will build binaries for the target system and try to execute them. # This will fail when cross-compiling unless you provide a wrapper. - local script + local script go_exec if script=$(sysroot_make_run_prefixed); then - GOFLAGS+=" -exec=${script}" "${@}" + go_exec="${T}/go-exec" + PATH="${go_exec}:${PATH}" + mkdir -p "${go_exec}" || die + ln -snfr "${script}" "${go_exec}/go_${GOOS}_${GOARCH}_exec" || die fi } @@ -181,6 +204,7 @@ go-env_goos() { *-openbsd*) echo openbsd ;; *-solaris*) echo solaris ;; *-cygwin*|*-interix*|*-winnt*) echo windows ;; + *-gnu) echo hurd ;; *) die "unknown GOOS for ${target}" ;; esac } diff --git a/sdk_container/src/third_party/portage-stable/eclass/go-module.eclass b/sdk_container/src/third_party/portage-stable/eclass/go-module.eclass index 5294f50d8ad..0dad51c11ef 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/go-module.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/go-module.eclass @@ -7,7 +7,7 @@ # @AUTHOR: # William Hubbs # Robin H. Johnson -# @SUPPORTED_EAPIS: 7 8 +# @SUPPORTED_EAPIS: 7 8 9 # @BLURB: basic eclass for building software written as go modules # @DESCRIPTION: # This eclass provides basic settings and functions needed by all software @@ -61,7 +61,7 @@ # @CODE case ${EAPI} in - 7|8) ;; + 7|8|9) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac @@ -71,7 +71,7 @@ _GO_MODULE_ECLASS=1 inherit toolchain-funcs go-env if [[ ! ${GO_OPTIONAL} ]]; then - BDEPEND=">=dev-lang/go-1.20:=" + BDEPEND=">=dev-lang/go-1.24.11:=" # Workaround for pkgcheck false positive: https://github.com/pkgcore/pkgcheck/issues/214 # MissingUnpackerDep: version ...: missing BDEPEND="app-arch/unzip" @@ -108,13 +108,13 @@ QA_FLAGS_IGNORED='.*' # # You can use some combination of sed/awk/cut to extract the # contents of EGO_SUM or use the dev-go/get-ego-vendor tool. -# +# # One manual way to do this is the following: # # @CODE # # cat go.sum | cut -d" " -f1,2 | awk '{print "\t\"" $0 "\""}' -# +# # @CODE # # The format of go.sum is described upstream here: @@ -182,7 +182,7 @@ declare -A -g _GOMODULE_GOSUM_REVERSE_MAP # If set to a non-null value before inherit, the Go part of the # ebuild will be considered optional. No dependencies will be added and # no phase functions will be exported. You will need to set BDEPEND and -# call go-module_src_unpack in your ebuild. +# call go-module_src_unpack and go-module_src_configure in your ebuild. # @FUNCTION: ego # @USAGE: [...] @@ -347,12 +347,11 @@ go-module_setup_proxy() { # @FUNCTION: go-module_src_unpack # @DESCRIPTION: -# Sets up GOFLAGS for the system and then unpacks based on the following rules: +# Unpacks based on the following rules: # 1. If EGO_SUM is set, unpack the base tarball(s) and set up the # local go proxy. This mode is deprecated. # 2. Otherwise, if EGO_VENDOR is set, bail out, as this functionality was removed. # 3. Otherwise, call 'ego mod verify' and then do a normal unpack. -# Set compile env via go-env. go-module_src_unpack() { if [[ "${#EGO_SUM[@]}" -gt 0 ]]; then eqawarn "QA Notice: This ebuild uses EGO_SUM which is deprecated" @@ -372,7 +371,9 @@ go-module_src_unpack() { fi fi - go-env_set_compile_environment + case ${EAPI} in + 7|8) go-env_set_compile_environment ;; + esac } # @FUNCTION: _go-module_src_unpack_gosum @@ -501,8 +502,21 @@ go-module_live_vendor() { popd >& /dev/null || die } +# @FUNCTION: go-module_src_configure +# @DESCRIPTION: +# Sets up the environment to build Go code for the target system. If manually +# calling this from your own src_configure, do it between handling build flags +# and invoking another build system. +go-module_src_configure() { + go-env_set_compile_environment +} + fi if [[ ! ${GO_OPTIONAL} ]]; then EXPORT_FUNCTIONS src_unpack + case ${EAPI} in + 7|8) ;; + *) EXPORT_FUNCTIONS src_configure ;; + esac fi diff --git a/sdk_container/src/third_party/portage-stable/eclass/kernel-2.eclass b/sdk_container/src/third_party/portage-stable/eclass/kernel-2.eclass index c60fcb04dd7..44b1bce504a 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/kernel-2.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/kernel-2.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: kernel-2.eclass @@ -208,19 +208,19 @@ # @DEFAULT_UNSET # @OUTPUT_VARIABLE # @DESCRIPTION: -# Kernel major version from .... # @ECLASS_VARIABLE: KV_MINOR # @DEFAULT_UNSET # @OUTPUT_VARIABLE # @DESCRIPTION: -# Kernel minor version from .... # @ECLASS_VARIABLE: KV_PATCH # @DEFAULT_UNSET # @OUTPUT_VARIABLE # @DESCRIPTION: -# Kernel patch version from .... # @ECLASS_VARIABLE: LINUX_HOSTCFLAGS # @DEFAULT_UNSET @@ -373,7 +373,7 @@ handle_genpatches() { UNIPATCH_LIST_GENPATCHES+=" ${DISTDIR}/${tarball}" debug-print "genpatches tarball: ${tarball}" fi - GENPATCHES_URI+=" ${use_cond_start}$(echo https://dev.gentoo.org/~{alicef,mpagano}/dist/genpatches/${tarball})${use_cond_end}" + GENPATCHES_URI+=" ${use_cond_start}$(echo https://distfiles.gentoo.org/pub/proj/kernel/genpatches/${tarball} https://dev.gentoo.org/~{alicef,mpagano}/dist/genpatches/${tarball})${use_cond_end}" done } @@ -659,6 +659,7 @@ if [[ ${ETYPE} == sources ]]; then dev-build/make sys-devel/bison sys-devel/flex + sys-libs/binutils-libs >=sys-libs/ncurses-5.2 virtual/libelf virtual/pkgconfig @@ -1114,6 +1115,29 @@ unipatch() { fi fi + # If we use genpatches, let's make sure it includes the + # kernel patch for the version we are trying to install + # This is a sanity check to make sure the genpatches version + # in the ebuild is correct + # + # Iterate through patch and look for OKV + if [[ -n "${K_WANT_GENPATCHES}" ]]; then + KV_PATCH_FOUND= + while IFS= read -r -d '' file; do + filename="${file##*/}" + if [[ "$filename" == *"${OKV}"* ]]; then + KV_PATCH_FOUND=yes + break; + fi + done < <(find "$KPATCH_DIR" -type f -print0) + + if [[ -z ${KV_PATCH_FOUND} ]]; then + eerror "GENPATCHES does not contain linux patch ${OKV}" + eerror "Please check your ebuild for the proper K_GENPATCHES_VER=N" + die "GENPATCHES appears to be missing Linux patch ${OKV}" + fi + fi + # If experimental was not chosen by the user, drop experimental patches not in K_EXP_GENPATCHES_LIST. if [[ ${i} == *genpatches-*.experimental.* && -n ${K_EXP_GENPATCHES_PULL} ]]; then if [[ -z ${K_EXP_GENPATCHES_NOUSE} ]] && use experimental; then diff --git a/sdk_container/src/third_party/portage-stable/eclass/llvm-r1.eclass b/sdk_container/src/third_party/portage-stable/eclass/llvm-r1.eclass index 55cb0c0cafd..f5642bcee68 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/llvm-r1.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/llvm-r1.eclass @@ -57,7 +57,7 @@ inherit llvm-utils # @DESCRIPTION: # Oldest supported LLVM slot. This is used to automatically filter out # unsupported LLVM_COMPAT values. -_LLVM_OLDEST_SLOT=15 +_LLVM_OLDEST_SLOT=16 # @ECLASS_VARIABLE: _LLVM_NEWEST_STABLE # @INTERNAL diff --git a/sdk_container/src/third_party/portage-stable/eclass/llvm-r2.eclass b/sdk_container/src/third_party/portage-stable/eclass/llvm-r2.eclass new file mode 100644 index 00000000000..6a3ee23f17a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/eclass/llvm-r2.eclass @@ -0,0 +1,477 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# @ECLASS: llvm-r2.eclass +# @MAINTAINER: +# Michał Górny +# @AUTHOR: +# Michał Górny +# @SUPPORTED_EAPIS: 8 +# @PROVIDES: llvm-utils +# @BLURB: Provide LLVM_SLOT to build against slotted LLVM +# @DESCRIPTION: +# An eclass to reliably depend on a set of LLVM-related packages +# in a matching slot. To use the eclass: +# +# 1. Set LLVM_COMPAT to the list of supported LLVM slots. +# +# 2. Use llvm_gen_dep and/or LLVM_USEDEP to add appropriate +# dependencies. +# +# 3. Use llvm-r2_pkg_setup, llvm_chost_setup, llvm_cbuild_setup, +# get_llvm_prefix or LLVM_SLOT. +# +# The eclass sets IUSE and REQUIRED_USE. The flag corresponding +# to the newest supported stable LLVM slot (or the newest testing, +# if no stable slots are supported) is enabled by default. +# +# Note that the eclass aims for a best-effort support of CHOST builds +# (i.e. compiling/linking against LLVM) and CBUILD use (i.e. calling +# LLVM tools at build time). You need to determine what the package +# in question needs, and put the appropriate packages in DEPEND and/or +# BDEPEND appropriately. +# +# Example: +# @CODE +# LLVM_COMPAT=( {16..18} ) +# +# inherit llvm-r2 +# +# DEPEND=" +# dev-libs/libfoo[${LLVM_USEDEP}] +# $(llvm_gen_dep ' +# llvm-core/clang:${LLVM_SLOT}= +# llvm-core/llvm:${LLVM_SLOT}= +# ') +# " +# @CODE + +case ${EAPI} in + 8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; +esac + +if [[ -z ${_LLVM_R2_ECLASS} ]]; then +_LLVM_R2_ECLASS=1 + +inherit llvm-utils multilib + +# == internal control knobs == + +# @ECLASS_VARIABLE: _LLVM_OLDEST_SLOT +# @INTERNAL +# @DESCRIPTION: +# Oldest supported LLVM slot. This is used to automatically filter out +# unsupported LLVM_COMPAT values. +_LLVM_OLDEST_SLOT=16 + +# @ECLASS_VARIABLE: _LLVM_NEWEST_STABLE +# @INTERNAL +# @DESCRIPTION: +# The newest stable LLVM version. Versions newer than that won't +# be automatically enabled via USE defaults. +_LLVM_NEWEST_STABLE=21 + +# == control variables == + +# @ECLASS_VARIABLE: LLVM_COMPAT +# @PRE_INHERIT +# @REQUIRED +# @DESCRIPTION: +# A list of LLVM slots supported by the package, oldest to newest. +# +# Example: +# @CODE +# LLVM_COMPAT=( {15..17} ) +# @CODE + +# @ECLASS_VARIABLE: LLVM_OPTIONAL +# @PRE_INHERIT +# @DEFAULT_UNSET +# @DESCRIPTION: +# If set to a non-empty value, disables setting REQUIRED_USE +# and exporting pkg_setup. You have to add LLVM_REQUIRED_USE and call +# pkg_setup manually, with appropriate USE conditions. + +# == global metadata == + +# @ECLASS_VARIABLE: LLVM_REQUIRED_USE +# @OUTPUT_VARIABLE +# @DESCRIPTION: +# An eclass-generated REQUIRED_USE string that enforces selecting +# exactly one slot. It LLVM_OPTIONAL is set, it needs to be copied +# into REQUIRED_USE, under appropriate USE conditions. Otherwise, +# it is added automatically. + +# @ECLASS_VARIABLE: LLVM_USEDEP +# @OUTPUT_VARIABLE +# @DESCRIPTION: +# An eclass-generated USE dependency string that can be applied to other +# packages using the same eclass, to enforce a LLVM slot match. + +_llvm_set_globals() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${LLVM_COMPAT@a} != *a* ]]; then + die "LLVM_COMPAT must be set to an array before inheriting ${ECLASS}" + fi + + local stable=() unstable=() + local x + for x in "${LLVM_COMPAT[@]}"; do + if [[ ${x} -gt ${_LLVM_NEWEST_STABLE} ]]; then + unstable+=( "${x}" ) + elif [[ ${x} -ge ${_LLVM_OLDEST_SLOT} ]]; then + stable+=( "${x}" ) + fi + done + + _LLVM_SLOTS=( "${stable[@]}" "${unstable[@]}" ) + if [[ ! ${_LLVM_SLOTS[@]} ]]; then + die "LLVM_COMPAT does not contain any valid versions (all older than ${_LLVM_OLDEST_SLOT}?)" + fi + + if [[ ${stable[@]} ]]; then + # If there is at least one stable slot supported, then enable + # the newest stable slot by default. + IUSE="+llvm_slot_${stable[-1]}" + unset 'stable[-1]' + else + # Otherwise, enable the "oldest" ~arch slot. We really only + # expect a single ~arch version, so this primarily prevents + # defaulting to non-keyworded slots. + IUSE="+llvm_slot_${unstable[0]}" + unset 'unstable[0]' + fi + local nondefault=( "${stable[@]}" "${unstable[@]}" ) + IUSE+=" ${nondefault[*]/#/llvm_slot_}" + + local flags=( "${_LLVM_SLOTS[@]/#/llvm_slot_}" ) + LLVM_REQUIRED_USE="^^ ( ${flags[*]} )" + local usedep_flags=${flags[*]/%/(-)?} + LLVM_USEDEP=${usedep_flags// /,} + readonly LLVM_REQUIRED_USE LLVM_USEDEP + + if [[ ! ${LLVM_OPTIONAL} ]]; then + REQUIRED_USE=${LLVM_REQUIRED_USE} + fi +} +_llvm_set_globals +unset -f _llvm_set_globals + +# == metadata helpers == + +# @FUNCTION: llvm_gen_dep +# @USAGE: +# @DESCRIPTION: +# Output a dependency block, repeating "" conditionally +# to all llvm_slot_* USE flags. Any occurences of '${LLVM_SLOT}' +# within the block will be substituted for the respective slot. +# +# Example: +# @CODE +# DEPEND=" +# $(llvm_gen_dep ' +# llvm-core/clang:${LLVM_SLOT}= +# llvm-core/llvm:${LLVM_SLOT}= +# ') +# " +# @CODE +llvm_gen_dep() { + debug-print-function ${FUNCNAME} "$@" + + [[ ${#} -ne 1 ]] && die "Usage: ${FUNCNAME} " + + local dep=${1} + + local slot + for slot in "${_LLVM_SLOTS[@]}"; do + echo "llvm_slot_${slot}? ( ${dep//\$\{LLVM_SLOT\}/${slot}} )" + done +} + +# == ebuild helpers == + +# @FUNCTION: get_llvm_prefix +# @USAGE: [-b|-d] +# @DESCRIPTION: +# Output the path to the selected LLVM slot. +# +# With no option or "-d", the path is prefixed by ESYSROOT. LLVM +# dependencies should be in DEPEND then. +# +# With "-b" option, the path is prefixed by BROOT. LLVM dependencies +# should be in BDEPEND then. +get_llvm_prefix() { + debug-print-function ${FUNCNAME} "$@" + + [[ ${#} -gt 1 ]] && die "Usage: ${FUNCNAME} [-b|-d]" + + local prefix + case ${1--d} in + -d) + prefix=${ESYSROOT} + ;; + -b) + prefix=${BROOT} + ;; + *) + die "${FUNCNAME}: invalid option: ${1}" + ;; + esac + + echo "${prefix}/usr/lib/llvm/${LLVM_SLOT}" +} + +# @FUNCTION: generate_llvm_config +# @DESCRIPTION: +# Output a llvm-config compatible script that yields paths specific +# to the requested LLVM version. +generate_llvm_config() { + debug-print-function ${FUNCNAME} "$@" + + local bindir=$(get_llvm_prefix -b)/bin + [[ ! -d ${bindir} ]] && bindir= + + local prefix=$(get_llvm_prefix -d) + local includedir=${prefix}/include + local libdir=${prefix}/$(get_libdir) + local cmake_conf=${libdir}/cmake/llvm/LLVMConfig.cmake + if [[ ! -f ${cmake_conf} ]]; then + cat <<-EOF + #!/usr/bin/env sh + echo "LLVM ${LLVM_SLOT} not installed for ABI=${ABI}" >&2 + exit 127 + EOF + return + fi + + local version=$( + sed -ne 's:set(LLVM_PACKAGE_VERSION \(.*\)):\1:p' "${cmake_conf}" || die + ) + [[ -n ${version} ]] || die + local cppdefs=$( + sed -ne 's:set(LLVM_DEFINITIONS "\(.*\)"):\1:p' "${cmake_conf}" || die + ) + [[ -n ${cppdefs} ]] || die + local targets=$( + sed -ne 's:set(LLVM_TARGETS_TO_BUILD \(.*\)):\1:p' "${cmake_conf}" || die + ) + [[ -n ${targets} ]] || die + local libs=$( + sed -ne 's:set(LLVM_AVAILABLE_LIBS \(.*\)):\1:p' "${cmake_conf}" || die + ) + [[ -n ${libs} ]] || die + local target_triple=$( + sed -ne 's:set(LLVM_TARGET_TRIPLE "\(.*\)"):\1:p' "${cmake_conf}" || die + ) + [[ -n ${target_triple} ]] || die + + readarray -d';' -t targets <<<"${targets}" + readarray -d';' -t libs <<<"${libs}" + # easier than parsing CMake booleans + local assertions=OFF + [[ ${cppdefs} == *-D_DEBUG* ]] && assertions=ON + # major + suffix + local shlib_name=LLVM-${version%%.*} + [[ ${version} == *git* ]] && shlib_name+="git${version##*git}" + [[ ${version} == *+* && ${shlib_name} != *+* ]] && shlib_name+="+${version##*+}" + + local components=( + "${libs[@]#LLVM}" "${targets[@]}" + # special component groups (grep for add_llvm_component_group) + all all-targets engine native nativecodegen + ) + + cat <<-EOF + #!/usr/bin/env sh + + echo "\${0} \${*}" >> "${T}/llvm-config-calls.txt" + + do_echo() { + echo " \${*}" >> "${T}/llvm-config-calls.txt" + echo "\${@}" + } + + for arg; do + case \${arg} in + --assertion-mode) + do_echo "${assertions}" + ;; + --bindir) + if [ -n "${bindir}" ]; then + do_echo "${bindir}" + else + do_echo "CBUILD LLVM not available" >&2 + exit 1 + fi + ;; + --build-mode) + do_echo RelWithDebInfo + ;; + --build-system) + do_echo cmake + ;; + --cflags|--cppflags) + do_echo "-I${includedir} ${cppdefs[*]}" + ;; + --cmakedir) + do_echo "${libdir}/cmake/llvm" + ;; + --components) + do_echo "${components[*],,}" + ;; + --cxxflags) + do_echo "-I${includedir} -std=c++17 ${cppdefs[*]}" + ;; + --has-rtti) + do_echo YES + ;; + --host-target) + do_echo "${target_triple}" + ;; + --ignore-libllvm) + # ignored + ;; + --includedir) + do_echo "${includedir}" + ;; + --ldflags) + do_echo "-L${libdir}" + ;; + --libdir) + do_echo "${libdir}" + ;; + --libfiles) + do_echo "${libdir}/lib${shlib_name}.so" + ;; + --libnames) + do_echo lib${shlib_name}.so + ;; + --libs) + do_echo "-l${shlib_name}" + ;; + --link-shared|--link-static) + # ignored + ;; + --obj-root|--prefix) + do_echo "${prefix}" + ;; + --shared-mode) + do_echo shared + ;; + --system-libs) + do_echo + ;; + --targets-built) + do_echo "${targets[*]}" + ;; + --version) + do_echo "${version}" + ;; + -*) + do_echo "Unsupported option: \${arg}" >&2 + exit 1 + ;; + *) + # ignore components, we always return the dylib + ;; + esac + done + EOF +} +# @FUNCTION: llvm_cbuild_setup +# @DESCRIPTION: +# Prepend the PATH for selected LLVM version in CBUILD. +# +# This function is meant to be used when the package in question uses +# LLVM tools at build time. It is called automatically +# by llvm-r2_pkg_setup if LLVM is found installed in BROOT. +# +# Note that llvm-config from this path must not be used to build against +# LLVM, as that will break cross-compilation. +llvm_cbuild_setup() { + debug-print-function ${FUNCNAME} "$@" + + local broot_prefix=$(get_llvm_prefix -b) + einfo "Using ${broot_prefix} for CBUILD LLVM ${LLVM_SLOT}" + [[ -d ${broot_prefix}/bin ]] || + die "LLVM ${LLVM_SLOT} not found installed in BROOT (expected: ${broot_prefix}/bin)" + + llvm_fix_clang_version CC CPP CXX + # keep in sync with profiles/features/llvm/make.defaults! + llvm_fix_tool_path ADDR2LINE AR AS LD NM OBJCOPY OBJDUMP RANLIB + llvm_fix_tool_path READELF STRINGS STRIP + llvm_prepend_path -b "${LLVM_SLOT}" +} + +# @FUNCTION: llvm_chost_setup +# @DESCRIPTION: +# Set the environment for finding selected LLVM slot installed +# for CHOST. Create llvm-config wrappers to satisfy legacy lookups. +# +# This function is meant to be used when the package in question uses +# LLVM compiles against and links to LLVM. It is called automatically +# by llvm-r2_pkg_setup if LLVM is found installed in ESYSROOT. +# +# Note that the generated llvm-config may refer to CBUILD installation +# of LLVM via --bindir, if it is found available. +llvm_chost_setup() { + debug-print-function ${FUNCNAME} "$@" + + local esysroot_prefix=$(get_llvm_prefix -d) + einfo "Using ${esysroot_prefix} for CHOST LLVM ${LLVM_SLOT}" + [[ -d ${esysroot_prefix} ]] || + die "LLVM ${LLVM_SLOT} not found installed in ESYSROOT (expected: ${esysroot_prefix})" + + # satisfies find_package() in CMake + export LLVM_ROOT="${esysroot_prefix}" + export Clang_ROOT="${esysroot_prefix}" + export LLD_ROOT="${esysroot_prefix}" + export MLIR_ROOT="${esysroot_prefix}" + export Polly_ROOT="${esysroot_prefix}" + + # satisfies llvm-config calls, e.g. from meson + export PATH="${T}/llvm-bin:${PATH}" + mkdir "${T}"/llvm-bin || die + # we need to generate it per-ABI, since libdir changes + local ABI + for ABI in $(get_all_abis); do + local path="${T}/llvm-bin/$(get_abi_CHOST)-llvm-config" + generate_llvm_config > "${path}" || die + chmod +x "${path}" || die + done + ln -s "$(get_abi_CHOST)-llvm-config" "${T}/llvm-bin/llvm-config" || die +} + +# @FUNCTION: llvm-r2_pkg_setup +# @DESCRIPTION: +# Handle all supported setup actions automatically. If LLVM is found +# installed for CBUILD, call llvm_cbuild_setup. If it is found +# installed for CHOST, call llvm_chost_setup. +# +# This function is a no-op when installing a binary package. +# +# Note that this function is not exported if LLVM_OPTIONAL is set. +# In that case, it needs to be called manually. +llvm-r2_pkg_setup() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${MERGE_TYPE} != binary ]]; then + [[ -z ${LLVM_SLOT} ]] && die "LLVM_SLOT unset (broken USE_EXPAND?)" + + if [[ -d $(get_llvm_prefix -b)/bin ]]; then + llvm_cbuild_setup + fi + + if [[ -d $(get_llvm_prefix -d) ]]; then + llvm_chost_setup + fi + fi +} + +fi + +if [[ ! ${LLVM_OPTIONAL} ]]; then + EXPORT_FUNCTIONS pkg_setup +fi diff --git a/sdk_container/src/third_party/portage-stable/eclass/llvm.eclass b/sdk_container/src/third_party/portage-stable/eclass/llvm.eclass index 592bfe226c9..34ff07b0d97 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/llvm.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/llvm.eclass @@ -82,7 +82,7 @@ DEPEND="!!llvm-core/llvm:0" # @INTERNAL # @DESCRIPTION: # Correct values of LLVM slots, newest first. -declare -g -r _LLVM_KNOWN_SLOTS=( {19..8} ) +declare -g -r _LLVM_KNOWN_SLOTS=( {19..16} ) # @ECLASS_VARIABLE: LLVM_ECLASS_SKIP_PKG_SETUP # @INTERNAL diff --git a/sdk_container/src/third_party/portage-stable/eclass/meson.eclass b/sdk_container/src/third_party/portage-stable/eclass/meson.eclass index 60ce6593e8d..198063c08b1 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/meson.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/meson.eclass @@ -454,8 +454,8 @@ setup_meson_src_configure() { tc-getPROG READELF readelf >/dev/null # https://bugs.gentoo.org/721786 - export BOOST_INCLUDEDIR="${BOOST_INCLUDEDIR-${EPREFIX}/usr/include}" - export BOOST_LIBRARYDIR="${BOOST_LIBRARYDIR-${EPREFIX}/usr/$(get_libdir)}" + export BOOST_INCLUDEDIR="${BOOST_INCLUDEDIR-${ESYSROOT}/usr/include}" + export BOOST_LIBRARYDIR="${BOOST_LIBRARYDIR-${ESYSROOT}/usr/$(get_libdir)}" } # @FUNCTION: meson_src_configure diff --git a/sdk_container/src/third_party/portage-stable/eclass/multilib.eclass b/sdk_container/src/third_party/portage-stable/eclass/multilib.eclass index 5d9e8498aef..15c44e03a0c 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/multilib.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/multilib.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: multilib.eclass @@ -278,16 +278,20 @@ multilib_env() { local CTARGET=${1:-${CTARGET}} local cpu=${CTARGET%%*-} - if [[ ${CTARGET} = *-musl* ]]; then - # musl has no multilib support and can run only in 'lib': - # - https://bugs.gentoo.org/675954 - # - https://gcc.gnu.org/PR90077 - # - https://github.com/gentoo/musl/issues/245 - : "${MULTILIB_ABIS=default}" - : "${DEFAULT_ABI=default}" - export MULTILIB_ABIS DEFAULT_ABI - return - fi + case ${CTARGET} in + *-musl*) + # musl has no multilib support and can run only in 'lib': + # - https://bugs.gentoo.org/675954 + # - https://gcc.gnu.org/PR90077 + # - https://github.com/gentoo/musl/issues/245 + : "${MULTILIB_ABIS=default}" + : "${DEFAULT_ABI=default}" + export MULTILIB_ABIS DEFAULT_ABI + return + ;; + *) + ;; + esac case ${cpu} in aarch64*) diff --git a/sdk_container/src/third_party/portage-stable/eclass/multiprocessing.eclass b/sdk_container/src/third_party/portage-stable/eclass/multiprocessing.eclass index ba6e1b46aae..6fdac2a0af6 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/multiprocessing.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/multiprocessing.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: multiprocessing.eclass @@ -7,7 +7,7 @@ # @AUTHOR: # Brian Harring # Mike Frysinger -# @SUPPORTED_EAPIS: 7 8 +# @SUPPORTED_EAPIS: 7 8 9 # @BLURB: multiprocessing helper functions # @DESCRIPTION: # The multiprocessing eclass contains a suite of utility functions @@ -20,15 +20,18 @@ # @CODE # src_compile() { # # custom build system that does not support most of MAKEOPTS -# ./mybs -j$(makeopts_jobs) +# ./mybs -j$(get_makeopts_jobs) # } # @CODE +# +# Starting with EAPI 9, it is required to use get_makeopts_jobs / +# get_makeopts_laodavg instead of makeopts_jobs / makeopts_loadavg. if [[ -z ${_MULTIPROCESSING_ECLASS} ]]; then _MULTIPROCESSING_ECLASS=1 case ${EAPI} in - 7|8) ;; + 7|8|9) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac @@ -79,12 +82,13 @@ _get_all_makeopts() { # GNUMAKEFLAGS, MAKEFLAGS). If the make options do not specify a number, # then either the provided default is returned, or 1. get_makeopts_jobs() { - makeopts_jobs "$(_get_all_makeopts)" "${1:-1}" + _makeopts_jobs "$(_get_all_makeopts)" "${1:-1}" } # @FUNCTION: makeopts_jobs # @USAGE: [${MAKEOPTS}] [${inf:-$(( $(get_nproc) + 1 ))}] # @DESCRIPTION: +# This function is banned in EAPI 9, use get_makeopts_jobs instead. # Searches the arguments (or sensible defaults) and extracts the jobs number # specified therein. Useful for running non-make tools in parallel too. # i.e. if the user has MAKEOPTS=-j9, this will echo "9" -- we can't return the @@ -92,6 +96,18 @@ get_makeopts_jobs() { # -j flag, then "1" is shown as that is the default `make` uses. If the flags # specify -j without a number, ${inf} is returned (defaults to nproc). makeopts_jobs() { + if ! has "${EAPI}" 7 8; then + die "Calling makeopts_jobs is banned in EAPI ${EAPI}, use get_makeopts_jobs instead" + fi + _makeopts_jobs "$@" +} + +# @FUNCTION: _makeopts_jobs +# @USAGE: [${MAKEOPTS}] [${inf:-$(( $(get_nproc) + 1 ))}] +# @INTERNAL +# @DESCRIPTION: +# Internal helper returning the "jobs" value. +_makeopts_jobs() { [[ $# -eq 0 ]] && set -- "$(_get_all_makeopts)" # This assumes the first .* will be more greedy than the second .* # since POSIX doesn't specify a non-greedy match (i.e. ".*?"). @@ -108,12 +124,13 @@ makeopts_jobs() { # GNUMAKEFLAGS, MAKEFLAGS). If the make options do not specify a value, then # either the optional provided default is returned, or 999. get_makeopts_loadavg() { - makeopts_loadavg "$(_get_all_makeopts)" "${1:-999}" + _makeopts_loadavg "$(_get_all_makeopts)" "${1:-999}" } # @FUNCTION: makeopts_loadavg # @USAGE: [${MAKEOPTS}] [${inf:-999}] # @DESCRIPTION: +# This function is banned in EAPI 9, use get_makeopts_loadavg instead. # Searches the arguments (or sensible defaults) and extracts the value set # for load-average. For make and ninja based builds this will mean new jobs are # not only limited by the jobs-value, but also by the current load - which might @@ -123,6 +140,18 @@ get_makeopts_loadavg() { # If no limit is specified or --load-average is used without a number, ${inf} # (defaults to 999) is returned. makeopts_loadavg() { + if ! has "${EAPI}" 7 8; then + die "Calling makeopts_loadavg is banned in EAPI ${EAPI}, use get_makeopts_loadavg instead" + fi + _makeopts_loadavg "$@" +} + +# @FUNCTION: _makeopts_loadavg +# @USAGE: [${MAKEOPTS}] [${inf:-999}] +# @INTERNAL +# @DESCRIPTION: +# Internal helper returning the "loadavg" value. +_makeopts_loadavg() { [[ $# -eq 0 ]] && set -- "$(_get_all_makeopts)" # This assumes the first .* will be more greedy than the second .* # since POSIX doesn't specify a non-greedy match (i.e. ".*?"). 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 807813f3f3b..6230cba30d9 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 @@ -40,8 +40,8 @@ inherit multiprocessing toolchain-funcs # All supported Python implementations, most preferred last. _PYTHON_ALL_IMPLS=( pypy3_11 - python3_{13..14}t - python3_{11..14} + python3_{13..15}t + python3_{11..15} ) readonly _PYTHON_ALL_IMPLS @@ -81,7 +81,7 @@ _python_verify_patterns() { local impl pattern for pattern; do case ${pattern} in - -[23]|3.[89]|3.1[0-4]) + -[23]|3.[89]|3.1[0-5]) continue ;; esac @@ -137,7 +137,7 @@ _python_set_impls() { # please keep them in sync with _PYTHON_ALL_IMPLS # and _PYTHON_HISTORICAL_IMPLS case ${i} in - pypy3_11|python3_9|python3_1[1-4]|python3_1[3-4]t) + pypy3_11|python3_9|python3_1[1-5]|python3_1[3-5]t) ;; jython2_7|pypy|pypy1_[89]|pypy2_0|pypy3|python2_[5-7]|python3_[1-9]|python3_10) obsolete+=( "${i}" ) @@ -230,7 +230,7 @@ _python_impl_matches() { fi return 0 ;; - 3.[89]|3.1[0-4]) + 3.[89]|3.1[0-5]) [[ ${impl%t} == python${pattern/./_} || ${impl} == pypy${pattern/./_} ]] && return 0 ;; @@ -602,7 +602,7 @@ python_optimize() { # default to sitedir [[ ${#} -eq 0 ]] && set -- "${D}$(python_get_sitedir)" - local jobs=$(makeopts_jobs) + local jobs=$(get_makeopts_jobs) local d for d; do einfo "Optimizing Python modules in ${d#${D}}" @@ -1561,10 +1561,19 @@ epytest() { args+=( "--timeout=${EPYTEST_TIMEOUT}" ) + + if [[ -n ${EPYTEST_RERUNS} ]]; then + # This option helps with hangs in some cases when these plugins are used together. + # https://github.com/pytest-dev/pytest-timeout/issues/18 + # https://github.com/pytest-dev/pytest-rerunfailures/issues/99 + args+=( + -o timeout_func_only=true + ) + fi fi if [[ ${EPYTEST_XDIST} ]]; then - local jobs=${EPYTEST_JOBS:-$(makeopts_jobs)} + local jobs=${EPYTEST_JOBS:-$(get_makeopts_jobs)} if [[ ${jobs} -gt 1 ]]; then if [[ ${PYTEST_PLUGINS} != *xdist.plugin* ]]; then args+=( @@ -1579,6 +1588,17 @@ epytest() { # jobs are unevenly distributed --dist=worksteal ) + + if [[ ${MAKEFLAGS} == *--jobserver-auth=* ]]; then + if has_version "dev-python/pytest-jobserver[${PYTHON_USEDEP}]" + then + args+=( -p jobserver ) + elif [[ ! ${_EPYTEST_JOBSERVER_WARNED} ]]; then + ewarn "Jobserver found under pytest-xdist, but cannot be used without:" + ewarn " dev-python/pytest-jobserver" + _EPYTEST_JOBSERVER_WARNED=1 + fi + fi fi fi diff --git a/sdk_container/src/third_party/portage-stable/eclass/rpm.eclass b/sdk_container/src/third_party/portage-stable/eclass/rpm.eclass index 3b7f9e64355..1296e1f3641 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/rpm.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/rpm.eclass @@ -15,14 +15,65 @@ esac if [[ -z ${_RPM_ECLASS} ]] ; then _RPM_ECLASS=1 -inherit estack +inherit estack toolchain-funcs -BDEPEND=" - || ( - app-arch/rpm2targz - >=app-arch/rpm-4.19.0 - ) -" +# @ECLASS_VARIABLE: RPM_COMPRESS_TYPE +# @PRE_INHERIT +# @DEFAULT_UNSET +# @DESCRIPTION: +# Comma-separated list of app-arch/rpm compression formats. If set, +# app-arch/rpm will be allowed as a BDEPEND to unpack distfiles. Must be set +# for EAPI 9. Supported types: +# +# - none (rpm is supported but distfile is uncompressed or builtin zlib) +# +# - bzip2 (.bz2) +# +# - lzma (deprecated pre-xz iteration of the lzma SDK. rpm2targz doesn't +# support it) +# +# - xz (.xz) +# +# - zstd (.zst) +# +# - "" (empty -- the ebuild hasn't been updated to resolve deprecations) +if [[ ${EAPI} != [78] && -z ${RPM_COMPRESS_TYPE} ]]; then + die "RPM_COMPRESS_TYPE= must be defined starting with EAPI 9" +fi + +_rpm_set_globals() { + local rpmdep= rpmuse= rpm2tar="true" t= types=() + IFS=, declare -a 'types=(${RPM_COMPRESS_TYPE})' + + if [[ ${RPM_COMPRESS_TYPE} = none ]]; then + rpmdep=">=app-arch/rpm-4.19.0" + elif [[ "${#types[@]}" -gt 0 ]]; then + for t in "${types[@]}"; do + case ${t} in + bzip2|zstd) rpmuse+="${t}(+)," ;; + lzma) rpmuse+="${t}(+),"; rpm2tar="false" ;; + xz) rpmuse+="lzma(+)," ;; + none) die "RPM_COMPRESS_TYPE: 'none' cannot be combined with other values" ;; + *) die "invalid RPM_COMPRESS_TYPE: ${RPM_COMPRESS_TYPE} (found: ${t})" ;; + esac + done + rpmdep=">=app-arch/rpm-4.19.0" + [[ ${rpmuse} ]] && rpmdep+="[${rpmuse%,}]" + fi + + if [[ ${rpm2tar} = true ]]; then + BDEPEND=" + || ( + app-arch/rpm2targz + ${rpmdep} + ) + " + else + BDEPEND="${rpmdep}" + fi +} +_rpm_set_globals +unset -f _rpm_set_globals # @FUNCTION: rpm_unpack # @USAGE: @@ -30,7 +81,10 @@ BDEPEND=" # Unpack the contents of the specified rpms like the unpack() function. rpm_unpack() { [[ $# -eq 0 ]] && set -- ${A} - local a + local a noticed=() + + IFS=, declare -a 'types=(${RPM_COMPRESS_TYPE})' + for a in "$@" ; do echo ">>> Unpacking ${a} to ${PWD}" if [[ ${a} == ./* ]] ; then @@ -43,11 +97,39 @@ rpm_unpack() { a="${DISTDIR}/${a}" fi - if command -v rpm2tar >/dev/null; then - local extracttool=(rpm2tar -O) - else - # app-arch/rpm fallback + local payload= usedep="" + # grep may fail because no payload or because "unknown error", and distinguishing between + # the two is problematic. We do a token check that strings works, but rely on rpm failing + # with its own well-formed die if we erroneously decide no payload USE flag is needed due + # to external commands failing. + payload=$($(tc-getSTRINGS) "${a}" | grep -o 'PayloadIs[a-zA-Z]*'; if [[ ${PIPESTATUS[0]} != 0 ]]; then die "strings failed"; fi) + + case ${payload} in + "") payload=none;; # gzip/uncompressed + PayloadIsBzip) payload=bzip2 usedep="[bzip2(+)]";; + PayloadIsXz) payload=xz usedep="[lzma(+)]";; + PayloadIsLzma) payload=lzma usedep="[lzma(+)]";; + PayloadIsZstd) payload=zstd usedep="[zstd(+)]";; + esac + + local use_rpm= + if [[ ${RPM_COMPRESS_TYPE} = *${payload}* || + ( ${payload} = none && ${RPM_COMPRESS_TYPE} ) ]]; then + use_rpm=true + elif ! has "${payload}" "${noticed[@]}"; then + eqawarn "QA Notice: rpm_unpack called without supporting app-arch/rpm." + eqawarn "\${RPM_COMPRESS_TYPE} should include '${payload}'." + noticed+=("${payload}") + fi + + if [[ ${use_rpm} = true ]] && has_version -b "app-arch/rpm${usedep}"; then + # prefer it if correct USE is in BDEPEND and installed local extracttool=(rpm2archive -n) + elif [[ ${payload} = lzma ]]; then + # bug 321439 + die "rpm_unpack called with legacy lzma compression that rpm2targz doesn't support" + else + local extracttool=(rpm2tar -O) fi "${extracttool[@]}" "${a}" | tar xf - diff --git a/sdk_container/src/third_party/portage-stable/eclass/ruby-utils.eclass b/sdk_container/src/third_party/portage-stable/eclass/ruby-utils.eclass index 9f0f7e6c04b..2c0933a9563 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/ruby-utils.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/ruby-utils.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: ruby-utils.eclass @@ -33,7 +33,9 @@ esac # provide for a better first installation experience. # All stable RUBY_TARGETS -RUBY_TARGETS_PREFERENCE="ruby32 ruby33 " +# Latest Ruby version goes first in the stable list to give dependency +# preference to the newer Ruby version. +RUBY_TARGETS_PREFERENCE="ruby33 ruby32 " # All other active ruby targets RUBY_TARGETS_PREFERENCE+="ruby34 ruby40" 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 9569e8c1888..8e4e3761f7b 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/rust.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/rust.eclass @@ -69,6 +69,7 @@ fi declare -A -g -r _RUST_LLVM_MAP=( ["9999"]=22 ["1.95.0"]=22 + ["1.94.1"]=21 ["1.94.0"]=21 ["1.93.1"]=21 ["1.93.0"]=21 @@ -104,6 +105,7 @@ declare -A -g -r _RUST_LLVM_MAP=( declare -a -g -r _RUST_SLOTS_ORDERED=( "9999" "1.95.0" + "1.94.1" "1.94.0" "1.93.1" "1.93.0" diff --git a/sdk_container/src/third_party/portage-stable/eclass/selinux-policy-2.eclass b/sdk_container/src/third_party/portage-stable/eclass/selinux-policy-2.eclass index 96bf57746f6..d434251672f 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/selinux-policy-2.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/selinux-policy-2.eclass @@ -37,7 +37,16 @@ _SELINUX_POLICY_2_ECLASS=1 # This variable contains the version string of the selinux-base-policy package # that this module build depends on. It is used to patch with the appropriate # patch bundle(s) that are part of selinux-base-policy. -: "${BASEPOL:="${PVR}"}" +# EAPI <=7 packages had -rN and patchbundle named -rN +# EAPI 8 moved packages to _p, but kept patchbundles unchanged as -rN +# Releases in 2026 made the patchbundles with _pN to match PV +if [[ ${EAPI} = 7 ]]; then + : "${BASEPOL:="${PVR}"}" +elif [[ ${EAPI} = 8 ]] && ver_test -lt 2.20260101; then + : "${BASEPOL:="${PV/_p/-r}"}" +else + : "${BASEPOL:="${PV}"}" +fi # @ECLASS_VARIABLE: POLICY_PATCH # @DESCRIPTION: @@ -84,6 +93,18 @@ fi # The default value is the 'master' branch. : "${SELINUX_GIT_BRANCH:="master"}" +# @ECLASS_VARIABLE: SELINUX_POLICY_USEDEP +# @OUTPUT_VARIABLE +# @DESCRIPTION: +# This variable contains the USE dependency constraints for policy packages. +SELINUX_POLICY_USEDEP="selinux_policy_types_targeted(-)?,selinux_policy_types_strict(-)?,selinux_policy_types_mcs(-)?,selinux_policy_types_mls(-)?" + +# @ECLASS_VARIABLE: _SELINUX_POLICY_UPSTREAM_PV +# @INTERNAL +# @DESCRIPTION: +# Internal variable representing (spoofed) upstream refpolicy version. +_SELINUX_POLICY_UPSTREAM_PV=$(ver_cut 1-2) + case ${BASEPOL} in 9999) inherit git-r3 @@ -102,11 +123,11 @@ fi HOMEPAGE="https://wiki.gentoo.org/wiki/Project:SELinux" if [[ -n ${BASEPOL} && "${BASEPOL}" != "9999" ]]; then SRC_URI=" - https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_${PV/./_}/refpolicy-${PV}.tar.bz2 + https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_${_SELINUX_POLICY_UPSTREAM_PV/./_}/refpolicy-${_SELINUX_POLICY_UPSTREAM_PV}.tar.bz2 https://dev.gentoo.org/~perfinion/patches/selinux-base-policy/patchbundle-selinux-base-policy-${BASEPOL}.tar.bz2 " elif [[ "${BASEPOL}" != "9999" ]]; then - SRC_URI="https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_${PV/./_}/refpolicy-${PV}.tar.bz2" + SRC_URI="https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_${_SELINUX_POLICY_UPSTREAM_PV/./_}/refpolicy-${_SELINUX_POLICY_UPSTREAM_PV}.tar.bz2" fi LICENSE="GPL-2" @@ -118,7 +139,7 @@ S="${WORKDIR}" if [[ -n ${BASEPOL} ]]; then _BASE_POLICY_VERSION="${BASEPOL}" else - _BASE_POLICY_VERSION="${PV}" + _BASE_POLICY_VERSION="${_SELINUX_POLICY_UPSTREAM_PV}" fi if [[ ${EAPI} = 7 ]]; then @@ -127,15 +148,10 @@ if [[ ${EAPI} = 7 ]]; then >=sec-policy/selinux-base-policy-${_BASE_POLICY_VERSION} " else - RDEPEND=">=sys-apps/policycoreutils-2.5" - for _poltype in selinux_policy_types_{targeted,strict,mcs,mls}; do - RDEPEND+=" - ${_poltype}? ( - >=sec-policy/selinux-base-policy-${_BASE_POLICY_VERSION}[${_poltype}] - ) - " - done - unset _poltype + RDEPEND=" + >=sys-apps/policycoreutils-2.5 + >=sec-policy/selinux-base-policy-${_BASE_POLICY_VERSION}[${SELINUX_POLICY_USEDEP}] + " fi unset _BASE_POLICY_VERSION @@ -260,7 +276,7 @@ selinux-policy-2_src_compile() { _selinux_compile_modules() { # Support USE flags in builds export M4PARAM="${makeuse}" - emake NAME=$1 SHAREDIR="${EPREFIX}"/usr/share/selinux -C "${S}"/${1} + emake NAME=$1 SHAREDIR="${ESYSROOT}"/usr/share/selinux -C "${S}"/${1} } if [[ ${EAPI} = 7 ]]; then diff --git a/sdk_container/src/third_party/portage-stable/eclass/sysroot.eclass b/sdk_container/src/third_party/portage-stable/eclass/sysroot.eclass index de0a4ef3164..398d5233f1d 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/sysroot.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/sysroot.eclass @@ -76,6 +76,22 @@ qemu_arch_if_needed() { return 0 } + +# @FUNCTION: _sysroot_compile_and_link_test_exe +# @USAGE: +# @INTERNAL +# @DESCRIPTION: +# Compile and link a test executable that does nothing except to return success. +# The executable is built for the *host* machine using $(tc-getCC), *not* for +# the build machine using $(tc-getBUILD_CC). +_sysroot_compile_and_link_test_exe() { + [[ -n "${1}" ]] || die 'Must specify test executable path name.' + local test="${1}" + echo 'int main(void) { return 0; }' > "${test}.c" || die "failed to write ${test##*/}.c" + $(tc-getCC) ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -o "${test}" "${test}.c" || die "failed to build ${test##*/}" +} + + # @FUNCTION: sysroot_make_run_prefixed # @DESCRIPTION: # Create a wrapper script for directly running executables within a (sys)root @@ -117,7 +133,7 @@ sysroot_make_run_prefixed() { fi fi - if [[ ${CHOST} = *-mingw32 ]]; then + if [[ ${CHOST} = *-mingw32 || ${CHOST} = *-cygwin ]]; then if ! type -P wine >/dev/null; then einfo "Wine not found. Continuing without ${SCRIPT##*/} wrapper." return 2 @@ -131,16 +147,30 @@ sysroot_make_run_prefixed() { #!/bin/sh SANDBOX_ON=0 LD_PRELOAD= WINEPATH="\${WINEPATH}\${WINEPATH+;};${winepath//\//\\}" exec wine "\${@}" EOF + elif [[ ${CHOST} != *-linux-* ]]; then + einfo "Target is not Linux. Continuing without ${SCRIPT##*/} wrapper." + return 2 elif ! QEMU_ARCH=$(qemu_arch_if_needed); then - # glibc: ld.so is a symlink, ldd is a binary. - # musl: ld.so doesn't exist, ldd is a symlink. - local DLINKER candidate - for candidate in "${MYEROOT}"/usr/bin/{ld.so,ldd}; do - if [[ -L ${candidate} ]]; then - DLINKER=${candidate} - break - fi - done + local DLINKER + if [[ "${ABI-${DEFAULT_ABI}}" == "${DEFAULT_ABI}" ]]; then + # glibc: ld.so is a symlink, ldd is a binary. + # musl: ld.so doesn't exist, ldd is a symlink. + local candidate + for candidate in "${MYEROOT}"/usr/bin/{ld.so,ldd}; do + if [[ -L ${candidate} ]]; then + DLINKER=${candidate} + break + fi + done + else + # non-default ABI needs a non-default dynamic linker + SCRIPT+="-${ABI}" + local test="${SCRIPT}-test" + _sysroot_compile_and_link_test_exe "${test}" + read -d '' -r DLINKER < <($(tc-getOBJCOPY) -O binary -j .interp -- "${test}" /dev/stdout) + DLINKER="${DLINKER:+${MYEROOT}${DLINKER}}" + [[ -f ${DLINKER} && -x ${DLINKER} ]] || DLINKER= + fi [[ -n ${DLINKER} ]] || die "failed to find dynamic linker" # musl symlinks ldd to ld-musl.so to libc.so. We want the ld-musl.so @@ -166,8 +196,7 @@ sysroot_make_run_prefixed() { # and worse if QEMU does not support the architecture. We therefore need # to perform our own test up front. local test="${SCRIPT}-test" - echo 'int main(void) { return 0; }' > "${test}.c" || die "failed to write ${test##*/}" - $(tc-getCC) ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} "${test}.c" -o "${test}" || die "failed to build ${test##*/}" + _sysroot_compile_and_link_test_exe "${test}" if ! "${SCRIPT}" "${test}" &>/dev/null; then einfo "Failed to run ${test##*/}. Continuing without ${SCRIPT##*/} wrapper." 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 d6571dbb203..e738bb05948 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 @@ -602,7 +602,7 @@ tc-ld-is-mold() { # @FUNCTION: tc-ld-disable-gold # @USAGE: [toolchain prefix] -# @DEPRECATED: tc-ld-force-bfd +# @DEPRECATED: tc-ld-force-bfd or drop entirely if works with everything but gold # @DESCRIPTION: # If the gold linker is currently selected, configure the compilation # settings so that we use the older bfd linker instead. 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 cad0a7203d2..c89e7d21ee4 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/toolchain.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/toolchain.eclass @@ -148,11 +148,6 @@ tc_version_is_between() { # Extra options to pass to DejaGnu as RUNTESTFLAGS. : "${GCC_TESTS_RUNTESTFLAGS:=}" -# @ECLASS_VARIABLE: TOOLCHAIN_PATCH_DEV -# @DEFAULT_UNSET -# @DESCRIPTION: -# Indicate the developer who hosts the patchset for an ebuild. - # @ECLASS_VARIABLE: TOOLCHAIN_HAS_TESTS # @DEFAULT_UNSET # @DESCRIPTION: @@ -349,7 +344,7 @@ if [[ ${PN} != kgcc64 && ${PN} != gcc-* ]] ; then # and https://rust-gcc.github.io/2023/04/24/gccrs-and-gcc13-release.html for why # it was disabled in 13. tc_version_is_at_least 14.1 ${PV} && IUSE+=" rust" TC_FEATURES+=( rust ) - tc_version_is_at_least 13.3.1_p20250522 ${PV} && IUSE+=" time64" + tc_version_is_at_least 11.5 ${PV} && IUSE+=" time64" tc_version_is_at_least 15.1 ${PV} && IUSE+=" libgdiagnostics" tc_version_is_at_least 15.1 ${PV} && IUSE+=" cobol" TC_FEATURES+=( cobol ) tc_version_is_at_least 16.0.0_p20251130 ${PV} && IUSE+=" algol68" @@ -499,48 +494,6 @@ if [[ ${TOOLCHAIN_SET_S} == yes ]] ; then fi fi -gentoo_urls() { - # the list is sorted by likelihood of getting the patches tarball from - # respective devspace - # slyfox's distfiles are mirrored to sam's devspace - declare -A devspace_urls=( - [soap]=HTTP~soap/distfiles/URI - [sam]=HTTP~sam/distfiles/sys-devel/gcc/URI - [slyfox]=HTTP~sam/distfiles/URI - [xen0n]=HTTP~xen0n/distfiles/sys-devel/gcc/URI - [tamiko]=HTTP~tamiko/distfiles/URI - [zorry]=HTTP~zorry/patches/gcc/URI - [vapier]=HTTP~vapier/dist/URI - [blueness]=HTTP~blueness/dist/URI - ) - - # Newer ebuilds should set TOOLCHAIN_PATCH_DEV and we'll just - # return the full URL from the array. - if [[ -n ${TOOLCHAIN_PATCH_DEV} ]] ; then - local devspace_url=${devspace_urls[${TOOLCHAIN_PATCH_DEV}]} - if [[ -n ${devspace_url} ]] ; then - local devspace_url_exp=${devspace_url//HTTP/https:\/\/dev.gentoo.org\/} - devspace_url_exp=${devspace_url_exp//URI/$1} - echo ${devspace_url_exp} - return - fi - fi - - # But we keep the old fallback list for compatibility with - # older ebuilds (overlays etc). - local devspace=" - HTTP~soap/distfiles/URI - HTTP~sam/distfiles/URI - HTTP~sam/distfiles/sys-devel/gcc/URI - HTTP~tamiko/distfiles/URI - HTTP~zorry/patches/gcc/URI - HTTP~vapier/dist/URI - HTTP~blueness/dist/URI - " - devspace=${devspace//HTTP/https:\/\/dev.gentoo.org\/} - echo ${devspace//URI/$1} mirror://gentoo/$1 -} - # This function handles the basics of setting the SRC_URI for a gcc ebuild. # To use, set SRC_URI with: # @@ -586,9 +539,9 @@ get_gcc_src_uri() { fi [[ -n ${PATCH_VER} ]] && \ - GCC_SRC_URI+=" $(gentoo_urls gcc-${PATCH_GCC_VER}-patches-${PATCH_VER}.tar.${TOOLCHAIN_PATCH_SUFFIX})" + GCC_SRC_URI+=" https://distfiles.gentoo.org/pub/proj/toolchain/gcc/patches/gcc-${PATCH_GCC_VER}-patches-${PATCH_VER}.tar.${TOOLCHAIN_PATCH_SUFFIX}" [[ -n ${MUSL_VER} ]] && \ - GCC_SRC_URI+=" $(gentoo_urls gcc-${MUSL_GCC_VER}-musl-patches-${MUSL_VER}.tar.${TOOLCHAIN_PATCH_SUFFIX})" + GCC_SRC_URI+=" https://distfiles.gentoo.org/pub/proj/toolchain/gcc/patches/gcc-${MUSL_GCC_VER}-musl-patches-${MUSL_VER}.tar.${TOOLCHAIN_PATCH_SUFFIX}" [[ -n ${TOOLCHAIN_HAS_TESTS} ]] && \ GCC_SRC_URI+=" test? ( https://gitweb.gentoo.org/proj/gcc-patches.git/plain/scripts/testsuite-management/validate_failures.py?id=${GCC_VALIDATE_FAILURES_VERSION} -> gcc-validate-failures-${GCC_VALIDATE_FAILURES_VERSION}.py )" @@ -1214,7 +1167,7 @@ toolchain_src_configure() { downgrade_arch_flags gcc_do_filter_flags - if [[ ${PN} != kgcc64 && ${PN} != gcc-* ]] && tc_version_is_at_least 13.3.1_p20250522 ${PV}; then + if [[ ${PN} != kgcc64 && ${PN} != gcc-* ]] && tc_version_is_at_least 11.5 ${PV}; then append-cppflags "-D_GENTOO_TIME64_FORCE=$(usex time64 1 0)" fi @@ -1223,6 +1176,12 @@ toolchain_src_configure() { export ac_cv_std_swap_in_utility=no fi + if is_go && [[ -f "${ESYSROOT}/usr/$(get_libdir)/libruntime.so" ]] ; then + # https://gcc.gnu.org/PR121877 (bug #972774) + export lt_cv_prog_compiler_c_o_GO=yes + export lt_cv_prog_compiler_pic_works_GO=yes + fi + local flag for flag in $(all-flag-vars) ; do [[ -n ${!flag} ]] && einfo "${flag}=\"${!flag}\"" @@ -2354,8 +2313,10 @@ gcc_do_make() { # We have a very good host compiler but it may be a bit too good, and # know about flags that the version we are compiling does not know # about. In principle we could check e.g. which gnat1 we are using as - # a bootstrap. It's simpler to do it unconditionally for now. - elif _tc_use_if_iuse ada || _tc_use_if_iuse d ; then + # a bootstrap. It's simpler to do it unconditionally for now, with + # the exception of when we're bootstrapping the same version we're + # building with. + elif ! { tc_use_major_version_only && ver_test $(gcc-major-version) -eq ${SLOT} ; } && { _tc_use_if_iuse ada || _tc_use_if_iuse d ; } ; then einfo "Resetting STAGE1_*FLAGS to -O2 for Ada/D bootstrapping" STAGE1_CFLAGS="-O2" STAGE1_CXXFLAGS="-O2" diff --git a/sdk_container/src/third_party/portage-stable/eclass/udev.eclass b/sdk_container/src/third_party/portage-stable/eclass/udev.eclass index 7d1c213fa64..38d879aca91 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/udev.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/udev.eclass @@ -130,3 +130,15 @@ udev_reload() { } fi + +# @FUNCTION: udev_hwdb_update +# @DESCRIPTION: +# Rebuild the systemd hwdb binary database used by udev for hardware +# property lookups. Should be called from pkg_postinst and pkg_postrm +# in packages installing hwdb files. +udev_hwdb_update() { + type systemd-hwdb &>/dev/null || return 0 + ebegin "Running systemd-hwdb update to regenerate binary udev hardware database" + systemd-hwdb update --root "${ROOT}" + eend $? +} diff --git a/sdk_container/src/third_party/portage-stable/eclass/vala.eclass b/sdk_container/src/third_party/portage-stable/eclass/vala.eclass new file mode 100644 index 00000000000..e29ac7e0012 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/eclass/vala.eclass @@ -0,0 +1,188 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# @ECLASS: vala.eclass +# @MAINTAINER: +# gnome@gentoo.org +# @AUTHOR: +# Alexandre Rostovtsev +# @SUPPORTED_EAPIS: 7 8 +# @BLURB: Sets up the environment for using a specific version of vala. +# @DESCRIPTION: +# This eclass sets up commonly used environment variables for using a specific +# version of dev-lang/vala to configure and build a package. It is needed for +# packages whose build systems assume the existence of certain unversioned vala +# executables, pkgconfig files, etc., which Gentoo does not provide. + +case ${EAPI} in + 7|8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; +esac + +if [[ -z ${_VALA_ECLASS} ]] ; then +_VALA_ECLASS=1 + +inherit flag-o-matic + +# @ECLASS_VARIABLE: VALA_MIN_API_VERSION +# @DESCRIPTION: +# Minimum vala API version (e.g. 0.56). +VALA_MIN_API_VERSION=${VALA_MIN_API_VERSION:-0.56} + +# @ECLASS_VARIABLE: VALA_MAX_API_VERSION +# @DESCRIPTION: +# Maximum vala API version (e.g. 0.56). +VALA_MAX_API_VERSION=${VALA_MAX_API_VERSION:-0.56} + +# @ECLASS_VARIABLE: VALA_USE_DEPEND +# @DEFAULT_UNSET +# @DESCRIPTION: +# USE dependencies that vala must be built with (e.g. vapigen). + +# @FUNCTION: vala_api_versions +# @DESCRIPTION: +# Outputs a list of vala API versions from VALA_MAX_API_VERSION down to +# VALA_MIN_API_VERSION. +vala_api_versions() { + [[ ${VALA_MIN_API_VERSION} =~ ^0\.[[:digit:]]+$ ]] || die "Invalid syntax of VALA_MIN_API_VERSION" + [[ ${VALA_MAX_API_VERSION} =~ ^0\.[[:digit:]]+$ ]] || die "Invalid syntax of VALA_MAX_API_VERSION" + + local minimal_supported_minor_version minor_version + + # Dependency atoms are not generated for Vala versions older than 0.${minimal_supported_minor_version}. + minimal_supported_minor_version="56" + + for ((minor_version = ${VALA_MAX_API_VERSION#*.}; minor_version >= ${VALA_MIN_API_VERSION#*.}; minor_version = minor_version - 2)); do + if ((minor_version >= minimal_supported_minor_version)); then + echo "0.${minor_version}" + fi + done +} + +# @FUNCTION: _vala_use_depend +# @INTERNAL +# @DESCRIPTION: +# Outputs VALA_USE_DEPEND as a a USE-dependency string +_vala_use_depend() { + local u="" vala_use + + if [[ -n ${VALA_USE_DEPEND} ]]; then + for vala_use in ${VALA_USE_DEPEND}; do + case ${vala_use} in + vapigen) u="${u},${vala_use}(+)" ;; + valadoc) u="${u},${vala_use}(-)" ;; + esac + done + u="[${u#,}]" + fi + + echo -n "${u}" +} + +# @FUNCTION: vala_depend +# @DESCRIPTION: +# Outputs a ||-dependency string on vala from VALA_MAX_API_VERSION down to +# VALA_MIN_API_VERSION +vala_depend() { + local u v + u=$(_vala_use_depend) + + echo -n "|| (" + for v in $(vala_api_versions); do + echo -n " dev-lang/vala:${v}${u}" + done + echo " )" +} + +# @FUNCTION: vala_best_api_version +# @DESCRIPTION: +# Returns the highest installed vala API version satisfying +# VALA_MAX_API_VERSION, VALA_MIN_API_VERSION, and VALA_USE_DEPEND. +vala_best_api_version() { + local u v + + u=$(_vala_use_depend) + + for v in $(vala_api_versions); do + has_version -b "dev-lang/vala:${v}${u}" && echo "${v}" && return + done +} + +# @FUNCTION: vala_setup +# @USAGE: [--ignore-use] [--vala-api-version api_version] +# @DESCRIPTION: +# Sets up the environment variables and pkgconfig files for the +# specified API version, or, if no version is specified, for the +# highest installed vala API version satisfying +# VALA_MAX_API_VERSION, VALA_MIN_API_VERSION, and VALA_USE_DEPEND. +# Is a no-op if called without --ignore-use when USE=-vala. +# Dies if the USE check is passed (or ignored) and a suitable vala +# version is not available. +vala_setup() { + local p d valafoo version ignore_use + + while [[ $1 ]]; do + case $1 in + "--ignore-use" ) + ignore_use=1 ;; + "--vala-api-version" ) + shift + version=$1 + [[ ${version} ]] || die "'--vala-api-version' option requires API version parameter." + esac + shift + done + + if [[ -z ${ignore_use} ]]; then + in_iuse vala && ! use vala && return 0 + fi + + if [[ ${version} ]]; then + has_version -b "dev-lang/vala:${version}" || die "No installed vala:${version}" + else + version=$(vala_best_api_version) + [[ ${version} ]] || die "No installed vala in $(vala_depend)" + fi + + export VALAC=$(type -P valac-${version}) + export VALAC_FOR_BUILD="${VALAC}" # For Meson. + + valafoo=$(type -P vala-gen-introspect-${version}) + [[ ${valafoo} ]] && export VALA_GEN_INTROSPECT="${valafoo}" + + valafoo=$(type -P vapigen-${version}) + [[ ${valafoo} ]] && export VAPIGEN="${valafoo}" + + valafoo=$(type -P valadoc-${version}) + [[ ${valafoo} ]] && has valadoc ${VALA_USE_DEPEND} && export VALADOC="${valafoo}" + + valafoo="${EPREFIX}/usr/share/vala/Makefile.vapigen" + [[ -e ${valafoo} ]] && export VAPIGEN_MAKEFILE="${valafoo}" + + export VAPIGEN_VAPIDIR="${EPREFIX}/usr/share/vala/vapi" + + mkdir -p "${T}/pkgconfig" || die "mkdir failed" + for p in libvala vapigen; do + for d in "${EPREFIX}/usr/$(get_libdir)/pkgconfig" "${EPREFIX}/usr/share/pkgconfig"; do + if [[ -e ${d}/${p}-${version}.pc ]]; then + ln -s "${d}/${p}-${version}.pc" "${T}/pkgconfig/${p}.pc" || die "ln failed" + break + fi + done + done + : "${PKG_CONFIG_PATH:="${EPREFIX}/usr/$(get_libdir)/pkgconfig:${EPREFIX}/usr/share/pkgconfig"}" + export PKG_CONFIG_PATH="${T}/pkgconfig:${PKG_CONFIG_PATH}" + + # See bug #892708. + # Workaround for https://gitlab.gnome.org/GNOME/vala/-/issues/1408. + append-cflags $(test-flags-CC -Wno-incompatible-pointer-types) +} + +# @FUNCTION: vala_src_prepare +# @DESCRIPTION: +# For backwards compatibility in EAPI 7. Calls vala_setup. +if [[ ${EAPI} == 7 ]]; then + vala_src_prepare() { vala_setup "$@"; } +fi + +fi diff --git a/sdk_container/src/third_party/portage-stable/licenses/CDLA-Permissive-2.0 b/sdk_container/src/third_party/portage-stable/licenses/CDLA-Permissive-2.0 new file mode 100644 index 00000000000..33aa196d683 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/licenses/CDLA-Permissive-2.0 @@ -0,0 +1,61 @@ +Community Data License Agreement - Permissive - Version 2.0 + +This is the Community Data License Agreement - Permissive, Version 2.0 +(the "agreement"). Data Provider(s) and Data Recipient(s) agree as +follows: + +1. Provision of the Data + +1.1. A Data Recipient may use, modify, and share the Data made available +by Data Provider(s) under this agreement if that Data Recipient follows +the terms of this agreement. + +1.2. This agreement does not impose any restriction on a Data +Recipient's use, modification, or sharing of any portions of the Data +that are in the public domain or that may be used, modified, or shared +under any other legal exception or limitation. + +2. Conditions for Sharing Data + +2.1. A Data Recipient may share Data, with or without modifications, so +long as the Data Recipient makes available the text of this agreement +with the shared Data. + +3. No Restrictions on Results + +3.1. This agreement does not impose any restriction or obligations with +respect to the use, modification, or sharing of Results. + +4. No Warranty; Limitation of Liability + +4.1. All Data Recipients receive the Data subject to the following +terms: + +THE DATA IS PROVIDED ON AN "AS IS" BASIS, WITHOUT REPRESENTATIONS, +WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED +INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, +NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +NO DATA PROVIDER SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING +WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE DATA OR RESULTS, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +5. Definitions + +5.1. "Data" means the material received by a Data Recipient under this +agreement. + +5.2. "Data Provider" means any person who is the source of Data provided +under this agreement and in reliance on a Data Recipient's agreement to +its terms. + +5.3. "Data Recipient" means any person who receives Data directly or +indirectly from a Data Provider and agrees to the terms of this +agreement. + +5.4. "Results" means any outcome obtained by computational analysis of +Data, including for example machine learning models and models' +insights. diff --git a/sdk_container/src/third_party/portage-stable/licenses/GPL-2+-with-eCos-exception-2 b/sdk_container/src/third_party/portage-stable/licenses/GPL-2+-with-eCos-exception-2 deleted file mode 100644 index e5cceeaf5f2..00000000000 --- a/sdk_container/src/third_party/portage-stable/licenses/GPL-2+-with-eCos-exception-2 +++ /dev/null @@ -1,12 +0,0 @@ -GNU General Public License, version 2 or any later version. -See GPL-2 or GPL-3 for the full text of these licenses. - -As a special exception, if other files instantiate templates or use macros or -inline functions from this file, or you compile this file and link it with -other works to produce a work based on this file, this file does not by itself -cause the resulting work to be covered by the GNU General Public License. -However the source code for this file must still be made available in -accordance with section (3) of the GNU General Public License v2. - -This exception does not invalidate any other reasons why a work based on this -file might be covered by the GNU General Public License. diff --git a/sdk_container/src/third_party/portage-stable/licenses/NVIDIA-2025 b/sdk_container/src/third_party/portage-stable/licenses/NVIDIA-2025 deleted file mode 100644 index eebf02d403f..00000000000 --- a/sdk_container/src/third_party/portage-stable/licenses/NVIDIA-2025 +++ /dev/null @@ -1,416 +0,0 @@ -NVIDIA Driver License Agreement - -IMPORTANT NOTICE - PLEASE READ AND AGREE BEFORE USING THE SOFTWARE. - -This license agreement ("Agreement") is a legal agreement between you, whether -an individual or entity ("you") and NVIDIA Corporation ("NVIDIA") and governs -your use of the NVIDIA driver, and any additional software and materials -provided (the "SOFTWARE"). - -If you don't have the required age or authority to enter into this Agreement or -if you don't accept all the terms below, do not use the SOFTWARE. - -You agree to use the SOFTWARE only for purposes that are permitted by this -Agreement and any applicable law or regulation in the relevant jurisdictions. - -1. License. - -1.1 Subject to the terms of this Agreement, NVIDIA grants you a non-exclusive, -revocable, non-transferable and non-sublicensable (except as expressly provided -in this Agreement) license to: - -a. Install and use copies of the SOFTWARE, - -b. Modify and create derivative works of any portion of the SOFTWARE delivered -by NVIDIA in source code format, - -c. Deploy, for your own use, the SOFTWARE on infrastructure you own or lease, -and - -d. Distribute the SOFTWARE provided for use with operating system kernels -distributed under the terms of an OSI-approved open source license as listed by -the Open Source Initiative at http://opensource.org, provided that (i) the -binary files thereof are not modified in any way (except for uncompressing of -compressed files) and (ii) this Agreement is provided to each SOFTWARE -recipient. - -2. Limitations. - -The following license limitations apply to your use of the SOFTWARE: - -2.1 The SOFTWARE is only licensed for use in conjunction with microprocessor(s), -SoCs, and GPUs which have been (i) designed by NVIDIA and/or its affiliates and -(ii) sold (directly or indirectly) by NVIDIA and/or its affiliates ("NVIDIA -Platform"). You may only use firmware in NVIDIA Platforms. You may not translate -firmware, nor cause or permit firmware to be translated, from the architecture -or language in which it is originally provided by NVIDIA, into any other -architecture or language. - -2.2 You may not reverse engineer, decompile, or disassemble the SOFTWARE -provided in binary form, nor attempt in any other manner to obtain source code -of such SOFTWARE. - -2.3 You may not modify or create derivative works of the SOFTWARE provided in -binary form. - -2.4 You may not distribute any modified header files. - -2.5 You may not change or remove copyright or other proprietary notices in the -SOFTWARE, or misrepresent the authorship of the SOFTWARE, and you must cause any -modified files to carry prominent notices stating that you changed the files -such that modifications are not misrepresented as an original SOFTWARE. - -2.6 You may not bypass, disable, or circumvent any technical limitation, -encryption, security, digital rights management or authentication mechanism in -the SOFTWARE. - -2.7 Except as expressly granted in this Agreement, you may not sell, rent, -sublicense, distribute or transfer the SOFTWARE or provide commercial hosting -services with the SOFTWARE. - -2.8 You agree that GeForce or Titan SOFTWARE: (i) is licensed for use only on -GeForce or Titan hardware products you own, and (ii) is not licensed for -datacenter deployment. - -2.9 You may not use the SOFTWARE in any manner that would cause it to become -subject to an open source software license, subject to the terms in the -"Components Under Other Licenses" section below. - -2.10 You acknowledge that the SOFTWARE as delivered is not tested or certified -by NVIDIA for use in any system or application where the use of or failure of -such system or application developed with the SOFTWARE could result in injury, -death or catastrophic damage (each, a "Critical Application"). Examples of -Critical Applications include use in avionics, navigation, autonomous vehicle -applications, automotive products, military, medical, life support or other life -critical applications. NVIDIA will not be liable to you or any third party, in -whole or in part, for any claims or damages arising from these uses. You are -solely responsible for ensuring that systems and applications developed with the -SOFTWARE include sufficient safety and redundancy features, and comply with all -applicable legal and regulatory standards and requirements. - -2.11 You agree to defend, indemnify and hold harmless NVIDIA and its affiliates, -and their respective employees, contractors, agents, officers and directors, -from and against any and all claims, damages, obligations, losses, liabilities, -costs or debt, fines, restitutions and expenses (including but not limited to -attorney's fees and costs incident to establishing the right of indemnification) -arising out of or related to products or services that have been developed with -or use the SOFTWARE (including for use in or for Critical Applications), and for -use of the SOFTWARE outside of the scope of this Agreement or not in compliance -with its terms. - -3. Authorized Users. - -You may allow employees and contractors of your entity or of your -subsidiary(ies) to access and use the SOFTWARE from your secure network to -perform the work authorized by this Agreement on your behalf. - -If you are an academic institution, you may allow users enrolled or employed by -the academic institution to access and use the SOFTWARE as authorized by this -Agreement from your secure network. - -You are responsible for the compliance with the terms of this Agreement by your -authorized users. Any act or omission that if committed by you would constitute -a breach of this Agreement will be deemed to constitute a breach of this -Agreement if committed by your authorized users. - -4. Pre-Release SOFTWARE. - -The SOFTWARE versions identified as alpha, beta, preview or otherwise as -pre-release may not be fully functional, may contain errors or design flaws, and -may have reduced or different security, privacy, accessibility and reliability -standards relative to commercial versions of NVIDIA software and materials. - -You may use pre-release SOFTWARE at your own risk, understanding that -pre-release SOFTWARE is not intended for use in production or business-critical -systems and NVIDIA may choose not to make available a commercial version of any -pre-release SOFTWARE. - -5. Support and Updates. - -NVIDIA is not obligated to support any SOFTWARE, unless there is a separate -agreement for this purpose. NVIDIA may, at its option, make available patches, -workarounds or other updates to the SOFTWARE. Unless the updates are provided -with their separate governing terms, they are deemed part of the SOFTWARE -licensed to you as provided in this Agreement. - -6. Components Under Other Licenses. - -The SOFTWARE may include or be distributed with components provided with -separate legal notices or terms that accompany the components, such as open -source software licenses and other license terms ("Other Licenses"). The -components are subject to the applicable Other Licenses, including any -proprietary notices, disclaimers, requirements and extended use rights; except -that this Agreement will prevail regarding the use of third-party open source -software, unless a third-party open source software license requires its license -terms to prevail. Open source software license means any software, data or -documentation subject to any license identified as an open source license by the -Open Source Initiative (http://opensource.org), Free Software Foundation -(http://www.fsf.org) or other similar open source organization or listed by the -Software Package Data Exchange (SPDX) Workgroup under the Linux Foundation -(http://www.spdx.org). - -You acknowledge and agree that it is your sole responsibility to obtain any -additional third-party licenses required to make, have made, use, have used, -sell, import, and offer for sale your products or services that include or -incorporate any third-party software and content, including, without limitation, -audio and/or video encoders and decoders and implementations of technical -standards. NVIDIA does not grant to you under this Agreement any necessary -patent or other rights, including standard essential patent rights, with respect -to any third-party software and content. - -7. Termination. - -This Agreement will automatically terminate without notice from NVIDIA if you -fail to comply with any of the terms in this Agreement or if you commence or -participate in any legal proceeding against NVIDIA with respect to the -SOFTWARE. Upon any termination, you must stop using and destroy all copies of -the SOFTWARE. You can terminate this Agreement whenever you want by stopping use -of the SOFTWARE and destroying all copies of the SOFTWARE. Your prior -distributions according to this Agreement are not affected by termination. All -provisions will survive termination, except for the licenses granted to you. - -8. Ownership. - -The SOFTWARE, including all intellectual property rights, is and will remain the -sole and exclusive property of NVIDIA or its licensors. Except as expressly -granted in this Agreement, (i) NVIDIA reserves all rights, interests, and -remedies in connection with the SOFTWARE, and (ii) no other license or right is -granted to you by implication, estoppel or otherwise. You agree to cooperate -with NVIDIA and provide reasonably requested information to verify your -compliance with this Agreement. - -9. Feedback. - -You may, but you are not obligated to, provide suggestions, requests, fixes, -modifications, enhancements, or other feedback regarding the SOFTWARE -(collectively, "Feedback"). Feedback, even if designated as confidential by you, -will not create any confidentiality obligation for NVIDIA or its affiliates. If -you provide Feedback, you grant NVIDIA, its affiliates and its designees a -non-exclusive, perpetual, irrevocable, sublicensable, worldwide, royalty-free, -fully paid-up and transferable license, under your intellectual property rights, -to publicly perform, publicly display, reproduce, use, make, have made, sell, -offer for sale, distribute (through multiple tiers of distribution), import, -create derivative works of and otherwise commercialize and exploit the Feedback -at NVIDIA's discretion. You will not give Feedback (i) that you have reason to -believe is subject to any restriction that impairs the exercise of the grant -stated in this section; or (ii) subject to license terms which seek to require -any product incorporating or developed using such Feedback, or other -intellectual property of NVIDIA or its affiliates, to be licensed to or -otherwise shared with any third party. - -10. Governing Law and Dispute Resolution. - -10.1 Informal Resolution. - -If you or NVIDIA have any dispute, claim or controversy arising out of or -relating to the SOFTWARE or this Agreement ("Dispute"), the parties agree to -work in good faith to resolve the Dispute informally. If you have a Dispute, you -must first contact NVIDIA and give NVIDIA an opportunity to resolve it by -contacting NVIDIA by mail at NVIDIA Corporation, ATTN: Legal, 2788 San Tomas -Expressway, Santa Clara, California, 95051. Either you or NVIDIA may seek to -have a Dispute resolved in small claims court if all the requirements of the -small claims court are satisfied. Either you or NVIDIA may seek to have a -Dispute resolved in small claims court in your county of residence or the small -claims court in closest proximity to your residence at any time before an -arbitrator is appointed, and you may also bring a Dispute in small claims court -in the Superior Court of California, County of Santa Clara. - -10.2 Binding Arbitration. - -For any Disputes that are not resolved informally or by the small claims court, -you and NVIDIA each agree to resolve any such Dispute by binding arbitration -before an arbitrator from Judicial Mediation and Arbitration Services ("JAMS") -(rules available at https://www.jamsadr.com/). Except as otherwise provided in -this section, all issues are for the arbitrator to decide, including -jurisdictional and arbitrability issues and the formation, existence, validity, -interpretation, and scope of this arbitration provision. The arbitration will be -conducted in Santa Clara County, California (or the nearest JAMS office to Santa -Clara County), unless you request an in-person hearing in your hometown or you -and NVIDIA agree otherwise. You and NVIDIA agree that the parties will arbitrate -all Disputes, remedies, and requests for relief subject to individual -arbitration first, the arbitrator will only determine issues of liability on the -merits of any claim asserted, and the arbitrator may only award declaratory or -injunctive relief in favor of the individual party seeking relief and only to -the extent necessary to provide relief warranted by that party's individual -claim. You and NVIDIA agree that any remaining unresolved Disputes, remedies, or -requests for relief may be pursued in court only after the arbitrator's award -has been issued. In any later court proceeding, the arbitrator's factual -findings will not be entitled to deference by the court. Nothing in these terms -will prevent a party from seeking injunctive or other equitable relief from the -courts in any jurisdiction to prevent the actual or threatened violation of that -party's data security, intellectual property rights, or other proprietary -rights. If for any reason this Section 10.2 is unenforceable concerning any -Dispute, and a Dispute proceeds in a court of general jurisdiction, the Dispute -will be exclusively brought in state or federal court located in Santa Clara -County, California. - -10.3 Class Action, Representative Action, & Jury Trial Waiver. - -All Disputes must be brought by a party in its individual capacity, and not as a -plaintiff or class member in any purported class or representative -proceeding. You and NVIDIA agree to waive the right to a jury trial, participate -in class action lawsuits, class-wide arbitrations, any collective, consolidated, -or other proceeding or request for relief where someone acts in a representative -capacity. - -10.4 Right to Opt-Out. - -You may opt-out of the foregoing jury trial, class action, arbitration, and -collective or consolidated proceeding waiver provision by notifying NVIDIA in -writing within 30 days of commencement of use of the SOFTWARE, within 30 days of -the effective date of this Agreement, or within 30 days of any future change -NVIDIA may make to this Section 10.4. Such written notification must be sent by -mail to NVIDIA Corporation, Attn: Legal, 2788 San Tomas Expressway, Santa Clara, -California, 95051 and must include (1) your name, (2) your address, (3) the -reference to NVIDIA drivers as the software to which the notice relates, and (4) -a clear statement indicating that you do not wish to resolve disputes through -arbitration and demonstrating compliance with the 30-day time limit to -opt-out. Any opt-out notification received after the opt-out deadline or not -including the required items noted in (1)-(4) in the preceding sentence will not -be valid and you will be required to pursue your Dispute in arbitration or small -claims court. Opting out of this dispute resolution procedure will not affect -the terms and conditions of this Agreement, which still apply to you. If you -opt-out of any future change NVIDIA may make to this Section 10.4, the most -recent version of Section 10.4 before the change you rejected will apply. - -10.5 Governing Law. - -You and NVIDIA each agree that all Disputes will be governed by the Federal -Arbitration Act, in addition to the internal substantive laws of the State of -Delaware and the United States, without regard to or application of its conflict -of laws rules or principles. The United Nations Convention on Contracts for the -International Sale of Goods is expressly disclaimed. Any translation of this -Agreement is done for local requirements and, if there is a dispute between the -English and any non-English versions, you and NVIDIA agree that the English -version of this Agreement will govern to the extent not prohibited by local law -in your jurisdiction. - -11. Disclaimer of Warranties. - -THE SOFTWARE IS PROVIDED BY NVIDIA AS-IS AND WITH ALL FAULTS. TO THE FULLEST -EXTENT PERMITTED BY APPLICABLE LAW, NVIDIA DISCLAIMS ALL WARRANTIES AND -REPRESENTATIONS OF ANY KIND, WHETHER EXPRESS, IMPLIED OR STATUTORY, RELATING TO -OR ARISING UNDER THIS AGREEMENT, INCLUDING, WITHOUT LIMITATION, THE WARRANTIES -OF TITLE, NONINFRINGEMENT, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, -USAGE OF TRADE AND COURSE OF DEALING. WITHOUT LIMITING THE FOREGOING, NVIDIA -DOES NOT WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS; THAT ANY DEFECTS -OR ERRORS WILL BE CORRECTED; THAT ANY CERTAIN CONTENT WILL BE AVAILABLE; OR THAT -THE SOFTWARE IS FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS. - -In addition, you agree that you are solely responsible for maintaining -appropriate data backups and system restore points for systems that include the -SOFTWARE, and that NVIDIA will have no responsibility for any damage or loss to -such systems (including loss of data or access) arising from or relating to (a) -any changes to the configuration, application settings, environment variables, -registry, drivers, BIOS, or other attributes of the system (or any part of such -system) initiated through the SOFTWARE; or (b) installation of any SOFTWARE or -third party software patches through the NVIDIA update service. - -NO INFORMATION OR ADVICE GIVEN BY NVIDIA WILL IN ANY WAY INCREASE THE SCOPE OF -ANY WARRANTY EXPRESSLY PROVIDED IN THIS AGREEMENT. You are responsible for -checking that a SOFTWARE version is the appropriate one for your NVIDIA product -model, operating system, and computer hardware. - -12. Limitations of Liability. - -TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL NVIDIA BE -LIABLE FOR ANY (I) INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL OR CONSEQUENTIAL -DAMAGES, OR (II) DAMAGES FOR (A) THE COST OF PROCURING SUBSTITUTE GOODS, OR (B) -LOSS OF PROFITS, REVENUES, USE, DATA OR GOODWILL ARISING OUT OF OR RELATED TO -THIS AGREEMENT, WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING -NEGLIGENCE), STRICT LIABILITY, OR OTHERWISE, AND EVEN IF NVIDIA HAS BEEN ADVISED -OF THE POSSIBILITY OF SUCH DAMAGES AND EVEN IF A PARTY'S REMEDIES FAIL THEIR -ESSENTIAL PURPOSE. - -ADDITIONALLY, TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, NVIDIA'S TOTAL -CUMULATIVE AGGREGATE LIABILITY FOR ANY AND ALL LIABILITIES, OBLIGATIONS OR -CLAIMS ARISING OUT OF OR RELATED TO THIS AGREEMENT WILL NOT EXCEED FIVE -U.S. DOLLARS (US$5). - -13. Data Collection. - -If you are using the SOFTWARE on a Windows operating system, you hereby -acknowledge that at the time of SOFTWARE installation, NVIDIA will access and -collect data to: (a) properly configure and optimize the system for use with the -SOFTWARE; (b) deliver content or service through SOFTWARE; and (c) improve -NVIDIA products and services. Information collected may include configuration -data such as GPU and CPU, and operating system. - -The SOFTWARE may contain links to third party websites and services. NVIDIA -encourages you to review the privacy statements on those sites and services that -you choose to visit to understand how they may collect, use and share your -data. NVIDIA is not responsible for the privacy statements or practices of third -party sites or services. - -Please review the NVIDIA Privacy Policy, located at -https://www.nvidia.com/en-us/about-nvidia/privacy-policy, which explains -NVIDIA's policy for collecting and using data. - -14. Assignment. - -NVIDIA may assign, delegate or transfer its rights or obligations under this -Agreement by any means or operation of law. You may not, without NVIDIA's prior -written consent, assign, delegate or transfer any of its rights or obligations -under this Agreement by any means or operation of law, and any attempt to do so -is null and void. - -15. Trade Compliance. - -You agree to comply with all applicable export, import, trade and economic -sanctions laws and regulations, including U.S. Export Administration -Regulations and Office of Foreign Assets Control regulations. These laws include -restrictions on destinations, end-users and end-use. - -16. Government Use. - -The SOFTWARE, including related documentation ("Protected Items") is a -"Commercial product" as this term is defined at 48 C.F.R. 2.101, consisting of -"commercial computer software" and "commercial computer software documentation" -as such terms are used in, respectively, 48 C.F.R. 12.212 and 48 C.F.R. 227.7202 -& 252.227-7014(a)(1). Before any Protected Items are supplied to the -U.S. Government, you will (i) inform the U.S. Government in writing that the -Protected Items are and must be treated as commercial computer software and -commercial computer software documentation developed at private expense; (ii) -inform the U.S. Government that the Protected Items are provided subject to the -terms of this Agreement; and (iii) mark the Protected Items as commercial -computer software and commercial computer software documentation developed at -private expense. In no event will you permit the U.S. Government to acquire -rights in Protected Items beyond those specified in 48 -C.F.R. 52.227-19(b)(1)-(2) or 252.227-7013(c) except as expressly approved by -NVIDIA in writing. - -17. Notices. - -Please direct your legal notices or other correspondence to NVIDIA Corporation, -2788 San Tomas Expressway, Santa Clara, California 95051, United States of -America, Attention: Legal Department. If NVIDIA needs to contact you about the -SOFTWARE, you consent to receive the notices by email and that such notices will -satisfy any legal communication requirements. - -18. Entire Agreement. - -Regarding the subject matter of this Agreement, the parties agree that (i) this -Agreement constitutes the entire and exclusive agreement between the parties and -supersedes all prior and contemporaneous communications and (ii) any additional -or different terms or conditions, whether contained in purchase orders, order -acknowledgments, invoices or otherwise, will not be binding on the receiving -party and are null and void. This Agreement may only be modified in a writing -signed by an authorized representative of each party. - -If a court of competent jurisdiction rules that a provision of this Agreement is -unenforceable, that provision will be deemed modified to the extent necessary to -make it enforceable and the remainder of this Agreement will continue in full -force and effect. - -19. No Waiver. - -No failure or delay by a party to enforce any Agreement term or obligation will -operate as a waiver by that party, or prevent the enforcement of such term or -obligation later. - -20. Licensing. - -For any questions regarding this Agreement, please contact NVIDIA at -driver-licensing@nvidia.com - -(v. February 25, 2025) diff --git a/sdk_container/src/third_party/portage-stable/licenses/metapackage b/sdk_container/src/third_party/portage-stable/licenses/metapackage deleted file mode 100644 index c8318394935..00000000000 --- a/sdk_container/src/third_party/portage-stable/licenses/metapackage +++ /dev/null @@ -1,6 +0,0 @@ -This is a metapackage that (itself) installs no files, therefore no -license is needed. - -This does not in any way imply under which licenses the packages in it -are distributed. Check the metapackage's dependencies for their actual -license terms. diff --git a/sdk_container/src/third_party/portage-stable/media-libs/libpng/Manifest b/sdk_container/src/third_party/portage-stable/media-libs/libpng/Manifest index 92b98be5bf4..0388c8d44ba 100644 --- a/sdk_container/src/third_party/portage-stable/media-libs/libpng/Manifest +++ b/sdk_container/src/third_party/portage-stable/media-libs/libpng/Manifest @@ -1,2 +1,5 @@ DIST libpng-1.6.54-libpng-apng-apng.patch.gz 10604 BLAKE2B 8202b80755e6c18227e89567cdb087ac79b4f72862d9a23e29f1271310af4bcb4783a52090e1479724bd9c088a13a7a4e2f2cbda2e958e2c3180619b20ec8a1b SHA512 217449d76fab45707a696ee5926039c6091196abfc33b4e3bec0a5f63d5b17fd4a7e48af41c4cc2536edc527837dc10fe718092d5b1ffc89ee4dc66883e7267a DIST libpng-1.6.55.tar.xz 1064676 BLAKE2B 2fd88e6e9f4e72edbafbfdd6d8e78522033920a250f8cb37f29ba8e9593cdf006b06f4e73de4e83fc5ddaaa3725362f27f5a16727ae841fd8969b74f28517ec4 SHA512 a9846fc32cb042bcce05f719a5b31255957e1c36ad6ad14dd23cf5eac3ce0b981dc5c34b18dc255e1fffc2cc064d0a77e3a1beb3c7167a0bdc3e1d0103383b4a +DIST libpng-1.6.56.tar.xz 1067028 BLAKE2B f653a3177e0910fc156a792d5522fc2a0c04ce0bb43eabb68e06922303dcf6062d8f9b570440bfe1a94ac1b901ef6e9c32b6882d0f4a406e5a9090ea3396f89a SHA512 e405c46d7c9cf8c6c9fb6cf35b7e8498bb863bb24a918f4a6b1aca9f1e61d8b9feb46cb67a5478b6d87da74b2baf1d1f25c43889866408fc23c0ac498094081f +DIST libpng-1.6.57.tar.xz 1069484 BLAKE2B 7aa96c8aeb829f3aa59040b17b8a52e07c7d2792fd659ca69a2e3e27d902d5c26f2462177e114a958c6720a95f60a7d0fab0a65a1357207d711fa847f2632f26 SHA512 9e7a691b96dd2c2c2ab66666685685a6c29824653aa85b15e764ff4afcebf02cfe776d58881a88d91e9cf60b11958079c923e2ea16bc5374b01a7f3edf56a71d +DIST libpng-1.6.58.tar.xz 1070096 BLAKE2B 51042e8f2b56d469b516db9cbde6d4b6813a62d1b7117898ba32a9a5ac5cd73832c627d7377745e5d5154aade6ec6928fc6b9cd9b96885f64b7ca7df19ca40ec SHA512 5937d6409d7ad564c9dba7969c5d39eea8bbc01936f433bf5936c872ec290dea353783f89bded91e124b3b3b15518320097de365acd3b0bcc922a0e90c94adc8 diff --git a/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.56.ebuild b/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.56.ebuild new file mode 100644 index 00000000000..b446031fc7e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.56.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a libtool multilib-minimal + +APNG_REPO=libpng-apng # sometimes libpng-apng is more up to date +APNG_VERSION="1.6.54" +DESCRIPTION="Portable Network Graphics library" +HOMEPAGE="https://www.libpng.org/" +SRC_URI=" + https://downloads.sourceforge.net/${PN}/${P}.tar.xz + apng? ( + https://downloads.sourceforge.net/${APNG_REPO}/${PN}$(ver_rs 1-2 '' $(ver_cut 1-2 ${APNG_VERSION}))/${PV}/${PN}-${APNG_VERSION}-apng.patch.gz -> ${PN}-${APNG_VERSION}-${APNG_REPO}-apng.patch.gz + https://downloads.sourceforge.net/${APNG_REPO}/${PN}$(ver_rs 1-2 '' $(ver_cut 1-2 ${APNG_VERSION}))/${PN}-${APNG_VERSION}-apng.patch.gz -> ${PN}-${APNG_VERSION}-${APNG_REPO}-apng.patch.gz + ) +" + +LICENSE="libpng2" +SLOT="0/16" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="apng cpu_flags_x86_sse static-libs test" +RESTRICT="!test? ( test )" + +RDEPEND=">=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}]" +DEPEND=" + ${RDEPEND} + riscv? ( sys-kernel/linux-headers ) +" + +DOCS=( ANNOUNCE CHANGES libpng-manual.txt README TODO ) + +src_prepare() { + default + + if use apng; then + case ${APNG_REPO} in + apng) + eapply -p0 "${WORKDIR}"/${PN}-${APNG_VERSION}-${APNG_REPO}-apng.patch + ;; + libpng-apng) + eapply "${WORKDIR}"/${PN}-${APNG_VERSION}-${APNG_REPO}-apng.patch + ;; + *) + die "Unknown APNG_REPO!" + ;; + esac + + # Don't execute symbols check with apng patch, bug #378111 + sed -i -e '/^check/s:scripts/symbols.chk::' Makefile.in || die + fi + + elibtoolize +} + +src_configure() { + lto-guarantee-fat + multilib-minimal_src_configure +} + +multilib_src_configure() { + local myeconfargs=( + $(multilib_native_enable tools) + $(use_enable test tests) + $(use_enable cpu_flags_x86_sse intel-sse) + $(use_enable static-libs static) + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_install_all() { + default + + strip-lto-bytecode + find "${ED}" \( -type f -o -type l \) -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.57.ebuild b/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.57.ebuild new file mode 100644 index 00000000000..f96018defa3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.57.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a libtool multilib-minimal + +APNG_REPO=libpng-apng # sometimes libpng-apng is more up to date +APNG_VERSION="1.6.54" +DESCRIPTION="Portable Network Graphics library" +HOMEPAGE="https://www.libpng.org/" +SRC_URI=" + https://downloads.sourceforge.net/${PN}/${P}.tar.xz + apng? ( + https://downloads.sourceforge.net/${APNG_REPO}/${PN}$(ver_rs 1-2 '' $(ver_cut 1-2 ${APNG_VERSION}))/${PV}/${PN}-${APNG_VERSION}-apng.patch.gz -> ${PN}-${APNG_VERSION}-${APNG_REPO}-apng.patch.gz + https://downloads.sourceforge.net/${APNG_REPO}/${PN}$(ver_rs 1-2 '' $(ver_cut 1-2 ${APNG_VERSION}))/${PN}-${APNG_VERSION}-apng.patch.gz -> ${PN}-${APNG_VERSION}-${APNG_REPO}-apng.patch.gz + ) +" + +LICENSE="libpng2" +SLOT="0/16" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="apng cpu_flags_x86_sse static-libs test" +RESTRICT="!test? ( test )" + +RDEPEND=">=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}]" +DEPEND=" + ${RDEPEND} + riscv? ( sys-kernel/linux-headers ) +" + +DOCS=( ANNOUNCE CHANGES libpng-manual.txt README TODO ) + +src_prepare() { + default + + if use apng; then + case ${APNG_REPO} in + apng) + eapply -p0 "${WORKDIR}"/${PN}-${APNG_VERSION}-${APNG_REPO}-apng.patch + ;; + libpng-apng) + eapply "${WORKDIR}"/${PN}-${APNG_VERSION}-${APNG_REPO}-apng.patch + ;; + *) + die "Unknown APNG_REPO!" + ;; + esac + + # Don't execute symbols check with apng patch, bug #378111 + sed -i -e '/^check/s:scripts/symbols.chk::' Makefile.in || die + fi + + elibtoolize +} + +src_configure() { + lto-guarantee-fat + multilib-minimal_src_configure +} + +multilib_src_configure() { + local myeconfargs=( + $(multilib_native_enable tools) + $(use_enable test tests) + $(use_enable cpu_flags_x86_sse intel-sse) + $(use_enable static-libs static) + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_install_all() { + default + + strip-lto-bytecode + find "${ED}" \( -type f -o -type l \) -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.58.ebuild b/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.58.ebuild new file mode 100644 index 00000000000..b446031fc7e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.58.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a libtool multilib-minimal + +APNG_REPO=libpng-apng # sometimes libpng-apng is more up to date +APNG_VERSION="1.6.54" +DESCRIPTION="Portable Network Graphics library" +HOMEPAGE="https://www.libpng.org/" +SRC_URI=" + https://downloads.sourceforge.net/${PN}/${P}.tar.xz + apng? ( + https://downloads.sourceforge.net/${APNG_REPO}/${PN}$(ver_rs 1-2 '' $(ver_cut 1-2 ${APNG_VERSION}))/${PV}/${PN}-${APNG_VERSION}-apng.patch.gz -> ${PN}-${APNG_VERSION}-${APNG_REPO}-apng.patch.gz + https://downloads.sourceforge.net/${APNG_REPO}/${PN}$(ver_rs 1-2 '' $(ver_cut 1-2 ${APNG_VERSION}))/${PN}-${APNG_VERSION}-apng.patch.gz -> ${PN}-${APNG_VERSION}-${APNG_REPO}-apng.patch.gz + ) +" + +LICENSE="libpng2" +SLOT="0/16" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="apng cpu_flags_x86_sse static-libs test" +RESTRICT="!test? ( test )" + +RDEPEND=">=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}]" +DEPEND=" + ${RDEPEND} + riscv? ( sys-kernel/linux-headers ) +" + +DOCS=( ANNOUNCE CHANGES libpng-manual.txt README TODO ) + +src_prepare() { + default + + if use apng; then + case ${APNG_REPO} in + apng) + eapply -p0 "${WORKDIR}"/${PN}-${APNG_VERSION}-${APNG_REPO}-apng.patch + ;; + libpng-apng) + eapply "${WORKDIR}"/${PN}-${APNG_VERSION}-${APNG_REPO}-apng.patch + ;; + *) + die "Unknown APNG_REPO!" + ;; + esac + + # Don't execute symbols check with apng patch, bug #378111 + sed -i -e '/^check/s:scripts/symbols.chk::' Makefile.in || die + fi + + elibtoolize +} + +src_configure() { + lto-guarantee-fat + multilib-minimal_src_configure +} + +multilib_src_configure() { + local myeconfargs=( + $(multilib_native_enable tools) + $(use_enable test tests) + $(use_enable cpu_flags_x86_sse intel-sse) + $(use_enable static-libs static) + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_install_all() { + default + + strip-lto-bytecode + find "${ED}" \( -type f -o -type l \) -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/net-analyzer/netperf/netperf-2.7.0_p20210121-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-analyzer/netperf/netperf-2.7.0_p20210121-r1.ebuild index caf1dc52ad4..5f72daa1658 100644 --- a/sdk_container/src/third_party/portage-stable/net-analyzer/netperf/netperf-2.7.0_p20210121-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-analyzer/netperf/netperf-2.7.0_p20210121-r1.ebuild @@ -13,7 +13,7 @@ S="${WORKDIR}/${PN}-${COMMIT}" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86" +KEYWORDS="~alpha amd64 arm64 ~hppa ppc ppc64 ~riscv ~sparc x86" IUSE="demo sctp" RDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/openbsd-netcat-1.218_p5.ebuild b/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/openbsd-netcat-1.218_p5.ebuild index 783bcaa6db6..31778504878 100644 --- a/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/openbsd-netcat-1.218_p5.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/openbsd-netcat-1.218_p5.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -22,6 +22,7 @@ RDEPEND=" !net-analyzer/netcat !elibc_Darwin? ( dev-libs/libbsd ) " +DEPEND="${RDEPEND}" BDEPEND="virtual/pkgconfig" src_prepare() { diff --git a/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/openbsd-netcat-1.219_p1.ebuild b/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/openbsd-netcat-1.219_p1.ebuild index 75d8675c6a0..50921666bb3 100644 --- a/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/openbsd-netcat-1.219_p1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/openbsd-netcat-1.219_p1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -22,6 +22,7 @@ RDEPEND=" !net-analyzer/netcat !elibc_Darwin? ( dev-libs/libbsd ) " +DEPEND="${RDEPEND}" BDEPEND="virtual/pkgconfig" src_prepare() { diff --git a/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/openbsd-netcat-1.234_p1.ebuild b/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/openbsd-netcat-1.234_p1.ebuild index 37f86901e7a..ef325c2ba65 100644 --- a/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/openbsd-netcat-1.234_p1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/openbsd-netcat-1.234_p1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -22,6 +22,7 @@ RDEPEND=" !net-analyzer/netcat !elibc_Darwin? ( dev-libs/libbsd ) " +DEPEND="${RDEPEND}" BDEPEND="virtual/pkgconfig" src_prepare() { diff --git a/sdk_container/src/third_party/portage-stable/net-dialup/lrzsz/lrzsz-0.12.20-r10.ebuild b/sdk_container/src/third_party/portage-stable/net-dialup/lrzsz/lrzsz-0.12.20-r10.ebuild index d139f1dc227..f5296b55149 100644 --- a/sdk_container/src/third_party/portage-stable/net-dialup/lrzsz/lrzsz-0.12.20-r10.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dialup/lrzsz/lrzsz-0.12.20-r10.ebuild @@ -9,7 +9,7 @@ DESCRIPTION="Communication package providing the X, Y, and ZMODEM file transfer HOMEPAGE="https://www.ohse.de/uwe/software/lrzsz.html" SRC_URI=" https://www.ohse.de/uwe/releases/${P}.tar.gz - https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/gettext-0.19.8-runtime-m4.tar.xz + https://distfiles.gentoo.org/pub/dev/ceamac@gentoo.org/${CATEGORY}/${PN}/gettext-0.19.8-runtime-m4.tar.xz " LICENSE="GPL-2" diff --git a/sdk_container/src/third_party/portage-stable/net-dialup/minicom/Manifest b/sdk_container/src/third_party/portage-stable/net-dialup/minicom/Manifest index 1a1c3317a7d..8a99f17ad43 100644 --- a/sdk_container/src/third_party/portage-stable/net-dialup/minicom/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-dialup/minicom/Manifest @@ -1,2 +1 @@ -DIST minicom-2.10.tar.gz 798751 BLAKE2B 1828b2670a71f8c94099cabc49b1e85ad35bd0491a78fe99a92d32176811d25b76afa74b417491f44bec40c1a7273e1bbc0ab9729dfa2626291b069b4447b919 SHA512 ced271a21b0ba97ad0b09093f341112d4c4f64f6b72631502acc136d2fb92eeb14965d4187fd8cfed0e0e2519b603b6e54d8dd780e666119ecfc5677203595e2 DIST minicom-2.11.1.tar.gz 1058823 BLAKE2B 20f3f118cea634cf3df5a3ad5513f32c3117d95e222027aac978f0b3d6be8fdc79b7602959129a2e36e05960800c8bce025423b69d609c9651c8bcbe4a70efb1 SHA512 a74ca75494051b5027a0b641f1fedcc8a341dc409e17f4f509fdb48d3958ed6e6a8482f4f0217671eaa3af6fd5e608f55759faf6f71fa89fddbb065ad99cf33d diff --git a/sdk_container/src/third_party/portage-stable/net-dialup/minicom/files/minicom-2.10-glibc-2.42.patch b/sdk_container/src/third_party/portage-stable/net-dialup/minicom/files/minicom-2.10-glibc-2.42.patch deleted file mode 100644 index 1a5950ae843..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-dialup/minicom/files/minicom-2.10-glibc-2.42.patch +++ /dev/null @@ -1,45 +0,0 @@ -https://salsa.debian.org/minicom-team/minicom/-/issues/17 -https://bugs.gentoo.org/969713 -https://salsa.debian.org/minicom-team/minicom/-/commit/964ae563cb5a78545ae1a4a3b6784c69ec73bc48 - -From 964ae563cb5a78545ae1a4a3b6784c69ec73bc48 Mon Sep 17 00:00:00 2001 -From: Stefan Becker -Date: Mon, 17 Nov 2025 11:57:32 +0200 -Subject: [PATCH] src/sysdep.h: remove cfset{i,o}speed macros for glibc - -glibc 2.42 added support for arbitrary termios speeds on Linux, i.e. -speed_t and Bxxx defines changed from bitmasks to unsigned integers: -Therefore speed_t can no longer be used together with c_flag's internal -bitmask CBAUD. - -When minicom is compiled on such a system the baudrate setting is broken -and the user experiences garbled UART output. - -Remove the macros for glibc, i.e. call cfset{i,o}speed() instead. - -Fixes #17 ---- - src/sysdep.h | 9 --------- - 2 files changed, 1 insertion(+), 9 deletions(-) - -diff --git a/src/sysdep.h b/src/sysdep.h -index b11945c..9ba8836 100644 ---- a/src/sysdep.h -+++ b/src/sysdep.h -@@ -139,12 +139,3 @@ - # define cfsetospeed(tty, spd) - #endif - #endif -- --/* Redefine cfset{i,o}speed for Linux > 1.1.68 && libc < 4.5.21 */ --#if defined (__GLIBC__) && defined(CBAUDEX) --# undef cfsetispeed --# undef cfsetospeed --# define cfsetispeed(xtty, xspd) \ -- ((xtty)->c_cflag = ((xtty)->c_cflag & ~CBAUD) | (xspd)) --# define cfsetospeed(tty, spd) --#endif --- -GitLab - - diff --git a/sdk_container/src/third_party/portage-stable/net-dialup/minicom/minicom-2.10-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-dialup/minicom/minicom-2.10-r1.ebuild deleted file mode 100644 index 7c0ce4f436f..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-dialup/minicom/minicom-2.10-r1.ebuild +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools - -DESCRIPTION="Serial Communication Program" -HOMEPAGE="https://salsa.debian.org/minicom-team/minicom" -SRC_URI="https://salsa.debian.org/${PN}-team/${PN}/-/archive/${PV}/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="nls" - -DEPEND="sys-libs/ncurses:=" - -RDEPEND=" - ${DEPEND} - net-dialup/lrzsz -" - -BDEPEND=" - virtual/pkgconfig - nls? ( sys-devel/gettext ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-2.8-gentoo-runscript.patch - "${FILESDIR}"/${PN}-2.9-update-gettext.patch -) - -src_prepare() { - default - - # Drop a little while after glibc-2.42 is stable (bug #969713) - if ! has_version "sys-libs/glibc" || has_version ">=sys-libs/glibc-2.42" ; then - eapply "${FILESDIR}"/${PN}-2.10-glibc-2.42.patch - fi - - eautoreconf -} - -src_configure() { - # Lockdir must exist if not manually specified. - # '/var/lock' is created by OpenRC. - local myeconfargs=( - # See bug #788142 - --sysconfdir="${EPREFIX}"/etc/${PN} - - --disable-rpath - --enable-lock-dir="/var/lock" - $(use_enable nls) - ) - - econf "${myeconfargs[@]}" -} - -src_install() { - default - - # Needs to match --sysconfdir above - insinto /etc/minicom - doins "${FILESDIR}"/minirc.dfl -} diff --git a/sdk_container/src/third_party/portage-stable/net-dialup/minicom/minicom-2.10.ebuild b/sdk_container/src/third_party/portage-stable/net-dialup/minicom/minicom-2.10.ebuild deleted file mode 100644 index 4fd4f61d539..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-dialup/minicom/minicom-2.10.ebuild +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools - -DESCRIPTION="Serial Communication Program" -HOMEPAGE="https://salsa.debian.org/minicom-team/minicom" -SRC_URI="https://salsa.debian.org/${PN}-team/${PN}/-/archive/${PV}/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="nls" - -DEPEND="sys-libs/ncurses:=" - -RDEPEND=" - ${DEPEND} - net-dialup/lrzsz -" - -BDEPEND=" - virtual/pkgconfig - nls? ( sys-devel/gettext ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-2.8-gentoo-runscript.patch - "${FILESDIR}"/${PN}-2.9-update-gettext.patch -) - -src_prepare() { - default - eautoreconf -} - -src_configure() { - # Lockdir must exist if not manually specified. - # '/var/lock' is created by OpenRC. - local myeconfargs=( - # See bug #788142 - --sysconfdir="${EPREFIX}"/etc/${PN} - - --disable-rpath - --enable-lock-dir="/var/lock" - $(use_enable nls) - ) - - econf "${myeconfargs[@]}" -} - -src_install() { - default - - # Needs to match --sysconfdir above - insinto /etc/minicom - doins "${FILESDIR}"/minirc.dfl -} diff --git a/sdk_container/src/third_party/portage-stable/net-dialup/minicom/minicom-2.11.1.ebuild b/sdk_container/src/third_party/portage-stable/net-dialup/minicom/minicom-2.11.1.ebuild index 140d360efc8..a5ceb2ce754 100644 --- a/sdk_container/src/third_party/portage-stable/net-dialup/minicom/minicom-2.11.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dialup/minicom/minicom-2.11.1.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://salsa.debian.org/${PN}-team/${PN}/-/archive/${PV}/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE="nls" DEPEND="sys-libs/ncurses:=" 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 3dee1202c8f..cf55c3682aa 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 @@ -1,6 +1,12 @@ 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.18.42.tar.xz 5423412 BLAKE2B d29813a76f18eaf75908e95f18d0c82fb591a1228962ec6d209a08260b2f60327e049fc263bd772eed12bd9c2231c835f1e3f3262df0e0f6811481570e1dc169 SHA512 9133be987e2043aabf8cd7de58f62c41c632b92d9930a3644aaff80b23211e5a967a133080f6e61142408ef752f8a07d6b7c1e775ca8a495bb29ff9d167446c0 -DIST bind-9.20.13.tar.xz 5762540 BLAKE2B c3738ebe468849293bec3d89499d7607b76fb636c7d21833dd56414fb569c1edfaa84d152ff9febfe0ebd5c65fa351423fbfbeaaee294d57949eb45631fd5623 SHA512 2e4be2153f80f60b97c0854ce69e5eb5c343713f5544ef6b9b9229d1ba65ba13e092c17170ae5ae328a97d0ccd8cb7c8cc8259baea70827a841d251423bc0a1c -DIST bind-9.20.16.tar.xz 5768340 BLAKE2B 1a083efbd7a95df8c9c05966681be577cb119f1a75292cbf65a31cdf0fc7677a70834be4f8599984635b9ea09a909c1453b489e920e5f27502ab2b496aa278b0 SHA512 0cd9d531830ae8fd9df13849f333bc156063836f6ffd3ce757244a3cb58c6608cafb0ba43c22fa2846fdaa42d2dccff4fa84ae92ec69430071769168d57e9e9c -DIST bind-9.20.16.tar.xz.asc 833 BLAKE2B 54eba12d36f9b52ac510ea1d22af6270872d43ef564298a90c5d9b9fb93f806ae7b496c594d9433d53e289609b44ac0fec28ebef06999f684a239dd1ca68bcd9 SHA512 a5d20dd8d1f3aa8238dcaf65d9ac177b40cb0117f1c3075cd334db7200701d1cc1917a3a3005b883d75f63659a343b9ebb0c7f72806829188985d2c759042a90 +DIST bind-9.18.47.tar.xz 5448920 BLAKE2B fea217afba2d40b8d762bee70a0f31c35cd9c6fe1df5e5a7730bd8c5c69e0f0e8df03d8eb276a40851f4105d40210f297d5d3a970ed678d620aa726ddf27b945 SHA512 8135d453c0dd99947c93b9fb8fe1a52c5657f1c675b503dbfb745dfc9bb278121dc307d590bae99b439b093e87cb2bd0bf07d0a32ffd8a39841752559a0df1e8 +DIST bind-9.18.48.tar.xz 5452356 BLAKE2B 2712af1f077284c752d7279784f9990dfec75fc0eb0715219e6ca502356f01a21b9fa1b3d7ce83252c1818adf9d1e6a58d7c15dda0aa9d7179e7a75ba57d6193 SHA512 9c93fe60e8fdfa140cfd535beaf42b368aed885aa97669f990f100c8d75d02cb2b0423f87e8b0f36315fda5bb998e18b7bf8d3d649e9ffe32a4724947a5bebe7 +DIST bind-9.18.49.tar.xz 5476288 BLAKE2B 3a8510602b63708cc3f7b47dc89e2f2f62ebf022403075e4222e4067445c99e183b8f9a94ca04134479406ee4966acc4cf6d79751cbcbfd018f6aca51d209372 SHA512 e5259db8b9fdb3940d4e1d95978514692777a3675fc85a83db30e049d80d8150d10e672d51eeb885a94c6bbd4573ff8fe49248117c24ff155197a24a26b09544 +DIST bind-9.20.21.tar.xz 5808576 BLAKE2B 20c2acac40242516da10cc8e45074de3d5d8906e4c4e216f6d69cba0585816aba4ec77adda8142294623eef5b045ec64cc8a18c721ece6af939741903558454b SHA512 f0f566a243268a579a7c97409409699aa66a08e82982d48046c83d9dfd01f8a9c337af7bb80018773667fcc98a5e6fb9f244ac28e72688ab04a494337605c616 +DIST bind-9.20.21.tar.xz.asc 833 BLAKE2B d3af3befb08ef8c3fefdd5baa61647414a026dd86d7bb3982ac12f9ae5a5199326c8421dee6eb7a2eea219b67491afb36be366509488df2128008fccbd9b2787 SHA512 21eddf0ca03874381c5135496e9b0739d1889cbdcced0dd9b68075e3e04ea24983ff8974b462d8ee0f36e1eb0c202b2791707037346e8f0aa2a13e94a1a5f7bb +DIST bind-9.20.22.tar.xz 5817248 BLAKE2B 74537646d8c08c4874548b064ab62bab3721d22e2654feed54ea0b61c087018b24f725d0cfaf8298bc71a1be280c753c86449b13e5d9ec26f84ba7e9f61b7a5a SHA512 a23b630fc755977534e3fb8605810495ab8e4817ade93448f93167a38c643b0da6e93b3c2d9e191e99989af446a8aabfa43636120cc6c2a0c653dcd36cb89d07 +DIST bind-9.20.22.tar.xz.asc 833 BLAKE2B 1b68a0dc7ba7e3bcb9c222f13daaf113e464cfea792408bc28096ce7961e3121a85104b0bfb468bd6c7a8becdc0fb54ed744aeb96490b4d5792ed7113fb69b02 SHA512 c987629f59f919ce325c70c001e5c3093bd9f36dc589aac94ba9cdfcc4679e892da4d1980cc154801f222a9ec4dbf3112ff627e5abf539a5d3cf20629fda72b3 +DIST bind-9.20.23.tar.xz 5837532 BLAKE2B f4f5526fac2832685204ccc93087df3ce2dd3fbb267a5b68d0cf8074365a8f1d6e7b9ff130b41a023ea8dd96499a361a0396188f0a71a08630c54ec13e63c39a SHA512 fce8a69620c15223e54dd197c09c7b00c165e5e3a5b2f62b241f589be5675c581029cf750caa8ed1f1fcb0faf293df04e77c494c205bab89d6d01153395bf4cb +DIST bind-9.20.23.tar.xz.asc 833 BLAKE2B dd8f34f1257c7fa153225b0d25780c34549ed8209e88a41ccbd66dca3186817395002989cebe92fecb39bcb5452d998c512daac5143a7fb87baacdcb6a1d5976 SHA512 41c008dd3edc1bff238dbabff74731ffb1ec7213805e354661450a28676212b3937d3be35e7ecaefd3670f609cc40fbd346ebfff77aa82511d28d46c24b88c31 diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.47.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.47.ebuild new file mode 100644 index 00000000000..a777ce0685b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.47.ebuild @@ -0,0 +1,282 @@ +# Copyright 1999-2026 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" +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:= + virtual/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.18.48.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.48.ebuild new file mode 100644 index 00000000000..3ee93c1319e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.48.ebuild @@ -0,0 +1,282 @@ +# Copyright 1999-2026 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" +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:= + virtual/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.18.49.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.49.ebuild new file mode 100644 index 00000000000..a777ce0685b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.49.ebuild @@ -0,0 +1,282 @@ +# Copyright 1999-2026 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" +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:= + virtual/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 deleted file mode 100644 index a51a04c864e..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.13.ebuild +++ /dev/null @@ -1,287 +0,0 @@ -# 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" -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:= - virtual/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/bind/bind-9.20.16.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.21.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.16.ebuild rename to sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.21.ebuild diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.22.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.22.ebuild new file mode 100644 index 00000000000..b6ce44a1852 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.22.ebuild @@ -0,0 +1,288 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/isc.asc +inherit eapi9-ver systemd tmpfiles toolchain-funcs verify-sig + +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 + verify-sig? ( https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz.asc ) +" +S="${WORKDIR}/${PN}-${MY_PV}" + +LICENSE="MPL-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs systemtap test xml" +RESTRICT="!test? ( test )" + +DEPEND=" + acct-group/named + acct-user/named + dev-libs/json-c:= + dev-libs/userspace-rcu:= + >=dev-libs/libuv-1.37.0:= + virtual/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/bind/bind-9.20.23.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.23.ebuild new file mode 100644 index 00000000000..b6ce44a1852 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.23.ebuild @@ -0,0 +1,288 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/isc.asc +inherit eapi9-ver systemd tmpfiles toolchain-funcs verify-sig + +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 + verify-sig? ( https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz.asc ) +" +S="${WORKDIR}/${PN}-${MY_PV}" + +LICENSE="MPL-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs systemtap test xml" +RESTRICT="!test? ( test )" + +DEPEND=" + acct-group/named + acct-user/named + dev-libs/json-c:= + dev-libs/userspace-rcu:= + >=dev-libs/libuv-1.37.0:= + virtual/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/dnsmasq/Manifest b/sdk_container/src/third_party/portage-stable/net-dns/dnsmasq/Manifest index e4a4fdb7b2c..aa160b8efb0 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/dnsmasq/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-dns/dnsmasq/Manifest @@ -1 +1,3 @@ DIST dnsmasq-2.91.tar.xz 576820 BLAKE2B a363a084ef528d792829a8f83616dd490a3a37c04812f1b98b8cef6422d742cacf3d91a88b528b3806511a9a7e8c3ab7c42193d35e6a3e05c2c54c7ff4e48252 SHA512 d8b062d28f32d0e499e551aeebba75d3ea9f6a5173d78f45292cb1ef28a5d0f7c86982d987fe25c3cee9f139023b1fd023130dddd0dc849fb0cfbd969c3b0c7f +DIST dnsmasq-2.92rel2.tar.xz 638020 BLAKE2B 4dd6b286c1f361673fea32ed3e0c3144fa3f873bfc0ec699c05c47da52371ee0f57abf15a851933c8967015bda3cd1f62e07c8ece875891c3660d02bb55677a5 SHA512 607abf33d6eac24eafdff9cd291d84b065354303d5e1d9514d79085b247fb3861ac57851ca1dfc4a5cddd314f8b970d17e93b987b1576e9f6ba1d6bffd42fff1 +DIST dnsmasq-2.92rel2.tar.xz.asc 833 BLAKE2B 0544e86f5c7eb3141a8d19a7b3234fb0e52f308462a0ccc3843d37af644d079e928fa53eb38672b78fd7fc067982c87b74adc848b3fc0055d91e314b5c31a88e SHA512 140161d89287ab46fe15f7b68264a166e1a1f1a019cc781b0013a6345790e3f75186a023b32e526e7b5c05584734dfaff7e3b76b3c01878c0d22d9f6a039fcde diff --git a/sdk_container/src/third_party/portage-stable/net-dns/dnsmasq/dnsmasq-2.92_p2.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/dnsmasq/dnsmasq-2.92_p2.ebuild new file mode 100644 index 00000000000..071c8efe440 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-dns/dnsmasq/dnsmasq-2.92_p2.ebuild @@ -0,0 +1,237 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( lua5-{1..4} luajit ) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/simonkelley.asc +inherit toolchain-funcs lua-single systemd verify-sig + +MY_P="${P/_p/rel}" +DESCRIPTION="Small forwarding DNS server" +HOMEPAGE="https://thekelleys.org.uk/dnsmasq/doc.html" +SRC_URI=" + https://thekelleys.org.uk/dnsmasq/${MY_P}.tar.xz + verify-sig? ( https://thekelleys.org.uk/dnsmasq/${MY_P}.tar.xz.asc ) +" +S="${WORKDIR}"/${MY_P} + +LICENSE="|| ( GPL-2 GPL-3 )" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" + +IUSE="auth-dns conntrack dbus +dhcp dhcp-tools dnssec +dumpfile id idn libidn2" +IUSE+=" +loop +inotify ipv6 lua nettlehash nls script selinux static tftp" + +DM_LINGUAS=(de es fi fr id it no pl pt_BR ro) + +BDEPEND=" + app-arch/xz-utils + virtual/pkgconfig + nls? ( sys-devel/gettext ) + verify-sig? ( sec-keys/openpgp-keys-simonkelley ) +" + +COMMON_DEPEND=" + acct-group/dnsmasq + acct-user/dnsmasq + dbus? ( sys-apps/dbus:= ) + idn? ( + !libidn2? ( net-dns/libidn:0= ) + libidn2? ( >=net-dns/libidn2-2.0:= ) + ) + lua? ( ${LUA_DEPS} ) + conntrack? ( net-libs/libnetfilter_conntrack:= ) + nls? ( sys-devel/gettext ) +" + +DEPEND="${COMMON_DEPEND} + dnssec? ( + dev-libs/nettle:=[gmp] + static? ( >=dev-libs/nettle-3.4[static-libs(+)] ) + ) + nettlehash? ( + static? ( >=dev-libs/nettle-3.4[static-libs(+)] ) + ) +" + +RDEPEND="${COMMON_DEPEND} + dnssec? ( + !static? ( >=dev-libs/nettle-3.4:=[gmp] ) + ) + nettlehash? ( + !static? ( dev-libs/nettle:=[gmp] ) + ) + selinux? ( sec-policy/selinux-dnsmasq ) +" + +REQUIRED_USE=" + dhcp-tools? ( dhcp ) + dnssec? ( !nettlehash ) + lua? ( + script + ${LUA_REQUIRED_USE} + ) + libidn2? ( idn ) +" + +use_have() { + local no_only + if [[ ${1} == '-n' ]]; then + no_only=1 + shift + fi + local useflag="${1}" + shift + + local uword="${1:-${useflag}}" + shift + + while [[ ${uword} ]]; do + uword="${uword^^}" + + if ! use "${useflag}"; then + printf -- " -DNO_%s" "${uword}" + elif [[ -z "${no_only}" ]]; then + printf -- " -DHAVE_%s" "${uword}" + fi + uword="${1}" + shift + done +} + +pkg_setup() { + use lua && lua-single_pkg_setup +} + +pkg_pretend() { + if use static; then + einfo "Only sys-libs/gmp and dev-libs/nettle are statically linked." + use dnssec || einfo "Thus, ${P}[!dnssec,static] makes no sense;" \ + "in this case the static USE flag does nothing." + fi +} + +src_prepare() { + default + + sed -i "s:%%PREFIX%%:${EPREFIX}/usr:" \ + dnsmasq.conf.example || die +} + +src_configure() { + COPTS=( + $(use_have -n auth-dns auth) + $(use_have conntrack) + $(use_have dbus) + $(use libidn2 || use_have idn) + $(use_have libidn2) + $(use_have -n inotify) + $(use_have -n dhcp dhcp dhcp6) + $(use_have -n ipv6 ipv6 dhcp6) + $(use_have -n id id) + $(use_have -n loop) + $(use_have lua luascript) + $(use_have -n script) + $(use_have -n tftp) + $(use_have dnssec) + $(use_have nettlehash) + $(use_have static dnssec_static) + $(use_have -n dumpfile) + ) +} + +src_compile() { + emake \ + PREFIX=/usr \ + MANDIR=/usr/share/man \ + CC="$(tc-getCC)" \ + PKG_CONFIG="$(tc-getPKG_CONFIG)" \ + CFLAGS="${CFLAGS}" \ + LDFLAGS="${LDFLAGS}" \ + COPTS="${COPTS[*]}" \ + CONFFILE="/etc/${PN}.conf" \ + all$(use nls && printf -- "-i18n\n") + + use dhcp-tools && emake -C contrib/lease-tools \ + PREFIX=/usr \ + MANDIR=/usr/share/man \ + CC="$(tc-getCC)" \ + PKG_CONFIG="$(tc-getPKG_CONFIG)" \ + CFLAGS="${CFLAGS}" \ + LDFLAGS="${LDFLAGS}" \ + all +} + +src_install() { + local lingua puid + emake \ + PREFIX=/usr \ + MANDIR=/usr/share/man \ + CC="$(tc-getCC)" \ + PKG_CONFIG="$(tc-getPKG_CONFIG)" \ + CFLAGS="${CFLAGS}" \ + LDFLAGS="${LDFLAGS}" \ + COPTS="${COPTS[*]}" \ + CONFFILE="/etc/${PN}.conf" \ + DESTDIR="${ED}" \ + install$(use nls && printf -- "-i18n\n") + + for lingua in "${DM_LINGUAS[@]}"; do + has ${lingua} ${LINGUAS-${lingua}} \ + || rm -rf "${ED}"/usr/share/locale/${lingua} + done + [[ -d "${D}"/usr/share/locale/ ]] && \ + rmdir --ignore-fail-on-non-empty "${ED}"/usr/share/locale/ + + dodoc CHANGELOG CHANGELOG.archive FAQ dnsmasq.conf.example + dodoc -r logo + + docinto html/ + dodoc *.html + + newinitd "${FILESDIR}"/dnsmasq-init-r4 ${PN} + newconfd "${FILESDIR}"/dnsmasq.confd-r1 ${PN} + + insinto /etc/logrotate.d + newins "${FILESDIR}"/dnsmasq.logrotate ${PN} + + insinto /etc + newins dnsmasq.conf.example dnsmasq.conf + + insinto /usr/share/dnsmasq + doins trust-anchors.conf + + if use dhcp; then + keepdir /var/lib/misc + newinitd "${FILESDIR}"/dnsmasq-init-dhcp-r3 ${PN} + fi + if use dbus; then + insinto /etc/dbus-1/system.d + doins dbus/dnsmasq.conf + + docinto + dodoc dbus/DBus-interface + fi + + if use dhcp-tools; then + dosbin contrib/lease-tools/{dhcp_release,dhcp_lease_time} + doman contrib/lease-tools/{dhcp_release,dhcp_lease_time}.1 + if use ipv6; then + dosbin contrib/lease-tools/dhcp_release6 + doman contrib/lease-tools/dhcp_release6.1 + fi + fi + + systemd_newunit "${FILESDIR}"/${PN}.service-r1 ${PN}.service +} + +pkg_preinst() { + [[ -f /var/lib/misc/dnsmasq.leases ]] && \ + cp /var/lib/misc/dnsmasq.leases "${T}" +} + +pkg_postinst() { + [[ -f "${T}"/dnsmasq.leases ]] && \ + cp "${T}"/dnsmasq.leases /var/lib/misc/dnsmasq.leases +} diff --git a/sdk_container/src/third_party/portage-stable/net-dns/libidn2/Manifest b/sdk_container/src/third_party/portage-stable/net-dns/libidn2/Manifest index a390389b212..5d331424c2d 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/libidn2/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-dns/libidn2/Manifest @@ -1,4 +1,2 @@ -DIST libidn2-2.3.7.tar.gz 2155214 BLAKE2B 40fde88e6be1e4665738855608a65c949834728463a3fb466192403f1076e99f7d399b9631308ff6776a28915251a0136ddfe6a67e8e010c7ccdb7fc64125d39 SHA512 eab5702bc0baed45492f8dde43a4d2ea3560ad80645e5f9e0cfa8d3b57bccd7fd782d04638e000ba07924a5d9f85e760095b55189188c4017b94705bef9b4a66 -DIST libidn2-2.3.7.tar.gz.sig 228 BLAKE2B 44f091a5a3ed7ad528ba404b4d1d1f60d1dae52e3c8173b633c30099e6e0405e51f46c954e4f5339b90d0fe883b5af34f8dbf704999e14aa4bd2f414a8473ad2 SHA512 00e5f8c3b6b1aef9ee341db99b339217080a57dbe65fba56798d60ad4be971a9535d8ae27e1f243b18b9fc9e900ada6c452b040a6c8094d5e05d8a76d1d79c03 DIST libidn2-2.3.8.tar.gz 2234804 BLAKE2B 8b34975a5a469353ac960ade97d0b67080e811c0d0eb7b11dcb6a4b352753da59b17c812bab8c969877bfe027fc3de0a36b7c6b75942811f17938b676238fb3d SHA512 4d8427c0f115268132f7544e80a808c883ab1406338f6c529b1a586b016d57aedb0857f66166eb8d9f37d70efc9dccf907b673b43b17bcf258c8797db1e829ce DIST libidn2-2.3.8.tar.gz.sig 1223 BLAKE2B f77d1a8dc7400365d3a6f745d9ea59ea16c456cb79c938e27ba221b6c0513a103f589fd40212aeac66cc74f9145b82b50aa21d3c32c0e73541a575f8ad274704 SHA512 469dd344ef652d2914478f7332564a4a89138f709d4805634233a5211d8bd2b0ff759c8f31e0902da116c56d73afe2e9d57fb566b3a5c60f219c15ff7e91de62 diff --git a/sdk_container/src/third_party/portage-stable/net-dns/libidn2/libidn2-2.3.7.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/libidn2/libidn2-2.3.7.ebuild deleted file mode 100644 index 2d810483dc6..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-dns/libidn2/libidn2-2.3.7.ebuild +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit libtool multilib-minimal toolchain-funcs verify-sig - -DESCRIPTION="An implementation of the IDNA2008 specifications (RFCs 5890, 5891, 5892, 5893)" -HOMEPAGE=" - https://www.gnu.org/software/libidn/#libidn2 - https://gitlab.com/libidn/libidn2/ -" -SRC_URI=" - mirror://gnu/libidn/${P}.tar.gz - verify-sig? ( mirror://gnu/libidn/${P}.tar.gz.sig ) -" -S="${WORKDIR}"/${P/a/} - -LICENSE="|| ( GPL-2+ LGPL-3+ ) GPL-3+ unicode" -SLOT="0/2" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="nls static-libs" - -RDEPEND=" - dev-libs/libunistring:=[${MULTILIB_USEDEP}] -" -DEPEND=" - ${RDEPEND} -" -BDEPEND=" - dev-lang/perl - nls? ( sys-devel/gettext ) - verify-sig? ( sec-keys/openpgp-keys-libidn ) -" - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libidn.asc - -src_prepare() { - default - elibtoolize -} - -multilib_src_configure() { - local myconf=( - CC_FOR_BUILD="$(tc-getBUILD_CC)" - $(use_enable static-libs static) - $(multilib_native_use_enable nls) - --enable-doc - --disable-gcc-warnings - --disable-gtk-doc - --disable-valgrind-tests - ) - - local ECONF_SOURCE=${S} - econf "${myconf[@]}" -} - -multilib_src_install() { - default - find "${ED}" -name '*.la' -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/net-firewall/conntrack-tools/conntrack-tools-1.4.9.ebuild b/sdk_container/src/third_party/portage-stable/net-firewall/conntrack-tools/conntrack-tools-1.4.9.ebuild index c55d00f6286..b129d90de67 100644 --- a/sdk_container/src/third_party/portage-stable/net-firewall/conntrack-tools/conntrack-tools-1.4.9.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-firewall/conntrack-tools/conntrack-tools-1.4.9.ebuild @@ -15,7 +15,7 @@ SRC_URI=" LICENSE="GPL-2+" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86" +KEYWORDS="~alpha amd64 ~arm64 ~hppa ppc ppc64 ~riscv x86" IUSE="doc +cthelper +cttimeout systemd" RDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/net-firewall/ipset/files/ipset-bash-completion.patch b/sdk_container/src/third_party/portage-stable/net-firewall/ipset/files/ipset-bash-completion.patch deleted file mode 100644 index 1c2b6e62b82..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-firewall/ipset/files/ipset-bash-completion.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/utils/ipset_bash_completion/ipset 2024-03-09 12:53:38.756882196 -0500 -+++ b/utils/ipset_bash_completion/ipset 2024-03-09 12:54:32.838917743 -0500 -@@ -1005,7 +1005,7 @@ if ((got_bashcompl)); then - if ! declare -F _ipset_known_hosts &>/dev/null; then - eval '_ipset_known_hosts() { '$(declare -f _known_hosts_real | \ - grep -v __ltrim_colon_completions | \ -- grep -Ev "^_known_hosts_real.*$" | grep -Ev "^(\{|\})")'; }' -+ grep -Ev "^_known_hosts_real.*$" | grep -Ev "^(\{|\})")' }' - fi - fi - diff --git a/sdk_container/src/third_party/portage-stable/net-firewall/ipset/ipset-7.24.ebuild b/sdk_container/src/third_party/portage-stable/net-firewall/ipset/ipset-7.24.ebuild index a3d2d9d3a8d..3730a329a4f 100644 --- a/sdk_container/src/third_party/portage-stable/net-firewall/ipset/ipset-7.24.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-firewall/ipset/ipset-7.24.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -27,7 +27,6 @@ DOCS=( ChangeLog INSTALL README UPGRADE ) IP_NF_SET_MAX=${IP_NF_SET_MAX:-256} PATCHES=( - "${FILESDIR}/${PN}-bash-completion.patch" "${FILESDIR}/${PN}-net_namespace.patch" ) diff --git a/sdk_container/src/third_party/portage-stable/net-firewall/iptables/iptables-1.8.13.ebuild b/sdk_container/src/third_party/portage-stable/net-firewall/iptables/iptables-1.8.13.ebuild index ce440b899b0..cb910b96ea5 100644 --- a/sdk_container/src/third_party/portage-stable/net-firewall/iptables/iptables-1.8.13.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-firewall/iptables/iptables-1.8.13.ebuild @@ -17,7 +17,7 @@ LICENSE="GPL-2" # Subslot reflects PV when libxtables and/or libip*tc was changed # the last time. SLOT="0/1.8.3" -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="conntrack netlink nftables pcap static-libs test" RESTRICT="!test? ( test )" # TODO: skip tests needing nftables if no xtables-nft-multi (bug #890628) diff --git a/sdk_container/src/third_party/portage-stable/net-fs/cifs-utils/cifs-utils-7.5.ebuild b/sdk_container/src/third_party/portage-stable/net-fs/cifs-utils/cifs-utils-7.5.ebuild index 1cbd2da9e18..b1e48988c6e 100644 --- a/sdk_container/src/third_party/portage-stable/net-fs/cifs-utils/cifs-utils-7.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-fs/cifs-utils/cifs-utils-7.5.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit autotools bash-completion-r1 flag-o-matic linux-info pam python-single-r1 @@ -13,7 +13,7 @@ SRC_URI="https://ftp.samba.org/pub/linux-cifs/${PN}/${P}.tar.bz2" LICENSE="GPL-3" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE="+acl +ads +caps creds pam +python systemd" RDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/net-fs/samba/Manifest b/sdk_container/src/third_party/portage-stable/net-fs/samba/Manifest index 8ba33f42599..b16ff270cf6 100644 --- a/sdk_container/src/third_party/portage-stable/net-fs/samba/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-fs/samba/Manifest @@ -1,7 +1,6 @@ DIST samba-4.22.5.tar.gz 42876122 BLAKE2B c6ee4c98c4aced9faa0b5f90c61a3ea9473fc8c90e7c3ceb470aba9354fb4bb21cdd16a7d19bb6b0faee4454259e02546b4bb5093e8e8fe64a67b5635fc1152b SHA512 ee183e664768076f814c252afef0cd2225961d173174e8f4703d8cf59fe2abc2d1a089e293905849201ab2af75e27d8666360072a85bcce2b0dc735324d6b02e -DIST samba-4.22.8.tar.gz 42868679 BLAKE2B 24c285d0b41a37c03338332d85493300641b89dd8e159873bb97b858c24d00ce56c756557c54b3a25e701dfc286f55fd6ca9d0ba97a50083147c00d946d80582 SHA512 35f7aa28c24647250c1d1a8df8bbaab16422fd6372d4f90e3d2682b801911d9c833e72ac71b61e96166dd2b86b16dbeddacfd273f4846a56196ce022cd58055e -DIST samba-4.23.5.tar.gz 43298892 BLAKE2B cab8a569da87d32b0268ea2111327450b64fa863507a286d46e200c21c947c477807f181651fa32bf81b799f1ae7554f417300abc8442fbe274208becb7432c9 SHA512 5bf5733dddde9dbd8f5680b53fb927a6802572d1f4758d1d58e00e58fdadc19bec1ef2b195bcdc065c7bed05c3d4aade5ffe9af9227051cf9ea91a9428a3693c +DIST samba-4.22.9.tar.gz 42873956 BLAKE2B 8f238f0d6ca94c729bcb3af7e56399bbc86d20e15d77908de5beb824f10502407f99079f908001200b3b540ba6673037a7580dcd6090ef53aa285ff503729d01 SHA512 e97dc94b22bd05e37c6612ab778da2ca5d58007d9c08ce3ee9a6d595f020fcfd9613831811278e167dc010050da088966190ae9a322154dba4cab7c01b96e565 DIST samba-4.23.6.tar.gz 43306831 BLAKE2B c5c567bfc4734429790ec7362150eda231ce7e3e7dbdfaa2ca2dc81bd178c9c15cc9360b21f4c5dd1f1423d46337bc5a7b581efcff8ed647adb69a9b47922320 SHA512 61dc2a80f1ea5a7a04bc45ba7896107fd1c619ec3f841f9f6adb9c166a3ce3a5cee7b0d097cfa2c768ba65e35167c0739099cc76a5478c0d6f41521a621336c9 -DIST samba-4.24.0.tar.gz 43386689 BLAKE2B 0bb2c288a97214cdec608bd6580fbfebbb8af407117758857984188f8b0cb8c1d23bf3ce1f47a8692270ee4693422094bd28a47f5d251509dea335e8d4ae45f0 SHA512 7b967a876d0ce2e5fc7f30ff99af76bf2c406941000055e52215f9ad5a006328689927e9859ebcfb914ed14027637dc7484362f9a2613cd85e54a934752b6e6e -DIST samba-4.24.0rc1.tar.gz 43381208 BLAKE2B 788d148b1cdd1d573878d9bb8023efa385ba04f105796849cea96eff669978526505364fd409d6714c20f39053d1b2ef9e02f974cda261697cbe837defe39fb4 SHA512 0e53e392e324f7044c4a2eb54f57062288d81916249488b871dcd631cd2d67786a39e68982f2751a3f4fe81622ce8f411ac2c60a7b760d75004379208a1284eb -DIST samba-4.24.0rc3.tar.gz 43387471 BLAKE2B 6e51d5d688e6da7c4a03eb9393dfda6df16fa05dd53dceac29da9a01de9791219625592872a4ba46f68173f73da65c3df470646d34c3b310897cb393e5fd630f SHA512 f76493f8e665ad75425554a812ef6cea815a3babddb5bb91b645bdac69d851a7cb13c623298839849d459627ebc4696c0ae4b6dbb0bc3df5bd9731a66d8e915b +DIST samba-4.23.7.tar.gz 43305961 BLAKE2B 1c3847855a2cde457498856fddd25957c78240e58d2bdc65c5fe5805afc0a650638908393e3e83ff112b9c9a2c0c31fa5a186bb102d0ec6c063ab4e728dfdf0a SHA512 4cecc3ff3a2e1738a40bcd499c86c0503e79c49a99864423eb348d825c130febdeb44589cf2db007817c7d633a614ad4d58a887c10a579093ae2cda009c979b0 +DIST samba-4.24.1.tar.gz 43389244 BLAKE2B 51459d4db739e47bc05692046ce0a8b3044de923b3d1e7a51589bb838a7ef9865b6d6034656ade87e099374157a92dac0cba70a5f293a4d1e2b623341b3e75ca SHA512 419653355fd609443b1cd321986e7e83c6479a52d7a998e1197846cdb591305b1173b77022a65cf643c46a3a8810de05499a9eba903b839a87fac7a270ebc85f +DIST samba-4.24.2.tar.gz 43409510 BLAKE2B 464b9324b1c4d9e50d70c0d921c65b775f49db9e9b82314cc072ad03087f2d2f3ca4c9cf2925a3628c07c2f4664f58f9a36528078a14666d1fcb20ddb7949b44 SHA512 54f65c200815f7f05eca5ee1e69e554acd93be912913d5e8fde1f8ed9b1b809dad4b47559053e4ce9780f271cf61b0abc3a25dce331ca237730574417cf5c5e7 diff --git a/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.22.8.ebuild b/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.22.9.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.22.8.ebuild rename to sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.22.9.ebuild diff --git a/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.23.5-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.23.7.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.23.5-r1.ebuild rename to sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.23.7.ebuild diff --git a/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.24.0_rc1.ebuild b/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.24.0_rc1.ebuild deleted file mode 100644 index 78176df313c..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.24.0_rc1.ebuild +++ /dev/null @@ -1,400 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..14} ) -PYTHON_REQ_USE="threads(+),xml(+)" -inherit python-single-r1 flag-o-matic waf-utils multilib-minimal linux-info optfeature systemd pam tmpfiles - -DESCRIPTION="Samba Suite Version 4" -HOMEPAGE="https://samba.org/" - -MY_PV="${PV/_rc/rc}" -MY_P="${PN}-${MY_PV}" -if [[ ${PV} == *_rc* ]]; then - SRC_URI="https://download.samba.org/pub/samba/rc/${MY_P}.tar.gz" -else - SRC_URI="https://download.samba.org/pub/samba/stable/${MY_P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" -fi -S="${WORKDIR}/${MY_P}" - -LICENSE="GPL-3" -SLOT="0/2.11.0" -IUSE="acl addc ads ceph client cluster cups debug fam glusterfs gpg" -IUSE+=" iprint json ldap llvm-libunwind lmdb pam profiling-data python quota" -IUSE+=" +regedit selinux snapper spotlight syslog system-heimdal +system-mitkrb5" -IUSE+=" systemd test unwind winbind zeroconf" - -# ldap needs ads (bug #941578) -REQUIRED_USE="${PYTHON_REQUIRED_USE} - addc? ( json python !system-mitkrb5 winbind ) - ads? ( acl ldap python winbind ) - cluster? ( ads ) - gpg? ( addc ) - ldap? ( ads ) - spotlight? ( json ) - test? ( python ) - !ads? ( !addc ) - ?? ( system-heimdal system-mitkrb5 ) -" - -# the test suite is messed, it uses system-installed samba -# bits instead of what was built, tests things disabled via use -# flags, and generally just fails to work in a way ebuilds could -# rely on in its current state -RESTRICT="test" - -MULTILIB_WRAPPED_HEADERS=( - /usr/include/samba-4.0/policy.h - /usr/include/samba-4.0/dcerpc_server.h - /usr/include/samba-4.0/ctdb.h - /usr/include/samba-4.0/ctdb_client.h - /usr/include/samba-4.0/ctdb_protocol.h - /usr/include/samba-4.0/ctdb_private.h - /usr/include/samba-4.0/ctdb_typesafe_cb.h - /usr/include/samba-4.0/ctdb_version.h -) - -TALLOC_VERSION="2.4.4" -TDB_VERSION="1.4.15" -TEVENT_VERSION="0.17.1" - -COMMON_DEPEND=" - >=app-arch/libarchive-3.1.2:=[${MULTILIB_USEDEP}] - dev-lang/perl:= - dev-libs/icu:=[${MULTILIB_USEDEP}] - dev-libs/libbsd[${MULTILIB_USEDEP}] - dev-libs/libtasn1:=[${MULTILIB_USEDEP}] - dev-libs/popt[${MULTILIB_USEDEP}] - dev-perl/Parse-Yapp - >=net-libs/gnutls-3.4.7:=[${MULTILIB_USEDEP}] - >=net-libs/ngtcp2-1.12.0[${MULTILIB_USEDEP}] - >=sys-fs/e2fsprogs-1.46.4-r51[${MULTILIB_USEDEP}] - !sys-libs/ldb - sys-libs/libcap[${MULTILIB_USEDEP}] - sys-libs/liburing:=[${MULTILIB_USEDEP}] - sys-libs/ncurses:= - sys-libs/readline:= - >=sys-libs/talloc-${TALLOC_VERSION}[${MULTILIB_USEDEP}] - >=sys-libs/tdb-${TDB_VERSION}[${MULTILIB_USEDEP}] - >=sys-libs/tevent-${TEVENT_VERSION}[${MULTILIB_USEDEP}] - virtual/zlib:=[${MULTILIB_USEDEP}] - virtual/libcrypt:=[${MULTILIB_USEDEP}] - virtual/libiconv - $(python_gen_cond_dep ' - addc? ( - dev-python/cryptography[${PYTHON_USEDEP}] - dev-python/dnspython:=[${PYTHON_USEDEP}] - dev-python/markdown[${PYTHON_USEDEP}] - net-dns/bind[gssapi] - ) - ads? ( - dev-python/cryptography[${PYTHON_USEDEP}] - dev-python/dnspython:=[${PYTHON_USEDEP}] - dev-python/markdown[${PYTHON_USEDEP}] - net-dns/bind[gssapi] - ) - ') - acl? ( virtual/acl ) - ceph? ( sys-cluster/ceph ) - cluster? ( net-libs/rpcsvc-proto ) - cups? ( net-print/cups ) - debug? ( dev-util/lttng-ust ) - fam? ( virtual/fam ) - gpg? ( app-crypt/gpgme:= ) - json? ( dev-libs/jansson:= ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - lmdb? ( >=dev-db/lmdb-0.9.16:=[${MULTILIB_USEDEP}] ) - pam? ( sys-libs/pam ) - python? ( - sys-libs/talloc[python,${PYTHON_SINGLE_USEDEP}] - sys-libs/tdb[python,${PYTHON_SINGLE_USEDEP}] - sys-libs/tevent[python,${PYTHON_SINGLE_USEDEP}] - ) - snapper? ( sys-apps/dbus ) - system-heimdal? ( >=app-crypt/heimdal-1.5[-ssl(-),${MULTILIB_USEDEP}] ) - system-mitkrb5? ( >=app-crypt/mit-krb5-1.19[${MULTILIB_USEDEP}] ) - !system-heimdal? ( !system-mitkrb5? ( sys-apps/keyutils[${MULTILIB_USEDEP}] ) ) - systemd? ( sys-apps/systemd:= ) - unwind? ( - llvm-libunwind? ( llvm-runtimes/libunwind:= ) - !llvm-libunwind? ( sys-libs/libunwind:= ) - ) - zeroconf? ( net-dns/avahi[dbus] ) -" -DEPEND="${COMMON_DEPEND} - dev-perl/JSON - net-libs/libtirpc[${MULTILIB_USEDEP}] - net-libs/rpcsvc-proto - spotlight? ( dev-libs/glib ) - test? ( - >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}] - $(python_gen_cond_dep "dev-python/python-subunit[\${PYTHON_USEDEP},${MULTILIB_USEDEP}]" ) - !system-mitkrb5? ( - >=net-dns/resolv_wrapper-1.1.4 - >=net-libs/socket_wrapper-1.1.9 - >=sys-libs/nss_wrapper-1.1.3 - >=sys-libs/uid_wrapper-1.2.1 - ) - )" -RDEPEND="${COMMON_DEPEND} - client? ( net-fs/cifs-utils[ads?] ) - python? ( ${PYTHON_DEPS} ) - selinux? ( sec-policy/selinux-samba ) -" -BDEPEND="${PYTHON_DEPS} - app-text/docbook-xsl-stylesheets - dev-libs/libxslt - virtual/pkgconfig -" - -PATCHES=( - "${FILESDIR}"/${PN}-4.18.4-pam.patch - "${FILESDIR}"/ldb-2.5.2-skip-wav-tevent-check.patch -) - -CONFDIR="${FILESDIR}/4.4" -WAF_BINARY="${S}/buildtools/bin/waf" -SHAREDMODS="" - -pkg_setup() { - # Package fails to build with distcc - export DISTCC_DISABLE=1 - export PYTHONHASHSEED=1 - - python-single-r1_pkg_setup - - SHAREDMODS="$(usev !snapper '!')vfs_snapper" - if use cluster ; then - SHAREDMODS+=",idmap_rid,idmap_tdb2,idmap_ad" - elif use ads ; then - SHAREDMODS+=",idmap_ad" - fi -} - -check_samba_dep_versions() { - actual_talloc_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/talloc/wscript || die) - if [[ ${actual_talloc_version} != ${TALLOC_VERSION} ]] ; then - eerror "Source talloc version: ${TALLOC_VERSION}" - eerror "Ebuild talloc version: ${actual_talloc_version}" - die "Ebuild needs to fix TALLOC_VERSION!" - fi - - actual_tdb_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tdb/wscript || die) - if [[ ${actual_tdb_version} != ${TDB_VERSION} ]] ; then - eerror "Source tdb version: ${TDB_VERSION}" - eerror "Ebuild tdb version: ${actual_tdb_version}" - die "Ebuild needs to fix TDB_VERSION!" - fi - - actual_tevent_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tevent/wscript || die) - if [[ ${actual_tevent_version} != ${TEVENT_VERSION} ]] ; then - eerror "Source tevent version: ${TEVENT_VERSION}" - eerror "Ebuild tevent version: ${actual_tevent_version}" - die "Ebuild needs to fix TEVENT_VERSION!" - fi -} - -src_prepare() { - default - - check_samba_dep_versions - - # Unbundle dnspython - sed -i -e '/"dns.resolver":/d' "${S}"/third_party/wscript || die - - # Unbundle iso8601 unless tests are enabled - if ! use test ; then - sed -i -e '/"iso8601":/d' "${S}"/third_party/wscript || die - fi - - # Ugly hackaround for bug #592502 - #cp /usr/include/tevent_internal.h "${S}"/lib/tevent/ || die - - # bug #943942 - append-cflags -std=gnu17 - - # WAF - multilib_copy_sources -} - -multilib_src_configure() { - # When specifying libs for samba build you must append NONE to the end to - # stop it automatically including things - local bundled_libs="NONE" - if ! use system-heimdal && ! use system-mitkrb5 ; then - bundled_libs="heimbase,heimntlm,hdb,kdc,krb5,wind,gssapi,hcrypto,hx509,roken,asn1,com_err,NONE" - fi - - # We "use" bundled cmocka when we're not running tests as we're - # not using it anyway. Means we avoid making users install it for - # no reason. bug #802531 - if ! use test ; then - bundled_libs="cmocka,${bundled_libs}" - fi - - # bug #874633 - if use llvm-libunwind ; then - mkdir -p "${T}"/${ABI}/pkgconfig || die - - local -x PKG_CONFIG_PATH="${T}/${ABI}/pkgconfig:${PKG_CONFIG_PATH}" - - cat <<-EOF > "${T}"/${ABI}/pkgconfig/libunwind-generic.pc || die - exec_prefix=\${prefix} - libdir=/usr/$(get_libdir) - includedir=\${prefix}/include - - Name: libunwind-generic - Description: libunwind generic library - Version: 1.70 - Libs: -L\${libdir} -lunwind - Cflags: -I\${includedir} - EOF - fi - - bundled_libs="libquic,${bundled_libs}" - - local myconf=( - --enable-fhs - --sysconfdir="${EPREFIX}/etc" - --localstatedir="${EPREFIX}/var" - --with-modulesdir="${EPREFIX}/usr/$(get_libdir)/samba" - --with-piddir="${EPREFIX}/run/${PN}" - --bundled-libraries="${bundled_libs}" - --builtin-libraries=NONE - --disable-rpath - --disable-rpath-install - --nopyc - --nopyo - --without-winexe - $(multilib_native_use_with acl acl-support) - $(multilib_native_usex addc '' '--without-ad-dc') - $(multilib_native_use_enable ceph cephfs) - $(multilib_native_use_with cluster cluster-support) - $(multilib_native_use_enable cups) - --without-dmapi - $(multilib_native_use_with fam) - $(multilib_native_use_enable glusterfs) - $(multilib_native_use_with gpg gpgme) - $(multilib_native_use_with json) - $(multilib_native_use_enable iprint) - $(multilib_native_use_with pam) - $(multilib_native_usex pam "--with-pammodulesdir=${EPREFIX}/$(get_libdir)/security" '') - $(multilib_native_use_with quota quotas) - $(multilib_native_use_with regedit) - $(multilib_native_use_enable spotlight) - $(multilib_native_use_with syslog) - $(multilib_native_use_with systemd) - --systemd-install-services - --with-systemddir="$(systemd_get_systemunitdir)" - $(multilib_native_use_with unwind libunwind) - $(multilib_native_use_with winbind) - $(multilib_native_usex python '' '--disable-python') - $(multilib_native_use_enable zeroconf avahi) - $(multilib_native_usex test '--enable-selftest' '') - $(usev system-mitkrb5 "--with-system-mitkrb5 $(multilib_native_usex addc --with-experimental-mit-ad-dc '')") - $(use_with ads) - $(use_with debug lttng) - $(use_with ldap) - $(use_with profiling-data) - --private-libraries='!ldb' - $(usex lmdb '' --without-ldb-lmdb) - # bug #683148 - --jobs 1 - ) - - if multilib_is_native_abi ; then - myconf+=( --with-shared-modules=${SHAREDMODS} ) - else - myconf+=( --with-shared-modules=DEFAULT,!vfs_snapper ) - fi - - append-ldflags $(test-flags-CCLD -Wl,--undefined-version) # bug 914898 - - append-cppflags "-I${ESYSROOT}/usr/include/et" - - waf-utils_src_configure ${myconf[@]} -} - -multilib_src_compile() { - waf-utils_src_compile -} - -multilib_src_test() { - if multilib_is_native_abi ; then - "${WAF_BINARY}" test || die "Test failed" - fi -} - -multilib_src_install() { - waf-utils_src_install - - # Make all .so files executable - find "${ED}" -type f -name "*.so" -exec chmod +x {} + || die - # smbspool_krb5_wrapper must only be accessible to root, bug #880739 - find "${ED}" -type f -name "smbspool_krb5_wrapper" -exec chmod go-rwx {} + || die - - # Remove empty runtime dirs created by build system (bug #892341) - find "${ED}"/{run,var} -type d -empty -delete || die - - if multilib_is_native_abi ; then - # Install ldap schema for server (bug #491002) - if use ldap ; then - insinto /etc/openldap/schema - doins examples/LDAP/samba.schema - fi - - # Create symlink for cups (bug #552310) - if use cups ; then - dosym ../../../bin/smbspool \ - /usr/libexec/cups/backend/smb - fi - - # Install example config file - insinto /etc/samba - doins examples/smb.conf.default - - # Fix paths in example file (bug #603964) - sed \ - -e '/log file =/s@/usr/local/samba/var/@/var/log/samba/@' \ - -e '/include =/s@/usr/local/samba/lib/@/etc/samba/@' \ - -e '/path =/s@/usr/local/samba/lib/@/var/lib/samba/@' \ - -e '/path =/s@/usr/local/samba/@/var/lib/samba/@' \ - -e '/path =/s@/usr/spool/samba@/var/spool/samba@' \ - -i "${ED}"/etc/samba/smb.conf.default || die - - # Install init script and conf.d file - newinitd "${CONFDIR}/samba4.initd-r1" samba - newconfd "${CONFDIR}/samba4.confd" samba - - dotmpfiles "${FILESDIR}"/samba.conf - if ! use addc ; then - rm "${D}/$(systemd_get_systemunitdir)/samba.service" \ - || die - fi - - # Preserve functionality for old gentoo-specific unit names - dosym nmb.service "$(systemd_get_systemunitdir)/nmbd.service" - dosym smb.service "$(systemd_get_systemunitdir)/smbd.service" - dosym winbind.service "$(systemd_get_systemunitdir)/winbindd.service" - - use python && python_optimize - fi - - if use pam && use winbind ; then - newpamd "${CONFDIR}/system-auth-winbind.pam" system-auth-winbind - # bugs #376853 and #590374 - insinto /etc/security - doins examples/pam_winbind/pam_winbind.conf - fi -} - -pkg_postinst() { - tmpfiles_process samba.conf - - if use addc || use ads ; then - optfeature "Hide passwords from command line when using samba-tool or samba-gpupdate" dev-python/setproctitle - fi -} diff --git a/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.24.0.ebuild b/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.24.1.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.24.0.ebuild rename to sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.24.1.ebuild diff --git a/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.24.0_rc3.ebuild b/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.24.2.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.24.0_rc3.ebuild rename to sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.24.2.ebuild diff --git a/sdk_container/src/third_party/portage-stable/net-libs/gnutls/Manifest b/sdk_container/src/third_party/portage-stable/net-libs/gnutls/Manifest index b8983834579..5a74bbdc9a9 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/gnutls/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-libs/gnutls/Manifest @@ -1,6 +1,6 @@ -DIST gnutls-3.8.10.tar.xz 6909856 BLAKE2B 0b62e93b2818d2265ca11e561724547fa3c24d08986eb77ea743b4af52773db975c1859164c7d405d9a9bedfa981af58f10f85100b6c0e3542a38c49af407a4d SHA512 d453bd4527af95cb3905ce8753ceafd969e3f442ad1d148544a233ebf13285b999930553a805a0511293cc25390bb6a040260df5544a7c55019640f920ad3d92 -DIST gnutls-3.8.10.tar.xz.sig 566 BLAKE2B 32af044eb25978b752428d72a597f44457b6f3979d79e5b9e224523d6ef3bd213a0887960dddce84b97db78a9ebbbbd6b034adaa0dd7a1dd2d1db30527f5b42c SHA512 72d6dd2c23f768f5041c3dca0f49b3f60cd01fc960ce77f097094a2aae6d76fddeb6295c425e3750c711d5f700957a62268aecc4873e53c31abb60eecf0fd4a8 DIST gnutls-3.8.11.tar.xz 6939944 BLAKE2B 54ec3fb396187294ae59c65fa92a515175d8ab19d9f5656569b372b5764b3090724aaa8cedd9467b530f2c74e86a6bfd956d3bd9439a7b69656dcc24e303cbe6 SHA512 68f9e5bec3aa6686fd3319cc9c88a5cc44e2a75144049fc9de5fb55fef2241b4e16996af4be5dd48308abbee8cfaed6c862903f6bb89aff5dfa5410075bd7386 DIST gnutls-3.8.11.tar.xz.sig 566 BLAKE2B 411c166ae5daf58ec325a1f2b528cb40decff01bc78e30346394d7b9c88189b0c93891208045beac8d5e3f701e918b5a5bcf0914700396f391d024ff16266e5f SHA512 90883e5736299b103844ca42b85d371969ef66b50b60cb185e814ad9978598796e9ed07a590245ff28ac6ac084b1dee93fae0845576464583a5941835990957d DIST gnutls-3.8.12.tar.xz 6949604 BLAKE2B ff326dddce464b366ab6e892b812a2e38b5ebd57b35627ce265e4eb3e5930e30fda82e584ec01339ef61a8a7704f5c772f13110046559537f3b667484054f728 SHA512 332a8e5200461517c7f08515e3aaab0bec6222747422e33e9e7d25d35613e3d0695a803fce226bd6a83f723054f551328bd99dcf0573e142be777dcf358e1a3b DIST gnutls-3.8.12.tar.xz.sig 685 BLAKE2B d917f17dbdb344d504c6b68c2608b648d76e31663462e15646d9a678bac2aad8004173dbcb041215a34a9f2d10ed3784f49a6258be313aa8f8e4e8ab045b0703 SHA512 2774d809aae857fe9752c385d95864e834af55ac71ecd56cc1e914095e09641c20babb8082afa53fb6a350daf4f4b510e2eae1548529c5e248d91708f14bf8aa +DIST gnutls-3.8.13.tar.xz 7275324 BLAKE2B 80677a45a7c6f892287020e3e6b0add2432f2c64a4c9a649ce889921ac65b44931504ad0682ccc12e4b6d8f94c1a72e35c50673c9d04bd4e327063b812339380 SHA512 71bf189a836fd18d58b9e995d4bfcecdb0aae6129dfd44247b98422b2f127dd868f9905d28fad2ca05afd919a0e6b3c8eebb6b95804067d3a8dab31ebdc72453 +DIST gnutls-3.8.13.tar.xz.sig 685 BLAKE2B 491724c9cc7afcd62cadb1412504d29075e62e83c0988e0a4e16573e3f3ea3e2e6374fb4477a49677e2d1982fdb3f33e41b34012bcea47744e180718ce8e6df8 SHA512 190a219f7c452049c668b1f8b2d4ed5fb932625a257e19f28f7a1160d16e6add092dbb5a2fa3ad773a78e0ffdbac22087eedff26d2762713e1beb158d23967c1 diff --git a/sdk_container/src/third_party/portage-stable/net-libs/gnutls/files/gnutls-3.8.10-tests.patch b/sdk_container/src/third_party/portage-stable/net-libs/gnutls/files/gnutls-3.8.10-tests.patch deleted file mode 100644 index 22bb4213450..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-libs/gnutls/files/gnutls-3.8.10-tests.patch +++ /dev/null @@ -1,98 +0,0 @@ -https://gitlab.com/gnutls/gnutls/-/merge_requests/1980 - -From 9741943dc87c46d609282a1c0bba6e19d6123c91 Mon Sep 17 00:00:00 2001 -From: Daiki Ueno -Date: Thu, 10 Jul 2025 05:53:32 +0900 -Subject: [PATCH 1/3] tests: make cert-tests/mldsa.sh work in VPATH build - -Signed-off-by: Daiki Ueno ---- - tests/cert-tests/mldsa.sh | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/tests/cert-tests/mldsa.sh b/tests/cert-tests/mldsa.sh -index 7e31e113d5..55e31ce5a7 100644 ---- a/tests/cert-tests/mldsa.sh -+++ b/tests/cert-tests/mldsa.sh -@@ -130,7 +130,7 @@ for variant in 44 65 87; do - # Check default - TMPKEYDEFAULT=$testdir/key-$algo-$format-default - TMPKEY=$testdir/key-$algo-$format -- ${VALGRIND} "${CERTTOOL}" -k --no-text --infile "data/key-$algo-$format.pem" >"$TMPKEYDEFAULT" -+ ${VALGRIND} "${CERTTOOL}" -k --no-text --infile "$srcdir/data/key-$algo-$format.pem" >"$TMPKEYDEFAULT" - if [ $? != 0 ]; then - cat "$TMPKEYDEFAULT" - exit 1 -@@ -138,19 +138,19 @@ for variant in 44 65 87; do - - # The "expandedKey" format doesn't have public key part - if [ "$format" = seed ] || [ "$format" = both ]; then -- if ! "${DIFF}" "$TMPKEYDEFAULT" "data/key-$algo-both.pem"; then -+ if ! "${DIFF}" "$TMPKEYDEFAULT" "$srcdir/data/key-$algo-both.pem"; then - exit 1 - fi - fi - - # Check roundtrip with --key-format -- ${VALGRIND} "${CERTTOOL}" -k --no-text --key-format "$format" --infile "data/key-$algo-$format.pem" >"$TMPKEY" -+ ${VALGRIND} "${CERTTOOL}" -k --no-text --key-format "$format" --infile "$srcdir/data/key-$algo-$format.pem" >"$TMPKEY" - if [ $? != 0 ]; then - cat "$TMPKEY" - exit 1 - fi - -- if ! "${DIFF}" "$TMPKEY" "data/key-$algo-$format.pem"; then -+ if ! "${DIFF}" "$TMPKEY" "$srcdir/data/key-$algo-$format.pem"; then - exit 1 - fi - done -@@ -164,7 +164,7 @@ for n in 1; do - fi - - echo "Testing inconsistent ML-DSA key ($n)" -- if "${CERTTOOL}" -k --infile "data/key-mldsa-inconsistent$n.pem"; then -+ if "${CERTTOOL}" -k --infile "$srcdir/data/key-mldsa-inconsistent$n.pem"; then - exit 1 - fi - done --- -GitLab - -From d2f4c53c6cdf1879101a8faa868994730485f8d3 Mon Sep 17 00:00:00 2001 -From: Daiki Ueno -Date: Thu, 10 Jul 2025 05:58:52 +0900 -Subject: [PATCH 3/3] tests: skip system-override-compress-cert.sh if no brotli - nor zstd - -Signed-off-by: Daiki Ueno ---- - tests/system-override-compress-cert.sh | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/tests/system-override-compress-cert.sh b/tests/system-override-compress-cert.sh -index 83cf8cf9d0..afa60f2cbb 100755 ---- a/tests/system-override-compress-cert.sh -+++ b/tests/system-override-compress-cert.sh -@@ -19,6 +19,8 @@ - # You should have received a copy of the GNU Lesser General Public License - # along with this program. If not, see - -+: ${CLI=../src/gnutls-cli${EXEEXT}} -+ - TEST=${builddir}/compress-cert-conf - CONF=config.$$.tmp - export GNUTLS_SYSTEM_PRIORITY_FILE=${CONF} -@@ -28,6 +30,11 @@ if test "${WINDIR}" != ""; then - exit 77 - fi - -+if ! "$CLI" --list | grep '^Compression: .*COMP-\(BROTLI\|ZSTD\)'; then -+ echo "Not built with brotli and zstd, skipping" 1>&2 -+ exit 77 -+fi -+ - cat <<_EOF_ > ${CONF} - [overrides] - cert-compression-alg = brotli --- -GitLab 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 deleted file mode 100644 index f3d3f05e45f..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-libs/gnutls/files/gnutls-3.8.10-tls-migration-qemu-regression.patch +++ /dev/null @@ -1,299 +0,0 @@ -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 deleted file mode 100644 index 1a2ec23653a..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-libs/gnutls/gnutls-3.8.10-r1.ebuild +++ /dev/null @@ -1,171 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnutls.asc -inherit dot-a 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 ~arm64-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? ( virtual/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() { - use static-libs && lto-guarantee-fat - - 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 - - use static-libs && strip-lto-bytecode - - if use examples; then - docinto examples - dodoc doc/examples/*.c - fi -} diff --git a/sdk_container/src/third_party/portage-stable/net-libs/gnutls/gnutls-3.8.12-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/gnutls/gnutls-3.8.12-r1.ebuild index e2ab7ba61cc..c7f72e550ef 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/gnutls/gnutls-3.8.12-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-libs/gnutls/gnutls-3.8.12-r1.ebuild @@ -17,7 +17,7 @@ LICENSE="GPL-3 LGPL-2.1+" # Subslot format: # . SLOT="0/30.30" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~m68k ~riscv ~s390 ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE="brotli +cxx dane doc examples +idn nls +openssl pkcs11 +post-quantum sslv2 sslv3" IUSE+=" systemtap 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 )" diff --git a/sdk_container/src/third_party/portage-stable/net-libs/gnutls/gnutls-3.8.12.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/gnutls/gnutls-3.8.12.ebuild index 1fa771060b0..b1af5bc360c 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/gnutls/gnutls-3.8.12.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-libs/gnutls/gnutls-3.8.12.ebuild @@ -17,7 +17,7 @@ LICENSE="GPL-3 LGPL-2.1+" # Subslot format: # . SLOT="0/30.30" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="brotli +cxx dane doc examples +idn nls +openssl pkcs11 sslv2 sslv3" IUSE+=" systemtap 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 )" diff --git a/sdk_container/src/third_party/portage-stable/net-libs/gnutls/gnutls-3.8.13.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/gnutls/gnutls-3.8.13.ebuild new file mode 100644 index 00000000000..41d9c9cf1d7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-libs/gnutls/gnutls-3.8.13.ebuild @@ -0,0 +1,166 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnutls.asc +inherit libtool multilib-minimal verify-sig + +DESCRIPTION="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 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="brotli +cxx dane doc examples +idn nls +openssl pkcs11 +post-quantum sslv2 sslv3" +IUSE+=" systemtap 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 )" + +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}] ) + post-quantum? ( >=dev-libs/leancrypto-1.2.0:=[${MULTILIB_USEDEP}] ) + idn? ( >=net-dns/libidn2-0.16-r1:=[${MULTILIB_USEDEP}] ) + zlib? ( virtual/zlib:=[${MULTILIB_USEDEP}] ) + zstd? ( >=app-arch/zstd-1.3.0:=[${MULTILIB_USEDEP}] ) +" +DEPEND=" + ${RDEPEND} + test-full? ( sys-libs/libseccomp ) + systemtap? ( dev-debug/systemtap ) +" +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 +) + +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 systemtap crypto-auditing) + $(use_enable tls-heartbeat heartbeat-support) + $(use_with brotli '' link) + $(use_with idn) + $(use_with pkcs11 p11-kit) + $(use_with post-quantum leancrypto) + $(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/gnutls/metadata.xml b/sdk_container/src/third_party/portage-stable/net-libs/gnutls/metadata.xml index ab38d4a5b3c..9cc2665be53 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/gnutls/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/net-libs/gnutls/metadata.xml @@ -19,12 +19,6 @@ Support post-quantum cryptography (PQC) using dev-libs/leancrypto. - - Build cli tools such as gnutls-cli, certtool and oscptool - - - Enable the Heartbeat Extension in TLS and DTLS - Support for the old/insecure SSLv2 protocol @@ -37,6 +31,12 @@ Enable full test mode + + Enable the Heartbeat Extension in TLS and DTLS + + + Build cli tools such as gnutls-cli, certtool and oscptool + Reflect ABI compatibility of libgnutls.so diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libmicrohttpd/Manifest b/sdk_container/src/third_party/portage-stable/net-libs/libmicrohttpd/Manifest index 93b31ec0922..fec0e0331fb 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/libmicrohttpd/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-libs/libmicrohttpd/Manifest @@ -2,3 +2,7 @@ DIST libmicrohttpd-0.9.77.tar.gz 1896679 BLAKE2B 09a07c7da77d6072e5aa0fb121aedff DIST libmicrohttpd-0.9.77.tar.gz.sig 581 BLAKE2B 99ea14c7a80b0ed542672752617b045bea9a16a906e43422a130e83de048ea4d989ab53978b25b77f2982da9599aea711357c05b5a48fb5be84583c04596686c SHA512 60489620bfb2388afb19dd91c105927e593c6a17ba0293b4814c746b66d4f0418edafe49837de333640c1479bacde3e46740b031c2d4ec5bd106493122c87b19 DIST libmicrohttpd-1.0.1.tar.gz 2239593 BLAKE2B a29e49c719fc544ae72224d81cba7b7ef914f2641efe4b90d580d2212f2c3357a6d70499c43a6f50d14f4ec9d3102da8de899fe0420bf6660eb413080d89b7f7 SHA512 c99b8b93cae5feee8debcc5667ee3ff043412a84b30696fe852e6c138f3c890bb43c8fcd7199f1d2f809d522fef159e83b607c743d6cf3401a57050fbdf9b5c1 DIST libmicrohttpd-1.0.1.tar.gz.sig 581 BLAKE2B 6b8eda94d348d63e070f0b2046ea51ac7e4480593ef20c5d1445c66d7c0a611bbd0f9fba2b2df5f2e20665522b5ec79b51794435a649f17f5745a86e0302c97e SHA512 c4c00b71f1afb4fa2da0ac578ab8975a4691d2118863454eeba2a5084ef0fa428b58bb30351a4e5d0f5068d04ebbc59c24574eec0043388a6e13766da909e55e +DIST libmicrohttpd-1.0.3.tar.gz 2102293 BLAKE2B a739b5b954b94644e586e0323d6da5e6313eefb87a9f85230ed776a92176bae6393f0bf2fd2a45070989b0b193b63017f9c9e76b8409fb5632e4d1f6c6e6b8b1 SHA512 5b57df7a4f3f9e5b7c3fea50231490061cf4ee2aaa13575777942ad51564d5a3f1aaed493d8741f736d390888e95161f71d9f39d2bf61cc2e4958df09b496a07 +DIST libmicrohttpd-1.0.3.tar.gz.sig 833 BLAKE2B fa3600ef118f4b02bea51de8ea100f5dca397df05b6128cd70a12e0dc1ccbdfa6d8bcf9544c7449a88013b90d5ae9703b6b843a00a3f2a78344a567a8bf3828a SHA512 69d765dcea750aa5b18bc3a6963fcd3ea8695ce3d3f9067dda7c13b292842f8b6271eeec934aa54f982604e320bd32013e83c2d61255f7799f3514ebb3910317 +DIST libmicrohttpd-1.0.5.tar.gz 2103850 BLAKE2B dd6ea96a4ab94925d041ef4c45066bf8fb5568c93a727e93295d69db5432ef498d72138f1c64fe157327aca8f97636c9140757c1c048e589d91fddc8ff83a119 SHA512 7ed3e81f0c4253a409f5e825446c8d2d8b975c0eb6f381b6867796bbdcf4890004a24659e95b8ec8c39e8df0a9885cc08a0ba75f953893ee1455ae180dc89391 +DIST libmicrohttpd-1.0.5.tar.gz.sig 833 BLAKE2B ed1922c43e87dfd4af04fc02172012f9e4f96794796845a91f7ce5b6279070f5d0fb64c24bb71a9facd64a8f66c3a7dc3e70a48b002fc2c8a1c6fc444946c97c SHA512 06e4e8ced756485e8e18abe45014117f2184966b5637f8ba715ada5fbc59e1e347dfabedc05022d3ace1cedb14a5a3672868f696cac999d6204bc9f5b19e73bb diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libmicrohttpd/libmicrohttpd-1.0.3.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/libmicrohttpd/libmicrohttpd-1.0.3.ebuild new file mode 100644 index 00000000000..524304f814a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-libs/libmicrohttpd/libmicrohttpd-1.0.3.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit linux-info multilib-minimal verify-sig + +DESCRIPTION="Small C library to run an HTTP server as part of another application" +HOMEPAGE="https://www.gnu.org/software/libmicrohttpd/" +SRC_URI="mirror://gnu/${PN}/${P}.tar.gz + verify-sig? ( mirror://gnu/${PN}/${P}.tar.gz.sig )" + +LICENSE="|| ( LGPL-2.1+ !ssl? ( GPL-2+-with-eCos-exception-2 ) )" +SLOT="0/12" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="debug +epoll +eventfd ssl static-libs test +thread-names verify-sig" +REQUIRED_USE="epoll? ( kernel_linux )" +RESTRICT="!test? ( test )" + +KEYRING_VER=201906 + +RDEPEND="ssl? ( >net-libs/gnutls-2.12.20-r0:=[${MULTILIB_USEDEP}] )" +# libcurl and the curl binary are used during tests on CHOST +DEPEND="${RDEPEND} + test? ( net-misc/curl[ssl?] )" +BDEPEND="ssl? ( virtual/pkgconfig ) + verify-sig? ( ~sec-keys/openpgp-keys-libmicrohttpd-${KEYRING_VER} )" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libmicrohttpd-${KEYRING_VER}.asc + +DOCS=( AUTHORS NEWS COPYING README ChangeLog ) + +pkg_pretend() { + if use kernel_linux ; then + CONFIG_CHECK="" + use epoll && CONFIG_CHECK+=" ~EPOLL" + ERROR_EPOLL="EPOLL is not enabled in kernel, but enabled in libmicrohttpd." + ERROR_EPOLL+=" libmicrohttpd will fail to start with 'automatic' configuration." + use eventfd && CONFIG_CHECK+=" ~EVENTFD" + ERROR_EVENTFD="EVENTFD is enabled in libmicrohttpd, but not available in kernel." + ERROR_EVENTFD+=" libmicrohttpd will not work." + check_extra_config + fi +} + +multilib_src_configure() { + ECONF_SOURCE="${S}" \ + econf \ + --enable-shared \ + $(use_enable static-libs static) \ + --enable-bauth \ + --enable-dauth \ + --enable-messages \ + --enable-postprocessor \ + --enable-httpupgrade \ + --disable-examples \ + --disable-tools \ + --disable-experimental \ + --disable-heavy-tests \ + --enable-itc=$(usex eventfd eventfd pipe) \ + $(use_enable debug asserts) \ + $(use_enable thread-names) \ + $(use_enable epoll) \ + $(use_enable test curl) \ + $(use_with ssl gnutls) \ + $(use_enable ssl https) +} + +multilib_src_install_all() { + default + + if ! use static-libs; then + find "${ED}" -name '*.la' -delete || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libmicrohttpd/libmicrohttpd-1.0.5.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/libmicrohttpd/libmicrohttpd-1.0.5.ebuild new file mode 100644 index 00000000000..fec8c764db5 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-libs/libmicrohttpd/libmicrohttpd-1.0.5.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit linux-info multilib-minimal verify-sig + +DESCRIPTION="Small C library to run an HTTP server as part of another application" +HOMEPAGE="https://www.gnu.org/software/libmicrohttpd/" +SRC_URI="mirror://gnu/${PN}/${P}.tar.gz + verify-sig? ( mirror://gnu/${PN}/${P}.tar.gz.sig )" + +LICENSE="|| ( LGPL-2.1+ !ssl? ( GPL-2+-with-eCos-exception-2 ) )" +SLOT="0/12" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-solaris" +IUSE="debug +epoll +eventfd ssl static-libs test +thread-names verify-sig" +REQUIRED_USE="epoll? ( kernel_linux )" +RESTRICT="!test? ( test )" + +KEYRING_VER=201906 + +RDEPEND="ssl? ( >net-libs/gnutls-2.12.20-r0:=[${MULTILIB_USEDEP}] )" +# libcurl and the curl binary are used during tests on CHOST +DEPEND="${RDEPEND} + test? ( net-misc/curl[ssl?] )" +BDEPEND="ssl? ( virtual/pkgconfig ) + verify-sig? ( ~sec-keys/openpgp-keys-libmicrohttpd-${KEYRING_VER} )" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libmicrohttpd-${KEYRING_VER}.asc + +DOCS=( AUTHORS NEWS COPYING README ChangeLog ) + +pkg_pretend() { + if use kernel_linux ; then + CONFIG_CHECK="" + use epoll && CONFIG_CHECK+=" ~EPOLL" + ERROR_EPOLL="EPOLL is not enabled in kernel, but enabled in libmicrohttpd." + ERROR_EPOLL+=" libmicrohttpd will fail to start with 'automatic' configuration." + use eventfd && CONFIG_CHECK+=" ~EVENTFD" + ERROR_EVENTFD="EVENTFD is enabled in libmicrohttpd, but not available in kernel." + ERROR_EVENTFD+=" libmicrohttpd will not work." + check_extra_config + fi +} + +multilib_src_configure() { + ECONF_SOURCE="${S}" \ + econf \ + --enable-shared \ + $(use_enable static-libs static) \ + --enable-bauth \ + --enable-dauth \ + --enable-messages \ + --enable-postprocessor \ + --enable-httpupgrade \ + --disable-examples \ + --disable-tools \ + --disable-experimental \ + --disable-heavy-tests \ + --enable-itc=$(usex eventfd eventfd pipe) \ + $(use_enable debug asserts) \ + $(use_enable thread-names) \ + $(use_enable epoll) \ + $(use_enable test curl) \ + $(use_with ssl gnutls) \ + $(use_enable ssl https) +} + +multilib_src_install_all() { + default + + if ! use static-libs; then + find "${ED}" -name '*.la' -delete || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libnetfilter_conntrack/libnetfilter_conntrack-1.1.1.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/libnetfilter_conntrack/libnetfilter_conntrack-1.1.1.ebuild index 7bdd9249c67..865da96b5e1 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/libnetfilter_conntrack/libnetfilter_conntrack-1.1.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-libs/libnetfilter_conntrack/libnetfilter_conntrack-1.1.1.ebuild @@ -15,7 +15,7 @@ SRC_URI=" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" RDEPEND=" >=net-libs/libmnl-1.0.3 diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libnetfilter_queue/libnetfilter_queue-1.0.5-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/libnetfilter_queue/libnetfilter_queue-1.0.5-r1.ebuild new file mode 100644 index 00000000000..ed76d719545 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-libs/libnetfilter_queue/libnetfilter_queue-1.0.5-r1.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-info verify-sig + +DESCRIPTION="API to packets that have been queued by the kernel packet filter" +HOMEPAGE="https://www.netfilter.org/projects/libnetfilter_queue/" +SRC_URI="https://www.netfilter.org/projects/${PN}/files/${P}.tar.bz2 + verify-sig? ( https://www.netfilter.org/projects/${PN}/files/${P}.tar.bz2.sig )" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86" +IUSE="doc static-libs" +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/netfilter.org.asc + +RDEPEND=" + >=net-libs/libmnl-1.0.3 + >=net-libs/libnfnetlink-0.0.41 +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + doc? ( app-text/doxygen[dot] ) + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-netfilter ) +" +CONFIG_CHECK="~NETFILTER_NETLINK_QUEUE" + +pkg_setup() { + linux-info_pkg_setup + kernel_is lt 2 6 14 && ewarn "requires at least 2.6.14 kernel version" +} + +src_configure() { + econf $(use_with doc doxygen) +} + +src_install() { + default + find "${ED}" -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libslirp/Manifest b/sdk_container/src/third_party/portage-stable/net-libs/libslirp/Manifest index d31365f58ee..9070f10a402 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/libslirp/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-libs/libslirp/Manifest @@ -1,3 +1 @@ -DIST libslirp-4.6.1.tar.gz 135569 BLAKE2B 7a890912f2a8ce9d6820870e2d29b9c7a2253c403c2bcb127a38e02b2b81d1e262f34571c8a4c05fbf46874b9b2967cb5597cabe169ad54f12702fdd8b90bb3c SHA512 04a9dd88cd58c849a24b9cff405d951952760d99ea2bef0b070463dff088d79f44557a13c9427ba0043f58d4b9e06b68ff64a4f23a7b0d66df594e32e1521cae -DIST libslirp-4.7.0.tar.gz 143251 BLAKE2B f3e1c3a31f09462d79ca6c663a05bde02b075090f3a5f7bc69fef3c72b8517c11a123ad7b46f4b2855cbc9a7a5dbde8d1cb2d5e3e2a9d7eedbe570c200f8bcc6 SHA512 387f4a6dad240ce633df2640bb49c6cb0041c8b3afc8d0ef38186d385f00dd9e4ef4443e93e1b71dbf05e22892b6f2771a87a202e815d8ec899ab5c147a1f09f DIST libslirp-4.9.1.tar.bz2 132888 BLAKE2B f181d1b27110c84f1b7df49d1989246bd7955f7e65eb662dbc212398712787eebbee8b5499c209bd563969037d4be412624185975603a455df71df8375ec8945 SHA512 9e1d950a959dea382a55ff50dc632c9c995817f3e7bb2818d77ee39daee273e401317c45c179301e71b21e88c0659b67965a474117ff17ee4a9f5d63cf2a12b6 diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libslirp/libslirp-4.6.1.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/libslirp/libslirp-4.6.1.ebuild deleted file mode 100644 index 272a78bb0d4..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-libs/libslirp/libslirp-4.6.1.ebuild +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit meson - -KEYWORDS="amd64 arm64 ~m68k ~ppc ppc64 ~riscv x86" -MY_P="${PN}-v${PV}" -SRC_URI="https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v${PV}/${MY_P}.tar.gz -> ${P}.tar.gz" -DESCRIPTION="A TCP-IP emulator used to provide virtual networking services" -HOMEPAGE="https://gitlab.freedesktop.org/slirp/libslirp" - -LICENSE="BSD" -SLOT="0" -IUSE="static-libs" - -RDEPEND="dev-libs/glib:=" - -DEPEND="${RDEPEND}" - -S=${WORKDIR}/${MY_P} - -src_prepare() { - echo "${PV}" > .tarball-version || die - echo -e "#!${BASH}\necho -n \$(cat '${S}/.tarball-version')" > build-aux/git-version-gen || die - default -} - -src_configure() { - local emesonargs=( - -Ddefault_library=$(usex static-libs both shared) - ) - meson_src_configure -} diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libslirp/libslirp-4.7.0.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/libslirp/libslirp-4.7.0.ebuild deleted file mode 100644 index d17d7b4770e..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-libs/libslirp/libslirp-4.7.0.ebuild +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit meson - -KEYWORDS="amd64 arm64 ~loong ~m68k ~ppc ppc64 ~riscv x86" -MY_P="${PN}-v${PV}" -SRC_URI="https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v${PV}/${MY_P}.tar.gz -> ${P}.tar.gz" -DESCRIPTION="A TCP-IP emulator used to provide virtual networking services" -HOMEPAGE="https://gitlab.freedesktop.org/slirp/libslirp" - -LICENSE="BSD" -SLOT="0" -IUSE="static-libs valgrind" - -RDEPEND="dev-libs/glib:=" -# Valgrind usage is automagic but it's not so bad given it's a header-only dep. -DEPEND=" - ${RDEPEND} - valgrind? ( dev-debug/valgrind ) -" - -S=${WORKDIR}/${MY_P} - -src_prepare() { - echo "${PV}" > .tarball-version || die - echo -e "#!${BASH}\necho -n \$(cat '${S}/.tarball-version')" > build-aux/git-version-gen || die - default -} - -src_configure() { - local emesonargs=( - -Ddefault_library=$(usex static-libs both shared) - ) - meson_src_configure -} diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/files/libtirpc-1.3.7-hurd-client.patch b/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/files/libtirpc-1.3.7-hurd-client.patch new file mode 100644 index 00000000000..aa862b48c8d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/files/libtirpc-1.3.7-hurd-client.patch @@ -0,0 +1,50 @@ +Description: Fix client code for hurd, avoiding malloc overflow + When trying to setup a inet connection, it happens the following: + - in libtirp, src/clnt_vc.c, clnt_vc_create gets called + - when trying to allocate vc_fd_locks, __rpc_dtbsize() is used as size + for that array of fd locks + - __rpc_dtbsize(), in src/rpc_generic.c, queries using rlimit the + maximum (rlim_max) number of file descriptors (RLIMIT_NOFILE): + - on Linux, the default is { rlim_cur = 1024, rlim_max = 4096 } + - on kFreeBSD, the default is { rlim_cur = 1024, rlim_max = 1024 } + - on Hurd, the default is { rlim_cur = 1024, rlim_max = RLIM_INFINITY } + meaning that on Hurd the memory allocation fails (as + __rpc_dtbsize() * sizeof(int) overflows and is negative) + + Change libtiprc so __rpc_dtbsize falls back on rlim_cur if rlim_max + is unlimited. + + This patch fixes the client connection using inet sockets; local unix + sockets are not working, for two reasons so far: + - getpeername on them gives EOPNOTSUPP + - SO_REUSEADDR is not implemented for them +Author: Pino Toscano + +Bug-Debian: http://bugs.debian.org/739674 +Forwarded: no +Reviewed-By: Petter Reinholdtsen +Last-Update: 2020-03-03 + +Source: https://sources.debian.org/patches/libtirpc/1.3.7-0.1/ + +--- a/src/rpc_generic.c ++++ b/src/rpc_generic.c +@@ -107,12 +107,17 @@ + { + static int tbsize; + struct rlimit rl; ++ rlim_t lim; + + if (tbsize) { + return (tbsize); + } + if (getrlimit(RLIMIT_NOFILE, &rl) == 0) { +- return (tbsize = (int)rl.rlim_cur); ++ lim = rl.rlim_max; ++ if (lim == RLIM_INFINITY) { ++ lim = rl.rlim_cur; ++ } ++ return (tbsize = (int)lim); + } + /* + * Something wrong. I'll try to save face by returning a diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/files/libtirpc-1.3.7-hurd.patch b/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/files/libtirpc-1.3.7-hurd.patch new file mode 100644 index 00000000000..7ec408b54e8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/files/libtirpc-1.3.7-hurd.patch @@ -0,0 +1,82 @@ +Description: Get source building on Hurd + - Look for before using it. + - Define MAXHOSTNAMELEN to 64 if missing. + - Bind sockets on Hurd like on Linux. +Author: Petter Reinholdtsen +Forwarded: not-needed +Last-Update: 2025-03-17 + +Source: https://sources.debian.org/patches/libtirpc/1.3.7-0.1/ + +--- a/src/auth_unix.c ++++ b/src/auth_unix.c +@@ -56,6 +56,11 @@ + #include + #include + ++/* Workaround for Hurd */ ++#ifndef MAXHOSTNAMELEN ++# define MAXHOSTNAMELEN 64 ++#endif ++ + /* auth_unix.c */ + static void authunix_nextverf (AUTH *); + static bool_t authunix_marshal (AUTH *, XDR *); +--- a/src/bindresvport.c ++++ b/src/bindresvport.c +@@ -64,7 +64,7 @@ + return bindresvport_sa(sd, (struct sockaddr *)sin); + } + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GNU__) + + #define STARTPORT 600 + #define LOWPORT 512 +--- a/src/getpeereid.c ++++ b/src/getpeereid.c +@@ -28,10 +28,14 @@ + #include "config.h" + #endif + ++#include "config.h" ++ + #include + #include + #include +-#include ++#ifdef HAVE_SYS_USER_H ++# include ++#endif /* HAVE_SYS_USER_H */ + + #include + #include +@@ -41,6 +45,9 @@ + int + getpeereid(int s, uid_t *euid, gid_t *egid) + { ++#ifndef HAVE_SYS_USER_H ++ return(-1); ++#else + #ifdef XUCRED_VERSION + struct xucred uc; + #define uid cr_uid +@@ -64,6 +71,7 @@ + *euid = uc.uid; + *egid = uc.gid; + return (0); ++#endif /* HAVE_SYS_USER_H */ + } + + #endif +--- a/configure.ac ++++ b/configure.ac +@@ -200,7 +200,7 @@ + AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h locale.h + netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h sys/ioctl.h + sys/param.h sys/socket.h sys/time.h syslog.h unistd.h features.h +-gssapi/gssapi_ext.h endian.h machine/endian.h]) ++gssapi/gssapi_ext.h endian.h machine/endian.h sys/user.h]) + AX_PTHREAD + AC_CHECK_FUNCS([getpeereid getrpcbyname getrpcbynumber setrpcent endrpcent getrpcent]) + diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/files/libtirpc-1.3.7-nonlinux.patch b/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/files/libtirpc-1.3.7-nonlinux.patch new file mode 100644 index 00000000000..df53ae827a1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/files/libtirpc-1.3.7-nonlinux.patch @@ -0,0 +1,107 @@ +Description: Fix build on non Linux architectures +Author: Andreas Beckmann +Last-Update: 2025-03-17 +Forwarded: not-needed + +--- a/src/svc_dg.c ++++ b/src/svc_dg.c +@@ -650,6 +650,7 @@ + void + svc_dg_enable_pktinfo(int fd, const struct __rpc_sockinfo *si) + { ++#ifdef __linux__ + int val = 1; + + switch (si->si_af) { +@@ -662,6 +663,7 @@ + break; + #endif + } ++#endif + } + + /* +@@ -672,6 +674,7 @@ + int + svc_dg_valid_pktinfo(struct msghdr *msg) + { ++#ifdef __linux__ + struct cmsghdr *cmsg; + + if (!msg->msg_name) +@@ -718,4 +721,7 @@ + } + + return 1; ++#else ++ return 0; ++#endif + } +--- a/src/clnt_vc.c ++++ b/src/clnt_vc.c +@@ -76,10 +76,12 @@ + #define MCALL_MSG_SIZE 24 + + #define CMGROUP_MAX 16 +-#define SCM_CREDS 0x03 /* process creds (struct cmsgcred) */ + + #undef rpc_createerr /* make it clear it is a thread safe variable */ + ++#ifndef SCM_CREDS ++#define SCM_CREDS 0x03 /* process creds (struct cmsgcred) */ ++ + /* + * Credentials structure, used to verify the identity of a peer + * process that has sent us a message. This is allocated by the +@@ -95,6 +97,7 @@ + short cmcred_ngroups; /* number or groups */ + gid_t cmcred_groups[CMGROUP_MAX]; /* groups */ + }; ++#endif + + struct cmessage { + struct cmsghdr cmsg; +--- a/src/getpeereid.c ++++ b/src/getpeereid.c +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -40,12 +41,22 @@ + int + getpeereid(int s, uid_t *euid, gid_t *egid) + { ++#ifdef XUCRED_VERSION ++ struct xucred uc; ++#define uid cr_uid ++#define gid cr_gid ++#else + struct ucred uc; ++#endif + socklen_t uclen; + int error; + + uclen = sizeof(uc); ++#ifdef XUCRED_VERSION ++ error = getsockopt(s, 0, LOCAL_PEERCRED, &uc, &uclen); ++#else + error = getsockopt(s, SOL_SOCKET, SO_PEERCRED, &uc, &uclen); /* SCM_CREDENTIALS */ ++#endif + if (error != 0) + return (error); + // if (uc.cr_version != XUCRED_VERSION) +--- a/tirpc/reentrant.h ++++ b/tirpc/reentrant.h +@@ -36,7 +36,7 @@ + * These definitions are only guaranteed to be valid on Linux. + */ + +-#if defined(__linux__) || defined(__APPLE__) ++#if defined(__linux__) || defined(__GLIBC__) + + #include + diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/libtirpc-1.3.7-r2.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/libtirpc-1.3.7-r2.ebuild index 228c0b7dd32..9717207f0d1 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/libtirpc-1.3.7-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/libtirpc-1.3.7-r2.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit flag-o-matic libtool multilib-minimal +inherit flag-o-matic libtool autotools multilib-minimal DESCRIPTION="Transport Independent RPC library (SunRPC replacement)" HOMEPAGE="https://sourceforge.net/projects/libtirpc/ https://git.linux-nfs.org/?p=steved/libtirpc.git" @@ -30,8 +30,23 @@ BDEPEND=" src_prepare() { cp -ra "${WORKDIR}"/tirpc "${S}"/ || die - default - elibtoolize + if [[ ${CHOST} != *-linux-* ]]; then + + # it hurds + eapply "${FILESDIR}/${P}-nonlinux.patch" + eapply "${FILESDIR}/${P}-hurd.patch" + eapply "${FILESDIR}/${P}-hurd-client.patch" + + default + # not sure if this is a good idea here yet + eautoreconf + + else + + default + elibtoolize + + fi } multilib_src_configure() { 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 b8cdfca87c6..4261920a36d 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,5 +1,6 @@ -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 DIST nghttp2-1.68.0.tar.xz 1691408 BLAKE2B 412842f3ca630b642ef9bb1865d43cf03de804ccc5f0d9ed3643b69930c66a9dd15b11a446c742be950eea24fd1704169c0683b92ea69762d1453ade4f8ed8db SHA512 a5182c2c54cdff3c70bdad204bff9a573cf7951e189d68665087f047cb79e5fc2d5d5aefbb41e2dfe264e2e74fbbe10196cb596248e328c944406ca09da98344 DIST nghttp2-1.68.0.tar.xz.asc 833 BLAKE2B 33a6e8a8e730b01a6cdce1523464645f0ea11593d91d1f286a081bb02221bce54df60568f24039b6c83e0353d8bbc4bb8fb47dbb7d1ce6cd8c9c1e8aeaa18f46 SHA512 3d7dfee6c07407b22b24b330819af78930945d0d822bea916d70b055d93fb43e8e7ef5cb1a9c72c8da057994168170118cb432067b04400f5c53fe65654b2d09 +DIST nghttp2-1.68.1.tar.xz 1675948 BLAKE2B bd5854ebdf58355470018596fd7bab4bb6e23825756fbad08efa4e01dcb4320be939ed676e68689385abf927e6c59da1c1ec85e1812549fc8aabf1a356ca0789 SHA512 d41d3422127d3190feedcd738bc477c00fa74068afbd5a08d84e954aaf20e172ea593a11db21cd70ddc63fe9550dab42cee55605d75dd4bca0f24ac1cd4b75d7 +DIST nghttp2-1.68.1.tar.xz.asc 833 BLAKE2B a7aa207baf9071b2479922bde74cdf48aa0168400bf026324285609d5cd28d044294c2d055d79b3a24d75bcd95f0e4bfbe828aa8ef98bf093f2197635b42e8f1 SHA512 e03dc5ea74388128166cf108858fa1f9de6cdd85df47c58a5ba30f0b8a4835110dd463fff3259e4a78c882cd3f375e52cc0f12943814e445edc1d375a8086543 +DIST nghttp2-1.69.0.tar.xz 1696336 BLAKE2B a1b3509fb609bd93f57e1eee85f24c2db30d15b384d01d1efb1073ccf730d7d8a12f16213f1b0d137d0c6e2cf1b52e03f15038626aed5d6eadf06bc0af233c08 SHA512 31858cfd4a85995d006753c40393a7c23d2bfdd54fdb355757bef1a72b42177d31fff958e9e765a19d83e949eac77998e2bbe933b9390d1f2a1365506f5f6271 +DIST nghttp2-1.69.0.tar.xz.asc 833 BLAKE2B bfa783399989588902a37e32c6f4e55d1bb10a94ef18f8189ba82f52db73e9414a07a4899d5ff7a3da8d741df06d7845047e4e6575d4943fd66b739512a6dfca SHA512 c0086da9409a2ef04a109229184e37819d18d2d0268cc0ac2c7b9d129cf32cb2893d1a61d4fe7a24c880ceced1faf98c7febd5915fb4be5de373346a73656068 diff --git a/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/files/nghttp2-1.65.0-gcc16.patch b/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/files/nghttp2-1.65.0-gcc16.patch deleted file mode 100644 index 9ec93985404..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/files/nghttp2-1.65.0-gcc16.patch +++ /dev/null @@ -1,29 +0,0 @@ -https://github.com/nghttp2/nghttp2/commit/1440e883475488ddda25556c7b3d9f78694716ba - -From 1440e883475488ddda25556c7b3d9f78694716ba Mon Sep 17 00:00:00 2001 -From: Sergei Trofimovich -Date: Fri, 30 May 2025 21:20:51 +0100 -Subject: [PATCH] src/template.h: add missing `cstdint` include - -Without the change build against upcoming gcc-16 fails as: - - template.h:457:9: error: ISO C++ forbids declaration of 'type name' with no type [-fpermissive] - 457 | const uint8_t, N == std::dynamic_extent ? std::dynamic_extent : N * sizeof(T)> - | ^~~~~~~ ---- - src/template.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/template.h b/src/template.h -index e154057fd4..4f0622b2c4 100644 ---- a/src/template.h -+++ b/src/template.h -@@ -27,6 +27,7 @@ - - #include "nghttp2_config.h" - -+#include - #include - #include - #include - diff --git a/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-1.65.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-1.65.0-r2.ebuild deleted file mode 100644 index f9844b40b00..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-1.65.0-r2.ebuild +++ /dev/null @@ -1,74 +0,0 @@ -# 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 ~arm64-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}] - >=virtual/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" - -PATCHES=( - "${FILESDIR}"/${P}-gcc16.patch -) - -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-libs/nghttp2/nghttp2-1.66.0.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-1.66.0.ebuild deleted file mode 100644 index a2c5561ec62..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-1.66.0.ebuild +++ /dev/null @@ -1,70 +0,0 @@ -# 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 ~arm64-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}] - >=virtual/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-libs/nghttp2/nghttp2-1.67.1.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-1.67.1.ebuild deleted file mode 100644 index a2c5561ec62..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-1.67.1.ebuild +++ /dev/null @@ -1,70 +0,0 @@ -# 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 ~arm64-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}] - >=virtual/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-libs/nghttp2/nghttp2-1.68.1.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-1.68.1.ebuild new file mode 100644 index 00000000000..aaf1c0a74fe --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-1.68.1.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2026 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 + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/nghttp2.asc + inherit autotools verify-sig + SRC_URI=" + https://github.com/nghttp2/nghttp2/releases/download/v${PV}/${P}.tar.xz + verify-sig? ( https://github.com/nghttp2/nghttp2/releases/download/v${PV}/${P}.tar.xz.asc ) + " + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-nghttp2 )" +fi + +LICENSE="MIT" +SLOT="0/1.14" # 1. +IUSE="debug hpack-tools systemd test utils xml" +RESTRICT="!test? ( test )" + +RDEPEND=" + hpack-tools? ( >=dev-libs/jansson-2.5:= ) + utils? ( + >=dev-libs/openssl-1.0.2:0=[-bindist(-),${MULTILIB_USEDEP}] + >=dev-libs/libev-4.15[${MULTILIB_USEDEP}] + net-dns/c-ares:=[${MULTILIB_USEDEP}] + >=virtual/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 + --without-jemalloc + $(use_enable debug) + $(multilib_native_use_enable hpack-tools) + $(multilib_native_use_with hpack-tools jansson) + $(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-libs/nghttp2/nghttp2-1.69.0.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-1.69.0.ebuild new file mode 100644 index 00000000000..aaf1c0a74fe --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-1.69.0.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2026 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 + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/nghttp2.asc + inherit autotools verify-sig + SRC_URI=" + https://github.com/nghttp2/nghttp2/releases/download/v${PV}/${P}.tar.xz + verify-sig? ( https://github.com/nghttp2/nghttp2/releases/download/v${PV}/${P}.tar.xz.asc ) + " + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-nghttp2 )" +fi + +LICENSE="MIT" +SLOT="0/1.14" # 1. +IUSE="debug hpack-tools systemd test utils xml" +RESTRICT="!test? ( test )" + +RDEPEND=" + hpack-tools? ( >=dev-libs/jansson-2.5:= ) + utils? ( + >=dev-libs/openssl-1.0.2:0=[-bindist(-),${MULTILIB_USEDEP}] + >=dev-libs/libev-4.15[${MULTILIB_USEDEP}] + net-dns/c-ares:=[${MULTILIB_USEDEP}] + >=virtual/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 + --without-jemalloc + $(use_enable debug) + $(multilib_native_use_enable hpack-tools) + $(multilib_native_use_with hpack-tools jansson) + $(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-libs/nghttp2/nghttp2-9999.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-9999.ebuild index 2e9e9510b2e..aaf1c0a74fe 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-9999.ebuild @@ -27,12 +27,11 @@ fi LICENSE="MIT" SLOT="0/1.14" # 1. -IUSE="debug hpack-tools jemalloc systemd test utils xml" +IUSE="debug hpack-tools 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}] @@ -58,10 +57,10 @@ multilib_src_configure() { --disable-failmalloc --disable-werror --enable-threads + --without-jemalloc $(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) diff --git a/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/Manifest b/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/Manifest index 6bb7ddd4b62..384e5b7d660 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/Manifest @@ -3,3 +3,7 @@ DIST ngtcp2-1.20.0.tar.xz 684060 BLAKE2B 1666c711688674eca1aba86dfca68f421557bf0 DIST ngtcp2-1.20.0.tar.xz.asc 833 BLAKE2B 62adeb882ce0023934534f5bad8f13395d66e0a54505ea654e6930c45eeba1fe5e21b964e1d8d2893732a6b8e742d1781c38034ebc69f4c87da5261ec1c7491e SHA512 1a57a1f9969f62a852390193de76685984e87ef5deec53a5a2937198deb01f7b2980989406f23ad58441baec9f881094028bd65c6cf309a73575a41d2ad1b01a DIST ngtcp2-1.21.0.tar.xz 687504 BLAKE2B 1ce024c811b0e084478607a48d5ebc1e5840b9067178d5328fe9c32336243af3860923905a35043b9e431b518df6c7ff687e66955fe96bb344b7a980c8b42d31 SHA512 8f1fab5f71364da2b42a3a2726089520b7b2bf751bd7ba3b8de153091cb36c6e983ab71cf2bb8cd62b29b665331dc08c5e40d106066f79474059a77e4f7f9361 DIST ngtcp2-1.21.0.tar.xz.asc 833 BLAKE2B 097b3328acd32c8a3fd77b9494b56d41fd93d511e2d709a607f5865b4408e8c6c5ba6c0ce99904b378845f7dad856ebefeea334e0b325ea416a3295a21b97a03 SHA512 267ab883b912ae9cb294d441d2937446db1bb46e0ca7df1fe78a4108caf94f403af75ec01448a9ad01e9b5f6045db2929d22eeb8feebcf35c0ed1e83100eef63 +DIST ngtcp2-1.22.0.tar.xz 697608 BLAKE2B efbbf259770ee7a8b8a486e05278354ce3aed60310d87a63a56bbb879cce14d474f1eb2eb94797bad0bd1df07e5b3302e564038641974a68b767ab655a774dd4 SHA512 2c07716c8b06775f6c5e7442c10e4202921f5c6000cfad10c2fdbf4b752bb1898ee474344461fc5d1603d36bdee838aa717287a1f661627d8524689e58b21509 +DIST ngtcp2-1.22.0.tar.xz.asc 833 BLAKE2B 5ede902e49cae93015d46c3fc9fe66baac50200e94336c2af4d0d1cba5fabfeaee163104b4810335dc2c9b1662d9dcf585b69ce82ee8fe5ea55b8d0826b86d61 SHA512 d73cc96124c8e06d1e1fea9115f192da9e1d15f4854094690d172dcd4706603ca57fdf6eb921acc9f8eb29da49f24d7526121b87c13e18d90bdc9ea627a754dd +DIST ngtcp2-1.22.1.tar.xz 692880 BLAKE2B ff8c8f3c8e6756791bd7180c93a1e8e7fa19595e22f57b683d76a4064fba205cae7d7661d9407e62e11032c2976e683115725ba2ea8e2d586f1f678ec0889e8f SHA512 f2f137b034932448cd34581d55cbcdaa028c36568d8000f7aad5a35a0765cf4fade62e224a1ad7ef63a9e3a240594b53485e823a8a21c8056dc6f02f5811704d +DIST ngtcp2-1.22.1.tar.xz.asc 833 BLAKE2B 2267accfb3508e2469932035d8730a0c906ac0fed5149d1f44b41d8fa85578eee9d52af98742363eb700e97fd57c97c19237da6b5839c5019ed9e03af82ee198 SHA512 b670b375c7b3c2eecd15770a80372cb9cee7d2102ceb38e6a831c5f7ba6c8f0957063fc2fa6966f76f08a0ee0035585d30d546a1130a8a32ef197d1d87ecfc2d diff --git a/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/ngtcp2-1.22.0.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/ngtcp2-1.22.0.ebuild new file mode 100644 index 00000000000..71a514ea78e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/ngtcp2-1.22.0.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2026 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 #951524 + +inherit multilib-minimal + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/ngtcp2/ngtcp2.git" + inherit autotools git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/ngtcp2.asc + inherit verify-sig + SRC_URI=" + https://github.com/ngtcp2/ngtcp2/releases/download/v${PV}/${P}.tar.xz + verify-sig? ( https://github.com/ngtcp2/ngtcp2/releases/download/v${PV}/${P}.tar.xz.asc ) + " + + KEYWORDS="amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86 ~arm64-macos ~x64-macos" + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-ngtcp2 )" +fi + +DESCRIPTION="Implementation of the IETF QUIC Protocol" +HOMEPAGE="https://nghttp2.org/ngtcp2/ https://github.com/ngtcp2/ngtcp2" + +LICENSE="MIT" +SLOT="0/0" +IUSE="gnutls +openssl +ssl" +REQUIRED_USE="ssl? ( || ( gnutls openssl ) )" + +# Uses SSL_set_quic_tls_cbs to detect OpenSSL. The function was introduced in +# OpenSSL 3.5: +# https://docs.openssl.org/master/man3/SSL_set_quic_tls_cbs/#history. +RDEPEND=" + ssl? ( + gnutls? ( >=net-libs/gnutls-3.7.2:=[${MULTILIB_USEDEP}] ) + openssl? ( >=dev-libs/openssl-3.5:=[${MULTILIB_USEDEP}] ) + ) +" +DEPEND="${RDEPEND}" +BDEPEND+=" virtual/pkgconfig" + +# QuicTLS function, the OpenSSL support is checked via SSL_set_quic_tls_cbs. +QA_CONFIG_IMPL_DECL_SKIP=( + 'SSL_provide_quic_data' +) + +src_prepare() { + default + [[ ${PV} == 9999 ]] && eautoreconf +} + +multilib_src_configure() { + local myeconfargs=( + --disable-werror + --enable-lib-only + $(use_with openssl) + $(use_with gnutls) + --without-boringssl + --without-picotls + --without-wolfssl + --without-libev + --without-libnghttp3 + --without-jemalloc + ) + 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-libs/ngtcp2/ngtcp2-1.22.1.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/ngtcp2-1.22.1.ebuild new file mode 100644 index 00000000000..a910ee17d3d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/ngtcp2-1.22.1.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2026 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 #951524 + +inherit multilib-minimal + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/ngtcp2/ngtcp2.git" + inherit autotools git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/ngtcp2.asc + inherit verify-sig + SRC_URI=" + https://github.com/ngtcp2/ngtcp2/releases/download/v${PV}/${P}.tar.xz + verify-sig? ( https://github.com/ngtcp2/ngtcp2/releases/download/v${PV}/${P}.tar.xz.asc ) + " + + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos" + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-ngtcp2 )" +fi + +DESCRIPTION="Implementation of the IETF QUIC Protocol" +HOMEPAGE="https://nghttp2.org/ngtcp2/ https://github.com/ngtcp2/ngtcp2" + +LICENSE="MIT" +SLOT="0/0" +IUSE="gnutls +openssl +ssl" +REQUIRED_USE="ssl? ( || ( gnutls openssl ) )" + +# Uses SSL_set_quic_tls_cbs to detect OpenSSL. The function was introduced in +# OpenSSL 3.5: +# https://docs.openssl.org/master/man3/SSL_set_quic_tls_cbs/#history. +RDEPEND=" + ssl? ( + gnutls? ( >=net-libs/gnutls-3.7.2:=[${MULTILIB_USEDEP}] ) + openssl? ( >=dev-libs/openssl-3.5:=[${MULTILIB_USEDEP}] ) + ) +" +DEPEND="${RDEPEND}" +BDEPEND+=" virtual/pkgconfig" + +# QuicTLS function, the OpenSSL support is checked via SSL_set_quic_tls_cbs. +QA_CONFIG_IMPL_DECL_SKIP=( + 'SSL_provide_quic_data' +) + +src_prepare() { + default + [[ ${PV} == 9999 ]] && eautoreconf +} + +multilib_src_configure() { + local myeconfargs=( + --disable-werror + --enable-lib-only + $(use_with openssl) + $(use_with gnutls) + --without-boringssl + --without-picotls + --without-wolfssl + --without-libev + --without-libnghttp3 + --without-jemalloc + ) + 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/Manifest b/sdk_container/src/third_party/portage-stable/net-misc/chrony/Manifest index 87cd3bead7c..fdc9e493a85 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/chrony/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-misc/chrony/Manifest @@ -1,6 +1,2 @@ -DIST chrony-4.6.1.tar.gz 636076 BLAKE2B cc1299ba680eae158da9ebc6d4451ffc8b352b9b0da47056e4ccd21495589d88ee9f8cb9ef8508e7c1a1b0a14b6679453a6d324111308a00888123a265eca788 SHA512 646ae08f2587366236796f2399d8ab3eb570979e0d82f5d13f5cec49939054c876cc93dc20c8d38e105fd3500e1720d05a223a15076783cd882d0de43afd9c7e -DIST chrony-4.6.1.tar.gz.asc 833 BLAKE2B 19e7359220beb93ede262cad7fec4963b15873510530690eefcdc28c69222ac40e41849487b9514665443dff888fbeeea1a2cbef0517da38a210a6573f4e9c99 SHA512 992b706636bf3a7eb6d502562a4990c9d8e20e5f3011d2cdb2ceb32220e9a1c2bfa6eca767212cee49b811823872602dc33f9e7201a7f9a93cc9c90e81b1db49 -DIST chrony-4.7.tar.gz 644610 BLAKE2B a1a951ea925c183c97d6b934d85d4cb35b15db555d64a4f7abe75a5a5cf69d4747ccbd9d09be403187991745dd38fc4eea994a7c4488cab44c11c6600596ec22 SHA512 419594ab8ff0fd42acaf6e4ca1a011d5cf87c8d90ab040e90bb004b43570888329531593f073fb7c5a1093b5754d61c1ae6034d0b86660e4dc37d42ee0f30623 -DIST chrony-4.7.tar.gz.asc 833 BLAKE2B 67facf41c41b729794f2cb0ce63402b91b5915cec53997f22327687d951be0b677274567bc99c03c6d2702de7c2a69becb0cf88c22147528ce0e86a823ff3af8 SHA512 c2351e6e624f60e82973bddd5cb1d84c90ee5e862d7d24dfc2b7a8f60a6a948f7446c9b7d68c5e72be4afccbd5d8f572141a4e0bde9cfeefc59aebb7e4fc74e1 DIST chrony-4.8.tar.gz 649368 BLAKE2B d84e9911d33b59af3022e4b01e46ad26c33b0feb5b99975dba9b88d15b4e0f51c6fecbc44bb77b3027008d203d5cee7e6a4afe0d4ab97a9f6fc1609742972dfe SHA512 949b796bb34db32a5c1b9e6b53be6a22e51c59f24a316d585b8a52a52ab1f61bdf0378dc58b282bb0ba4fac1f05e1e99fbe37cb4259aa2b359e7bf679c176aab DIST chrony-4.8.tar.gz.asc 833 BLAKE2B b4bf02e67294ebdcba875787fdca5dfcae890d6e1b464c6f351d05f29ef403541bc90c120e446a2c270d968a2de0092f362229ae7c436297bc481b7aed606ae6 SHA512 df7f4e06f74a4b8c9a49e8fe57ea02e0324c5683d036412c32192a09f08e08f33537609cef8df0b4302bfcd63332b3092f33f40c8d02857c93ecea13822b5b47 diff --git a/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.6.1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.6.1.ebuild deleted file mode 100644 index 8ec6f48bb32..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.6.1.ebuild +++ /dev/null @@ -1,272 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit edo systemd tmpfiles toolchain-funcs - -DESCRIPTION="NTP client and server programs" -HOMEPAGE="https://chrony-project.org/" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://gitlab.com/chrony/chrony.git" - inherit git-r3 -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/mlichvar.asc - inherit verify-sig - - SRC_URI="https://chrony-project.org/releases/${P/_/-}.tar.gz" - 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" - fi -fi - -S="${WORKDIR}/${P/_/-}" - -LICENSE="GPL-2" -SLOT="0" -IUSE="+caps +cmdmon debug html libtomcrypt +nettle nss +ntp +nts +phc pps +readline +refclock +rtc samba +seccomp +sechash selinux" -# nettle > nss > libtomcrypt in configure -REQUIRED_USE=" - sechash? ( || ( nettle nss libtomcrypt ) ) - nettle? ( !nss ) - nss? ( !nettle ) - libtomcrypt? ( !nettle !nss ) - !sechash? ( !nss ) - !sechash? ( !nts? ( !nettle ) ) -" - -DEPEND=" - caps? ( - sys-libs/libcap - ) - libtomcrypt? ( dev-libs/libtomcrypt:= ) - nettle? ( dev-libs/nettle:= ) - nss? ( dev-libs/nss:= ) - nts? ( net-libs/gnutls:= ) - pps? ( net-misc/pps-tools ) - readline? ( dev-libs/libedit ) - seccomp? ( sys-libs/libseccomp ) -" -RDEPEND=" - ${DEPEND} - caps? ( - acct-group/ntp - acct-user/ntp - ) - selinux? ( sec-policy/selinux-chronyd ) -" -BDEPEND=" - caps? ( - acct-group/ntp - acct-user/ntp - ) - html? ( dev-ruby/asciidoctor ) - nts? ( virtual/pkgconfig ) - sechash? ( - nettle? ( virtual/pkgconfig ) - nss? ( virtual/pkgconfig ) - ) -" - -if [[ ${PV} == 9999 ]] ; then - # Needed for doc generation in 9999 - REQUIRED_USE+=" html" - BDEPEND+=" - app-alternatives/yacc - virtual/w3m - " -else - BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-mlichvar-20210513 )" -fi - -PATCHES=( - "${FILESDIR}"/${PN}-3.5-pool-vendor-gentoo.patch - "${FILESDIR}"/${PN}-4.2-systemd-gentoo.patch -) - -QA_CONFIG_IMPL_DECL_SKIP=( - # FP, checks with macro afterwards (bug #907877) - recvmmsg -) - -src_prepare() { - default - - sed -i \ - -e 's:/etc/chrony\.conf:/etc/chrony/chrony.conf:g' \ - doc/* examples/* || die - - cp "${FILESDIR}"/chronyd.conf-r3 "${T}"/chronyd.conf || die -} - -src_configure() { - if ! use caps ; then - sed -i \ - -e 's/ -u ntp//' \ - "${T}"/chronyd.conf examples/chronyd.service || die - fi - - if ! use seccomp ; then - sed -i \ - -e 's/ -F 2//' \ - "${T}"/chronyd.conf examples/chronyd.service || die - fi - - tc-export CC PKG_CONFIG - - # Update from time to time with output from "date +%s" - # on a system that is time-synced. - export SOURCE_DATE_EPOCH=1607976314 - - # Not an autotools generated script - local myconf=( - $(use_enable seccomp scfilter) - - $(usev !caps '--disable-linuxcaps') - $(usev !cmdmon '--disable-cmdmon') - $(usev debug '--enable-debug') - - # USE=readline here means "readline-like functionality" - # chrony only supports libedit in terms of the library providing - # it. - $(usev !readline '--without-editline --disable-readline') - - $(usev !libtomcrypt '--without-tomcrypt') - $(usev !nettle '--without-nettle') - $(usev !nss '--without-nss') - $(usev !ntp '--disable-ntp') - $(usev !nts '--disable-nts') - $(usev !nts '--without-gnutls') - $(usev !phc '--disable-phc') - $(usev !pps '--disable-pps') - $(usev !refclock '--disable-refclock') - $(usev !rtc '--disable-rtc') - $(usev samba '--enable-ntp-signd') - $(usev !sechash '--disable-sechash') - - --chronysockdir="${EPREFIX}/run/chrony" - --docdir="${EPREFIX}/usr/share/doc/${PF}" - --mandir="${EPREFIX}/usr/share/man" - --prefix="${EPREFIX}/usr" - --sysconfdir="${EPREFIX}/etc/chrony" - --with-hwclockfile="${EPREFIX}/etc/adjtime" - --with-pidfile="${EPREFIX}/run/chrony/chronyd.pid" - - ${EXTRA_ECONF} - ) - - # Print the ./configure call - edo ./configure "${myconf[@]}" || die -} - -src_compile() { - if [[ ${PV} == 9999 ]] ; then - # Uses w3m - emake -C doc man txt - fi - - emake all docs $(usev !html 'ADOC=true') -} - -src_install() { - default - - # Compatibility with other distributions who install to /etc/chrony.conf (bug #835461) - dosym -r /etc/chrony/chrony.conf /etc/chrony.conf - - newinitd "${FILESDIR}"/chronyd.init-r2 chronyd - newconfd "${T}"/chronyd.conf chronyd - - insinto /etc/${PN} - newins examples/chrony.conf.example1 chrony.conf - - docinto examples - dodoc examples/*.example* - - newtmpfiles - chronyd.conf <<<"d /run/chrony 0750 $(usex caps 'ntp ntp' 'root root')" - - if use html ; then - docinto html - dodoc doc/*.html - fi - - keepdir /var/{lib,log}/chrony - - if use caps ; then - # Prepare a directory for the chrony.drift file (a la ntpsec) - # Ensures the environment is sane on new installs - # bug #711058 - fowners -R ntp:ntp /var/{lib,log}/chrony - fperms -R 770 /var/lib/chrony - fi - - insinto /etc/logrotate.d - newins "${FILESDIR}"/chrony-2.4-r1.logrotate chrony - - systemd_dounit examples/chronyd.service - systemd_dounit examples/chrony-wait.service - systemd_enable_ntpunit 50-chrony chronyd.service -} - -pkg_preinst() { - HAD_CAPS=0 - HAD_SECCOMP=0 - HAD_PRE_NEW_SECCOMP_LEVEL=0 - - # See https://dev.gentoo.org/~zmedico/portage/doc/portage.html#package-ebuild-phases-after-2.1.5 - # in "Ebuild Phases" for an explanation of why we need to save the variable beforehand - if has_version 'net-misc/chrony[caps]' ; then - HAD_CAPS=1 - fi - - if has_version 'net-misc/chrony[seccomp]' ; then - HAD_SECCOMP=1 - fi - - if has_version '>=net-misc/chrony-4.1[seccomp]' ; then - # This version introduced a new filter level: -F 2 - # It's a limited set of seccomp filters designed to be 'bare minimum' - HAD_PRE_NEW_SECCOMP_LEVEL=1 - fi -} - -pkg_postinst() { - tmpfiles_process chronyd.conf - - if [[ -n "${REPLACING_VERSIONS}" ]] ; then - if use caps && ! [[ ${HAD_CAPS} -eq 1 ]] ; then - # bug #719876 - ewarn "Please adjust permissions on ${EROOT}/var/{lib,log}/chrony to be owned by ntp:ntp" - ewarn "e.g. chown -R ntp:ntp ${EROOT}/var/{lib,log}/chrony" - ewarn "This is necessary for chrony to drop privileges" - elif ! use caps && [[ ${HAD_CAPS} -eq 0 ]] ; then - ewarn "Please adjust permissions on ${EROOT}/var/{lib,log}/chrony to be owned by root:root" - fi - fi - - # See bug #783915 for general discussion on enabling seccomp filtering - # by default. - local show_seccomp_enable_msg=0 - - # Was seccomp disabled before and now enabled? - if [[ ${HAD_SECCOMP} -eq 0 ]] && use seccomp ; then - show_seccomp_enable_msg=1 - fi - - # Are we coming from an old version without the new 'minimal' filter? - # (-F 2) - if [[ ${HAD_PRE_NEW_SECCOMP_LEVEL} -eq 0 ]] ; then - show_seccomp_enable_msg=1 - fi - - if [[ ${show_seccomp_enable_msg} -eq 1 ]] ; then - elog "To enable seccomp in a stricter mode, please modify:" - elog "- ${EROOT}/etc/conf.d/chronyd for OpenRC" - elog "- systemctl edit chronyd for systemd" - elog "to use -F 1 or -F -1 instead of -F 2 (see man chronyd)" - elog "By default, we now use -F 2 which is a baseline/minimal filter." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.7.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.7.ebuild deleted file mode 100644 index 649a415e5ad..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.7.ebuild +++ /dev/null @@ -1,271 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit edo systemd tmpfiles toolchain-funcs - -DESCRIPTION="NTP client and server programs" -HOMEPAGE="https://chrony-project.org/" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://gitlab.com/chrony/chrony.git" - inherit git-r3 -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/mlichvar.asc - inherit verify-sig - - SRC_URI="https://chrony-project.org/releases/${P/_/-}.tar.gz" - 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" - fi -fi - -S="${WORKDIR}/${P/_/-}" - -LICENSE="GPL-2" -SLOT="0" -IUSE="+caps +cmdmon debug html libtomcrypt +nettle nss +nts +phc pps +readline +refclock +rtc samba +seccomp +sechash selinux" -# nettle > nss > libtomcrypt in configure -REQUIRED_USE=" - sechash? ( || ( nettle nss libtomcrypt ) ) - nettle? ( !nss ) - nss? ( !nettle ) - libtomcrypt? ( !nettle !nss ) - !sechash? ( !nss ) - !sechash? ( !nts? ( !nettle ) ) -" - -DEPEND=" - caps? ( - sys-libs/libcap - ) - libtomcrypt? ( dev-libs/libtomcrypt:= ) - nettle? ( dev-libs/nettle:= ) - nss? ( dev-libs/nss:= ) - nts? ( net-libs/gnutls:= ) - pps? ( net-misc/pps-tools ) - readline? ( dev-libs/libedit ) - seccomp? ( sys-libs/libseccomp ) -" -RDEPEND=" - ${DEPEND} - caps? ( - acct-group/ntp - acct-user/ntp - ) - selinux? ( sec-policy/selinux-chronyd ) -" -BDEPEND=" - caps? ( - acct-group/ntp - acct-user/ntp - ) - html? ( dev-ruby/asciidoctor ) - nts? ( virtual/pkgconfig ) - sechash? ( - nettle? ( virtual/pkgconfig ) - nss? ( virtual/pkgconfig ) - ) -" - -if [[ ${PV} == 9999 ]] ; then - # Needed for doc generation in 9999 - REQUIRED_USE+=" html" - BDEPEND+=" - app-alternatives/yacc - virtual/w3m - " -else - BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-mlichvar-20210513 )" -fi - -PATCHES=( - "${FILESDIR}"/${PN}-4.7-pool-vendor-gentoo.patch - "${FILESDIR}"/${PN}-4.7-systemd-gentoo.patch -) - -QA_CONFIG_IMPL_DECL_SKIP=( - # FP, checks with macro afterwards (bug #907877) - recvmmsg -) - -src_prepare() { - default - - sed -i \ - -e 's:/etc/chrony\.conf:/etc/chrony/chrony.conf:g' \ - doc/* examples/* || die - - cp "${FILESDIR}"/chronyd.conf-r3 "${T}"/chronyd.conf || die -} - -src_configure() { - if ! use caps ; then - sed -i \ - -e 's/ -u ntp//' \ - "${T}"/chronyd.conf examples/chronyd.service || die - fi - - if ! use seccomp ; then - sed -i \ - -e 's/ -F 2//' \ - "${T}"/chronyd.conf examples/chronyd.service || die - fi - - tc-export CC PKG_CONFIG - - # Update from time to time with output from "date +%s" - # on a system that is time-synced. - export SOURCE_DATE_EPOCH=1607976314 - - # Not an autotools generated script - local myconf=( - $(use_enable seccomp scfilter) - - $(usev !caps '--disable-linuxcaps') - $(usev !cmdmon '--disable-cmdmon') - $(usev debug '--enable-debug') - - # USE=readline here means "readline-like functionality" - # chrony only supports libedit in terms of the library providing - # it. - $(usev !readline '--without-editline --disable-readline') - - $(usev !libtomcrypt '--without-tomcrypt') - $(usev !nettle '--without-nettle') - $(usev !nss '--without-nss') - $(usev !nts '--disable-nts') - $(usev !nts '--without-gnutls') - $(usev !phc '--disable-phc') - $(usev !pps '--disable-pps') - $(usev !refclock '--disable-refclock') - $(usev !rtc '--disable-rtc') - $(usev samba '--enable-ntp-signd') - $(usev !sechash '--disable-sechash') - - --chronysockdir="${EPREFIX}/run/chrony" - --docdir="${EPREFIX}/usr/share/doc/${PF}" - --mandir="${EPREFIX}/usr/share/man" - --prefix="${EPREFIX}/usr" - --sysconfdir="${EPREFIX}/etc/chrony" - --with-hwclockfile="${EPREFIX}/etc/adjtime" - --with-pidfile="${EPREFIX}/run/chrony/chronyd.pid" - - ${EXTRA_ECONF} - ) - - # Print the ./configure call - edo ./configure "${myconf[@]}" || die -} - -src_compile() { - if [[ ${PV} == 9999 ]] ; then - # Uses w3m - emake -C doc man txt - fi - - emake all docs $(usev !html 'ADOC=true') -} - -src_install() { - default - - # Compatibility with other distributions who install to /etc/chrony.conf (bug #835461) - dosym -r /etc/chrony/chrony.conf /etc/chrony.conf - - newinitd "${FILESDIR}"/chronyd.init-r2 chronyd - newconfd "${T}"/chronyd.conf chronyd - - insinto /etc/${PN} - newins examples/chrony.conf.example1 chrony.conf - - docinto examples - dodoc examples/*.example* - - newtmpfiles - chronyd.conf <<<"d /run/chrony 0750 $(usex caps 'ntp ntp' 'root root')" - - if use html ; then - docinto html - dodoc doc/*.html - fi - - keepdir /var/{lib,log}/chrony - - if use caps ; then - # Prepare a directory for the chrony.drift file (a la ntpsec) - # Ensures the environment is sane on new installs - # bug #711058 - fowners -R ntp:ntp /var/{lib,log}/chrony - fperms -R 770 /var/lib/chrony - fi - - insinto /etc/logrotate.d - newins "${FILESDIR}"/chrony-2.4-r1.logrotate chrony - - systemd_dounit examples/chronyd.service - systemd_dounit examples/chrony-wait.service - systemd_enable_ntpunit 50-chrony chronyd.service -} - -pkg_preinst() { - HAD_CAPS=0 - HAD_SECCOMP=0 - HAD_PRE_NEW_SECCOMP_LEVEL=0 - - # See https://dev.gentoo.org/~zmedico/portage/doc/portage.html#package-ebuild-phases-after-2.1.5 - # in "Ebuild Phases" for an explanation of why we need to save the variable beforehand - if has_version 'net-misc/chrony[caps]' ; then - HAD_CAPS=1 - fi - - if has_version 'net-misc/chrony[seccomp]' ; then - HAD_SECCOMP=1 - fi - - if has_version '>=net-misc/chrony-4.1[seccomp]' ; then - # This version introduced a new filter level: -F 2 - # It's a limited set of seccomp filters designed to be 'bare minimum' - HAD_PRE_NEW_SECCOMP_LEVEL=1 - fi -} - -pkg_postinst() { - tmpfiles_process chronyd.conf - - if [[ -n "${REPLACING_VERSIONS}" ]] ; then - if use caps && ! [[ ${HAD_CAPS} -eq 1 ]] ; then - # bug #719876 - ewarn "Please adjust permissions on ${EROOT}/var/{lib,log}/chrony to be owned by ntp:ntp" - ewarn "e.g. chown -R ntp:ntp ${EROOT}/var/{lib,log}/chrony" - ewarn "This is necessary for chrony to drop privileges" - elif ! use caps && [[ ${HAD_CAPS} -eq 0 ]] ; then - ewarn "Please adjust permissions on ${EROOT}/var/{lib,log}/chrony to be owned by root:root" - fi - fi - - # See bug #783915 for general discussion on enabling seccomp filtering - # by default. - local show_seccomp_enable_msg=0 - - # Was seccomp disabled before and now enabled? - if [[ ${HAD_SECCOMP} -eq 0 ]] && use seccomp ; then - show_seccomp_enable_msg=1 - fi - - # Are we coming from an old version without the new 'minimal' filter? - # (-F 2) - if [[ ${HAD_PRE_NEW_SECCOMP_LEVEL} -eq 0 ]] ; then - show_seccomp_enable_msg=1 - fi - - if [[ ${show_seccomp_enable_msg} -eq 1 ]] ; then - elog "To enable seccomp in a stricter mode, please modify:" - elog "- ${EROOT}/etc/conf.d/chronyd for OpenRC" - elog "- systemctl edit chronyd for systemd" - elog "to use -F 1 or -F -1 instead of -F 2 (see man chronyd)" - elog "By default, we now use -F 2 which is a baseline/minimal filter." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.8-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.8-r1.ebuild new file mode 100644 index 00000000000..e6623482d24 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.8-r1.ebuild @@ -0,0 +1,293 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit edo systemd tmpfiles toolchain-funcs + +DESCRIPTION="NTP client and server programs" +HOMEPAGE="https://chrony-project.org/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://gitlab.com/chrony/chrony.git" + inherit git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/mlichvar.asc + inherit verify-sig + + SRC_URI="https://chrony-project.org/releases/${P/_/-}.tar.gz" + 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 ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" + fi +fi + +S="${WORKDIR}/${P/_/-}" + +LICENSE="GPL-2" +SLOT="0" +IUSE="+caps +cmdmon debug html libtomcrypt +nettle nss +nts +phc pps +readline +refclock +rtc samba +seccomp +sechash selinux" +# nettle > nss > libtomcrypt in configure +REQUIRED_USE=" + sechash? ( || ( nettle nss libtomcrypt ) ) + nettle? ( !nss ) + nss? ( !nettle ) + libtomcrypt? ( !nettle !nss ) + !sechash? ( !nss ) + !sechash? ( !nts? ( !nettle ) ) +" + +DEPEND=" + caps? ( + sys-libs/libcap + ) + libtomcrypt? ( dev-libs/libtomcrypt:= ) + nettle? ( dev-libs/nettle:= ) + nss? ( dev-libs/nss:= ) + nts? ( net-libs/gnutls:= ) + pps? ( net-misc/pps-tools ) + readline? ( dev-libs/libedit ) + seccomp? ( sys-libs/libseccomp ) +" +RDEPEND=" + ${DEPEND} + caps? ( + acct-group/ntp + acct-user/ntp + ) + selinux? ( sec-policy/selinux-chronyd ) +" +BDEPEND=" + caps? ( + acct-group/ntp + acct-user/ntp + ) + html? ( dev-ruby/asciidoctor ) + nts? ( virtual/pkgconfig ) + sechash? ( + nettle? ( virtual/pkgconfig ) + nss? ( virtual/pkgconfig ) + ) +" + +if [[ ${PV} == 9999 ]] ; then + # Needed for doc generation in 9999 + REQUIRED_USE+=" html" + BDEPEND+=" + app-alternatives/yacc + virtual/w3m + " +else + BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-mlichvar-20210513 )" +fi + +PATCHES=( + "${FILESDIR}"/${PN}-4.8-pool-vendor-gentoo.patch + "${FILESDIR}"/${PN}-4.7-systemd-gentoo.patch +) + +QA_CONFIG_IMPL_DECL_SKIP=( + # FP, checks with macro afterwards (bug #907877) + recvmmsg +) + +src_prepare() { + default + + sed -i \ + -e 's:/etc/chrony\.conf:/etc/chrony/chrony.conf:g' \ + doc/* examples/* || die + + cp "${FILESDIR}"/chronyd.conf-r3 "${T}"/chronyd.conf || die +} + +src_configure() { + if ! use caps ; then + sed -i \ + -e 's/ -u ntp//' \ + "${T}"/chronyd.conf examples/chronyd.service || die + fi + + if ! use seccomp ; then + sed -i \ + -e 's/ -F 2//' \ + "${T}"/chronyd.conf examples/chronyd.service || die + fi + + tc-export CC PKG_CONFIG + + # Update from time to time with output from "date +%s" + # on a system that is time-synced. + export SOURCE_DATE_EPOCH=1607976314 + + # Not an autotools generated script + local myconf=( + # TODO: Do we want to wire up --with-user= and --with-chronyc-user? + # Need to check how it interacts with the init script & systemd unit. + $(use_enable seccomp scfilter) + + $(usev !caps '--disable-linuxcaps') + $(usev !cmdmon '--disable-cmdmon') + $(usev debug '--enable-debug') + + # USE=readline here means "readline-like functionality" + # chrony only supports libedit in terms of the library providing + # it. + $(usev !readline '--without-editline --disable-readline') + + $(usev !libtomcrypt '--without-tomcrypt') + $(usev !nettle '--without-nettle') + $(usev !nss '--without-nss') + $(usev !nts '--disable-nts') + $(usev !nts '--without-gnutls') + $(usev !phc '--disable-phc') + $(usev !pps '--disable-pps') + $(usev !refclock '--disable-refclock') + $(usev !rtc '--disable-rtc') + $(usev samba '--enable-ntp-signd') + $(usev !sechash '--disable-sechash') + + --chronysockdir="${EPREFIX}/run/chrony" + --docdir="${EPREFIX}/usr/share/doc/${PF}" + --mandir="${EPREFIX}/usr/share/man" + --prefix="${EPREFIX}/usr" + --sysconfdir="${EPREFIX}/etc/chrony" + --with-hwclockfile="${EPREFIX}/etc/adjtime" + --with-pidfile="${EPREFIX}/run/chrony/chronyd.pid" + + ${EXTRA_ECONF} + ) + + # OPERATINGSYSTEM=`uname -s` (--host-system=) + # VERSION=`uname -r` (--host-release=) + # MACHINE=`uname -m` (--host-machine=) + if tc-tc-is-cross-compiler ; then + case "${KERNEL}" in + linux) + myconf+=( + --host-system=Linux + --host-machine=$(tc-arch-kernel) + ) + ;; + *) + # The build system hardcodes uname output for comparison, + # so require the ebuild to be explicitly updated when cross-compilation + # to another target is tested. + die "Unknown target for cross-compiling Chrony: please adjust ebuild." + ;; + esac + fi + + # Print the ./configure call + edo ./configure "${myconf[@]}" || die +} + +src_compile() { + if [[ ${PV} == 9999 ]] ; then + # Uses w3m + emake -C doc man txt + fi + + emake all docs $(usev !html 'ADOC=true') +} + +src_install() { + default + + # Compatibility with other distributions who install to /etc/chrony.conf (bug #835461) + dosym -r /etc/chrony/chrony.conf /etc/chrony.conf + + newinitd "${FILESDIR}"/chronyd.init-r2 chronyd + newconfd "${T}"/chronyd.conf chronyd + + insinto /etc/${PN} + newins examples/chrony.conf.example1 chrony.conf + + docinto examples + dodoc examples/*.example* + + newtmpfiles - chronyd.conf <<<"d /run/chrony 0750 $(usex caps 'ntp ntp' 'root root')" + + if use html ; then + docinto html + dodoc doc/*.html + fi + + keepdir /var/{lib,log}/chrony + + if use caps ; then + # Prepare a directory for the chrony.drift file (a la ntpsec) + # Ensures the environment is sane on new installs + # bug #711058 + fowners ntp:ntp /var/{lib,log}/chrony + fperms 770 /var/lib/chrony + fi + + insinto /etc/logrotate.d + newins "${FILESDIR}"/chrony-2.4-r1.logrotate chrony + + systemd_dounit examples/chronyd.service + systemd_dounit examples/chrony-wait.service + systemd_enable_ntpunit 50-chrony chronyd.service +} + +pkg_preinst() { + HAD_CAPS=0 + HAD_SECCOMP=0 + HAD_PRE_NEW_SECCOMP_LEVEL=0 + + # See https://dev.gentoo.org/~zmedico/portage/doc/portage.html#package-ebuild-phases-after-2.1.5 + # in "Ebuild Phases" for an explanation of why we need to save the variable beforehand + if has_version 'net-misc/chrony[caps]' ; then + HAD_CAPS=1 + fi + + if has_version 'net-misc/chrony[seccomp]' ; then + HAD_SECCOMP=1 + fi + + if has_version '>=net-misc/chrony-4.1[seccomp]' ; then + # This version introduced a new filter level: -F 2 + # It's a limited set of seccomp filters designed to be 'bare minimum' + HAD_PRE_NEW_SECCOMP_LEVEL=1 + fi +} + +pkg_postinst() { + tmpfiles_process chronyd.conf + + if [[ -n "${REPLACING_VERSIONS}" ]] ; then + if use caps && ! [[ ${HAD_CAPS} -eq 1 ]] ; then + # bug #719876 + ewarn "Please adjust permissions on ${EROOT}/var/{lib,log}/chrony to be owned by ntp:ntp" + ewarn "e.g. chown -R ntp:ntp ${EROOT}/var/{lib,log}/chrony" + ewarn "This is necessary for chrony to drop privileges" + elif ! use caps && [[ ${HAD_CAPS} -eq 0 ]] ; then + ewarn "Please adjust permissions on ${EROOT}/var/{lib,log}/chrony to be owned by root:root" + fi + fi + + # See bug #783915 for general discussion on enabling seccomp filtering + # by default. + local show_seccomp_enable_msg=0 + + # Was seccomp disabled before and now enabled? + if [[ ${HAD_SECCOMP} -eq 0 ]] && use seccomp ; then + show_seccomp_enable_msg=1 + fi + + # Are we coming from an old version without the new 'minimal' filter? + # (-F 2) + if [[ ${HAD_PRE_NEW_SECCOMP_LEVEL} -eq 0 ]] ; then + show_seccomp_enable_msg=1 + fi + + if [[ ${show_seccomp_enable_msg} -eq 1 ]] ; then + elog "To enable seccomp in a stricter mode, please modify:" + elog "- ${EROOT}/etc/conf.d/chronyd for OpenRC" + elog "- systemctl edit chronyd for systemd" + elog "to use -F 1 or -F -1 instead of -F 2 (see man chronyd)" + elog "By default, we now use -F 2 which is a baseline/minimal filter." + fi +} 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 deleted file mode 100644 index 9015a3fbed0..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.8.ebuild +++ /dev/null @@ -1,273 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit edo systemd tmpfiles toolchain-funcs - -DESCRIPTION="NTP client and server programs" -HOMEPAGE="https://chrony-project.org/" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://gitlab.com/chrony/chrony.git" - inherit git-r3 -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/mlichvar.asc - inherit verify-sig - - SRC_URI="https://chrony-project.org/releases/${P/_/-}.tar.gz" - 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 ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - fi -fi - -S="${WORKDIR}/${P/_/-}" - -LICENSE="GPL-2" -SLOT="0" -IUSE="+caps +cmdmon debug html libtomcrypt +nettle nss +nts +phc pps +readline +refclock +rtc samba +seccomp +sechash selinux" -# nettle > nss > libtomcrypt in configure -REQUIRED_USE=" - sechash? ( || ( nettle nss libtomcrypt ) ) - nettle? ( !nss ) - nss? ( !nettle ) - libtomcrypt? ( !nettle !nss ) - !sechash? ( !nss ) - !sechash? ( !nts? ( !nettle ) ) -" - -DEPEND=" - caps? ( - sys-libs/libcap - ) - libtomcrypt? ( dev-libs/libtomcrypt:= ) - nettle? ( dev-libs/nettle:= ) - nss? ( dev-libs/nss:= ) - nts? ( net-libs/gnutls:= ) - pps? ( net-misc/pps-tools ) - readline? ( dev-libs/libedit ) - seccomp? ( sys-libs/libseccomp ) -" -RDEPEND=" - ${DEPEND} - caps? ( - acct-group/ntp - acct-user/ntp - ) - selinux? ( sec-policy/selinux-chronyd ) -" -BDEPEND=" - caps? ( - acct-group/ntp - acct-user/ntp - ) - html? ( dev-ruby/asciidoctor ) - nts? ( virtual/pkgconfig ) - sechash? ( - nettle? ( virtual/pkgconfig ) - nss? ( virtual/pkgconfig ) - ) -" - -if [[ ${PV} == 9999 ]] ; then - # Needed for doc generation in 9999 - REQUIRED_USE+=" html" - BDEPEND+=" - app-alternatives/yacc - virtual/w3m - " -else - BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-mlichvar-20210513 )" -fi - -PATCHES=( - "${FILESDIR}"/${PN}-4.7-pool-vendor-gentoo.patch - "${FILESDIR}"/${PN}-4.7-systemd-gentoo.patch -) - -QA_CONFIG_IMPL_DECL_SKIP=( - # FP, checks with macro afterwards (bug #907877) - recvmmsg -) - -src_prepare() { - default - - sed -i \ - -e 's:/etc/chrony\.conf:/etc/chrony/chrony.conf:g' \ - doc/* examples/* || die - - cp "${FILESDIR}"/chronyd.conf-r3 "${T}"/chronyd.conf || die -} - -src_configure() { - if ! use caps ; then - sed -i \ - -e 's/ -u ntp//' \ - "${T}"/chronyd.conf examples/chronyd.service || die - fi - - if ! use seccomp ; then - sed -i \ - -e 's/ -F 2//' \ - "${T}"/chronyd.conf examples/chronyd.service || die - fi - - tc-export CC PKG_CONFIG - - # Update from time to time with output from "date +%s" - # on a system that is time-synced. - export SOURCE_DATE_EPOCH=1607976314 - - # Not an autotools generated script - local myconf=( - # TODO: Do we want to wire up --with-user= and --with-chronyc-user? - # Need to check how it interacts with the init script & systemd unit. - $(use_enable seccomp scfilter) - - $(usev !caps '--disable-linuxcaps') - $(usev !cmdmon '--disable-cmdmon') - $(usev debug '--enable-debug') - - # USE=readline here means "readline-like functionality" - # chrony only supports libedit in terms of the library providing - # it. - $(usev !readline '--without-editline --disable-readline') - - $(usev !libtomcrypt '--without-tomcrypt') - $(usev !nettle '--without-nettle') - $(usev !nss '--without-nss') - $(usev !nts '--disable-nts') - $(usev !nts '--without-gnutls') - $(usev !phc '--disable-phc') - $(usev !pps '--disable-pps') - $(usev !refclock '--disable-refclock') - $(usev !rtc '--disable-rtc') - $(usev samba '--enable-ntp-signd') - $(usev !sechash '--disable-sechash') - - --chronysockdir="${EPREFIX}/run/chrony" - --docdir="${EPREFIX}/usr/share/doc/${PF}" - --mandir="${EPREFIX}/usr/share/man" - --prefix="${EPREFIX}/usr" - --sysconfdir="${EPREFIX}/etc/chrony" - --with-hwclockfile="${EPREFIX}/etc/adjtime" - --with-pidfile="${EPREFIX}/run/chrony/chronyd.pid" - - ${EXTRA_ECONF} - ) - - # Print the ./configure call - edo ./configure "${myconf[@]}" || die -} - -src_compile() { - if [[ ${PV} == 9999 ]] ; then - # Uses w3m - emake -C doc man txt - fi - - emake all docs $(usev !html 'ADOC=true') -} - -src_install() { - default - - # Compatibility with other distributions who install to /etc/chrony.conf (bug #835461) - dosym -r /etc/chrony/chrony.conf /etc/chrony.conf - - newinitd "${FILESDIR}"/chronyd.init-r2 chronyd - newconfd "${T}"/chronyd.conf chronyd - - insinto /etc/${PN} - newins examples/chrony.conf.example1 chrony.conf - - docinto examples - dodoc examples/*.example* - - newtmpfiles - chronyd.conf <<<"d /run/chrony 0750 $(usex caps 'ntp ntp' 'root root')" - - if use html ; then - docinto html - dodoc doc/*.html - fi - - keepdir /var/{lib,log}/chrony - - if use caps ; then - # Prepare a directory for the chrony.drift file (a la ntpsec) - # Ensures the environment is sane on new installs - # bug #711058 - fowners -R ntp:ntp /var/{lib,log}/chrony - fperms -R 770 /var/lib/chrony - fi - - insinto /etc/logrotate.d - newins "${FILESDIR}"/chrony-2.4-r1.logrotate chrony - - systemd_dounit examples/chronyd.service - systemd_dounit examples/chrony-wait.service - systemd_enable_ntpunit 50-chrony chronyd.service -} - -pkg_preinst() { - HAD_CAPS=0 - HAD_SECCOMP=0 - HAD_PRE_NEW_SECCOMP_LEVEL=0 - - # See https://dev.gentoo.org/~zmedico/portage/doc/portage.html#package-ebuild-phases-after-2.1.5 - # in "Ebuild Phases" for an explanation of why we need to save the variable beforehand - if has_version 'net-misc/chrony[caps]' ; then - HAD_CAPS=1 - fi - - if has_version 'net-misc/chrony[seccomp]' ; then - HAD_SECCOMP=1 - fi - - if has_version '>=net-misc/chrony-4.1[seccomp]' ; then - # This version introduced a new filter level: -F 2 - # It's a limited set of seccomp filters designed to be 'bare minimum' - HAD_PRE_NEW_SECCOMP_LEVEL=1 - fi -} - -pkg_postinst() { - tmpfiles_process chronyd.conf - - if [[ -n "${REPLACING_VERSIONS}" ]] ; then - if use caps && ! [[ ${HAD_CAPS} -eq 1 ]] ; then - # bug #719876 - ewarn "Please adjust permissions on ${EROOT}/var/{lib,log}/chrony to be owned by ntp:ntp" - ewarn "e.g. chown -R ntp:ntp ${EROOT}/var/{lib,log}/chrony" - ewarn "This is necessary for chrony to drop privileges" - elif ! use caps && [[ ${HAD_CAPS} -eq 0 ]] ; then - ewarn "Please adjust permissions on ${EROOT}/var/{lib,log}/chrony to be owned by root:root" - fi - fi - - # See bug #783915 for general discussion on enabling seccomp filtering - # by default. - local show_seccomp_enable_msg=0 - - # Was seccomp disabled before and now enabled? - if [[ ${HAD_SECCOMP} -eq 0 ]] && use seccomp ; then - show_seccomp_enable_msg=1 - fi - - # Are we coming from an old version without the new 'minimal' filter? - # (-F 2) - if [[ ${HAD_PRE_NEW_SECCOMP_LEVEL} -eq 0 ]] ; then - show_seccomp_enable_msg=1 - fi - - if [[ ${show_seccomp_enable_msg} -eq 1 ]] ; then - elog "To enable seccomp in a stricter mode, please modify:" - elog "- ${EROOT}/etc/conf.d/chronyd for OpenRC" - elog "- systemctl edit chronyd for systemd" - elog "to use -F 1 or -F -1 instead of -F 2 (see man chronyd)" - elog "By default, we now use -F 2 which is a baseline/minimal filter." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-9999.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-9999.ebuild index 461e5eb3138..6242bfaa820 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -19,7 +19,7 @@ else SRC_URI+=" verify-sig? ( https://chrony-project.org/releases/${P/_/-}-tar-gz-asc.txt -> ${P/_/-}.tar.gz.asc )" if [[ ${PV} != *_pre* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~sparc ~x86" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" fi fi @@ -83,7 +83,7 @@ else fi PATCHES=( - "${FILESDIR}"/${PN}-4.7-pool-vendor-gentoo.patch + "${FILESDIR}"/${PN}-4.8-pool-vendor-gentoo.patch "${FILESDIR}"/${PN}-4.7-systemd-gentoo.patch ) @@ -159,6 +159,26 @@ src_configure() { ${EXTRA_ECONF} ) + # OPERATINGSYSTEM=`uname -s` (--host-system=) + # VERSION=`uname -r` (--host-release=) + # MACHINE=`uname -m` (--host-machine=) + if tc-tc-is-cross-compiler ; then + case "${KERNEL}" in + linux) + myconf+=( + --host-system=Linux + --host-machine=$(tc-arch-kernel) + ) + ;; + *) + # The build system hardcodes uname output for comparison, + # so require the ebuild to be explicitly updated when cross-compilation + # to another target is tested. + die "Unknown target for cross-compiling Chrony: please adjust ebuild." + ;; + esac + fi + # Print the ./configure call edo ./configure "${myconf[@]}" || die } @@ -200,8 +220,8 @@ src_install() { # Prepare a directory for the chrony.drift file (a la ntpsec) # Ensures the environment is sane on new installs # bug #711058 - fowners -R ntp:ntp /var/{lib,log}/chrony - fperms -R 770 /var/lib/chrony + fowners ntp:ntp /var/{lib,log}/chrony + fperms 770 /var/lib/chrony fi insinto /etc/logrotate.d diff --git a/sdk_container/src/third_party/portage-stable/net-misc/chrony/files/chrony-3.5-pool-vendor-gentoo.patch b/sdk_container/src/third_party/portage-stable/net-misc/chrony/files/chrony-3.5-pool-vendor-gentoo.patch deleted file mode 100644 index 817a4106738..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/chrony/files/chrony-3.5-pool-vendor-gentoo.patch +++ /dev/null @@ -1,16 +0,0 @@ -- Use the Gentoo pool -- Use the server directive instead of the pool directive so we get four time - sources and not twelve. - ---- a/examples/chrony.conf.example1 -+++ b/examples/chrony.conf.example1 -@@ -1,5 +1,8 @@ - # Use public NTP servers from the pool.ntp.org project. --pool pool.ntp.org iburst -+server 0.gentoo.pool.ntp.org iburst -+server 1.gentoo.pool.ntp.org iburst -+server 2.gentoo.pool.ntp.org iburst -+server 3.gentoo.pool.ntp.org iburst - - # Record the rate at which the system clock gains/losses time. - driftfile /var/lib/chrony/drift diff --git a/sdk_container/src/third_party/portage-stable/net-misc/chrony/files/chrony-4.2-systemd-gentoo.patch b/sdk_container/src/third_party/portage-stable/net-misc/chrony/files/chrony-4.2-systemd-gentoo.patch deleted file mode 100644 index 1852cdeb92e..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/chrony/files/chrony-4.2-systemd-gentoo.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/examples/chronyd.service b/examples/chronyd.service -index 4fb930e..8df627a 100644 ---- a/examples/chronyd.service -+++ b/examples/chronyd.service -@@ -9,7 +9,7 @@ ConditionCapability=CAP_SYS_TIME - Type=forking - PIDFile=/run/chrony/chronyd.pid - EnvironmentFile=-/etc/sysconfig/chronyd --ExecStart=/usr/sbin/chronyd $OPTIONS -+ExecStart=/usr/sbin/chronyd $OPTIONS -u ntp -F 2 - - CapabilityBoundingSet=~CAP_AUDIT_CONTROL CAP_AUDIT_READ CAP_AUDIT_WRITE - CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_KILL CAP_LEASE CAP_LINUX_IMMUTABLE diff --git a/sdk_container/src/third_party/portage-stable/net-misc/chrony/files/chrony-4.7-pool-vendor-gentoo.patch b/sdk_container/src/third_party/portage-stable/net-misc/chrony/files/chrony-4.7-pool-vendor-gentoo.patch deleted file mode 100644 index e7b078872ec..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/chrony/files/chrony-4.7-pool-vendor-gentoo.patch +++ /dev/null @@ -1,16 +0,0 @@ -- Use the Gentoo pool -- Use the server directive instead of the pool directive so we get four time - sources and not twelve. ---- a/examples/chrony.conf.example1 -+++ b/examples/chrony.conf.example1 -@@ -1,5 +1,8 @@ --# Use four public NTP servers from the pool.ntp.org project. --pool pool.ntp.org iburst -+# Use public NTP servers from the pool.ntp.org project. -+server 0.gentoo.pool.ntp.org iburst -+server 1.gentoo.pool.ntp.org iburst -+server 2.gentoo.pool.ntp.org iburst -+server 3.gentoo.pool.ntp.org iburst - - # Record the rate at which the system clock gains/losses time. - driftfile /var/lib/chrony/drift diff --git a/sdk_container/src/third_party/portage-stable/net-misc/chrony/files/chrony-4.8-pool-vendor-gentoo.patch b/sdk_container/src/third_party/portage-stable/net-misc/chrony/files/chrony-4.8-pool-vendor-gentoo.patch new file mode 100644 index 00000000000..78d3d403d64 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/chrony/files/chrony-4.8-pool-vendor-gentoo.patch @@ -0,0 +1,13 @@ +- Use the Gentoo pool +- Use the IPv6-enabled zone +--- a/examples/chrony.conf.example1 ++++ b/examples/chrony.conf.example1 +@@ -1,5 +1,6 @@ +-# Use four public NTP servers from the pool.ntp.org project. +-pool pool.ntp.org iburst ++# Use public NTP servers from the pool.ntp.org project. ++# Only `2.` zone provides both IPv4 and IPv6, see https://bugs.gentoo.org/973543 ++pool 2.gentoo.pool.ntp.org iburst + + # Record the rate at which the system clock gains/losses time. + driftfile /var/lib/chrony/drift diff --git a/sdk_container/src/third_party/portage-stable/net-misc/chrony/metadata.xml b/sdk_container/src/third_party/portage-stable/net-misc/chrony/metadata.xml index 33ac8a4febd..618064038f5 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/chrony/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/net-misc/chrony/metadata.xml @@ -28,7 +28,6 @@ Install HTML documentation Use dev-libs/nettle for hash functions or nts Use dev-libs/nss for hash functions - Support for the Network Time Protocol (NTP) Support for Network Time Security (NTS). Uses net-libs/gnutls Support for the PTP (Precision Time Protocol) Hardware Clock (PHC) interface Support for the Linux Pulse Per Second (PPS) interface diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/Manifest b/sdk_container/src/third_party/portage-stable/net-misc/curl/Manifest index 3aa6193c8ce..9fa9e1deb1e 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/Manifest @@ -2,3 +2,7 @@ DIST curl-8.18.0.tar.xz 2801444 BLAKE2B 16e1539616c1800dfa08a5bd3e38ff75d2906a4a DIST curl-8.18.0.tar.xz.asc 488 BLAKE2B 68c2ce9777ba51962139e70e48c4b24d404682a6ad530843791cc188b2656dc26a19f0757f97ead2ff492f7b8a4e4116707df901e81bf8efb28658ff4df99ae0 SHA512 07e08d1bb3f8bf20b3d22f37fbc19c49c0d9ee4ea9d92da76fa8a9de343023e1b5d416ccc6535a4ff98b08b30eb9334fd856227e37564f6bcd542aa81bced152 DIST curl-8.19.0.tar.xz 2787584 BLAKE2B d4a943af9a109893112876784dbe106276317e6cd5a2663f4de143c93abb4e266945fa65b4a5fa842f99240c961b027a1b2492e3e32f5247a91c394895e2b8b0 SHA512 ee97faaf588b255428000599293c47a2f648af11d1a0b7b823db6aec151e2090f5c7b921745ddb2c3818d92b16e0a4c15d7a9b3d1ff45df1f35438504bd16574 DIST curl-8.19.0.tar.xz.asc 488 BLAKE2B 0031029301586546bf2a50e00fdf16042da14ac26c2294d033274ed9cd9303c81c3997935b17b3b4202356c972eeed2b354cb623c790fa3983481587ed2ecf35 SHA512 ea3d4f2f42ec6571340e982868c5a35836eed2b76109b08b90b98023474293ad33a7218da511f153d01de607b735fc039a0733fa09fddd984fd7e2c61ee0446a +DIST curl-8.20.0-rc1.tar.xz 2817580 BLAKE2B a3abc134a44214aa7a0a1a56da8863ce1a5bb1ef90483cccc4875d9e403eb14467529a715cf904f5766bbff69de1bca9bd606f574e48c8e03d0d35ba2e47face SHA512 5bbdd09dc3471cb1ce0888f4e5be612fc67cf5b3c34a7833071dbf76b26f330d4838680979117092605746ae585f338e514e3bd8c74e9fdf3b71ee0846bbc43a +DIST curl-8.20.0-rc1.tar.xz.asc 488 BLAKE2B 20ed9317f2a48dacc1c2cd408aa62fc02b2ea4ffa825f3886fcd4eefa1b2411697b779ec9eecf968405d168b9423b3ee1c89c30823cc0f8b1c75c7020c95fe74 SHA512 e8c288cb8319f61b013b720d499ae38a33c9b76f87f07deb313be5a2f301834f9457f013d6b41083c976b234f4414b448fc387c5f9320830b42e4f84cf1cc396 +DIST curl-8.20.0-rc2.tar.xz 2821812 BLAKE2B bbf6441020eea3809b538521e116b263366dd35036778569b0494045ea270b82a6f7dd71dee7190415dfaa2ccaeebe2818fed49fb1a65ebdf588fc407cb9a5e4 SHA512 c07fc924de0dba35bb2a9cc815eecb9d257f8af8fa9d77dd7c93630d068c5b20cccfcd200865c05f40cffd75a4b636596876a058f8b34e0a11241ea8d3e6fef5 +DIST curl-8.20.0-rc2.tar.xz.asc 488 BLAKE2B 508ea07b37108ff327b6bb5d7431a67332ead100ffe7898d7f3ef7edada78c00aba12ba1cf9a3ecc51e89df0b9b9ccae3902b3b6d906967bb36011c648dbfd4d SHA512 5d40aa31e1d565e35b7a0c63fa1a263e81645c4dbf3cab0f070e14a050f68bc5bb2195876626eb12313ae93fa602ac77559d8e577cc91d0187b78e441f058b0a diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.18.0.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.18.0.ebuild index 1080a5384d4..3d6fa238e12 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.18.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.18.0.ebuild @@ -417,7 +417,7 @@ multilib_src_test() { # this ends up breaking when nproc is huge (like -j80). # The network sandbox causes tests 241 and 1083 to fail; these are typically skipped # as most gentoo users don't have an 'ip6-localhost' - multilib_is_native_abi && emake test TFLAGS="-n -v -a -k -am -p -j$((2*$(makeopts_jobs))) !241 !1083" + multilib_is_native_abi && emake test TFLAGS="-n -v -a -k -am -p -j$((2*$(get_makeopts_jobs))) !241 !1083" } multilib_src_install() { diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.19.0.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.19.0.ebuild index 253079ac6bf..8b90ba86adc 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.19.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.19.0.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 ~arm64-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" fi SRC_URI=" ${CURL_URI}${P//_/-}.tar.xz @@ -60,7 +60,6 @@ REQUIRED_USE=" openssl gnutls ) - !gnutls !mbedtls !rustls http3 @@ -398,7 +397,7 @@ multilib_src_test() { # this ends up breaking when nproc is huge (like -j80). # The network sandbox causes tests 241 and 1083 to fail; these are typically skipped # as most gentoo users don't have an 'ip6-localhost' - multilib_is_native_abi && emake test TFLAGS="-n -v -a -k -am -p -j$((2*$(makeopts_jobs))) !241 !1083" + multilib_is_native_abi && emake test TFLAGS="-n -v -a -k -am -p -j$((2*$(get_makeopts_jobs))) !241 !1083" } multilib_src_install() { diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.20.0_rc1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.20.0_rc1.ebuild new file mode 100644 index 00000000000..c8d71db98ff --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.20.0_rc1.ebuild @@ -0,0 +1,433 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintainers should subscribe to the 'curl-distros' ML for backports etc +# https://daniel.haxx.se/blog/2024/03/25/curl-distro-report/ +# https://lists.haxx.se/listinfo/curl-distros + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/danielstenberg.asc +inherit dot-a autotools multilib-minimal multiprocessing prefix toolchain-funcs verify-sig + +DESCRIPTION="A Client that groks URLs" +HOMEPAGE="https://curl.se/" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/curl/curl.git" +else + if [[ ${P} == *rc* ]]; then + CURL_URI="https://curl.se/rc/" + 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 ~arm64-macos ~x64-macos ~x64-solaris" + fi + SRC_URI=" + ${CURL_URI}${P//_/-}.tar.xz + verify-sig? ( ${CURL_URI}${P//_/-}.tar.xz.asc ) + " +fi + +LICENSE="BSD curl ISC test? ( BSD-4 )" +SLOT="0" +IUSE="+adns +alt-svc brotli debug ech +ftp gnutls gopher +hsts +http2 +http3 +httpsrr idn +imap kerberos ldap" +IUSE+=" mbedtls +openssl +pop3 +psl +quic rustls sasl-scram +smtp ssh ssl static-libs test" +IUSE+=" telnet +tftp +websockets zstd" +# These select the default tls implementation / which quic impl to use +IUSE+=" curl_ssl_gnutls curl_ssl_mbedtls +curl_ssl_openssl curl_ssl_rustls" +RESTRICT="!test? ( test )" + +# HTTPS RR is technically usable with the threaded resolver, but it still uses c-ares to +# ask for the HTTPS RR record type; if DoH is in use the HTTPS record will be requested +# in addition to A and AAAA records. + +# To simplify dependency management in the ebuild we'll require c-ares for HTTPS RR (for now?). +# HTTPS RR in cURL is a dependency for: +# - ECH (enabled with rustls, ossl 4.0+) +# - Fetching the ALPN list which should provide a better HTTP/3 experience. +# Only one default ssl / quic provider can be enabled +# The default provider needs its USE satisfied +# HTTP/3 and MultiSSL are mutually exclusive; it's not clear if MultiSSL offers any benefit at all in the modern day. +# https://github.com/curl/curl/commit/65ece771f4602107d9cdd339dff4b420280a2c2e +REQUIRED_USE=" + ech? ( + || ( + openssl + rustls + ) + ) + httpsrr? ( adns ) + quic? ( + ^^ ( + openssl + gnutls + ) + !gnutls + !mbedtls + !rustls + http3 + ssl + ) + ssl? ( + ^^ ( + curl_ssl_gnutls + curl_ssl_mbedtls + curl_ssl_openssl + curl_ssl_rustls + ) + ) + curl_ssl_gnutls? ( gnutls ) + curl_ssl_mbedtls? ( mbedtls ) + curl_ssl_openssl? ( openssl ) + curl_ssl_rustls? ( rustls ) + http3? ( alt-svc httpsrr quic ) +" + +# cURL's docs and CI/CD are great resources for confirming supported versions +# particulary for fast-moving targets like HTTP/2 and TCP/2 e.g.: +# - https://github.com/curl/curl/blob/master/docs/INTERNALS.md (core dependencies + minimum versions) +# - https://github.com/curl/curl/blob/master/docs/HTTP3.md (example of a feature that moves quickly) +# - https://github.com/curl/curl/blob/master/.github/workflows/http3-linux.yml (CI/CD for TCP/2) +# - https://curl.se/dev/deprecate.html - good source of deprecation timelines, e.g. for OpenSSL 1.1.1 +# However 'supported' vs 'works' are two entirely different things; be sane but +# don't be afraid to require a later version. +# ngtcp2 = https://bugs.gentoo.org/912029 - can only build with one tls backend at a time. +RDEPEND=" + >=virtual/zlib-1.2.5:=[${MULTILIB_USEDEP}] + adns? ( >=net-dns/c-ares-1.16.0:=[${MULTILIB_USEDEP}] ) + brotli? ( app-arch/brotli:=[${MULTILIB_USEDEP}] ) + http2? ( >=net-libs/nghttp2-1.15.0:=[${MULTILIB_USEDEP}] ) + http3? ( >=net-libs/nghttp3-1.1.0[${MULTILIB_USEDEP}] ) + idn? ( >=net-dns/libidn2-2.0.0:=[static-libs?,${MULTILIB_USEDEP}] ) + kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] ) + ldap? ( >=net-nds/openldap-2.0.0:=[static-libs?,${MULTILIB_USEDEP}] ) + psl? ( net-libs/libpsl[${MULTILIB_USEDEP}] ) + quic? ( + gnutls? ( >=net-libs/ngtcp2-1.20.0-r1[gnutls,ssl,${MULTILIB_USEDEP}] ) + openssl? ( >=net-libs/ngtcp2-1.20.0-r1[openssl,ssl,${MULTILIB_USEDEP}] ) + ) + ssh? ( >=net-libs/libssh2-1.2.8[${MULTILIB_USEDEP}] ) + sasl-scram? ( >=net-misc/gsasl-2.2.0[static-libs?,${MULTILIB_USEDEP}] ) + ssl? ( + gnutls? ( + app-misc/ca-certificates + >=net-libs/gnutls-3.1.10:=[static-libs?,${MULTILIB_USEDEP}] + dev-libs/nettle:=[${MULTILIB_USEDEP}] + ) + mbedtls? ( + app-misc/ca-certificates + net-libs/mbedtls:3=[${MULTILIB_USEDEP}] + ) + openssl? ( + ech? ( >=dev-libs/openssl-4.0.0_beta1:=[static-libs?,${MULTILIB_USEDEP}] ) + >=dev-libs/openssl-3.0.0:=[static-libs?,${MULTILIB_USEDEP}] + ) + rustls? ( + >=net-libs/rustls-ffi-0.15.0:=[${MULTILIB_USEDEP}] + ) + ) + zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] ) +" + +DEPEND="${RDEPEND}" + +BDEPEND=" + dev-lang/perl + virtual/pkgconfig + test? ( + sys-apps/diffutils + http2? ( >=net-libs/nghttp2-1.15.0:=[utils,${MULTILIB_USEDEP}] ) + http3? ( net-libs/nghttp2:=[utils,${MULTILIB_USEDEP}] ) + ) + verify-sig? ( sec-keys/openpgp-keys-danielstenberg ) +" + +DOCS=( README docs/{FEATURES.md,INTERNALS.md,FAQ.md,BUGS.md,CONTRIBUTE.md} ) + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/curl/curlbuild.h +) + +MULTILIB_CHOST_TOOLS=( + /usr/bin/curl-config +) + +QA_CONFIG_IMPL_DECL_SKIP=( + __builtin_available + closesocket + CloseSocket + getpass_r + ioctlsocket + IoctlSocket + mach_absolute_time + setmode + _fseeki64 + # custom AC_LINK_IFELSE code fails to link even without -Werror + OSSL_QUIC_client_method +) + +PATCHES=( + "${FILESDIR}/${PN}-prefix-6.patch" + "${FILESDIR}/${PN}-respect-cflags-3.patch" +) + +src_prepare() { + default + + eprefixify curl-config.in + eautoreconf +} + +# Generates TLS-related configure options based on USE flags. +# Outputs options suitable for appending to a configure options array. +_get_curl_tls_configure_opts() { + local tls_opts=() + + local backend flag_name + for backend in gnutls mbedtls openssl rustls; do + if [[ "$backend" == "openssl" ]]; then + flag_name="ssl" + tls_opts+=( "--with-ca-path=${EPREFIX}/etc/ssl/certs") + else + flag_name="$backend" + fi + + if use "$backend"; then + tls_opts+=( "--with-${flag_name}" ) + else + # If a single backend is enabled, 'ssl' is required, openssl is the default / fallback + if ! [[ "$backend" == "openssl" ]]; then + tls_opts+=( "--without-${flag_name}" ) + fi + fi + done + + if use curl_ssl_gnutls; then + multilib_is_native_abi && einfo "Default TLS backend: gnutls" + tls_opts+=( "--with-default-ssl-backend=gnutls" ) + elif use curl_ssl_mbedtls; then + multilib_is_native_abi && einfo "Default TLS backend: mbedtls" + tls_opts+=( "--with-default-ssl-backend=mbedtls" ) + elif use curl_ssl_openssl; then + multilib_is_native_abi && einfo "Default TLS backend: openssl" + tls_opts+=( "--with-default-ssl-backend=openssl" ) + elif use curl_ssl_rustls; then + multilib_is_native_abi && einfo "Default TLS backend: rustls" + tls_opts+=( "--with-default-ssl-backend=rustls" ) + else + eerror "We can't be here because of REQUIRED_USE." + die "Please file a bug, hit impossible condition w/ USE=ssl handling." + fi + + # Explicitly Disable unimplemented backends + tls_opts+=( + --without-amissl + --without-wolfssl + ) + + printf "%s\n" "${tls_opts[@]}" +} + +multilib_src_configure() { + use static-libs && lto-guarantee-fat + # We make use of the fact that later flags override earlier ones + # So start with all ssl providers off until proven otherwise + # TODO: in the future, we may want to add wolfssl (https://www.wolfssl.com/) + local myconf=() + + myconf+=( --without-ca-fallback --with-ca-bundle="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt ) + if use ssl; then + local -a tls_backend_opts + readarray -t tls_backend_opts < <(_get_curl_tls_configure_opts) + myconf+=( + "${tls_backend_opts[@]}" + $(use_with quic ngtcp2) + ) + else + myconf+=( --without-ssl ) + einfo "SSL disabled" + fi + + # These configuration options are organised alphabetically by category/type + + # Protocols + # `grep SUPPORT_PROTOCOLS=\" configure.ac | awk '{ print substr($2, 1, length($2)-1)}' | sort` + # Assume that anything omitted (that is not new!) is enabled by default with no deps + myconf+=( + --enable-file + $(use_enable ftp) + $(use_enable gopher) + --enable-http + $(use_enable imap) # Automatic IMAPS if TLS is enabled + $(use_enable ldap ldaps) + $(use_enable ldap) + $(use_enable pop3) + --disable-smb # Removed upstream in late 2026 + $(use_with ssh libssh2) # enables scp/sftp + --enable-rtsp + $(use_enable smtp) + $(use_enable telnet) + $(use_enable tftp) + $(use_enable websockets) + ) + + # Keep various 'HTTP-flavoured' options together + myconf+=( + $(use_enable alt-svc) + $(use_enable hsts) + $(use_enable httpsrr) + $(use_with http2 nghttp2) + $(use_with http3 nghttp3) + ) + + # --enable/disable options + # `grep -- --enable configure | grep Check | awk '{ print $4 }' | sort` + myconf+=( + $(use_enable adns ares) + --enable-aws + --enable-basic-auth + --enable-bearer-auth + --enable-cookies + --enable-dateparse + --enable-dict + --enable-digest-auth + --enable-dnsshuffle + --enable-doh + $(use_enable ech) + --enable-http-auth + --enable-ipv6 + --enable-kerberos-auth + --enable-largefile + --enable-manual + --enable-mime + --enable-negotiate-auth + --enable-netrc + --disable-ntlm # To be removed late 2026 + --enable-progress-meter + --enable-proxy + --enable-rt + --enable-socketpair + --disable-sspi + $(use_enable static-libs static) + --enable-symbol-hiding + --enable-tls-srp + --disable-versioned-symbols + ) + + # --with/without options + # `grep -- --with configure | grep Check | awk '{ print $4 }' | sort` + myconf+=( + $(use_with brotli) + --with-fish-functions-dir="${EPREFIX}"/usr/share/fish/vendor_completions.d + $(use_with idn libidn2) + $(use_with kerberos gssapi "${EPREFIX}"/usr) + $(use_with sasl-scram libgsasl) + $(use_with psl libpsl) + --without-quiche + --without-schannel + --without-winidn + --with-zlib + --with-zsh-functions-dir="${EPREFIX}"/usr/share/zsh/site-functions + $(use_with zstd) + ) + + # Test deps (disabled) + myconf+=( + --without-test-caddy + --without-test-httpd + --without-test-nghttpx + ) + + if use debug; then + myconf+=( + --enable-debug + ) + fi + + if use test && multilib_is_native_abi && ( use http2 || use http3 ); then + myconf+=( + --with-test-nghttpx="${BROOT}/usr/bin/nghttpx" + ) + fi + + # Since 8.12.0 adns/c-ares and the threaded resolver are mutually exclusive + # This is in support of some work to enable `httpsrr` to use adns and the rest + # of curl to use the threaded resolver; for us `httpsrr` is conditional on adns. + if use adns; then + myconf+=( + --disable-threaded-resolver + ) + else + myconf+=( + --enable-threaded-resolver + ) + fi + + ECONF_SOURCE="${S}" econf "${myconf[@]}" + + if ! multilib_is_native_abi; then + # Avoid building the client (we just want libcurl for multilib) + sed -i -e '/SUBDIRS/s:src::' Makefile || die + sed -i -e '/SUBDIRS/s:scripts::' Makefile || die + fi + +} + +multilib_src_compile() { + default + + if multilib_is_native_abi; then + # Shell completions + ! tc-is-cross-compiler && emake -C scripts + fi +} + +# There is also a pytest harness that tests for bugs in some very specific +# situations; we can rely on upstream for this rather than adding additional test deps. +multilib_src_test() { + # See https://github.com/curl/curl/blob/master/tests/runtests.pl#L5721 + # -n: no valgrind (unreliable in sandbox and doesn't work correctly on all arches) + # -v: verbose + # -a: keep going on failure (so we see everything that breaks, not just 1st test) + # -k: keep test files after completion + # -am: automake style TAP output + # -p: print logs if test fails + # --retry: retry any failing tests up to 3 times; this is a band-aid for timing-dependent flakiness. + # Note: if needed, we can skip specific tests. See e.g. Fedora's packaging + # or just read https://github.com/curl/curl/tree/master/tests#run. + # Note: we don't run the testsuite for cross-compilation. + # Upstream recommend 7*nproc as a starting point for parallel tests, but + # this ends up breaking when nproc is huge (like -j80). + # The network sandbox causes tests 241 and 1083 to fail; these are typically skipped + # as most gentoo users don't have an 'ip6-localhost' + multilib_is_native_abi && emake test TFLAGS="-n -v -a -k -am -p -j$((2*$(get_makeopts_jobs))) --retry=3 !241 !1083" + # TODO: enable python tests (make pytest). +} + +multilib_src_install() { + emake DESTDIR="${D}" install + + if multilib_is_native_abi; then + # Shell completions + ! tc-is-cross-compiler && emake -C scripts DESTDIR="${D}" install + fi +} + +multilib_src_install_all() { + einstalldocs + find "${ED}" -type f -name '*.la' -delete || die + + use static-libs && strip-lto-bytecode + + rm -rf "${ED}"/etc/ || die +} + +pkg_postinst() { + if use debug; then + ewarn "USE=debug has been selected, enabling debug codepaths and making cURL extra verbose." + ewarn "Use this _only_ for testing. Debug builds should _not_ be used in anger." + ewarn "hic sunt dracones; you have been warned." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.20.0_rc2.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.20.0_rc2.ebuild new file mode 100644 index 00000000000..02a08edae34 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.20.0_rc2.ebuild @@ -0,0 +1,432 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintainers should subscribe to the 'curl-distros' ML for backports etc +# https://daniel.haxx.se/blog/2024/03/25/curl-distro-report/ +# https://lists.haxx.se/listinfo/curl-distros + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/danielstenberg.asc +inherit dot-a autotools multilib-minimal multiprocessing prefix toolchain-funcs verify-sig + +DESCRIPTION="A Client that groks URLs" +HOMEPAGE="https://curl.se/" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/curl/curl.git" +else + if [[ ${P} == *rc* ]]; then + CURL_URI="https://curl.se/rc/" + 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 ~arm64-macos ~x64-macos ~x64-solaris" + fi + SRC_URI=" + ${CURL_URI}${P//_/-}.tar.xz + verify-sig? ( ${CURL_URI}${P//_/-}.tar.xz.asc ) + " +fi + +LICENSE="BSD curl ISC test? ( BSD-4 )" +SLOT="0" +IUSE="+adns +alt-svc brotli debug ech +ftp gnutls gopher +hsts +http2 +http3 +httpsrr idn +imap kerberos ldap" +IUSE+=" mbedtls +openssl +pop3 +psl +quic rustls sasl-scram +smtp ssh ssl static-libs test" +IUSE+=" telnet +tftp +websockets zstd" +# These select the default tls implementation / which quic impl to use +IUSE+=" curl_ssl_gnutls curl_ssl_mbedtls +curl_ssl_openssl curl_ssl_rustls" +RESTRICT="!test? ( test )" + +# HTTPS RR is technically usable with the threaded resolver, but it still uses c-ares to +# ask for the HTTPS RR record type; if DoH is in use the HTTPS record will be requested +# in addition to A and AAAA records. + +# To simplify dependency management in the ebuild we'll require c-ares for HTTPS RR (for now?). +# HTTPS RR in cURL is a dependency for: +# - ECH (enabled with rustls, ossl 4.0+) +# - Fetching the ALPN list which should provide a better HTTP/3 experience. +# Only one default ssl / quic provider can be enabled +# The default provider needs its USE satisfied +# HTTP/3 and MultiSSL are mutually exclusive; it's not clear if MultiSSL offers any benefit at all in the modern day. +# https://github.com/curl/curl/commit/65ece771f4602107d9cdd339dff4b420280a2c2e +REQUIRED_USE=" + ech? ( + || ( + openssl + rustls + ) + ) + httpsrr? ( adns ) + quic? ( + ^^ ( + openssl + gnutls + ) + !mbedtls + !rustls + http3 + ssl + ) + ssl? ( + ^^ ( + curl_ssl_gnutls + curl_ssl_mbedtls + curl_ssl_openssl + curl_ssl_rustls + ) + ) + curl_ssl_gnutls? ( gnutls ) + curl_ssl_mbedtls? ( mbedtls ) + curl_ssl_openssl? ( openssl ) + curl_ssl_rustls? ( rustls ) + http3? ( alt-svc httpsrr quic ) +" + +# cURL's docs and CI/CD are great resources for confirming supported versions +# particulary for fast-moving targets like HTTP/2 and TCP/2 e.g.: +# - https://github.com/curl/curl/blob/master/docs/INTERNALS.md (core dependencies + minimum versions) +# - https://github.com/curl/curl/blob/master/docs/HTTP3.md (example of a feature that moves quickly) +# - https://github.com/curl/curl/blob/master/.github/workflows/http3-linux.yml (CI/CD for TCP/2) +# - https://curl.se/dev/deprecate.html - good source of deprecation timelines, e.g. for OpenSSL 1.1.1 +# However 'supported' vs 'works' are two entirely different things; be sane but +# don't be afraid to require a later version. +# ngtcp2 = https://bugs.gentoo.org/912029 - can only build with one tls backend at a time. +RDEPEND=" + >=virtual/zlib-1.2.5:=[${MULTILIB_USEDEP}] + adns? ( >=net-dns/c-ares-1.16.0:=[${MULTILIB_USEDEP}] ) + brotli? ( app-arch/brotli:=[${MULTILIB_USEDEP}] ) + http2? ( >=net-libs/nghttp2-1.15.0:=[${MULTILIB_USEDEP}] ) + http3? ( >=net-libs/nghttp3-1.1.0[${MULTILIB_USEDEP}] ) + idn? ( >=net-dns/libidn2-2.0.0:=[static-libs?,${MULTILIB_USEDEP}] ) + kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] ) + ldap? ( >=net-nds/openldap-2.0.0:=[static-libs?,${MULTILIB_USEDEP}] ) + psl? ( net-libs/libpsl[${MULTILIB_USEDEP}] ) + quic? ( + gnutls? ( >=net-libs/ngtcp2-1.20.0-r1[gnutls,ssl,${MULTILIB_USEDEP}] ) + openssl? ( >=net-libs/ngtcp2-1.20.0-r1[openssl,ssl,${MULTILIB_USEDEP}] ) + ) + ssh? ( >=net-libs/libssh2-1.2.8[${MULTILIB_USEDEP}] ) + sasl-scram? ( >=net-misc/gsasl-2.2.0[static-libs?,${MULTILIB_USEDEP}] ) + ssl? ( + gnutls? ( + app-misc/ca-certificates + >=net-libs/gnutls-3.1.10:=[static-libs?,${MULTILIB_USEDEP}] + dev-libs/nettle:=[${MULTILIB_USEDEP}] + ) + mbedtls? ( + app-misc/ca-certificates + net-libs/mbedtls:3=[${MULTILIB_USEDEP}] + ) + openssl? ( + ech? ( >=dev-libs/openssl-4.0.0_beta1:=[static-libs?,${MULTILIB_USEDEP}] ) + >=dev-libs/openssl-3.0.0:=[static-libs?,${MULTILIB_USEDEP}] + ) + rustls? ( + >=net-libs/rustls-ffi-0.15.0:=[${MULTILIB_USEDEP}] + ) + ) + zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] ) +" + +DEPEND="${RDEPEND}" + +BDEPEND=" + dev-lang/perl + virtual/pkgconfig + test? ( + sys-apps/diffutils + http2? ( >=net-libs/nghttp2-1.15.0:=[utils,${MULTILIB_USEDEP}] ) + http3? ( net-libs/nghttp2:=[utils,${MULTILIB_USEDEP}] ) + ) + verify-sig? ( sec-keys/openpgp-keys-danielstenberg ) +" + +DOCS=( README docs/{FEATURES.md,INTERNALS.md,FAQ.md,BUGS.md,CONTRIBUTE.md} ) + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/curl/curlbuild.h +) + +MULTILIB_CHOST_TOOLS=( + /usr/bin/curl-config +) + +QA_CONFIG_IMPL_DECL_SKIP=( + __builtin_available + closesocket + CloseSocket + getpass_r + ioctlsocket + IoctlSocket + mach_absolute_time + setmode + _fseeki64 + # custom AC_LINK_IFELSE code fails to link even without -Werror + OSSL_QUIC_client_method +) + +PATCHES=( + "${FILESDIR}/${PN}-prefix-6.patch" + "${FILESDIR}/${PN}-respect-cflags-3.patch" +) + +src_prepare() { + default + + eprefixify curl-config.in + eautoreconf +} + +# Generates TLS-related configure options based on USE flags. +# Outputs options suitable for appending to a configure options array. +_get_curl_tls_configure_opts() { + local tls_opts=() + + local backend flag_name + for backend in gnutls mbedtls openssl rustls; do + if [[ "$backend" == "openssl" ]]; then + flag_name="ssl" + tls_opts+=( "--with-ca-path=${EPREFIX}/etc/ssl/certs") + else + flag_name="$backend" + fi + + if use "$backend"; then + tls_opts+=( "--with-${flag_name}" ) + else + # If a single backend is enabled, 'ssl' is required, openssl is the default / fallback + if ! [[ "$backend" == "openssl" ]]; then + tls_opts+=( "--without-${flag_name}" ) + fi + fi + done + + if use curl_ssl_gnutls; then + multilib_is_native_abi && einfo "Default TLS backend: gnutls" + tls_opts+=( "--with-default-ssl-backend=gnutls" ) + elif use curl_ssl_mbedtls; then + multilib_is_native_abi && einfo "Default TLS backend: mbedtls" + tls_opts+=( "--with-default-ssl-backend=mbedtls" ) + elif use curl_ssl_openssl; then + multilib_is_native_abi && einfo "Default TLS backend: openssl" + tls_opts+=( "--with-default-ssl-backend=openssl" ) + elif use curl_ssl_rustls; then + multilib_is_native_abi && einfo "Default TLS backend: rustls" + tls_opts+=( "--with-default-ssl-backend=rustls" ) + else + eerror "We can't be here because of REQUIRED_USE." + die "Please file a bug, hit impossible condition w/ USE=ssl handling." + fi + + # Explicitly Disable unimplemented backends + tls_opts+=( + --without-amissl + --without-wolfssl + ) + + printf "%s\n" "${tls_opts[@]}" +} + +multilib_src_configure() { + use static-libs && lto-guarantee-fat + # We make use of the fact that later flags override earlier ones + # So start with all ssl providers off until proven otherwise + # TODO: in the future, we may want to add wolfssl (https://www.wolfssl.com/) + local myconf=() + + myconf+=( --without-ca-fallback --with-ca-bundle="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt ) + if use ssl; then + local -a tls_backend_opts + readarray -t tls_backend_opts < <(_get_curl_tls_configure_opts) + myconf+=( + "${tls_backend_opts[@]}" + $(use_with quic ngtcp2) + ) + else + myconf+=( --without-ssl ) + einfo "SSL disabled" + fi + + # These configuration options are organised alphabetically by category/type + + # Protocols + # `grep SUPPORT_PROTOCOLS=\" configure.ac | awk '{ print substr($2, 1, length($2)-1)}' | sort` + # Assume that anything omitted (that is not new!) is enabled by default with no deps + myconf+=( + --enable-file + $(use_enable ftp) + $(use_enable gopher) + --enable-http + $(use_enable imap) # Automatic IMAPS if TLS is enabled + $(use_enable ldap ldaps) + $(use_enable ldap) + $(use_enable pop3) + --disable-smb # Removed upstream in late 2026 + $(use_with ssh libssh2) # enables scp/sftp + --enable-rtsp + $(use_enable smtp) + $(use_enable telnet) + $(use_enable tftp) + $(use_enable websockets) + ) + + # Keep various 'HTTP-flavoured' options together + myconf+=( + $(use_enable alt-svc) + $(use_enable hsts) + $(use_enable httpsrr) + $(use_with http2 nghttp2) + $(use_with http3 nghttp3) + ) + + # --enable/disable options + # `grep -- --enable configure | grep Check | awk '{ print $4 }' | sort` + myconf+=( + $(use_enable adns ares) + --enable-aws + --enable-basic-auth + --enable-bearer-auth + --enable-cookies + --enable-dateparse + --enable-dict + --enable-digest-auth + --enable-dnsshuffle + --enable-doh + $(use_enable ech) + --enable-http-auth + --enable-ipv6 + --enable-kerberos-auth + --enable-largefile + --enable-manual + --enable-mime + --enable-negotiate-auth + --enable-netrc + --disable-ntlm # To be removed late 2026 + --enable-progress-meter + --enable-proxy + --enable-rt + --enable-socketpair + --disable-sspi + $(use_enable static-libs static) + --enable-symbol-hiding + --enable-tls-srp + --disable-versioned-symbols + ) + + # --with/without options + # `grep -- --with configure | grep Check | awk '{ print $4 }' | sort` + myconf+=( + $(use_with brotli) + --with-fish-functions-dir="${EPREFIX}"/usr/share/fish/vendor_completions.d + $(use_with idn libidn2) + $(use_with kerberos gssapi "${EPREFIX}"/usr) + $(use_with sasl-scram libgsasl) + $(use_with psl libpsl) + --without-quiche + --without-schannel + --without-winidn + --with-zlib + --with-zsh-functions-dir="${EPREFIX}"/usr/share/zsh/site-functions + $(use_with zstd) + ) + + # Test deps (disabled) + myconf+=( + --without-test-caddy + --without-test-httpd + --without-test-nghttpx + ) + + if use debug; then + myconf+=( + --enable-debug + ) + fi + + if use test && multilib_is_native_abi && ( use http2 || use http3 ); then + myconf+=( + --with-test-nghttpx="${BROOT}/usr/bin/nghttpx" + ) + fi + + # Since 8.12.0 adns/c-ares and the threaded resolver are mutually exclusive + # This is in support of some work to enable `httpsrr` to use adns and the rest + # of curl to use the threaded resolver; for us `httpsrr` is conditional on adns. + if use adns; then + myconf+=( + --disable-threaded-resolver + ) + else + myconf+=( + --enable-threaded-resolver + ) + fi + + ECONF_SOURCE="${S}" econf "${myconf[@]}" + + if ! multilib_is_native_abi; then + # Avoid building the client (we just want libcurl for multilib) + sed -i -e '/SUBDIRS/s:src::' Makefile || die + sed -i -e '/SUBDIRS/s:scripts::' Makefile || die + fi + +} + +multilib_src_compile() { + default + + if multilib_is_native_abi; then + # Shell completions + ! tc-is-cross-compiler && emake -C scripts + fi +} + +# There is also a pytest harness that tests for bugs in some very specific +# situations; we can rely on upstream for this rather than adding additional test deps. +multilib_src_test() { + # See https://github.com/curl/curl/blob/master/tests/runtests.pl#L5721 + # -n: no valgrind (unreliable in sandbox and doesn't work correctly on all arches) + # -v: verbose + # -a: keep going on failure (so we see everything that breaks, not just 1st test) + # -k: keep test files after completion + # -am: automake style TAP output + # -p: print logs if test fails + # --retry: retry any failing tests up to 3 times; this is a band-aid for timing-dependent flakiness. + # Note: if needed, we can skip specific tests. See e.g. Fedora's packaging + # or just read https://github.com/curl/curl/tree/master/tests#run. + # Note: we don't run the testsuite for cross-compilation. + # Upstream recommend 7*nproc as a starting point for parallel tests, but + # this ends up breaking when nproc is huge (like -j80). + # The network sandbox causes tests 241 and 1083 to fail; these are typically skipped + # as most gentoo users don't have an 'ip6-localhost' + multilib_is_native_abi && emake test TFLAGS="-n -v -a -k -am -p -j$((2*$(get_makeopts_jobs))) --retry=3 !241 !1083" + # TODO: enable python tests (make pytest). +} + +multilib_src_install() { + emake DESTDIR="${D}" install + + if multilib_is_native_abi; then + # Shell completions + ! tc-is-cross-compiler && emake -C scripts DESTDIR="${D}" install + fi +} + +multilib_src_install_all() { + einstalldocs + find "${ED}" -type f -name '*.la' -delete || die + + use static-libs && strip-lto-bytecode + + rm -rf "${ED}"/etc/ || die +} + +pkg_postinst() { + if use debug; then + ewarn "USE=debug has been selected, enabling debug codepaths and making cURL extra verbose." + ewarn "Use this _only_ for testing. Debug builds should _not_ be used in anger." + ewarn "hic sunt dracones; you have been warned." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-9999.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-9999.ebuild index 9a7175c41e4..02a08edae34 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-9999.ebuild @@ -33,7 +33,7 @@ fi LICENSE="BSD curl ISC test? ( BSD-4 )" SLOT="0" IUSE="+adns +alt-svc brotli debug ech +ftp gnutls gopher +hsts +http2 +http3 +httpsrr idn +imap kerberos ldap" -IUSE+=" mbedtls +openssl +pop3 +psl +quic rustls samba sasl-scram +smtp ssh ssl static-libs test" +IUSE+=" mbedtls +openssl +pop3 +psl +quic rustls sasl-scram +smtp ssh ssl static-libs test" IUSE+=" telnet +tftp +websockets zstd" # These select the default tls implementation / which quic impl to use IUSE+=" curl_ssl_gnutls curl_ssl_mbedtls +curl_ssl_openssl curl_ssl_rustls" @@ -45,22 +45,25 @@ RESTRICT="!test? ( test )" # To simplify dependency management in the ebuild we'll require c-ares for HTTPS RR (for now?). # HTTPS RR in cURL is a dependency for: -# - ECH (requires patched openssl or gnutls currently, enabled with rustls) +# - ECH (enabled with rustls, ossl 4.0+) # - Fetching the ALPN list which should provide a better HTTP/3 experience. - # Only one default ssl / quic provider can be enabled # The default provider needs its USE satisfied # HTTP/3 and MultiSSL are mutually exclusive; it's not clear if MultiSSL offers any benefit at all in the modern day. # https://github.com/curl/curl/commit/65ece771f4602107d9cdd339dff4b420280a2c2e REQUIRED_USE=" - ech? ( rustls ) + ech? ( + || ( + openssl + rustls + ) + ) httpsrr? ( adns ) quic? ( ^^ ( openssl gnutls ) - !gnutls !mbedtls !rustls http3 @@ -86,6 +89,7 @@ REQUIRED_USE=" # - https://github.com/curl/curl/blob/master/docs/INTERNALS.md (core dependencies + minimum versions) # - https://github.com/curl/curl/blob/master/docs/HTTP3.md (example of a feature that moves quickly) # - https://github.com/curl/curl/blob/master/.github/workflows/http3-linux.yml (CI/CD for TCP/2) +# - https://curl.se/dev/deprecate.html - good source of deprecation timelines, e.g. for OpenSSL 1.1.1 # However 'supported' vs 'works' are two entirely different things; be sane but # don't be afraid to require a later version. # ngtcp2 = https://bugs.gentoo.org/912029 - can only build with one tls backend at a time. @@ -116,7 +120,8 @@ RDEPEND=" net-libs/mbedtls:3=[${MULTILIB_USEDEP}] ) openssl? ( - >=dev-libs/openssl-1.0.2:=[static-libs?,${MULTILIB_USEDEP}] + ech? ( >=dev-libs/openssl-4.0.0_beta1:=[static-libs?,${MULTILIB_USEDEP}] ) + >=dev-libs/openssl-3.0.0:=[static-libs?,${MULTILIB_USEDEP}] ) rustls? ( >=net-libs/rustls-ffi-0.15.0:=[${MULTILIB_USEDEP}] @@ -258,7 +263,7 @@ multilib_src_configure() { $(use_enable ldap ldaps) $(use_enable ldap) $(use_enable pop3) - $(use_enable samba smb) + --disable-smb # Removed upstream in late 2026 $(use_with ssh libssh2) # enables scp/sftp --enable-rtsp $(use_enable smtp) @@ -298,7 +303,7 @@ multilib_src_configure() { --enable-mime --enable-negotiate-auth --enable-netrc - --enable-ntlm + --disable-ntlm # To be removed late 2026 --enable-progress-meter --enable-proxy --enable-rt @@ -388,6 +393,7 @@ multilib_src_test() { # -k: keep test files after completion # -am: automake style TAP output # -p: print logs if test fails + # --retry: retry any failing tests up to 3 times; this is a band-aid for timing-dependent flakiness. # Note: if needed, we can skip specific tests. See e.g. Fedora's packaging # or just read https://github.com/curl/curl/tree/master/tests#run. # Note: we don't run the testsuite for cross-compilation. @@ -395,7 +401,8 @@ multilib_src_test() { # this ends up breaking when nproc is huge (like -j80). # The network sandbox causes tests 241 and 1083 to fail; these are typically skipped # as most gentoo users don't have an 'ip6-localhost' - multilib_is_native_abi && emake test TFLAGS="-n -v -a -k -am -p -j$((2*$(makeopts_jobs))) !241 !1083" + multilib_is_native_abi && emake test TFLAGS="-n -v -a -k -am -p -j$((2*$(get_makeopts_jobs))) --retry=3 !241 !1083" + # TODO: enable python tests (make pytest). } multilib_src_install() { diff --git a/sdk_container/src/third_party/portage-stable/net-misc/iperf/Manifest b/sdk_container/src/third_party/portage-stable/net-misc/iperf/Manifest index 4d31b34f827..93c80e719ac 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/iperf/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-misc/iperf/Manifest @@ -1,3 +1,4 @@ DIST iperf-2.2.1.tar.gz 509514 BLAKE2B 9075df9513e98beeaed5c2f6799f62f72fbfd8fc63696674018b7435dae87d5edeca3fb0541775c37c188bd61bd8394c3125a8a8c07e0c4ba1c2efa86a602404 SHA512 07a08afe647e87939e05c9cd55601ca1227c91f44ef32fdf305a0e15e524d1de29d38e9a3f66253d7308585224e54db395d7dec654d31eea746f45c6947ebc2a DIST iperf-3.19.1.tar.gz 698445 BLAKE2B fae065d3e8131c072bd70666c87067c85b2ea56fcee70197bea1d5b82266b1d2f4dbb9318b566fdd4add08776dadb1feebe9915108531d3af9e13a777e2b60e7 SHA512 7239eddf55197c45aa751d05b6518a0782ec4f2ce4d9b4246b74c41dc21077102f3f5cc3359129c32c6842d482f4a9557a92ab84d96e0a9c7063052c9cbed4f6 DIST iperf-3.20.tar.gz 702527 BLAKE2B 2a6d77498028375177275452d0bbce7af12fb477b70ed275cc2dc092a02a96f3b9389e584e9e89628042bcadadcafba121b3bd84598a7781e8e6c4bd49d7e843 SHA512 2a52d27388e2585327f92b9cd33335345706371533f1e8da9aa5fb66d11cca70d8690f12c24bf31d7fa231e41225faa2f93b7b31fd869cbd2f34ab5401e3f5ff +DIST iperf-3.21.tar.gz 711039 BLAKE2B 7ac39edca583485ef4943850df79ccfd834439a042caa4cc4c2c8a436a4057f8846738c43dcdc92e32a318a4d0f354cc2449677b2cf94286b05556762a118081 SHA512 6418c5521ab4e7ab9a18ecf07b3c0b9460d0015314bf6fdea9b3a748b1deb8c47a6ed1e5fd86cc0a99e0f6877e943f44488387f1fc2c3c17e091014fb9ad003c diff --git a/sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-3.21.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-3.21.ebuild new file mode 100644 index 00000000000..de0cd2d83fb --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-3.21.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools systemd + +DESCRIPTION="TCP, UDP, and SCTP network bandwidth measurement tool" +HOMEPAGE="https://software.es.net/iperf/ https://github.com/esnet/iperf" +SRC_URI="https://github.com/esnet/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="3" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86 ~x64-macos" +IUSE="sctp" + +RDEPEND=" + >=dev-libs/cJSON-1.7.15 + dev-libs/openssl:= + sctp? ( net-misc/lksctp-tools ) +" +DEPEND=" + ${DEPEND} + virtual/os-headers +" +BDEPEND="virtual/pkgconfig" + +DOCS=( README.md RELNOTES.md ) + +PATCHES=( + "${FILESDIR}"/${PN}-3.10.1-drop-forced-debugging-symbols.patch + "${FILESDIR}"/${PN}-3.18-unbundle-cJSON.patch +) + +src_prepare() { + default + + # Drop bundled cjson + rm src/cjson.{c,h} || die + + eautoreconf +} + +src_configure() { + local myeconfargs=( + LDCONFIG=false + # Makes LDCONFIG blank and triggers a syntax error in 3.21 + #--without-ldconfig + + $(use_with sctp) + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + default + + newconfd "${FILESDIR}"/iperf.confd iperf3 + newinitd "${FILESDIR}"/iperf3.initd iperf3 + systemd_dounit contrib/iperf3.service + + find "${ED}" -name '*.la' -type f -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/iputils/metadata.xml b/sdk_container/src/third_party/portage-stable/net-misc/iputils/metadata.xml index 11886b88716..18b1bf34913 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/iputils/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/net-misc/iputils/metadata.xml @@ -8,6 +8,7 @@ Build and install arping -- tool for sending ARP requests to peers (see also net-analyzer/arping) Build and install clockdiff -- tool for comparing clocks via ICMP packets + If filecaps are disabled, install binaries with suid bit enabled Build and install tracepath -- tool for tracing network paths for discovering MTU values diff --git a/sdk_container/src/third_party/portage-stable/net-misc/ntp/Manifest b/sdk_container/src/third_party/portage-stable/net-misc/ntp/Manifest index 5a2d017377b..d96d4ae688b 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/ntp/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-misc/ntp/Manifest @@ -1,2 +1 @@ -DIST ntp-4.2.8p17.tar.gz 7120469 BLAKE2B 5c0e90a234cdeab76e7443b42dfd5a0c3c78693a11bdb0fa21c8def91adbdf9b9871498df9d211509632812a9107501da3470104122e9621577541ffd6cd1ab6 SHA512 e003bfe6f46065890663bc6791b02277f64318b692e49d8d678b76c23b245f357834eb483b0a44f1f47783166e5504686b36494af77f6eebe6f844cd3f2b6a8c DIST ntp-4.2.8p18.tar.gz 7210799 BLAKE2B 9a7bb767d2d8ae3a7224542df7978f8289cbdf28488c5e4dce4c549cdd1063259f69548898a352c0463ce83c4725bfd7c7dbf673ee3b74e490d7b1275760497c SHA512 c314f645d7d85e1028327657f30557cdfd86d417565b6c9fcbb40fca8a4c22a97b70908e8b73c6b31e14915b5b910ae0055fd42e819dd3cb48583b2a826c3fc4 diff --git a/sdk_container/src/third_party/portage-stable/net-misc/ntp/files/ntp-4.2.8-configure.patch b/sdk_container/src/third_party/portage-stable/net-misc/ntp/files/ntp-4.2.8-configure.patch new file mode 100644 index 00000000000..8cb2e71a638 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/ntp/files/ntp-4.2.8-configure.patch @@ -0,0 +1,10 @@ +--- a/sntp/configure.ac 2026-02-27 15:38:32.797019944 -0800 ++++ b/sntp/configure.ac 2026-02-27 15:38:44.254081143 -0800 +@@ -131,6 +131,7 @@ + + # Checks for library functions. + AC_CHECK_FUNCS([socket]) ++AC_CHECK_FUNCS([strdup strnlen memchr strerror setrlimit strchr]) + + NTP_UNITYBUILD + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/ntp/files/ntp-4.2.8-ipc-caps.patch b/sdk_container/src/third_party/portage-stable/net-misc/ntp/files/ntp-4.2.8-ipc-caps.patch deleted file mode 100644 index a1e558052df..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/ntp/files/ntp-4.2.8-ipc-caps.patch +++ /dev/null @@ -1,16 +0,0 @@ -http://bugs.ntp.org/show_bug.cgi?id=2646 -https://bugs.gentoo.org/533966 - ---- a/ntpd/ntpd.c -+++ a/ntpd/ntpd.c -@@ -971,8 +971,8 @@ getgroup: - char *captext; - - captext = (0 != interface_interval) -- ? "cap_sys_time,cap_net_bind_service=pe" -- : "cap_sys_time=pe"; -+ ? "cap_ipc_lock,cap_sys_time,cap_net_bind_service=pe" -+ : "cap_ipc_lock,cap_sys_time=pe"; - caps = cap_from_text(captext); - if (!caps) { - msyslog(LOG_ERR, diff --git a/sdk_container/src/third_party/portage-stable/net-misc/ntp/ntp-4.2.8_p17-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/ntp/ntp-4.2.8_p17-r1.ebuild deleted file mode 100644 index 18de1d37231..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/ntp/ntp-4.2.8_p17-r1.ebuild +++ /dev/null @@ -1,166 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools flag-o-matic systemd tmpfiles - -MY_P=${P/_p/p} -DESCRIPTION="Network Time Protocol suite/programs" -HOMEPAGE="https://www.ntp.org/" -SRC_URI="https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-${PV:0:3}/${MY_P}.tar.gz" -S="${WORKDIR}/${MY_P}" - -LICENSE="HPND BSD ISC" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="caps debug ipv6 openntpd parse-clocks readline samba selinux snmp ssl +threads vim-syntax zeroconf" - -DEPEND=" - >=dev-libs/libevent-2.0.9:=[threads(+)?] - readline? ( >=sys-libs/readline-4.1:= ) - kernel_linux? ( caps? ( sys-libs/libcap ) ) - zeroconf? ( net-dns/avahi[mdnsresponder-compat] ) - snmp? ( net-analyzer/net-snmp ) - ssl? ( dev-libs/openssl:= ) - parse-clocks? ( net-misc/pps-tools ) -" -RDEPEND=" - ${DEPEND} - acct-group/ntp - acct-user/ntp - selinux? ( sec-policy/selinux-ntp ) - vim-syntax? ( app-vim/ntp-syntax ) - !net-misc/ntpsec - !openntpd? ( !net-misc/openntpd ) -" -BDEPEND=" - acct-group/ntp - acct-user/ntp - virtual/pkgconfig -" -PDEPEND="openntpd? ( net-misc/openntpd )" - -PATCHES=( - "${FILESDIR}"/${PN}-4.2.8-ipc-caps.patch # bug #533966 - "${FILESDIR}"/${PN}-4.2.8-sntp-test-pthreads.patch # bug #563922 - "${FILESDIR}"/${PN}-4.2.8_p14-add_cap_ipc_lock.patch # bug #711530 - "${FILESDIR}"/${PN}-4.2.8_p15-configure-clang16.patch -) - -src_prepare() { - default - - # Make sure every build uses the same install layout, bug #539092 - find sntp/loc/ -type f '!' -name legacy -delete || die - - # bug #622754 - eautoreconf - - # Disable pointless checks. - touch .checkChangeLog .gcc-warning FRC.html html/.datecheck || die -} - -src_configure() { - # bug #264109 - append-cppflags -D_GNU_SOURCE - - # https://bugs.gentoo.org/922508 - append-lfs-flags - - # avoid libmd5/libelf - export ac_cv_search_MD5Init=no ac_cv_header_md5_h=no - export ac_cv_lib_elf_nlist=no - # blah, no real configure options #176333 - export ac_cv_header_dns_sd_h=$(usex zeroconf) - export ac_cv_lib_dns_sd_DNSServiceRegister=${ac_cv_header_dns_sd_h} - # Unity builds, we don't really need support for it, bug #804109 - export PATH_RUBY=/bin/false - - local myeconfargs=( - --cache-file="${S}"/config.cache - - --with-lineeditlibs=readline,edit,editline - --with-yielding-select - --disable-local-libevent - - # Increase the default memlimit from 32MiB to 128MiB, bug #533232 - --with-memlock=256 - - # Avoid overriding the user's toolchain settings, bug #895802 - --with-hardenfile=/dev/null - - $(use_enable caps linuxcaps) - $(use_enable parse-clocks) - $(use_enable ipv6) - $(use_enable debug debugging) - $(use_with readline lineeditlibs readline) - $(use_enable samba ntp-signd) - $(use_with snmp ntpsnmpd) - $(use_with ssl crypto) - $(use_enable threads thread-support) - ) - - econf "${myeconfargs[@]}" -} - -src_install() { - default - - # Move ntpd/ntpdate to sbin, bug #66671 - dodir /usr/sbin - mv "${ED}"/usr/bin/{ntpd,ntpdate} "${ED}"/usr/sbin/ || die "move to sbin" - - dodoc INSTALL WHERE-TO-START - - insinto /etc - doins "${FILESDIR}"/ntp.conf - - #bug #524726 - use ipv6 || sed -i '/^restrict .*::1/d' "${ED}"/etc/ntp.conf - - newinitd "${FILESDIR}"/ntpd.rc-r2 ntpd - newconfd "${FILESDIR}"/ntpd.confd ntpd - newinitd "${FILESDIR}"/ntp-client.rc ntp-client - newconfd "${FILESDIR}"/ntp-client.confd ntp-client - newinitd "${FILESDIR}"/sntp.rc sntp - newconfd "${FILESDIR}"/sntp.confd sntp - if ! use caps ; then - sed -i "s|-u ntp:ntp||" "${ED}"/etc/conf.d/ntpd || die - fi - sed -i "s:/usr/bin:/usr/sbin:" "${ED}"/etc/init.d/ntpd || die - - if use openntpd ; then - cd "${ED}" || die - rm usr/sbin/ntpd || die - rm etc/{conf,init}.d/ntpd || die - rm usr/share/man/man1/ntpd.1 || die - else - newtmpfiles "${FILESDIR}"/ntp.tmpfiles ntp.conf - systemd_newunit "${FILESDIR}"/ntpd.service-r2 ntpd.service - if use caps ; then - sed -i '/ExecStart/ s|$| -u ntp:ntp|' \ - "${D}$(systemd_get_systemunitdir)"/ntpd.service \ - || die - fi - systemd_enable_ntpunit 60-ntpd ntpd.service - fi - - systemd_newunit "${FILESDIR}"/ntpdate.service-r2 ntpdate.service - systemd_install_serviced "${FILESDIR}"/ntpdate.service.conf - systemd_newunit "${FILESDIR}"/sntp.service-r3 sntp.service - systemd_install_serviced "${FILESDIR}"/sntp.service.conf -} - -pkg_postinst() { - if ! use openntpd; then - tmpfiles_process ntp.conf - fi - - if grep -qs '^[^#].*notrust' "${EROOT}"/etc/ntp.conf ; then - eerror "The notrust option was found in your /etc/ntp.conf!" - ewarn "If your ntpd starts sending out weird responses," - ewarn "then make sure you have keys properly setup and see" - ewarn "https://bugs.gentoo.org/41827" - fi -} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/ntp/ntp-4.2.8_p17-r2.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/ntp/ntp-4.2.8_p17-r2.ebuild deleted file mode 100644 index 1da4ffeb846..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/ntp/ntp-4.2.8_p17-r2.ebuild +++ /dev/null @@ -1,162 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools flag-o-matic systemd tmpfiles - -MY_P=${P/_p/p} -DESCRIPTION="Network Time Protocol suite/programs" -HOMEPAGE="https://www.ntp.org/" -SRC_URI="https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-${PV:0:3}/${MY_P}.tar.gz" -S="${WORKDIR}/${MY_P}" - -LICENSE="HPND BSD ISC" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="caps debug openntpd parse-clocks readline samba selinux snmp ssl +threads vim-syntax zeroconf" - -DEPEND=" - >=dev-libs/libevent-2.0.9:=[threads(+)?] - readline? ( >=sys-libs/readline-4.1:= ) - kernel_linux? ( caps? ( sys-libs/libcap ) ) - zeroconf? ( net-dns/avahi[mdnsresponder-compat] ) - snmp? ( net-analyzer/net-snmp ) - ssl? ( dev-libs/openssl:= ) - parse-clocks? ( net-misc/pps-tools ) -" -RDEPEND=" - ${DEPEND} - acct-group/ntp - acct-user/ntp - selinux? ( sec-policy/selinux-ntp ) - vim-syntax? ( app-vim/ntp-syntax ) - !net-misc/ntpsec - !openntpd? ( !net-misc/openntpd ) -" -BDEPEND=" - acct-group/ntp - acct-user/ntp - virtual/pkgconfig -" -PDEPEND="openntpd? ( net-misc/openntpd )" - -PATCHES=( - "${FILESDIR}"/${PN}-4.2.8-ipc-caps.patch # bug #533966 - "${FILESDIR}"/${PN}-4.2.8-sntp-test-pthreads.patch # bug #563922 - "${FILESDIR}"/${PN}-4.2.8_p14-add_cap_ipc_lock.patch # bug #711530 - "${FILESDIR}"/${PN}-4.2.8_p15-configure-clang16.patch -) - -src_prepare() { - default - - # Make sure every build uses the same install layout, bug #539092 - find sntp/loc/ -type f '!' -name legacy -delete || die - - # bug #622754 - eautoreconf - - # Disable pointless checks. - touch .checkChangeLog .gcc-warning FRC.html html/.datecheck || die -} - -src_configure() { - # bug #264109 - append-cppflags -D_GNU_SOURCE - - # https://bugs.gentoo.org/922508 - append-lfs-flags - - # avoid libmd5/libelf - export ac_cv_search_MD5Init=no ac_cv_header_md5_h=no - export ac_cv_lib_elf_nlist=no - # blah, no real configure options #176333 - export ac_cv_header_dns_sd_h=$(usex zeroconf) - export ac_cv_lib_dns_sd_DNSServiceRegister=${ac_cv_header_dns_sd_h} - # Unity builds, we don't really need support for it, bug #804109 - export PATH_RUBY=/bin/false - - local myeconfargs=( - --cache-file="${S}"/config.cache - - --with-lineeditlibs=readline,edit,editline - --with-yielding-select - --disable-local-libevent - - # Increase the default memlimit from 32MiB to 128MiB, bug #533232 - --with-memlock=256 - - # Avoid overriding the user's toolchain settings, bug #895802 - --with-hardenfile=/dev/null - - $(use_enable caps linuxcaps) - $(use_enable parse-clocks) - $(use_enable debug debugging) - $(use_with readline lineeditlibs readline) - $(use_enable samba ntp-signd) - $(use_with snmp ntpsnmpd) - $(use_with ssl crypto) - $(use_enable threads thread-support) - ) - - econf "${myeconfargs[@]}" -} - -src_install() { - default - - # Move ntpd/ntpdate to sbin, bug #66671 - dodir /usr/sbin - mv "${ED}"/usr/bin/{ntpd,ntpdate} "${ED}"/usr/sbin/ || die "move to sbin" - - dodoc INSTALL WHERE-TO-START - - insinto /etc - doins "${FILESDIR}"/ntp.conf - - newinitd "${FILESDIR}"/ntpd.rc-r2 ntpd - newconfd "${FILESDIR}"/ntpd.confd ntpd - newinitd "${FILESDIR}"/ntp-client.rc ntp-client - newconfd "${FILESDIR}"/ntp-client.confd ntp-client - newinitd "${FILESDIR}"/sntp.rc sntp - newconfd "${FILESDIR}"/sntp.confd sntp - if ! use caps ; then - sed -i "s|-u ntp:ntp||" "${ED}"/etc/conf.d/ntpd || die - fi - sed -i "s:/usr/bin:/usr/sbin:" "${ED}"/etc/init.d/ntpd || die - - if use openntpd ; then - cd "${ED}" || die - rm usr/sbin/ntpd || die - rm etc/{conf,init}.d/ntpd || die - rm usr/share/man/man1/ntpd.1 || die - else - newtmpfiles "${FILESDIR}"/ntp.tmpfiles ntp.conf - systemd_newunit "${FILESDIR}"/ntpd.service-r2 ntpd.service - if use caps ; then - sed -i '/ExecStart/ s|$| -u ntp:ntp|' \ - "${D}$(systemd_get_systemunitdir)"/ntpd.service \ - || die - fi - systemd_enable_ntpunit 60-ntpd ntpd.service - fi - - systemd_newunit "${FILESDIR}"/ntpdate.service-r2 ntpdate.service - systemd_install_serviced "${FILESDIR}"/ntpdate.service.conf - systemd_newunit "${FILESDIR}"/sntp.service-r3 sntp.service - systemd_install_serviced "${FILESDIR}"/sntp.service.conf -} - -pkg_postinst() { - if ! use openntpd; then - tmpfiles_process ntp.conf - fi - - if grep -qs '^[^#].*notrust' "${EROOT}"/etc/ntp.conf ; then - eerror "The notrust option was found in your /etc/ntp.conf!" - ewarn "If your ntpd starts sending out weird responses," - ewarn "then make sure you have keys properly setup and see" - ewarn "https://bugs.gentoo.org/41827" - fi -} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/ntp/ntp-4.2.8_p18-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/ntp/ntp-4.2.8_p18-r1.ebuild deleted file mode 100644 index 8eb4edbf232..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/ntp/ntp-4.2.8_p18-r1.ebuild +++ /dev/null @@ -1,167 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools flag-o-matic systemd tmpfiles - -MY_P=${P/_p/p} -DESCRIPTION="Network Time Protocol suite/programs" -HOMEPAGE="https://www.ntp.org/" -SRC_URI="https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-${PV:0:3}/${MY_P}.tar.gz" -S="${WORKDIR}/${MY_P}" - -LICENSE="HPND BSD ISC" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="caps debug openntpd parse-clocks readline samba selinux snmp ssl +threads vim-syntax zeroconf" - -DEPEND=" - >=dev-libs/libevent-2.0.9:=[threads(+)?] - readline? ( >=sys-libs/readline-4.1:= ) - kernel_linux? ( caps? ( sys-libs/libcap ) ) - zeroconf? ( net-dns/avahi[mdnsresponder-compat] ) - snmp? ( net-analyzer/net-snmp ) - ssl? ( dev-libs/openssl:= ) - parse-clocks? ( net-misc/pps-tools ) -" -RDEPEND=" - ${DEPEND} - acct-group/ntp - acct-user/ntp - selinux? ( sec-policy/selinux-ntp ) - vim-syntax? ( app-vim/ntp-syntax ) - !net-misc/ntpsec - !openntpd? ( !net-misc/openntpd ) -" -BDEPEND=" - acct-group/ntp - acct-user/ntp - virtual/pkgconfig -" -PDEPEND="openntpd? ( net-misc/openntpd )" - -PATCHES=( - "${FILESDIR}"/${PN}-4.2.8_p18-ipc-caps.patch # bug #533966 - "${FILESDIR}"/${PN}-4.2.8-sntp-test-pthreads.patch # bug #563922 - "${FILESDIR}"/${PN}-4.2.8_p14-add_cap_ipc_lock.patch # bug #711530 - "${FILESDIR}"/${PN}-4.2.8_p15-configure-clang16.patch - "${FILESDIR}"/${PN}-4.2.8_p18-c99.patch # bug #956643 -) - -src_prepare() { - default - - # Make sure every build uses the same install layout, bug #539092 - find sntp/loc/ -type f '!' -name legacy -delete || die - - # bug #622754 - eautoreconf - - # Disable pointless checks. - touch .checkChangeLog .gcc-warning FRC.html html/.datecheck || die -} - -src_configure() { - # Ancient codebase, lto-type-mismatch in testsuite in packetProcesisng.c - # where patching it then needs Ruby. - filter-lto - - # bug #264109 - append-cppflags -D_GNU_SOURCE - - # https://bugs.gentoo.org/922508 - append-lfs-flags - - # avoid libmd5/libelf - export ac_cv_search_MD5Init=no ac_cv_header_md5_h=no - export ac_cv_lib_elf_nlist=no - # blah, no real configure options #176333 - export ac_cv_header_dns_sd_h=$(usex zeroconf) - export ac_cv_lib_dns_sd_DNSServiceRegister=${ac_cv_header_dns_sd_h} - # Unity builds, we don't really need support for it, bug #804109 - export PATH_RUBY=/bin/false - - local myeconfargs=( - --cache-file="${S}"/config.cache - - --with-lineeditlibs=readline,edit,editline - --with-yielding-select - --disable-local-libevent - - # Increase the default memlimit from 32MiB to 128MiB, bug #533232 - --with-memlock=256 - - # Avoid overriding the user's toolchain settings, bug #895802 - --with-hardenfile=/dev/null - - $(use_enable caps linuxcaps) - $(use_enable parse-clocks) - $(use_enable debug debugging) - $(use_with readline lineeditlibs readline) - $(use_enable samba ntp-signd) - $(use_with snmp ntpsnmpd) - $(use_with ssl crypto) - $(use_enable threads thread-support) - ) - - econf "${myeconfargs[@]}" -} - -src_install() { - default - - # Move ntpd/ntpdate to sbin, bug #66671 - dodir /usr/sbin - mv "${ED}"/usr/bin/{ntpd,ntpdate} "${ED}"/usr/sbin/ || die "move to sbin" - - dodoc INSTALL WHERE-TO-START - - insinto /etc - doins "${FILESDIR}"/ntp.conf - - newinitd "${FILESDIR}"/ntpd.rc-r2 ntpd - newconfd "${FILESDIR}"/ntpd.confd ntpd - newinitd "${FILESDIR}"/ntp-client.rc ntp-client - newconfd "${FILESDIR}"/ntp-client.confd ntp-client - newinitd "${FILESDIR}"/sntp.rc sntp - newconfd "${FILESDIR}"/sntp.confd sntp - if ! use caps ; then - sed -i "s|-u ntp:ntp||" "${ED}"/etc/conf.d/ntpd || die - fi - sed -i "s:/usr/bin:/usr/sbin:" "${ED}"/etc/init.d/ntpd || die - - if use openntpd ; then - cd "${ED}" || die - rm usr/sbin/ntpd || die - rm etc/{conf,init}.d/ntpd || die - rm usr/share/man/man1/ntpd.1 || die - else - newtmpfiles "${FILESDIR}"/ntp.tmpfiles ntp.conf - systemd_newunit "${FILESDIR}"/ntpd.service-r2 ntpd.service - if use caps ; then - sed -i '/ExecStart/ s|$| -u ntp:ntp|' \ - "${D}$(systemd_get_systemunitdir)"/ntpd.service \ - || die - fi - systemd_enable_ntpunit 60-ntpd ntpd.service - fi - - systemd_newunit "${FILESDIR}"/ntpdate.service-r2 ntpdate.service - systemd_install_serviced "${FILESDIR}"/ntpdate.service.conf - systemd_newunit "${FILESDIR}"/sntp.service-r3 sntp.service - systemd_install_serviced "${FILESDIR}"/sntp.service.conf -} - -pkg_postinst() { - if ! use openntpd; then - tmpfiles_process ntp.conf - fi - - if grep -qs '^[^#].*notrust' "${EROOT}"/etc/ntp.conf ; then - eerror "The notrust option was found in your /etc/ntp.conf!" - ewarn "If your ntpd starts sending out weird responses," - ewarn "then make sure you have keys properly setup and see" - ewarn "https://bugs.gentoo.org/41827" - fi -} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/ntp/ntp-4.2.8_p18-r3.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/ntp/ntp-4.2.8_p18-r3.ebuild new file mode 100644 index 00000000000..b6e41c8f806 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/ntp/ntp-4.2.8_p18-r3.ebuild @@ -0,0 +1,170 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic systemd tmpfiles + +MY_P=${P/_p/p} +DESCRIPTION="Network Time Protocol suite/programs" +HOMEPAGE="https://www.ntp.org/" +SRC_URI="https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-${PV:0:3}/${MY_P}.tar.gz" +S="${WORKDIR}/${MY_P}" + +LICENSE="HPND BSD ISC" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +IUSE="caps debug openntpd parse-clocks readline samba selinux snmp ssl +threads vim-syntax zeroconf" + +DEPEND=" + >=dev-libs/libevent-2.0.9:=[threads(+)?] + readline? ( >=sys-libs/readline-4.1:= ) + kernel_linux? ( caps? ( sys-libs/libcap ) ) + zeroconf? ( net-dns/avahi[mdnsresponder-compat] ) + snmp? ( net-analyzer/net-snmp ) + ssl? ( dev-libs/openssl:= ) + parse-clocks? ( net-misc/pps-tools ) +" +RDEPEND=" + ${DEPEND} + acct-group/ntp + acct-user/ntp + selinux? ( sec-policy/selinux-ntp ) + vim-syntax? ( app-vim/ntp-syntax ) + !net-misc/ntpsec + !openntpd? ( !net-misc/openntpd ) +" +BDEPEND=" + acct-group/ntp + acct-user/ntp + virtual/pkgconfig +" +PDEPEND="openntpd? ( net-misc/openntpd )" + +PATCHES=( + "${FILESDIR}"/${PN}-4.2.8_p18-ipc-caps.patch # bug #533966 + "${FILESDIR}"/${PN}-4.2.8-sntp-test-pthreads.patch # bug #563922 + "${FILESDIR}"/${PN}-4.2.8_p14-add_cap_ipc_lock.patch # bug #711530 + "${FILESDIR}"/${PN}-4.2.8_p15-configure-clang16.patch + "${FILESDIR}"/${PN}-4.2.8_p18-c99.patch # bug #956643 + "${FILESDIR}"/${PN}-4.2.8_p18-r2-bind-fail-NULL-dereference.patch # bug #962770 + "${FILESDIR}"/${PN}-4.2.8-configure.patch # bug 969483 +) + +src_prepare() { + default + + # Make sure every build uses the same install layout, bug #539092 + find sntp/loc/ -type f '!' -name legacy -delete || die + + # bug #622754 + eautoreconf + + # Disable pointless checks. + touch .checkChangeLog .gcc-warning FRC.html html/.datecheck || die +} + +src_configure() { + # Ancient codebase, lto-type-mismatch in testsuite in packetProcesisng.c + # where patching it then needs Ruby. + filter-lto + + # bug #264109 + append-cppflags -D_GNU_SOURCE + append-cflags -fno-strict-overflow + + # https://bugs.gentoo.org/922508 + append-lfs-flags + + # avoid libmd5/libelf + export ac_cv_search_MD5Init=no ac_cv_header_md5_h=no + export ac_cv_lib_elf_nlist=no + # blah, no real configure options #176333 + export ac_cv_header_dns_sd_h=$(usex zeroconf) + export ac_cv_lib_dns_sd_DNSServiceRegister=${ac_cv_header_dns_sd_h} + # Unity builds, we don't really need support for it, bug #804109 + export PATH_RUBY=/bin/false + + local myeconfargs=( + --cache-file="${S}"/config.cache + + --with-lineeditlibs=readline,edit,editline + --with-yielding-select + --disable-local-libevent + + # Increase the default memlimit from 32MiB to 128MiB, bug #533232 + --with-memlock=256 + + # Avoid overriding the user's toolchain settings, bug #895802 + --with-hardenfile=/dev/null + + $(use_enable caps linuxcaps) + $(use_enable parse-clocks) + $(use_enable debug debugging) + $(use_with readline lineeditlibs readline) + $(use_enable samba ntp-signd) + $(use_with snmp ntpsnmpd) + $(use_with ssl crypto) + $(use_enable threads thread-support) + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + default + + # Move ntpd/ntpdate to sbin, bug #66671 + dodir /usr/sbin + mv "${ED}"/usr/bin/{ntpd,ntpdate} "${ED}"/usr/sbin/ || die "move to sbin" + + dodoc INSTALL WHERE-TO-START + + insinto /etc + doins "${FILESDIR}"/ntp.conf + + newinitd "${FILESDIR}"/ntpd.rc-r2 ntpd + newconfd "${FILESDIR}"/ntpd.confd ntpd + newinitd "${FILESDIR}"/ntp-client.rc-r1 ntp-client + newconfd "${FILESDIR}"/ntp-client.confd ntp-client + newinitd "${FILESDIR}"/sntp.rc sntp + newconfd "${FILESDIR}"/sntp.confd sntp + if ! use caps ; then + sed -i "s|-u ntp:ntp||" "${ED}"/etc/conf.d/ntpd || die + fi + sed -i "s:/usr/bin:/usr/sbin:" "${ED}"/etc/init.d/ntpd || die + + if use openntpd ; then + cd "${ED}" || die + rm usr/sbin/ntpd || die + rm etc/{conf,init}.d/ntpd || die + rm usr/share/man/man1/ntpd.1 || die + else + newtmpfiles "${FILESDIR}"/ntp.tmpfiles ntp.conf + systemd_newunit "${FILESDIR}"/ntpd.service-r2 ntpd.service + if use caps ; then + sed -i '/ExecStart/ s|$| -u ntp:ntp|' \ + "${D}$(systemd_get_systemunitdir)"/ntpd.service \ + || die + fi + systemd_enable_ntpunit 60-ntpd ntpd.service + fi + + systemd_newunit "${FILESDIR}"/ntpdate.service-r2 ntpdate.service + systemd_install_serviced "${FILESDIR}"/ntpdate.service.conf + systemd_newunit "${FILESDIR}"/sntp.service-r3 sntp.service + systemd_install_serviced "${FILESDIR}"/sntp.service.conf +} + +pkg_postinst() { + if ! use openntpd; then + tmpfiles_process ntp.conf + fi + + if grep -qs '^[^#].*notrust' "${EROOT}"/etc/ntp.conf ; then + eerror "The notrust option was found in your /etc/ntp.conf!" + ewarn "If your ntpd starts sending out weird responses," + ewarn "then make sure you have keys properly setup and see" + ewarn "https://bugs.gentoo.org/41827" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/Manifest b/sdk_container/src/third_party/portage-stable/net-misc/openssh/Manifest index 35e0050423f..5dc92dfa6e1 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 @@ -4,6 +4,8 @@ DIST openssh-10.1p1.tar.gz 1972831 BLAKE2B 08864c9302935cde87eec9d736a90b0bcf232 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-10.3p1.tar.gz 2007369 BLAKE2B 77ff7c3bc943702267d74f6f7cdae44209ab940e42501e8a225761f3c8ab5416f2f0e4e61183e0b4cd79d5a041f4d1600674fcda17d3a2bd172074655cefdcd1 SHA512 cb2bd67086491c25e305879b924c3dfa8236502a60c7f250b2fd17d2d9a79ebfc2e40b2f43e42dcf598cc510996e00cc03df9b8e38f34bc2dc71a3d4ff3788fa +DIST openssh-10.3p1.tar.gz.asc 833 BLAKE2B ce5f811225a59b4724092ef3cb7f7815ed1c57088872489b65fd90cdda9898a2cd6fb965e84cdcad3c0288f38784f3001909400941555fec3d3276c455195326 SHA512 2c8afbe57f6712f159aa3a160b6ffc43f945a98ccd8e151fa6a047ea30b376e5e1cac844a678a7899da80704b3d23feda612ffada1ee003f4c7fb8291f484600 DIST openssh-9.8_p1-backports.tar.gz 5879 BLAKE2B 98f2864977f512cb658d129cc89385df25b57fb4ec5ac0cb5e2655ff7f8bffa795194a2177a78339999b0d25c9aea708469b322b9d7c814165e570fb5a66ee9b SHA512 541a629b3ce7d20df29b649478f7a4348bed876045cc2b3c95b6544cce87850cd05c1d405e85ce713fb137b7768402d2b0052a6478b781c30a2567ffebcd4322 DIST openssh-9.8p1.tar.gz 1910393 BLAKE2B 3bf983c4ef5358054ed0104cd51d3e0069fbc2b80d8522d0df644d5508ec1d26a67bf061b1b5698d1cdf0d2cbba16b4cdca12a4ce30da24429094576a075e192 SHA512 95dec2f18e58eb47994f3de4430253e0665e185564b65088ca5f4108870e05feddef8cda8d3c0a4b75f18b98cc2c024df0e27de53b48c1a16da8da483cb8292a DIST openssh-9.8p1.tar.gz.asc 833 BLAKE2B 5291e8c03ab9a75acb44285cd7fc010f4a33551f142499624165dac708fc05a6d077df81555aa41037b45f6301e4e5db3161a7a23404473f8a233a877fc55cc3 SHA512 4df1f1be2c6ab7f3aebaedd0a773b0e8c8929abb30cd3415873ad55d012cfa113f792e888e5e772dd468c394aeb7e35d62893a514dbc0ab1a03acd79918657f7 diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.2_p1-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.2_p1-r1.ebuild index 6c8c41c89c2..5588adf108c 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.2_p1-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.2_p1-r1.ebuild @@ -23,7 +23,7 @@ S="${WORKDIR}/${PARCH}" LICENSE="BSD GPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" # Probably want to drop ssl defaulting to on in a future version. IUSE="abi_mips_n32 audit debug kerberos ldns libedit livecd pam security-key selinux +ssl static test" diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.3_p1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.3_p1.ebuild new file mode 100644 index 00000000000..5588adf108c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.3_p1.ebuild @@ -0,0 +1,437 @@ +# Copyright 1999-2026 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 ~arm64-macos ~x64-macos ~x64-solaris" +# Probably want to drop ssl defaulting to on in a future version. +IUSE="abi_mips_n32 audit debug kerberos ldns libedit livecd pam security-key selinux +ssl static test" + +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(+)] + >=virtual/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/rsync/Manifest b/sdk_container/src/third_party/portage-stable/net-misc/rsync/Manifest index 50be2d3b841..901a5b1e864 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/rsync/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-misc/rsync/Manifest @@ -1,4 +1,6 @@ -DIST rsync-3.3.0.tar.gz 1153969 BLAKE2B 75a3cc50452086aebd16f42d7a309c173cbc1ea156227afb10d2106d0b9043e973676995b8199d22840775ae3df8db97d1c0de5f3aa58afa130c5b1348c3f825 SHA512 df5c53bc2f2b0e7e30f475903e5e4296dc2fbcf08e9ea6c3c61462d0e52b067c27e82deeb4be79102c86e9aa55a825182e126f22df44dabf5b7328acb2a01d10 -DIST rsync-3.3.0.tar.gz.asc 195 BLAKE2B bd077217bd44d406ac49a55b0c0d38c2accd4867b9fbf78a13fe906f52e1773d5a69aa3116a0c245abdeb1af54705d6ffc75aaba8b276ba9229bbb3340d7c3e8 SHA512 611d26374e0ff98ffb11b6ad6555f08773b9f09e1fbf232abc73c5d472b0defd28fd559bd42707774204d055b93be289f19f4db94bbdfe0b0935918fd922cced DIST rsync-3.4.1.tar.gz 1172739 BLAKE2B 79c1cad697547059ee241e20c26d7f97bed3ad062deb856d31a617fead333a2d9f62c7c47c1efaf70033dbc358fe547d034c35e8181abb51a1fc893557882bc7 SHA512 a3ecde4843ddb795308dca88581b868ac0221eb6f88a1477d7a9a2ecb4e4686042966bdddbab40866f90a4715d3104daa7b83222ddf0f3387b796a86bde8e5c2 DIST rsync-3.4.1.tar.gz.asc 862 BLAKE2B 5684bd57423e8e43b973c2c416c4897901a3a8b33c22690eaedc609109088e1d5d70f5cf5deaafefc69f547d198b5f8b17f3c484211d545095b19dac7e0bc7d3 SHA512 c83e187c88110b6119a023d239c76291f15124760fd245ead17e747424946e7864187aae96af6f5930cb84beff7308b99daa0566f306c9f2de51e2475704c320 +DIST rsync-3.4.2.tar.gz 1190383 BLAKE2B bfc8aa3dc3b75de5e81519eab6d505ebd4d05ebc79c3336ebc925486fa6267cd13a37844d0817183cec68215788bc07e4a281f716bcd0bc7d93daa995df9122c SHA512 74f623e7f5234ffc12fc60d30f4439bc18796404c866365b7c3bfda87f42b33fc01ce6060187534b6b47d799f5b47fcdb84717faff88b6ce30eb230f1b93afe7 +DIST rsync-3.4.2.tar.gz.asc 862 BLAKE2B b6cc8bbb94fae5111143c9b0fe7aeca07b29494011060b7b00d98d2e6058f1d0474cc87f8db8d2d2812f1b039a4eb6ec386e4d706ee99bc4396ba995da14acae SHA512 c89f24640438566387aeee553c133859667c3e225439c3f113346241e3802c0652ebf6ab6005cc0f412a0f6e4bc055d76dd422691c3f024f347813183f66076e +DIST rsync-3.4.3.tar.gz 1216482 BLAKE2B 0bafded6a76a2cedcc6b1f37610c785fa05e62955a43ecb85b8522183a902be3b86157eccbf502116177be0efe19f3051d93cdca5e5734f4a3fbc8bca9878a4f SHA512 1bf2d7cea7a42c9cd070ffaa5e9e029fbce2c18973d8e946f2a6a91c781d2f3ff2449a8ff2431206396caf1f7d9901865f10772c09019d93318e26196160644f +DIST rsync-3.4.3.tar.gz.asc 862 BLAKE2B dd5ac2de65a02742fb52ff2d7188e0ac5f04d336ba2439b2b05464141f14db805c8074869bd946266d42093aa105ef8c0606edf1348b75cbfd1cac626a100576 SHA512 66686d6bcb365a4a75aaffde3d8675d13a22243f70f55c56c4ca6b805fe3d2d24ebd093a29027cc27fcde87bd2319ba3835f8c76cb35fa6de41d3dfa1c694a14 diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12084.patch b/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12084.patch deleted file mode 100644 index c4479ef8a80..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12084.patch +++ /dev/null @@ -1,132 +0,0 @@ -https://bugs.gentoo.org/948106 - -Backport provided by Red Hat on the VINCE case. -diff --git a/io.c b/io.c -index a99ac0e..bb60eec 100644 ---- a/io.c -+++ b/io.c -@@ -55,6 +55,7 @@ extern int read_batch; - extern int compat_flags; - extern int protect_args; - extern int checksum_seed; -+extern int xfer_sum_len; - extern int daemon_connection; - extern int protocol_version; - extern int remove_source_files; -@@ -1977,7 +1978,7 @@ void read_sum_head(int f, struct sum_struct *sum) - exit_cleanup(RERR_PROTOCOL); - } - sum->s2length = protocol_version < 27 ? csum_length : (int)read_int(f); -- if (sum->s2length < 0 || sum->s2length > MAX_DIGEST_LEN) { -+ if (sum->s2length < 0 || sum->s2length > xfer_sum_len) { - rprintf(FERROR, "Invalid checksum length %d [%s]\n", - sum->s2length, who_am_i()); - exit_cleanup(RERR_PROTOCOL); -diff --git a/match.c b/match.c -index cdb30a1..36e78ed 100644 ---- a/match.c -+++ b/match.c -@@ -232,7 +232,7 @@ static void hash_search(int f,struct sum_struct *s, - done_csum2 = 1; - } - -- if (memcmp(sum2,s->sums[i].sum2,s->s2length) != 0) { -+ if (memcmp(sum2, sum2_at(s, i), s->s2length) != 0) { - false_alarms++; - continue; - } -@@ -252,7 +252,7 @@ static void hash_search(int f,struct sum_struct *s, - if (i != aligned_i) { - if (sum != s->sums[aligned_i].sum1 - || l != s->sums[aligned_i].len -- || memcmp(sum2, s->sums[aligned_i].sum2, s->s2length) != 0) -+ || memcmp(sum2, sum2_at(s, aligned_i), s->s2length) != 0) - goto check_want_i; - i = aligned_i; - } -@@ -271,7 +271,7 @@ static void hash_search(int f,struct sum_struct *s, - if (sum != s->sums[i].sum1) - goto check_want_i; - get_checksum2((char *)map, l, sum2); -- if (memcmp(sum2, s->sums[i].sum2, s->s2length) != 0) -+ if (memcmp(sum2, sum2_at(s, i), s->s2length) != 0) - goto check_want_i; - /* OK, we have a re-alignment match. Bump the offset - * forward to the new match point. */ -@@ -290,7 +290,7 @@ static void hash_search(int f,struct sum_struct *s, - && (!updating_basis_file || s->sums[want_i].offset >= offset - || s->sums[want_i].flags & SUMFLG_SAME_OFFSET) - && sum == s->sums[want_i].sum1 -- && memcmp(sum2, s->sums[want_i].sum2, s->s2length) == 0) { -+ && memcmp(sum2, sum2_at(s, want_i), s->s2length) == 0) { - /* we've found an adjacent match - the RLL coder - * will be happy */ - i = want_i; -diff --git a/rsync.c b/rsync.c -index cd288f5..b130aba 100644 ---- a/rsync.c -+++ b/rsync.c -@@ -437,7 +437,10 @@ int read_ndx_and_attrs(int f_in, int f_out, int *iflag_ptr, uchar *type_ptr, cha - */ - void free_sums(struct sum_struct *s) - { -- if (s->sums) free(s->sums); -+ if (s->sums) { -+ free(s->sums); -+ free(s->sum2_array); -+ } - free(s); - } - -diff --git a/rsync.h b/rsync.h -index d3709fe..0f9e277 100644 ---- a/rsync.h -+++ b/rsync.h -@@ -958,12 +958,12 @@ struct sum_buf { - uint32 sum1; /**< simple checksum */ - int32 chain; /**< next hash-table collision */ - short flags; /**< flag bits */ -- char sum2[SUM_LENGTH]; /**< checksum */ - }; - - struct sum_struct { - OFF_T flength; /**< total file length */ - struct sum_buf *sums; /**< points to info for each chunk */ -+ char *sum2_array; /**< checksums of length xfer_sum_len */ - int32 count; /**< how many chunks */ - int32 blength; /**< block_length */ - int32 remainder; /**< flength % block_length */ -@@ -982,6 +982,8 @@ struct map_struct { - int status; /* first errno from read errors */ - }; - -+#define sum2_at(s, i) ((s)->sum2_array + ((size_t)(i) * xfer_sum_len)) -+ - #define NAME_IS_FILE (0) /* filter name as a file */ - #define NAME_IS_DIR (1<<0) /* filter name as a dir */ - #define NAME_IS_XATTR (1<<2) /* filter name as an xattr */ -diff --git a/sender.c b/sender.c -index 3d4f052..2bbff2f 100644 ---- a/sender.c -+++ b/sender.c -@@ -31,6 +31,7 @@ extern int log_before_transfer; - extern int stdout_format_has_i; - extern int logfile_format_has_i; - extern int want_xattr_optim; -+extern int xfer_sum_len; - extern int csum_length; - extern int append_mode; - extern int copy_links; -@@ -94,10 +95,11 @@ static struct sum_struct *receive_sums(int f) - return(s); - - s->sums = new_array(struct sum_buf, s->count); -+ s->sum2_array = new_array(char, (size_t)s->count * xfer_sum_len); - - for (i = 0; i < s->count; i++) { - s->sums[i].sum1 = read_int(f); -- read_buf(f, s->sums[i].sum2, s->s2length); -+ read_buf(f, sum2_at(s, i), s->s2length); - - s->sums[i].offset = offset; - s->sums[i].flags = 0; diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12085.patch b/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12085.patch deleted file mode 100644 index d841ad0716d..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12085.patch +++ /dev/null @@ -1,17 +0,0 @@ -https://bugs.gentoo.org/948106 - -Backport provided by Red Hat on the VINCE case. -diff --git a/match.c b/match.c -index 36e78ed..dfd6af2 100644 ---- a/match.c -+++ b/match.c -@@ -147,6 +147,9 @@ static void hash_search(int f,struct sum_struct *s, - int more; - schar *map; - -+ // prevent possible memory leaks -+ memset(sum2, 0, sizeof sum2); -+ - /* want_i is used to encourage adjacent matches, allowing the RLL - * coding of the output to work more efficiently. */ - want_i = 0; diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12086-1.patch b/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12086-1.patch deleted file mode 100644 index b0ab88e8c10..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12086-1.patch +++ /dev/null @@ -1,200 +0,0 @@ -https://bugs.gentoo.org/948106 - -Backport provided by Red Hat on the VINCE case. -diff --git a/receiver.c b/receiver.c -index 6b4b369..8031b8f 100644 ---- a/receiver.c -+++ b/receiver.c -@@ -66,6 +66,7 @@ extern char sender_file_sum[MAX_DIGEST_LEN]; - extern struct file_list *cur_flist, *first_flist, *dir_flist; - extern filter_rule_list daemon_filter_list; - extern OFF_T preallocated_len; -+extern int fuzzy_basis; - - extern struct name_num_item *xfer_sum_nni; - extern int xfer_sum_len; -@@ -551,6 +552,8 @@ int recv_files(int f_in, int f_out, char *local_name) - progress_init(); - - while (1) { -+ const char *basedir = NULL; -+ - cleanup_disable(); - - /* This call also sets cur_flist. */ -@@ -716,28 +719,34 @@ int recv_files(int f_in, int f_out, char *local_name) - fnamecmp = get_backup_name(fname); - break; - case FNAMECMP_FUZZY: -+ if (fuzzy_basis == 0) { -+ rprintf(FERROR_XFER, "rsync: refusing malicious fuzzy operation for %s\n", xname); -+ exit_cleanup(RERR_PROTOCOL); -+ } - if (file->dirname) { -- pathjoin(fnamecmpbuf, sizeof fnamecmpbuf, file->dirname, xname); -- fnamecmp = fnamecmpbuf; -- } else -- fnamecmp = xname; -+ basedir = file->dirname; -+ } -+ fnamecmp = xname; - break; - default: - if (fnamecmp_type > FNAMECMP_FUZZY && fnamecmp_type-FNAMECMP_FUZZY <= basis_dir_cnt) { - fnamecmp_type -= FNAMECMP_FUZZY + 1; - if (file->dirname) { -- stringjoin(fnamecmpbuf, sizeof fnamecmpbuf, -- basis_dir[fnamecmp_type], "/", file->dirname, "/", xname, NULL); -- } else -- pathjoin(fnamecmpbuf, sizeof fnamecmpbuf, basis_dir[fnamecmp_type], xname); -+ pathjoin(fnamecmpbuf, sizeof fnamecmpbuf, basis_dir[fnamecmp_type], file->dirname); -+ basedir = fnamecmpbuf; -+ } else { -+ basedir = basis_dir[fnamecmp_type]; -+ } -+ fnamecmp = xname; - } else if (fnamecmp_type >= basis_dir_cnt) { - rprintf(FERROR, - "invalid basis_dir index: %d.\n", - fnamecmp_type); - exit_cleanup(RERR_PROTOCOL); -- } else -- pathjoin(fnamecmpbuf, sizeof fnamecmpbuf, basis_dir[fnamecmp_type], fname); -- fnamecmp = fnamecmpbuf; -+ } else { -+ basedir = basis_dir[fnamecmp_type]; -+ fnamecmp = fname; -+ } - break; - } - if (!fnamecmp || (daemon_filter_list.head -@@ -760,7 +769,7 @@ int recv_files(int f_in, int f_out, char *local_name) - } - - /* open the file */ -- fd1 = do_open(fnamecmp, O_RDONLY, 0); -+ fd1 = secure_relative_open(basedir, fnamecmp, O_RDONLY, 0); - - if (fd1 == -1 && protocol_version < 29) { - if (fnamecmp != fname) { -@@ -771,14 +780,20 @@ int recv_files(int f_in, int f_out, char *local_name) - - if (fd1 == -1 && basis_dir[0]) { - /* pre-29 allowed only one alternate basis */ -- pathjoin(fnamecmpbuf, sizeof fnamecmpbuf, -- basis_dir[0], fname); -- fnamecmp = fnamecmpbuf; -+ basedir = basis_dir[0]; -+ fnamecmp = fname; - fnamecmp_type = FNAMECMP_BASIS_DIR_LOW; -- fd1 = do_open(fnamecmp, O_RDONLY, 0); -+ fd1 = secure_relative_open(basedir, fnamecmp, O_RDONLY, 0); - } - } - -+ if (basedir) { -+ // for the following code we need the full -+ // path name as a single string -+ pathjoin(fnamecmpbuf, sizeof fnamecmpbuf, basedir, fnamecmp); -+ fnamecmp = fnamecmpbuf; -+ } -+ - one_inplace = inplace_partial && fnamecmp_type == FNAMECMP_PARTIAL_DIR; - updating_basis_or_equiv = one_inplace - || (inplace && (fnamecmp == fname || fnamecmp_type == FNAMECMP_BACKUP)); -diff --git a/syscall.c b/syscall.c -index d92074a..47c5ea5 100644 ---- a/syscall.c -+++ b/syscall.c -@@ -33,6 +33,8 @@ - #include - #endif - -+#include "ifuncs.h" -+ - extern int dry_run; - extern int am_root; - extern int am_sender; -@@ -712,3 +714,82 @@ int do_open_nofollow(const char *pathname, int flags) - - return fd; - } -+ -+/* -+ open a file relative to a base directory. The basedir can be NULL, -+ in which case the current working directory is used. The relpath -+ must be a relative path, and the relpath must not contain any -+ elements in the path which follow symlinks (ie. like O_NOFOLLOW, but -+ applies to all path components, not just the last component) -+ -+ The relpath must also not contain any ../ elements in the path -+*/ -+int secure_relative_open(const char *basedir, const char *relpath, int flags, mode_t mode) -+{ -+ if (!relpath || relpath[0] == '/') { -+ // must be a relative path -+ errno = EINVAL; -+ return -1; -+ } -+ if (strncmp(relpath, "../", 3) == 0 || strstr(relpath, "/../")) { -+ // no ../ elements allowed in the relpath -+ errno = EINVAL; -+ return -1; -+ } -+ -+#if !defined(O_NOFOLLOW) || !defined(O_DIRECTORY) -+ // really old system, all we can do is live with the risks -+ if (!basedir) { -+ return open(relpath, flags, mode); -+ } -+ char fullpath[MAXPATHLEN]; -+ pathjoin(fullpath, sizeof fullpath, basedir, relpath); -+ return open(fullpath, flags, mode); -+#else -+ int dirfd = AT_FDCWD; -+ if (basedir != NULL) { -+ dirfd = openat(AT_FDCWD, basedir, O_RDONLY | O_DIRECTORY); -+ if (dirfd == -1) { -+ return -1; -+ } -+ } -+ int retfd = -1; -+ -+ char *path_copy = my_strdup(relpath, __FILE__, __LINE__); -+ if (!path_copy) { -+ return -1; -+ } -+ -+ for (const char *part = strtok(path_copy, "/"); -+ part != NULL; -+ part = strtok(NULL, "/")) -+ { -+ int next_fd = openat(dirfd, part, O_RDONLY | O_DIRECTORY | O_NOFOLLOW); -+ if (next_fd == -1 && errno == ENOTDIR) { -+ if (strtok(NULL, "/") != NULL) { -+ // this is not the last component of the path -+ errno = ELOOP; -+ goto cleanup; -+ } -+ // this could be the last component of the path, try as a file -+ retfd = openat(dirfd, part, flags | O_NOFOLLOW, mode); -+ goto cleanup; -+ } -+ if (next_fd == -1) { -+ goto cleanup; -+ } -+ if (dirfd != AT_FDCWD) close(dirfd); -+ dirfd = next_fd; -+ } -+ -+ // the path must be a directory -+ errno = EINVAL; -+ -+cleanup: -+ free(path_copy); -+ if (dirfd != AT_FDCWD) { -+ close(dirfd); -+ } -+ return retfd; -+#endif // O_NOFOLLOW, O_DIRECTORY -+} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12086-2.patch b/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12086-2.patch deleted file mode 100644 index ae0a85bc4a5..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12086-2.patch +++ /dev/null @@ -1,26 +0,0 @@ -https://github.com/RsyncProject/rsync/pull/707 - -From 4e9b6476325eb08931025d719cfc3ff2c94d2b23 Mon Sep 17 00:00:00 2001 -From: Natanael Copa -Date: Wed, 15 Jan 2025 15:59:17 +0100 -Subject: [PATCH] Fix build on ancient glibc without openat(AT_FDCWD - -Fixes: https://github.com/RsyncProject/rsync/issues/701 ---- - syscall.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/syscall.c b/syscall.c -index 8cea2900..34a9bba0 100644 ---- a/syscall.c -+++ b/syscall.c -@@ -734,7 +734,7 @@ int secure_relative_open(const char *basedir, const char *relpath, int flags, mo - return -1; - } - --#if !defined(O_NOFOLLOW) || !defined(O_DIRECTORY) -+#if !defined(O_NOFOLLOW) || !defined(O_DIRECTORY) || !defined(AT_FDCWD) - // really old system, all we can do is live with the risks - if (!basedir) { - return open(relpath, flags, mode); - diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12087-1.patch b/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12087-1.patch deleted file mode 100644 index 2328f3c0f6e..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12087-1.patch +++ /dev/null @@ -1,39 +0,0 @@ -https://bugs.gentoo.org/948106 - -Backport provided by Red Hat on the VINCE case. -diff --git a/flist.c b/flist.c -index 464d556..087f9da 100644 ---- a/flist.c -+++ b/flist.c -@@ -2584,6 +2584,19 @@ struct file_list *recv_file_list(int f, int dir_ndx) - init_hard_links(); - #endif - -+ if (inc_recurse && dir_ndx >= 0) { -+ if (dir_ndx >= dir_flist->used) { -+ rprintf(FERROR_XFER, "rsync: refusing invalid dir_ndx %u >= %u\n", dir_ndx, dir_flist->used); -+ exit_cleanup(RERR_PROTOCOL); -+ } -+ struct file_struct *file = dir_flist->files[dir_ndx]; -+ if (file->flags & FLAG_GOT_DIR_FLIST) { -+ rprintf(FERROR_XFER, "rsync: refusing malicious duplicate flist for dir %d\n", dir_ndx); -+ exit_cleanup(RERR_PROTOCOL); -+ } -+ file->flags |= FLAG_GOT_DIR_FLIST; -+ } -+ - flist = flist_new(0, "recv_file_list"); - flist_expand(flist, FLIST_START_LARGE); - -diff --git a/rsync.h b/rsync.h -index 0f9e277..b9a7101 100644 ---- a/rsync.h -+++ b/rsync.h -@@ -84,6 +84,7 @@ - #define FLAG_DUPLICATE (1<<4) /* sender */ - #define FLAG_MISSING_DIR (1<<4) /* generator */ - #define FLAG_HLINKED (1<<5) /* receiver/generator (checked on all types) */ -+#define FLAG_GOT_DIR_FLIST (1<<5)/* sender/receiver/generator - dir_flist only */ - #define FLAG_HLINK_FIRST (1<<6) /* receiver/generator (w/FLAG_HLINKED) */ - #define FLAG_IMPLIED_DIR (1<<6) /* sender/receiver/generator (dirs only) */ - #define FLAG_HLINK_LAST (1<<7) /* receiver/generator */ diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12087-2.patch b/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12087-2.patch deleted file mode 100644 index dd4c7fb87a7..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12087-2.patch +++ /dev/null @@ -1,36 +0,0 @@ -https://github.com/RsyncProject/rsync/pull/705 - -From efb85fd8db9e8f74eb3ab91ebf44f6ed35e3da5b Mon Sep 17 00:00:00 2001 -From: Natanael Copa -Date: Wed, 15 Jan 2025 15:10:24 +0100 -Subject: [PATCH] Fix FLAG_GOT_DIR_FLIST collission with FLAG_HLINKED - -fixes commit 688f5c379a43 (Refuse a duplicate dirlist.) - -Fixes: https://github.com/RsyncProject/rsync/issues/702 -Fixes: https://github.com/RsyncProject/rsync/issues/697 ---- - rsync.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/rsync.h b/rsync.h -index 9be1297b..479ac484 100644 ---- a/rsync.h -+++ b/rsync.h -@@ -84,7 +84,6 @@ - #define FLAG_DUPLICATE (1<<4) /* sender */ - #define FLAG_MISSING_DIR (1<<4) /* generator */ - #define FLAG_HLINKED (1<<5) /* receiver/generator (checked on all types) */ --#define FLAG_GOT_DIR_FLIST (1<<5)/* sender/receiver/generator - dir_flist only */ - #define FLAG_HLINK_FIRST (1<<6) /* receiver/generator (w/FLAG_HLINKED) */ - #define FLAG_IMPLIED_DIR (1<<6) /* sender/receiver/generator (dirs only) */ - #define FLAG_HLINK_LAST (1<<7) /* receiver/generator */ -@@ -93,6 +92,7 @@ - #define FLAG_SKIP_GROUP (1<<10) /* receiver/generator */ - #define FLAG_TIME_FAILED (1<<11)/* generator */ - #define FLAG_MOD_NSEC (1<<12) /* sender/receiver/generator */ -+#define FLAG_GOT_DIR_FLIST (1<<13)/* sender/receiver/generator - dir_flist only */ - - /* These flags are passed to functions but not stored. */ - - diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12088.patch b/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12088.patch deleted file mode 100644 index 422a45e2c03..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12088.patch +++ /dev/null @@ -1,60 +0,0 @@ -https://bugs.gentoo.org/948106 - -Backport provided by Red Hat on the VINCE case. -diff --git a/testsuite/unsafe-byname.test b/testsuite/unsafe-byname.test -index 75e7201..d2e318e 100644 ---- a/testsuite/unsafe-byname.test -+++ b/testsuite/unsafe-byname.test -@@ -40,7 +40,7 @@ test_unsafe ..//../dest from/dir unsafe - test_unsafe .. from/file safe - test_unsafe ../.. from/file unsafe - test_unsafe ..//.. from//file unsafe --test_unsafe dir/.. from safe -+test_unsafe dir/.. from unsafe - test_unsafe dir/../.. from unsafe - test_unsafe dir/..//.. from unsafe - -diff --git a/util1.c b/util1.c -index da50ff1..f260d39 100644 ---- a/util1.c -+++ b/util1.c -@@ -1318,7 +1318,14 @@ int handle_partial_dir(const char *fname, int create) - * - * "src" is the top source directory currently applicable at the level - * of the referenced symlink. This is usually the symlink's full path -- * (including its name), as referenced from the root of the transfer. */ -+ * (including its name), as referenced from the root of the transfer. -+ * -+ * NOTE: this also rejects dest names with a .. component in other -+ * than the first component of the name ie. it rejects names such as -+ * a/b/../x/y. This needs to be done as the leading subpaths 'a' or -+ * 'b' could later be replaced with symlinks such as a link to '.' -+ * resulting in the link being transferred now becoming unsafe -+ */ - int unsafe_symlink(const char *dest, const char *src) - { - const char *name, *slash; -@@ -1328,6 +1335,23 @@ int unsafe_symlink(const char *dest, const char *src) - if (!dest || !*dest || *dest == '/') - return 1; - -+ // reject destinations with /../ in the name other than at the start of the name -+ const char *dest2 = dest; -+ while (strncmp(dest2, "../", 3) == 0) { -+ dest2 += 3; -+ while (*dest2 == '/') { -+ // allow for ..//..///../foo -+ dest2++; -+ } -+ } -+ if (strstr(dest2, "/../")) -+ return 1; -+ -+ // reject if the destination ends in /.. -+ const size_t dlen = strlen(dest); -+ if (dlen > 3 && strcmp(&dest[dlen-3], "/..") == 0) -+ return 1; -+ - /* find out what our safety margin is */ - for (name = src; (slash = strchr(name, '/')) != 0; name = slash+1) { - /* ".." segment starts the count over. "." segment is ignored. */ diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12747-1.patch b/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12747-1.patch deleted file mode 100644 index 527da204612..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12747-1.patch +++ /dev/null @@ -1,166 +0,0 @@ -https://bugs.gentoo.org/948106 - -Backport provided by Red Hat on the VINCE case. -diff --git a/checksum.c b/checksum.c -index cb21882..66e8089 100644 ---- a/checksum.c -+++ b/checksum.c -@@ -406,7 +406,7 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum) - int32 remainder; - int fd; - -- fd = do_open(fname, O_RDONLY, 0); -+ fd = do_open_checklinks(fname); - if (fd == -1) { - memset(sum, 0, file_sum_len); - return; -diff --git a/flist.c b/flist.c -index 087f9da..1783253 100644 ---- a/flist.c -+++ b/flist.c -@@ -1390,7 +1390,7 @@ struct file_struct *make_file(const char *fname, struct file_list *flist, - - if (copy_devices && am_sender && IS_DEVICE(st.st_mode)) { - if (st.st_size == 0) { -- int fd = do_open(fname, O_RDONLY, 0); -+ int fd = do_open_checklinks(fname); - if (fd >= 0) { - st.st_size = get_device_size(fd, fname); - close(fd); -diff --git a/generator.c b/generator.c -index 110db28..3f13bb9 100644 ---- a/generator.c -+++ b/generator.c -@@ -1798,7 +1798,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, - - if (write_devices && IS_DEVICE(sx.st.st_mode) && sx.st.st_size == 0) { - /* This early open into fd skips the regular open below. */ -- if ((fd = do_open(fnamecmp, O_RDONLY, 0)) >= 0) -+ if ((fd = do_open_nofollow(fnamecmp, O_RDONLY)) >= 0) - real_sx.st.st_size = sx.st.st_size = get_device_size(fd, fnamecmp); - } - -@@ -1867,7 +1867,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, - } - - /* open the file */ -- if (fd < 0 && (fd = do_open(fnamecmp, O_RDONLY, 0)) < 0) { -+ if (fd < 0 && (fd = do_open_checklinks(fnamecmp)) < 0) { - rsyserr(FERROR, errno, "failed to open %s, continuing", - full_fname(fnamecmp)); - pretend_missing: -diff --git a/receiver.c b/receiver.c -index 8031b8f..edfbb21 100644 ---- a/receiver.c -+++ b/receiver.c -@@ -775,7 +775,7 @@ int recv_files(int f_in, int f_out, char *local_name) - if (fnamecmp != fname) { - fnamecmp = fname; - fnamecmp_type = FNAMECMP_FNAME; -- fd1 = do_open(fnamecmp, O_RDONLY, 0); -+ fd1 = do_open_nofollow(fnamecmp, O_RDONLY); - } - - if (fd1 == -1 && basis_dir[0]) { -diff --git a/sender.c b/sender.c -index 2bbff2f..a4d46c3 100644 ---- a/sender.c -+++ b/sender.c -@@ -350,7 +350,7 @@ void send_files(int f_in, int f_out) - exit_cleanup(RERR_PROTOCOL); - } - -- fd = do_open(fname, O_RDONLY, 0); -+ fd = do_open_checklinks(fname); - if (fd == -1) { - if (errno == ENOENT) { - enum logcode c = am_daemon && protocol_version < 28 ? FERROR : FWARNING; -diff --git a/syscall.c b/syscall.c -index 47c5ea5..c55ae5f 100644 ---- a/syscall.c -+++ b/syscall.c -@@ -45,6 +45,8 @@ extern int preallocate_files; - extern int preserve_perms; - extern int preserve_executability; - extern int open_noatime; -+extern int copy_links; -+extern int copy_unsafe_links; - - #ifndef S_BLKSIZE - # if defined hpux || defined __hpux__ || defined __hpux -@@ -793,3 +795,21 @@ cleanup: - return retfd; - #endif // O_NOFOLLOW, O_DIRECTORY - } -+ -+/* -+ varient of do_open/do_open_nofollow which does do_open() if the -+ copy_links or copy_unsafe_links options are set and does -+ do_open_nofollow() otherwise -+ -+ This is used to prevent a race condition where an attacker could be -+ switching a file between being a symlink and being a normal file -+ -+ The open is always done with O_RDONLY flags -+ */ -+int do_open_checklinks(const char *pathname) -+{ -+ if (copy_links || copy_unsafe_links) { -+ return do_open(pathname, O_RDONLY, 0); -+ } -+ return do_open_nofollow(pathname, O_RDONLY); -+} -diff --git a/t_unsafe.c b/t_unsafe.c -index 010cac5..e10619a 100644 ---- a/t_unsafe.c -+++ b/t_unsafe.c -@@ -28,6 +28,9 @@ int am_root = 0; - int am_sender = 1; - int read_only = 0; - int list_only = 0; -+int copy_links = 0; -+int copy_unsafe_links = 0; -+ - short info_levels[COUNT_INFO], debug_levels[COUNT_DEBUG]; - - int -diff --git a/tls.c b/tls.c -index e6b0708..858f8f1 100644 ---- a/tls.c -+++ b/tls.c -@@ -49,6 +49,9 @@ int list_only = 0; - int link_times = 0; - int link_owner = 0; - int nsec_times = 0; -+int safe_symlinks = 0; -+int copy_links = 0; -+int copy_unsafe_links = 0; - - #ifdef SUPPORT_XATTRS - -diff --git a/trimslash.c b/trimslash.c -index 1ec928c..f2774cd 100644 ---- a/trimslash.c -+++ b/trimslash.c -@@ -26,6 +26,8 @@ int am_root = 0; - int am_sender = 1; - int read_only = 1; - int list_only = 0; -+int copy_links = 0; -+int copy_unsafe_links = 0; - - int - main(int argc, char **argv) -diff --git a/util1.c b/util1.c -index f260d39..d84bc41 100644 ---- a/util1.c -+++ b/util1.c -@@ -365,7 +365,7 @@ int copy_file(const char *source, const char *dest, int tmpfilefd, mode_t mode) - int len; /* Number of bytes read into `buf'. */ - OFF_T prealloc_len = 0, offset = 0; - -- if ((ifd = do_open(source, O_RDONLY, 0)) < 0) { -+ if ((ifd = do_open_nofollow(source, O_RDONLY)) < 0) { - int save_errno = errno; - rsyserr(FERROR_XFER, errno, "open %s", full_fname(source)); - errno = save_errno; diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12747-2.patch b/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12747-2.patch deleted file mode 100644 index 2a3add75e0a..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/3.3.0/rsync-3.3.0-CVE-2024-12747-2.patch +++ /dev/null @@ -1,34 +0,0 @@ -https://github.com/RsyncProject/rsync/pull/706 - -From f923b19fd85039a2b0e908391074872334646d51 Mon Sep 17 00:00:00 2001 -From: Natanael Copa -Date: Wed, 15 Jan 2025 15:48:04 +0100 -Subject: [PATCH] Fix use-after-free in generator - -full_fname() will free the return value in the next call so we need to -duplicate it before passing it to rsyserr. - -Fixes: https://github.com/RsyncProject/rsync/issues/704 ---- - generator.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/generator.c b/generator.c -index 3f13bb95..b56fa569 100644 ---- a/generator.c -+++ b/generator.c -@@ -2041,8 +2041,12 @@ int atomic_create(struct file_struct *file, char *fname, const char *slnk, const - - if (!skip_atomic) { - if (do_rename(tmpname, fname) < 0) { -+ char *full_tmpname = strdup(full_fname(tmpname)); -+ if (full_tmpname == NULL) -+ out_of_memory("atomic_create"); - rsyserr(FERROR_XFER, errno, "rename %s -> \"%s\" failed", -- full_fname(tmpname), full_fname(fname)); -+ full_tmpname, full_fname(fname)); -+ free(full_tmpname); - do_unlink(tmpname); - return 0; - } - diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/rsync-3.4.1-fix-uninitialized-mul_one.patch b/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/rsync-3.4.1-fix-uninitialized-mul_one.patch new file mode 100644 index 00000000000..d6bf6b0baf8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/rsync-3.4.1-fix-uninitialized-mul_one.patch @@ -0,0 +1,202 @@ +https://github.com/RsyncProject/rsync/commit/aa142f08ef31d3ffa8d6b3b8af16d00324a98c1b + +From: Andrew Tridgell +Date: Sun, 1 Mar 2026 08:42:04 +1100 +Subject: [PATCH] fix uninitialized mul_one in AVX2 checksum and add SIMD checksum test + +The AVX2 get_checksum1_avx2_64() read mul_one before initializing it, +which is undefined behavior. Replace the cmpeq/abs trick with +_mm256_set1_epi8(1) to match the SSSE3 and SSE2 versions. + +Add a TEST_SIMD_CHECKSUM1 test mode that verifies all SIMD paths +(SSE2, SSSE3, AVX2, and the full dispatch chain) produce identical +results to the C reference, across multiple buffer sizes with both +aligned and unaligned buffers. + +Co-Authored-By: Claude Opus 4.6 +--- + Makefile.in | 11 +++- + simd-checksum-x86_64.cpp | 115 ++++++++++++++++++++++++++++++++++- + testsuite/simd-checksum.test | 11 ++++ + 3 files changed, 134 insertions(+), 3 deletions(-) + create mode 100755 testsuite/simd-checksum.test + +diff --git a/Makefile.in b/Makefile.in +index 6340403be..6f188ee8a 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -57,7 +57,8 @@ TLS_OBJ = tls.o syscall.o util2.o t_stub.o lib/compat.o lib/snprintf.o lib/perms + + # Programs we must have to run the test cases + CHECK_PROGS = rsync$(EXEEXT) tls$(EXEEXT) getgroups$(EXEEXT) getfsdev$(EXEEXT) \ +- testrun$(EXEEXT) trimslash$(EXEEXT) t_unsafe$(EXEEXT) wildtest$(EXEEXT) ++ testrun$(EXEEXT) trimslash$(EXEEXT) t_unsafe$(EXEEXT) wildtest$(EXEEXT) \ ++ simdtest$(EXEEXT) + + CHECK_SYMLINKS = testsuite/chown-fake.test testsuite/devices-fake.test testsuite/xattrs-hlink.test + +@@ -326,6 +327,14 @@ wildtest.o: wildtest.c t_stub.o lib/wildmatch.c rsync.h config.h + wildtest$(EXEEXT): wildtest.o lib/compat.o lib/snprintf.o @BUILD_POPT@ + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ wildtest.o lib/compat.o lib/snprintf.o @BUILD_POPT@ $(LIBS) + ++simdtest$(EXEEXT): simd-checksum-x86_64.cpp $(HEADERS) ++ @if test x"@ROLL_SIMD@" != x; then \ ++ $(CXX) -I. $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) -DTEST_SIMD_CHECKSUM1 \ ++ -o $@ $(srcdir)/simd-checksum-x86_64.cpp @ROLL_ASM@ $(LIBS); \ ++ else \ ++ touch $@; \ ++ fi ++ + testsuite/chown-fake.test: + ln -s chown.test $(srcdir)/testsuite/chown-fake.test + +diff --git a/simd-checksum-x86_64.cpp b/simd-checksum-x86_64.cpp +index d649091ea..99391cbe4 100644 +--- a/simd-checksum-x86_64.cpp ++++ b/simd-checksum-x86_64.cpp +@@ -347,8 +347,7 @@ __attribute__ ((target("avx2"))) MVSTATIC int32 get_checksum1_avx2_64(schar* buf + __m128i tmp = _mm_load_si128((__m128i*) mul_t1_buf); + __m256i mul_t1 = _mm256_cvtepu8_epi16(tmp); + __m256i mul_const = _mm256_broadcastd_epi32(_mm_cvtsi32_si128(4 | (3 << 8) | (2 << 16) | (1 << 24))); +- __m256i mul_one; +- mul_one = _mm256_abs_epi8(_mm256_cmpeq_epi16(mul_one,mul_one)); // set all vector elements to 1 ++ __m256i mul_one = _mm256_set1_epi8(1); + + for (; i < (len-64); i+=64) { + // Load ... 4*[int8*16] +@@ -548,6 +547,118 @@ int main() { + #pragma clang optimize on + #endif /* BENCHMARK_SIMD_CHECKSUM1 */ + ++#ifdef TEST_SIMD_CHECKSUM1 ++ ++static uint32 checksum_via_default(char *buf, int32 len) ++{ ++ uint32 s1 = 0, s2 = 0; ++ get_checksum1_default_1((schar*)buf, len, 0, &s1, &s2); ++ return (s1 & 0xffff) + (s2 << 16); ++} ++ ++static uint32 checksum_via_sse2(char *buf, int32 len) ++{ ++ int32 i; ++ uint32 s1 = 0, s2 = 0; ++ i = get_checksum1_sse2_32((schar*)buf, len, 0, &s1, &s2); ++ get_checksum1_default_1((schar*)buf, len, i, &s1, &s2); ++ return (s1 & 0xffff) + (s2 << 16); ++} ++ ++static uint32 checksum_via_ssse3(char *buf, int32 len) ++{ ++ int32 i; ++ uint32 s1 = 0, s2 = 0; ++ i = get_checksum1_ssse3_32((schar*)buf, len, 0, &s1, &s2); ++ get_checksum1_default_1((schar*)buf, len, i, &s1, &s2); ++ return (s1 & 0xffff) + (s2 << 16); ++} ++ ++static uint32 checksum_via_avx2(char *buf, int32 len) ++{ ++ int32 i; ++ uint32 s1 = 0, s2 = 0; ++#ifdef USE_ROLL_ASM ++ i = get_checksum1_avx2_asm((schar*)buf, len, 0, &s1, &s2); ++#else ++ i = get_checksum1_avx2_64((schar*)buf, len, 0, &s1, &s2); ++#endif ++ get_checksum1_default_1((schar*)buf, len, i, &s1, &s2); ++ return (s1 & 0xffff) + (s2 << 16); ++} ++ ++int main() ++{ ++ static const int sizes[] = {1, 4, 31, 32, 33, 63, 64, 65, 128, 129, 256, 700, 1024, 4096, 65536}; ++ int num_sizes = sizeof(sizes) / sizeof(sizes[0]); ++ int max_size = sizes[num_sizes - 1]; ++ int failures = 0; ++ ++ /* Allocate with extra bytes for unaligned test */ ++ unsigned char *raw = (unsigned char *)malloc(max_size + 64 + 1); ++ if (!raw) { ++ fprintf(stderr, "malloc failed\n"); ++ return 1; ++ } ++ ++ /* Fill with deterministic data */ ++ for (int i = 0; i < max_size + 64 + 1; i++) ++ raw[i] = (i + (i % 3) + (i % 11)) % 256; ++ ++ /* Test with aligned buffer (64-byte aligned) */ ++ unsigned char *aligned = raw + (64 - ((uintptr_t)raw % 64)); ++ ++ /* Test with unaligned buffer (+1 byte offset) */ ++ unsigned char *unaligned = aligned + 1; ++ ++ struct { const char *name; unsigned char *buf; } buffers[] = { ++ {"aligned", aligned}, ++ {"unaligned", unaligned}, ++ }; ++ ++ for (int b = 0; b < 2; b++) { ++ char *buf = (char *)buffers[b].buf; ++ const char *bname = buffers[b].name; ++ ++ for (int s = 0; s < num_sizes; s++) { ++ int32 len = sizes[s]; ++ uint32 ref = checksum_via_default(buf, len); ++ uint32 cs_sse2 = checksum_via_sse2(buf, len); ++ uint32 cs_ssse3 = checksum_via_ssse3(buf, len); ++ uint32 cs_avx2 = checksum_via_avx2(buf, len); ++ uint32 cs_auto = get_checksum1(buf, len); ++ ++ if (cs_sse2 != ref) { ++ printf("FAIL %-9s size=%5d: SSE2=%08x ref=%08x\n", bname, len, cs_sse2, ref); ++ failures++; ++ } ++ if (cs_ssse3 != ref) { ++ printf("FAIL %-9s size=%5d: SSSE3=%08x ref=%08x\n", bname, len, cs_ssse3, ref); ++ failures++; ++ } ++ if (cs_avx2 != ref) { ++ printf("FAIL %-9s size=%5d: AVX2=%08x ref=%08x\n", bname, len, cs_avx2, ref); ++ failures++; ++ } ++ if (cs_auto != ref) { ++ printf("FAIL %-9s size=%5d: auto=%08x ref=%08x\n", bname, len, cs_auto, ref); ++ failures++; ++ } ++ } ++ } ++ ++ free(raw); ++ ++ if (failures) { ++ printf("%d checksum mismatches!\n", failures); ++ return 1; ++ } ++ printf("All SIMD checksum tests passed.\n"); ++ return 0; ++} ++ ++#endif /* TEST_SIMD_CHECKSUM1 */ ++ + #endif /* } USE_ROLL_SIMD */ + #endif /* } __cplusplus */ + #endif /* } __x86_64__ */ +diff --git a/testsuite/simd-checksum.test b/testsuite/simd-checksum.test +new file mode 100755 +index 000000000..cf7dba2ec +--- /dev/null ++++ b/testsuite/simd-checksum.test +@@ -0,0 +1,11 @@ ++#!/bin/sh ++ ++# Test SIMD checksum implementations against the C reference ++ ++. "$suitedir/rsync.fns" ++ ++if ! test -x "$TOOLDIR/simdtest"; then ++ test_skipped "simdtest not built (SIMD not available)" ++fi ++ ++"$TOOLDIR/simdtest" diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/rsync-3.4.1-glibc-2.43.patch b/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/rsync-3.4.1-glibc-2.43.patch new file mode 100644 index 00000000000..b4e53fb167e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/rsync/files/rsync-3.4.1-glibc-2.43.patch @@ -0,0 +1,77 @@ +Manual backport of https://github.com/RsyncProject/rsync/pull/867 + +--- a/access.c ++++ b/access.c +@@ -99,7 +99,7 @@ static void make_mask(char *mask, int pl + return; + } + +-static int match_address(const char *addr, const char *tok) ++static int match_address(const char *addr, char *tok) + { + char *p; + struct addrinfo hints, *resa, *rest; +--- a/checksum.c ++++ b/checksum.c +@@ -176,7 +176,7 @@ void parse_checksum_choice(int final_cal + if (valid_checksums.negotiated_nni) + xfer_sum_nni = file_sum_nni = valid_checksums.negotiated_nni; + else { +- char *cp = checksum_choice ? strchr(checksum_choice, ',') : NULL; ++ const char *cp = checksum_choice ? strchr(checksum_choice, ',') : NULL; + if (cp) { + xfer_sum_nni = parse_csum_name(checksum_choice, cp - checksum_choice); + file_sum_nni = parse_csum_name(cp+1, -1); +--- a/compat.c ++++ b/compat.c +@@ -131,7 +131,7 @@ static const char *client_info; + * of that protocol for it to be advertised as available. */ + static void check_sub_protocol(void) + { +- char *dot; ++ const char *dot; + int their_protocol, their_sub; + int our_sub = get_subprotocol_version(); + +@@ -414,7 +414,7 @@ static const char *getenv_nstr(int ntype + env_str = ntype == NSTR_COMPRESS ? "zlib" : protocol_version >= 30 ? "md5" : "md4"; + + if (am_server && env_str) { +- char *cp = strchr(env_str, '&'); ++ const char *cp = strchr(env_str, '&'); + if (cp) + env_str = cp + 1; + } +--- a/exclude.c ++++ b/exclude.c +@@ -904,7 +904,7 @@ static int rule_matches(const char *fnam + { + int slash_handling, str_cnt = 0, anchored_match = 0; + int ret_match = ex->rflags & FILTRULE_NEGATE ? 0 : 1; +- char *p, *pattern = ex->pattern; ++ const char *p, *pattern = ex->pattern; + const char *strings[16]; /* more than enough */ + const char *name = fname + (*fname == '/'); + +--- a/io.c ++++ b/io.c +@@ -1159,7 +1159,7 @@ void set_io_timeout(int secs) + static void check_for_d_option_error(const char *msg) + { + static char rsync263_opts[] = "BCDHIKLPRSTWabceghlnopqrtuvxz"; +- char *colon; ++ const char *colon; + int saw_d = 0; + + if (*msg != 'r' +--- a/loadparm.c ++++ b/loadparm.c +@@ -178,7 +178,7 @@ static char *expand_vars(const char *str + + for (t = buf, f = str; bufsize && *f; ) { + if (*f == '%' && isUpper(f+1)) { +- char *percent = strchr(f+1, '%'); ++ const char *percent = strchr(f+1, '%'); + if (percent && percent - f < bufsize) { + char *val; + strlcpy(t, f+1, percent - f); diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.3.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.3.0-r2.ebuild deleted file mode 100644 index e52e8bc51c9..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.3.0-r2.ebuild +++ /dev/null @@ -1,210 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Uncomment when introducing a patch which touches configure -RSYNC_NEEDS_AUTOCONF=1 -PYTHON_COMPAT=( python3_{11..13} ) -inherit flag-o-matic prefix python-single-r1 systemd - -DESCRIPTION="File transfer program to keep remote files into sync" -HOMEPAGE="https://rsync.samba.org/" -if [[ ${PV} == *9999 ]] ; then - EGIT_REPO_URI="https://github.com/WayneD/rsync.git" - inherit autotools git-r3 - - REQUIRED_USE="${PYTHON_REQUIRED_USE}" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/waynedavison.asc - inherit verify-sig - - if [[ -n ${RSYNC_NEEDS_AUTOCONF} ]] ; then - inherit autotools - fi - - if [[ ${PV} == *_pre* ]] ; then - SRC_DIR="src-previews" - else - SRC_DIR="src" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" - fi - - SRC_URI="https://rsync.samba.org/ftp/rsync/${SRC_DIR}/${P/_/}.tar.gz - verify-sig? ( https://rsync.samba.org/ftp/rsync/${SRC_DIR}/${P/_/}.tar.gz.asc )" - S="${WORKDIR}"/${P/_/} -fi - -LICENSE="GPL-3" -SLOT="0" -IUSE="acl examples iconv lz4 rrsync ssl stunnel system-zlib xattr xxhash zstd" -REQUIRED_USE+=" examples? ( ${PYTHON_REQUIRED_USE} )" -REQUIRED_USE+=" rrsync? ( ${PYTHON_REQUIRED_USE} )" - -# attr is autodetected and then dropped by -Wl,--as-needed: -# https://github.com/RsyncProject/rsync/pull/753 -RDEPEND=" - >=dev-libs/popt-1.5 - acl? ( virtual/acl ) - examples? ( - ${PYTHON_DEPS} - dev-lang/perl - ) - lz4? ( app-arch/lz4:= ) - rrsync? ( - ${PYTHON_DEPS} - $(python_gen_cond_dep ' - dev-python/bracex[${PYTHON_USEDEP}] - ') - ) - ssl? ( dev-libs/openssl:= ) - system-zlib? ( virtual/zlib:= ) - xxhash? ( >=dev-libs/xxhash-0.8 ) - zstd? ( >=app-arch/zstd-1.4:= ) - iconv? ( virtual/libiconv )" -DEPEND="${RDEPEND}" -BDEPEND=" - examples? ( ${PYTHON_DEPS} ) - rrsync? ( ${PYTHON_DEPS} ) -" - -if [[ ${PV} == *9999 ]] ; then - BDEPEND+=" ${PYTHON_DEPS} - $(python_gen_cond_dep ' - dev-python/commonmark[${PYTHON_USEDEP}] - ')" -else - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-waynedavison )" -fi - -PATCHES=( - # Temporary just for the bug #948106 CVE fixes - "${FILESDIR}"/3.3.0 -) - -pkg_setup() { - # - USE=examples needs Python itself at runtime, but nothing else - # - 9999 needs commonmark at build time - if [[ ${PV} == *9999 ]] || use examples || use rrsync; then - python-single-r1_pkg_setup - fi -} - -src_prepare() { - default - - sed -i -e 's/AC_HEADER_MAJOR_FIXED/AC_HEADER_MAJOR/' configure.ac - - if [[ ${PV} == *9999 || -n ${RSYNC_NEEDS_AUTOCONF} ]] ; then - eaclocal -I m4 - eautoconf -o configure.sh - eautoheader && touch config.h.in - fi - - if use examples || use rrsync; then - python_fix_shebang support/ - fi - - if [[ -f rrsync.1 ]]; then - # If the pre-build rrsync.1 man page exists, then link to it - # from support/rrsync.1 to avoid rsync's build system attempting - # re-creating the man page (bug #883049). - ln -s ../rrsync.1 support/rrsync.1 || die - fi -} - -src_configure() { - # Should be fixed upstream in next release (>3.3.0) (bug #943745) - append-cflags $(test-flags-CC -std=gnu17) - - local myeconfargs=( - --with-rsyncd-conf="${EPREFIX}"/etc/rsyncd.conf - --without-included-popt - --enable-ipv6 - $(use_enable acl acl-support) - $(use_enable iconv) - $(use_enable lz4) - $(use_with rrsync) - $(use_enable ssl openssl) - $(use_with !system-zlib included-zlib) - $(use_enable xattr xattr-support) - $(use_enable xxhash) - $(use_enable zstd) - ) - - # https://github.com/WayneD/rsync/pull/428 - if is-flagq -fsanitize=undefined ; then - sed -E -i \ - -e 's:#define CAREFUL_ALIGNMENT (0|1):#define CAREFUL_ALIGNMENT 1:' \ - byteorder.h || die - append-flags -DCAREFUL_ALIGNMENT - fi - - econf "${myeconfargs[@]}" -} - -src_install() { - emake DESTDIR="${D}" install - - newconfd "${FILESDIR}"/rsyncd.conf.d rsyncd - newinitd "${FILESDIR}"/rsyncd.init.d-r1 rsyncd - - dodoc NEWS.md README.md TODO tech_report.tex - - insinto /etc - newins "${FILESDIR}"/rsyncd.conf-3.2.7-r5 rsyncd.conf - - insinto /etc/logrotate.d - newins "${FILESDIR}"/rsyncd.logrotate rsyncd - - insinto /etc/xinetd.d - newins "${FILESDIR}"/rsyncd.xinetd-3.0.9-r1 rsyncd - - # Install stunnel helpers - if use stunnel ; then - emake DESTDIR="${D}" install-ssl-daemon - fi - - # Install the useful contrib scripts - if use examples ; then - # The 'rrsync' script is installed conditionally via the 'rrysnc' - # USE flag, and not via the 'examples' USE flag. - rm support/rrsync* || die - - exeinto /usr/share/rsync - doexe support/* - - rm -f "${ED}"/usr/share/rsync/{Makefile*,*.c} - fi - - eprefixify "${ED}"/etc/{,xinetd.d}/rsyncd* - - systemd_newunit packaging/systemd/rsync.service rsyncd.service -} - -pkg_postinst() { - if grep -Eqis '^[[:space:]]use chroot[[:space:]]*=[[:space:]]*(no|0|false)' \ - "${EROOT}"/etc/rsyncd.conf "${EROOT}"/etc/rsync/rsyncd.conf ; then - ewarn "You have disabled chroot support in your rsyncd.conf. This" - ewarn "is a security risk which you should fix. Please check your" - ewarn "/etc/rsyncd.conf file and fix the setting 'use chroot'." - fi - - if use stunnel ; then - einfo "Please install \">=net-misc/stunnel-4\" in order to use stunnel feature." - einfo - einfo "You maybe have to update the certificates configured in" - einfo "${EROOT}/etc/stunnel/rsync.conf" - fi - - if use system-zlib ; then - ewarn "Using system-zlib is incompatible with =rsync-3.1.1 built with bundled zlib," - ewarn "and the --compress option, add --new-compress (-zz)." - ewarn - ewarn "For syncing the portage tree, add:" - ewarn "PORTAGE_RSYNC_EXTRA_OPTS=\"--new-compress\" to make.conf" - fi -} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.4.1-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.4.1-r1.ebuild deleted file mode 100644 index 1cffda104c0..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.4.1-r1.ebuild +++ /dev/null @@ -1,206 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Uncomment when introducing a patch which touches configure -RSYNC_NEEDS_AUTOCONF=1 -PYTHON_COMPAT=( python3_{11..13} ) -inherit flag-o-matic prefix python-single-r1 systemd - -DESCRIPTION="File transfer program to keep remote files into sync" -HOMEPAGE="https://rsync.samba.org/" -if [[ ${PV} == *9999 ]] ; then - EGIT_REPO_URI="https://github.com/WayneD/rsync.git" - inherit autotools git-r3 - - REQUIRED_USE="${PYTHON_REQUIRED_USE}" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/andrewtridgell.asc - inherit verify-sig - - if [[ -n ${RSYNC_NEEDS_AUTOCONF} ]] ; then - inherit autotools - fi - - if [[ ${PV} == *_pre* ]] ; then - SRC_DIR="src-previews" - else - SRC_DIR="src" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" - fi - - SRC_URI="https://rsync.samba.org/ftp/rsync/${SRC_DIR}/${P/_/}.tar.gz - verify-sig? ( https://rsync.samba.org/ftp/rsync/${SRC_DIR}/${P/_/}.tar.gz.asc )" - S="${WORKDIR}"/${P/_/} -fi - -LICENSE="GPL-3" -SLOT="0" -IUSE="acl examples iconv lz4 rrsync ssl stunnel system-zlib xattr +xxhash zstd" -REQUIRED_USE+=" examples? ( ${PYTHON_REQUIRED_USE} )" -REQUIRED_USE+=" rrsync? ( ${PYTHON_REQUIRED_USE} )" - -# attr is autodetected and then dropped by -Wl,--as-needed: -# https://github.com/RsyncProject/rsync/pull/753 -RDEPEND=" - >=dev-libs/popt-1.19 - acl? ( virtual/acl ) - examples? ( - ${PYTHON_DEPS} - dev-lang/perl - ) - lz4? ( app-arch/lz4:= ) - rrsync? ( - ${PYTHON_DEPS} - $(python_gen_cond_dep ' - dev-python/bracex[${PYTHON_USEDEP}] - ') - ) - ssl? ( dev-libs/openssl:= ) - system-zlib? ( virtual/zlib:= ) - xxhash? ( >=dev-libs/xxhash-0.8 ) - zstd? ( >=app-arch/zstd-1.4:= ) - iconv? ( virtual/libiconv )" -DEPEND="${RDEPEND}" -BDEPEND=" - examples? ( ${PYTHON_DEPS} ) - rrsync? ( ${PYTHON_DEPS} ) -" - -if [[ ${PV} == *9999 ]] ; then - BDEPEND+=" ${PYTHON_DEPS} - $(python_gen_cond_dep ' - dev-python/commonmark[${PYTHON_USEDEP}] - ')" -else - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-andrewtridgell )" -fi - -PATCHES=( - "${FILESDIR}"/${PN}-3.4.1-c23.patch -) - -pkg_setup() { - # - USE=examples needs Python itself at runtime, but nothing else - # - 9999 needs commonmark at build time - if [[ ${PV} == *9999 ]] || use examples || use rrsync; then - python-single-r1_pkg_setup - fi -} - -src_prepare() { - default - - sed -i -e 's/AC_HEADER_MAJOR_FIXED/AC_HEADER_MAJOR/' configure.ac - - if [[ ${PV} == *9999 || -n ${RSYNC_NEEDS_AUTOCONF} ]] ; then - eaclocal -I m4 - eautoconf -o configure.sh - eautoheader && touch config.h.in - fi - - if use examples || use rrsync; then - python_fix_shebang support/ - fi - - if [[ -f rrsync.1 ]]; then - # If the pre-build rrsync.1 man page exists, then link to it - # from support/rrsync.1 to avoid rsync's build system attempting - # re-creating the man page (bug #883049). - ln -s ../rrsync.1 support/rrsync.1 || die - fi -} - -src_configure() { - local myeconfargs=( - --with-rsyncd-conf="${EPREFIX}"/etc/rsyncd.conf - --without-included-popt - --enable-ipv6 - $(use_enable acl acl-support) - $(use_enable iconv) - $(use_enable lz4) - $(use_with rrsync) - $(use_enable ssl openssl) - $(use_with !system-zlib included-zlib) - $(use_enable xattr xattr-support) - $(use_enable xxhash) - $(use_enable zstd) - ) - - # https://github.com/WayneD/rsync/pull/428 - if is-flagq -fsanitize=undefined ; then - sed -E -i \ - -e 's:#define CAREFUL_ALIGNMENT (0|1):#define CAREFUL_ALIGNMENT 1:' \ - byteorder.h || die - append-flags -DCAREFUL_ALIGNMENT - fi - - econf "${myeconfargs[@]}" -} - -src_install() { - emake DESTDIR="${D}" install - - newconfd "${FILESDIR}"/rsyncd.conf.d rsyncd - newinitd "${FILESDIR}"/rsyncd.init.d-r1 rsyncd - - dodoc NEWS.md README.md TODO tech_report.tex - - insinto /etc - newins "${FILESDIR}"/rsyncd.conf-3.2.7-r5 rsyncd.conf - - insinto /etc/logrotate.d - newins "${FILESDIR}"/rsyncd.logrotate rsyncd - - insinto /etc/xinetd.d - newins "${FILESDIR}"/rsyncd.xinetd-3.0.9-r1 rsyncd - - # Install stunnel helpers - if use stunnel ; then - emake DESTDIR="${D}" install-ssl-daemon - fi - - # Install the useful contrib scripts - if use examples ; then - # The 'rrsync' script is installed conditionally via the 'rrysnc' - # USE flag, and not via the 'examples' USE flag. - rm support/rrsync* || die - - exeinto /usr/share/rsync - doexe support/* - - rm -f "${ED}"/usr/share/rsync/{Makefile*,*.c} - fi - - eprefixify "${ED}"/etc/{,xinetd.d}/rsyncd* - - systemd_newunit packaging/systemd/rsync.service rsyncd.service -} - -pkg_postinst() { - if grep -Eqis '^[[:space:]]use chroot[[:space:]]*=[[:space:]]*(no|0|false)' \ - "${EROOT}"/etc/rsyncd.conf "${EROOT}"/etc/rsync/rsyncd.conf ; then - ewarn "You have disabled chroot support in your rsyncd.conf. This" - ewarn "is a security risk which you should fix. Please check your" - ewarn "/etc/rsyncd.conf file and fix the setting 'use chroot'." - fi - - if use stunnel ; then - einfo "Please install \">=net-misc/stunnel-4\" in order to use stunnel feature." - einfo - einfo "You maybe have to update the certificates configured in" - einfo "${EROOT}/etc/stunnel/rsync.conf" - fi - - if use system-zlib ; then - ewarn "Using system-zlib is incompatible with =rsync-3.1.1 built with bundled zlib," - ewarn "and the --compress option, add --new-compress (-zz)." - ewarn - ewarn "For syncing the portage tree, add:" - ewarn "PORTAGE_RSYNC_EXTRA_OPTS=\"--new-compress\" to make.conf" - fi -} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.4.1-r3.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.4.1-r3.ebuild new file mode 100644 index 00000000000..b02c3a09509 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.4.1-r3.ebuild @@ -0,0 +1,213 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Uncomment when introducing a patch which touches configure +RSYNC_NEEDS_AUTOCONF=1 +PYTHON_COMPAT=( python3_{11..14} ) +inherit flag-o-matic prefix python-single-r1 systemd + +DESCRIPTION="File transfer program to keep remote files into sync" +HOMEPAGE="https://rsync.samba.org/" +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://github.com/WayneD/rsync.git" + inherit autotools git-r3 + + REQUIRED_USE="${PYTHON_REQUIRED_USE}" +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/andrewtridgell.asc + inherit verify-sig + + if [[ -n ${RSYNC_NEEDS_AUTOCONF} ]] ; then + inherit autotools + fi + + if [[ ${PV} == *_pre* ]] ; then + SRC_DIR="src-previews" + else + SRC_DIR="src" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + fi + + SRC_URI="https://rsync.samba.org/ftp/rsync/${SRC_DIR}/${P/_/}.tar.gz + verify-sig? ( https://rsync.samba.org/ftp/rsync/${SRC_DIR}/${P/_/}.tar.gz.asc )" + S="${WORKDIR}"/${P/_/} +fi + +LICENSE="GPL-3" +SLOT="0" +IUSE="acl examples iconv lz4 rrsync ssl stunnel system-zlib xattr +xxhash zstd" +REQUIRED_USE+=" examples? ( ${PYTHON_REQUIRED_USE} )" +REQUIRED_USE+=" rrsync? ( ${PYTHON_REQUIRED_USE} )" + +# attr is autodetected and then dropped by -Wl,--as-needed: +# https://github.com/RsyncProject/rsync/pull/753 +RDEPEND=" + >=dev-libs/popt-1.19 + acl? ( virtual/acl ) + examples? ( + ${PYTHON_DEPS} + dev-lang/perl + ) + lz4? ( app-arch/lz4:= ) + rrsync? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/bracex[${PYTHON_USEDEP}] + ') + ) + ssl? ( dev-libs/openssl:= ) + system-zlib? ( virtual/zlib:= ) + xxhash? ( >=dev-libs/xxhash-0.8 ) + zstd? ( >=app-arch/zstd-1.4:= ) + iconv? ( virtual/libiconv )" +DEPEND="${RDEPEND}" +BDEPEND=" + examples? ( ${PYTHON_DEPS} ) + rrsync? ( ${PYTHON_DEPS} ) +" + +if [[ ${PV} == *9999 ]] ; then + BDEPEND+=" ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/commonmark[${PYTHON_USEDEP}] + ')" +else + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-andrewtridgell )" +fi + +PATCHES=( + "${FILESDIR}"/${PN}-3.4.1-c23.patch + "${FILESDIR}"/${PN}-3.4.1-CVE-2025-10158.patch + "${FILESDIR}"/${PN}-3.4.1-fix-uninitialized-mul_one.patch + "${FILESDIR}"/${PN}-3.4.1-glibc-2.43.patch +) + +pkg_setup() { + # - USE=examples needs Python itself at runtime, but nothing else + # - 9999 needs commonmark at build time + if [[ ${PV} == *9999 ]] || use examples || use rrsync; then + python-single-r1_pkg_setup + fi +} + +src_prepare() { + default + + sed -i -e 's/AC_HEADER_MAJOR_FIXED/AC_HEADER_MAJOR/' configure.ac + + if [[ ${PV} == *9999 || -n ${RSYNC_NEEDS_AUTOCONF} ]] ; then + eaclocal -I m4 + eautoconf -o configure.sh + eautoheader && touch config.h.in + fi + + if use examples || use rrsync; then + python_fix_shebang support/ + fi + + if [[ -f rrsync.1 ]]; then + # If the pre-build rrsync.1 man page exists, then link to it + # from support/rrsync.1 to avoid rsync's build system attempting + # re-creating the man page (bug #883049). + ln -s ../rrsync.1 support/rrsync.1 || die + fi +} + +src_configure() { + local myeconfargs=( + --with-rsyncd-conf="${EPREFIX}"/etc/rsyncd.conf + --without-included-popt + --enable-ipv6 + $(use_enable acl acl-support) + $(use_enable iconv) + $(use_enable lz4) + $(use_with rrsync) + $(use_enable ssl openssl) + $(use_with !system-zlib included-zlib) + $(use_enable xattr xattr-support) + $(use_enable xxhash) + $(use_enable zstd) + ) + + # https://github.com/WayneD/rsync/pull/428 + if is-flagq -fsanitize=undefined ; then + sed -E -i \ + -e 's:#define CAREFUL_ALIGNMENT (0|1):#define CAREFUL_ALIGNMENT 1:' \ + byteorder.h || die + append-flags -DCAREFUL_ALIGNMENT + fi + + # workaround for autoconf-2.73 using C23: + # https://bugs.gentoo.org/972320 + append-cflags -std=gnu17 + + econf "${myeconfargs[@]}" +} + +src_install() { + emake DESTDIR="${D}" install + + newconfd "${FILESDIR}"/rsyncd.conf.d rsyncd + newinitd "${FILESDIR}"/rsyncd.init.d-r1 rsyncd + + dodoc NEWS.md README.md TODO tech_report.tex + + insinto /etc + newins "${FILESDIR}"/rsyncd.conf-3.2.7-r5 rsyncd.conf + + insinto /etc/logrotate.d + newins "${FILESDIR}"/rsyncd.logrotate rsyncd + + insinto /etc/xinetd.d + newins "${FILESDIR}"/rsyncd.xinetd-3.0.9-r1 rsyncd + + # Install stunnel helpers + if use stunnel ; then + emake DESTDIR="${D}" install-ssl-daemon + fi + + # Install the useful contrib scripts + if use examples ; then + # The 'rrsync' script is installed conditionally via the 'rrysnc' + # USE flag, and not via the 'examples' USE flag. + rm support/rrsync* || die + + exeinto /usr/share/rsync + doexe support/* + + rm -f "${ED}"/usr/share/rsync/{Makefile*,*.c} + fi + + eprefixify "${ED}"/etc/{,xinetd.d}/rsyncd* + + systemd_newunit packaging/systemd/rsync.service rsyncd.service +} + +pkg_postinst() { + if grep -Eqis '^[[:space:]]use chroot[[:space:]]*=[[:space:]]*(no|0|false)' \ + "${EROOT}"/etc/rsyncd.conf "${EROOT}"/etc/rsync/rsyncd.conf ; then + ewarn "You have disabled chroot support in your rsyncd.conf. This" + ewarn "is a security risk which you should fix. Please check your" + ewarn "/etc/rsyncd.conf file and fix the setting 'use chroot'." + fi + + if use stunnel ; then + einfo "Please install \">=net-misc/stunnel-4\" in order to use stunnel feature." + einfo + einfo "You maybe have to update the certificates configured in" + einfo "${EROOT}/etc/stunnel/rsync.conf" + fi + + if use system-zlib ; then + ewarn "Using system-zlib is incompatible with =rsync-3.1.1 built with bundled zlib," + ewarn "and the --compress option, add --new-compress (-zz)." + ewarn + ewarn "For syncing the portage tree, add:" + ewarn "PORTAGE_RSYNC_EXTRA_OPTS=\"--new-compress\" to make.conf" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.4.1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.4.1.ebuild deleted file mode 100644 index 0ae7546ebdb..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.4.1.ebuild +++ /dev/null @@ -1,206 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Uncomment when introducing a patch which touches configure -RSYNC_NEEDS_AUTOCONF=1 -PYTHON_COMPAT=( python3_{11..13} ) -inherit flag-o-matic prefix python-single-r1 systemd - -DESCRIPTION="File transfer program to keep remote files into sync" -HOMEPAGE="https://rsync.samba.org/" -if [[ ${PV} == *9999 ]] ; then - EGIT_REPO_URI="https://github.com/WayneD/rsync.git" - inherit autotools git-r3 - - REQUIRED_USE="${PYTHON_REQUIRED_USE}" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/andrewtridgell.asc - inherit verify-sig - - if [[ -n ${RSYNC_NEEDS_AUTOCONF} ]] ; then - inherit autotools - fi - - if [[ ${PV} == *_pre* ]] ; then - SRC_DIR="src-previews" - else - SRC_DIR="src" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" - fi - - SRC_URI="https://rsync.samba.org/ftp/rsync/${SRC_DIR}/${P/_/}.tar.gz - verify-sig? ( https://rsync.samba.org/ftp/rsync/${SRC_DIR}/${P/_/}.tar.gz.asc )" - S="${WORKDIR}"/${P/_/} -fi - -LICENSE="GPL-3" -SLOT="0" -IUSE="acl examples iconv lz4 rrsync ssl stunnel system-zlib xattr xxhash zstd" -REQUIRED_USE+=" examples? ( ${PYTHON_REQUIRED_USE} )" -REQUIRED_USE+=" rrsync? ( ${PYTHON_REQUIRED_USE} )" - -# attr is autodetected and then dropped by -Wl,--as-needed: -# https://github.com/RsyncProject/rsync/pull/753 -RDEPEND=" - >=dev-libs/popt-1.19 - acl? ( virtual/acl ) - examples? ( - ${PYTHON_DEPS} - dev-lang/perl - ) - lz4? ( app-arch/lz4:= ) - rrsync? ( - ${PYTHON_DEPS} - $(python_gen_cond_dep ' - dev-python/bracex[${PYTHON_USEDEP}] - ') - ) - ssl? ( dev-libs/openssl:= ) - system-zlib? ( virtual/zlib:= ) - xxhash? ( >=dev-libs/xxhash-0.8 ) - zstd? ( >=app-arch/zstd-1.4:= ) - iconv? ( virtual/libiconv )" -DEPEND="${RDEPEND}" -BDEPEND=" - examples? ( ${PYTHON_DEPS} ) - rrsync? ( ${PYTHON_DEPS} ) -" - -if [[ ${PV} == *9999 ]] ; then - BDEPEND+=" ${PYTHON_DEPS} - $(python_gen_cond_dep ' - dev-python/commonmark[${PYTHON_USEDEP}] - ')" -else - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-andrewtridgell )" -fi - -PATCHES=( - "${FILESDIR}"/${PN}-3.4.1-c23.patch -) - -pkg_setup() { - # - USE=examples needs Python itself at runtime, but nothing else - # - 9999 needs commonmark at build time - if [[ ${PV} == *9999 ]] || use examples || use rrsync; then - python-single-r1_pkg_setup - fi -} - -src_prepare() { - default - - sed -i -e 's/AC_HEADER_MAJOR_FIXED/AC_HEADER_MAJOR/' configure.ac - - if [[ ${PV} == *9999 || -n ${RSYNC_NEEDS_AUTOCONF} ]] ; then - eaclocal -I m4 - eautoconf -o configure.sh - eautoheader && touch config.h.in - fi - - if use examples || use rrsync; then - python_fix_shebang support/ - fi - - if [[ -f rrsync.1 ]]; then - # If the pre-build rrsync.1 man page exists, then link to it - # from support/rrsync.1 to avoid rsync's build system attempting - # re-creating the man page (bug #883049). - ln -s ../rrsync.1 support/rrsync.1 || die - fi -} - -src_configure() { - local myeconfargs=( - --with-rsyncd-conf="${EPREFIX}"/etc/rsyncd.conf - --without-included-popt - --enable-ipv6 - $(use_enable acl acl-support) - $(use_enable iconv) - $(use_enable lz4) - $(use_with rrsync) - $(use_enable ssl openssl) - $(use_with !system-zlib included-zlib) - $(use_enable xattr xattr-support) - $(use_enable xxhash) - $(use_enable zstd) - ) - - # https://github.com/WayneD/rsync/pull/428 - if is-flagq -fsanitize=undefined ; then - sed -E -i \ - -e 's:#define CAREFUL_ALIGNMENT (0|1):#define CAREFUL_ALIGNMENT 1:' \ - byteorder.h || die - append-flags -DCAREFUL_ALIGNMENT - fi - - econf "${myeconfargs[@]}" -} - -src_install() { - emake DESTDIR="${D}" install - - newconfd "${FILESDIR}"/rsyncd.conf.d rsyncd - newinitd "${FILESDIR}"/rsyncd.init.d-r1 rsyncd - - dodoc NEWS.md README.md TODO tech_report.tex - - insinto /etc - newins "${FILESDIR}"/rsyncd.conf-3.2.7-r5 rsyncd.conf - - insinto /etc/logrotate.d - newins "${FILESDIR}"/rsyncd.logrotate rsyncd - - insinto /etc/xinetd.d - newins "${FILESDIR}"/rsyncd.xinetd-3.0.9-r1 rsyncd - - # Install stunnel helpers - if use stunnel ; then - emake DESTDIR="${D}" install-ssl-daemon - fi - - # Install the useful contrib scripts - if use examples ; then - # The 'rrsync' script is installed conditionally via the 'rrysnc' - # USE flag, and not via the 'examples' USE flag. - rm support/rrsync* || die - - exeinto /usr/share/rsync - doexe support/* - - rm -f "${ED}"/usr/share/rsync/{Makefile*,*.c} - fi - - eprefixify "${ED}"/etc/{,xinetd.d}/rsyncd* - - systemd_newunit packaging/systemd/rsync.service rsyncd.service -} - -pkg_postinst() { - if grep -Eqis '^[[:space:]]use chroot[[:space:]]*=[[:space:]]*(no|0|false)' \ - "${EROOT}"/etc/rsyncd.conf "${EROOT}"/etc/rsync/rsyncd.conf ; then - ewarn "You have disabled chroot support in your rsyncd.conf. This" - ewarn "is a security risk which you should fix. Please check your" - ewarn "/etc/rsyncd.conf file and fix the setting 'use chroot'." - fi - - if use stunnel ; then - einfo "Please install \">=net-misc/stunnel-4\" in order to use stunnel feature." - einfo - einfo "You maybe have to update the certificates configured in" - einfo "${EROOT}/etc/stunnel/rsync.conf" - fi - - if use system-zlib ; then - ewarn "Using system-zlib is incompatible with =rsync-3.1.1 built with bundled zlib," - ewarn "and the --compress option, add --new-compress (-zz)." - ewarn - ewarn "For syncing the portage tree, add:" - ewarn "PORTAGE_RSYNC_EXTRA_OPTS=\"--new-compress\" to make.conf" - fi -} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.4.2.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.4.2.ebuild new file mode 100644 index 00000000000..6c68357a2a5 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.4.2.ebuild @@ -0,0 +1,200 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Uncomment when introducing a patch which touches configure +RSYNC_NEEDS_AUTOCONF=1 +PYTHON_COMPAT=( python3_{11..14} ) +inherit flag-o-matic prefix python-single-r1 systemd + +DESCRIPTION="File transfer program to keep remote files into sync" +HOMEPAGE="https://rsync.samba.org/" +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://github.com/WayneD/rsync.git" + inherit autotools git-r3 + + REQUIRED_USE="${PYTHON_REQUIRED_USE}" +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/andrewtridgell.asc + inherit verify-sig + + if [[ -n ${RSYNC_NEEDS_AUTOCONF} ]] ; then + inherit autotools + fi + + if [[ ${PV} == *_pre* ]] ; then + SRC_DIR="src-previews" + else + SRC_DIR="src" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + fi + + SRC_URI="https://rsync.samba.org/ftp/rsync/${SRC_DIR}/${P/_/}.tar.gz + verify-sig? ( https://rsync.samba.org/ftp/rsync/${SRC_DIR}/${P/_/}.tar.gz.asc )" + S="${WORKDIR}"/${P/_/} +fi + +LICENSE="GPL-3" +SLOT="0" +IUSE="acl examples iconv lz4 rrsync ssl stunnel system-zlib xattr +xxhash zstd" +REQUIRED_USE+=" examples? ( ${PYTHON_REQUIRED_USE} )" +REQUIRED_USE+=" rrsync? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND=" + >=dev-libs/popt-1.19 + acl? ( virtual/acl ) + examples? ( + ${PYTHON_DEPS} + dev-lang/perl + ) + lz4? ( app-arch/lz4:= ) + rrsync? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/bracex[${PYTHON_USEDEP}] + ') + ) + ssl? ( dev-libs/openssl:= ) + system-zlib? ( virtual/zlib:= ) + xxhash? ( >=dev-libs/xxhash-0.8 ) + zstd? ( >=app-arch/zstd-1.4:= ) + iconv? ( virtual/libiconv )" +DEPEND="${RDEPEND}" +BDEPEND=" + examples? ( ${PYTHON_DEPS} ) + rrsync? ( ${PYTHON_DEPS} ) +" + +if [[ ${PV} == *9999 ]] ; then + BDEPEND+=" ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/commonmark[${PYTHON_USEDEP}] + ')" +else + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-andrewtridgell )" +fi + +pkg_setup() { + # - USE=examples needs Python itself at runtime, but nothing else + # - 9999 needs commonmark at build time + if [[ ${PV} == *9999 ]] || use examples || use rrsync; then + python-single-r1_pkg_setup + fi +} + +src_prepare() { + default + + sed -i -e 's/AC_HEADER_MAJOR_FIXED/AC_HEADER_MAJOR/' configure.ac + + if [[ ${PV} == *9999 || -n ${RSYNC_NEEDS_AUTOCONF} ]] ; then + eaclocal -I m4 + eautoconf -o configure.sh + eautoheader && touch config.h.in + fi + + if use examples || use rrsync; then + python_fix_shebang support/ + fi + + if [[ -f rrsync.1 ]]; then + # If the pre-build rrsync.1 man page exists, then link to it + # from support/rrsync.1 to avoid rsync's build system attempting + # re-creating the man page (bug #883049). + ln -s ../rrsync.1 support/rrsync.1 || die + fi +} + +src_configure() { + local myeconfargs=( + --with-rsyncd-conf="${EPREFIX}"/etc/rsyncd.conf + --without-included-popt + --enable-ipv6 + $(use_enable acl acl-support) + $(use_enable iconv) + $(use_enable lz4) + $(use_with rrsync) + $(use_enable ssl openssl) + $(use_with !system-zlib included-zlib) + $(use_enable xattr xattr-support) + $(use_enable xxhash) + $(use_enable zstd) + ) + + # https://github.com/WayneD/rsync/pull/428 + if is-flagq -fsanitize=undefined ; then + sed -E -i \ + -e 's:#define CAREFUL_ALIGNMENT (0|1):#define CAREFUL_ALIGNMENT 1:' \ + byteorder.h || die + append-flags -DCAREFUL_ALIGNMENT + fi + + econf "${myeconfargs[@]}" +} + +src_install() { + emake DESTDIR="${D}" install + + newconfd "${FILESDIR}"/rsyncd.conf.d rsyncd + newinitd "${FILESDIR}"/rsyncd.init.d-r1 rsyncd + + dodoc NEWS.md README.md TODO tech_report.tex + + insinto /etc + newins "${FILESDIR}"/rsyncd.conf-3.2.7-r5 rsyncd.conf + + insinto /etc/logrotate.d + newins "${FILESDIR}"/rsyncd.logrotate rsyncd + + insinto /etc/xinetd.d + newins "${FILESDIR}"/rsyncd.xinetd-3.0.9-r1 rsyncd + + # Install stunnel helpers + if use stunnel ; then + emake DESTDIR="${D}" install-ssl-daemon + fi + + # Install the useful contrib scripts + if use examples ; then + # The 'rrsync' script is installed conditionally via the 'rrysnc' + # USE flag, and not via the 'examples' USE flag. + rm support/rrsync* || die + + exeinto /usr/share/rsync + doexe support/* + + rm -f "${ED}"/usr/share/rsync/{Makefile*,*.c} + fi + + eprefixify "${ED}"/etc/{,xinetd.d}/rsyncd* + + systemd_newunit packaging/systemd/rsync.service rsyncd.service +} + +pkg_postinst() { + if grep -Eqis '^[[:space:]]use chroot[[:space:]]*=[[:space:]]*(no|0|false)' \ + "${EROOT}"/etc/rsyncd.conf "${EROOT}"/etc/rsync/rsyncd.conf ; then + ewarn "You have disabled chroot support in your rsyncd.conf. This" + ewarn "is a security risk which you should fix. Please check your" + ewarn "/etc/rsyncd.conf file and fix the setting 'use chroot'." + fi + + if use stunnel ; then + einfo "Please install \">=net-misc/stunnel-4\" in order to use stunnel feature." + einfo + einfo "You maybe have to update the certificates configured in" + einfo "${EROOT}/etc/stunnel/rsync.conf" + fi + + if use system-zlib ; then + ewarn "Using system-zlib is incompatible with =rsync-3.1.1 built with bundled zlib," + ewarn "and the --compress option, add --new-compress (-zz)." + ewarn + ewarn "For syncing the portage tree, add:" + ewarn "PORTAGE_RSYNC_EXTRA_OPTS=\"--new-compress\" to make.conf" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.4.3.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.4.3.ebuild new file mode 100644 index 00000000000..d445ea8ae4c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-3.4.3.ebuild @@ -0,0 +1,200 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Uncomment when introducing a patch which touches configure +RSYNC_NEEDS_AUTOCONF=1 +PYTHON_COMPAT=( python3_{11..14} ) +inherit flag-o-matic prefix python-single-r1 systemd + +DESCRIPTION="File transfer program to keep remote files into sync" +HOMEPAGE="https://rsync.samba.org/" +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://github.com/WayneD/rsync.git" + inherit autotools git-r3 + + REQUIRED_USE="${PYTHON_REQUIRED_USE}" +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/andrewtridgell.asc + inherit verify-sig + + if [[ -n ${RSYNC_NEEDS_AUTOCONF} ]] ; then + inherit autotools + fi + + if [[ ${PV} == *_pre* ]] ; then + SRC_DIR="src-previews" + else + SRC_DIR="src" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" + fi + + SRC_URI="https://rsync.samba.org/ftp/rsync/${SRC_DIR}/${P/_/}.tar.gz + verify-sig? ( https://rsync.samba.org/ftp/rsync/${SRC_DIR}/${P/_/}.tar.gz.asc )" + S="${WORKDIR}"/${P/_/} +fi + +LICENSE="GPL-3" +SLOT="0" +IUSE="acl examples iconv lz4 rrsync ssl stunnel system-zlib xattr +xxhash zstd" +REQUIRED_USE+=" examples? ( ${PYTHON_REQUIRED_USE} )" +REQUIRED_USE+=" rrsync? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND=" + >=dev-libs/popt-1.19 + acl? ( virtual/acl ) + examples? ( + ${PYTHON_DEPS} + dev-lang/perl + ) + lz4? ( app-arch/lz4:= ) + rrsync? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/bracex[${PYTHON_USEDEP}] + ') + ) + ssl? ( dev-libs/openssl:= ) + system-zlib? ( virtual/zlib:= ) + xxhash? ( >=dev-libs/xxhash-0.8 ) + zstd? ( >=app-arch/zstd-1.4:= ) + iconv? ( virtual/libiconv )" +DEPEND="${RDEPEND}" +BDEPEND=" + examples? ( ${PYTHON_DEPS} ) + rrsync? ( ${PYTHON_DEPS} ) +" + +if [[ ${PV} == *9999 ]] ; then + BDEPEND+=" ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/commonmark[${PYTHON_USEDEP}] + ')" +else + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-andrewtridgell )" +fi + +pkg_setup() { + # - USE=examples needs Python itself at runtime, but nothing else + # - 9999 needs commonmark at build time + if [[ ${PV} == *9999 ]] || use examples || use rrsync; then + python-single-r1_pkg_setup + fi +} + +src_prepare() { + default + + sed -i -e 's/AC_HEADER_MAJOR_FIXED/AC_HEADER_MAJOR/' configure.ac + + if [[ ${PV} == *9999 || -n ${RSYNC_NEEDS_AUTOCONF} ]] ; then + eaclocal -I m4 + eautoconf -o configure.sh + eautoheader && touch config.h.in + fi + + if use examples || use rrsync; then + python_fix_shebang support/ + fi + + if [[ -f rrsync.1 ]]; then + # If the pre-build rrsync.1 man page exists, then link to it + # from support/rrsync.1 to avoid rsync's build system attempting + # re-creating the man page (bug #883049). + ln -s ../rrsync.1 support/rrsync.1 || die + fi +} + +src_configure() { + local myeconfargs=( + --with-rsyncd-conf="${EPREFIX}"/etc/rsyncd.conf + --without-included-popt + --enable-ipv6 + $(use_enable acl acl-support) + $(use_enable iconv) + $(use_enable lz4) + $(use_with rrsync) + $(use_enable ssl openssl) + $(use_with !system-zlib included-zlib) + $(use_enable xattr xattr-support) + $(use_enable xxhash) + $(use_enable zstd) + ) + + # https://github.com/WayneD/rsync/pull/428 + if is-flagq -fsanitize=undefined ; then + sed -E -i \ + -e 's:#define CAREFUL_ALIGNMENT (0|1):#define CAREFUL_ALIGNMENT 1:' \ + byteorder.h || die + append-flags -DCAREFUL_ALIGNMENT + fi + + econf "${myeconfargs[@]}" +} + +src_install() { + emake DESTDIR="${D}" install + + newconfd "${FILESDIR}"/rsyncd.conf.d rsyncd + newinitd "${FILESDIR}"/rsyncd.init.d-r1 rsyncd + + dodoc NEWS.md README.md TODO tech_report.tex + + insinto /etc + newins "${FILESDIR}"/rsyncd.conf-3.2.7-r5 rsyncd.conf + + insinto /etc/logrotate.d + newins "${FILESDIR}"/rsyncd.logrotate rsyncd + + insinto /etc/xinetd.d + newins "${FILESDIR}"/rsyncd.xinetd-3.0.9-r1 rsyncd + + # Install stunnel helpers + if use stunnel ; then + emake DESTDIR="${D}" install-ssl-daemon + fi + + # Install the useful contrib scripts + if use examples ; then + # The 'rrsync' script is installed conditionally via the 'rrysnc' + # USE flag, and not via the 'examples' USE flag. + rm support/rrsync* || die + + exeinto /usr/share/rsync + doexe support/* + + rm -f "${ED}"/usr/share/rsync/{Makefile*,*.c} + fi + + eprefixify "${ED}"/etc/{,xinetd.d}/rsyncd* + + systemd_newunit packaging/systemd/rsync.service rsyncd.service +} + +pkg_postinst() { + if grep -Eqis '^[[:space:]]use chroot[[:space:]]*=[[:space:]]*(no|0|false)' \ + "${EROOT}"/etc/rsyncd.conf "${EROOT}"/etc/rsync/rsyncd.conf ; then + ewarn "You have disabled chroot support in your rsyncd.conf. This" + ewarn "is a security risk which you should fix. Please check your" + ewarn "/etc/rsyncd.conf file and fix the setting 'use chroot'." + fi + + if use stunnel ; then + einfo "Please install \">=net-misc/stunnel-4\" in order to use stunnel feature." + einfo + einfo "You maybe have to update the certificates configured in" + einfo "${EROOT}/etc/stunnel/rsync.conf" + fi + + if use system-zlib ; then + ewarn "Using system-zlib is incompatible with =rsync-3.1.1 built with bundled zlib," + ewarn "and the --compress option, add --new-compress (-zz)." + ewarn + ewarn "For syncing the portage tree, add:" + ewarn "PORTAGE_RSYNC_EXTRA_OPTS=\"--new-compress\" to make.conf" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-9999.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-9999.ebuild index ecfa3c6f2c5..6c68357a2a5 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-9999.ebuild @@ -1,11 +1,11 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 # Uncomment when introducing a patch which touches configure RSYNC_NEEDS_AUTOCONF=1 -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit flag-o-matic prefix python-single-r1 systemd DESCRIPTION="File transfer program to keep remote files into sync" @@ -41,8 +41,6 @@ IUSE="acl examples iconv lz4 rrsync ssl stunnel system-zlib xattr +xxhash zstd" REQUIRED_USE+=" examples? ( ${PYTHON_REQUIRED_USE} )" REQUIRED_USE+=" rrsync? ( ${PYTHON_REQUIRED_USE} )" -# attr is autodetected and then dropped by -Wl,--as-needed: -# https://github.com/RsyncProject/rsync/pull/753 RDEPEND=" >=dev-libs/popt-1.19 acl? ( virtual/acl ) diff --git a/sdk_container/src/third_party/portage-stable/net-misc/socat/Manifest b/sdk_container/src/third_party/portage-stable/net-misc/socat/Manifest index 9ed4a2f92be..ad64f137329 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/socat/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-misc/socat/Manifest @@ -1,3 +1 @@ -DIST socat-1.8.0.3.tar.bz2 594396 BLAKE2B a152b1da6332ff925299deca2e39c09e7c3042e14a87b2d6f6fb6c263489291be54ed001d37908767b3164140de262b702a65833c792b1e607781dc5e89e0fdf SHA512 6425c42cf4a3cbe253d238213d11e7daae8f8a09fcce2634c8ce220bb3352a824a80ecfa36330007cf5c537f60fea057e9f68410bccb843ff4666e775c5dcd8e -DIST socat-1.8.1.0.tar.bz2 606066 BLAKE2B 616814d9da8fb0bd7b7e02a65e4e5c4d9d0a5380f85d8151af5a0146e1497c8c4829a7c10ee2e26239bbfa7fa29011c24f6bbf10e59374a9e9db872d3739c2e9 SHA512 d53ee4c881efd564a86a6224c061a634ec17b96ddf419cbbfe6966db537cd452ebe81f33e265855537c3e55de026720cd9f1a4359f6ec04c5d890b600aef3a58 DIST socat-1.8.1.1.tar.bz2 606348 BLAKE2B 877231c973e55e401637aee78edd637e0f66097eb472033d65be8f2ec07e26f6e7f8416e867ff2fa55be6c4dc52764bf3c340f14120322e5cdd04dead1e795ac SHA512 2e87225454365c1396da704a546566681076585a921847a2808d58c9ae8e5d7ad3ac28c321d2d0223b5711762a375dd84893dc67902c355fcce0e4a080909940 diff --git a/sdk_container/src/third_party/portage-stable/net-misc/socat/files/socat-1.8.1.0-const.patch b/sdk_container/src/third_party/portage-stable/net-misc/socat/files/socat-1.8.1.0-const.patch deleted file mode 100644 index c6a7d0e2929..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/socat/files/socat-1.8.1.0-const.patch +++ /dev/null @@ -1,28 +0,0 @@ -Bug: https://bugs.gentoo.org/969295 - -diff --git a/filan.c b/filan.c -index 101940a..85db9b4 100644 ---- a/filan.c -+++ b/filan.c -@@ -1105,7 +1105,7 @@ const char *getfiletypestring(int st_mode) { - } - - static int printtime(FILE *outfile, time_t time) { -- const char *s; -+ char *s; - - if (filan_rawoutput) { - fprintf(outfile, "\t"F_time, time); -diff --git a/xio-ip6.c b/xio-ip6.c -index 7d7e286..e66a3e4 100644 ---- a/xio-ip6.c -+++ b/xio-ip6.c -@@ -117,7 +117,7 @@ int xioparsenetwork_ip6( - struct xiorange *range, - const int ai_flags[2]) - { -- char *delimpos; /* absolute address of delimiter */ -+ const char *delimpos; /* absolute address of delimiter */ - size_t delimind; /* index of delimiter in string */ - unsigned int bits; /* netmask bits */ - char *endptr; diff --git a/sdk_container/src/third_party/portage-stable/net-misc/socat/files/socat-1.8.1.0-musl-fix.patch b/sdk_container/src/third_party/portage-stable/net-misc/socat/files/socat-1.8.1.0-musl-fix.patch deleted file mode 100644 index f5178c45bc1..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/socat/files/socat-1.8.1.0-musl-fix.patch +++ /dev/null @@ -1,19 +0,0 @@ -From https://bugs.gentoo.org/968110 -From: Bobby Bingham -Date: Sun, 28 Dec 2025 11:03:28 -0600 -Subject: [PATCH] don't assume order of fields in struct msghdr - -Fixes compilation on musl. ---- a/xio-netlink.c -+++ b/xio-netlink.c -@@ -30,7 +30,7 @@ int xio_netlink_mtu( - struct nlmsghdr buf[8192/sizeof(struct nlmsghdr)]; - struct iovec iov = { buf, sizeof(buf) }; - struct sockaddr_nl sa; -- struct msghdr rtmsg = { &sa, sizeof(sa), &iov, 1, NULL, 0, 0 }; -+ struct msghdr rtmsg = { .msg_name = &sa, .msg_namelen = sizeof(sa), .msg_iov = &iov, .msg_iovlen = 1 }; - struct nlmsghdr *nh; - - Info2("Setting interface %d MTU to %u using netlink", interface_index, mtu); --- -2.52.0 diff --git a/sdk_container/src/third_party/portage-stable/net-misc/socat/socat-1.8.0.3.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/socat/socat-1.8.0.3.ebuild deleted file mode 100644 index 9597dea04de..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/socat/socat-1.8.0.3.ebuild +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit edo flag-o-matic toolchain-funcs - -MY_P=${P/_beta/-b} -DESCRIPTION="Multipurpose relay (SOcket CAT)" -HOMEPAGE="http://www.dest-unreach.org/socat/ https://repo.or.cz/socat.git" -SRC_URI="http://www.dest-unreach.org/socat/download/${MY_P}.tar.bz2" -S="${WORKDIR}/${MY_P}" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" -IUSE="ipv6 readline ssl tcpd" -# bug #946404 (and many others), whack-a-mole with timeouts and friends -# Try again in the future. -RESTRICT="test" - -DEPEND=" - ssl? ( >=dev-libs/openssl-3:= ) - readline? ( sys-libs/readline:= ) - tcpd? ( sys-apps/tcp-wrappers ) -" -RDEPEND="${DEPEND}" - -DOCS=( BUGREPORTS CHANGES DEVELOPMENT EXAMPLES FAQ FILES PORTING README SECURITY ) - -src_configure() { - # bug #293324 - filter-flags '-Wno-error*' - - tc-export AR - - local myeconfargs=( - $(use_enable ssl openssl) - $(use_enable readline) - $(use_enable ipv6 ip6) - $(use_enable tcpd libwrap) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - # Most tests are skipped because they need network access or a TTY - # Some are for /dev permissions probing (bug #940740) - # 518 519 need extra permissions - edo ./test.sh -v --expect-fail 13,15,87,217,311,313,370,388,410,466,478,518,519,528 -} - -src_install() { - default - - docinto html - dodoc doc/*.html doc/*.css - - if use elibc_musl; then - QA_CONFIG_IMPL_DECL_SKIP=( getprotobynumber_r ) - fi -} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/socat/socat-1.8.1.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/socat/socat-1.8.1.0-r1.ebuild deleted file mode 100644 index d5cdf8ed1c9..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/socat/socat-1.8.1.0-r1.ebuild +++ /dev/null @@ -1,68 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit edo flag-o-matic toolchain-funcs - -MY_P=${P/_beta/-b} -DESCRIPTION="Multipurpose relay (SOcket CAT)" -HOMEPAGE="http://www.dest-unreach.org/socat/ https://repo.or.cz/socat.git" -SRC_URI="http://www.dest-unreach.org/socat/download/${MY_P}.tar.bz2" -S="${WORKDIR}/${MY_P}" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" -IUSE="ipv6 readline ssl tcpd" -# bug #946404 (and many others), whack-a-mole with timeouts and friends -# Try again in the future. -RESTRICT="test" - -DEPEND=" - ssl? ( >=dev-libs/openssl-3:= ) - readline? ( sys-libs/readline:= ) - tcpd? ( sys-apps/tcp-wrappers ) -" -RDEPEND="${DEPEND}" - -DOCS=( BUGREPORTS CHANGES DEVELOPMENT EXAMPLES FAQ FILES PORTING README SECURITY ) - -PATCHES=( - "${FILESDIR}"/${PN}-1.8.1.0-const.patch - "${FILESDIR}"/${PN}-1.8.1.0-musl-fix.patch # bug #968110 -) - -src_configure() { - # bug #293324 - filter-flags '-Wno-error*' - - tc-export AR - - local myeconfargs=( - $(use_enable ssl openssl) - $(use_enable readline) - $(use_enable ipv6 ip6) - $(use_enable tcpd libwrap) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - # Most tests are skipped because they need network access or a TTY - # Some are for /dev permissions probing (bug #940740) - # 518 519 need extra permissions - edo ./test.sh -v --expect-fail 13,15,87,217,311,313,370,388,410,466,478,518,519,528 -} - -src_install() { - default - - docinto html - dodoc doc/*.html doc/*.css - - if use elibc_musl; then - QA_CONFIG_IMPL_DECL_SKIP=( getprotobynumber_r ) - fi -} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/socat/socat-1.8.1.0.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/socat/socat-1.8.1.0.ebuild deleted file mode 100644 index 7918fe323ec..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/socat/socat-1.8.1.0.ebuild +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit edo flag-o-matic toolchain-funcs - -MY_P=${P/_beta/-b} -DESCRIPTION="Multipurpose relay (SOcket CAT)" -HOMEPAGE="http://www.dest-unreach.org/socat/ https://repo.or.cz/socat.git" -SRC_URI="http://www.dest-unreach.org/socat/download/${MY_P}.tar.bz2" -S="${WORKDIR}/${MY_P}" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" -IUSE="ipv6 readline ssl tcpd" -# bug #946404 (and many others), whack-a-mole with timeouts and friends -# Try again in the future. -RESTRICT="test" - -DEPEND=" - ssl? ( >=dev-libs/openssl-3:= ) - readline? ( sys-libs/readline:= ) - tcpd? ( sys-apps/tcp-wrappers ) -" -RDEPEND="${DEPEND}" - -DOCS=( BUGREPORTS CHANGES DEVELOPMENT EXAMPLES FAQ FILES PORTING README SECURITY ) - -PATCHES=( "${FILESDIR}"/${PN}-1.8.1.0-const.patch ) - -src_configure() { - # bug #293324 - filter-flags '-Wno-error*' - - tc-export AR - - local myeconfargs=( - $(use_enable ssl openssl) - $(use_enable readline) - $(use_enable ipv6 ip6) - $(use_enable tcpd libwrap) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - # Most tests are skipped because they need network access or a TTY - # Some are for /dev permissions probing (bug #940740) - # 518 519 need extra permissions - edo ./test.sh -v --expect-fail 13,15,87,217,311,313,370,388,410,466,478,518,519,528 -} - -src_install() { - default - - docinto html - dodoc doc/*.html doc/*.css - - if use elibc_musl; then - QA_CONFIG_IMPL_DECL_SKIP=( getprotobynumber_r ) - fi -} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/wget/files/wget-1.25.0-openssl-4.patch b/sdk_container/src/third_party/portage-stable/net-misc/wget/files/wget-1.25.0-openssl-4.patch new file mode 100644 index 00000000000..6fa8474ee96 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/wget/files/wget-1.25.0-openssl-4.patch @@ -0,0 +1,14 @@ +https://bugs.gentoo.org/973056 +https://savannah.gnu.org/bugs/index.php?68265 +--- a/src/openssl.c ++++ b/src/openssl.c +@@ -226,7 +226,7 @@ + break; + + case secure_protocol_sslv3: +-#ifndef OPENSSL_NO_SSL3_METHOD ++#if !defined OPENSSL_NO_SSL3_METHOD && OPENSSL_VERSION_NUMBER < 0x40000000L + meth = SSLv3_client_method (); + #endif + break; + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/wget/metadata.xml b/sdk_container/src/third_party/portage-stable/net-misc/wget/metadata.xml index bc5cb81f483..e9c33acfd5b 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/wget/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/net-misc/wget/metadata.xml @@ -15,5 +15,6 @@ cpe:/a:gnu:wget gnuwget/wget + wget diff --git a/sdk_container/src/third_party/portage-stable/net-misc/wget/wget-1.25.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/wget/wget-1.25.0-r1.ebuild index feeac90da95..db82c2b4a22 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/wget/wget-1.25.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/wget/wget-1.25.0-r1.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{11..14} ) VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/wget.asc inherit flag-o-matic python-any-r1 toolchain-funcs unpacker verify-sig @@ -16,29 +16,33 @@ LICENSE="GPL-3+" SLOT="0" KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="cookie-check debug gnutls idn libproxy metalink nls ntlm pcre +ssl static test uuid zlib" -REQUIRED_USE="ntlm? ( !gnutls ssl ) gnutls? ( ssl )" +REQUIRED_USE=" + ntlm? ( !gnutls ssl ) + gnutls? ( ssl ) + static? ( !libproxy ) +" RESTRICT="!test? ( test )" # * Force a newer libidn2 to avoid libunistring deps. #bug #612498 # * Metalink can use gpgme automagically (so let's always depend on it) # for signed metalink resources. LIB_DEPEND=" - cookie-check? ( net-libs/libpsl ) - idn? ( >=net-dns/libidn2-0.14:=[static-libs(+)] ) + cookie-check? ( net-libs/libpsl[static-libs(-)] ) + idn? ( >=net-dns/libidn2-0.14:=[static-libs(-)] ) libproxy? ( net-libs/libproxy ) metalink? ( - app-crypt/gpgme:= - media-libs/libmetalink + app-crypt/gpgme:=[static-libs(-)] + media-libs/libmetalink[static-libs(-)] ) - pcre? ( dev-libs/libpcre2[static-libs(+)] ) + pcre? ( dev-libs/libpcre2[static-libs(-)] ) ssl? ( - gnutls? ( net-libs/gnutls:=[static-libs(+)] ) - !gnutls? ( dev-libs/openssl:=[static-libs(+)] ) + gnutls? ( net-libs/gnutls:=[static-libs(-)] ) + !gnutls? ( dev-libs/openssl:=[static-libs(-)] ) ) - uuid? ( sys-apps/util-linux[static-libs(+)] ) - zlib? ( virtual/zlib:=[static-libs(+)] ) + uuid? ( sys-apps/util-linux[static-libs(-)] ) + zlib? ( virtual/zlib:=[static-libs(-)] ) " -RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )" +RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(-)]} )" DEPEND=" ${RDEPEND} static? ( ${LIB_DEPEND} ) diff --git a/sdk_container/src/third_party/portage-stable/net-misc/wget/wget-1.25.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/wget/wget-1.25.0-r2.ebuild new file mode 100644 index 00000000000..66c01bcec79 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/wget/wget-1.25.0-r2.ebuild @@ -0,0 +1,129 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/wget.asc +inherit flag-o-matic python-any-r1 toolchain-funcs unpacker verify-sig + +DESCRIPTION="Network utility to retrieve files from the WWW" +HOMEPAGE="https://www.gnu.org/software/wget/" +SRC_URI="mirror://gnu/wget/${P}.tar.lz" +SRC_URI+=" verify-sig? ( mirror://gnu/wget/${P}.tar.lz.sig )" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="cookie-check debug gnutls idn libproxy metalink nls ntlm pcre +ssl static test uuid zlib" +REQUIRED_USE=" + ntlm? ( !gnutls ssl ) + gnutls? ( ssl ) + static? ( !libproxy ) +" +RESTRICT="!test? ( test )" + +# * Force a newer libidn2 to avoid libunistring deps. #bug #612498 +# * Metalink can use gpgme automagically (so let's always depend on it) +# for signed metalink resources. +LIB_DEPEND=" + cookie-check? ( net-libs/libpsl[static-libs(-)] ) + idn? ( >=net-dns/libidn2-0.14:=[static-libs(-)] ) + libproxy? ( net-libs/libproxy ) + metalink? ( + app-crypt/gpgme:=[static-libs(-)] + media-libs/libmetalink[static-libs(-)] + ) + pcre? ( dev-libs/libpcre2[static-libs(-)] ) + ssl? ( + gnutls? ( net-libs/gnutls:=[static-libs(-)] ) + !gnutls? ( dev-libs/openssl:=[static-libs(-)] ) + ) + uuid? ( sys-apps/util-linux[static-libs(-)] ) + zlib? ( virtual/zlib:=[static-libs(-)] ) +" +RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(-)]} )" +DEPEND=" + ${RDEPEND} + static? ( ${LIB_DEPEND} ) +" +BDEPEND=" + $(unpacker_src_uri_depends) + app-arch/xz-utils + dev-lang/perl + sys-apps/texinfo + virtual/pkgconfig + nls? ( sys-devel/gettext ) + test? ( + ${PYTHON_DEPS} + >=dev-perl/HTTP-Daemon-6.60.0 + dev-perl/HTTP-Message + dev-perl/IO-Socket-SSL + ) + verify-sig? ( >=sec-keys/openpgp-keys-wget-20241111 ) +" + +DOCS=( AUTHORS MAILING-LIST NEWS README ) + +# gnulib FPs +QA_CONFIG_IMPL_DECL_SKIP=( unreachable MIN alignof static_assert fpurge ) + +PATCHES=( + "${FILESDIR}"/${PN}-1.25.0-openssl-4.patch +) + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +src_unpack() { + use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${P}.tar.lz{,.sig} + unpacker ${P}.tar.lz +} + +src_prepare() { + default + sed -i -e "s:/usr/local/etc:${EPREFIX}/etc:g" doc/{sample.wgetrc,wget.texi} || die +} + +src_configure() { + # fix compilation on Solaris, we need filio.h for FIONBIO as used in + # the included gnutls -- force ioctl.h to include this header + [[ ${CHOST} == *-solaris* ]] && append-cppflags -DBSD_COMP=1 + + if use static ; then + append-ldflags -static + tc-export PKG_CONFIG + PKG_CONFIG+=" --static" + fi + + # There is no flag that controls this. libunistring-prefix only + # controls the search path (which is why we turn it off below). + # Further, libunistring is only needed w/older libidn2 installs, + # and since we force the latest, we can force off libunistring. # bug #612498 + local myeconfargs=( + ac_cv_libunistring=no + --disable-assert + --disable-pcre + --disable-rpath + --without-included-libunistring + --without-libunistring-prefix + --enable-ipv6 + $(use_enable debug) + $(use_enable idn iri) + $(use_enable nls) + $(use_enable ntlm) + $(use_enable pcre pcre2) + $(use_enable ssl digest) + $(use_enable ssl opie) + $(use_with cookie-check libpsl) + $(use_enable idn iri) + $(use_enable libproxy) + $(use_with metalink) + $(use_with ssl ssl $(usex gnutls gnutls openssl)) + $(use_with uuid libuuid) + $(use_with zlib) + ) + + econf "${myeconfargs[@]}" +} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/whois/whois-5.6.6.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/whois/whois-5.6.6.ebuild index cae7e5ec96c..577b22425ee 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/whois/whois-5.6.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/whois/whois-5.6.6.ebuild @@ -13,7 +13,7 @@ if [[ ${PV} == *9999 ]] ; then EGIT_REPO_URI="https://github.com/rfc1036/whois.git" else SRC_URI="https://github.com/rfc1036/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - 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 LICENSE="GPL-2" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/make.defaults index 3cfe6ae896a..e0f02f0719a 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/make.defaults @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 ARCH="alpha" @@ -27,3 +27,7 @@ VIDEO_CARDS="fbdev mga r128 radeon" # Enable USE=libtirpc by default, to ease dependency resolution during # the stabilization of glibc-2.26. Bug 657148 USE="libtirpc" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="alpha" 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 1315e8fccb5..4ae0f2ebe35 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,18 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Pacho Ramos (2026-05-09) +# appstream not keyworded +app-misc/media-player-info test + +# Alfred Wingate (2026-05-03) +# dev-libs/libthai not keyworded here +x11-libs/pango libthai + +# Sam James (2026-04-11) +# Unkeyworded dependencies +sys-libs/libcap-ng bpf + # Robin H. Johnson (2026-03-22) # sys-block/vdo not keyworded here sys-fs/lvm2 vdo @@ -585,10 +597,6 @@ media-sound/rhythmbox upnp-av # Missing keywords >=media-plugins/grilo-plugins-0.2.14 upnp-av -# Davide Pesavento (2015-10-26) -# Tests require non-keyworded qt5 -dev-qt/qtchooser test - # Alexandre Rostovtsev (2015-09-10) # Requires wifi USE flag, which is masked for this arch net-misc/networkmanager wext diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/make.defaults index d536bfdedd6..b0c6697241b 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/make.defaults @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 ARCH="amd64" @@ -63,3 +63,7 @@ IUSE_IMPLICIT="abi_x86_64" # Enable USE=libtirpc by default, to ease dependency resolution during # the stabilization of glibc-2.26. Bug 657148 USE="libtirpc" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="x86_64" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use index e5d4503a608..5ee5086b76f 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Matt Whitlock (2024-11-06) @@ -44,7 +44,3 @@ llvm-core/llvm llvm_targets_AMDGPU llvm_targets_NVPTX llvm-core/lld llvm_targets_AMDGPU llvm_targets_NVPTX llvm-core/flang llvm_targets_AMDGPU llvm_targets_NVPTX llvm-core/lldb llvm_targets_AMDGPU llvm_targets_NVPTX - -# Doug Goldstein (2012-10-29) -# Enable the native arch as the default qemu target -app-emulation/qemu qemu_softmmu_targets_x86_64 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 dbe13416648..76c5c0295ef 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,10 @@ #--- END OF EXAMPLES --- +# Alfredo Tupone (2026-05-18) +# Unmask on specific arches where it's available. +media-video/obs-studio -mpegts + # Michał Górny (2026-03-14) # SPIRV target requires dev-libs/level-zero. llvm-runtimes/offload -llvm_targets_SPIRV diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.stable.mask index 0e7577bfc46..49e0c7e109f 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.stable.mask @@ -39,6 +39,7 @@ media-sound/liblc3 -test # Ionen Wolkens (2025-03-10) # dev-util/nvidia-cuda-toolkit may never be stabilized media-libs/osl clang-cuda +media-gfx/blender optix # Sam James (2025-02-13) # sys-cluster/corosync is marked stable here 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 16ae7fa2023..d303a073725 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 +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Alfredo Tupone (2026-04-23) +# Requires qtwebengine +sci-visualization/xyscan + # Mario Haustein (2025-10-06) # Requires qtwebengine media-radio/qlog @@ -74,6 +78,9 @@ dev-python/jupyter dev-python/vpython dev-python/widgetsnbextension dev-python/ipywidgets +dev-python/metakernel +dev-python/octave-kernel +dev-python/oct2py sci-physics/root sci-physics/geant4_vmc sci-physics/vmc @@ -176,9 +183,10 @@ net-analyzer/gvm dev-libs/amdgpu-pro-opencl # Thomas Deutschmann (2018-10-23) -# requires net-libs/nodejs +# requires net-libs/nodejs. Extend to firefox/thunderbird-l10n >=www-client/firefox-63.0 >=mail-client/thunderbird-68.0 +www-client/firefox-l10n # Patrick McLean (2018-07-12) # requires nodejs diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.use.mask index af585be54b3..4d0ff59418d 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.use.mask @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Paul Zander (2025-09-11) @@ -19,7 +19,7 @@ dev-libs/libpcre2 jit dev-lang/php jit mail-filter/rspamd jit net-proxy/haproxy pcre-jit -www-servers/varnish jit +www-servers/vinyl-cache jit www-apache/mod_security jit # Andreas Sturmlechner (2024-03-24) @@ -34,10 +34,10 @@ dev-lang/dafny test # depends on dev-python/notebook which depends on nodejs dev-python/ipython notebook dev-python/iminuit test +dev-python/matplotlib-inline test dev-python/nbdime test dev-python/nbclient test dev-python/nbconvert test -dev-python/qiskit visualization sci-mathematics/cadabra jupyter sci-mathematics/yacas jupyter sci-physics/hepmc root @@ -71,6 +71,7 @@ kde-apps/kleopatra pim kde-apps/umbrello php kde-misc/kio-gdrive share kde-plasma/plasma-nm openconnect +net-irc/quassel urlpreview net-misc/seafile-client shibboleth # Patrick McLean (2020-02-05) @@ -104,4 +105,3 @@ dev-python/qtpy test # Davide Pesavento (2011-11-30) # The QML (V4) and JSC JITs do not work on x32 (bug #932192). dev-qt/qtdeclarative jit -dev-qt/qtscript jit diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/arm/armv4/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/arm/armv4/package.use.mask index 0b904ae2b83..c4e00e26a33 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm/armv4/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm/armv4/package.use.mask @@ -6,5 +6,5 @@ dev-libs/libpcre2 jit dev-lang/php jit net-proxy/haproxy pcre-jit -www-servers/varnish jit +www-servers/vinyl-cache jit www-apache/mod_security jit diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/arm/armv4t/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/arm/armv4t/package.use.mask index 0b904ae2b83..c4e00e26a33 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm/armv4t/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm/armv4t/package.use.mask @@ -6,5 +6,5 @@ dev-libs/libpcre2 jit dev-lang/php jit net-proxy/haproxy pcre-jit -www-servers/varnish jit +www-servers/vinyl-cache jit www-apache/mod_security jit diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/arm/armv5te/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/arm/armv5te/package.use.mask index 0b904ae2b83..c4e00e26a33 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm/armv5te/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm/armv5te/package.use.mask @@ -6,5 +6,5 @@ dev-libs/libpcre2 jit dev-lang/php jit net-proxy/haproxy pcre-jit -www-servers/varnish jit +www-servers/vinyl-cache jit www-apache/mod_security jit diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/arm/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/arm/make.defaults index a701cf86fa5..8b8063703da 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm/make.defaults @@ -1,4 +1,4 @@ -# Copyright 2008-2025 Gentoo Authors +# Copyright 2008-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Main ARM profile @@ -25,3 +25,7 @@ VIDEO_CARDS="exynos fbdev omap" # Michał Górny (2017-03-14) # Unhide the ARM-specific USE_EXPANDs. USE_EXPAND_HIDDEN="-CPU_FLAGS_ARM" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="arm" 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 63cff771840..8c5f5052ae8 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.mask @@ -1,6 +1,14 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Alfred Wingate (2026-05-13) +# dev-qt/qtgraphs:6 is not keyworded here +dev-python/pyside graphs + +# Brett A C Sheffield (2026-04-22) +# virtual/pandoc is not keyworded here +>=dev-libs/xmlsec-1.3.11 doc + # Robin H. Johnson (2026-03-22) # sys-block/vdo not keyworded here sys-fs/lvm2 vdo @@ -91,8 +99,9 @@ dev-ml/labltk ocamlopt mail-mta/sendmail tinycdb # Andreas Sturmlechner (2025-04-02) -# Needs kde-frameworks/breeze-icons which is not keyworded here. -net-irc/quassel system-icons +# spell: kde-frameworks/sonnet is not keyworded here +# system-icons: kde-frameworks/breeze-icons is not keyworded here +net-irc/quassel spell system-icons # NRK (2025-03-17) # media-libs/libyuv is not keyworded @@ -225,6 +234,7 @@ dev-lang/idris2 test-full dev-python/cloudscraper test dev-python/qtpy test games-util/lgogdownloader gui +net-irc/quassel urlpreview net-misc/seafile-client shibboleth # Florian Schmaus (2022-11-23) @@ -587,7 +597,6 @@ net-vpn/tinc vde # The QML (V4) and JSC JITs are supported only on amd64/arm/x86, # so the flag is masked in the base profile and unmasked here. dev-qt/qtdeclarative -jit -dev-qt/qtscript -jit # missing keywords media-plugins/gst-plugins-meta aac dts dv lame libvisual modplug vcd wavpack 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 dff5021d0bc..9e7ba85c159 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 @@ -1,6 +1,12 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Ionen Wolkens (2026-04-16) +# media-libs/opencolorio is not stable here and has many dependencies. +# Not overly worth extra stabilizations over new still scarcely used +# colour filters. Can revisit if someone wants this. +media-video/ffmpeg opencolorio + # Matt Turner (2025-11-24) # spirv-llvm-translator < 20 is not stable here. dev-util/mesa_clc llvm_slot_18 llvm_slot_19 diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/make.defaults index 2bf1c06cab6..713c820f60c 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/make.defaults @@ -1,4 +1,4 @@ -# Copyright 2014-2025 Gentoo Authors +# Copyright 2014-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Main ARM64 (AArch64/ARMv8) profile; endian independent. @@ -28,3 +28,7 @@ USE="libtirpc" # Michał Górny (2017-03-14) # Unhide the ARM-specific USE_EXPANDs. USE_EXPAND_HIDDEN="-CPU_FLAGS_ARM" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="aarch64" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use b/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use index 891c261d8e3..aa0b6f66fc0 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use @@ -19,7 +19,3 @@ media-tv/kodi soc media-video/ffmpeg soc media-video/ffmpeg-compat soc media-video/mpv soc - -# Alexis Ballier (2017-07-10) -# Enable the native arch as the default qemu target -app-emulation/qemu qemu_softmmu_targets_aarch64 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 7868812fa94..1ee618fc750 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,10 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Alfred Wingate (2026-05-13) +# dev-qt/qtgraphs:6 is not keyworded here +dev-python/pyside graphs + # Robin H. Johnson (2026-03-22) # sys-block/vdo not keyworded here sys-fs/lvm2 vdo diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.stable.mask index b44cb4c06b5..62f104812c0 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.stable.mask @@ -1,6 +1,12 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Ionen Wolkens (2026-04-16) +# media-libs/opencolorio is not stable here and has many dependencies. +# Not overly worth extra stabilizations over new still scarcely used +# colour filters. Can revisit if someone wants this. +media-video/ffmpeg opencolorio + # Sam James (2025-11-30) # sci-libs/blis does not have stable keywords sci-libs/flexiblas blis diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/make.defaults index 71d1e3f0688..7e7426502ec 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/make.defaults @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 ARCH="hppa" @@ -22,3 +22,7 @@ CHOST_hppa="${CHOST}" # Donnie Berkholz (2006-08-18) # Defaults for video drivers VIDEO_CARDS="fbdev" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="hppa" 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 955bc0e608d..d9bf1a8a167 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,22 @@ # NOTE: When masking a USE flag due to missing keywords, please file a keyword # request bug for the hppa arch. +# Pacho Ramos (2026-05-09) +# appstream not keyworded +app-misc/media-player-info test + +# Alfred Wingate (2026-05-03) +# dev-libs/libthai not keyworded here +x11-libs/pango libthai + +# Sam James (2026-04-28) +# dev-cpp/cpp-httplib doesn't support 32-bit arches +dev-util/ccache http + +# Sam James (2026-04-11) +# Unkeyworded dependencies +sys-libs/libcap-ng bpf + # Robin H. Johnson (2026-03-22) # sys-block/vdo not keyworded here sys-fs/lvm2 vdo @@ -314,7 +330,7 @@ media-video/pipewire bluetooth jack-client sys-libs/libcap tools # Michał Górny (2021-07-25) -# PyQt5 and wxpython are not keyworded. +# PyQt6 and wxpython are not keyworded. dev-python/ipython gui dev-python/matplotlib qt6 wxwidgets diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/loong/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/loong/make.defaults index 172292294e6..ef5f0bf535a 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/loong/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/loong/make.defaults @@ -1,4 +1,4 @@ -# Copyright 2022-2025 Gentoo Authors +# Copyright 2022-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Main LoongArch profile directory. Common settings for all loong profiles. @@ -44,3 +44,7 @@ FEATURES="-pid-sandbox -network-sandbox -ipc-sandbox" # ABI # DEFAULT_ABI # MULTILIB_ABIS + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="loongarch64" 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 606910fa961..e8cf38cabda 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,22 @@ # Copyright 2022-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Alfred Wingate (2026-05-13) +# dev-qt/qtgraphs:6 is not keyworded here +dev-python/pyside graphs + +# Pacho Ramos (2026-05-09) +# media-plugins/gst-plugin-gtk4 is not keyworded +>=net-im/gajim-2.3 voice + +# Alfred Wingate (2026-05-03) +# dev-libs/libthai not keyworded here +x11-libs/pango libthai + +# Cristian Othón Martínez Vera (2026-03-22) +# app-pda/usbmuxd is not keyworded here +gnome-base/gvfs ios + # Robin H. Johnson (2026-03-22) # sys-block/vdo not keyworded here sys-fs/lvm2 vdo @@ -109,6 +125,7 @@ dev-db/mariadb -galera # WANG Xuerui (2025-01-06) # 2 test cases abort with "LLVM ERROR: Relocation type not implemented yet!" +dev-python/symengine llvm sci-libs/symengine llvm # WANG Xuerui (2025-01-06) diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/m68k/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/m68k/make.defaults index 60d65722cef..a5a548660b7 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/m68k/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/m68k/make.defaults @@ -1,4 +1,4 @@ -# Copyright 1999-2026 Gentoo Foundation +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 ARCH="m68k" @@ -18,3 +18,7 @@ DEFAULT_ABI="m68k" MULTILIB_ABIS="m68k" LIBDIR_m68k="lib" CHOST_m68k="${CHOST}" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="m68k" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/m68k/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/m68k/package.use.mask index cce7ce0c832..58963e7376a 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/m68k/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/m68k/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Sam James (2026-04-28) +# dev-cpp/cpp-httplib doesn't support 32-bit arches +dev-util/ccache http + # Robin H. Johnson (2026-03-22) # sys-block/vdo not keyworded here sys-fs/lvm2 vdo diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/mips/mips64/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/mips64/make.defaults index 8a8e5211354..b0f1b2e5afe 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/mips/mips64/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/mips64/make.defaults @@ -1,6 +1,10 @@ -# Copyright 2010-2021 Gentoo Authors +# Copyright 2010-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 PROFILE_ARCH="mips64" CHOST="mips64-unknown-linux-gnu" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="mips64" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/mips/mipsel/mips64el/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/mipsel/mips64el/make.defaults index 07061b35849..60a368cfe35 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/mips/mipsel/mips64el/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/mipsel/mips64el/make.defaults @@ -1,4 +1,4 @@ -# Copyright 2010-2021 Gentoo Authors +# Copyright 2010-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 PROFILE_ARCH="mips64el" @@ -6,3 +6,7 @@ PROFILE_ARCH="mips64el" CHOST="mips64el-unknown-linux-gnu" IUSE_IMPLICIT="-abi_mips_o32" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="mips64el" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/mips/mipsel/o32/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/mipsel/o32/make.defaults index 995ceab6b59..69ae5478fc2 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/mips/mipsel/o32/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/mipsel/o32/make.defaults @@ -1,4 +1,4 @@ -# Copyright 2014-2021 Gentoo Authors +# Copyright 2014-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 PROFILE_ARCH="mipsel" @@ -12,3 +12,7 @@ MULTILIB_ABIS="o32" ABI_MIPS="o32" IUSE_IMPLICIT="abi_mips_o32" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="mipsel" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/mips/mipsel/o32/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/mipsel/o32/package.use.mask new file mode 100644 index 00000000000..b24218e65a6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/mipsel/o32/package.use.mask @@ -0,0 +1,6 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Sam James (2026-04-28) +# dev-cpp/cpp-httplib doesn't support 32-bit arches +dev-util/ccache http diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/mips/o32/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/o32/make.defaults index 7dae236e955..ad19aa41d31 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/mips/o32/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/o32/make.defaults @@ -1,4 +1,4 @@ -# Copyright 2014-2021 Gentoo Authors +# Copyright 2014-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 PROFILE_ARCH="mips" @@ -12,3 +12,7 @@ MULTILIB_ABIS="o32" ABI_MIPS="o32" IUSE_IMPLICIT="abi_mips_o32" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="mips" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/mips/o32/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/o32/package.use.mask new file mode 100644 index 00000000000..b24218e65a6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/o32/package.use.mask @@ -0,0 +1,6 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Sam James (2026-04-28) +# dev-cpp/cpp-httplib doesn't support 32-bit arches +dev-util/ccache http 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 fcd74da5d57..cdb83e7b248 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,18 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Pacho Ramos (2026-05-09) +# appstream not keyworded +app-misc/media-player-info test + +# Alfred Wingate (2026-05-03) +# dev-libs/libthai not keyworded here +x11-libs/pango libthai + +# Sam James (2026-04-11) +# Unkeyworded dependencies +sys-libs/libcap-ng bpf + # Robin H. Johnson (2026-03-22) # sys-block/vdo not keyworded here sys-fs/lvm2 vdo @@ -473,10 +485,6 @@ dev-python/twisted conch http2 test # net-libs/libnetfilter_conntrack is not keyworded on mips net-dns/dnsmasq conntrack -# Davide Pesavento (2015-10-26) -# Tests require non-keyworded qt5 -dev-qt/qtchooser test - # Mike Frysinger (2015-09-10) # Requires matplotlib which requires a bit more. dev-python/numpydoc test diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/make.defaults index 13092cf1ed3..69b58c6bba7 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/make.defaults @@ -1,4 +1,4 @@ -# Copyright 2019-2025 Gentoo Authors +# Copyright 2019-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # All extra USE/etc should be specified in sub-profiles. @@ -7,3 +7,7 @@ # Georgy Yakovlev (2019-08-30) # Unhide PPC specific USE_EXPANDs. USE_EXPAND_HIDDEN="-CPU_FLAGS_PPC" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="ppc" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use index d4e9292c310..37e007b5d79 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use @@ -1,10 +1,6 @@ -# Copyright 1999-2012 Gentoo Foundation +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Luca Barbato (2018-08-12) # Default to PowerPC OpenFirmware sys-boot/grub:2 grub_platforms_ieee1275 - -# Doug Goldstein (2012-10-29) -# Enable the native arch as the default qemu target -app-emulation/qemu qemu_softmmu_targets_ppc 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 cebef5a8b2c..cd7fc3e3ce5 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,14 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Alfred Wingate (2026-05-13) +# dev-qt/qtgraphs:6 is not keyworded here +dev-python/pyside graphs + +# Alfred Wingate (2026-05-03) +# dev-libs/libthai not keyworded here +x11-libs/pango libthai + # Robin H. Johnson (2026-03-22) # sys-block/vdo not keyworded here sys-fs/lvm2 vdo diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.force b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.force new file mode 100644 index 00000000000..f0235244f1f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.force @@ -0,0 +1,8 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Sam James (2026-04-05) +# openblas[-cpudetection] runs a program during the build w/ cpuid to +# determine TARGET which doesn't align with what we expect in a mismatched +# bitness chroot. See bug #925114 and bug #968113. +sci-libs/openblas cpudetection diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.mask index a5dc0d75c81..cb5f037bc6c 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Sam James (2026-04-28) +# dev-cpp/cpp-httplib doesn't support 32-bit arches +dev-util/ccache http + # Andreas Sturmlechner (2026-03-21) # Needs as-yet-unkeyworded KF6 (bug #934215) >media-video/vlc-3.9999 gui skins @@ -9,18 +13,13 @@ # media-libs/opencolorio is not keyworded here media-video/ffmpeg opencolorio -# Mike Gilbert (2026-03-15) -# net-misc/freerdp is missing ppc keyword. -net-analyzer/hydra rdp - # Sam James (2025-08-29) # net-misc/passt not yet keyworded here app-emulation/qemu passt # Andreas Sturmlechner (2025-07-31) -# dev-python/pyqt5, dev-python/pyqt6 are not stable. +# dev-python/pyqt6 is not stable. dev-python/matplotlib qt6 test -net-print/hplip qt5 # Hans de Graaff (2025-06-29) # Requires large parts of dev-ruby/rails to be keyworded. @@ -30,7 +29,7 @@ dev-ruby/minitest-hooks test # Sam James (2025-05-16) # gpio: dev-libs/libgpiod not keyworded here # modbus: dev-libs/libmodbus not keyworded here -# monitor: dev-python/pyqt5 not keyworded here +# monitor: dev-python/pyqt6 not keyworded here sys-power/nut gpio modbus monitor # Sam James (2025-02-21) @@ -101,6 +100,7 @@ sys-libs/libnvme keyutils # Michał Górny (2023-10-15) # Need dev-python/notebook (that indirectly requires net-libs/nodejs). dev-python/ipython notebook +dev-python/matplotlib-inline test dev-python/nbclient test dev-python/nbconvert test @@ -150,11 +150,6 @@ dev-util/diffoscope opendocument pascal pdf R # Fails to compile because of size, bug #829602. llvm-core/clang extra -# Nowa Ammerlaan (2022-09-23) -# The corresponding Qt5 modules are not keyworded on ppc, and we don't want to -# keyword them solely because of PyQt5 while there are no other in-tree users. -dev-python/pyqt5 speech - # Arthur Zamarin (2022-08-15) # deps not keyworded dev-util/pkgcheck emacs diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.stable.mask index 9bc348523c2..a41ae7ecec6 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.stable.mask @@ -17,6 +17,10 @@ #--- END OF EXAMPLES --- +# Ian Jordan (2026-04-08) +# Requires app-emulation/qemu which does not have stable keywords. +sys-kernel/gentoo-kernel test + # Andreas Sturmlechner (2025-08-29) # dev-perl/Template-GD is not stable here. Bug #962143 dev-perl/Template-Toolkit gd diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/package.use.mask index 4c156bd55b7..d0171379986 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/package.use.mask @@ -1,4 +1,4 @@ -# Copyright 2019-2026 Gentoo Authors +# Copyright 2019-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Ionen Wolkens (2026-03-16) @@ -13,6 +13,11 @@ media-video/ffmpeg -opencolorio # Doesn't work on ppc64, #871921 sci-mathematics/gmp-ecm custom-tune +# Michał Górny (2021-12-31) +# Don't apply stable masks to python-exec since we're forcing every +# impl there anyway. Please keep this in sync with use.stable.mask. +dev-lang/python-exec -python_targets_pypy3_11 + # Georgy Yakovlev (2021-06-02) # altivec code is big-endian only, #773100 media-libs/libdvbcsa cpu_flags_ppc_altivec diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/package.use.stable.mask index 8c1c7745126..e46a855244d 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/package.use.stable.mask @@ -1,6 +1,12 @@ # Copyright 2019-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Ionen Wolkens (2026-04-16) +# media-libs/opencolorio is not stable here and has many dependencies. +# Not overly worth extra stabilizations over new still scarcely used +# colour filters. Can revisit if someone wants this. +media-video/ffmpeg opencolorio + # Georgy Yakovlev (2021-05-07) # openjfx:8 will never be stabilized # openjfx:11 probably will neither diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/use.mask index 5199ed2b972..2b94493dde3 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/use.mask @@ -1,4 +1,4 @@ -# Copyright 1999-2026 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Paul Zander (2024-03-29) @@ -8,6 +8,11 @@ -openimageio -osl +# Michał Górny (2021-12-31) +# PyPy3 is keyworded here. +-python_targets_pypy3_11 +-python_single_target_pypy3_11 + # Sam James (2021-10-16) # media-libs/openexr doesn't work on BE, but should on LE. # ...and openscenegraph needs openexr. diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/use.stable.mask index fd05b87fb18..80c74af5629 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/use.stable.mask @@ -1,6 +1,11 @@ -# Copyright 2019-2026 Gentoo Authors +# Copyright 2019-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Michał Górny (2021-12-31) +# PyPy3 target is not ready for stable. +python_targets_pypy3_11 +python_single_target_pypy3_11 + # Sam James (2021-11-14) # media-libs/openexr is not marked stable on ppc64 # (it's broken on BE and it's more convenient to keep it at ~arch here for now) diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64ul/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64ul/package.use.mask index da465285276..3d7620ef256 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64ul/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64ul/package.use.mask @@ -1,4 +1,4 @@ -# Copyright 1999-2026 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Joonas Niilola (2023-08-24) @@ -10,6 +10,11 @@ www-client/firefox hwaccel # dev-python/networkx is keyworded here app-portage/nattka -depgraph-order +# Michał Górny (2021-12-31) +# Don't apply stable masks to python-exec since we're forcing every +# impl there anyway. Please keep this in sync with use.stable.mask. +dev-lang/python-exec -python_targets_pypy3_11 + # Georgy Yakovlev (2021-07-27) # deps not keyworded media-gfx/gnome-photos upnp-av diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64ul/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64ul/use.mask index 0ce4dc7432b..b405a2be3be 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64ul/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64ul/use.mask @@ -1,6 +1,11 @@ -# Copyright 1999-2026 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Michał Górny (2021-12-31) +# PyPy3 is keyworded here. +-python_targets_pypy3_11 +-python_single_target_pypy3_11 + # Georgy Yakovlev (2020-06-03) # clang is keyworded and works on ppc64 -clang diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64ul/use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64ul/use.stable.mask index b94ace14de8..eb000ce9a1f 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64ul/use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64ul/use.stable.mask @@ -1,6 +1,11 @@ -# Copyright 1999-2026 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Michał Górny (2021-12-31) +# PyPy3 target is not ready for stable. +python_targets_pypy3_11 +python_single_target_pypy3_11 + # Georgy Yakovlev (2020-01-26) # media-plugins/frei0r-plugins not stable yet frei0r diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/make.defaults index ecba322484a..3e51d8069ee 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/make.defaults @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # All extra USE/etc should be specified in sub-profiles. @@ -39,3 +39,7 @@ VIDEO_CARDS="fbdev mga r128 radeon" # Enable abi_ppc_64 for packages that don't have it forced. ABI_PPC="64" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="ppc64" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use deleted file mode 100644 index d7e7cc95282..00000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use +++ /dev/null @@ -1,6 +0,0 @@ -# Copyright 1999-2012 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# Doug Goldstein (2012-10-29) -# Enable the native arch as the default qemu target -app-emulation/qemu qemu_softmmu_targets_ppc64 diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use.mask index afcb240140e..bf62386fe5e 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use.mask @@ -1,6 +1,14 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Andreas Sturmlechner (2026-05-10) +# dev-qt/qtwebengine not available here +net-irc/quassel urlpreview + +# Brett A C Sheffield (2026-04-22) +# virtual/pandoc is not keyworded here +>=dev-libs/xmlsec-1.3.11 doc + # Ionen Wolkens (2026-03-16) # media-libs/opencolorio is masked on ppc64(be) media-video/ffmpeg opencolorio @@ -110,6 +118,7 @@ media-video/pipewire -echo-cancel # Sam James (2022-10-13) # Causes segfaults, bug #871921 +dev-python/symengine tcmalloc sci-libs/symengine tcmalloc # Georgy Yakovlev (2022-09-29) @@ -117,6 +126,11 @@ sci-libs/symengine tcmalloc # https://github.com/rustsec/rustsec/issues/707 dev-util/cargo-audit fix +# Michał Górny (2021-12-31) +# Don't apply stable masks to python-exec since we're forcing every +# impl there anyway. Please keep this in sync with use.stable.mask. +dev-lang/python-exec -python_targets_pypy3_11 + # Marek Szuba (2021-07-18) # media-plugins/zam-plugins not keyworded here media-sound/easyeffects zamaudio diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/use.mask index c349f77b94d..8aff9be942b 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/use.mask @@ -1,4 +1,4 @@ -# Copyright 2008-2026 Gentoo Authors +# Copyright 2008-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 ### THIS FILE IS ONLY FOR PACKAGES MASKED ON BOTH 64-BIT AND 32-BIT USERLAND!!! @@ -11,6 +11,11 @@ embree openimageio osl +# Michał Górny (2021-12-31) +# PyPy3 is keyworded here. +-python_targets_pypy3_11 +-python_single_target_pypy3_11 + # Sam James (2021-10-16) # media-libs/openexr doesn't work on BE (bug #818424) # ...and openscenegraph needs openexr. diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/use.stable.mask index d505fbefd46..1e7699edcda 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/use.stable.mask @@ -1,4 +1,4 @@ -# Copyright 1999-2026 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # New entries go on top. @@ -8,6 +8,11 @@ # dev-lang/php:8.2 is not marked stable here yet (bug #920701) php_targets_php8-2 +# Michał Górny (2021-12-31) +# PyPy3 target is not ready for stable. +python_targets_pypy3_11 +python_single_target_pypy3_11 + # Sam James (2021-11-14) # media-libs/openexr is not marked stable on ppc64 # (it's broken on BE and it's more convenient to keep it at ~arch here for now) 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 2222fb66b14..4ee5232efc4 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-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Brett A C Sheffield (2026-04-22) +# virtual/pandoc is not keyworded here +>=dev-libs/xmlsec-1.3.11 doc + # Robin H. Johnson (2026-03-22) # sys-block/vdo not keyworded here sys-fs/lvm2 vdo @@ -13,13 +17,6 @@ app-office/texstudio qtermwidget # Requires sys-auth/libyubikey net-dialup/freeradius yubikey -# Eli Schwartz (2025-12-09) -# libyuv is Google code, fails on "fringe" arches. -# https://bugs.gentoo.org/959389 -media-libs/imlib2 y4m -media-libs/libavif libyuv -net-libs/pjproject libyuv - # Alfred Wingate (2025-11-15) # sci-libs/libaec is not keyworded here (bug #966099) sci-libs/gdal libaec 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 de6530b760f..d231b3f8231 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,18 @@ -# Copyright 2019-2025 Gentoo Authors +# Copyright 2019-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Alfred Wingate (2026-05-13) +# dev-qt/qtgraphs:6 is not keyworded here +dev-python/pyside graphs + +# Pacho Ramos (2026-05-09) +# media-plugins/gst-plugin-gtk4 is not keyworded +>=net-im/gajim-2.3 voice + +# Cristian Othón Martínez Vera (2026-03-22) +# app-pda/usbmuxd is not keyworded here +gnome-base/gvfs ios + # Robin H. Johnson (2026-03-22) # sys-block/vdo not keyworded here sys-fs/lvm2 vdo @@ -86,6 +98,7 @@ sci-mathematics/maxima vtk # Andreas Sturmlechner (2024-06-15) # Requires unkeyworded dev-qt/qtwebengine (and revdeps) kde-plasma/plasma-nm openconnect +net-irc/quassel urlpreview # Sam James (2024-05-19) # media-libs/jasper not yet keyworded here: https://bugs.gentoo.org/921559 @@ -155,7 +168,7 @@ app-editors/neovim lua_single_target_luajit # Yixun Lan (2022-11-24) # depend on dev-libs/libpcre2[jit] which not supported yet, bug #879511 -www-servers/varnish jit +www-servers/vinyl-cache jit # Yixun Lan (2022-01-27) # This target supports ASAN/etc... diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv32imac/ilp32/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv32imac/ilp32/make.defaults index 35a8afe6179..af5d8019202 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv32imac/ilp32/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv32imac/ilp32/make.defaults @@ -1,4 +1,4 @@ -# Copyright 2019-2021 Gentoo Authors +# Copyright 2019-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # RISC-V rv32imac/ilp32 no-multilib profile @@ -26,3 +26,7 @@ LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,--no-keep-memor # We need to undo this for riscv32 since it only has the 64bit interface # enable_year2038="yes" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="riscv32" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv32imac/ilp32d/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv32imac/ilp32d/make.defaults index 54469cc4090..bb16bd58178 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv32imac/ilp32d/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv32imac/ilp32d/make.defaults @@ -1,4 +1,4 @@ -# Copyright 2019-2021 Gentoo Authors +# Copyright 2019-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # RISC-V rv32imac/ilp32d no-multilib profile @@ -26,3 +26,7 @@ LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,--no-keep-memor # We need to undo this for riscv32 since it only has the 64bit interface # enable_year2038="yes" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="riscv32" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv64gc/lp64/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv64gc/lp64/make.defaults index e811f8eb643..dd2a4299109 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv64gc/lp64/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv64gc/lp64/make.defaults @@ -1,4 +1,4 @@ -# Copyright 2019 Gentoo Authors +# Copyright 2019-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # RISC-V rv64gc/lp64 no-multilib profile @@ -15,3 +15,7 @@ CFLAGS="-O2 -pipe -march=rv64imac -mabi=lp64" CXXFLAGS="${CFLAGS}" FFLAGS="${CFLAGS}" FCFLAGS="${CFLAGS}" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="riscv64" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv64gc/lp64d-multilib/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv64gc/lp64d-multilib/make.defaults index 3546d506abb..62df62fe39b 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv64gc/lp64d-multilib/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv64gc/lp64d-multilib/make.defaults @@ -1,4 +1,4 @@ -# Copyright 2019 Gentoo Authors +# Copyright 2019-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # RISC-V profile for rv64gc multilib @@ -15,3 +15,7 @@ ABI="lp64d" # One-level dir for the default abi LIBDIR_lp64d="lib64" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="riscv64" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv64gc/lp64d/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv64gc/lp64d/make.defaults index 80a9bdad63e..07393150b32 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv64gc/lp64d/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/rv64gc/lp64d/make.defaults @@ -1,4 +1,4 @@ -# Copyright 2019-2021 Gentoo Authors +# Copyright 2019-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # RISC-V rv64gc/lp64d no-multilib profile @@ -15,3 +15,7 @@ CFLAGS="-O2 -pipe -march=rv64gc -mabi=lp64d" CXXFLAGS="${CFLAGS}" FFLAGS="${CFLAGS}" FCFLAGS="${CFLAGS}" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="riscv64" 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 48ce1d6f66e..da4327f8854 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,22 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Andreas K. Hüttel (2026-05-04) +# Unkeyworded dependencies +sys-kernel/dracut test + +# Andreas K. Hüttel (2026-05-04) +# Unkeyworded dependencies +sys-fs/mdadm corosync + +# Alfred Wingate (2026-05-03) +# dev-libs/libthai not keyworded here +x11-libs/pango libthai + +# Sam James (2026-04-11) +# Unkeyworded dependencies +sys-libs/libcap-ng bpf + # Robin H. Johnson (2026-03-22) # sys-block/vdo not keyworded here sys-fs/lvm2 vdo @@ -137,10 +153,6 @@ dev-libs/mongo-c-driver test # net-libs/grpc not keyworded here app-admin/syslog-ng grpc -# Nowa Ammerlaan (2024-01-12) -# dracut is not keyworded here -sys-kernel/installkernel dracut - # Sam James (2024-01-02) # dev-libs/capstone not keyworded here dev-lang/php capstone @@ -156,6 +168,7 @@ media-libs/libv4l bpf # Michał Górny (2023-10-15) # Need dev-python/notebook (that indirectly requires net-libs/nodejs). dev-python/ipython notebook +dev-python/matplotlib-inline test dev-python/nbclient test dev-python/nbconvert test diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/s390/s390/package.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/s390/s390/package.mask index a3155b7509b..7c52f823965 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/s390/s390/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/s390/s390/package.mask @@ -1,6 +1,10 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Andreas K. Hüttel (2026-04-17) +# Support for 31bit s390 is dropped in glibc +>=sys-libs/glibc-2.44 + # Arthur Zamarin (2022-03-20) # sys-libs/libunwind doesn't work on s390 sys-libs/libunwind diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/s390/s390x/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/s390/s390x/make.defaults index b02ae878cf6..4f02c727afe 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/s390/s390x/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/s390/s390x/make.defaults @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 MULTILIB_ABIS="s390x" @@ -14,3 +14,7 @@ IUSE_IMPLICIT="abi_s390_64" # Enable abi_s390_64 for packages that don't have it forced. ABI_S390="64" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="s390x" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/s390/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/s390/use.mask index d683eb51136..8e8567e9c25 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/s390/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/s390/use.mask @@ -1,9 +1,13 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Unmask the flag which corresponds to ARCH. -s390 +# Ian Jordan (2025-04-13) +# sys-kernel/ugrd is not keyworded here. +ugrd + # Sam James (2025-08-31) # GPU-related USE flags. While hardware with PCIe host # capabilities exists, mask these by default to reduce burden diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/32ul/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/32ul/make.defaults index 46df0689c78..2f2e788d5b7 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/32ul/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/32ul/make.defaults @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 CHOST="sparc-unknown-linux-gnu" @@ -7,3 +7,7 @@ CHOST="sparc-unknown-linux-gnu" MULTILIB_ABIS="sparc32" DEFAULT_ABI="sparc32" ABI="${DEFAULT_ABI}" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="sparc" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/64ul/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/64ul/make.defaults index f9d3de3e5b9..f98a03b39ce 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/64ul/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/64ul/make.defaults @@ -1,4 +1,4 @@ -# Copyright 2019 Gentoo Authors +# Copyright 2019-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 MULTILIB_ABIS="sparc64" @@ -6,3 +6,7 @@ DEFAULT_ABI="sparc64" ABI="${DEFAULT_ABI}" CHOST="sparc64-unknown-linux-gnu" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="sparc64" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/package.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/package.mask index 0e868f3db3a..dd93bea4eb9 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/package.mask @@ -1,11 +1,6 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -# Ionen Wolkens (2026-03-03) -# This version fails to build on sparc (bug #970872), hoping -# will be fixed in 1.12.7. -~dev-util/maturin-1.12.6 - # matoro (2024-06-11) # Extensive use of unaligned access, no plans to fix, #636552 # https://github.com/memcached/memcached/issues/902 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 1302c00a5cf..a007acad7d4 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,30 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Viorel Munteanu (2026-05-14) +# dev-libs/efl not keyworded here +app-misc/fastfetch efl + +# Pacho Ramos (2026-05-09) +# appstream not keyworded +app-misc/media-player-info test + +# Jaco Kroon (2026-05-04) +# media-libs/libyuv is not keyworded +net-libs/pjproject libyuv + +# Alfred Wingate (2026-05-03) +# dev-libs/libthai not keyworded here +x11-libs/pango libthai + +# Brett A C Sheffield (2026-04-22) +# virtual/pandoc is not keyworded here +>=dev-libs/xmlsec-1.3.11 doc + +# Sam James (2026-04-11) +# Unkeyworded dependencies +sys-libs/libcap-ng bpf + # Robin H. Johnson (2026-03-22) # sys-block/vdo not keyworded here sys-fs/lvm2 vdo @@ -248,6 +272,7 @@ media-video/rav1e -capi # Michał Górny (2023-10-15) # Need dev-python/notebook (that indirectly requires net-libs/nodejs). dev-python/ipython notebook +dev-python/matplotlib-inline test dev-python/nbclient test dev-python/nbconvert test diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/use.mask index d4a641596fc..910d3716b86 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/use.mask @@ -4,6 +4,10 @@ # Unmask the flag which corresponds to ARCH. -sparc +# Pacho Ramos (2026-05-09) +# Newer gedit versions were not keyworded, bug #948858 +gedit + # Lukas Schmelting (2025-11-09) # gnome-online-accounts is not keyworded for sparc gnome-online-accounts diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/make.defaults index 00f4441eb5c..6591646874a 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/make.defaults @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # All extra USE/etc should be specified in sub-profiles. @@ -43,3 +43,7 @@ ABI_X86="32" # Enable USE=libtirpc by default, to ease dependency resolution during # the stabilization of glibc-2.26. Bug 657148 USE="libtirpc" + +# James Le Cuirot (2026-02-13) +# Enable the native QEMU target for this architecture by default. +QEMU_SOFTMMU_TARGETS="i386" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use index b70cf3ae468..83e494b92ef 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Ben Kohler (2024-06-12) @@ -18,7 +18,3 @@ llvm-core/llvm llvm_targets_AMDGPU llvm_targets_NVPTX llvm-core/lld llvm_targets_AMDGPU llvm_targets_NVPTX llvm-core/flang llvm_targets_AMDGPU llvm_targets_NVPTX llvm-core/lldb llvm_targets_AMDGPU llvm_targets_NVPTX - -# Doug Goldstein (2012-10-29) -# Enable the native arch as the default qemu target -app-emulation/qemu qemu_softmmu_targets_i386 diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.force b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.force index ff6ffb5efc3..2e00aceac70 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.force +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.force @@ -1,6 +1,12 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Sam James (2026-04-05) +# openblas[-cpudetection] runs a program during the build w/ cpuid to +# determine TARGET which doesn't align with what we expect in a mismatched +# bitness chroot. See bug #925114 and bug #968113. +sci-libs/openblas cpudetection + # Ionen Wolkens (2025-05-04) # Fails to build with .incbin errors only on x86, believed to be # a clang bug (only used by ebuilds using wine.eclass). Please 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 67a1a558e70..4f7584f0c24 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,18 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Alfred Wingate (2026-05-13) +# dev-qt/qtgraphs:6 is not keyworded here +dev-python/pyside graphs + +# Pacho Ramos (2026-05-09) +# media-plugins/gst-plugin-gtk4 is not keyworded +>=net-im/gajim-2.3 voice + +# Sam James (2026-04-28) +# dev-cpp/cpp-httplib doesn't support 32-bit arches +dev-util/ccache http + # Robin H. Johnson (2026-03-22) # sys-block/vdo not keyworded here sys-fs/lvm2 vdo @@ -218,6 +230,7 @@ kde-apps/kde-apps-meta pim kde-apps/kdenetwork-meta bittorrent kde-apps/umbrello php kde-plasma/plasma-nm openconnect +net-irc/quassel urlpreview net-misc/seafile-client shibboleth net-p2p/ktorrent rss sci-physics/root qt6 @@ -527,7 +540,6 @@ app-emulation/qemu spice # The QML (V4) and JSC JITs are supported only on amd64/arm/x86, # so the flag is masked in the base profile and unmasked here. dev-qt/qtdeclarative -jit -dev-qt/qtscript -jit # Samuli Suominen (2011-11-25) # Expose USE="suid" for USE="svga" only for x86 users, diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.stable.mask index 9303b909b26..2f0608ca844 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.stable.mask @@ -17,6 +17,12 @@ #--- END OF EXAMPLES --- +# Ionen Wolkens (2026-04-16) +# media-libs/opencolorio is not stable here and has many dependencies. +# Not overly worth extra stabilizations over new still scarcely used +# colour filters. Can revisit if someone wants this. +media-video/ffmpeg opencolorio + # Andreas Sturmlechner (2025-12-13) # media-gfx/asymptote is not stable here, bug #961740 dev-tex/rubber test @@ -37,10 +43,6 @@ dev-perl/Business-ISBN barcode # dev-perl/GDTextUtil is not stable here. Bug #661634 media-video/vdrsync dvdr -# Andreas Sturmlechner (2025-03-07) -# KDE Frameworks is no longer stable on x86 -x11-themes/QGnomePlatform qt5 - # Sam James (2025-02-13) # sys-cluster/corosync is marked stable here sys-fs/mdadm -corosync 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 0a3d11ddb47..6bf3181456b 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 @@ -95,8 +95,9 @@ LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" # Manuel Rüger (2015-09-09) # Hans de Graaff (2025-05-31) +# Christopher Fore (2026-04-03) # Default Ruby build target(s) -RUBY_TARGETS="ruby32 ruby33" +RUBY_TARGETS="ruby33" # Andreas K. Hüttel (2022-10-22) # These USE flags are what is common between the various sub-profiles. Stages 2 diff --git a/sdk_container/src/third_party/portage-stable/profiles/base/package.mask b/sdk_container/src/third_party/portage-stable/profiles/base/package.mask index f096e79ab52..a9760e8f4e1 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/base/package.mask @@ -6,6 +6,8 @@ dev-util/mig sys-kernel/gnumach sys-kernel/hurd +sys-kernel/rumpkernel +sys-power/libacpica # Sam James (2026-02-18) # Needs systemd so unmasked in targets/systemd 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 e51155081f1..aef5b7dd353 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/package.use.force +++ b/sdk_container/src/third_party/portage-stable/profiles/base/package.use.force @@ -1,6 +1,11 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Michael Orlitzky (2026-04-15) +# The non-jumbo build failures are back in 2.52.x. +=net-libs/webkit-gtk-2.52.3-r410 jumbo-build +=net-libs/webkit-gtk-2.52.3-r600 jumbo-build + # Andreas Sturmlechner (2026-02-12) # Fails to build without. Bug #968803 =sci-libs/opencascade-7.8* opengl @@ -444,6 +449,8 @@ dev-lang/python-exec python_targets_python3_13 dev-lang/python-exec python_targets_python3_13t dev-lang/python-exec python_targets_python3_14 dev-lang/python-exec python_targets_python3_14t +dev-lang/python-exec python_targets_python3_15 +dev-lang/python-exec python_targets_python3_15t dev-lang/python-exec python_targets_pypy3_11 # Zac Medico (2010-10-20) diff --git a/sdk_container/src/third_party/portage-stable/profiles/base/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/base/package.use.mask index e63b0f6c60c..4a08cdc47c4 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,34 @@ # New entries go on top. +# Andreas Sturmlechner (2026-05-15) +# Various integration packages. Preparing Qt5 last-rites. +# Removal some time after 2026-05-30. +app-i18n/fcitx-qt qt5 +app-i18n/uim qt5 +x11-themes/QGnomePlatform qt5 +x11-themes/adwaita-qt qt5 +x11-themes/kvantum qt5 +x11-themes/qtcurve qt5 + +# Michał Górny (2026-05-07) +# Force-enable all PYTHON_TARGETS for python-exec to avoid using private +# API. Please remember to keep it in sync with python_targets.desc. +dev-lang/python-exec -python_targets_python3_15 +dev-lang/python-exec -python_targets_python3_15t + +# Michael Orlitzky (2026-05-04) +# This needs an upgrade to >=dev-cpp/eigen-5.0.1 and I don't +# need the extra headache right now. +>=sci-libs/libsemigroups-3.5.5 eigen + +# Andreas Sturmlechner (2026-04-12) +# net-wireless/gnuradio and dependencies. Preparing Qt5 last-rites. +# Bugs #948049, #954887. Removal some time after 2026-04-30. +dev-python/pyqtgraph qt5 +net-wireless/gnuradio qt5 +<=net-wireless/gnuradio-3.10.99 channels + # Mike Gilbert (2026-03-20) # Only meant for bootstrapping a cross-compiler. sys-libs/libxcrypt headers-only @@ -30,10 +58,6 @@ net-vpn/eduvpn-client doc # first with (2026-01-15) -# KF5/Qt5 integration is no longer worth it. -kde-plasma/plasma-meta qt5 - # Eli Schwartz (2026-01-09) # tests fail to build during src_compile: # - needs demos to be built @@ -71,10 +95,6 @@ gui-wm/hyprland qtutils # Needs last-rited dev-lang/julia. (2025-12-07) -# Needs not-yet-released GCC 16. -dev-lang/python tail-call-interp - # Lukas Schmelting (2024-12-31) # None of the sci-libs/symengine versions work with the modern versions # of dev-libs/boost in Gentoo. +dev-python/symengine boost sci-libs/symengine boost # Conrad Kostecki (2024-12-30) 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 b2e5b223cd0..d292b61a9e7 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 (2026-05-03) +# Needs not-yet-stable GCC 16. +dev-lang/python tail-call-interp + # Alfred Wingate (2026-01-31) # Experimental upstream. # lgi in a weird state where tests either fail for the last real release diff --git a/sdk_container/src/third_party/portage-stable/profiles/base/use.mask b/sdk_container/src/third_party/portage-stable/profiles/base/use.mask index 4a936dbfbe1..c95e0d57f08 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/base/use.mask @@ -4,10 +4,16 @@ # This file is only for generic masks. For arch-specific masks (i.e. # mask everywhere, unmask on arch/*) use arch/base. -# Michał Górny (2026-01-13) -# LLVM 15 is only required by masked packages. It will be removed when -# the reverse dependencies are gone. Bug #920536. -llvm_slot_15 +# Michał Górny (2026-05-07) +# Python implementations without keywords. +python_targets_python3_15 +python_single_target_python3_15 +python_targets_python3_15t +python_single_target_python3_15t + +# Michał Górny (2026-04-18) +# LLVM slots with no keyworded releases yet. +llvm_slot_23 # Sam James (2025-12-02) # GCC 16 is not yet released diff --git a/sdk_container/src/third_party/portage-stable/profiles/base/use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/base/use.stable.mask index edbd71d78c6..a36800a4e70 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 @@ -1,13 +1,9 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # 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 - # Michał Górny (2024-12-31) # LLVM slots with no stable releases yet. llvm_slot_22 @@ -19,6 +15,10 @@ ruby_targets_ruby40 # Michał Górny (2024-05-08) # Python implementations without stable keywords. +python_targets_python3_15 +python_single_target_python3_15 +python_targets_python3_15t +python_single_target_python3_15t python_targets_python3_14t python_single_target_python3_14t python_targets_python3_13t diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/hurd/amd64/package.mask b/sdk_container/src/third_party/portage-stable/profiles/default/hurd/amd64/package.mask index 0873b120d89..a51b8b4e405 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/default/hurd/amd64/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/default/hurd/amd64/package.mask @@ -6,3 +6,5 @@ -dev-util/mig -sys-kernel/hurd -sys-kernel/gnumach +-sys-kernel/rumpkernel +-sys-power/libacpica diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/hurd/package.use b/sdk_container/src/third_party/portage-stable/profiles/default/hurd/package.use index 23e8687211e..a8071fb4a1c 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/default/hurd/package.use +++ b/sdk_container/src/third_party/portage-stable/profiles/default/hurd/package.use @@ -5,6 +5,7 @@ # sys-kernel/hurd installs some static binaries app-arch/bzip2 static-libs sys-apps/util-linux static-libs +sys-block/parted static-libs sys-libs/libxcrypt static-libs sys-libs/zlib static-libs x11-libs/libpciaccess static-libs diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/hurd/x86/package.mask b/sdk_container/src/third_party/portage-stable/profiles/default/hurd/x86/package.mask index 0873b120d89..a51b8b4e405 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/default/hurd/x86/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/default/hurd/x86/package.mask @@ -6,3 +6,5 @@ -dev-util/mig -sys-kernel/hurd -sys-kernel/gnumach +-sys-kernel/rumpkernel +-sys-power/libacpica diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/musl/hardened/systemd/use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/musl/hardened/systemd/use.mask deleted file mode 100644 index 6f371455069..00000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/musl/hardened/systemd/use.mask +++ /dev/null @@ -1,6 +0,0 @@ -# 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/amd64/23.0/musl/llvm/systemd/use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/musl/llvm/systemd/use.mask deleted file mode 100644 index 6f371455069..00000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/musl/llvm/systemd/use.mask +++ /dev/null @@ -1,6 +0,0 @@ -# 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/amd64/23.0/musl/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/musl/package.use.mask deleted file mode 100644 index 08d81656b7d..00000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/musl/package.use.mask +++ /dev/null @@ -1,6 +0,0 @@ -# Copyright 2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Georgy Yakovlev (2020-01-28) -# upstream does not provide docs in musl tarball -dev-lang/rust-bin doc diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/musl/systemd/use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/musl/systemd/use.mask deleted file mode 100644 index 6f371455069..00000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/musl/systemd/use.mask +++ /dev/null @@ -1,6 +0,0 @@ -# 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/musl/hardened/systemd/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/musl/hardened/systemd/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/musl/hardened/systemd/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/musl/hardened/systemd/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/musl/hardened/systemd/parent new file mode 100644 index 00000000000..44f88d3e2df --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/musl/hardened/systemd/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../targets/systemd diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/musl/llvm/systemd/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/musl/llvm/systemd/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/musl/llvm/systemd/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/musl/llvm/systemd/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/musl/llvm/systemd/parent new file mode 100644 index 00000000000..44f88d3e2df --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/musl/llvm/systemd/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../targets/systemd diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/musl/systemd/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/musl/systemd/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/musl/systemd/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/musl/systemd/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/musl/systemd/parent new file mode 100644 index 00000000000..7e061533c15 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/musl/systemd/parent @@ -0,0 +1,2 @@ +.. +../../../../../../targets/systemd diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc/23.0/musl/hardened/systemd/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc/23.0/musl/hardened/systemd/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc/23.0/musl/hardened/systemd/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc/23.0/musl/hardened/systemd/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc/23.0/musl/hardened/systemd/parent new file mode 100644 index 00000000000..44f88d3e2df --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc/23.0/musl/hardened/systemd/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../targets/systemd diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc/23.0/musl/systemd/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc/23.0/musl/systemd/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc/23.0/musl/systemd/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc/23.0/musl/systemd/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc/23.0/musl/systemd/parent new file mode 100644 index 00000000000..7e061533c15 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc/23.0/musl/systemd/parent @@ -0,0 +1,2 @@ +.. +../../../../../../targets/systemd diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64/23.0/musl/hardened/systemd/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64/23.0/musl/hardened/systemd/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64/23.0/musl/hardened/systemd/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64/23.0/musl/hardened/systemd/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64/23.0/musl/hardened/systemd/parent new file mode 100644 index 00000000000..44f88d3e2df --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64/23.0/musl/hardened/systemd/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../targets/systemd diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64/23.0/musl/systemd/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64/23.0/musl/systemd/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64/23.0/musl/systemd/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64/23.0/musl/systemd/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64/23.0/musl/systemd/parent new file mode 100644 index 00000000000..7e061533c15 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64/23.0/musl/systemd/parent @@ -0,0 +1,2 @@ +.. +../../../../../../targets/systemd diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64le/23.0/musl/hardened/systemd/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64le/23.0/musl/hardened/systemd/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64le/23.0/musl/hardened/systemd/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64le/23.0/musl/hardened/systemd/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64le/23.0/musl/hardened/systemd/parent new file mode 100644 index 00000000000..44f88d3e2df --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64le/23.0/musl/hardened/systemd/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../targets/systemd diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64le/23.0/musl/systemd/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64le/23.0/musl/systemd/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64le/23.0/musl/systemd/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64le/23.0/musl/systemd/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64le/23.0/musl/systemd/parent new file mode 100644 index 00000000000..7e061533c15 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/ppc64le/23.0/musl/systemd/parent @@ -0,0 +1,2 @@ +.. +../../../../../../targets/systemd diff --git a/sdk_container/src/third_party/portage-stable/profiles/desc/llvm_slot.desc b/sdk_container/src/third_party/portage-stable/profiles/desc/llvm_slot.desc index 688a2f4a01e..9a8a2a20b35 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/desc/llvm_slot.desc +++ b/sdk_container/src/third_party/portage-stable/profiles/desc/llvm_slot.desc @@ -1,7 +1,6 @@ -# Copyright 2024-2025 Gentoo Authors +# Copyright 2024-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -15 - Use LLVM 15. 16 - Use LLVM 16. 17 - Use LLVM 17. 18 - Use LLVM 18. diff --git a/sdk_container/src/third_party/portage-stable/profiles/desc/nginx_modules_http.desc b/sdk_container/src/third_party/portage-stable/profiles/desc/nginx_modules_http.desc index ae7a6751599..4de1a3c7336 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/desc/nginx_modules_http.desc +++ b/sdk_container/src/third_party/portage-stable/profiles/desc/nginx_modules_http.desc @@ -70,6 +70,7 @@ upstream_ip_hash - Add support for distributing upstream requests based on the I upstream_keepalive - Add support for caching connections to upstream servers upstream_least_conn - Add support for passing upstream requests to the server with the least number of active connections upstream_random - Add support for passing upstream requests to a randomly selected server +upstream_sticky - Add support for session affinity, i.e. passing requests from the same client to the same same server in a group of servers upstream_zone - Add support for defining a shared memory zone that keeps the group's configuration and run-time state that are shared between worker processes userid - Add support for setting cookies suitable for client identification uwsgi - Add support for passing requests to a uwsgi server diff --git a/sdk_container/src/third_party/portage-stable/profiles/desc/python_single_target.desc b/sdk_container/src/third_party/portage-stable/profiles/desc/python_single_target.desc index 546ba8b1327..128ac346e76 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/desc/python_single_target.desc +++ b/sdk_container/src/third_party/portage-stable/profiles/desc/python_single_target.desc @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # This file contains descriptions of PYTHON_SINGLE_TARGET USE_EXPAND flags. @@ -9,4 +9,6 @@ python3_13 - Build for Python 3.13 only python3_13t - Build for Python 3.13 freethreading only python3_14 - Build for Python 3.14 only python3_14t - Build for Python 3.14 freethreading only +python3_15 - Build for Python 3.15 only +python3_15t - Build for Python 3.15 freethreading only pypy3_11 - Build for PyPy3.11 only diff --git a/sdk_container/src/third_party/portage-stable/profiles/desc/python_targets.desc b/sdk_container/src/third_party/portage-stable/profiles/desc/python_targets.desc index 8b417657bcb..f3a008e1703 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/desc/python_targets.desc +++ b/sdk_container/src/third_party/portage-stable/profiles/desc/python_targets.desc @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # This file contains descriptions of PYTHON_TARGETS USE_EXPAND flags. @@ -9,4 +9,6 @@ python3_13 - Build with Python 3.13 python3_13t - Build with Python 3.13 freethreading python3_14 - Build with Python 3.14 python3_14t - Build with Python 3.14 freethreading +python3_15 - Build with Python 3.15 +python3_15t - Build with Python 3.15 freethreading pypy3_11 - Build with PyPy3.11 diff --git a/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.mask b/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.mask index 1e0e28c8ded..9f47fed6a11 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.mask @@ -1,6 +1,10 @@ # Copyright 2023-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Eli Schwartz (2026-05-04) +# Tests fail on ppc64, pass on ppc64le. Bug #952112. +media-libs/libyuv + # James Le Cuirot (2026-02-02) # It works on non-x86 arches, but only little endian ones. sys-apps/iucode_tool @@ -12,6 +16,7 @@ dev-python/tables # Michał Górny (2024-06-05) # media-libs/exempi is seriously broken on big endian platforms. # https://gitlab.freedesktop.org/libopenraw/exempi/-/merge_requests/8#note_2277243 +app-text/papers dev-python/python-xmp-toolkit media-libs/exempi diff --git a/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/use.mask b/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/use.mask index 66b1bc6c68f..f8d17fc410d 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/use.mask @@ -1,6 +1,12 @@ -# Copyright 2023-2024 Gentoo Authors +# Copyright 2023-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Eli Schwartz (2025-12-09) +# libyuv is Google code, fails on "fringe" arches. +# Bug #959389. +y4m +libyuv + # Lukas Schmelting (2025-11-15) # gnome-base/nautilus is package.masked on big-endian platforms since it depends # on gui-libs/gtk, while "gui-libs/gtk wayland" is in big-endian package.use.mask 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 343af800707..a980e3c9fe0 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 @@ -428,6 +428,7 @@ www-client/microsoft-edge-dev www-client/opera www-client/opera-beta www-client/opera-developer +www-client/opera-gx www-client/vivaldi www-client/vivaldi-snapshot www-plugins/chrome-binary-plugins diff --git a/sdk_container/src/third_party/portage-stable/profiles/features/time64/package.mask b/sdk_container/src/third_party/portage-stable/profiles/features/time64/package.mask index 0e735a9d9dd..8357f9de4ba 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/time64/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/time64/package.mask @@ -41,4 +41,4 @@ dev-ada/xmlada # enforce 64-bit time_t as required by this profile. # Andreas K. Hüttel (2025-05-29) # Version updated - (2026-04-17) +# Older libsanitizer not ported to 64-bit time_t. + (2025-07-10) # We need the gcc patchset here, otherwise things break. sys-devel/gcc vanilla 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 3505abdb39c..481c6e9dc8a 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,31 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Michał Górny (2025-05-07) +# dev-python/mypy now started requiring NIH Rust packages. +dev-ada/ada_language_server +dev-ada/aws +dev-ada/gnatdoc +dev-ada/gnatformat +dev-ada/lal-refactor +dev-ada/langkit +dev-ada/langkit-contrib +dev-ada/libadalang +dev-ada/libadalang-tools +dev-python/ast-serialize +dev-python/mypy + +# Michał Górny (2025-05-02) +# dev-python/cbor2 has been RIIR-ed, and the fallback Python +# implementation was removed at the same time. Covers its revdeps. +dev-python/cbor2 +sys-apps/fwupd-efi +sys-apps/uswid + +# Michał Górny (2025-03-27) +# Requires dev-python/pydantic-settings. +dev-python/oct2py + # Alexey Sokolov (2026-03-02) # Rewritten in Rust. >=dev-util/bear-4 @@ -58,12 +83,12 @@ dev-python/easy-thumbnails dev-python/flufl-lock dev-python/gherkin-official dev-python/logfury -dev-python/mkdocs-gen-files dev-python/pykwalify dev-python/pytest-bdd dev-python/pytest-describe dev-python/pytest-django dev-python/pytest-golden +dev-python/pytest-socket dev-python/sphinxcontrib-doxylink >=dev-python/sphinxcontrib-httpdomain-2.0 dev-python/sybil @@ -95,12 +120,10 @@ dev-python/poetry-plugin-export # Michał Górny (2024-05-08) # The sigstore bundle. -dev-python/betterproto dev-python/pypi-attestations dev-python/securesystemslib dev-python/sigstore dev-python/sigstore-models -dev-python/sigstore-protobuf-specs dev-python/sigstore-rekor-types dev-python/rfc3161-client dev-python/tuf @@ -139,6 +162,7 @@ dev-python/textile # Additional entries exposed by correcting musl, #936643 x11-terms/alacritty www-client/firefox +www-client/firefox-l10n www-misc/buku www-client/seamonkey www-misc/urlwatch @@ -327,6 +351,7 @@ app-eselect/eselect-rust app-misc/gramps app-misc/khal app-text/mdbook +app-text/papers dev-embedded/esptool dev-lang/rust dev-lang/rust-bin @@ -349,6 +374,7 @@ dev-python/inline-snapshot dev-python/ipyparallel dev-python/ipywidgets dev-python/jaraco-itertools +dev-python/joserfc dev-python/josepy >=dev-python/jsonschema-4.18.0 dev-python/jsonschema-path @@ -363,16 +389,9 @@ dev-python/jupyterlab-widgets dev-python/jupyterlab-server dev-python/jupyterlab dev-python/keyring +dev-python/lzallright dev-python/apache-libcloud dev-python/moto -dev-python/mkdocs-i18n -dev-python/mkdocs-git-authors-plugin -dev-python/mkdocs-git-revision-date-localized-plugin -dev-python/mkdocs-material -dev-python/mkdocs-material-extensions -dev-python/mkdocs-pymdownx-material-extras -dev-python/mkdocs-redirects -dev-python/mkdocs-static-i18n dev-python/nbclassic dev-python/nbdime dev-python/nbval @@ -448,6 +467,7 @@ dev-vcs/breezy >=games-puzzle/swell-foop-46 >=games-puzzle/quadrapassel-49 gnome-base/gdm +>=gnome-base/gnome-control-center-49 >=gnome-base/gnome-core-apps-3.36.5 >=gnome-base/gnome-core-libs-3.36.5 >=gnome-base/gnome-light-3.36.5 @@ -462,13 +482,17 @@ gnome-extra/gnome-tweaks gnome-extra/sushi >=gnome-extra/yelp-49 >=media-gfx/libimagequant-4 +media-gfx/loupe =media-libs/libopenraw-0.3.2 media-libs/subrandr media-plugins/gimp-lqr media-video/rav1e net-analyzer/wtfis net-dns/dnsviz +net-dns/hash-slinger net-dns/pdns-recursor net-im/gajim >=net-irc/polari-3.37 @@ -481,6 +505,7 @@ sci-geosciences/gnome-maps sys-block/thin-provisioning-tools >=sys-process/glances-4.1.2.1 sys-fs/bcachefs-tools +sys-fs/ubi_reader virtual/rust www-apps/radicale >=www-client/epiphany-49 @@ -491,3 +516,4 @@ x11-themes/adwaita-icon-theme-legacy >=gui-libs/libadwaita-1.8.2 >=gnome-extra/gnome-user-share-48.2 >=app-editors/gnome-text-editor-49.0 +>=x11-wm/mutter-49 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 06116b1ae91..d7ae9bd26cc 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,19 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Michał Górny (2025-05-23) +# dev-python/pytest-socket now requires dev-python/uv-build. +dev-ada/e3-core test + +# Michał Górny (2025-05-07) +# dev-python/mypy now started requiring NIH Rust packages. +dev-python/charset-normalizer native-extensions + +# Michał Górny (2025-05-02) +# dev-python/cbor2 has been RIIR-ed, and the fallback Python +# implementation was removed at the same time. Cover its revdeps. +sys-apps/fwupd uefi + # Ionen Wolkens (2026-03-22) # app-text/mdbook is written in rust >=dev-libs/wayland-1.25.0 doc @@ -126,6 +139,7 @@ dev-python/jupyter-client test # Michał Górny (2023-10-15) # Need dev-python/notebook. dev-python/ipython notebook +dev-python/matplotlib-inline test dev-python/nbclient test dev-python/nbconvert test @@ -167,10 +181,6 @@ dev-python/django test # The JIT compiler in ruby requires rust dev-lang/ruby jit -# Sam James (2022-12-26) -# Needs dev-python/mkdocs-redirects->dev-python/twine which is masked on wd40 -dev-debug/gef doc - # Sam James (2022-12-11) # net-libs/rustls-ffi needs Rust. net-misc/curl rustls curl_ssl_rustls diff --git a/sdk_container/src/third_party/portage-stable/profiles/license_groups b/sdk_container/src/third_party/portage-stable/profiles/license_groups index c35df53f541..96027dfc6bd 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/license_groups +++ b/sdk_container/src/third_party/portage-stable/profiles/license_groups @@ -34,7 +34,7 @@ OSI-APPROVED-FREE 0BSD AFL-3.0 AGPL-3 AGPL-3+ Apache-1.1 Apache-2.0 APL-1.0 APSL # Licenses in this list should NOT appear directly or indirectly in # @FSF-APPROVED or @OSI-APPROVED. # Note: Licenses for fonts should be included in @MISC-FREE-DOCS. -MISC-FREE AIFFWriter.m Allegro alternate AMPAS Base64 BEER-WARE boehm-gc BSD-2-with-patent BSD-with-attribution BSD-with-disclosure buddy bufexplorer.vim BZIP2 CAOSL CDDL-1.1 CDDL-Schily coldspringharbor CPL-0.5 Crypt-IDEA curl DES docbook dom4j DUMB-0.9.3 ElementTree Emacs ErlPL-1.1 FastCGI feh FFT2D File-MMagic Flashpix FLEX flexmock FLTK freetts FVWM gd gsm HTML-Tidy iASL icu IDPL imagemagick Info-ZIP inner-net ipadic Ispell JasPer2.0 JDOM JOVE Khronos-CLHPP LambdaMOO LIBGLOSS libmng libpng libpng2 libtiff LLGPL-2.1 LPPL-1.0 LPPL-1.3 lsof matplotlib Mini-XML minpack MIT-with-advertising mm mpich2 NCSA-HDF netcat NEWLIB ngrep NPSL-0.95 Old-MIT openafs-krb5-a Openwall otter par PCRE perforce photopc PHP-2.02 pngcrush pngnq Princeton psutils rc regexp-UofT repoze RSA RtMidi rwpng sash scanlogd sdlsasteroids Sendmail Sendmail-Open-Source SMAIL Snd Spencer-99 SSLeay SunSoft symlinks Sympow-BSD tablelist tcltk tcp_wrappers_license TeX TeX-other-free TextMate-bundle the-Click-license Time-Format Time-modules tm-align torque-2.5 Toyoda trio UCAR-Unidata unicode VTK w3m wm2 xbatt xboing XC Xdebug xtrs ZSH +MISC-FREE AIFFWriter.m Allegro alternate AMPAS Base64 BEER-WARE boehm-gc BSD-2-with-patent BSD-with-attribution BSD-with-disclosure buddy bufexplorer.vim BZIP2 CAOSL CDDL-1.1 CDDL-Schily coldspringharbor CPL-0.5 Crypt-IDEA curl DES docbook dom4j DUMB-0.9.3 ElementTree Emacs ErlPL-1.1 FastCGI feh FFT2D File-MMagic Flashpix FLEX flexmock FLTK freetts FSFUL FVWM gd gsm HTML-Tidy iASL icu IDPL imagemagick Info-ZIP inner-net ipadic Ispell JasPer2.0 JDOM JOVE Khronos-CLHPP LambdaMOO LIBGLOSS libmng libpng libpng2 libtiff LLGPL-2.1 LPPL-1.0 LPPL-1.3 lsof matplotlib Mini-XML minpack MIT-with-advertising mm mpich2 NCSA-HDF netcat NEWLIB ngrep NOLIMIT NPSL-0.95 Old-MIT openafs-krb5-a Openwall otter par PCRE perforce photopc PHP-2.02 pngcrush pngnq Princeton psutils rc regexp-UofT repoze RSA RtMidi rwpng sash scanlogd sdlsasteroids Sendmail Sendmail-Open-Source SMAIL Snd Spencer-99 SSLeay SunSoft symlinks Sympow-BSD tcltk tcp_wrappers_license TeX TeX-other-free TextMate-bundle the-Click-license Time-Format Time-modules tm-align torque-2.5 Toyoda trio UCAR-Unidata unicode VTK w3m wm2 xbatt xboing XC Xdebug xtrs ZSH # Metaset for all free software FREE-SOFTWARE @FSF-APPROVED @OSI-APPROVED-FREE @MISC-FREE @@ -81,7 +81,7 @@ OSI-APPROVED @OSI-APPROVED-FREE @OSI-APPROVED-NONFREE # License agreements that try to take away your rights. These are more # restrictive than "all-rights-reserved" or require explicit approval. -EULA 2dboy-EULA AMD-GPU-PRO-EULA android AnyDesk-TOS Aseprite-EULA baudline bestcrypt Broadcom-tod CAPYBARA-EULA Dell-EULA ETQW f.lux FAH-EULA-2014 Flightradar24 FNMT-RCM Gameplay-Group-EULA geekbench genymotion GIMPS GOG-EULA google-chrome Intel-SDP Introversion JoyPixels LOKI-EULA MakeMKV-EULA Microsemi microsoft-azurevpnclient microsoft-edge Microsoft-vscode MikroTik Mojang MTA-0.5 NVIDIA-CUDA NVIDIA-cuSPARSELt-v2020.10.12 NVIDIA-SDK NVIDIA-SDK-v2017.06.13 NVIDIA-SDK-v2020.10.12 Ookla OPERA-2018 PAPERS-PLEASE PassMark-EULA PICO-8 Primate-Plunge PUEL-11 PUEL-12 Q3AEULA-20000111 QUAKE4 RAR sfpg SPS Steam supermicro Synology teamspeak3 teamspeak5 TeamViewer THINKTANKS TIK ubiquiti ut2003 ut2003-demo Vivaldi worklog-assistant WPS-EULA zi-labone +EULA 2dboy-EULA AMD-GPU-PRO-EULA android AnyDesk-TOS Aseprite-EULA baudline bestcrypt Broadcom-tod CAPYBARA-EULA Dell-EULA Digium ETQW f.lux FAH-EULA-2014 Flightradar24 FNMT-RCM Gameplay-Group-EULA geekbench genymotion GIMPS GOG-EULA google-chrome Intel-SDP Introversion JoyPixels LOKI-EULA MakeMKV-EULA Microsemi microsoft-edge microsoft-proprietary Microsoft-vscode MikroTik Mojang MTA-0.5 NVIDIA-CUDA NVIDIA-cuSPARSELt-v2020.10.12 NVIDIA-SDK NVIDIA-SDK-v2017.06.13 NVIDIA-SDK-v2020.10.12 Ookla OPERA-2018 OPERA-2020 PAPERS-PLEASE PassMark-EULA PICO-8 Primate-Plunge PUEL-11 PUEL-12 Q3AEULA-20000111 QUAKE4 RAR sfpg SPS Steam supermicro Synology teamspeak3 teamspeak5 TeamViewer THINKTANKS TIK ubiquiti ut2003 ut2003-demo Vivaldi worklog-assistant WPS-EULA zi-labone # Deprecated license labels, used by pkgcheck #DEPRECATED (currently none) 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 c877b7ca176..66e1ec29461 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,32 @@ #--- END OF EXAMPLES --- +# Michał Górny (2026-05-08) +# The package was archived upstream as pytest-9 features built-in +# subtest support. Gotta check if we need any code changes, or can just +# drop it in place. +dev-python/pytest-subtests + +# Michał Górny (2026-04-01) +# Upstream is no longer accepting nor publishing any bug reports. +# As such, the package is not suitable for public consumption anymore. +# On top of that, the package is heavily relying on unsafe Rust, which +# completely defeats the purpose of Rust in the first place. +# https://github.com/ijl/orjson?tab=readme-ov-file#orjson +dev-python/orjson + +# Michał Górny (2026-04-01) +# Upstream is no longer accepting nor publishing any bug reports. +# As such, the package is not suitable for public consumption anymore. +# https://github.com/encode/httpx/discussions/3784 +dev-python/httpx + +# Michał Górny (2026-03-25) +# Backwards compatibility package for pkg_resources that have been +# removed from >=dev-python/setuptools-82. Please migrate to +# importlib.{metadata,resources} and/or dev-python/packaging. +dev-python/pkg-resources + # Michał Górny (2025-11-25) # The package has turned into complete AI slop. Every subsequent # release introduces serious quality issues, and potential security @@ -48,34 +74,6 @@ dev-python/berkeleydb # 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 -# release happened on 2025-05-19, which means a) we will not get it until -# 2026-06-19, b) any bugs discovered since last May will not be fixed and -# c) no bugs since 2020-12-08 that haven't also been affecting Qt6 were -# fixed at all. Bug 948836 -dev-qt/linguist-tools:5 -dev-qt/qtconcurrent:5 -dev-qt/qtdbus:5 -dev-qt/qtdeclarative:5 -dev-qt/qtgui:5 -dev-qt/qtmultimedia:5 -dev-qt/qtnetwork:5 -dev-qt/qtopengl:5 -dev-qt/qtprintsupport:5 -dev-qt/qtquickcontrols:5 -dev-qt/qtquickcontrols2:5 -dev-qt/qtsql:5 -dev-qt/qtsvg:5 -dev-qt/qttest:5 -dev-qt/qttranslations:5 -dev-qt/qtwayland:5 -dev-qt/qtwidgets:5 -dev-qt/qtx11extras:5 -dev-qt/qtxml:5 -dev-python/pyqt5 - # Michał Górny (2025-07-29) # dev-python/flaky and dev-python/pytest-rerunfailurse have conflicting # pytest fixtures, with the latter providing a more powerful fixture @@ -107,11 +105,6 @@ dev-python/legacy-cgi # Superseded by dev-python/psycopg:0 (version 3). dev-python/psycopg:2 -# Andreas Sturmlechner (2023-10-21) -# QtScript is deprecated since Qt 5.5, all projects must port away. -# Bug 915779 -dev-qt/qtscript:5 - # Sam James (2023-04-07) # Inactive upstream, doesn't support newer Rubies. # Please port your package to use dev-ruby/erubi instead. 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 2a76e9f8617..930706773ff 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/package.mask @@ -36,11 +36,294 @@ #--- END OF EXAMPLES --- +# Matt Turner (2026-05-22) +# Deprecated upstream. Relies on removed XA support in Mesa. Use the built-in +# modesetting driver instead. Bug #957955. +# Removal on 2026-06-21. +x11-drivers/xf86-video-vmware + +# Andreas Sturmlechner (2026-05-18) +# Almost no one else is packaging net-libs/zmqpp, no more revdeps. +# Bugs #667060, 951835. Removal on 2026-06-17. +net-libs/zmqpp +=sci-mathematics/yacas-1.9.1-r2 + +# Sam James (2026-05-17) +# Tries to delete many files (bug #975236) +=dev-util/jenkins-bin-2.561 + +# Andreas Sturmlechner (2026-05-15) +# Qt5 qtbase module. Bug #948836 +# Removal on 2026-06-30. +dev-qt/qtconcurrent:5 +dev-qt/qtcore:5 +dev-qt/qtdbus:5 +dev-qt/qtgui:5 +dev-qt/qtnetwork:5 +dev-qt/qtopengl:5 +dev-qt/qtprintsupport:5 +dev-qt/qtsql:5 +dev-qt/qttest:5 +dev-qt/qtwidgets:5 +dev-qt/qtxml:5 + +# Andreas Sturmlechner (2026-05-15) +# Qt5 non-qtbase modules. Bugs #948836, #964253 +# Removal on 2026-06-30. +dev-qt/linguist-tools:5 +dev-qt/qtdeclarative:5 +dev-qt/qtgraphicaleffects:5 +dev-qt/qtmultimedia:5 +dev-qt/qtquickcontrols:5 +dev-qt/qtquickcontrols2:5 +dev-qt/qtsvg:5 +dev-qt/qttranslations:5 +dev-qt/qtwayland:5 +dev-qt/qtx11extras:5 + +# Andreas Sturmlechner (2026-05-15) +# Obsolete 3rd party Qt5 integration package. +# Removal on 2026-06-14. +x11-misc/qt5ct + +# Andreas Sturmlechner (2026-05-15) +# USE=gui in this version depends on Qt5 and can no longer be supported. +# VLC-4 snapshots are provided with a Qt6-based USE=gui. +# Alternatives for stable users are media-video/mpv, media-video/haruna, +# media-video/smplayer, media-video/qmplay2 and probably many more. +# Bug #954006. Removal some time after 2026-05-30. +=media-video/vlc-3.0.23 + +# Andreas Sturmlechner (2026-05-15) +# Depends on Qt5 and does not appear to be ported to Qt6 upstream soon. +# With net-irc/quassel-0.14.50_pre20260513, we provide an ~arch keyworded +# snapshot, cut from the so far most promising PR pending upstream. +# Bug #953029. Removal on or some time after 2026-05-30. +<=net-irc/quassel-0.14.49 + +# David Seifert (2026-05-12) +# dev-util/claude-code and dev-util/codex (guru) provide vastly more tokens +# than relying on cursor as a broker. I don't see a future for cursor-agent. +# Removal on 2026-06-11. +dev-util/cursor-agent + +# David Seifert (2026-05-12) +# I don't see a future in a slightly better tab-completion editor. +# Removal on 2026-06-11. +app-editors/cursor + +# Louis Sautier (2026-05-10) +# Unmaintained since 2017, no revdeps. +# Removal on 2026-06-10. Bug #974496. +dev-python/flask-debug +dev-python/flask-nav + +# Louis Sautier (2026-05-10) +# Unmaintained since 2018, no revdeps. +# Only consumer is www-misc/urlwatch which suggests it. +# Removal on 2026-06-10. Bug #953050. +dev-python/chump + +# Pacho Ramos (2026-05-09) +# Obsolete version not compatible with current gnome-shell versions. +# Upstream changed completely the way to package it. If still interested, +# feel free to take it and update it. Removal in one month. Bug #974452 +gnome-extra/gnome-shell-extension-bluetooth-quick-connect + +# Pacho Ramos (2026-05-09) +# No longer developed by upstream, does not work with current gnome-shell +# versions. Removal in one month. Bug #974453 +gnome-extra/gnome-shell-extension-bluetooth-quick-connect + +# Pacho Ramos (2026-05-09) +# No longer developed by upstream, does not work with current gnome-shell +# versions. Use gnome-shell-extension-weather-oclock instead. +# Removal in one month. Bug #974454 +gnome-extra/gnome-shell-extension-weather-in-the-clock + +# Michał Górny (2026-05-09) +# Unmaintained upstream and broken with Python 3.13. +# Removal on 2026-06-08. Bug #952342. +dev-python/ipdb + +# Michał Górny (2026-05-09) +# Discontinued upstream, broken with Python 3.14 and have no reverse +# dependencies outside the cycle. +# Removal on 2026-06-08. Bug #973008. +dev-python/dockerpty +dev-python/doublex-expects +dev-python/expects +dev-python/mamba + +# Michał Górny (2026-05-09) +# Unmaintained, bad quality packages. No support for Python 3.13. +# No reverse dependencies. +# Removal on 2026-06-08. Bug #952373. +dev-python/js2py +dev-python/pyjsparser + +# Michał Górny (2026-05-09) +# Discontinued upstream, no support for Python 3.14, no revdeps left. +# Removal on 2026-06-08. Bug #974029. +net-im/telepathy-logger + +# Michał Górny (2026-05-09) +# Discontinued split compression library from app-arch/upx. It was +# replaced by a vendored version, and has no reverse dependencies. +# Removal on 2026-06-08. Bug #921202. +dev-libs/ucl + +# Michał Górny (2026-05-09) +# The buildbot packages aren't actively maintained in ::gentoo. They +# are stuck on Python 3.12 and obsolete dependencies. Bug reports +# aren't receiving any attention. +# Removal on 2026-06-08. Bug #952430. +acct-group/buildbot +acct-user/buildbot +dev-util/buildbot +dev-util/buildbot-badges +dev-util/buildbot-console-view +dev-util/buildbot-grid-view +dev-util/buildbot-pkg +dev-util/buildbot-react-console-view +dev-util/buildbot-react-grid-view +dev-util/buildbot-react-wsgi-dashboards +dev-util/buildbot-waterfall-view +dev-util/buildbot-worker +dev-util/buildbot-wsgi-dashboards +dev-util/buildbot-www +dev-util/buildbot-www-react + +# Michał Górny (2026-05-08) +# Django 4.2 LTS reached EOL in April 2026, and is now vulnerable. +# Removal on 2026-06-07. + (2026-05-06) +# Merged into dev-python/pydantic, since it is tightly pinned +# and involves a tightly pinned cyclic test dependency. +# Removal on 2026-06-05. +dev-python/pydantic-core + +# Sam James (2026-05-05) +# dev-debug/pwndbg itself needs >=dev-util/unicorn-2.1.4, while +# pwndbg also depends on dev-util/pwntools which needs =dev-util/pwntools-4.15.0 + +# Sebastian Pipping (2026-05-01) +# Dead for five years upstream, use Golang successor :2 instead please +# Removal on 2026-06-01, bug #973547 +app-containers/docker-compose:0 + +# Daniel Pielmeier (2026-04-21) +# Mask last version with USE qt5 which is about to be last rited. +# Bugs #950282, #961920. Remove with other Qt5 masks. + (2026-04-21) +# PyPy 7.3.21 contains a few major bugs, notably it segfaults when +# trying to translate itself, making it impossible to build any new PyPy +# version. Please note that the downgrade may require using binary +# packages or dev-python/pypy-exe-bin. +=dev-lang/pypy-2.7.7.3.21 +=dev-lang/pypy-3.11.7.3.21 +=dev-lang/pypy3-exe-3.11.7.3.21 +=dev-lang/pypy3-exe-bin-3.11.7.3.21 +=dev-python/pypy-exe-7.3.21 +=dev-python/pypy-exe-bin-7.3.21 + +# Sam James (2026-04-20) +# m2crypto is deprecated upstream and in maintenance mode. They recommend +# using dev-python/cryptography instead. No reverse dependencies left. +# Often broke with new OpenSSL as well. +# Removal on 2026-05-20. Bug #973014. +dev-python/m2crypto + +# Michał Górny (2026-04-20) +# Upstream added new 'encutils' dep that uses the nightmarish +# coherent.build and depends on chardet. While both are solvable, +# the last revdep of cssutils was removed in 2020, and has been inactive +# since 2017. +# Removal on 2026-05-20. Bug #972983. +dev-python/cssutils + +# Sam James (2026-04-19) +# Major new release with lots of broken packages expected. Notably, even +# dev-lang/python isn't yet. Please use with caution and file bugs for +# any issues, blocking bug #972902. +=dev-libs/openssl-4* +=dev-libs/openssl-compat-3* + +# Michał Górny (2026-04-18) +# Packages with no maintainer that have not been ported to Python 3.13, +# and that have no reverse dependencies. +# Removal on 2026-05-18. See tracker bug #941893. +dev-python/matterhook +dev-python/pytest-markdown +dev-python/stomp-py +dev-util/repolite +dev-util/rpmdevtools +net-misc/chrome-remote-desktop +net-misc/you-get +sys-apps/kcheck +sys-auth/solo1 +sys-kernel/bliss-initramfs +sys-kernel/kergen +www-apache/mod_gnutls + +# Sam James (2026-04-17) +# app-misc/tmux fails to open with newer ncurses (bug #972804) +>=sys-libs/ncurses-6.6_p20260411 + +# Michał Górny (2026-04-15) +# Unmaintained, with failing tests after urllib changes. The only +# revdep bundles a fallback anyway. +# Removal on 2026-05-15. Bug #972713. +dev-python/fs + +# Michał Górny (2026-04-13) +# dev-python/tempest is needed only for OpenStack integration tests. +# Incompatible with py3.14. All the revdeps were mistaken. Includes +# dependencies without other revdeps. +# Removal on 2026-05-13. Bug #972619. +dev-python/oslo-concurrency +dev-python/stestr +dev-python/tempest + +# Andreas Sturmlechner (2026-04-12) +# Perpetually stuck on Qt5. A Qt6-based snapshot is provided for testing, +# currently as app-admin/keepassxc-2.8.0_pre20260504, but it is unclear when +# (or even if) it will be stabilised. Alternatives are app-admin/keepass, +# app-admin/pass which can import kbdx files via app-admin/pass-import, +# app-admin/vaultwarden, app-admin/bitwarden-desktop-bin, +# app-admin/passwordsafe, and probably many more. AppImage or Flatpak versions +# also available as last resort. See bug #949231. +# Removal on 2026-05-11. +<=app-admin/keepassxc-2.7.9999 + +# Andreas Sturmlechner (2026-04-12) +# Depends on Qt5 and does not appear to be ported to Qt6. A possible alternative +# is net-misc/remmina's x2go plugin, but it requires interested parties to look +# into it. Bugs #538458, #917570, #955192 +# Removal on 2026-05-30. +net-misc/x2goclient + +# Sam James (2026-03-30) +# >=1.7.0 is an LLM-driven revamp of the project. +>=sys-fs/quotatool-1.7.0 + +# Conrad Kostecki (2026-03-28) +# Version 1.18.x breaks API and needs more testing +>=net-libs/libupnp-1.18.4 + # Sam James (2026-03-22) # Commits since the last release of Crypt-OpenSSL-RSA (0.370) are heavily # driven by LLM automation. Avoid exposing users to this (bug #971488). # Sadly, other dists by the same maintainers upstream are also affected, -# and so these are includeed here too. +# and so these are included here too. >dev-perl/Crypt-OpenSSL-RSA-0.370.0 >dev-perl/B-COW-0.7.0 >dev-perl/Business-UPS-2.20.0 @@ -57,288 +340,21 @@ >dev-perl/Sys-Mmap-0.200.0 >dev-perl/Template-Toolkit-3.102.0 >dev-perl/TimeDate-2.330.0-r1 ->dev-perl/XML-Parser-2.510.0 +>dev-perl/XML-Parser-2.470.1 >dev-perl/XString-0.5.0 >dev-perl/YAML-Syck-1.360.0 -# Michał Górny (2026-03-22) -# Cyclic dependency through dev-python/vcs-versioning → -# dev-python/hatchling → dev-python/pluggy. ->=dev-python/setuptools-scm-10 -dev-python/vcs-versioning - -# Michał Górny (2026-03-20) -# Low-value package with a test suite that requires tons of effort to -# work offline. Upstream made that harder again in the most recent -# release. If you need pipx functionality, dev-python/uv provides uvx -# executable. -# Removal on 2026-04-19. Bug #971387. -dev-python/pipx - -# Michał Górny (2026-03-19) -# -# MkDocs 1.x are no longer maintained upstream. MkDocs 2.x, while not -# yet released, are not backwards compatible and have made some -# questionable design choices, such as removing plugin support. MkDocs -# 1.x have been then forked into ProperDocs, which are not a drop-in -# replacment. Also, Zensical started being independently developed. -# -# Over all this time, MkDocs have been barely used in ::gentoo, -# and the work invested in keeping the whole stack working, along with -# all the plugins and NIH dependencies, greatly exceeded the benefit. -# It does not help that most of this is developed with the assumption -# that docs will be built straight from the git repository. -# -# Removal on 2026-04-18. Bug #971358. -dev-python/csscompressor -dev-python/dunamai -dev-python/ghp-import -dev-python/griffe -dev-python/griffe-inherited-docstrings -dev-python/jsmin -dev-python/markdown-exec -dev-python/mergedeep -dev-python/mkdocs -dev-python/mkdocs-autorefs -dev-python/mkdocs-bootstrap -dev-python/mkdocs-bootswatch -dev-python/mkdocs-gen-files -dev-python/mkdocs-get-deps -dev-python/mkdocs-git-authors-plugin -dev-python/mkdocs-git-revision-date-localized-plugin -dev-python/mkdocs-htmlproofer-plugin -dev-python/mkdocs-i18n -dev-python/mkdocs-material -dev-python/mkdocs-material-extensions -dev-python/mkdocs-minify-plugin -dev-python/mkdocs-monorepo-plugin -dev-python/mkdocs-pymdownx-material-extras -dev-python/mkdocs-redirects -dev-python/mkdocs-static-i18n -dev-python/mkdocstrings -dev-python/mkdocstrings-python -dev-python/paginate -dev-python/pygments-ansi-color -dev-python/pyyaml-env-tag -dev-python/readtime -dev-python/uv-dynamic-versioning - -# Jakov Smolić (2026-03-13) -# sqlite-3.52.0 has been withdrawn shortly after its release due to -# backwards-compatibility issues -# https://sqlite.org/releaselog/3_52_0.html -=dev-db/sqlite-3.52.0-r1 -=dev-python/apsw-3.52.0.0 - -# Mike Pagano (2026-03-13) -# Upstream has announced the archiving of this application -# at repo location: https://github.com/nginx/unit/ -# This announcement includes the statement that security -# issues may not be addressed. Possible alternatives -# are www-servers/nginx or www-servers/apache -# depending on your application needs. -# Removal on 2026-04-13. -www-servers/nginx-unit - -# Alfredo Tupone (2026-03-12) -# No reverse dependency. Included in dev-tcltk/tklib -# Removeal on 2026-04-12. Bug #971127 -dev-tcltk/tablelist - -# Volkmar W. Pogatzki (2026-03-10) -# Unused Java library. -# Last consumer was net-p2p/freenet-0.7.5_p1505-r0. -# Removal on 2026-04-10. Bug #971058. -dev-java/mersennetwister - -# Andreas Sturmlechner (2026-03-09) -# Latest release is >21 years old, no one else packages this, buffer overflow -# at launch, packaged only in gentoo. Alternatives exist, including the dockapp -# x11-plugins/wmamixer. Bug #969091 -# Removal on 2026-04-08. -media-sound/alsamixer-app - -# Andreas Sturmlechner (2026-03-09) -# Dead CORBA implementation, no one else packages this, impossible to build. -# Many bugs: #298101, #515938, #725192, #871237, #874090, #882479, #882633, -# #898086, #919509, #952927, #967177 -# Removal on 2026-04-08. -net-misc/mico - -# Arthur Zamarin (2026-03-09) -# Live only package, Upstream archived, integrated into -# app-shells/bash-completion-2.17.0, which was already stabled. -# Removal on 2026-04-08. Bugs #792303, #960480. -app-shells/tmux-bash-completion - # Alfredo Tupone (2026-03-05) # Need more testing >=dev-lang/tcl-9 >=dev-lang/tk-9 -# Michał Górny (2026-02-28) -# The test suite is broken since 1.16.0 (Nov 2025), and upstream did not -# address the problem so far: https://github.com/pypa/hatch/issues/2123 -# Removal on 2026-03-30. Bug #970681. -dev-python/hatch - -# Andreas Sturmlechner (2026-02-27) -# Obsolete Qt5 non-qtbase modules without revdeps. -# Removal on 2026-03-29. -dev-qt/designer:5 -dev-qt/qthelp:5 -dev-qt/qtwaylandscanner:5 -dev-qt/qtxmlpatterns:5 - -# Andreas Sturmlechner (2026-02-27) -# Obsolete Qt5 non-qtbase modules without revdeps. -dev-qt/qtimageformats:5 -dev-qt/qtscxml:5 -dev-qt/qtspeech:5 -dev-qt/qtwebsockets:5 - -# Andreas Sturmlechner (2026-02-26) -# Depends on Qt5 and does not appear to be ported to Qt6 any time soon. -# Possible alternatives are app-text/xournalpp or media-gfx/pdf4qt (only in -# guru overlay right now). Many bugs: #965497, #935693, #935692, #935694, -# #900162, #850064, #935695. -# Removal on 2026-03-28. -app-text/master-pdf-editor - -# Andreas Sturmlechner (2026-02-26) -# Depends on Qt5 and does not appear to be ported to Qt6. Upstream's main -# problem is reliance on QtXMLPatterns which is not available in Qt6. -# Bug #955183 -# Removal on 2026-03-28. -app-editors/qxmledit - -# Andreas Sturmlechner (2026-02-26) -# Current release depends on Qt5, painful to package which may explain why not -# many other distributions care to do so. Upstream AppImage available. -# Many bugs: #909069, #937133, #945721, #947403, #956111, #956112, #956113, -# #956451, #967186. -# Removal on 2026-03-28. -net-p2p/retroshare - -# Andreas Sturmlechner (2026-02-26) -# Qt binaries-to-path symlinking tool obsolete with Qt6. Removal on 2026-03-28. -dev-qt/qtchooser - -# Ulrich Müller (2026-02-25) -# This is an eviscerated version. Several core commands no longer -# work, notably C-x 2 (split-current-window), M-x describe-bindings -# and M-? (help). Furthermore, it adds an unconditional dependency -# on hunspell, hardcoding the American English dictionary. -# Masking this version for now because it seems inferior to the -# previous 20180719 snapshot. Bug #970594. -~app-editors/uemacs-pk-4.0.15_p20260224 - -# Andreas Sturmlechner (2026-02-24) -# Phonon is effectively dead upstream, its only remaining backend depends -# on VLC-3. Bug #935797 Removal on 2026-03-26. -media-libs/phonon -media-libs/phonon-vlc - -# Michael Orlitzky (2026-02-24) -# Haskell package (hard to maintain) that never evolved. Easy to -# replace with a SQL query. Removal on or after 2026-03-24. -net-mail/list-remote-forwards -net-mail/mailbox-count - -# Andreas Sturmlechner (2026-02-22) -# Obsolete package blocking vdr-2.2 cleanup. -# Removal on 2026-03-24. -media-plugins/vdr-peer -=media-video/vdr-2.2.0* - -# Andreas Sturmlechner (2026-02-22) -# Obsolete package. Use media-plugins/vdr-skinelchihd instead. -# Bug #945071. Removal on 2026-03-24. -media-plugins/vdr-skincurses - -# Andreas Sturmlechner (2026-02-22) -# Obsolete package. Use media-video/vdr[demoplugins] instead. -# Removal on 2026-03-24. -media-plugins/vdr-skinelchi - -# Andreas Sturmlechner (2026-02-15) -# Masked for testing and possible libvlc revdeps breakage. -~media-video/vlc-4.0.0_pre20260320 - -# Conrad Kostecki (2026-02-15) -# Supports only Qt5 and upstream not making any progress towards Qt6. -# Removal on 2026-03-01. Bug #953260. -x11-misc/projecteur - # Thomas Beierlein (2026-02-14) # Move ebuild versioning to classical x.y.z number scheme # Should be kept until net-wireless/sdrplay-3.15.2 (dep for coming # new version) gets stable. >=net-wireless/soapysdrplay-20000000 -# David Seifert (2026-02-14) -# Behemoth package, with a massive and brittle testsuite. No other major distro -# packages this anymore. Lots of QA issues, broken tests and blocking cleanup -# efforts. This package will only be allowed back in ::gentoo after a sustained -# demonstration of maintenance dedication. Removal on 2026-03-16. Bug #966712. -dev-cpp/muParserX -dev-python/pylatexenc -dev-python/python-constraint -dev-python/qiskit -dev-python/qiskit-aer -dev-python/rustworkx - -# Andreas Sturmlechner (2026-02-12) -# Misc Qt5-based libraries without any revdeps left. -# Removal on 2026-03-14. -dev-qt/qtlockedfile -dev-qt/qtsingleapplication - -# David Seifert (2026-02-11) -# No other distro packages this, last release over 12 years ago, C23 issues. -# Removal on 2026-03-13. Bug #944878. -sci-biology/qrna - -# David Seifert (2026-02-11) -# Obscure package, no revdeps, unmaintained, EAPI 7, lots of build issues. -# Removal on 2026-03-13. Bug #944918. -sci-biology/mcl - -# David Seifert (2026-02-10) -# Abandoned, sguil-sensor already removed, blocks bug #868468. -# Removal on 2026-03-12. -net-analyzer/sguil-client - -# David Seifert (2026-02-10) -# Noone packages this anymore, dead upstream, C23 and QA issues. -# Removal on 2026-03-12. Bug #945039. -net-misc/lanmap - -# David Seifert (2026-02-10) -# Noone packages this anymore, dead upstream, fails tests on newer GCC. -# Removal on 2026-03-12. Bug #963013. -net-libs/libpcapnav - -# David Seifert (2026-02-10) -# Noone packages this anymore, dead upstream, lots of C23 and QA issues. -# Removal on 2026-03-12. Bug #945187. -net-analyzer/trafshow - -# David Seifert (2026-02-10) -# Removed by most distros, upstream disappeared, lots of QA and packaging -# issues. Removal on 2026-03-12. Bug #945190. -net-analyzer/tcptrace - -# David Seifert (2026-02-10) -# Removed by most distros, last release over 20 years ago, C23 issues. -# Removal on 2026-03-12. Bug #945193. -net-analyzer/labrea - -# David Seifert (2026-02-10) -# Removed by most distros, upstream disappeared, lots of QA and packaging -# issues. Removal on 2026-03-12. Bug #943786. -net-analyzer/echoping - # Sam James (2026-02-09) # This suite of packages is currently best placed in an overlay/external # repository where users can more easily contribute. The ecosystem moves @@ -371,115 +387,6 @@ net-analyzer/echoping <=dev-libs/hyprgraphics-0.1.5 <=gui-wm/hyprland-0.51.1 -# Michał Górny (2026-02-09) -# setuptools-82 removes pkg_sources, inevitably leading to breakage. ->=dev-python/ensurepip-setuptools-82 ->=dev-python/setuptools-82 - -# Andreas Sturmlechner (2026-02-08) -# All remaining KF5 revdeps have been masked. -# Removal some time after 2026-02-15. -kde-frameworks/karchive:5 -kde-frameworks/kauth:5 -kde-frameworks/kbookmarks:5 -kde-frameworks/kcmutils:5 -kde-frameworks/kcodecs:5 -kde-frameworks/kcompletion:5 -kde-frameworks/kconfig:5 -kde-frameworks/kconfigwidgets:5 -kde-frameworks/kcoreaddons:5 -kde-frameworks/kcrash:5 -kde-frameworks/kdbusaddons:5 -kde-frameworks/kdeclarative:5 -kde-frameworks/kded:5 -kde-frameworks/kdoctools:5 -kde-frameworks/kglobalaccel:5 -kde-frameworks/kguiaddons:5 -kde-frameworks/ki18n:5 -kde-frameworks/kiconthemes:5 -kde-frameworks/kio:5 -kde-frameworks/kitemviews:5 -kde-frameworks/kjobwidgets:5 -kde-frameworks/knotifications:5 -kde-frameworks/kpackage:5 -kde-frameworks/kservice:5 -kde-frameworks/kwallet:5 -kde-frameworks/kwidgetsaddons:5 -kde-frameworks/kwindowsystem:5 -kde-frameworks/kxmlgui:5 -kde-frameworks/solid:5 - -# Andreas Sturmlechner (2026-02-08) -# All remaining KF5-based applications have been masked. -# Removal on 2026-02-28. -kde-plasma/kwayland-integration:5 - -# Andreas Sturmlechner (2026-02-08) -# KF5/Qt5 integration is no longer worth it. -# Removal some time after 2026-02-15. -kde-plasma/kwayland:5 -kde-plasma/breeze:5 -kde-plasma/plasma-integration:5 -kde-plasma/oxygen:5 -kde-frameworks/frameworkintegration:5 -kde-frameworks/knewstuff:5 -kde-frameworks/attica:5 -kde-frameworks/kirigami:5 - -# Andreas Sturmlechner (2026-02-08) -# Deprecated since Qt 5.5, no more revdeps. Bug #915779 -# Removal on 2026-02-28. -dev-qt/qtscript:5 - -# Andreas Sturmlechner (2026-02-08) -# Stuck on Qt5Script in the foreseeable future. Until a Qt6 release is -# ready, app-editors/okteta-0.26.60_pre* snapshots will be provided for -# ~arch, main limitation being the structures tool disabled from build -# (it requires the biggest, remaining porting effort). Double-check to -# backup your data before modifying files with okteta snapshots. -# If you rely on the structures tool or are affected by a critical bug in -# our okteta snapshots, the alternative is using the Flatpak version. -# Bug #962280. Removal some time after 2026-02-15. -app-editors/okteta:5 -kde-frameworks/kitemmodels:5 - -# Andreas Sturmlechner (2026-02-08) -# Stuck on Qt5/PyQt5 in the foreseeable future. Until a Qt6 release is -# ready, krita-6.0.0 pre-releases will be provided for ~arch. -# If you rely on krita for professional work or plugins only available in -# krita-5, your options are Flatpak or snap, or downloading upstream's own -# 64-bit AppImage - see also: https://krita.org/download/ -# Bug #955168. Removal some time after 2026-02-15. -media-gfx/krita:5 -kde-apps/libkdcraw:5 -kde-apps/libkexiv2:5 -kde-frameworks/kimageformats:5 - -# David Seifert (2026-02-07) -# Never packaged by other distros, QA and C23 issues. -# Removal on 2026-03-09. -net-analyzer/traceproto - -# David Seifert (2026-02-07) -# -Wformat and C23 issues, no other distro packages this anymore. -# Removal on 2026-03-09. -net-analyzer/mping - -# David Seifert (2026-02-07) -# Abandoned upstream, no other distro packages this anymore, lots of QA and -# build issues. Removal on 2026-03-09. Bug #945191. -net-analyzer/nttcp - -# David Seifert (2026-02-06) -# Abandoned upstream, no other distro packages this anymore, lots of QA and -# build issues. Removal on 2026-03-08. Bug #899932. -net-analyzer/ipcad - -# David Seifert (2026-02-06) -# Upstream disappeared, no other distro packages this anymore, lots of QA and -# build issues. Removal on 2026-03-08. Bug #680718. -net-analyzer/arp-sk - # Arthur Zamarin (2026-02-06) # Marked as pre-release post release itself. Released without # maintainer ACK. @@ -513,23 +420,6 @@ net-analyzer/arp-sk # See bug #966299. =dev-util/librnp-0.18.0 -# Sam James (2025-10-13) -# Crashes in memtodest when handling PATH. Not yet reported upstream. -=app-shells/dash-0.5.13.1 - -# 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 - -# Lukas Schmelting (2025-10-03) -# Breaks e.g. in combination with gnome-shell-48.4, gettext/gjs (bug #963815) ->=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 - # Sam James (2025-09-21) # Breaks (common) mt7921e WiFi driver with a hang in many cases, affecting # not just network. See bug #963106. @@ -561,24 +451,11 @@ virtual/perl-Unicode-Normalize # solution. Bug #959274. =app-crypt/libsecret-0.21.7-r1 -# Sam James (2025-06-12) -# Breaks several applications (bug #957943) ->=dev-python/pygobject-3.52 ->=net-im/gajim-2.3.0 - # Sam James (2025-06-08) # Masked for testing (bug #957583). >=sys-devel/gettext-0.24 >=dev-libs/libintl-0.24 -# Sam James (2025-06-03) -# Fetching from GitHub seems broken with this: -# > 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) # Breaks some reverse dependencies and is abandoned upstream (bug #956630). =dev-cpp/glog-0.7.1 @@ -591,11 +468,6 @@ virtual/perl-Unicode-Normalize # Masked for testing dev-db/mysql:8.4 -# Michał Górny (2025-04-19) -# This package will no longer feature stable keywords, due to unresolved -# test failures blocking the stabilization request for months. - (2025-04-01) # Screen v5.0.0 has a lot of regressions # https://lists.gnu.org/archive/html/screen-devel/2024-10/msg00007.html diff --git a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/package.unmask b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/package.unmask index c83ace0c1e3..901744bb0ef 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/package.unmask +++ b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/package.unmask @@ -1,6 +1,3 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -# Benda Xu (2023-08-01) -# embrace guile-3. (bug #825334) ->=dev-scheme/guile-3.0.4 diff --git a/sdk_container/src/third_party/portage-stable/profiles/prefix/linux/use.mask b/sdk_container/src/third_party/portage-stable/profiles/prefix/linux/use.mask index 511343b0614..97ab574ea84 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/prefix/linux/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/prefix/linux/use.mask @@ -1,6 +1,14 @@ -# Copyright 1999-2015 Gentoo Foundation +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Fabian Groffen (2026-05-15) +# elfutils[debuginfod] works on Linux +-debuginfod + +# Fabian Groffen (2026-05-15) +# epoll is Linux's way, also on Prefix +-epoll + # Michael Haubenwallner (2016-04-19) # Unmask the linux-glibc combo, or we get bug#574822. -elibc_glibc diff --git a/sdk_container/src/third_party/portage-stable/profiles/prefix/sunos/solaris/5.11/package.unmask b/sdk_container/src/third_party/portage-stable/profiles/prefix/sunos/solaris/5.11/package.unmask new file mode 100644 index 00000000000..427ae5b6b9a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/prefix/sunos/solaris/5.11/package.unmask @@ -0,0 +1,9 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Fabian Groffen (2026-05-22) +# need newer versions for gnulib fix necessary on more recent illumnos +# https://bugs.gentoo.org/975237, inverse of bug #957583 +>=sys-devel/gettext-0.24 +>=dev-libs/libintl-0.24 + diff --git a/sdk_container/src/third_party/portage-stable/profiles/prefix/use.mask b/sdk_container/src/third_party/portage-stable/profiles/prefix/use.mask index e5011011579..d2f4e36d66a 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/prefix/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/prefix/use.mask @@ -1,6 +1,13 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Fabian Groffen (2026-05-15) +# requires elfutils[debuginfod], elfutils is Linux only +debuginfod + +# Fabian Groffen (2026-05-15) +# epoll is Linux only +epoll # Fabian Groffen (2018-12-29) # separate /usr has been disabled for long in Prefix, so ensure we don't 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 af784dbba36..f24a523bad7 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/profiles.desc +++ b/sdk_container/src/third_party/portage-stable/profiles/profiles.desc @@ -487,8 +487,11 @@ arm default/linux/arm/23.0/split-usr/armv7a_hf/musl dev arm default/linux/arm/23.0/split-usr/armv7a_hf/musl/hardened exp arm default/linux/arm/23.0/split-usr/armv7a_hf/musl/hardened/selinux exp arm64 default/linux/arm64/23.0/musl dev +arm64 default/linux/arm64/23.0/musl/systemd dev arm64 default/linux/arm64/23.0/musl/llvm exp +arm64 default/linux/arm64/23.0/musl/llvm/systemd exp arm64 default/linux/arm64/23.0/musl/hardened exp +arm64 default/linux/arm64/23.0/musl/hardened/systemd exp arm64 default/linux/arm64/23.0/musl/hardened/selinux exp arm64 default/linux/arm64/23.0/split-usr/musl dev arm64 default/linux/arm64/23.0/split-usr/musl/llvm exp @@ -508,15 +511,21 @@ mips default/linux/mips/23.0/split-usr/mipsel/n64/musl exp mips default/linux/mips/23.0/split-usr/o32/musl exp mips default/linux/mips/23.0/split-usr/n64/musl exp ppc default/linux/ppc/23.0/musl dev +ppc default/linux/ppc/23.0/musl/systemd exp ppc default/linux/ppc/23.0/musl/hardened exp +ppc default/linux/ppc/23.0/musl/hardened/systemd dev ppc default/linux/ppc/23.0/split-usr/musl dev ppc default/linux/ppc/23.0/split-usr/musl/hardened exp ppc64 default/linux/ppc64/23.0/musl dev +ppc64 default/linux/ppc64/23.0/musl/systemd dev ppc64 default/linux/ppc64/23.0/musl/hardened exp +ppc64 default/linux/ppc64/23.0/musl/hardened/systemd exp ppc64 default/linux/ppc64/23.0/split-usr/musl dev ppc64 default/linux/ppc64/23.0/split-usr/musl/hardened exp ppc64 default/linux/ppc64le/23.0/musl dev +ppc64 default/linux/ppc64le/23.0/musl/systemd dev ppc64 default/linux/ppc64le/23.0/musl/hardened exp +ppc64 default/linux/ppc64le/23.0/musl/hardened/systemd exp ppc64 default/linux/ppc64le/23.0/split-usr/musl dev ppc64 default/linux/ppc64le/23.0/split-usr/musl/hardened exp riscv default/linux/riscv/23.0/rv64/lp64d/musl dev diff --git a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/make.defaults index d27a8a2d324..1c114761cd2 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/make.defaults @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -USE="a52 aac acpi alsa avif bluetooth branding cairo cdda cdr cups dbus dri dts dvd dvdr elogind encode exif flac gif gpm gtk gui icu jpeg jpegxl lcms libnotify mad mng mp3 mp4 mpeg ogg opengl pipewire pango pdf png policykit ppds pulseaudio qml qt6 screencast sdl sound spell startup-notification svg tiff truetype vorbis udev udisks unicode upower usb vulkan wayland webp wxwidgets X xcb xft x264 xml xv xvid" +USE="a52 aac acpi alsa avif bluetooth branding cairo cdda cdr cups dbus dri dts dvd dvdr elogind encode exif flac gif gpm gtk gui icu jpeg jpegxl lcms libnotify mad mng mp3 mp4 mpeg ogg opengl pipewire pango pdf png policykit ppds pulseaudio qml qt6 screencast sdl sound spell startup-notification svg tiff truetype vorbis udev udisks unicode upower usb vulkan wayland webp wxwidgets X xcb xft x264 xml xv" diff --git a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/package.use b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/package.use index 372e15a1378..02421f5d038 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/package.use +++ b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/package.use @@ -6,11 +6,6 @@ # packages using media-libs/libpulse (e.g. via USE="pulseaudio"). media-video/pipewire sound-server -# Andreas Sturmlechner (2025-12-16) -# Enable IUSE qt5 for current stable pkgs with USE-revdeps before dropping -# it from make.defaults. # Bug #948836 - (2025-10-18) # media-libs/freetype works better with media-libs/harfbuzz support. media-libs/freetype harfbuzz @@ -36,11 +31,6 @@ dev-qt/qtbase libproxy # Boost: app-text/poppler[qt5] recommended w/ Boost (bug #795888) app-text/poppler nss boost -# Andreas Sturmlechner (2023-11-11) -# egl+libinput required by dev-qt/qtwayland:5 -# libinput required by kde-plasma/kwayland-integration:5 -dev-qt/qtgui:5 egl libinput - # Mart Raudsepp (2023-10-01) # kde-plasma/kwin and x11-wm/mutter[wayland] require xwayland[libei] for # emulated input portal for e.g. remote desktop remote input support @@ -53,10 +43,6 @@ x11-base/xwayland libei # circular dependency out of the box. dev-build/cmake -gui -# Andreas Sturmlechner (2023-07-29) -# Required by dev-python/pyqt5[multimedia] -dev-qt/qtmultimedia:5 widgets - # Andreas Sturmlechner (2023-05-21) # Needed by a global USE=wayland right now (REQUIRED_USE conflicts) media-libs/clutter egl @@ -110,10 +96,6 @@ media-video/mpv -sdl # Needed by x11-misc/xdg-utils. app-text/xmlto text -# Ben de Groot (2015-02-18) -# Enable sensible defaults for desktop users (bug #540046) -dev-python/pyqt5 gui multimedia network printsupport widgets - # Chí-Thanh Christopher Nguyễn (2014-05-08) # Enable x11-libs/libxcb[xkb] as it is needed by x11-libs/libxkbcommon[X] # and the X flag is enabled by default in the desktop profile diff --git a/sdk_container/src/third_party/portage-stable/profiles/targets/systemd/package.mask b/sdk_container/src/third_party/portage-stable/profiles/targets/systemd/package.mask index 4ca05cb7787..5cf705c235d 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/targets/systemd/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/targets/systemd/package.mask @@ -1,6 +1,10 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Hyland B. (2026-05-05) +# gdm breaks on systemd if this user is provided. +acct-user/gdm-greeter + # Sam James (2026-02-18) # Requires systemd, so specifically unmasked only in targets/systemd. -kde-plasma/plasma-login-manager diff --git a/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2020 b/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2020 index 8d1fd16d86c..415f805808b 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2020 +++ b/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2020 @@ -4,7 +4,6 @@ move games-action/openastromenace games-action/astromenace move dev-python/pyzor mail-filter/pyzor move dev-python/python-sqlparse dev-python/sqlparse move dev-python/git-python dev-python/gitpython -move www-servers/automx2 net-mail/automx2 move dev-python/pysnmp-apps net-analyzer/snmpclitools move net-im/slack-bin net-im/slack slotmove sys-libs/libunwind 7 0 diff --git a/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2026 b/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2026 index 53ac18f1121..6b18d3d545d 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2026 +++ b/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2026 @@ -1,2 +1,3 @@ move llvm-runtimes/openmp-amdgcn llvm-runtimes/openmp-amdgcn-amd-amdhsa move llvm-runtimes/openmp-nvptx64 llvm-runtimes/openmp-nvptx64-nvidia-cuda +move www-servers/varnish www-servers/vinyl-cache diff --git a/sdk_container/src/third_party/portage-stable/profiles/updates/2Q-2023 b/sdk_container/src/third_party/portage-stable/profiles/updates/2Q-2023 index c46c16f055a..cdfe1067309 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/updates/2Q-2023 +++ b/sdk_container/src/third_party/portage-stable/profiles/updates/2Q-2023 @@ -1,5 +1,4 @@ move dev-python/jupyter_core dev-python/jupyter-core -move dev-python/mkdocs_pymdownx_material_extras dev-python/mkdocs-pymdownx-material-extras move dev-python/jupyter_client dev-python/jupyter-client move dev-python/importlib_metadata dev-python/importlib-metadata move dev-python/python-keyutils dev-python/keyutils diff --git a/sdk_container/src/third_party/portage-stable/profiles/updates/2Q-2024 b/sdk_container/src/third_party/portage-stable/profiles/updates/2Q-2024 index ecf22219d7a..6bc5f6ebb46 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/updates/2Q-2024 +++ b/sdk_container/src/third_party/portage-stable/profiles/updates/2Q-2024 @@ -8,6 +8,4 @@ slotmove kde-apps/kdeedu-data 5 0 move dev-perl/Term-Table perl-core/Term-Table move dev-perl/Test2-Suite perl-core/Test2-Suite move dev-python/et_xmlfile dev-python/et-xmlfile -move dev-python/qiskit-terra dev-python/qiskit move dev-python/jupyterlab_widgets dev-python/jupyterlab-widgets -move dev-python/pyyaml_env_tag dev-python/pyyaml-env-tag diff --git a/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2022 b/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2022 index 962e6ae4138..a681890c8b3 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2022 +++ b/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2022 @@ -3,7 +3,6 @@ move x11-libs/libva-compat media-libs/libva-compat move x11-libs/libva-intel-driver media-libs/libva-intel-driver move x11-libs/libva-intel-media-driver media-libs/libva-intel-media-driver move x11-libs/intel-hybrid-codec-driver media-libs/intel-hybrid-codec-driver -move dev-python/retworkx dev-python/rustworkx move dev-lang/open-cobol dev-lang/gnucobol move virtual/awk app-alternatives/awk move virtual/yacc app-alternatives/yacc diff --git a/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2024 b/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2024 index fcadd80ea06..b34d19d9c53 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2024 +++ b/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2024 @@ -54,8 +54,6 @@ move dev-python/QtPy dev-python/qtpy move dev-python/PyQt-builder dev-python/pyqt-builder move dev-python/PyQt6-WebEngine dev-python/pyqt6-webengine move dev-python/PyQt6-sip dev-python/pyqt6-sip -move dev-python/PyQt5-sip dev-python/pyqt5-sip -move dev-python/PyQt5 dev-python/pyqt5 move dev-python/PyQt6 dev-python/pyqt6 move sys-libs/llvm-offload llvm-runtimes/offload move dev-libs/libclc llvm-core/libclc diff --git a/sdk_container/src/third_party/portage-stable/profiles/use.desc b/sdk_container/src/third_party/portage-stable/profiles/use.desc index 27d333b09e0..d148fb52a45 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/use.desc +++ b/sdk_container/src/third_party/portage-stable/profiles/use.desc @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Keep them sorted @@ -381,7 +381,7 @@ webp - Add support for the WebP image format wifi - Enable wireless network functions wmf - Add support for the Windows Metafile vector image format wxwidgets - Add support for wxWidgets/wxGTK GUI toolkit -x264 - Enable h264 encoding using x264 +x264 - Enable H.264 encoding using x264 xattr - Add support for extended attributes (filesystem-stored metadata) xcb - Support the X C-language Binding, a replacement for Xlib xcomposite - Enable support for the Xorg composite extension diff --git a/sdk_container/src/third_party/portage-stable/sec-keys/openpgp-keys-gentoo-release/Manifest b/sdk_container/src/third_party/portage-stable/sec-keys/openpgp-keys-gentoo-release/Manifest index c4e0d8c7448..70d3901987c 100644 --- a/sdk_container/src/third_party/portage-stable/sec-keys/openpgp-keys-gentoo-release/Manifest +++ b/sdk_container/src/third_party/portage-stable/sec-keys/openpgp-keys-gentoo-release/Manifest @@ -1,3 +1,2 @@ DIST gentoo-release-test-sigs-20190224.tar.gz 3235 BLAKE2B 924c69a62d5321716f536144f0607bd3ec4a65d76be492adc729864fd9bef82df0086541ae13034a83152ea0c8dc3cbd168be6cff111a3484128a22cbc8ef1d4 SHA512 f8cc2e84bedbdf14ace6abe4aacf8f0c9810c77ff6ae0fac301829d9d4d5cf0c128a76516c773ac993879215bcdb0aab097e1e7e747d8e1a7c4cfc815bd4d3e6 -DIST gentoo-release.asc.20250806.gz 18794 BLAKE2B f683266f64357ce869adb04c8efdee296fdfacd72e003d305eecfb91b89c56243e0e7f342f47ca7918f560f961b7f73d874d86018f483ae814f43f40efda7459 SHA512 71b8ef105d49218690d242df2517b1a078f7a8d353ba6d9621cb6690431a46d85a3e45e3a2f4e3b9050b344c3cb636e10a2cc42cbd813a2e926b0b42630cd1cb DIST gentoo-release.asc.20260125.gz 14059 BLAKE2B 461167bbd4188c38e78e8d4e220d4da4f0b81b87064da7805c06c75402b629a03b3cdadd5fb2001d6db970e426ee420de655da160ae1399f916ba814a35ce7db SHA512 12cb97e0c0d613d75f36e3543eb8ed566f5ab66895ca7b4abcf3d60adae23ac6230b905972f0ca668187755cef2aaae68b6b01d6372796a8ee566957e36cd3e5 diff --git a/sdk_container/src/third_party/portage-stable/sec-keys/openpgp-keys-gentoo-release/openpgp-keys-gentoo-release-20250806.ebuild b/sdk_container/src/third_party/portage-stable/sec-keys/openpgp-keys-gentoo-release/openpgp-keys-gentoo-release-20250806.ebuild deleted file mode 100644 index 2f2195328ef..00000000000 --- a/sdk_container/src/third_party/portage-stable/sec-keys/openpgp-keys-gentoo-release/openpgp-keys-gentoo-release-20250806.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DESCRIPTION="OpenPGP keys used for Gentoo releases (snapshots, stages)" -HOMEPAGE="https://www.gentoo.org/downloads/signatures/" -SRC_URI=" - https://dev.gentoo.org/~mgorny/dist/openpgp-keys/gentoo-release.asc.${PV}.gz - test? ( - https://dev.gentoo.org/~mgorny/dist/openpgp-keys/gentoo-release-test-sigs-20190224.tar.gz - ) -" -S=${WORKDIR} - -LICENSE="public-domain" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="test" -RESTRICT="!test? ( test )" - -BDEPEND=" - test? ( - || ( - app-crypt/gnupg[alternatives(-)] - >=app-crypt/freepg-2.5.12_p1-r1 - ) - ) -" - -# Keys included: -# DCD05B71EAB94199527F44ACDB6B8C1F96D8BF6D -# D99EAC7379A850BCE47DA5F29E6438C817072058 -# 13EBBDBEDE7A12775DFDB1BABB572E0E2D182910 -# EF9538C9E8E64311A52CDEDFA13D0EF1914E7A72 - -src_test() { - local old_umask=$(umask) - umask 077 - - local -x GNUPGHOME=${T}/.gnupg - mkdir "${GNUPGHOME}" || die - einfo "Importing keys ..." - gpg-reference --import "gentoo-release.asc.${PV}" || die "Key import failed" - - local f - for f in gentoo-release-test-sigs*/*.asc; do - einfo "Testing ${f##*/} ..." - gpg-reference -q --trust-model always --verify "${f}" || die "Verification failed on ${f}" - done - - umask "${old_umask}" -} - -src_install() { - insinto /usr/share/openpgp-keys - newins "gentoo-release.asc.${PV}" gentoo-release.asc -} diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/Manifest b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/Manifest index dc0c6d3942a..51321628b60 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/Manifest +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/Manifest @@ -1,4 +1,6 @@ DIST patchbundle-selinux-base-policy-2.20250213-r1.tar.bz2 276621 BLAKE2B 5a4b0c5fe017fd6c59c3f5d3a1af97e31485bd4325b10a2769883091e5ea6fd205ad42f346c06e6d443aeed9e46bf962febc177f58241c4633058918db6b7fb6 SHA512 1098cfb396d56dfc4f0c2b3ff90dcb9de3bf0b081f1d0c21d793fccc78e48d35a93883bb7fd54a0acd5fa2b06edc8965cbfe72e2b8f3ea325bbee18a8c8e7163 DIST patchbundle-selinux-base-policy-2.20250618-r1.tar.bz2 306720 BLAKE2B b90de06fd143293d67f244013b9a6d775864e7fdfa54c3b5852e31c7594338dfb927b1ef105f4dd688e68932d1d20f91ad7d5cfb909a93f962a427a0a8708c0c SHA512 124424dc8c8eb0f82735d30b000568a8c4c9969363d55cf4f15a5b82a2ca7619e93e5f908cafa9f1a2c4d35d2dcf76869cac85cff909e3fccf47c8666ec15616 +DIST patchbundle-selinux-base-policy-2.20260312_p1.tar.bz2 9408379 BLAKE2B d5cb2ff2de4cf0e00dd1e84046729a69c255627d083a9dad4c750d87222001696043f58ed94e3ab0562314645cb38e41339e36dcf5cec0765749751b42389cc3 SHA512 7b0f87bb0084258a931cbace7c7b6828ed6e592cf348f1c695ec6f6b49030920eeb78cd558b14420951cc5ca6a1c1afa9e74023a7b7dae046eb13561256cd4e1 DIST refpolicy-2.20250213.tar.bz2 627837 BLAKE2B 64d64549bf1fcfc33107e8f4c842af4e3279a856c3a140d05749bae687ffadfe25e4b7383bef3618b13bbd553046d162fcd48b713500d3fd59073b5bece91008 SHA512 cbaf65dfe6d7cc886674bb37160170dac060265d5cf241bfac0c0e5ef45744f057107d81c933f01411c5cd538c95755b7a92331197e2b97b995efc4d6f266895 DIST refpolicy-2.20250618.tar.bz2 632711 BLAKE2B f522c16552fbbf66d4549bf082ece4be740018822b9b7da318c12aa3f3108a905b5f71fc6bb5e894468126123d81aa4e309912ec04c2a2e27feda00689a5ecd8 SHA512 3bfd32be63d0928c5be47707ce6d53bc3bb7b3d922fda2441d455b913eb79d33b16ba31320394aa1d9ec7afb6d9c853c3cd4c025962c6f355dbb7194bdb1c1a8 +DIST refpolicy-2.20260312.tar.bz2 649774 BLAKE2B 11f6150010a57f9dba6284021cd4c6521cec8e907f1f08fad45191fe9966846265d3c03d00aec9f3210659e864b4d40cac6cb8e4793a686a00f754191bc41079 SHA512 a34b5b08f9cd969fd6c3a2ed07ccdfea359054d0071e25e99b3978fd678e2314975eaf67c3f0931a68a407e675a73a16bb021106dde1dd20c1fff115dd8d3b29 diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/files/0001-newrole_t-run_init_t-call-auth_run_pam.patch b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/files/0001-newrole_t-run_init_t-call-auth_run_pam.patch new file mode 100644 index 00000000000..22375a7bd86 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/files/0001-newrole_t-run_init_t-call-auth_run_pam.patch @@ -0,0 +1,55 @@ +From 169f725b3ff9988de5ab9b628fc45efb8b29d0b2 Mon Sep 17 00:00:00 2001 +From: Rahul Sandhu +Date: Sat, 2 May 2026 18:22:09 +0100 +Subject: [PATCH] newrole_t, run_init_t: call auth_run_pam() + +newrole is linked with PAM: + +rsandhu@carbon ~ $ ldd /usr/bin/newrole | ugrep 'pam' + libpam.so.0 => /usr/lib64/libpam.so.0 (0x0000738cd6060000) + libpam_misc.so.0 => /usr/lib64/libpam_misc.so.0 (0x0000738cd605a000) + +And as can be seen from an AVC as well: + +avc: denied { open } for pid=1555 comm="newrole" path="/usr/share/pam/security/faillock.conf" dev="vda" ino=59482 scontext=root:staff_r:newrole_t tcontext=system_u:object_r:usr_t tclass=file permissive=1 + +The same applies for run_init: + +avc: denied { open } for pid=7430 comm="newrole" path="/usr/share/pam/security/faillock.conf" dev="vda3" ino=2007669 scontext=root:staff_r:newrole_t tcontext=system_u:object_r:usr_t tclass=file permissive=0 + +And drop the redundant call to auth_use_nsswitch(): that is implied by +auth_use_pam()[1]. + +[1] https://github.com/SELinuxProject/refpolicy/blob/c875d7da32bbd2418287a5eafe5c828d0091e757/policy/modules/system/authlogin.if#L59 + +Bug: https://bugs.gentoo.org/973082 +Signed-off-by: Rahul Sandhu +--- + refpolicy/policy/modules/system/selinuxutil.te | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/refpolicy/policy/modules/system/selinuxutil.te b/refpolicy/policy/modules/system/selinuxutil.te +index 2dc298096..2c4f79391 100644 +--- a/refpolicy/policy/modules/system/selinuxutil.te ++++ b/refpolicy/policy/modules/system/selinuxutil.te +@@ -291,7 +291,7 @@ term_relabel_all_ptys(newrole_t) + term_getattr_unallocated_ttys(newrole_t) + term_dontaudit_use_unallocated_ttys(newrole_t) + +-auth_use_nsswitch(newrole_t) ++auth_use_pam(newrole_t) + auth_run_chk_passwd(newrole_t, newrole_roles) + auth_run_upd_passwd(newrole_t, newrole_roles) + auth_rw_faillog(newrole_t) +@@ -455,7 +455,7 @@ selinux_compute_create_context(run_init_t) + selinux_compute_relabel_context(run_init_t) + selinux_compute_user_contexts(run_init_t) + +-auth_use_nsswitch(run_init_t) ++auth_use_pam(run_init_t) + auth_run_chk_passwd(run_init_t, run_init_roles) + auth_run_upd_passwd(run_init_t, run_init_roles) + auth_dontaudit_read_shadow(run_init_t) +-- +2.54.0 + diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/selinux-base-policy-2.20250213-r1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/selinux-base-policy-2.20250213-r1.ebuild deleted file mode 100644 index 498cfa08cae..00000000000 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/selinux-base-policy-2.20250213-r1.ebuild +++ /dev/null @@ -1,141 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -if [[ ${PV} == 9999* ]]; then - EGIT_REPO_URI="${SELINUX_GIT_REPO:-https://anongit.gentoo.org/git/proj/hardened-refpolicy.git}" - EGIT_BRANCH="${SELINUX_GIT_BRANCH:-master}" - EGIT_CHECKOUT_DIR="${WORKDIR}/refpolicy" - - inherit git-r3 -else - SRC_URI="https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_${PV/./_}/refpolicy-${PV}.tar.bz2 - https://dev.gentoo.org/~perfinion/patches/${PN}/patchbundle-${PN}-${PVR}.tar.bz2" - KEYWORDS="amd64 arm arm64 ~riscv x86" -fi - -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:SELinux" -DESCRIPTION="SELinux policy for core modules" - -IUSE="systemd +unconfined" - -PDEPEND="unconfined? ( sec-policy/selinux-unconfined )" -DEPEND="=sec-policy/selinux-base-${PVR}[systemd?]" -RDEPEND="${DEPEND}" -BDEPEND=" - sys-apps/checkpolicy - sys-devel/m4" - -MODS="application authlogin bootloader clock consoletype cron dmesg fstools getty hostname init iptables libraries locallogin logging lvm miscfiles modutils mount mta netutils nscd portage raid rsync selinuxutil setrans ssh staff storage su sysadm sysnetwork systemd tmpfiles udev userdomain usermanage unprivuser xdg" -DEL_MODS="hotplug" -LICENSE="GPL-2" -SLOT="0" -S="${WORKDIR}/" - -# Code entirely copied from selinux-eclass (cannot inherit due to dependency on -# itself), when reworked reinclude it. Only postinstall (where -b base.pp is -# added) needs to remain then. - -pkg_pretend() { - for i in ${POLICY_TYPES}; do - if [[ "${i}" == "targeted" ]] && ! use unconfined; then - die "If you use POLICY_TYPES=targeted, then USE=unconfined is mandatory." - fi - done -} - -src_prepare() { - local modfiles - - if [[ ${PV} != 9999* ]]; then - einfo "Applying SELinux policy updates ... " - eapply -p0 "${WORKDIR}/0001-full-patch-against-stable-release.patch" - fi - - eapply_user - - # Collect only those files needed for this particular module - for i in ${MODS}; do - modfiles="$(find "${S}"/refpolicy/policy/modules -iname $i.te) $modfiles" - modfiles="$(find "${S}"/refpolicy/policy/modules -iname $i.fc) $modfiles" - done - - for i in ${DEL_MODS}; do - [[ "${MODS}" != *${i}* ]] || die "Duplicate module in MODS and DEL_MODS: ${i}" - done - - for i in ${POLICY_TYPES}; do - mkdir "${S}"/${i} || die "Failed to create directory ${S}/${i}" - cp "${S}"/refpolicy/doc/Makefile.example "${S}"/${i}/Makefile \ - || die "Failed to copy Makefile.example to ${S}/${i}/Makefile" - - cp ${modfiles} "${S}"/${i} \ - || die "Failed to copy the module files to ${S}/${i}" - done -} - -src_compile() { - for i in ${POLICY_TYPES}; do - emake NAME=$i SHAREDIR="${SYSROOT%/}/usr/share/selinux" -C "${S}"/${i} - done -} - -src_install() { - local BASEDIR="/usr/share/selinux" - - for i in ${POLICY_TYPES}; do - for j in ${MODS}; do - einfo "Installing ${i} ${j} policy package" - insinto ${BASEDIR}/${i} - doins "${S}"/${i}/${j}.pp - done - done -} - -pkg_postinst() { - # Set root path and don't load policy into the kernel when cross compiling - local root_opts="" - if [[ "${ROOT}" != "" ]]; then - root_opts="-p ${ROOT} -n" - fi - - # Override the command from the eclass, we need to load in base as well here - local COMMAND="-i base.pp" - if has_version "/dev/null; then + out=$(qdepends -CiqqrF '%[CATEGORY]%[PN]%[SLOT]' -Q "${CATEGORY}/${PN}") + status=$? + cmd='qdepends' + elif command -v equery &>/dev/null; then + out=$(equery -Cq depends "${CATEGORY}/${PN}") + status=$? + cmd='equery' + else + ewarn "Unable to calculate reverse dependencies for policy: both qdepends and equery were not found." + ewarn "Skipping package file relabelling..." + return + fi + + if [[ "${status}" -ne 0 ]]; then + ewarn "Failed to calculate reverse dependencies for policy: ${cmd} returned ${status}." + ewarn "Skipping package file relabelling..." + return + fi + + # Policy packages may pull in other policy packages, filter those out. + readarray -t PKGSET <<<"$(echo "${out}" | grep -v 'sec-policy/selinux-')" + + [[ "${#PKGSET[@]}" -ne 0 ]] && rlpkg "${PKGSET[@]}" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/selinux-base-policy-2.20250618-r1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/selinux-base-policy-2.20250618-r1.ebuild deleted file mode 100644 index 498cfa08cae..00000000000 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/selinux-base-policy-2.20250618-r1.ebuild +++ /dev/null @@ -1,141 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -if [[ ${PV} == 9999* ]]; then - EGIT_REPO_URI="${SELINUX_GIT_REPO:-https://anongit.gentoo.org/git/proj/hardened-refpolicy.git}" - EGIT_BRANCH="${SELINUX_GIT_BRANCH:-master}" - EGIT_CHECKOUT_DIR="${WORKDIR}/refpolicy" - - inherit git-r3 -else - SRC_URI="https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_${PV/./_}/refpolicy-${PV}.tar.bz2 - https://dev.gentoo.org/~perfinion/patches/${PN}/patchbundle-${PN}-${PVR}.tar.bz2" - KEYWORDS="amd64 arm arm64 ~riscv x86" -fi - -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:SELinux" -DESCRIPTION="SELinux policy for core modules" - -IUSE="systemd +unconfined" - -PDEPEND="unconfined? ( sec-policy/selinux-unconfined )" -DEPEND="=sec-policy/selinux-base-${PVR}[systemd?]" -RDEPEND="${DEPEND}" -BDEPEND=" - sys-apps/checkpolicy - sys-devel/m4" - -MODS="application authlogin bootloader clock consoletype cron dmesg fstools getty hostname init iptables libraries locallogin logging lvm miscfiles modutils mount mta netutils nscd portage raid rsync selinuxutil setrans ssh staff storage su sysadm sysnetwork systemd tmpfiles udev userdomain usermanage unprivuser xdg" -DEL_MODS="hotplug" -LICENSE="GPL-2" -SLOT="0" -S="${WORKDIR}/" - -# Code entirely copied from selinux-eclass (cannot inherit due to dependency on -# itself), when reworked reinclude it. Only postinstall (where -b base.pp is -# added) needs to remain then. - -pkg_pretend() { - for i in ${POLICY_TYPES}; do - if [[ "${i}" == "targeted" ]] && ! use unconfined; then - die "If you use POLICY_TYPES=targeted, then USE=unconfined is mandatory." - fi - done -} - -src_prepare() { - local modfiles - - if [[ ${PV} != 9999* ]]; then - einfo "Applying SELinux policy updates ... " - eapply -p0 "${WORKDIR}/0001-full-patch-against-stable-release.patch" - fi - - eapply_user - - # Collect only those files needed for this particular module - for i in ${MODS}; do - modfiles="$(find "${S}"/refpolicy/policy/modules -iname $i.te) $modfiles" - modfiles="$(find "${S}"/refpolicy/policy/modules -iname $i.fc) $modfiles" - done - - for i in ${DEL_MODS}; do - [[ "${MODS}" != *${i}* ]] || die "Duplicate module in MODS and DEL_MODS: ${i}" - done - - for i in ${POLICY_TYPES}; do - mkdir "${S}"/${i} || die "Failed to create directory ${S}/${i}" - cp "${S}"/refpolicy/doc/Makefile.example "${S}"/${i}/Makefile \ - || die "Failed to copy Makefile.example to ${S}/${i}/Makefile" - - cp ${modfiles} "${S}"/${i} \ - || die "Failed to copy the module files to ${S}/${i}" - done -} - -src_compile() { - for i in ${POLICY_TYPES}; do - emake NAME=$i SHAREDIR="${SYSROOT%/}/usr/share/selinux" -C "${S}"/${i} - done -} - -src_install() { - local BASEDIR="/usr/share/selinux" - - for i in ${POLICY_TYPES}; do - for j in ${MODS}; do - einfo "Installing ${i} ${j} policy package" - insinto ${BASEDIR}/${i} - doins "${S}"/${i}/${j}.pp - done - done -} - -pkg_postinst() { - # Set root path and don't load policy into the kernel when cross compiling - local root_opts="" - if [[ "${ROOT}" != "" ]]; then - root_opts="-p ${ROOT} -n" - fi - - # Override the command from the eclass, we need to load in base as well here - local COMMAND="-i base.pp" - if has_version "/dev/null; then + out=$(qdepends -CiqqrF '%[CATEGORY]%[PN]%[SLOT]' -Q "${CATEGORY}/${PN}") + status=$? + cmd='qdepends' + elif command -v equery &>/dev/null; then + out=$(equery -Cq depends "${CATEGORY}/${PN}") + status=$? + cmd='equery' + else + ewarn "Unable to calculate reverse dependencies for policy: both qdepends and equery were not found." + ewarn "Skipping package file relabelling..." + return + fi + + if [[ "${status}" -ne 0 ]]; then + ewarn "Failed to calculate reverse dependencies for policy: ${cmd} returned ${status}." + ewarn "Skipping package file relabelling..." + return + fi + + # Policy packages may pull in other policy packages, filter those out. + readarray -t PKGSET <<<"$(echo "${out}" | grep -v 'sec-policy/selinux-')" + + [[ "${#PKGSET[@]}" -ne 0 ]] && rlpkg "${PKGSET[@]}" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/selinux-base-policy-2.20260312_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/selinux-base-policy-2.20260312_p1.ebuild new file mode 100644 index 00000000000..6f573d1783f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/selinux-base-policy-2.20260312_p1.ebuild @@ -0,0 +1,236 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="SELinux policy for core modules" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:SELinux" + +if [[ "${PV}" = 9999* ]]; then + EGIT_REPO_URI="${SELINUX_GIT_REPO:-https://anongit.gentoo.org/git/proj/hardened-refpolicy.git}" + EGIT_BRANCH="${SELINUX_GIT_BRANCH:-master}" + EGIT_CHECKOUT_DIR="${WORKDIR}/refpolicy" + + inherit git-r3 +else + MY_PV=$(ver_cut 1-2) + SRC_URI="https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_${MY_PV/./_}/refpolicy-${MY_PV}.tar.bz2 + https://dev.gentoo.org/~perfinion/patches/${PN}/patchbundle-${P}.tar.bz2" + KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" +fi + +S="${WORKDIR}/refpolicy" + +LICENSE="GPL-2" +SLOT="0" +IUSE=" + systemd +unconfined + +selinux_policy_types_targeted +selinux_policy_types_strict +selinux_policy_types_mcs +selinux_policy_types_mls +" +REQUIRED_USE=" + || ( selinux_policy_types_targeted selinux_policy_types_strict selinux_policy_types_mcs selinux_policy_types_mls ) + selinux_policy_types_targeted? ( unconfined ) +" + +PDEPEND="unconfined? ( sec-policy/selinux-unconfined )" +DEPEND=" + ~sec-policy/selinux-base-${PV}[selinux_policy_types_targeted?,selinux_policy_types_strict?,selinux_policy_types_mcs?,selinux_policy_types_mls?,systemd?] +" +RDEPEND="${DEPEND}" +BDEPEND=" + sys-apps/checkpolicy + sys-devel/m4 +" + +MODS="application authlogin bootloader clock consoletype cron dmesg fstools getty hostname init iptables libraries locallogin logging lvm miscfiles modutils mount mta netutils nscd portage raid rsync selinuxutil setrans ssh staff storage su sysadm sysnetwork systemd tmpfiles udev userdomain usermanage unprivuser xdg" +# A previous, old release of refpolicy had the hotplug policy module. However, +# it has since been removed[1]. As such, remove it if we see it installed. +# [1] https://github.com/gentoo/hardened-refpolicy/commit/5618680a2e148db02ae5614a13cc878f1616d8a2 +DEL_MODS="hotplug" + +# Code entirely copied from selinux-eclass (cannot inherit due to dependency on +# itself), when reworked reinclude it. Only postinstall (where -b base.pp is +# added) needs to remain then. + +src_prepare() { + local modfiles + + if [[ "${PV}" != 9999* ]]; then + cd "${WORKDIR}" || die + einfo "Applying SELinux policy updates ... " + eapply -p0 "${WORKDIR}/0001-full-patch-against-stable-release.patch" + fi + + cd "${S}" || die + eapply_user + + # Collect only those files needed for this particular module + for mod in ${MODS}; do + modfiles="$(find "${S}/policy/modules" -iname "${mod}.te") $modfiles" + modfiles="$(find "${S}/policy/modules" -iname "${mod}.fc") $modfiles" + modfiles="$(find "${S}/policy/modules" -iname "${mod}.cil") $modfiles" + done + + # TODO: should probably be done earlier? + for i in ${DEL_MODS}; do + [[ "${MODS}" != *${i}* ]] || die "Duplicate module in MODS and DEL_MODS: ${i}" + done + + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + mkdir "${WORKDIR}/${type}" || die "Failed to create directory ${WORKDIR}/${type}" + cp "${S}/doc/Makefile.example" "${WORKDIR}/${type}/Makefile" \ + || die "Failed to copy Makefile.example to ${WORKDIR}/${type}/Makefile" + + cp ${modfiles} "${WORKDIR}/${type}" \ + || die "Failed to copy the module files to ${WORKDIR}/${type}" + fi + done +} + +src_compile() { + local makeuse="" + # We use IUSE instead of USE so that other variables set in the ebuild + # environment, such as architecture ones, are not included. + for useflag in ${IUSE}; do + # Advance past a possible '+' character: that is NOT part of the USE flag, + # but instead indicates whether it is enabled by default. + useflag="${useflag##+}" + + # Only additional USE flags defined in our consumers should be added to + # build options: SELINUX_POLICY_TYPES should NOT be passed to the policy + # build system. + [[ "${useflag}" = selinux_policy_types_* ]] && continue + + use ${useflag} && makeuse="${makeuse} -D use_${useflag}" + done + + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + # Support USE flags in builds + export M4PARAM="${makeuse}" + emake NAME="${type}" SHAREDIR="${ESYSROOT}/usr/share/selinux" -C "${WORKDIR}/${type}" + fi + done +} + +src_install() { + local BASEDIR="/usr/share/selinux" + + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + for mod in ${MODS}; do + einfo "Installing ${type} ${mod} policy package" + insinto "${BASEDIR}/${type}" + if [[ -f "${WORKDIR}/${type}/${mod}.pp" ]]; then + doins "${WORKDIR}/${type}/${mod}.pp" + elif [[ -f "${WORKDIR}/${type}/${mod}.cil" ]]; then + doins "${WORKDIR}/${type}/${mod}.cil" + fi + done + fi + done +} + +pkg_postinst() { + # Set root path and don't load policy into the kernel when cross compiling + local root_opts="" + if [[ -n ${ROOT} ]]; then + root_opts="-p ${ROOT} -n" + fi + + # Override the command from the eclass, we need to load in base as well here + local COMMAND="-i base.pp" + + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + einfo "Inserting the following modules, with base, into the ${type} module store: ${MODS}" + + cd "${ROOT}/usr/share/selinux/${type}" || die "Could not enter /usr/share/selinux/${type}" + for mod in ${MODS}; do + if [[ -f "${mod}.pp" ]]; then + COMMAND="${mod}.pp ${COMMAND}" + elif [[ -f "${mod}.cil" ]]; then + COMMAND="${mod}.cil ${COMMAND}" + fi + done + + semodule ${root_opts} -s ${type} -i ${COMMAND} + if [[ $? -ne 0 ]]; then + ewarn "SELinux module load failed. Trying full reload..." + + semodule ${root_opts} -s ${type} -i ./*.pp + + if [[ $? -ne 0 ]]; then + ewarn "Failed to reload SELinux policies." + ewarn "" + ewarn "If this is *not* the last SELinux module package being installed," + ewarn "then you can safely ignore this as the reloads will be retried" + ewarn "with other, recent modules." + ewarn "" + ewarn "If it is the last SELinux module package being installed however," + ewarn "then it is advised to look at the error above and take appropriate" + ewarn "action since the new SELinux policies are not loaded until the" + ewarn "command finished successfully." + ewarn "" + ewarn "To reload, run the following command:" + ewarn " semodule -i /usr/share/selinux/${type}/*.pp" + else + einfo "SELinux modules reloaded successfully." + fi + else + einfo "SELinux modules loaded successfully." + fi + + # And now, remove any old modules that should no longer be installed. + for mod in ${DEL_MODS}; do + if semodule ${root_opts} -s "${type}" -l | grep -q "\b${mod}\b"; then + einfo "Removing obsolete ${type} ${mod} policy package" + semodule ${root_opts} -s "${type}" -r "${mod}" + if [[ $? -ne 0 ]]; then + ewarn "Failed to remove obsolete ${type} ${mod} policy package" + fi + fi + done + + COMMAND="" + fi + done + + # Don't relabel when cross compiling + if [[ -z ${ROOT} ]]; then + # Relabel depending packages. This entire section is a hack, and a violation of tree policy; + # it relies on PM specific functionality (qdepends and equery, which are portage specific) and + # hence is not PMS compliant. This should be remove and replaced with a more robust, PMS-compliant + # implementation as soon as possible. + local PKGSET=() + local out + local status + local cmd + + if command -v qdepends &>/dev/null; then + out=$(qdepends -CiqqrF '%[CATEGORY]%[PN]%[SLOT]' -Q "${CATEGORY}/${PN}") + status=$? + cmd='qdepends' + elif command -v equery &>/dev/null; then + out=$(equery -Cq depends "${CATEGORY}/${PN}") + status=$? + cmd='equery' + else + ewarn "Unable to calculate reverse dependencies for policy: both qdepends and equery were not found." + ewarn "Skipping package file relabelling..." + return + fi + + if [[ "${status}" -ne 0 ]]; then + ewarn "Failed to calculate reverse dependencies for policy: ${cmd} returned ${status}." + ewarn "Skipping package file relabelling..." + return + fi + + # Policy packages may pull in other policy packages, filter those out. + readarray -t PKGSET <<<"$(echo "${out}" | grep -v 'sec-policy/selinux-')" + + [[ "${#PKGSET[@]}" -ne 0 ]] && rlpkg "${PKGSET[@]}" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/selinux-base-policy-9999.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/selinux-base-policy-9999.ebuild index 08b8534f7f5..6f573d1783f 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/selinux-base-policy-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/selinux-base-policy-9999.ebuild @@ -1,141 +1,236 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="7" +EAPI=8 -if [[ ${PV} == 9999* ]]; then +DESCRIPTION="SELinux policy for core modules" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:SELinux" + +if [[ "${PV}" = 9999* ]]; then EGIT_REPO_URI="${SELINUX_GIT_REPO:-https://anongit.gentoo.org/git/proj/hardened-refpolicy.git}" EGIT_BRANCH="${SELINUX_GIT_BRANCH:-master}" EGIT_CHECKOUT_DIR="${WORKDIR}/refpolicy" inherit git-r3 else - SRC_URI="https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_${PV/./_}/refpolicy-${PV}.tar.bz2 - https://dev.gentoo.org/~perfinion/patches/${PN}/patchbundle-${PN}-${PVR}.tar.bz2" + MY_PV=$(ver_cut 1-2) + SRC_URI="https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_${MY_PV/./_}/refpolicy-${MY_PV}.tar.bz2 + https://dev.gentoo.org/~perfinion/patches/${PN}/patchbundle-${P}.tar.bz2" KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" fi -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:SELinux" -DESCRIPTION="SELinux policy for core modules" +S="${WORKDIR}/refpolicy" -IUSE="systemd +unconfined" +LICENSE="GPL-2" +SLOT="0" +IUSE=" + systemd +unconfined + +selinux_policy_types_targeted +selinux_policy_types_strict +selinux_policy_types_mcs +selinux_policy_types_mls +" +REQUIRED_USE=" + || ( selinux_policy_types_targeted selinux_policy_types_strict selinux_policy_types_mcs selinux_policy_types_mls ) + selinux_policy_types_targeted? ( unconfined ) +" PDEPEND="unconfined? ( sec-policy/selinux-unconfined )" -DEPEND="=sec-policy/selinux-base-${PVR}[systemd?]" +DEPEND=" + ~sec-policy/selinux-base-${PV}[selinux_policy_types_targeted?,selinux_policy_types_strict?,selinux_policy_types_mcs?,selinux_policy_types_mls?,systemd?] +" RDEPEND="${DEPEND}" BDEPEND=" sys-apps/checkpolicy - sys-devel/m4" + sys-devel/m4 +" MODS="application authlogin bootloader clock consoletype cron dmesg fstools getty hostname init iptables libraries locallogin logging lvm miscfiles modutils mount mta netutils nscd portage raid rsync selinuxutil setrans ssh staff storage su sysadm sysnetwork systemd tmpfiles udev userdomain usermanage unprivuser xdg" +# A previous, old release of refpolicy had the hotplug policy module. However, +# it has since been removed[1]. As such, remove it if we see it installed. +# [1] https://github.com/gentoo/hardened-refpolicy/commit/5618680a2e148db02ae5614a13cc878f1616d8a2 DEL_MODS="hotplug" -LICENSE="GPL-2" -SLOT="0" -S="${WORKDIR}/" # Code entirely copied from selinux-eclass (cannot inherit due to dependency on # itself), when reworked reinclude it. Only postinstall (where -b base.pp is # added) needs to remain then. -pkg_pretend() { - for i in ${POLICY_TYPES}; do - if [[ "${i}" == "targeted" ]] && ! use unconfined; then - die "If you use POLICY_TYPES=targeted, then USE=unconfined is mandatory." - fi - done -} - src_prepare() { local modfiles - if [[ ${PV} != 9999* ]]; then + if [[ "${PV}" != 9999* ]]; then + cd "${WORKDIR}" || die einfo "Applying SELinux policy updates ... " eapply -p0 "${WORKDIR}/0001-full-patch-against-stable-release.patch" fi + cd "${S}" || die eapply_user # Collect only those files needed for this particular module - for i in ${MODS}; do - modfiles="$(find "${S}"/refpolicy/policy/modules -iname $i.te) $modfiles" - modfiles="$(find "${S}"/refpolicy/policy/modules -iname $i.fc) $modfiles" + for mod in ${MODS}; do + modfiles="$(find "${S}/policy/modules" -iname "${mod}.te") $modfiles" + modfiles="$(find "${S}/policy/modules" -iname "${mod}.fc") $modfiles" + modfiles="$(find "${S}/policy/modules" -iname "${mod}.cil") $modfiles" done + # TODO: should probably be done earlier? for i in ${DEL_MODS}; do [[ "${MODS}" != *${i}* ]] || die "Duplicate module in MODS and DEL_MODS: ${i}" done - for i in ${POLICY_TYPES}; do - mkdir "${S}"/${i} || die "Failed to create directory ${S}/${i}" - cp "${S}"/refpolicy/doc/Makefile.example "${S}"/${i}/Makefile \ - || die "Failed to copy Makefile.example to ${S}/${i}/Makefile" + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + mkdir "${WORKDIR}/${type}" || die "Failed to create directory ${WORKDIR}/${type}" + cp "${S}/doc/Makefile.example" "${WORKDIR}/${type}/Makefile" \ + || die "Failed to copy Makefile.example to ${WORKDIR}/${type}/Makefile" - cp ${modfiles} "${S}"/${i} \ - || die "Failed to copy the module files to ${S}/${i}" + cp ${modfiles} "${WORKDIR}/${type}" \ + || die "Failed to copy the module files to ${WORKDIR}/${type}" + fi done } src_compile() { - for i in ${POLICY_TYPES}; do - emake NAME=$i SHAREDIR="${SYSROOT%/}/usr/share/selinux" -C "${S}"/${i} + local makeuse="" + # We use IUSE instead of USE so that other variables set in the ebuild + # environment, such as architecture ones, are not included. + for useflag in ${IUSE}; do + # Advance past a possible '+' character: that is NOT part of the USE flag, + # but instead indicates whether it is enabled by default. + useflag="${useflag##+}" + + # Only additional USE flags defined in our consumers should be added to + # build options: SELINUX_POLICY_TYPES should NOT be passed to the policy + # build system. + [[ "${useflag}" = selinux_policy_types_* ]] && continue + + use ${useflag} && makeuse="${makeuse} -D use_${useflag}" + done + + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + # Support USE flags in builds + export M4PARAM="${makeuse}" + emake NAME="${type}" SHAREDIR="${ESYSROOT}/usr/share/selinux" -C "${WORKDIR}/${type}" + fi done } src_install() { local BASEDIR="/usr/share/selinux" - for i in ${POLICY_TYPES}; do - for j in ${MODS}; do - einfo "Installing ${i} ${j} policy package" - insinto ${BASEDIR}/${i} - doins "${S}"/${i}/${j}.pp - done + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + for mod in ${MODS}; do + einfo "Installing ${type} ${mod} policy package" + insinto "${BASEDIR}/${type}" + if [[ -f "${WORKDIR}/${type}/${mod}.pp" ]]; then + doins "${WORKDIR}/${type}/${mod}.pp" + elif [[ -f "${WORKDIR}/${type}/${mod}.cil" ]]; then + doins "${WORKDIR}/${type}/${mod}.cil" + fi + done + fi done } pkg_postinst() { # Set root path and don't load policy into the kernel when cross compiling local root_opts="" - if [[ "${ROOT}" != "" ]]; then + if [[ -n ${ROOT} ]]; then root_opts="-p ${ROOT} -n" fi # Override the command from the eclass, we need to load in base as well here local COMMAND="-i base.pp" - if has_version "/dev/null; then + out=$(qdepends -CiqqrF '%[CATEGORY]%[PN]%[SLOT]' -Q "${CATEGORY}/${PN}") + status=$? + cmd='qdepends' + elif command -v equery &>/dev/null; then + out=$(equery -Cq depends "${CATEGORY}/${PN}") + status=$? + cmd='equery' + else + ewarn "Unable to calculate reverse dependencies for policy: both qdepends and equery were not found." + ewarn "Skipping package file relabelling..." + return fi - if [[ -n "${PKGSET}" ]] ; then - rlpkg ${PKGSET}; + + if [[ "${status}" -ne 0 ]]; then + ewarn "Failed to calculate reverse dependencies for policy: ${cmd} returned ${status}." + ewarn "Skipping package file relabelling..." + return fi + + # Policy packages may pull in other policy packages, filter those out. + readarray -t PKGSET <<<"$(echo "${out}" | grep -v 'sec-policy/selinux-')" + + [[ "${#PKGSET[@]}" -ne 0 ]] && rlpkg "${PKGSET[@]}" fi } diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/Manifest b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/Manifest index dc0c6d3942a..51321628b60 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/Manifest +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/Manifest @@ -1,4 +1,6 @@ DIST patchbundle-selinux-base-policy-2.20250213-r1.tar.bz2 276621 BLAKE2B 5a4b0c5fe017fd6c59c3f5d3a1af97e31485bd4325b10a2769883091e5ea6fd205ad42f346c06e6d443aeed9e46bf962febc177f58241c4633058918db6b7fb6 SHA512 1098cfb396d56dfc4f0c2b3ff90dcb9de3bf0b081f1d0c21d793fccc78e48d35a93883bb7fd54a0acd5fa2b06edc8965cbfe72e2b8f3ea325bbee18a8c8e7163 DIST patchbundle-selinux-base-policy-2.20250618-r1.tar.bz2 306720 BLAKE2B b90de06fd143293d67f244013b9a6d775864e7fdfa54c3b5852e31c7594338dfb927b1ef105f4dd688e68932d1d20f91ad7d5cfb909a93f962a427a0a8708c0c SHA512 124424dc8c8eb0f82735d30b000568a8c4c9969363d55cf4f15a5b82a2ca7619e93e5f908cafa9f1a2c4d35d2dcf76869cac85cff909e3fccf47c8666ec15616 +DIST patchbundle-selinux-base-policy-2.20260312_p1.tar.bz2 9408379 BLAKE2B d5cb2ff2de4cf0e00dd1e84046729a69c255627d083a9dad4c750d87222001696043f58ed94e3ab0562314645cb38e41339e36dcf5cec0765749751b42389cc3 SHA512 7b0f87bb0084258a931cbace7c7b6828ed6e592cf348f1c695ec6f6b49030920eeb78cd558b14420951cc5ca6a1c1afa9e74023a7b7dae046eb13561256cd4e1 DIST refpolicy-2.20250213.tar.bz2 627837 BLAKE2B 64d64549bf1fcfc33107e8f4c842af4e3279a856c3a140d05749bae687ffadfe25e4b7383bef3618b13bbd553046d162fcd48b713500d3fd59073b5bece91008 SHA512 cbaf65dfe6d7cc886674bb37160170dac060265d5cf241bfac0c0e5ef45744f057107d81c933f01411c5cd538c95755b7a92331197e2b97b995efc4d6f266895 DIST refpolicy-2.20250618.tar.bz2 632711 BLAKE2B f522c16552fbbf66d4549bf082ece4be740018822b9b7da318c12aa3f3108a905b5f71fc6bb5e894468126123d81aa4e309912ec04c2a2e27feda00689a5ecd8 SHA512 3bfd32be63d0928c5be47707ce6d53bc3bb7b3d922fda2441d455b913eb79d33b16ba31320394aa1d9ec7afb6d9c853c3cd4c025962c6f355dbb7194bdb1c1a8 +DIST refpolicy-2.20260312.tar.bz2 649774 BLAKE2B 11f6150010a57f9dba6284021cd4c6521cec8e907f1f08fad45191fe9966846265d3c03d00aec9f3210659e864b4d40cac6cb8e4793a686a00f754191bc41079 SHA512 a34b5b08f9cd969fd6c3a2ed07ccdfea359054d0071e25e99b3978fd678e2314975eaf67c3f0931a68a407e675a73a16bb021106dde1dd20c1fff115dd8d3b29 diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20250213-r1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20250213-r1.ebuild deleted file mode 100644 index b3edd7c628f..00000000000 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20250213-r1.ebuild +++ /dev/null @@ -1,158 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -PYTHON_COMPAT=( python3_{10..12} ) -PYTHON_REQ_USE="xml(+)" -inherit python-any-r1 - -if [[ ${PV} == 9999* ]]; then - EGIT_REPO_URI="${SELINUX_GIT_REPO:-https://anongit.gentoo.org/git/proj/hardened-refpolicy.git}" - EGIT_BRANCH="${SELINUX_GIT_BRANCH:-master}" - EGIT_CHECKOUT_DIR="${WORKDIR}/refpolicy" - - inherit git-r3 -else - SRC_URI="https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_${PV/./_}/refpolicy-${PV}.tar.bz2 - https://dev.gentoo.org/~perfinion/patches/selinux-base-policy/patchbundle-selinux-base-policy-${PVR}.tar.bz2" - - KEYWORDS="amd64 arm arm64 ~riscv x86" -fi - -IUSE="doc +unknown-perms systemd +ubac +unconfined" - -DESCRIPTION="Gentoo base policy for SELinux" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:SELinux" -LICENSE="GPL-2" -SLOT="0" - -RDEPEND=">=sys-apps/policycoreutils-2.8" -DEPEND="${RDEPEND}" -BDEPEND=" - ${PYTHON_DEPS} - >=sys-apps/checkpolicy-2.8 - sys-devel/m4" - -S=${WORKDIR}/ - -src_prepare() { - if [[ ${PV} != 9999* ]]; then - einfo "Applying SELinux policy updates ... " - eapply -p0 "${WORKDIR}/0001-full-patch-against-stable-release.patch" - fi - - eapply_user - - cd "${S}/refpolicy" || die - emake bare -} - -src_configure() { - [ -z "${POLICY_TYPES}" ] && local POLICY_TYPES="targeted strict mls mcs" - - # Update the SELinux refpolicy capabilities based on the users' USE flags. - if use unknown-perms; then - sed -i -e '/^UNK_PERMS/s/deny/allow/' "${S}/refpolicy/build.conf" \ - || die "Failed to allow Unknown Permissions Handling" - sed -i -e '/^UNK_PERMS/s/deny/allow/' "${S}/refpolicy/Makefile" \ - || die "Failed to allow Unknown Permissions Handling" - fi - - if ! use ubac; then - sed -i -e '/^UBAC/s/y/n/' "${S}/refpolicy/build.conf" \ - || die "Failed to disable User Based Access Control" - fi - - if use systemd; then - sed -i -e '/^SYSTEMD/s/n/y/' "${S}/refpolicy/build.conf" \ - || die "Failed to enable SystemD" - fi - - echo "DISTRO = gentoo" >> "${S}/refpolicy/build.conf" || die - - # Prepare initial configuration - cd "${S}/refpolicy" || die - emake conf - - # Setup the policies based on the types delivered by the end user. - # These types can be "targeted", "strict", "mcs" and "mls". - for i in ${POLICY_TYPES}; do - cp -a "${S}/refpolicy" "${S}/${i}" || die - cd "${S}/${i}" || die - - sed -i -e "/= module/d" "${S}/${i}/policy/modules.conf" || die - - sed -i -e '/^QUIET/s/n/y/' -e "/^NAME/s/refpolicy/$i/" \ - "${S}/${i}/build.conf" || die "build.conf setup failed." - - if [[ "${i}" == "mls" ]] || [[ "${i}" == "mcs" ]]; - then - # MCS/MLS require additional settings - sed -i -e "/^TYPE/s/standard/${i}/" "${S}/${i}/build.conf" \ - || die "failed to set type to mls" - fi - - if [ "${i}" == "targeted" ]; then - sed -i -e '/root/d' -e 's/user_u/unconfined_u/' \ - "${S}/${i}/config/appconfig-standard/seusers" \ - || die "targeted seusers setup failed." - fi - - if [ "${i}" != "targeted" ] && [ "${i}" != "strict" ] && use unconfined; then - sed -i -e '/root/d' -e 's/user_u/unconfined_u/' \ - "${S}/${i}/config/appconfig-${i}/seusers" \ - || die "policy seusers setup failed." - fi - done -} - -src_compile() { - [ -z "${POLICY_TYPES}" ] && local POLICY_TYPES="targeted strict mls mcs" - - for i in ${POLICY_TYPES}; do - cd "${S}/${i}" || die - emake base - if use doc; then - emake html - fi - done -} - -src_install() { - [ -z "${POLICY_TYPES}" ] && local POLICY_TYPES="targeted strict mls mcs" - - for i in ${POLICY_TYPES}; do - cd "${S}/${i}" || die - - emake DESTDIR="${D}" install - emake DESTDIR="${D}" install-headers - - echo "run_init_t" > "${D}/etc/selinux/${i}/contexts/run_init_type" || die - - echo "textrel_shlib_t" >> "${D}/etc/selinux/${i}/contexts/customizable_types" || die - - # libsemanage won't make this on its own - keepdir "/etc/selinux/${i}/policy" - - if use doc; then - docinto ${i}/html - dodoc -r doc/html/*; - fi - - insinto /usr/share/selinux/devel; - doins doc/policy.xml; - - done - - docinto / - dodoc doc/Makefile.example doc/example.{te,fc,if} - - doman man/man8/*.8; - - insinto /etc/selinux - doins "${FILESDIR}/config" - - insinto /usr/share/portage/config/sets - doins "${FILESDIR}/selinux.conf" -} diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20250213_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20250213_p1.ebuild new file mode 100644 index 00000000000..549705fab3f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20250213_p1.ebuild @@ -0,0 +1,162 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_REQ_USE="xml(+)" + +inherit python-any-r1 + +DESCRIPTION="Gentoo base policy for SELinux" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:SELinux" + +if [[ "${PV}" = 9999* ]]; then + EGIT_REPO_URI="${SELINUX_GIT_REPO:-https://anongit.gentoo.org/git/proj/hardened-refpolicy.git}" + EGIT_BRANCH="${SELINUX_GIT_BRANCH:-master}" + EGIT_CHECKOUT_DIR="${WORKDIR}/refpolicy" + + inherit git-r3 +else + MY_PV=$(ver_cut 1-2) + SRC_URI="https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_${MY_PV/./_}/refpolicy-${MY_PV}.tar.bz2 + https://dev.gentoo.org/~perfinion/patches/selinux-base-policy/patchbundle-selinux-base-policy-${PV/_p/-r}.tar.bz2" + KEYWORDS="amd64 arm arm64 ~riscv x86" +fi + +S="${WORKDIR}" + +LICENSE="GPL-2" +SLOT="0" +IUSE=" + doc +unknown-perms systemd +ubac +unconfined + +selinux_policy_types_targeted +selinux_policy_types_strict +selinux_policy_types_mcs +selinux_policy_types_mls +" +REQUIRED_USE=" + || ( selinux_policy_types_targeted selinux_policy_types_strict selinux_policy_types_mcs selinux_policy_types_mls ) +" + +RDEPEND=">=sys-apps/policycoreutils-2.8" +DEPEND="${RDEPEND}" +BDEPEND=" + ${PYTHON_DEPS} + >=sys-apps/checkpolicy-2.8 + sys-devel/m4 +" + +src_prepare() { + if [[ "${PV}" != 9999* ]]; then + einfo "Applying SELinux policy updates... " + eapply -p0 "${WORKDIR}/0001-full-patch-against-stable-release.patch" + fi + + eapply_user + + cd "${S}/refpolicy" || die + emake bare +} + +src_configure() { + # Update the SELinux refpolicy capabilities based on the users' USE flags. + if use unknown-perms; then + sed -i -e '/^UNK_PERMS/s/deny/allow/' "${S}/refpolicy/build.conf" \ + || die "Failed to allow Unknown Permissions Handling" + sed -i -e '/^UNK_PERMS/s/deny/allow/' "${S}/refpolicy/Makefile" \ + || die "Failed to allow Unknown Permissions Handling" + fi + + if ! use ubac; then + sed -i -e '/^UBAC/s/y/n/' "${S}/refpolicy/build.conf" \ + || die "Failed to disable User Based Access Control" + fi + + if use systemd; then + sed -i -e '/^SYSTEMD/s/n/y/' "${S}/refpolicy/build.conf" \ + || die "Failed to enable SystemD" + fi + + echo "DISTRO = gentoo" >> "${S}/refpolicy/build.conf" || die + + # Prepare initial configuration + cd "${S}/refpolicy" || die + emake conf + + # Setup the policies based on the types delivered by the end user. + # These types can be "targeted", "strict", "mcs" and "mls". + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + cp -a "${S}/refpolicy" "${S}/${type}" || die + cd "${S}/${type}" || die + + sed -i -e "/= module/d" "${S}/${type}/policy/modules.conf" || die + + sed -i -e '/^QUIET/s/n/y/' -e "/^NAME/s/refpolicy/${type}/" \ + "${S}/${type}/build.conf" || die "build.conf setup failed." + + if [[ "${type}" = "mls" || "${type}" = "mcs" ]]; then + # MCS/MLS require additional settings + sed -i -e "/^TYPE/s/standard/${type}/" "${S}/${type}/build.conf" \ + || die "failed to set type to mls" + fi + + if [[ "${type}" = "targeted" ]]; then + sed -i -e '/root/d' -e 's/user_u/unconfined_u/' \ + "${S}/${type}/config/appconfig-standard/seusers" \ + || die "targeted seusers setup failed." + fi + + if [[ "${type}" != "targeted" && "${type}" != "strict" ]] && use unconfined; then + sed -i -e '/root/d' -e 's/user_u/unconfined_u/' \ + "${S}/${type}/config/appconfig-${type}/seusers" \ + || die "policy seusers setup failed." + fi + fi + done +} + +src_compile() { + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + cd "${S}/${type}" || die + emake base + use doc && emake html + fi + done +} + +src_install() { + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + cd "${S}/${type}" || die + + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install-headers + + echo "run_init_t" > "${D}/etc/selinux/${type}/contexts/run_init_type" || die + + echo "textrel_shlib_t" >> "${D}/etc/selinux/${type}/contexts/customizable_types" || die + + # libsemanage won't make this on its own + keepdir "/etc/selinux/${type}/policy" + + if use doc; then + docinto "${type}/html" + dodoc -r doc/html/*; + fi + + insinto /usr/share/selinux/devel; + doins doc/policy.xml; + fi + done + + docinto / + dodoc doc/Makefile.example doc/example.{te,fc,if} + + doman man/man8/*.8; + + insinto /etc/selinux + doins "${FILESDIR}/config" + + insinto /usr/share/portage/config/sets + doins "${FILESDIR}/selinux.conf" +} diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20250618-r1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20250618-r1.ebuild deleted file mode 100644 index b3edd7c628f..00000000000 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20250618-r1.ebuild +++ /dev/null @@ -1,158 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -PYTHON_COMPAT=( python3_{10..12} ) -PYTHON_REQ_USE="xml(+)" -inherit python-any-r1 - -if [[ ${PV} == 9999* ]]; then - EGIT_REPO_URI="${SELINUX_GIT_REPO:-https://anongit.gentoo.org/git/proj/hardened-refpolicy.git}" - EGIT_BRANCH="${SELINUX_GIT_BRANCH:-master}" - EGIT_CHECKOUT_DIR="${WORKDIR}/refpolicy" - - inherit git-r3 -else - SRC_URI="https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_${PV/./_}/refpolicy-${PV}.tar.bz2 - https://dev.gentoo.org/~perfinion/patches/selinux-base-policy/patchbundle-selinux-base-policy-${PVR}.tar.bz2" - - KEYWORDS="amd64 arm arm64 ~riscv x86" -fi - -IUSE="doc +unknown-perms systemd +ubac +unconfined" - -DESCRIPTION="Gentoo base policy for SELinux" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:SELinux" -LICENSE="GPL-2" -SLOT="0" - -RDEPEND=">=sys-apps/policycoreutils-2.8" -DEPEND="${RDEPEND}" -BDEPEND=" - ${PYTHON_DEPS} - >=sys-apps/checkpolicy-2.8 - sys-devel/m4" - -S=${WORKDIR}/ - -src_prepare() { - if [[ ${PV} != 9999* ]]; then - einfo "Applying SELinux policy updates ... " - eapply -p0 "${WORKDIR}/0001-full-patch-against-stable-release.patch" - fi - - eapply_user - - cd "${S}/refpolicy" || die - emake bare -} - -src_configure() { - [ -z "${POLICY_TYPES}" ] && local POLICY_TYPES="targeted strict mls mcs" - - # Update the SELinux refpolicy capabilities based on the users' USE flags. - if use unknown-perms; then - sed -i -e '/^UNK_PERMS/s/deny/allow/' "${S}/refpolicy/build.conf" \ - || die "Failed to allow Unknown Permissions Handling" - sed -i -e '/^UNK_PERMS/s/deny/allow/' "${S}/refpolicy/Makefile" \ - || die "Failed to allow Unknown Permissions Handling" - fi - - if ! use ubac; then - sed -i -e '/^UBAC/s/y/n/' "${S}/refpolicy/build.conf" \ - || die "Failed to disable User Based Access Control" - fi - - if use systemd; then - sed -i -e '/^SYSTEMD/s/n/y/' "${S}/refpolicy/build.conf" \ - || die "Failed to enable SystemD" - fi - - echo "DISTRO = gentoo" >> "${S}/refpolicy/build.conf" || die - - # Prepare initial configuration - cd "${S}/refpolicy" || die - emake conf - - # Setup the policies based on the types delivered by the end user. - # These types can be "targeted", "strict", "mcs" and "mls". - for i in ${POLICY_TYPES}; do - cp -a "${S}/refpolicy" "${S}/${i}" || die - cd "${S}/${i}" || die - - sed -i -e "/= module/d" "${S}/${i}/policy/modules.conf" || die - - sed -i -e '/^QUIET/s/n/y/' -e "/^NAME/s/refpolicy/$i/" \ - "${S}/${i}/build.conf" || die "build.conf setup failed." - - if [[ "${i}" == "mls" ]] || [[ "${i}" == "mcs" ]]; - then - # MCS/MLS require additional settings - sed -i -e "/^TYPE/s/standard/${i}/" "${S}/${i}/build.conf" \ - || die "failed to set type to mls" - fi - - if [ "${i}" == "targeted" ]; then - sed -i -e '/root/d' -e 's/user_u/unconfined_u/' \ - "${S}/${i}/config/appconfig-standard/seusers" \ - || die "targeted seusers setup failed." - fi - - if [ "${i}" != "targeted" ] && [ "${i}" != "strict" ] && use unconfined; then - sed -i -e '/root/d' -e 's/user_u/unconfined_u/' \ - "${S}/${i}/config/appconfig-${i}/seusers" \ - || die "policy seusers setup failed." - fi - done -} - -src_compile() { - [ -z "${POLICY_TYPES}" ] && local POLICY_TYPES="targeted strict mls mcs" - - for i in ${POLICY_TYPES}; do - cd "${S}/${i}" || die - emake base - if use doc; then - emake html - fi - done -} - -src_install() { - [ -z "${POLICY_TYPES}" ] && local POLICY_TYPES="targeted strict mls mcs" - - for i in ${POLICY_TYPES}; do - cd "${S}/${i}" || die - - emake DESTDIR="${D}" install - emake DESTDIR="${D}" install-headers - - echo "run_init_t" > "${D}/etc/selinux/${i}/contexts/run_init_type" || die - - echo "textrel_shlib_t" >> "${D}/etc/selinux/${i}/contexts/customizable_types" || die - - # libsemanage won't make this on its own - keepdir "/etc/selinux/${i}/policy" - - if use doc; then - docinto ${i}/html - dodoc -r doc/html/*; - fi - - insinto /usr/share/selinux/devel; - doins doc/policy.xml; - - done - - docinto / - dodoc doc/Makefile.example doc/example.{te,fc,if} - - doman man/man8/*.8; - - insinto /etc/selinux - doins "${FILESDIR}/config" - - insinto /usr/share/portage/config/sets - doins "${FILESDIR}/selinux.conf" -} diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20250618_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20250618_p1.ebuild new file mode 100644 index 00000000000..549705fab3f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20250618_p1.ebuild @@ -0,0 +1,162 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_REQ_USE="xml(+)" + +inherit python-any-r1 + +DESCRIPTION="Gentoo base policy for SELinux" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:SELinux" + +if [[ "${PV}" = 9999* ]]; then + EGIT_REPO_URI="${SELINUX_GIT_REPO:-https://anongit.gentoo.org/git/proj/hardened-refpolicy.git}" + EGIT_BRANCH="${SELINUX_GIT_BRANCH:-master}" + EGIT_CHECKOUT_DIR="${WORKDIR}/refpolicy" + + inherit git-r3 +else + MY_PV=$(ver_cut 1-2) + SRC_URI="https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_${MY_PV/./_}/refpolicy-${MY_PV}.tar.bz2 + https://dev.gentoo.org/~perfinion/patches/selinux-base-policy/patchbundle-selinux-base-policy-${PV/_p/-r}.tar.bz2" + KEYWORDS="amd64 arm arm64 ~riscv x86" +fi + +S="${WORKDIR}" + +LICENSE="GPL-2" +SLOT="0" +IUSE=" + doc +unknown-perms systemd +ubac +unconfined + +selinux_policy_types_targeted +selinux_policy_types_strict +selinux_policy_types_mcs +selinux_policy_types_mls +" +REQUIRED_USE=" + || ( selinux_policy_types_targeted selinux_policy_types_strict selinux_policy_types_mcs selinux_policy_types_mls ) +" + +RDEPEND=">=sys-apps/policycoreutils-2.8" +DEPEND="${RDEPEND}" +BDEPEND=" + ${PYTHON_DEPS} + >=sys-apps/checkpolicy-2.8 + sys-devel/m4 +" + +src_prepare() { + if [[ "${PV}" != 9999* ]]; then + einfo "Applying SELinux policy updates... " + eapply -p0 "${WORKDIR}/0001-full-patch-against-stable-release.patch" + fi + + eapply_user + + cd "${S}/refpolicy" || die + emake bare +} + +src_configure() { + # Update the SELinux refpolicy capabilities based on the users' USE flags. + if use unknown-perms; then + sed -i -e '/^UNK_PERMS/s/deny/allow/' "${S}/refpolicy/build.conf" \ + || die "Failed to allow Unknown Permissions Handling" + sed -i -e '/^UNK_PERMS/s/deny/allow/' "${S}/refpolicy/Makefile" \ + || die "Failed to allow Unknown Permissions Handling" + fi + + if ! use ubac; then + sed -i -e '/^UBAC/s/y/n/' "${S}/refpolicy/build.conf" \ + || die "Failed to disable User Based Access Control" + fi + + if use systemd; then + sed -i -e '/^SYSTEMD/s/n/y/' "${S}/refpolicy/build.conf" \ + || die "Failed to enable SystemD" + fi + + echo "DISTRO = gentoo" >> "${S}/refpolicy/build.conf" || die + + # Prepare initial configuration + cd "${S}/refpolicy" || die + emake conf + + # Setup the policies based on the types delivered by the end user. + # These types can be "targeted", "strict", "mcs" and "mls". + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + cp -a "${S}/refpolicy" "${S}/${type}" || die + cd "${S}/${type}" || die + + sed -i -e "/= module/d" "${S}/${type}/policy/modules.conf" || die + + sed -i -e '/^QUIET/s/n/y/' -e "/^NAME/s/refpolicy/${type}/" \ + "${S}/${type}/build.conf" || die "build.conf setup failed." + + if [[ "${type}" = "mls" || "${type}" = "mcs" ]]; then + # MCS/MLS require additional settings + sed -i -e "/^TYPE/s/standard/${type}/" "${S}/${type}/build.conf" \ + || die "failed to set type to mls" + fi + + if [[ "${type}" = "targeted" ]]; then + sed -i -e '/root/d' -e 's/user_u/unconfined_u/' \ + "${S}/${type}/config/appconfig-standard/seusers" \ + || die "targeted seusers setup failed." + fi + + if [[ "${type}" != "targeted" && "${type}" != "strict" ]] && use unconfined; then + sed -i -e '/root/d' -e 's/user_u/unconfined_u/' \ + "${S}/${type}/config/appconfig-${type}/seusers" \ + || die "policy seusers setup failed." + fi + fi + done +} + +src_compile() { + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + cd "${S}/${type}" || die + emake base + use doc && emake html + fi + done +} + +src_install() { + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + cd "${S}/${type}" || die + + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install-headers + + echo "run_init_t" > "${D}/etc/selinux/${type}/contexts/run_init_type" || die + + echo "textrel_shlib_t" >> "${D}/etc/selinux/${type}/contexts/customizable_types" || die + + # libsemanage won't make this on its own + keepdir "/etc/selinux/${type}/policy" + + if use doc; then + docinto "${type}/html" + dodoc -r doc/html/*; + fi + + insinto /usr/share/selinux/devel; + doins doc/policy.xml; + fi + done + + docinto / + dodoc doc/Makefile.example doc/example.{te,fc,if} + + doman man/man8/*.8; + + insinto /etc/selinux + doins "${FILESDIR}/config" + + insinto /usr/share/portage/config/sets + doins "${FILESDIR}/selinux.conf" +} diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20260312_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20260312_p1.ebuild new file mode 100644 index 00000000000..e6002b3b903 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20260312_p1.ebuild @@ -0,0 +1,162 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_REQ_USE="xml(+)" + +inherit python-any-r1 + +DESCRIPTION="Gentoo base policy for SELinux" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:SELinux" + +if [[ "${PV}" = 9999* ]]; then + EGIT_REPO_URI="${SELINUX_GIT_REPO:-https://anongit.gentoo.org/git/proj/hardened-refpolicy.git}" + EGIT_BRANCH="${SELINUX_GIT_BRANCH:-master}" + EGIT_CHECKOUT_DIR="${WORKDIR}/refpolicy" + + inherit git-r3 +else + MY_PV=$(ver_cut 1-2) + SRC_URI="https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_${MY_PV/./_}/refpolicy-${MY_PV}.tar.bz2 + https://dev.gentoo.org/~perfinion/patches/selinux-base-policy/patchbundle-selinux-base-policy-${PV}.tar.bz2" + KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" +fi + +S="${WORKDIR}/refpolicy" + +LICENSE="GPL-2" +SLOT="0" +IUSE=" + doc +unknown-perms systemd +ubac +unconfined + +selinux_policy_types_targeted +selinux_policy_types_strict +selinux_policy_types_mcs +selinux_policy_types_mls +" +REQUIRED_USE=" + || ( selinux_policy_types_targeted selinux_policy_types_strict selinux_policy_types_mcs selinux_policy_types_mls ) +" + +RDEPEND=">=sys-apps/policycoreutils-2.8" +DEPEND="${RDEPEND}" +BDEPEND=" + ${PYTHON_DEPS} + >=sys-apps/checkpolicy-2.8 + sys-devel/m4 +" + +src_prepare() { + if [[ "${PV}" != 9999* ]]; then + cd "${WORKDIR}" || die + einfo "Applying SELinux policy updates... " + eapply -p0 "${WORKDIR}/0001-full-patch-against-stable-release.patch" + fi + + cd "${S}" || die + eapply_user + + emake bare +} + +src_configure() { + # Update the SELinux refpolicy capabilities based on the users' USE flags. + if use unknown-perms; then + sed -i -e '/^UNK_PERMS/s/deny/allow/' "${S}/build.conf" \ + || die "Failed to allow Unknown Permissions Handling" + sed -i -e '/^UNK_PERMS/s/deny/allow/' "${S}/Makefile" \ + || die "Failed to allow Unknown Permissions Handling" + fi + + if ! use ubac; then + sed -i -e '/^UBAC/s/y/n/' "${S}/build.conf" \ + || die "Failed to disable User Based Access Control" + fi + + if use systemd; then + sed -i -e '/^SYSTEMD/s/n/y/' "${S}/build.conf" \ + || die "Failed to enable systemd" + fi + + echo "DISTRO = gentoo" >> "${S}/build.conf" || die + + # Prepare initial configuration + emake conf + + # Setup the policies based on the types delivered by the end user. + # These types can be "targeted", "strict", "mcs" and "mls". + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + cp -a "${S}" "${WORKDIR}/${type}" || die + cd "${WORKDIR}/${type}" || die + + sed -i -e "/= module/d" "${WORKDIR}/${type}/policy/modules.conf" || die + + sed -i -e '/^QUIET/s/n/y/' -e "/^NAME/s/refpolicy/${type}/" \ + "${WORKDIR}/${type}/build.conf" || die "build.conf setup failed." + + if [[ "${type}" = "mls" || "${type}" = "mcs" ]]; then + # MCS/MLS require additional settings + sed -i -e "/^TYPE/s/standard/${type}/" "${WORKDIR}/${type}/build.conf" \ + || die "failed to set type to mls" + fi + + if [[ "${type}" = "targeted" ]]; then + sed -i -e '/root/d' -e 's/user_u/unconfined_u/' \ + "${WORKDIR}/${type}/config/appconfig-standard/seusers" \ + || die "targeted seusers setup failed." + fi + + if [[ "${type}" != "targeted" && "${type}" != "strict" ]] && use unconfined; then + sed -i -e '/root/d' -e 's/user_u/unconfined_u/' \ + "${WORKDIR}/${type}/config/appconfig-${type}/seusers" \ + || die "policy seusers setup failed." + fi + fi + done +} + +src_compile() { + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + cd "${WORKDIR}/${type}" || die + emake base + use doc && emake html + fi + done +} + +src_install() { + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + cd "${WORKDIR}/${type}" || die + + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install-headers + + echo "run_init_t" > "${D}/etc/selinux/${type}/contexts/run_init_type" || die + + echo "textrel_shlib_t" >> "${D}/etc/selinux/${type}/contexts/customizable_types" || die + + # libsemanage won't make this on its own + keepdir "/etc/selinux/${type}/policy" + + if use doc; then + docinto "${type}/html" + dodoc -r doc/html/*; + fi + + insinto /usr/share/selinux/devel; + doins doc/policy.xml; + fi + done + + docinto / + dodoc doc/Makefile.example doc/example.{te,fc,if} + + doman man/man8/*.8; + + insinto /etc/selinux + doins "${FILESDIR}/config" + + insinto /usr/share/portage/config/sets + doins "${FILESDIR}/selinux.conf" +} diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-9999.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-9999.ebuild index bdb6a700eef..e6002b3b903 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-9999.ebuild @@ -1,148 +1,152 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="7" +EAPI=8 -PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_COMPAT=( python3_{11..14} ) PYTHON_REQ_USE="xml(+)" + inherit python-any-r1 -if [[ ${PV} == 9999* ]]; then +DESCRIPTION="Gentoo base policy for SELinux" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:SELinux" + +if [[ "${PV}" = 9999* ]]; then EGIT_REPO_URI="${SELINUX_GIT_REPO:-https://anongit.gentoo.org/git/proj/hardened-refpolicy.git}" EGIT_BRANCH="${SELINUX_GIT_BRANCH:-master}" EGIT_CHECKOUT_DIR="${WORKDIR}/refpolicy" inherit git-r3 else - SRC_URI="https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_${PV/./_}/refpolicy-${PV}.tar.bz2 - https://dev.gentoo.org/~perfinion/patches/selinux-base-policy/patchbundle-selinux-base-policy-${PVR}.tar.bz2" - + MY_PV=$(ver_cut 1-2) + SRC_URI="https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_${MY_PV/./_}/refpolicy-${MY_PV}.tar.bz2 + https://dev.gentoo.org/~perfinion/patches/selinux-base-policy/patchbundle-selinux-base-policy-${PV}.tar.bz2" KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" fi -IUSE="doc +unknown-perms systemd +ubac +unconfined" +S="${WORKDIR}/refpolicy" -DESCRIPTION="Gentoo base policy for SELinux" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:SELinux" LICENSE="GPL-2" SLOT="0" +IUSE=" + doc +unknown-perms systemd +ubac +unconfined + +selinux_policy_types_targeted +selinux_policy_types_strict +selinux_policy_types_mcs +selinux_policy_types_mls +" +REQUIRED_USE=" + || ( selinux_policy_types_targeted selinux_policy_types_strict selinux_policy_types_mcs selinux_policy_types_mls ) +" RDEPEND=">=sys-apps/policycoreutils-2.8" DEPEND="${RDEPEND}" BDEPEND=" ${PYTHON_DEPS} >=sys-apps/checkpolicy-2.8 - sys-devel/m4" - -S=${WORKDIR}/ + sys-devel/m4 +" src_prepare() { - if [[ ${PV} != 9999* ]]; then - einfo "Applying SELinux policy updates ... " + if [[ "${PV}" != 9999* ]]; then + cd "${WORKDIR}" || die + einfo "Applying SELinux policy updates... " eapply -p0 "${WORKDIR}/0001-full-patch-against-stable-release.patch" fi + cd "${S}" || die eapply_user - cd "${S}/refpolicy" || die emake bare } src_configure() { - [ -z "${POLICY_TYPES}" ] && local POLICY_TYPES="targeted strict mls mcs" - # Update the SELinux refpolicy capabilities based on the users' USE flags. if use unknown-perms; then - sed -i -e '/^UNK_PERMS/s/deny/allow/' "${S}/refpolicy/build.conf" \ + sed -i -e '/^UNK_PERMS/s/deny/allow/' "${S}/build.conf" \ || die "Failed to allow Unknown Permissions Handling" - sed -i -e '/^UNK_PERMS/s/deny/allow/' "${S}/refpolicy/Makefile" \ + sed -i -e '/^UNK_PERMS/s/deny/allow/' "${S}/Makefile" \ || die "Failed to allow Unknown Permissions Handling" fi if ! use ubac; then - sed -i -e '/^UBAC/s/y/n/' "${S}/refpolicy/build.conf" \ + sed -i -e '/^UBAC/s/y/n/' "${S}/build.conf" \ || die "Failed to disable User Based Access Control" fi if use systemd; then - sed -i -e '/^SYSTEMD/s/n/y/' "${S}/refpolicy/build.conf" \ - || die "Failed to enable SystemD" + sed -i -e '/^SYSTEMD/s/n/y/' "${S}/build.conf" \ + || die "Failed to enable systemd" fi - echo "DISTRO = gentoo" >> "${S}/refpolicy/build.conf" || die + echo "DISTRO = gentoo" >> "${S}/build.conf" || die # Prepare initial configuration - cd "${S}/refpolicy" || die emake conf # Setup the policies based on the types delivered by the end user. # These types can be "targeted", "strict", "mcs" and "mls". - for i in ${POLICY_TYPES}; do - cp -a "${S}/refpolicy" "${S}/${i}" || die - cd "${S}/${i}" || die - - sed -i -e "/= module/d" "${S}/${i}/policy/modules.conf" || die - - sed -i -e '/^QUIET/s/n/y/' -e "/^NAME/s/refpolicy/$i/" \ - "${S}/${i}/build.conf" || die "build.conf setup failed." - - if [[ "${i}" == "mls" ]] || [[ "${i}" == "mcs" ]]; - then - # MCS/MLS require additional settings - sed -i -e "/^TYPE/s/standard/${i}/" "${S}/${i}/build.conf" \ - || die "failed to set type to mls" - fi - - if [ "${i}" == "targeted" ]; then - sed -i -e '/root/d' -e 's/user_u/unconfined_u/' \ - "${S}/${i}/config/appconfig-standard/seusers" \ - || die "targeted seusers setup failed." - fi - - if [ "${i}" != "targeted" ] && [ "${i}" != "strict" ] && use unconfined; then - sed -i -e '/root/d' -e 's/user_u/unconfined_u/' \ - "${S}/${i}/config/appconfig-${i}/seusers" \ - || die "policy seusers setup failed." + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + cp -a "${S}" "${WORKDIR}/${type}" || die + cd "${WORKDIR}/${type}" || die + + sed -i -e "/= module/d" "${WORKDIR}/${type}/policy/modules.conf" || die + + sed -i -e '/^QUIET/s/n/y/' -e "/^NAME/s/refpolicy/${type}/" \ + "${WORKDIR}/${type}/build.conf" || die "build.conf setup failed." + + if [[ "${type}" = "mls" || "${type}" = "mcs" ]]; then + # MCS/MLS require additional settings + sed -i -e "/^TYPE/s/standard/${type}/" "${WORKDIR}/${type}/build.conf" \ + || die "failed to set type to mls" + fi + + if [[ "${type}" = "targeted" ]]; then + sed -i -e '/root/d' -e 's/user_u/unconfined_u/' \ + "${WORKDIR}/${type}/config/appconfig-standard/seusers" \ + || die "targeted seusers setup failed." + fi + + if [[ "${type}" != "targeted" && "${type}" != "strict" ]] && use unconfined; then + sed -i -e '/root/d' -e 's/user_u/unconfined_u/' \ + "${WORKDIR}/${type}/config/appconfig-${type}/seusers" \ + || die "policy seusers setup failed." + fi fi done } src_compile() { - [ -z "${POLICY_TYPES}" ] && local POLICY_TYPES="targeted strict mls mcs" - - for i in ${POLICY_TYPES}; do - cd "${S}/${i}" || die - emake base - if use doc; then - emake html + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + cd "${WORKDIR}/${type}" || die + emake base + use doc && emake html fi done } src_install() { - [ -z "${POLICY_TYPES}" ] && local POLICY_TYPES="targeted strict mls mcs" + for type in targeted strict mcs mls; do + if use "selinux_policy_types_${type}"; then + cd "${WORKDIR}/${type}" || die - for i in ${POLICY_TYPES}; do - cd "${S}/${i}" || die + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install-headers - emake DESTDIR="${D}" install - emake DESTDIR="${D}" install-headers + echo "run_init_t" > "${D}/etc/selinux/${type}/contexts/run_init_type" || die - echo "run_init_t" > "${D}/etc/selinux/${i}/contexts/run_init_type" || die + echo "textrel_shlib_t" >> "${D}/etc/selinux/${type}/contexts/customizable_types" || die - echo "textrel_shlib_t" >> "${D}/etc/selinux/${i}/contexts/customizable_types" || die + # libsemanage won't make this on its own + keepdir "/etc/selinux/${type}/policy" - # libsemanage won't make this on its own - keepdir "/etc/selinux/${i}/policy" + if use doc; then + docinto "${type}/html" + dodoc -r doc/html/*; + fi - if use doc; then - docinto ${i}/html - dodoc -r doc/html/*; + insinto /usr/share/selinux/devel; + doins doc/policy.xml; fi - - insinto /usr/share/selinux/devel; - doins doc/policy.xml; - done docinto / diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/Manifest b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/Manifest index dc0c6d3942a..51321628b60 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/Manifest +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/Manifest @@ -1,4 +1,6 @@ DIST patchbundle-selinux-base-policy-2.20250213-r1.tar.bz2 276621 BLAKE2B 5a4b0c5fe017fd6c59c3f5d3a1af97e31485bd4325b10a2769883091e5ea6fd205ad42f346c06e6d443aeed9e46bf962febc177f58241c4633058918db6b7fb6 SHA512 1098cfb396d56dfc4f0c2b3ff90dcb9de3bf0b081f1d0c21d793fccc78e48d35a93883bb7fd54a0acd5fa2b06edc8965cbfe72e2b8f3ea325bbee18a8c8e7163 DIST patchbundle-selinux-base-policy-2.20250618-r1.tar.bz2 306720 BLAKE2B b90de06fd143293d67f244013b9a6d775864e7fdfa54c3b5852e31c7594338dfb927b1ef105f4dd688e68932d1d20f91ad7d5cfb909a93f962a427a0a8708c0c SHA512 124424dc8c8eb0f82735d30b000568a8c4c9969363d55cf4f15a5b82a2ca7619e93e5f908cafa9f1a2c4d35d2dcf76869cac85cff909e3fccf47c8666ec15616 +DIST patchbundle-selinux-base-policy-2.20260312_p1.tar.bz2 9408379 BLAKE2B d5cb2ff2de4cf0e00dd1e84046729a69c255627d083a9dad4c750d87222001696043f58ed94e3ab0562314645cb38e41339e36dcf5cec0765749751b42389cc3 SHA512 7b0f87bb0084258a931cbace7c7b6828ed6e592cf348f1c695ec6f6b49030920eeb78cd558b14420951cc5ca6a1c1afa9e74023a7b7dae046eb13561256cd4e1 DIST refpolicy-2.20250213.tar.bz2 627837 BLAKE2B 64d64549bf1fcfc33107e8f4c842af4e3279a856c3a140d05749bae687ffadfe25e4b7383bef3618b13bbd553046d162fcd48b713500d3fd59073b5bece91008 SHA512 cbaf65dfe6d7cc886674bb37160170dac060265d5cf241bfac0c0e5ef45744f057107d81c933f01411c5cd538c95755b7a92331197e2b97b995efc4d6f266895 DIST refpolicy-2.20250618.tar.bz2 632711 BLAKE2B f522c16552fbbf66d4549bf082ece4be740018822b9b7da318c12aa3f3108a905b5f71fc6bb5e894468126123d81aa4e309912ec04c2a2e27feda00689a5ecd8 SHA512 3bfd32be63d0928c5be47707ce6d53bc3bb7b3d922fda2441d455b913eb79d33b16ba31320394aa1d9ec7afb6d9c853c3cd4c025962c6f355dbb7194bdb1c1a8 +DIST refpolicy-2.20260312.tar.bz2 649774 BLAKE2B 11f6150010a57f9dba6284021cd4c6521cec8e907f1f08fad45191fe9966846265d3c03d00aec9f3210659e864b4d40cac6cb8e4793a686a00f754191bc41079 SHA512 a34b5b08f9cd969fd6c3a2ed07ccdfea359054d0071e25e99b3978fd678e2314975eaf67c3f0931a68a407e675a73a16bb021106dde1dd20c1fff115dd8d3b29 diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20250213-r1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20250213-r1.ebuild deleted file mode 100644 index 9417ef6b990..00000000000 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20250213-r1.ebuild +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -MODS="container" - -inherit selinux-policy-2 - -DESCRIPTION="SELinux policy for container" - -if [[ ${PV} != 9999* ]] ; then - KEYWORDS="amd64 arm arm64 ~riscv x86" -fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20250213_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20250213_p1.ebuild new file mode 100644 index 00000000000..70a0ae4a4db --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20250213_p1.ebuild @@ -0,0 +1,14 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODS="container" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for container" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="amd64 arm arm64 ~riscv x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20250618-r1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20250618-r1.ebuild deleted file mode 100644 index 9417ef6b990..00000000000 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20250618-r1.ebuild +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -MODS="container" - -inherit selinux-policy-2 - -DESCRIPTION="SELinux policy for container" - -if [[ ${PV} != 9999* ]] ; then - KEYWORDS="amd64 arm arm64 ~riscv x86" -fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20250618_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20250618_p1.ebuild new file mode 100644 index 00000000000..70a0ae4a4db --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20250618_p1.ebuild @@ -0,0 +1,14 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODS="container" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for container" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="amd64 arm arm64 ~riscv x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20260312_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20260312_p1.ebuild new file mode 100644 index 00000000000..597fe6a587f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20260312_p1.ebuild @@ -0,0 +1,14 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODS="container" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for container" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-9999.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-9999.ebuild index 0dab2f241d0..597fe6a587f 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-9999.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="7" +EAPI=8 MODS="container" diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/Manifest b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/Manifest index dc0c6d3942a..51321628b60 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/Manifest +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/Manifest @@ -1,4 +1,6 @@ DIST patchbundle-selinux-base-policy-2.20250213-r1.tar.bz2 276621 BLAKE2B 5a4b0c5fe017fd6c59c3f5d3a1af97e31485bd4325b10a2769883091e5ea6fd205ad42f346c06e6d443aeed9e46bf962febc177f58241c4633058918db6b7fb6 SHA512 1098cfb396d56dfc4f0c2b3ff90dcb9de3bf0b081f1d0c21d793fccc78e48d35a93883bb7fd54a0acd5fa2b06edc8965cbfe72e2b8f3ea325bbee18a8c8e7163 DIST patchbundle-selinux-base-policy-2.20250618-r1.tar.bz2 306720 BLAKE2B b90de06fd143293d67f244013b9a6d775864e7fdfa54c3b5852e31c7594338dfb927b1ef105f4dd688e68932d1d20f91ad7d5cfb909a93f962a427a0a8708c0c SHA512 124424dc8c8eb0f82735d30b000568a8c4c9969363d55cf4f15a5b82a2ca7619e93e5f908cafa9f1a2c4d35d2dcf76869cac85cff909e3fccf47c8666ec15616 +DIST patchbundle-selinux-base-policy-2.20260312_p1.tar.bz2 9408379 BLAKE2B d5cb2ff2de4cf0e00dd1e84046729a69c255627d083a9dad4c750d87222001696043f58ed94e3ab0562314645cb38e41339e36dcf5cec0765749751b42389cc3 SHA512 7b0f87bb0084258a931cbace7c7b6828ed6e592cf348f1c695ec6f6b49030920eeb78cd558b14420951cc5ca6a1c1afa9e74023a7b7dae046eb13561256cd4e1 DIST refpolicy-2.20250213.tar.bz2 627837 BLAKE2B 64d64549bf1fcfc33107e8f4c842af4e3279a856c3a140d05749bae687ffadfe25e4b7383bef3618b13bbd553046d162fcd48b713500d3fd59073b5bece91008 SHA512 cbaf65dfe6d7cc886674bb37160170dac060265d5cf241bfac0c0e5ef45744f057107d81c933f01411c5cd538c95755b7a92331197e2b97b995efc4d6f266895 DIST refpolicy-2.20250618.tar.bz2 632711 BLAKE2B f522c16552fbbf66d4549bf082ece4be740018822b9b7da318c12aa3f3108a905b5f71fc6bb5e894468126123d81aa4e309912ec04c2a2e27feda00689a5ecd8 SHA512 3bfd32be63d0928c5be47707ce6d53bc3bb7b3d922fda2441d455b913eb79d33b16ba31320394aa1d9ec7afb6d9c853c3cd4c025962c6f355dbb7194bdb1c1a8 +DIST refpolicy-2.20260312.tar.bz2 649774 BLAKE2B 11f6150010a57f9dba6284021cd4c6521cec8e907f1f08fad45191fe9966846265d3c03d00aec9f3210659e864b4d40cac6cb8e4793a686a00f754191bc41079 SHA512 a34b5b08f9cd969fd6c3a2ed07ccdfea359054d0071e25e99b3978fd678e2314975eaf67c3f0931a68a407e675a73a16bb021106dde1dd20c1fff115dd8d3b29 diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20250213-r1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20250213-r1.ebuild deleted file mode 100644 index af95a28473a..00000000000 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20250213-r1.ebuild +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -MODS="dbus" - -inherit selinux-policy-2 - -DESCRIPTION="SELinux policy for dbus" - -if [[ ${PV} != 9999* ]] ; then - KEYWORDS="amd64 arm arm64 ~riscv x86" -fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20250213_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20250213_p1.ebuild new file mode 100644 index 00000000000..ba322b865ac --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20250213_p1.ebuild @@ -0,0 +1,14 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODS="dbus" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for dbus" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="amd64 arm arm64 ~riscv x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20250618-r1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20250618-r1.ebuild deleted file mode 100644 index af95a28473a..00000000000 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20250618-r1.ebuild +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -MODS="dbus" - -inherit selinux-policy-2 - -DESCRIPTION="SELinux policy for dbus" - -if [[ ${PV} != 9999* ]] ; then - KEYWORDS="amd64 arm arm64 ~riscv x86" -fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20250618_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20250618_p1.ebuild new file mode 100644 index 00000000000..ba322b865ac --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20250618_p1.ebuild @@ -0,0 +1,14 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODS="dbus" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for dbus" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="amd64 arm arm64 ~riscv x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20260312_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20260312_p1.ebuild new file mode 100644 index 00000000000..2f021f2fc55 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20260312_p1.ebuild @@ -0,0 +1,14 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODS="dbus" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for dbus" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-9999.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-9999.ebuild index e0ff1dbfee8..2f021f2fc55 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-9999.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="7" +EAPI=8 MODS="dbus" diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/Manifest b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/Manifest index dc0c6d3942a..51321628b60 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/Manifest +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/Manifest @@ -1,4 +1,6 @@ DIST patchbundle-selinux-base-policy-2.20250213-r1.tar.bz2 276621 BLAKE2B 5a4b0c5fe017fd6c59c3f5d3a1af97e31485bd4325b10a2769883091e5ea6fd205ad42f346c06e6d443aeed9e46bf962febc177f58241c4633058918db6b7fb6 SHA512 1098cfb396d56dfc4f0c2b3ff90dcb9de3bf0b081f1d0c21d793fccc78e48d35a93883bb7fd54a0acd5fa2b06edc8965cbfe72e2b8f3ea325bbee18a8c8e7163 DIST patchbundle-selinux-base-policy-2.20250618-r1.tar.bz2 306720 BLAKE2B b90de06fd143293d67f244013b9a6d775864e7fdfa54c3b5852e31c7594338dfb927b1ef105f4dd688e68932d1d20f91ad7d5cfb909a93f962a427a0a8708c0c SHA512 124424dc8c8eb0f82735d30b000568a8c4c9969363d55cf4f15a5b82a2ca7619e93e5f908cafa9f1a2c4d35d2dcf76869cac85cff909e3fccf47c8666ec15616 +DIST patchbundle-selinux-base-policy-2.20260312_p1.tar.bz2 9408379 BLAKE2B d5cb2ff2de4cf0e00dd1e84046729a69c255627d083a9dad4c750d87222001696043f58ed94e3ab0562314645cb38e41339e36dcf5cec0765749751b42389cc3 SHA512 7b0f87bb0084258a931cbace7c7b6828ed6e592cf348f1c695ec6f6b49030920eeb78cd558b14420951cc5ca6a1c1afa9e74023a7b7dae046eb13561256cd4e1 DIST refpolicy-2.20250213.tar.bz2 627837 BLAKE2B 64d64549bf1fcfc33107e8f4c842af4e3279a856c3a140d05749bae687ffadfe25e4b7383bef3618b13bbd553046d162fcd48b713500d3fd59073b5bece91008 SHA512 cbaf65dfe6d7cc886674bb37160170dac060265d5cf241bfac0c0e5ef45744f057107d81c933f01411c5cd538c95755b7a92331197e2b97b995efc4d6f266895 DIST refpolicy-2.20250618.tar.bz2 632711 BLAKE2B f522c16552fbbf66d4549bf082ece4be740018822b9b7da318c12aa3f3108a905b5f71fc6bb5e894468126123d81aa4e309912ec04c2a2e27feda00689a5ecd8 SHA512 3bfd32be63d0928c5be47707ce6d53bc3bb7b3d922fda2441d455b913eb79d33b16ba31320394aa1d9ec7afb6d9c853c3cd4c025962c6f355dbb7194bdb1c1a8 +DIST refpolicy-2.20260312.tar.bz2 649774 BLAKE2B 11f6150010a57f9dba6284021cd4c6521cec8e907f1f08fad45191fe9966846265d3c03d00aec9f3210659e864b4d40cac6cb8e4793a686a00f754191bc41079 SHA512 a34b5b08f9cd969fd6c3a2ed07ccdfea359054d0071e25e99b3978fd678e2314975eaf67c3f0931a68a407e675a73a16bb021106dde1dd20c1fff115dd8d3b29 diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-2.20250213-r1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-2.20250213-r1.ebuild deleted file mode 100644 index b4c7c27d857..00000000000 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-2.20250213-r1.ebuild +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -MODS="policykit" - -inherit selinux-policy-2 - -DESCRIPTION="SELinux policy for policykit" - -if [[ ${PV} != 9999* ]] ; then - KEYWORDS="amd64 arm arm64 ~riscv x86" -fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-2.20250213_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-2.20250213_p1.ebuild new file mode 100644 index 00000000000..e31968feb33 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-2.20250213_p1.ebuild @@ -0,0 +1,14 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODS="policykit" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for policykit" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="amd64 arm arm64 ~riscv x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-2.20250618-r1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-2.20250618-r1.ebuild deleted file mode 100644 index b4c7c27d857..00000000000 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-2.20250618-r1.ebuild +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -MODS="policykit" - -inherit selinux-policy-2 - -DESCRIPTION="SELinux policy for policykit" - -if [[ ${PV} != 9999* ]] ; then - KEYWORDS="amd64 arm arm64 ~riscv x86" -fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-2.20250618_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-2.20250618_p1.ebuild new file mode 100644 index 00000000000..e31968feb33 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-2.20250618_p1.ebuild @@ -0,0 +1,14 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODS="policykit" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for policykit" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="amd64 arm arm64 ~riscv x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-2.20260312_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-2.20260312_p1.ebuild new file mode 100644 index 00000000000..616b3d55b31 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-2.20260312_p1.ebuild @@ -0,0 +1,14 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODS="policykit" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for policykit" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-9999.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-9999.ebuild index d7848bf20fa..616b3d55b31 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-policykit/selinux-policykit-9999.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="7" +EAPI=8 MODS="policykit" diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/Manifest b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/Manifest index dc0c6d3942a..51321628b60 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/Manifest +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/Manifest @@ -1,4 +1,6 @@ DIST patchbundle-selinux-base-policy-2.20250213-r1.tar.bz2 276621 BLAKE2B 5a4b0c5fe017fd6c59c3f5d3a1af97e31485bd4325b10a2769883091e5ea6fd205ad42f346c06e6d443aeed9e46bf962febc177f58241c4633058918db6b7fb6 SHA512 1098cfb396d56dfc4f0c2b3ff90dcb9de3bf0b081f1d0c21d793fccc78e48d35a93883bb7fd54a0acd5fa2b06edc8965cbfe72e2b8f3ea325bbee18a8c8e7163 DIST patchbundle-selinux-base-policy-2.20250618-r1.tar.bz2 306720 BLAKE2B b90de06fd143293d67f244013b9a6d775864e7fdfa54c3b5852e31c7594338dfb927b1ef105f4dd688e68932d1d20f91ad7d5cfb909a93f962a427a0a8708c0c SHA512 124424dc8c8eb0f82735d30b000568a8c4c9969363d55cf4f15a5b82a2ca7619e93e5f908cafa9f1a2c4d35d2dcf76869cac85cff909e3fccf47c8666ec15616 +DIST patchbundle-selinux-base-policy-2.20260312_p1.tar.bz2 9408379 BLAKE2B d5cb2ff2de4cf0e00dd1e84046729a69c255627d083a9dad4c750d87222001696043f58ed94e3ab0562314645cb38e41339e36dcf5cec0765749751b42389cc3 SHA512 7b0f87bb0084258a931cbace7c7b6828ed6e592cf348f1c695ec6f6b49030920eeb78cd558b14420951cc5ca6a1c1afa9e74023a7b7dae046eb13561256cd4e1 DIST refpolicy-2.20250213.tar.bz2 627837 BLAKE2B 64d64549bf1fcfc33107e8f4c842af4e3279a856c3a140d05749bae687ffadfe25e4b7383bef3618b13bbd553046d162fcd48b713500d3fd59073b5bece91008 SHA512 cbaf65dfe6d7cc886674bb37160170dac060265d5cf241bfac0c0e5ef45744f057107d81c933f01411c5cd538c95755b7a92331197e2b97b995efc4d6f266895 DIST refpolicy-2.20250618.tar.bz2 632711 BLAKE2B f522c16552fbbf66d4549bf082ece4be740018822b9b7da318c12aa3f3108a905b5f71fc6bb5e894468126123d81aa4e309912ec04c2a2e27feda00689a5ecd8 SHA512 3bfd32be63d0928c5be47707ce6d53bc3bb7b3d922fda2441d455b913eb79d33b16ba31320394aa1d9ec7afb6d9c853c3cd4c025962c6f355dbb7194bdb1c1a8 +DIST refpolicy-2.20260312.tar.bz2 649774 BLAKE2B 11f6150010a57f9dba6284021cd4c6521cec8e907f1f08fad45191fe9966846265d3c03d00aec9f3210659e864b4d40cac6cb8e4793a686a00f754191bc41079 SHA512 a34b5b08f9cd969fd6c3a2ed07ccdfea359054d0071e25e99b3978fd678e2314975eaf67c3f0931a68a407e675a73a16bb021106dde1dd20c1fff115dd8d3b29 diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20250213-r1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20250213-r1.ebuild deleted file mode 100644 index 56543fc9c90..00000000000 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20250213-r1.ebuild +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -MODS="sssd" - -inherit selinux-policy-2 - -DESCRIPTION="SELinux policy for sssd" - -if [[ ${PV} != 9999* ]] ; then - KEYWORDS="amd64 arm arm64 ~riscv x86" -fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20250213_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20250213_p1.ebuild new file mode 100644 index 00000000000..28958a94426 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20250213_p1.ebuild @@ -0,0 +1,14 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODS="sssd" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for sssd" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="amd64 arm arm64 ~riscv x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20250618-r1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20250618-r1.ebuild deleted file mode 100644 index 56543fc9c90..00000000000 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20250618-r1.ebuild +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -MODS="sssd" - -inherit selinux-policy-2 - -DESCRIPTION="SELinux policy for sssd" - -if [[ ${PV} != 9999* ]] ; then - KEYWORDS="amd64 arm arm64 ~riscv x86" -fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20250618_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20250618_p1.ebuild new file mode 100644 index 00000000000..28958a94426 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20250618_p1.ebuild @@ -0,0 +1,14 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODS="sssd" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for sssd" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="amd64 arm arm64 ~riscv x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20260312_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20260312_p1.ebuild new file mode 100644 index 00000000000..1489826b6aa --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20260312_p1.ebuild @@ -0,0 +1,14 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODS="sssd" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for sssd" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-9999.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-9999.ebuild index f1497c2bc3b..1489826b6aa 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-9999.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="7" +EAPI=8 MODS="sssd" diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/Manifest b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/Manifest index dc0c6d3942a..51321628b60 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/Manifest +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/Manifest @@ -1,4 +1,6 @@ DIST patchbundle-selinux-base-policy-2.20250213-r1.tar.bz2 276621 BLAKE2B 5a4b0c5fe017fd6c59c3f5d3a1af97e31485bd4325b10a2769883091e5ea6fd205ad42f346c06e6d443aeed9e46bf962febc177f58241c4633058918db6b7fb6 SHA512 1098cfb396d56dfc4f0c2b3ff90dcb9de3bf0b081f1d0c21d793fccc78e48d35a93883bb7fd54a0acd5fa2b06edc8965cbfe72e2b8f3ea325bbee18a8c8e7163 DIST patchbundle-selinux-base-policy-2.20250618-r1.tar.bz2 306720 BLAKE2B b90de06fd143293d67f244013b9a6d775864e7fdfa54c3b5852e31c7594338dfb927b1ef105f4dd688e68932d1d20f91ad7d5cfb909a93f962a427a0a8708c0c SHA512 124424dc8c8eb0f82735d30b000568a8c4c9969363d55cf4f15a5b82a2ca7619e93e5f908cafa9f1a2c4d35d2dcf76869cac85cff909e3fccf47c8666ec15616 +DIST patchbundle-selinux-base-policy-2.20260312_p1.tar.bz2 9408379 BLAKE2B d5cb2ff2de4cf0e00dd1e84046729a69c255627d083a9dad4c750d87222001696043f58ed94e3ab0562314645cb38e41339e36dcf5cec0765749751b42389cc3 SHA512 7b0f87bb0084258a931cbace7c7b6828ed6e592cf348f1c695ec6f6b49030920eeb78cd558b14420951cc5ca6a1c1afa9e74023a7b7dae046eb13561256cd4e1 DIST refpolicy-2.20250213.tar.bz2 627837 BLAKE2B 64d64549bf1fcfc33107e8f4c842af4e3279a856c3a140d05749bae687ffadfe25e4b7383bef3618b13bbd553046d162fcd48b713500d3fd59073b5bece91008 SHA512 cbaf65dfe6d7cc886674bb37160170dac060265d5cf241bfac0c0e5ef45744f057107d81c933f01411c5cd538c95755b7a92331197e2b97b995efc4d6f266895 DIST refpolicy-2.20250618.tar.bz2 632711 BLAKE2B f522c16552fbbf66d4549bf082ece4be740018822b9b7da318c12aa3f3108a905b5f71fc6bb5e894468126123d81aa4e309912ec04c2a2e27feda00689a5ecd8 SHA512 3bfd32be63d0928c5be47707ce6d53bc3bb7b3d922fda2441d455b913eb79d33b16ba31320394aa1d9ec7afb6d9c853c3cd4c025962c6f355dbb7194bdb1c1a8 +DIST refpolicy-2.20260312.tar.bz2 649774 BLAKE2B 11f6150010a57f9dba6284021cd4c6521cec8e907f1f08fad45191fe9966846265d3c03d00aec9f3210659e864b4d40cac6cb8e4793a686a00f754191bc41079 SHA512 a34b5b08f9cd969fd6c3a2ed07ccdfea359054d0071e25e99b3978fd678e2314975eaf67c3f0931a68a407e675a73a16bb021106dde1dd20c1fff115dd8d3b29 diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20250213-r1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20250213-r1.ebuild deleted file mode 100644 index 3c9bcf42cea..00000000000 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20250213-r1.ebuild +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -MODS="unconfined" - -inherit selinux-policy-2 - -DESCRIPTION="SELinux policy for unconfined" - -if [[ ${PV} != 9999* ]] ; then - KEYWORDS="amd64 arm arm64 ~riscv x86" -fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20250213_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20250213_p1.ebuild new file mode 100644 index 00000000000..0957c8cad32 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20250213_p1.ebuild @@ -0,0 +1,14 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODS="unconfined" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for unconfined" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="amd64 arm arm64 ~riscv x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20250618-r1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20250618-r1.ebuild deleted file mode 100644 index 3c9bcf42cea..00000000000 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20250618-r1.ebuild +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -MODS="unconfined" - -inherit selinux-policy-2 - -DESCRIPTION="SELinux policy for unconfined" - -if [[ ${PV} != 9999* ]] ; then - KEYWORDS="amd64 arm arm64 ~riscv x86" -fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20250618_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20250618_p1.ebuild new file mode 100644 index 00000000000..0957c8cad32 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20250618_p1.ebuild @@ -0,0 +1,14 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODS="unconfined" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for unconfined" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="amd64 arm arm64 ~riscv x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20260312_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20260312_p1.ebuild new file mode 100644 index 00000000000..581d624a16b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20260312_p1.ebuild @@ -0,0 +1,14 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODS="unconfined" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for unconfined" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-9999.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-9999.ebuild index 4cc524e3399..581d624a16b 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-9999.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="7" +EAPI=8 MODS="unconfined" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/Manifest index 84bf02c74fc..c7e43e84cfa 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/Manifest @@ -1 +1,2 @@ DIST bubblewrap-0.11.0.tar.xz 115228 BLAKE2B 753ae172ccceb9de08422f03702922966cb6e6d2da262ffb61e3e207ff616166f4047a1cc47801e091cf9e85d6d179450704b3e99743c81d8f77e9c37094d816 SHA512 4b083ac42410dacfa75ad8764bbb300048ce8f28543ece393b9b7180b152108ee4b337f82539d63196b6f8f5bf194d9e10f49207e3b8417ee2cb4bde88a63eee +DIST bubblewrap-0.11.2.tar.xz 116336 BLAKE2B ae47e5672f79ed59cb84fe2ddd2fc1765c242e75659bbd397203b3c499292942633a6a9526f243df14abb3d932b8e0deb2ac239d61f7ec5b246ff68173f685ba SHA512 7c5a8d0670e8b2737328ab24fb3e3982544c716d2527e97f6e9dfa3ee767b0161681b4fd60e94ed17259ba52406a12968769ee1408648ba08239755858437edc diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/bubblewrap-0.11.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/bubblewrap-0.11.0-r1.ebuild new file mode 100644 index 00000000000..dee024de960 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/bubblewrap-0.11.0-r1.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 linux-info meson + +DESCRIPTION="Unprivileged sandboxing tool, namespaces-powered chroot-like solution" +HOMEPAGE="https://github.com/containers/bubblewrap/" +SRC_URI="https://github.com/containers/${PN}/releases/download/v${PV}/${P}.tar.xz" + +LICENSE="LGPL-2+" +SLOT="0" +KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" +IUSE="selinux suid" + +RDEPEND=" + sys-libs/libseccomp + sys-libs/libcap + selinux? ( >=sys-libs/libselinux-2.1.9 ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + app-text/docbook-xml-dtd:4.3 + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + virtual/pkgconfig +" +RDEPEND+=" selinux? ( sec-policy/selinux-bubblewrap )" + +# tests require root privileges +RESTRICT="test" + +pkg_setup() { + if [[ ${MERGE_TYPE} != buildonly ]]; then + CONFIG_CHECK="~UTS_NS ~IPC_NS ~USER_NS ~PID_NS ~NET_NS" + linux-info_pkg_setup + fi +} + +src_configure() { + local emesonargs=( + -Dbash_completion=enabled + -Dbash_completion_dir="$(get_bashcompdir)" + -Dman=enabled + -Dtests=false + -Dzsh_completion=enabled + $(meson_feature selinux) + ) + + meson_src_configure +} + +src_install() { + meson_src_install + + if use suid; then + chmod u+s "${ED}"/usr/bin/bwrap + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/bubblewrap-0.11.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/bubblewrap-0.11.0.ebuild deleted file mode 100644 index 1eca8ede61b..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/bubblewrap-0.11.0.ebuild +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit bash-completion-r1 linux-info meson - -DESCRIPTION="Unprivileged sandboxing tool, namespaces-powered chroot-like solution" -HOMEPAGE="https://github.com/containers/bubblewrap/" -SRC_URI="https://github.com/containers/${PN}/releases/download/v${PV}/${P}.tar.xz" - -LICENSE="LGPL-2+" -SLOT="0" -KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" -IUSE="selinux suid" - -RDEPEND=" - sys-libs/libseccomp - sys-libs/libcap - selinux? ( >=sys-libs/libselinux-2.1.9 ) -" -DEPEND="${RDEPEND}" -BDEPEND=" - app-text/docbook-xml-dtd:4.3 - app-text/docbook-xsl-stylesheets - dev-libs/libxslt - virtual/pkgconfig -" - -# tests require root privileges -RESTRICT="test" - -pkg_setup() { - if [[ ${MERGE_TYPE} != buildonly ]]; then - CONFIG_CHECK="~UTS_NS ~IPC_NS ~USER_NS ~PID_NS ~NET_NS" - linux-info_pkg_setup - fi -} - -src_configure() { - local emesonargs=( - -Dbash_completion=enabled - -Dbash_completion_dir="$(get_bashcompdir)" - -Dman=enabled - -Dtests=false - -Dzsh_completion=enabled - $(meson_feature selinux) - ) - - meson_src_configure -} - -src_install() { - meson_src_install - - if use suid; then - chmod u+s "${ED}"/usr/bin/bwrap - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/bubblewrap-0.11.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/bubblewrap-0.11.2-r1.ebuild new file mode 100644 index 00000000000..8d0190abdaf --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/bubblewrap-0.11.2-r1.ebuild @@ -0,0 +1,66 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 linux-info meson + +DESCRIPTION="Unprivileged sandboxing tool, namespaces-powered chroot-like solution" +HOMEPAGE="https://github.com/containers/bubblewrap/" +SRC_URI="https://github.com/containers/${PN}/releases/download/v${PV}/${P}.tar.xz" + +LICENSE="LGPL-2+" +SLOT="0" +KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" +IUSE="selinux suid" + +RDEPEND=" + sys-libs/libseccomp + sys-libs/libcap + selinux? ( >=sys-libs/libselinux-2.1.9 ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + app-text/docbook-xml-dtd:4.3 + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + virtual/pkgconfig +" +RDEPEND+=" selinux? ( sec-policy/selinux-bubblewrap )" + +# tests require root privileges +RESTRICT="test" + +PATCHES=( + "${FILESDIR}"/${PN}-0.11.2-no-werror.patch +) + +pkg_setup() { + if [[ ${MERGE_TYPE} != buildonly ]]; then + CONFIG_CHECK="~UTS_NS ~IPC_NS ~USER_NS ~PID_NS ~NET_NS" + linux-info_pkg_setup + fi +} + +src_configure() { + local emesonargs=( + -Dbash_completion=enabled + -Dbash_completion_dir="$(get_bashcompdir)" + -Dman=enabled + -Dtests=false + # whether bwrap will run under suid mode + -Dsupport_setuid=$(usex suid true false) + -Dzsh_completion=enabled + $(meson_feature selinux) + ) + + meson_src_configure +} + +src_install() { + meson_src_install + + if use suid; then + chmod u+s "${ED}"/usr/bin/bwrap + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/files/bubblewrap-0.11.2-no-werror.patch b/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/files/bubblewrap-0.11.2-no-werror.patch new file mode 100644 index 00000000000..8c866d958e9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/files/bubblewrap-0.11.2-no-werror.patch @@ -0,0 +1,71 @@ +https://bugs.gentoo.org/973225 +--- a/meson.build ++++ b/meson.build +@@ -13,28 +13,28 @@ add_project_arguments('-D_GNU_SOURCE', language : 'c') + common_include_directories = include_directories('.') + + # Keep this in sync with ostree, except remove -Wall (part of Meson +-# warning_level 2) and -Werror=declaration-after-statement ++# warning_level 2) and -Wdeclaration-after-statement + add_project_arguments( + cc.get_supported_arguments([ +- '-Werror=shadow', +- '-Werror=empty-body', +- '-Werror=strict-prototypes', +- '-Werror=missing-prototypes', +- '-Werror=implicit-function-declaration', +- '-Werror=pointer-arith', +- '-Werror=init-self', +- '-Werror=missing-declarations', +- '-Werror=return-type', +- '-Werror=overflow', +- '-Werror=int-conversion', +- '-Werror=parenthesis', +- '-Werror=incompatible-pointer-types', +- '-Werror=misleading-indentation', +- '-Werror=missing-include-dirs', +- '-Werror=aggregate-return', ++ '-Wshadow', ++ '-Wempty-body', ++ '-Wstrict-prototypes', ++ '-Wmissing-prototypes', ++ '-Wimplicit-function-declaration', ++ '-Wpointer-arith', ++ '-Winit-self', ++ '-Wmissing-declarations', ++ '-Wreturn-type', ++ '-Woverflow', ++ '-Wint-conversion', ++ '-Wparenthesis', ++ '-Wincompatible-pointer-types', ++ '-Wmisleading-indentation', ++ '-Wmissing-include-dirs', ++ '-Waggregate-return', + + # Extra warnings specific to bubblewrap +- '-Werror=switch-default', ++ '-Wswitch-default', + '-Wswitch-enum', + + # Deliberately not warning about these, ability to zero-initialize +@@ -46,14 +46,14 @@ add_project_arguments( + ) + + if ( +- cc.has_argument('-Werror=format=2') +- and cc.has_argument('-Werror=format-security') +- and cc.has_argument('-Werror=format-nonliteral') ++ cc.has_argument('-Wformat=2') ++ and cc.has_argument('-Wformat-security') ++ and cc.has_argument('-Wformat-nonliteral') + ) + add_project_arguments([ +- '-Werror=format=2', +- '-Werror=format-security', +- '-Werror=format-nonliteral', ++ '-Wformat=2', ++ '-Wformat-security', ++ '-Wformat-nonliteral', + ], language : 'c') + endif + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/busybox/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/busybox/Manifest index 2ba96545d9e..7f3c50776ad 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/busybox/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/busybox/Manifest @@ -1,2 +1,3 @@ DIST busybox-1.36.1.tar.bz2 2525473 BLAKE2B e515825cb3ab1c520e16b9c2512e9fc72947366a72a0466bff59b507fdffbc78fc9d16b44a26116175fc7a429d849ad944b1bc379d36c6d3a0eb20969997336e SHA512 8c0c754c9ae04b5e6b23596283a7d3a4ef96225fe179f92d6f6a99c69c0caa95b1aa56c267f52d7c807f6cc69e1f0b7dd29a8ac624098f601738f8c0c57980d4 DIST busybox-1.37.0.tar.bz2 2565764 BLAKE2B bfd9b81a2428670722934316d429b56886b232dc43ced5873a1f72966dd2bb604e3d607082bb8404bc7e8c15c5c79265fc19f8932e2c9703caafd16fc8037a5a SHA512 ad8fd06f082699774f990a53d7a73b189ed404fe0a2166aff13eae4d9d8ee5c9239493befe949c98801fe7897520dbff3ed0224faa7205854ce4fa975e18467e +DIST busybox-1.38.0.tar.bz2 2695723 BLAKE2B 71d1f0992bc99813e4e32d718004fadbd8315b300508094e37713555a2e394ca77f16874ec8be55961c0aa4141365dba27728e203895aadb2c112a84764a28d9 SHA512 ba3866f0a9ceabafe8c4d43afaf031bc5554742903b3d08e59a8592351dc09c6e091bb0cd2852b3ed1e79e841de871bac4dc48d9bb1cef9309c3f8495aba0d00 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/busybox/busybox-1.38.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/busybox/busybox-1.38.0.ebuild new file mode 100644 index 00000000000..c290b920df7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/busybox/busybox-1.38.0.ebuild @@ -0,0 +1,392 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# See `man savedconfig.eclass` for info on how to use USE=savedconfig. + +EAPI=8 + +inherit eapi9-ver flag-o-matic readme.gentoo-r1 savedconfig toolchain-funcs + +DESCRIPTION="Utilities for rescue and embedded systems" +HOMEPAGE="https://www.busybox.net/" +if [[ ${PV} == "9999" ]] ; then + MY_P="${P}" + EGIT_REPO_URI="https://git.busybox.net/busybox" + inherit git-r3 +else + MY_P="${PN}-${PV/_/-}" + SRC_URI="https://www.busybox.net/downloads/${MY_P}.tar.bz2" + # unstable release - no keywords + # KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-2" # GPL-2 only +SLOT="0" +IUSE="debug livecd make-symlinks math mdev pam selinux sep-usr static syslog systemd" +REQUIRED_USE="pam? ( !static )" +RESTRICT="test" + +# TODO: Could make pkgconfig conditional on selinux? bug #782829 +RDEPEND=" + !static? ( + virtual/libc + virtual/libcrypt:= + selinux? ( sys-libs/libselinux ) + ) + pam? ( sys-libs/pam ) +" +DEPEND="${RDEPEND} + static? ( + virtual/libcrypt[static-libs] + selinux? ( sys-libs/libselinux[static-libs(+)] ) + ) + sys-kernel/linux-headers" +BDEPEND=" + virtual/pkgconfig + make-symlinks? ( >=sys-apps/coreutils-9.2 ) +" + +DISABLE_AUTOFORMATTING=yes +DOC_CONTENTS=' +If you want a smaller executable, add `-Oz` to your busybox `CFLAGS`.' + +busybox_config_option() { + local flag=$1 ; shift + if [[ ${flag} != [yn] && ${flag} != \"* ]] ; then + busybox_config_option $(usex ${flag} y n) "$@" + return + fi + local expr + while [[ $# -gt 0 ]] ; do + case ${flag} in + y) expr="s:.*\.*set:CONFIG_$1=y:g" ;; + n) expr="s:CONFIG_$1=y:# CONFIG_$1 is not set:g" ;; + *) expr="s:.*\.*:CONFIG_$1=${flag}:g" ;; + esac + sed -i -e "${expr}" .config || die + einfo "$(grep "CONFIG_$1[= ]" .config || echo "Could not find CONFIG_$1 ...")" + shift + done +} + +busybox_config_enabled() { + local val=$(sed -n "/^CONFIG_$1=/s:^[^=]*=::p" .config) + case ${val} in + "") return 1 ;; + y) return 0 ;; + *) echo "${val}" | sed -r 's:^"(.*)"$:\1:' ;; + esac +} + +# patches go here! +PATCHES=( + "${FILESDIR}"/${PN}-1.38.0-bb.patch + "${FILESDIR}"/${PN}-1.34.1-skip-selinux-search.patch + + "${FILESDIR}"/${PN}-1.36.0-fortify-source-3-fixdep.patch + "${FILESDIR}"/${PN}-1.36.1-kernel-6.8.patch + + "${FILESDIR}"/${PN}-1.37.0-skip-dynamic-relocations.patch +) + +src_prepare() { + default + + cp "${FILESDIR}"/ginit.c init/ || die + + # flag cleanup + sed -i -r \ + -e 's:[[:space:]]?-(Werror|Os|Oz|falign-(functions|jumps|loops|labels)=1|fomit-frame-pointer)\>::g' \ + Makefile.flags || die + sed -i \ + -e 's:-static-libgcc::' \ + Makefile.flags || die + + # Print all link lines too + sed -i -e 's:debug=false:debug=true:' scripts/trylink || die +} + +bbmake() { + local args=( + V=1 + CROSS_COMPILE="${CHOST}-" + AR="${AR}" + CC="${CC}" + HOSTCC="${BUILD_CC}" + HOSTCFLAGS="${BUILD_CFLAGS}" + PKG_CONFIG="${PKG_CONFIG}" + ) + emake "${args[@]}" "$@" +} + +src_configure() { + unset KBUILD_OUTPUT #88088 + export SKIP_STRIP=y + + tc-export AR CC BUILD_CC PKG_CONFIG + + tc-is-cross-compiler || BUILD_CFLAGS=${CFLAGS} + BUILD_CFLAGS+=" -D_FILE_OFFSET_BITS=64" #930513 + + append-flags -fno-strict-aliasing #310413 + use ppc64 && append-flags -mminimal-toc #130943 + + # check for a busybox config before making one of our own. + # if one exist lets return and use it. + restore_config .config + if [ -f .config ]; then + yes "" | bbmake -j1 oldconfig + return 0 + else + ewarn "Could not locate user configfile, so we will save a default one" + fi + + # setting SKIP_SELINUX skips searching for selinux at this stage. We don't + # need to search now in case we end up not needing it after all. + # setup the config file + bbmake -j1 allyesconfig SKIP_SELINUX=$(usex selinux n y) # bug #620918 + # nommu forces a bunch of things off which we want on bug #387555 + busybox_config_option n NOMMU + sed -i '/^#/d' .config + yes "" | bbmake -j1 oldconfig SKIP_SELINUX=$(usex selinux n y) #620918 + + # now turn off stuff we really don't want + busybox_config_option n DMALLOC + busybox_config_option n FEATURE_2_4_MODULES #607548 + busybox_config_option n FEATURE_SUID_CONFIG + busybox_config_option n BUILD_AT_ONCE + busybox_config_option n BUILD_LIBBUSYBOX + busybox_config_option n FEATURE_CLEAN_UP + busybox_config_option n MONOTONIC_SYSCALL + busybox_config_option n USE_PORTABLE_CODE + busybox_config_option n WERROR + # CONFIG_MODPROBE_SMALL=y disables depmod.c and uses a smaller one that + # does not support -b. Setting this to no creates slightly larger and + # slightly more useful modutils + busybox_config_option n MODPROBE_SMALL # bug #472464 + # triming the BSS size may be dangerous + busybox_config_option n FEATURE_USE_BSS_TAIL + + # These cause trouble with musl. + if use elibc_musl; then + busybox_config_option n FEATURE_UTMP + busybox_config_option n EXTRA_COMPAT + busybox_config_option n FEATURE_VI_REGEX_SEARCH + fi + + # Disable standalone shell mode when using make-symlinks, else Busybox calls its + # applets by default without looking up in PATH. + # This also enables users to disable a builtin by deleting the corresponding symlink. + if use make-symlinks; then + busybox_config_option n FEATURE_PREFER_APPLETS + busybox_config_option n FEATURE_SH_STANDALONE + fi + + # If these are not set and we are using a busybox setup + # all calls to system() will fail. + busybox_config_option y ASH + busybox_config_option y SH_IS_ASH + busybox_config_option n HUSH + busybox_config_option n SH_IS_HUSH + + busybox_config_option '"/run"' PID_FILE_PATH + busybox_config_option '"/run/ifstate"' IFUPDOWN_IFSTATE_PATH + + busybox_config_option pam PAM + busybox_config_option static STATIC + busybox_config_option syslog {K,SYS}LOGD LOGGER + busybox_config_option systemd FEATURE_SYSTEMD + busybox_config_option math FEATURE_AWK_LIBM + + # all the debug options are compiler related, so punt them + busybox_config_option n DEBUG_SANITIZE + busybox_config_option n DEBUG + busybox_config_option y NO_DEBUG_LIB + busybox_config_option n DMALLOC + busybox_config_option n EFENCE + busybox_config_option $(usex debug y n) TFTP_DEBUG + + busybox_config_option selinux SELINUX + + # this opt only controls mounting with > 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-version="${PVR} (p${PATCH_VER:-0})" + # kill/uptime - procps + # hostname - net-tools + --enable-install-program="arch,$(usev hostname),$(usev kill)" + --enable-no-install-program="$(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) + $(use_with selinux) + ) + + if use gmp ; then + myconf+=( --with-libgmp-prefix="${ESYSROOT}"/usr ) + fi + + # https://savannah.gnu.org/support/?111394 + # This can be removed when we patch dev-build/autoconf, though + # packages w/o eautoreconf will still need it. + [[ ${enable_year2038} == "no" ]] && myconf+=( --disable-year2038 ) + + 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 + + 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.9-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9.9-r1.ebuild deleted file mode 100644 index 92b5afb1a29..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9.9-r1.ebuild +++ /dev/null @@ -1,312 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Try to keep an eye on Fedora's packaging: https://src.fedoraproject.org/rpms/coreutils -# The upstream coreutils maintainers also maintain the package in Fedora and may -# backport fixes which we want to pick up. -# -# Also recommend subscribing to the coreutils and bug-coreutils MLs. - -PYTHON_COMPAT=( python3_{11..13} ) -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/coreutils.asc -inherit flag-o-matic python-any-r1 toolchain-funcs verify-sig - -MY_PATCH="${PN}-9.6-patches" -DESCRIPTION="Standard GNU utilities (chmod, cp, dd, ls, sort, tr, head, wc, who,...)" -HOMEPAGE="https://www.gnu.org/software/coreutils/" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://git.savannah.gnu.org/git/coreutils.git" - inherit git-r3 -elif [[ ${PV} == *_p* ]] ; then - # Note: could put this in devspace, but if it's gone, we don't want - # it in tree anyway. It's just for testing. - MY_SNAPSHOT="$(ver_cut 1-2).327-71a8c" - SRC_URI="https://www.pixelbeat.org/cu/coreutils-${MY_SNAPSHOT}.tar.xz -> ${P}.tar.xz" - SRC_URI+=" verify-sig? ( https://www.pixelbeat.org/cu/coreutils-${MY_SNAPSHOT}.tar.xz.sig -> ${P}.tar.xz.sig )" - S="${WORKDIR}"/${PN}-${MY_SNAPSHOT} -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" -fi - -SRC_URI+=" !vanilla? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${MY_PATCH}.tar.xz )" - -LICENSE="GPL-3+" -SLOT="0" -IUSE="acl caps gmp hostname kill multicall nls +openssl selinux +split-usr static test test-full vanilla xattr" -RESTRICT="!test? ( test )" - -LIB_DEPEND=" - acl? ( sys-apps/acl[static-libs] ) - caps? ( sys-libs/libcap ) - gmp? ( dev-libs/gmp:=[static-libs] ) - openssl? ( dev-libs/openssl:=[static-libs] ) - xattr? ( sys-apps/attr[static-libs] ) -" -RDEPEND=" - !static? ( ${LIB_DEPEND//\[static-libs]} ) - selinux? ( sys-libs/libselinux ) - nls? ( virtual/libintl ) -" -DEPEND=" - ${RDEPEND} - static? ( ${LIB_DEPEND} ) -" -BDEPEND=" - app-arch/xz-utils - dev-lang/perl - test? ( - dev-debug/strace - dev-lang/perl - dev-perl/Expect - ${PYTHON_DEPS} - ) - verify-sig? ( sec-keys/openpgp-keys-coreutils ) -" -RDEPEND+=" - hostname? ( !sys-apps/net-tools[hostname] ) - kill? ( - !sys-apps/util-linux[kill] - !sys-process/procps[kill] - ) - !> 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-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9999.ebuild index 5d546ec2d55..d82ffdad9d3 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -9,7 +9,7 @@ EAPI=8 # # Also recommend subscribing to the coreutils and bug-coreutils MLs. -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{11..14} ) VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/coreutils.asc inherit branding flag-o-matic python-any-r1 toolchain-funcs verify-sig @@ -23,7 +23,7 @@ if [[ ${PV} == 9999 ]] ; then elif [[ ${PV} == *_p* ]] ; then # Note: could put this in devspace, but if it's gone, we don't want # it in tree anyway. It's just for testing. - MY_SNAPSHOT="$(ver_cut 1-2).327-71a8c" + MY_SNAPSHOT="$(ver_cut 1-2).299-27a7c" SRC_URI="https://www.pixelbeat.org/cu/coreutils-${MY_SNAPSHOT}.tar.xz -> ${P}.tar.xz" SRC_URI+=" verify-sig? ( https://www.pixelbeat.org/cu/coreutils-${MY_SNAPSHOT}.tar.xz.sig -> ${P}.tar.xz.sig )" S="${WORKDIR}"/${PN}-${MY_SNAPSHOT} @@ -167,12 +167,18 @@ src_configure() { $(use_enable xattr) $(use_with gmp libgmp) $(use_with openssl) + $(use_with selinux) ) if use gmp ; then myconf+=( --with-libgmp-prefix="${ESYSROOT}"/usr ) fi + # https://savannah.gnu.org/support/?111394 + # This can be removed when we patch dev-build/autoconf, though + # packages w/o eautoreconf will still need it. + [[ ${enable_year2038} == "no" ]] && myconf+=( --disable-year2038 ) + if tc-is-cross-compiler && [[ ${CHOST} == *linux* ]] ; then # bug #311569 export fu_cv_sys_stat_statfs2_bsize=yes @@ -189,11 +195,6 @@ src_configure() { 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[@]}" } diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/dbus/dbus-1.16.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/dbus/dbus-1.16.2-r1.ebuild new file mode 100644 index 00000000000..7f34b33f059 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/dbus/dbus-1.16.2-r1.ebuild @@ -0,0 +1,220 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Be careful with packaging odd-version-number branches! +# We should at the very least keep stable as an upstream stable branch, +# possibly even ~arch too, given the note about security releases on their website. +# See https://www.freedesktop.org/wiki/Software/dbus/#download. + +PYTHON_COMPAT=( python3_{11..14} ) +TMPFILES_OPTIONAL=1 + +inherit linux-info meson-multilib python-any-r1 readme.gentoo-r1 systemd tmpfiles virtualx + +DESCRIPTION="A message bus system, a simple way for applications to talk to each other" +HOMEPAGE="https://www.freedesktop.org/wiki/Software/dbus/" +SRC_URI="https://dbus.freedesktop.org/releases/dbus/${P}.tar.xz" + +LICENSE="|| ( AFL-2.1 GPL-2+ ) Apache-2.0 BSD GPL-2+ LGPL-2.1+ MIT tcltk" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" +# TODO: USE=daemon +IUSE="apparmor audit debug doc elogind selinux static-libs systemd test valgrind X" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${PYTHON_DEPS} + app-text/xmlto + app-text/docbook-xml-dtd:4.4 + acct-user/messagebus + dev-build/autoconf-archive + virtual/pkgconfig + doc? ( app-text/doxygen ) +" +COMMON_DEPEND=" + >=dev-libs/expat-2.1.0 + apparmor? ( sys-libs/libapparmor ) + audit? ( sys-process/audit ) + elogind? ( sys-auth/elogind ) + selinux? ( + sys-libs/libselinux + ) + systemd? ( sys-apps/systemd:= ) + X? ( + x11-libs/libX11 + x11-libs/libXt + ) +" +DEPEND=" + ${COMMON_DEPEND} + test? ( >=dev-libs/glib-2.40:2[${MULTILIB_USEDEP}] ) + valgrind? ( >=dev-debug/valgrind-3.6 ) + X? ( x11-base/xorg-proto ) +" +RDEPEND=" + ${COMMON_DEPEND} + acct-user/messagebus + selinux? ( sec-policy/selinux-dbus ) + systemd? ( virtual/tmpfiles ) +" + +DOC_CONTENTS=" + Some applications require a session bus in addition to the system + bus. Please see \`man dbus-launch\` for more information. +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.16.0-enable-elogind.patch # bug #599494 +) + +pkg_setup() { + # Python interpreter required unconditionally (bug #932517) + python-any-r1_pkg_setup + + if use kernel_linux; then + CONFIG_CHECK="~EPOLL" + linux-info_pkg_setup + fi +} + +src_configure() { + local rundir=$(usex kernel_linux /run /var/run) + + sed -e "s;@rundir@;${EPREFIX}${rundir};g" "${FILESDIR}"/dbus.initd.in \ + > "${T}"/dbus.initd || die + + meson-multilib_src_configure +} + +multilib_src_configure() { + local emesonargs=( + --localstatedir="${EPREFIX}/var" + -Druntime_dir="${EPREFIX}${rundir}" + + -Ddefault_library=$(multilib_native_usex static-libs both shared) + + -Dasserts=false # TODO + -Dchecks=false # TODO + $(meson_use debug stats) + $(meson_use debug verbose_mode) + -Ddbus_user=messagebus + -Dkqueue=disabled + $(meson_feature kernel_linux inotify) + $(meson_native_use_feature doc doxygen_docs) + $(meson_native_enabled xml_docs) # Controls man pages + + -Dinstalled_tests=false + $(meson_native_true message_bus) # TODO: USE=daemon? + $(meson_feature test modular_tests) + -Dqt_help=disabled + + $(meson_native_true tools) + + $(meson_native_use_feature elogind) + $(meson_native_use_feature systemd) + $(meson_use systemd user_session) + $(meson_native_use_feature X x11_autolaunch) + $(meson_native_use_feature valgrind) + + $(meson_native_use_feature apparmor) + $(meson_native_use_feature audit libaudit) + $(meson_native_use_feature selinux) + + -Dsession_socket_dir="${EPREFIX}"/tmp + -Dsystem_pid_file="${EPREFIX}${rundir}"/dbus.pid + -Dsystem_socket="${EPREFIX}${rundir}"/dbus/system_bus_socket + -Dsystemd_system_unitdir="$(systemd_get_systemunitdir)" + -Dsystemd_user_unitdir="$(systemd_get_userunitdir)" + ) + + if [[ ${CHOST} == *-darwin* ]]; then + emesonargs+=( + -Dlaunchd=enabled + -Dlaunchd_agent_dir="${EPREFIX}"/Library/LaunchAgents + ) + fi + + meson_src_configure +} + +multilib_src_compile() { + # After the compile, it uses a selinuxfs interface to + # check if the SELinux policy has the right support + use selinux && addwrite /selinux/access + + meson_src_compile +} + +multilib_src_test() { + # DBUS_TEST_MALLOC_FAILURES=0 to avoid huge test logs + # https://gitlab.freedesktop.org/dbus/dbus/-/blob/master/CONTRIBUTING.md#L231 + DBUS_TEST_MALLOC_FAILURES=0 DBUS_VERBOSE=1 virtx meson_src_test +} + +multilib_src_install_all() { + newinitd "${T}"/dbus.initd dbus + exeinto /etc/user/init.d + newexe "${FILESDIR}/dbus.user.initd" dbus + + if use X; then + # dbus X session script (bug #77504) + # turns out to only work for GDM (and startx). has been merged into + # other desktop (kdm and such scripts) + exeinto /etc/X11/xinit/xinitrc.d + newexe "${FILESDIR}"/80-dbus-r1 80-dbus + fi + + # Needs to exist for dbus sessions to launch + keepdir /usr/share/dbus-1/services + keepdir /etc/dbus-1/{session,system}.d + # machine-id symlink from pkg_postinst() + keepdir /var/lib/dbus + # Let the init script create the /var/run/dbus directory + rm -rf "${ED}"/{,var/}run + + # bug #761763 + rm -rf "${ED}"/usr/lib/sysusers.d + + dodoc AUTHORS NEWS README doc/TODO + readme.gentoo_create_doc + + mv "${ED}"/usr/share/doc/dbus/* "${ED}"/usr/share/doc/${PF}/ || die + rm -rf "${ED}"/usr/share/doc/dbus || die +} + +pkg_postinst() { + readme.gentoo_print_elog + + if use systemd; then + tmpfiles_process dbus.conf + fi + + # Ensure unique id is generated and put it in /etc wrt bug #370451 but symlink + # for DBUS_MACHINE_UUID_FILE (see tools/dbus-launch.c) and reverse + # dependencies with hardcoded paths (although the known ones got fixed already) + # TODO: should be safe to remove at least the ln because of the above tmpfiles_process? + dbus-uuidgen --ensure="${EROOT}"/etc/machine-id + ln -sf "${EPREFIX}"/etc/machine-id "${EROOT}"/var/lib/dbus/machine-id + + if [[ ${CHOST} == *-darwin* ]]; then + local plist="org.freedesktop.dbus-session.plist" + elog + elog "For MacOS/Darwin we now ship launchd support for dbus." + elog "This enables autolaunch of dbus at session login and makes" + elog "dbus usable under MacOS/Darwin." + elog + elog "The launchd plist file ${plist} has been" + elog "installed in ${EPREFIX}/Library/LaunchAgents." + elog "For it to be used, you will have to do all of the following:" + elog " + cd ~/Library/LaunchAgents" + elog " + ln -s ${EPREFIX}/Library/LaunchAgents/${plist}" + elog " + logout and log back in" + elog + elog "If your application needs a proper DBUS_SESSION_BUS_ADDRESS" + elog "specified and refused to start otherwise, then export the" + elog "the following to your environment:" + elog " DBUS_SESSION_BUS_ADDRESS=\"launchd:env=DBUS_LAUNCHD_SESSION_BUS_SOCKET\"" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/dbus/dbus-1.16.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/dbus/dbus-1.16.2.ebuild index 48a65e9e6b5..bc380b6aec9 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/dbus/dbus-1.16.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/dbus/dbus-1.16.2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -152,7 +152,6 @@ multilib_src_test() { # DBUS_TEST_MALLOC_FAILURES=0 to avoid huge test logs # https://gitlab.freedesktop.org/dbus/dbus/-/blob/master/CONTRIBUTING.md#L231 DBUS_TEST_MALLOC_FAILURES=0 DBUS_VERBOSE=1 virtx meson_src_test - } multilib_src_install_all() { diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/debianutils/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/debianutils/Manifest index 058d557a934..b8e3c6f1aa5 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/debianutils/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/debianutils/Manifest @@ -1 +1,2 @@ DIST debianutils_5.14.tar.xz 79676 BLAKE2B b8e6c5a38cf5fe8e3d8151b1c19cfda4d5866f805453eeb8376a94e1982653cb532ffefdb560f188574ba01e97249b49b69d41f1dda9aa76de4511034736965a SHA512 4a152fec6c363c0ca26339bf8bf3f39ec3c10227bbfe5d2f5974c24a6207fdb6c34644ecfdf0c773d4c778b1a95f91a15697b12b5c0cd9a6d0d8f369373b956f +DIST debianutils_5.23.2.tar.xz 82376 BLAKE2B a70bc0121cdcd4d302bdce60cca0cb6bc395dbd9ba1bcb7e5bcdd7b9bcb3b921162e897fd04069d75d6e3a9eae2dc0cd495f4723a9068e5350ba59ed1cfadb80 SHA512 2ccc3993abee6be0b9e861d7937984a096a29a677584665f638e5a51057051d48fcc54283c1f43ab1179505298735600e5ebedd3b41386aa5bc697c8c91cef6e diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/debianutils/debianutils-5.23.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/debianutils/debianutils-5.23.2.ebuild new file mode 100644 index 00000000000..39f95cc1773 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/debianutils/debianutils-5.23.2.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic + +DESCRIPTION="A selection of tools from Debian" +HOMEPAGE="https://packages.qa.debian.org/d/debianutils.html" +SRC_URI="mirror://debian/pool/main/d/${PN}/${PN}_${PV}.tar.xz" +#SRC_URI="mirror://gentoo/e7/${PN}_${PV}.tar.xz" +S="${WORKDIR}"/work + +LICENSE="BSD GPL-2 SMAIL" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +IUSE="static" + +PATCHES=( "${FILESDIR}"/${PN}-3.4.2-no-bs-namespace.patch ) + +src_prepare() { + # Avoid adding po4a dependency, upstream refreshes manpages. + sed -i -e '/SUBDIRS/s|po4a||' Makefile.am || die + + default + eautoreconf +} + +src_configure() { + use static && append-ldflags -static + default +} + +src_install() { + einstalldocs + + into / + dobin run-parts + + into /usr + dobin ischroot + dosbin savelog + + doman ischroot.1 run-parts.8 savelog.8 +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-1.7.2-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-1.7.2-r2.ebuild index aef3877b5bd..7a4e4fb6638 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-1.7.2-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-1.7.2-r2.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit dot-a meson python-single-r1 if [[ ${PV} == 9999 ]] ; then diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-9999.ebuild index 3095155f0e3..f82f1f6773c 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-9999.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit dot-a meson python-single-r1 if [[ ${PV} == 9999 ]] ; then diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/Manifest index a8f064fcd13..343955434b6 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/Manifest @@ -1 +1,3 @@ DIST ethtool-6.15.tar.xz 444060 BLAKE2B 2a4a71c7ea6ac047d23fa9c8265a2dce8432f4417f6006f71dc91e365b9a841b5bfd44683e3179806f38285f199ed0cb84d1ca7a3f02979b8f4045274736f9eb SHA512 f140095e7c9e38d8b151796eed1301e9e6ab93e82d3e35b8a524b4f5be7b219e707bd270af7398195081085778c61948e15b39462a6a6f44aad6ffcaaddc3644 +DIST ethtool-6.19.tar.xz 450548 BLAKE2B 51c8c2a76b826a04e6ccbf6ebcfc37dc534292f750990aa027ef393bda3d8df6ef44dc87e25cd4792a85b3100448cf02ed2c57e34366740c93491ff3ab7eaab6 SHA512 b91adb6eb2cd5bf395371cbe68b5542645691d4fb1a860e1edf2d07d7b13e88710715c8fb0dda16279b57ccd0a9ac3782d37b38374bb477382cfc44363de381e +DIST ethtool-7.0.tar.xz 453952 BLAKE2B c2cfdb3256044dd4e331f8663a87e1b5231d45a693501bfd022c823bdbea950c93f0586e5d61e02d28f7ff87df769a68e1126123429f82899603baa69f153006 SHA512 f8f0d08fe3da11f10cf7eb1f6348ebccd69175bfcdeb22726a8b86613d0dc7c8538b7d7075264102c9695f0100bb94cae03fd8dbe3b5bbe1fe758e1cb936a9c9 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/ethtool-6.19.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/ethtool-6.19.ebuild new file mode 100644 index 00000000000..70e32f022d6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/ethtool-6.19.ebuild @@ -0,0 +1,24 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Utility for examining and tuning ethernet-based network interfaces" +HOMEPAGE="https://www.kernel.org/pub/software/network/ethtool/" +SRC_URI="https://www.kernel.org/pub/software/network/ethtool/${P}.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86" +IUSE="+netlink" + +RDEPEND="netlink? ( net-libs/libmnl )" +DEPEND="${RDEPEND}" +BDEPEND=" + app-arch/xz-utils + netlink? ( virtual/pkgconfig ) +" + +src_configure() { + econf $(use_enable netlink) +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/ethtool-7.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/ethtool-7.0.ebuild new file mode 100644 index 00000000000..745aa42e271 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/ethtool-7.0.ebuild @@ -0,0 +1,24 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Utility for examining and tuning ethernet-based network interfaces" +HOMEPAGE="https://www.kernel.org/pub/software/network/ethtool/" +SRC_URI="https://www.kernel.org/pub/software/network/ethtool/${P}.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="+netlink" + +RDEPEND="netlink? ( net-libs/libmnl )" +DEPEND="${RDEPEND}" +BDEPEND=" + app-arch/xz-utils + netlink? ( virtual/pkgconfig ) +" + +src_configure() { + econf $(use_enable netlink) +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.47-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.47-r1.ebuild index 9b1335a9137..1c19056f4eb 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.47-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.47-r1.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 ~arm64-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" BDEPEND="verify-sig? ( sec-keys/openpgp-keys-file )" fi diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.47-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.47-r2.ebuild new file mode 100644 index 00000000000..8e359420485 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.47-r2.ebuild @@ -0,0 +1,189 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_OPTIONAL=1 +PYTHON_COMPAT=( python3_{11..14} ) + +inherit distutils-r1 toolchain-funcs multilib-minimal + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/file/file" + inherit autotools git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/file.asc + inherit libtool verify-sig + 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 ~arm64-macos ~x64-macos ~x64-solaris" + + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-file )" +fi + +DESCRIPTION="Identify a file's format by scanning binary data for patterns" +HOMEPAGE="https://www.darwinsys.com/file/" + +LICENSE="BSD-2" +SLOT="0" +IUSE="bzip2 lzip lzma python seccomp static-libs zlib zstd" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +DEPEND=" + bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] ) + lzip? ( app-arch/lzlib ) + lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] ) + seccomp? ( >=sys-libs/libseccomp-2.5.4[${MULTILIB_USEDEP}] ) + zlib? ( >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] ) + zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + ${DEPEND} + python? ( + ${PYTHON_DEPS} + !dev-python/python-magic + ) + seccomp? ( >=sys-libs/libseccomp-2.5.4[${MULTILIB_USEDEP}] ) +" +BDEPEND+=" + python? ( + ${PYTHON_DEPS} + ${DISTUTILS_DEPS} + ) +" + +# https://bugs.gentoo.org/898676 +QA_CONFIG_IMPL_DECL_SKIP=( makedev ) + +PATCHES=( + "${FILESDIR}/file-5.43-seccomp-fstatat64-musl.patch" #789336, not upstream yet + "${FILESDIR}/file-5.45-seccomp-sandbox.patch" + "${FILESDIR}/file-5.47-magic.py.patch" + "${FILESDIR}/${P}-toml.patch" +) + +src_prepare() { + default + + if [[ ${PV} == 9999 ]] ; then + eautoreconf + else + elibtoolize + fi + + # Don't let python README kill main README, bug #60043 + mv python/README.md python/README.python.md || die + + # bug #662090 + sed -i 's@README.md@README.python.md@' python/setup.py || die +} + +multilib_src_configure() { + local myeconfargs=( + --enable-fsect-man5 + $(use_enable bzip2 bzlib) + $(multilib_native_use_enable lzip lzlib) + $(use_enable lzma xzlib) + $(use_enable seccomp libseccomp) + $(use_enable static-libs static) + $(use_enable zlib) + $(use_enable zstd zstdlib) + ) + + econf "${myeconfargs[@]}" +} + +build_src_configure() { + local myeconfargs=( + --disable-shared + --disable-libseccomp + --disable-bzlib + --disable-xzlib + --disable-zlib + ) + + econf_build "${myeconfargs[@]}" +} + +need_build_file() { + # When cross-compiling, we need to build up our own file + # because people often don't keep matching host/target + # file versions, bug #362941 + tc-is-cross-compiler && ! has_version -b "~${CATEGORY}/${P}" +} + +src_configure() { + local ECONF_SOURCE="${S}" + + if need_build_file ; then + mkdir -p "${WORKDIR}"/build || die + cd "${WORKDIR}"/build || die + build_src_configure + fi + + multilib-minimal_src_configure +} + +multilib_src_compile() { + if multilib_is_native_abi ; then + emake + else + # bug #586444 + emake -C src magic.h + emake -C src libmagic.la + fi +} + +src_compile() { + if need_build_file ; then + # bug #586444 + emake -C "${WORKDIR}"/build/src magic.h + emake -C "${WORKDIR}"/build/src file + local -x PATH="${WORKDIR}/build/src:${PATH}" + fi + + multilib-minimal_src_compile + + if use python ; then + cd python || die + distutils-r1_src_compile + fi +} + +src_test() { + multilib-minimal_src_test + + if use python ; then + cd python || die + distutils-r1_src_test + fi +} + +python_test() { + eunittest +} + +multilib_src_install() { + if multilib_is_native_abi ; then + default + else + emake -C src install-{nodist_includeHEADERS,libLTLIBRARIES} DESTDIR="${D}" + fi +} + +multilib_src_install_all() { + dodoc ChangeLog MAINT # README + + # Required for `file -C` + insinto /usr/share/misc/magic + doins -r magic/Magdir/* + + if use python ; then + cd python || die + distutils-r1_src_install + fi + + find "${ED}" -type f -name "*.la" -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.47-r3.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.47-r3.ebuild new file mode 100644 index 00000000000..6a368c76559 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.47-r3.ebuild @@ -0,0 +1,190 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_OPTIONAL=1 +PYTHON_COMPAT=( python3_{11..14} ) + +inherit distutils-r1 toolchain-funcs multilib-minimal + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/file/file" + inherit autotools git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/file.asc + inherit libtool verify-sig + 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 ~arm64-macos ~x64-macos ~x64-solaris" + + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-file )" +fi + +DESCRIPTION="Identify a file's format by scanning binary data for patterns" +HOMEPAGE="https://www.darwinsys.com/file/" + +LICENSE="BSD-2" +SLOT="0" +IUSE="bzip2 lzip lzma python seccomp static-libs zlib zstd" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +DEPEND=" + bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] ) + lzip? ( app-arch/lzlib ) + lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] ) + seccomp? ( >=sys-libs/libseccomp-2.5.4[${MULTILIB_USEDEP}] ) + zlib? ( >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] ) + zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + ${DEPEND} + python? ( + ${PYTHON_DEPS} + !dev-python/python-magic + ) + seccomp? ( >=sys-libs/libseccomp-2.5.4[${MULTILIB_USEDEP}] ) +" +BDEPEND+=" + python? ( + ${PYTHON_DEPS} + ${DISTUTILS_DEPS} + ) +" + +# https://bugs.gentoo.org/898676 +QA_CONFIG_IMPL_DECL_SKIP=( makedev ) + +PATCHES=( + "${FILESDIR}/file-5.43-seccomp-fstatat64-musl.patch" #789336, not upstream yet + "${FILESDIR}/file-5.45-seccomp-sandbox.patch" + "${FILESDIR}/file-5.47-magic.py.patch" + "${FILESDIR}/${P}-toml.patch" + "${FILESDIR}/${P}-softmagic.patch" +) + +src_prepare() { + default + + if [[ ${PV} == 9999 ]] ; then + eautoreconf + else + elibtoolize + fi + + # Don't let python README kill main README, bug #60043 + mv python/README.md python/README.python.md || die + + # bug #662090 + sed -i 's@README.md@README.python.md@' python/setup.py || die +} + +multilib_src_configure() { + local myeconfargs=( + --enable-fsect-man5 + $(use_enable bzip2 bzlib) + $(multilib_native_use_enable lzip lzlib) + $(use_enable lzma xzlib) + $(use_enable seccomp libseccomp) + $(use_enable static-libs static) + $(use_enable zlib) + $(use_enable zstd zstdlib) + ) + + econf "${myeconfargs[@]}" +} + +build_src_configure() { + local myeconfargs=( + --disable-shared + --disable-libseccomp + --disable-bzlib + --disable-xzlib + --disable-zlib + ) + + econf_build "${myeconfargs[@]}" +} + +need_build_file() { + # When cross-compiling, we need to build up our own file + # because people often don't keep matching host/target + # file versions, bug #362941 + tc-is-cross-compiler && ! has_version -b "~${CATEGORY}/${P}" +} + +src_configure() { + local ECONF_SOURCE="${S}" + + if need_build_file ; then + mkdir -p "${WORKDIR}"/build || die + cd "${WORKDIR}"/build || die + build_src_configure + fi + + multilib-minimal_src_configure +} + +multilib_src_compile() { + if multilib_is_native_abi ; then + emake + else + # bug #586444 + emake -C src magic.h + emake -C src libmagic.la + fi +} + +src_compile() { + if need_build_file ; then + # bug #586444 + emake -C "${WORKDIR}"/build/src magic.h + emake -C "${WORKDIR}"/build/src file + local -x PATH="${WORKDIR}/build/src:${PATH}" + fi + + multilib-minimal_src_compile + + if use python ; then + cd python || die + distutils-r1_src_compile + fi +} + +src_test() { + multilib-minimal_src_test + + if use python ; then + cd python || die + distutils-r1_src_test + fi +} + +python_test() { + eunittest +} + +multilib_src_install() { + if multilib_is_native_abi ; then + default + else + emake -C src install-{nodist_includeHEADERS,libLTLIBRARIES} DESTDIR="${D}" + fi +} + +multilib_src_install_all() { + dodoc ChangeLog MAINT # README + + # Required for `file -C` + insinto /usr/share/misc/magic + doins -r magic/Magdir/* + + if use python ; then + cd python || die + distutils-r1_src_install + fi + + find "${ED}" -type f -name "*.la" -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/file/files/file-5.47-softmagic.patch b/sdk_container/src/third_party/portage-stable/sys-apps/file/files/file-5.47-softmagic.patch new file mode 100644 index 00000000000..ce066036d40 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/file/files/file-5.47-softmagic.patch @@ -0,0 +1,20 @@ +https://bugs.gentoo.org/970705 +https://github.com/file/file/commit/c54605718190ad8fe9c25cb475f1f32ca7cd54f7 + +From c54605718190ad8fe9c25cb475f1f32ca7cd54f7 Mon Sep 17 00:00:00 2001 +From: Christos Zoulas +Date: Sun, 12 Apr 2026 22:15:14 +0000 +Subject: [PATCH] PR/725: inliniac: Revert previous and always set offset. + +--- a/src/softmagic.c ++++ b/src/softmagic.c +@@ -1577,8 +1577,7 @@ msetoffset(struct magic_set *ms, struct magic *m, struct buffer *bb, + ms->offset = offset; + ms->eoffset = 0; + } else { +- if (b->fd != -1) +- ms->offset = ms->eoffset + offset; ++ ms->offset = ms->eoffset + offset; + } + } + if ((ms->flags & MAGIC_DEBUG) != 0) { diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/file/files/file-5.47-toml.patch b/sdk_container/src/third_party/portage-stable/sys-apps/file/files/file-5.47-toml.patch new file mode 100644 index 00000000000..b83560b9567 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/file/files/file-5.47-toml.patch @@ -0,0 +1,27 @@ +https://bugs.gentoo.org/972697 +https://github.com/file/file/commit/f37cc42c535a08598d3ec4b4fa7aa73af7a8e223 + +From f37cc42c535a08598d3ec4b4fa7aa73af7a8e223 Mon Sep 17 00:00:00 2001 +From: Christos Zoulas +Date: Wed, 25 Mar 2026 22:10:22 +0000 +Subject: [PATCH] Revert PR/679: matches too many unix stanza files (like + toml). https://bbs.archlinux.org/viewtopic.php?pid=2292157#p2292157 + +--- + magic/Magdir/windows | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/magic/Magdir/windows b/magic/Magdir/windows +index eb5b8b3db..05eb1d01e 100644 +--- a/magic/Magdir/windows ++++ b/magic/Magdir/windows +@@ -1260,7 +1260,7 @@ + >>>>>&0 ubyte x + # characters, digits, underscore and white space followed by right bracket + # terminated by CR implies section line to skip BOOTLOG.TXT DETLOG.TXT +->>>>>>&-1 regex/T \^([A-Za-z0-9_\(\)\ ]+)\][\r\n] Generic INItialization configuration [%-.40s ++>>>>>>&-1 regex/T \^([A-Za-z0-9_\(\)\ ]+)\]\r Generic INItialization configuration [%-.40s + # NETDEF.INF multiarc.ini + #!:mime application/x-setupscript + !:mime application/x-wine-extension-ini + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/findutils/findutils-4.10.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/findutils/findutils-4.10.0.ebuild index c74b8101ef7..475daf6a04e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/findutils/findutils-4.10.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/findutils/findutils-4.10.0.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{11..14} ) VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/findutils.asc inherit branding flag-o-matic python-any-r1 verify-sig @@ -63,6 +63,12 @@ src_configure() { append-cppflags '-D__nonnull\(X\)=' fi + if [[ ${CHOST} == *-solaris* ]] ; then + # https://bugs.gentoo.org/975237 needs gnulib update, should be + # in next release + sed -i -e 's/HAVE_GETLOCALENAME_L/DISABLED/' configure || die + fi + local myeconfargs=( $(use_enable nls) $(use_with selinux) @@ -70,6 +76,12 @@ src_configure() { # rename to gfind, gxargs for better BSD compatibility --program-prefix=g ) + + # https://savannah.gnu.org/support/?111394 + # This can be removed when we patch dev-build/autoconf, though + # packages w/o eautoreconf will still need it. + [[ ${enable_year2038} == "no" ]] && myeconfargs+=( --disable-year2038 ) + econf "${myeconfargs[@]}" } diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/gawk/gawk-5.4.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/gawk/gawk-5.4.0-r1.ebuild deleted file mode 100644 index a5ffd8d74c1..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/gawk/gawk-5.4.0-r1.ebuild +++ /dev/null @@ -1,123 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -GAWK_IS_BETA=no - -DESCRIPTION="GNU awk pattern-matching language" -HOMEPAGE="https://www.gnu.org/software/gawk/gawk.html" - -if [[ ${GAWK_IS_BETA} == yes || ${PV} == *_beta* ]] ; then - if [[ ${PV} == *_beta* ]] ; then - # Beta versioning is sometimes for the release prior, e.g. - # 5.2.1_beta is labelled upstream as 5.2.0b. - MY_PV=${PV/_beta/b} - MY_PV=$(ver_cut 1-2 ${MY_PV}).$(($(ver_cut 3 ${MY_PV}) - 1))$(ver_cut 4- ${MY_PV}) - MY_P=${PN}-${MY_PV} - - S="${WORKDIR}"/${MY_P} - else - MY_P=${P} - fi - - SRC_URI="https://www.skeeve.com/gawk/${MY_P}.tar.gz" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gawk.asc - inherit verify-sig flag-o-matic - - SRC_URI="mirror://gnu/gawk/${P}.tar.xz" - SRC_URI+=" verify-sig? ( mirror://gnu/gawk/${P}.tar.xz.sig )" - - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" -fi - -LICENSE="GPL-3+ pma? ( AGPL-3+ )" -SLOT="0" -# The gawk docs claim MPFR support is "on parole" and may be removed, -# https://www.gnu.org/software/gawk/manual/html_node/MPFR-On-Parole.html -# however this is somewhat outdated information, see -# https://public-inbox.org/libc-alpha/202412190851.4BJ8psq4404509@freefriends.org/ -IUSE="+mpfr pma nls readline" - -RDEPEND=" - mpfr? ( - dev-libs/gmp:= - dev-libs/mpfr:= - ) - readline? ( sys-libs/readline:= ) -" -DEPEND="${RDEPEND}" -BDEPEND=" - >=sys-apps/texinfo-7.1 - >=sys-devel/bison-3.5.4 - nls? ( sys-devel/gettext ) -" - -if [[ ${GAWK_IS_BETA} != yes ]] ; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-gawk )" -fi - -PATCHES=( - "${FILESDIR}"/${P}-no-assertions-for-pma.patch -) - -src_prepare() { - default - - use elibc_musl && append-cppflags -D__GNU_LIBRARY__ - - # Use symlinks rather than hardlinks, and disable version links - sed -i \ - -e '/^LN =/s:=.*:= $(LN_S):' \ - -e '/install-exec-hook:/s|$|\nfoo:|' \ - Makefile.in doc/Makefile.in || die - - # bug #413327 - sed -i '/^pty1:$/s|$|\n_pty1:|' test/Makefile.in || die - - # Fix standards conflict on Solaris - if [[ ${CHOST} == *-solaris* ]] ; then - sed -i \ - -e '/\<_XOPEN_SOURCE\>/s/1$/600/' \ - -e '/\<_XOPEN_SOURCE_EXTENDED\>/s/1//' \ - extension/inplace.c || die - fi -} - -src_configure() { - # README says gawk may not work properly if built with non-Bison. - # We already BDEPEND on Bison, so just unset YACC rather than - # guessing if we need to do yacc.bison or bison -y. - unset YACC - - local myeconfargs=( - --cache-file="${S}"/config.cache - --libexec='$(libdir)/misc' - $(use_with mpfr) - $(use_enable nls) - $(use_enable pma) - $(use_with readline) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - # bug #970495 - local -x PAGER=cat - - emake check -} - -src_install() { - # Automatic dodocs barfs - rm -rf README_d || die - - default - - # Install headers - insinto /usr/include/awk - doins *.h - rm "${ED}"/usr/include/awk/config.h || die -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/groff/files/groff-1.23.0-man-unicode-fix.patch b/sdk_container/src/third_party/portage-stable/sys-apps/groff/files/groff-1.23.0-man-unicode-fix.patch new file mode 100644 index 00000000000..49a6cc589d6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/groff/files/groff-1.23.0-man-unicode-fix.patch @@ -0,0 +1,41 @@ +format dashes as dashes so as to not confuse people + +groff 1.23.0 also changed the "utf8" device to render +"^" and "~" as U+02C6 and U+02DC respectively. +this causes similar searchability/copy-paste issue +especially for ~ which is often used to denote $HOME path. + +http://bugs.gentoo.org/16108 +http://bugs.gentoo.org/17580 +http://bugs.gentoo.org/121502 + +--- a/tmac/man.local ++++ b/tmac/man.local +@@ -1,6 +1,12 @@ + .\" This file is loaded by an.tmac. + .\" + .\" Put local modifications to groff_man(7)'s behavior here. ++.if '\*[.T]'utf8' \{\ ++. char \- \N'45' ++. char - \N'45' ++. char ^ \[ha] ++. char ~ \[ti] ++.\} + .\" + .\" Change "0" to "1" to enable OSC 8 links on SGR-capable grotty(1) + .\" output devices. +--- a/tmac/mdoc.local ++++ b/tmac/mdoc.local +@@ -1,6 +1,12 @@ + .\" This file is loaded by mdoc.tmac. + .\" + .\" Put local modifications to groff_mdoc(7)'s behavior here. ++.if '\*[.T]'utf8' \{\ ++. char \- \N'45' ++. char - \N'45' ++. char ^ \[ha] ++. char ~ \[ti] ++.\} + .\" + .\" "CW" is not a portable font name, but some man pages use it anyway. + .\" Uncomment this to suppress warnings produced by such pages. This diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/groff/groff-1.23.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/groff/groff-1.23.0-r2.ebuild new file mode 100644 index 00000000000..f47323fa068 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/groff/groff-1.23.0-r2.ebuild @@ -0,0 +1,116 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +MY_P="${P/_/.}" +DESCRIPTION="Text formatter used for man pages" +HOMEPAGE="https://www.gnu.org/software/groff/groff.html" + +if [[ ${PV} == *_rc* ]] ; then + SRC_URI="https://alpha.gnu.org/gnu/groff/${MY_P}.tar.gz" +else + SRC_URI="mirror://gnu/groff/${MY_P}.tar.gz" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" +fi + +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-2" +SLOT="0" +IUSE="examples uchardet X" + +RDEPEND=" + uchardet? ( app-i18n/uchardet ) + X? ( + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libXaw + x11-libs/libXmu + x11-libs/libXt + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + dev-lang/perl + sys-apps/texinfo + sys-devel/m4 +" + +DOCS=( BUG-REPORT ChangeLog MORE.STUFF NEWS PROBLEMS PROJECTS README TODO ) + +QA_CONFIG_IMPL_DECL_SKIP=( + # False positive with older autoconf, will be fixed w/ autoconf-2.72 + static_assert +) + +PATCHES=( + # bug #16108, bug #17580, bug #121502 + "${FILESDIR}"/${PN}-1.23.0-man-unicode-fix.patch + "${FILESDIR}"/${PN}-1.23.0-musl-getopt.patch +) + +src_prepare() { + default + + # Honor Gentoo's docdir + sed -i -e "s|^docdir =.*|docdir = \"${EPREFIX}/usr/share/doc/${PF}\"|g" \ + Makefile.in \ + || die "failed to modify Makefile.in" + + local pfx=$(usex prefix ' Prefix' '') + cat <<-EOF >> tmac/mdoc.local || die + .ds volume-operating-system Gentoo${pfx} + .ds operating-system Gentoo${pfx}/${KERNEL} + .ds default-operating-system Gentoo${pfx}/${KERNEL} + EOF + + # make sure we don't get a crappy `g' nameprefix on UNIX systems with real + # troff (GROFF_G macro runs some test to see, its own troff doesn't satisfy) + sed -i -e 's/^[ \t]\+g=g$/g=/' configure || die +} + +src_configure() { + local myeconfargs=( + --with-appdefdir="${EPREFIX}"/usr/share/X11/app-defaults + --without-compatibility-wrappers # for Prefix + $(use_with uchardet) + $(use_with X x) + ) + + econf "${myeconfargs[@]}" +} + +src_compile() { + local -a CROSS_ARGS + tc-is-cross-compiler && CROSS_ARGS+=( + GROFFBIN="$(type -P groff)" + TROFFBIN="$(type -P troff)" + GROFF_BIN_DIR= + GROFF_BIN_PATH= + ) + + emake AR="$(tc-getAR)" "${CROSS_ARGS[@]}" +} + +src_install() { + default + + # The following links are required for man, bug #123674 + dosym eqn /usr/bin/geqn + dosym tbl /usr/bin/gtbl + + if ! use examples ; then + # The pdf files might not be generated if ghostscript is unavailable, bug #602020 + local pdf="${ED}/usr/share/doc/${PF}/examples/mom/mom-pdf.pdf" + if [[ -e ${pdf} ]] ; then + # Keep mom-pdf.pdf since it's more of a manual than an example + # bug #454196 and bug #516732 + mv "${pdf}" "${ED}/usr/share/doc/${PF}/pdf/" || die + fi + rm -rf "${ED}/usr/share/doc/${PF}/examples" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/Manifest index 884105a2167..ed3dcbd49a6 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,4 +1,3 @@ -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 +DIST hwdata-0.401.tar.gz 2535884 BLAKE2B 6bc46ef5d8d87431ff05d29b3afe818b251b7f8a2270684e4d42b3d5ca6237a197bdafa7578df59b0b7cd5c9b740e8962e0ef09c87e08e1f8de565a94afc4df9 SHA512 c8015a77ff8fa835ad06112049a4f48cde26b9376b1a0b869189822aa747d3976ef5888290ce6bc17cb2d78c70388c887d85326595a47670a2788b5acae52c69 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.391.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.391.ebuild deleted file mode 100644 index ed30a8507f5..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.391.ebuild +++ /dev/null @@ -1,28 +0,0 @@ -# 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" - -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/hwdata/hwdata-0.398.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.398.ebuild deleted file mode 100644 index ed30a8507f5..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.398.ebuild +++ /dev/null @@ -1,28 +0,0 @@ -# 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" - -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/hwdata/hwdata-0.401.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.401.ebuild new file mode 100644 index 00000000000..bd9c5e975bf --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.401.ebuild @@ -0,0 +1,28 @@ +# Copyright 2022-2026 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" + +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 d3b1fa851cb..4ee9d577802 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 @@ -2,3 +2,4 @@ DIST iproute2-6.16.0.tar.xz 931124 BLAKE2B d1c66f4d63edd6fa2701c92dbc47f8c4388d6 DIST iproute2-6.17.0.tar.xz 940952 BLAKE2B 49b88fd1eaea34376b086be02e72505ca62f52f3c53f3ee29cd273532521fabe8d38062277852dcc69f78b86b9460b213bbeedc9c51ce20d3bb1fd35d86b6fc8 SHA512 3d83d49233c1d984f15d285a46e2ec0eeb820c7cb84cfc84866921f37e8a57d31bc3953be07e8c79ed6079f326a25c3a85f591b0d67f9f689c0c70ccdb0fef77 DIST iproute2-6.18.0.tar.xz 945200 BLAKE2B 03af6c56beb8717f1d2ce77d91db1293188a45ed6b491924c37a6d7956da1b92106198503fc27dc12301648c2c0c5358883ce0fff046fb53e6e8be004696d6fd SHA512 c4a0852fbf0143b51a65adb6a29cbc838ecaed88b827574ea33ddd2e3f90c00732eaea06ff702a7122d82f7e4d926282f9fbb59b87e41be7da04403c73258fc2 DIST iproute2-6.19.0.tar.xz 958920 BLAKE2B 779818bb5f790edc6d594155e96ade6092744d4c035281291bc34a987d2bee8a566aad3fa6091c736fe27f79f75baeb975abbeee0e3dce45af7e81019097e512 SHA512 0ca41b0ccfc253ab80cc5f9c687c92ec685d4e25cfbbb7cc512b919784c3248e20cc7c928420e271f8b24a4f56d6a4282f3ba394e27267552004701662e56494 +DIST iproute2-7.0.0.tar.xz 961968 BLAKE2B 1edec3088a16657ee85c1799bf911c6cd75a359efc75fc23ac922474b1e10e9410454d6e6930b58ebe047a8b5fa4f522e9fb7f53a4d9a4e3b84b8979c5aaa926 SHA512 3c482b4d162d27ef69ec4773465e9687c79b96559ca17e9be2e3d507a2cfb20dbd7a67e6c8f6d7bbd3c82475a9772173633223563d0949ccdf3677091645bf9a diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.19.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.19.0.ebuild index 0a91bb8494a..58f19f215df 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.19.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.19.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" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-7.0.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-7.0.0.ebuild new file mode 100644 index 00000000000..21de52b7855 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-7.0.0.ebuild @@ -0,0 +1,220 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a 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 + "${FILESDIR}"/${PN}-6.18.0-netshaper.patch # bug #967691 + "${FILESDIR}"/${PN}-6.19.0-dpll.patch # bug #967691 +) + +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 + 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 + 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 + strip-lto-bytecode +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kbd/kbd-2.9.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/kbd/kbd-2.9.0-r1.ebuild deleted file mode 100644 index aa13eb6a382..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/kbd/kbd-2.9.0-r1.ebuild +++ /dev/null @@ -1,109 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools multiprocessing - -if [[ ${PV} == 9999 ]] ; then - inherit autotools git-r3 - EGIT_REPO_URI="https://github.com/legionus/kbd.git https://git.kernel.org/pub/scm/linux/kernel/git/legion/kbd.git" - EGIT_BRANCH="master" -else - if [[ $(ver_cut 3) -lt 90 ]] ; then - SRC_URI="https://www.kernel.org/pub/linux/utils/kbd/${P}.tar.xz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - else - inherit autotools - SRC_URI="https://github.com/legionus/kbd/archive/v${PV}.tar.gz -> ${P}.tar.gz" - fi -fi - -DESCRIPTION="Keyboard and console utilities" -HOMEPAGE="https://kbd-project.org/" - -LICENSE="GPL-2+" -SLOT="0" -IUSE="bzip2 lzma nls selinux pam test zlib zstd" -RESTRICT="!test? ( test )" - -DEPEND=" - app-alternatives/gzip - bzip2? ( app-arch/bzip2 ) - lzma? ( app-arch/xz-utils ) - pam? ( - !app-misc/vlock - sys-libs/pam - ) - zlib? ( virtual/zlib:= ) - zstd? ( app-arch/zstd:= ) -" -RDEPEND=" - ${DEPEND} - selinux? ( sec-policy/selinux-loadkeys ) -" -BDEPEND=" - sys-devel/flex - virtual/pkgconfig - test? ( dev-libs/check ) -" - -PATCHES=( - "${FILESDIR}"/${P}-install-no-attr.patch - "${FILESDIR}"/${P}-install-posix.patch - "${FILESDIR}"/${P}-nullptr.patch - "${FILESDIR}"/${P}-uninit.patch - "${FILESDIR}"/${P}-time64.patch -) - -src_prepare() { - default - - # Rename conflicting keymaps to have unique names, bug #293228 - # See also https://github.com/legionus/kbd/issues/76. - pushd "${S}"/data/keymaps/i386 &> /dev/null || die - mv fgGIod/trf.map fgGIod/trf-fgGIod.map || die - mv olpc/es.map olpc/es-olpc.map || die - mv olpc/pt.map olpc/pt-olpc.map || die - mv qwerty/cz.map qwerty/cz-qwerty.map || die - popd &> /dev/null || die - - #if [[ ${PV} == 9999 ]] || [[ $(ver_cut 3) -ge 90 ]] ; then - # eautoreconf - #fi - - # Drop after 2.9.0 - eautoreconf -} - -src_configure() { - # https://github.com/legionus/kbd/issues/121 - unset LEX - - local myeconfargs=( - --disable-werror - # No Valgrind for the testsuite - --disable-memcheck - - $(use_enable nls) - $(use_enable pam vlock) - $(use_enable test tests) - $(use_with bzip2) - $(use_with lzma) - $(use_with zlib) - $(use_with zstd) - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - emake -Onone check TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)" -} - -src_install() { - default - - # USE="test" installs .la files - find "${ED}" -type f -name "*.la" -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kbd/kbd-2.9.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/kbd/kbd-2.9.0-r2.ebuild new file mode 100644 index 00000000000..401a4867cf1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kbd/kbd-2.9.0-r2.ebuild @@ -0,0 +1,112 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools multiprocessing + +if [[ ${PV} == 9999 ]] ; then + inherit autotools git-r3 + EGIT_REPO_URI="https://github.com/legionus/kbd.git https://git.kernel.org/pub/scm/linux/kernel/git/legion/kbd.git" + EGIT_BRANCH="master" +else + if [[ $(ver_cut 3) -lt 90 ]] ; then + SRC_URI="https://www.kernel.org/pub/linux/utils/kbd/${P}.tar.xz" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" + else + inherit autotools + SRC_URI="https://github.com/legionus/kbd/archive/v${PV}.tar.gz -> ${P}.tar.gz" + fi +fi + +DESCRIPTION="Keyboard and console utilities" +HOMEPAGE="https://kbd-project.org/" + +LICENSE="GPL-2+" +SLOT="0" +IUSE="bzip2 lzma nls selinux pam test zlib zstd" +RESTRICT="!test? ( test )" + +DEPEND=" + app-alternatives/gzip + bzip2? ( app-arch/bzip2 ) + lzma? ( app-arch/xz-utils ) + pam? ( + !app-misc/vlock + sys-libs/pam + ) + zlib? ( virtual/zlib:= ) + zstd? ( app-arch/zstd:= ) +" +RDEPEND=" + ${DEPEND} + selinux? ( + sec-policy/selinux-loadkeys + sec-policy/selinux-vlock + ) +" +BDEPEND=" + sys-devel/flex + virtual/pkgconfig + test? ( dev-libs/check ) +" + +PATCHES=( + "${FILESDIR}"/${P}-install-no-attr.patch + "${FILESDIR}"/${P}-install-posix.patch + "${FILESDIR}"/${P}-nullptr.patch + "${FILESDIR}"/${P}-uninit.patch + "${FILESDIR}"/${P}-time64.patch +) + +src_prepare() { + default + + # Rename conflicting keymaps to have unique names, bug #293228 + # See also https://github.com/legionus/kbd/issues/76. + pushd "${S}"/data/keymaps/i386 &> /dev/null || die + mv fgGIod/trf.map fgGIod/trf-fgGIod.map || die + mv olpc/es.map olpc/es-olpc.map || die + mv olpc/pt.map olpc/pt-olpc.map || die + mv qwerty/cz.map qwerty/cz-qwerty.map || die + popd &> /dev/null || die + + #if [[ ${PV} == 9999 ]] || [[ $(ver_cut 3) -ge 90 ]] ; then + # eautoreconf + #fi + + # Drop after 2.9.0 + eautoreconf +} + +src_configure() { + # https://github.com/legionus/kbd/issues/121 + unset LEX + + local myeconfargs=( + --disable-werror + # No Valgrind for the testsuite + --disable-memcheck + + $(use_enable nls) + $(use_enable pam vlock) + $(use_enable test tests) + $(use_with bzip2) + $(use_with lzma) + $(use_with zlib) + $(use_with zstd) + ) + + econf "${myeconfargs[@]}" +} + +src_test() { + emake -Onone check TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)" +} + +src_install() { + default + + # USE="test" installs .la files + find "${ED}" -type f -name "*.la" -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kbd/kbd-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/kbd/kbd-9999.ebuild index f93f7b1189a..74748ce9e63 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/kbd/kbd-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kbd/kbd-9999.ebuild @@ -40,7 +40,10 @@ DEPEND=" " RDEPEND=" ${DEPEND} - selinux? ( sec-policy/selinux-loadkeys ) + selinux? ( + sec-policy/selinux-loadkeys + sec-policy/selinux-vlock + ) " BDEPEND=" sys-devel/flex diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/man-db/man-db-2.13.1-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/man-db/man-db-2.13.1-r1.ebuild index ba959d8e68c..7e5e7fa9757 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/man-db/man-db-2.13.1-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/man-db/man-db-2.13.1-r1.ebuild @@ -154,6 +154,11 @@ src_configure() { --with-zstd=zstd ) + # https://savannah.gnu.org/support/?111394 + # This can be removed when we patch dev-build/autoconf, though + # packages w/o eautoreconf will still need it. + [[ ${enable_year2038} == "no" ]] && myeconfargs+=( --disable-year2038 ) + case ${CHOST} in *-solaris*|*-darwin*) myeconfargs+=( diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/man-pages/man-pages-6.17-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/man-pages/man-pages-6.17-r1.ebuild index 383abd06318..f988dce309d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/man-pages/man-pages-6.17-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/man-pages/man-pages-6.17-r1.ebuild @@ -52,7 +52,7 @@ else BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-alejandro-colomar-20260122 )" fi - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos" fi SRC_URI+=" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/Manifest index 175bdef8fad..29a0fddabe7 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/Manifest @@ -1,3 +1,4 @@ -DIST pciutils-3.13.0.tar.gz 672999 BLAKE2B d779ca0fd8c96a54bf81f6234d6a38eae2882d39dd1a52a508246bc46b5f4ac9318bbca20266378ec3917e72fe6ec30c47b1b5e9df4e86d3f59cbe860e2ac70e SHA512 73f99b5c2251676368738e0dc9d82529f3516966f1658a96149768b9775a0e177d630512dc7ea33087a7fcb960a3498f0c4c1a9f7233ec1cf242b9ab087fa0d1 DIST pciutils-3.14.0.tar.gz 722554 BLAKE2B 3ab270c4523cc1968d5f3a03d2564eff5560b60eb8307bafe44ee240a6636dc676fbf0a28effe3c9abc99bfc86a975aea066d634a5e5adaffb2c63ba226511d9 SHA512 35cabfd8af8b0673440c7eba77fae8cad295f2618376148233b735ac032499e23967f863d48656d4c6f38b250db013747c92ed9719a57cd4e2df3065056f6c27 DIST pciutils-3.14.0.tar.gz.asc 228 BLAKE2B 315f758e9b3a7e17cac14371bebd889e6725ba4bb223f2cfa690a6dbccea106b63fbaff36f098ec492173b6641ec49531d9284ec4ecd48fab29b800b8e9482b4 SHA512 0de5196d96d802a72eb2a5de953af67370424b03a72be91aa5a7240a69b939900db5aa48609d52e1c38f5609e6c40c20644f9d1853708e0fd55ea105efe88ab1 +DIST pciutils-3.15.0.tar.gz 740612 BLAKE2B 29d3d38be6a3b8abce8db86e9160fc27ce966375f2ea441dff20cad9d7f7dfebe42a17d6054a406ed0d52035ad9c9071837e0e7650c954ff1c84514554f6c34f SHA512 7c62b42ec875580106274ec7b3e74170e07ff0314341299e257d428db5fd623d995671731715c3f051ba2026f380439d1e88c106cc552a63445e38b04bc1a709 +DIST pciutils-3.15.0.tar.gz.asc 228 BLAKE2B 325159e25eae59f103ee675b1be867c94ba35ccbd2524c8ab04ca917083c871633360699747ed793b9b2cfa4d23efa60ec0bcb4e41af45f1b5022b605d68d62b SHA512 1d3edc44da06eac0ded96de317a496ed3f48a3df5c942848c463954bdf4b659bee596dddaec1558899dfc7a09638aad6a4d3533df7d98cbc9912dab82cad85db diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.13.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.13.0.ebuild deleted file mode 100644 index 56ac9874694..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.13.0.ebuild +++ /dev/null @@ -1,173 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit toolchain-funcs multilib-minimal flag-o-matic - -DESCRIPTION="Various utilities dealing with the PCI bus" -HOMEPAGE="https://mj.ucw.cz/sw/pciutils/ https://git.kernel.org/?p=utils/pciutils/pciutils.git" -SRC_URI="https://mj.ucw.cz/download/linux/pci/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="dns +kmod static-libs +udev zlib" -REQUIRED_USE="static-libs? ( !udev )" - -# Have the sub-libs in RDEPEND with [static-libs] since, logically, -# our libpci.a depends on libz.a/etc... at runtime. -LIB_DEPEND="zlib? ( >=virtual/zlib-1.2.8-r1:=[static-libs(+),${MULTILIB_USEDEP}] )" -DEPEND=" - kmod? ( sys-apps/kmod ) - udev? ( >=virtual/libudev-208[${MULTILIB_USEDEP}] ) - static-libs? ( ${LIB_DEPEND} ) - !static-libs? ( ${LIB_DEPEND//static-libs([+-]),} ) -" -RDEPEND=" - ${DEPEND} - sys-apps/hwdata -" -# See bug #847133 re binutils check -BDEPEND=" - || ( >=sys-devel/binutils-2.37:* llvm-core/lld sys-devel/native-cctools ) - kmod? ( virtual/pkgconfig ) -" - -MULTILIB_WRAPPED_HEADERS=( /usr/include/pci/config.h ) - -switch_config() { - [[ $# -ne 2 ]] && return 1 - local opt=$1 val=$2 - - sed "s@^\(${opt}=\).*\$@\1${val}@" -i Makefile || die - return 0 -} - -check_binutils_version() { - if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && ! tc-ld-is-gold && ! tc-ld-is-lld ; then - # Okay, hopefully it's Binutils' bfd. - # bug #847133 - - # Convert this: - # ``` - # GNU ld (Gentoo 2.38 p4) 2.38 - # Copyright (C) 2022 Free Software Foundation, Inc. - # This program is free software; you may redistribute it under the terms of - # the GNU General Public License version 3 or (at your option) a later version. - # This program has absolutely no warranty. - # ``` - # - # into... - # ``` - # 2.38 - # ``` - local ver=$($(tc-getLD) --version 2>&1 | head -n 1 | rev | cut -d' ' -f1 | rev) - - if ! [[ ${ver} =~ [0-9].[0-9][0-9] ]] ; then - # Skip if unrecognised format so we don't pass something - # odd into ver_cut. - return - fi - - ver_major=$(ver_cut 1 "${ver}") - ver_minor=$(ver_cut 2 "${ver}") - - # We use 2.37 here, not 2.35, as https://github.com/pciutils/pciutils/issues/98 mentions - # because we've had other miscompiles with older Binutils (not just build failures!) - # and we don't want people running any unsupported versions of Binutils. An example - # of this is where glibc is completely broken with old binutils: bug #802036. It's - # just not sustainable to support. - if [[ ${ver_major} -eq 2 && ${ver_minor} -lt 37 ]] ; then - eerror "Old version of binutils activated! ${P} cannot be built with an old version." - eerror "Please follow these steps:" - eerror "1. Select a newer binutils (>= 2.37) using binutils-config" - eerror " (If no such version is installed, run emerge -v1 sys-devel/binutils)" - eerror "2. Run: . /etc/profile" - eerror "3. Try emerging again with: emerge -v1 ${CATEGORY}/${P}" - eerror "4. Complete your world upgrade if you were performing one." - eerror "5. Perform a depclean (emerge -acv)" - eerror "\tYou MUST depclean after every world upgrade in future!" - die "Old binutils found! Change to a newer ld using binutils-config (bug #847133)." - fi - fi -} - -pkg_pretend() { - [[ ${MERGE_TYPE} != binary ]] && check_binutils_version -} - -pkg_setup() { - [[ ${MERGE_TYPE} != binary ]] && check_binutils_version -} - -src_prepare() { - default - - if use static-libs ; then - cp -pPR "${S}" "${S}.static" || die - mv "${S}.static" "${S}/static" || die - fi - - multilib_copy_sources -} - -multilib_src_configure() { - # bug #640836, bug #852929 - # Still broken in 3.10.0, see https://github.com/pciutils/pciutils/pull/144. - filter-lto - - # bug #471102 - append-lfs-flags -} - -pemake() { - emake \ - HOST="${CHOST}" \ - CROSS_COMPILE="${CHOST}-" \ - CC="$(tc-getCC)" \ - AR="$(tc-getAR)" \ - PKG_CONFIG="$(tc-getPKG_CONFIG)" \ - RANLIB="$(tc-getRANLIB)" \ - DNS=$(usex dns) \ - IDSDIR='$(SHAREDIR)/hwdata' \ - MANDIR='$(SHAREDIR)/man' \ - PREFIX="${EPREFIX}/usr" \ - SHARED="yes" \ - STRIP="" \ - ZLIB=$(usex zlib) \ - PCI_COMPRESSED_IDS=0 \ - PCI_IDS=pci.ids \ - LIBDIR="\${PREFIX}/$(get_libdir)" \ - LIBKMOD=$(multilib_native_usex kmod) \ - HWDB=$(usex udev) \ - "$@" -} - -multilib_src_compile() { - pemake OPT="${CFLAGS}" all - - if use static-libs ; then - pemake \ - -C "${BUILD_DIR}"/static \ - OPT="${CFLAGS}" \ - SHARED="no" \ - lib/libpci.a - fi -} - -multilib_src_install() { - pemake DESTDIR="${D}" install install-lib - - use static-libs && dolib.a "${BUILD_DIR}"/static/lib/libpci.a -} - -multilib_src_install_all() { - dodoc ChangeLog README TODO - - rm "${ED}"/usr/sbin/update-pciids "${ED}"/usr/share/man/man8/update-pciids.8* || die - rm -r "${ED}"/usr/share/hwdata || die - - newinitd "${FILESDIR}"/init.d-pciparm pciparm - newconfd "${FILESDIR}"/conf.d-pciparm pciparm -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.15.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.15.0.ebuild new file mode 100644 index 00000000000..77ed5f46352 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.15.0.ebuild @@ -0,0 +1,178 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/martinmares.asc +inherit toolchain-funcs multilib-minimal flag-o-matic verify-sig + +DESCRIPTION="Various utilities dealing with the PCI bus" +HOMEPAGE="https://mj.ucw.cz/sw/pciutils/ https://git.kernel.org/?p=utils/pciutils/pciutils.git" +SRC_URI=" + https://mj.ucw.cz/download/linux/pci/${P}.tar.gz + verify-sig? ( https://mj.ucw.cz/download/linux/pci/${P}.tar.gz.sign -> ${P}.tar.gz.asc ) +" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +IUSE="dns +kmod static-libs +udev zlib" +REQUIRED_USE="static-libs? ( !udev )" + +# Have the sub-libs in RDEPEND with [static-libs] since, logically, +# our libpci.a depends on libz.a/etc... at runtime. +LIB_DEPEND="zlib? ( >=virtual/zlib-1.2.8-r1:=[static-libs(+),${MULTILIB_USEDEP}] )" +DEPEND=" + kmod? ( sys-apps/kmod ) + udev? ( >=virtual/libudev-208[${MULTILIB_USEDEP}] ) + static-libs? ( ${LIB_DEPEND} ) + !static-libs? ( ${LIB_DEPEND//static-libs([+-]),} ) +" +RDEPEND=" + ${DEPEND} + sys-apps/hwdata +" +# See bug #847133 re binutils check +BDEPEND=" + || ( >=sys-devel/binutils-2.37:* llvm-core/lld sys-devel/native-cctools ) + kmod? ( virtual/pkgconfig ) + verify-sig? ( sec-keys/openpgp-keys-martinmares ) +" + +MULTILIB_WRAPPED_HEADERS=( /usr/include/pci/config.h ) + +switch_config() { + [[ $# -ne 2 ]] && return 1 + local opt=$1 val=$2 + + sed "s@^\(${opt}=\).*\$@\1${val}@" -i Makefile || die + return 0 +} + +check_binutils_version() { + if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && ! tc-ld-is-gold && ! tc-ld-is-lld ; then + # Okay, hopefully it's Binutils' bfd. + # bug #847133 + + # Convert this: + # ``` + # GNU ld (Gentoo 2.38 p4) 2.38 + # Copyright (C) 2022 Free Software Foundation, Inc. + # This program is free software; you may redistribute it under the terms of + # the GNU General Public License version 3 or (at your option) a later version. + # This program has absolutely no warranty. + # ``` + # + # into... + # ``` + # 2.38 + # ``` + local ver=$($(tc-getLD) --version 2>&1 | head -n 1 | rev | cut -d' ' -f1 | rev) + + if ! [[ ${ver} =~ [0-9].[0-9][0-9] ]] ; then + # Skip if unrecognised format so we don't pass something + # odd into ver_cut. + return + fi + + ver_major=$(ver_cut 1 "${ver}") + ver_minor=$(ver_cut 2 "${ver}") + + # We use 2.37 here, not 2.35, as https://github.com/pciutils/pciutils/issues/98 mentions + # because we've had other miscompiles with older Binutils (not just build failures!) + # and we don't want people running any unsupported versions of Binutils. An example + # of this is where glibc is completely broken with old binutils: bug #802036. It's + # just not sustainable to support. + if [[ ${ver_major} -eq 2 && ${ver_minor} -lt 37 ]] ; then + eerror "Old version of binutils activated! ${P} cannot be built with an old version." + eerror "Please follow these steps:" + eerror "1. Select a newer binutils (>= 2.37) using binutils-config" + eerror " (If no such version is installed, run emerge -v1 sys-devel/binutils)" + eerror "2. Run: . /etc/profile" + eerror "3. Try emerging again with: emerge -v1 ${CATEGORY}/${P}" + eerror "4. Complete your world upgrade if you were performing one." + eerror "5. Perform a depclean (emerge -acv)" + eerror "\tYou MUST depclean after every world upgrade in future!" + die "Old binutils found! Change to a newer ld using binutils-config (bug #847133)." + fi + fi +} + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && check_binutils_version +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && check_binutils_version +} + +src_prepare() { + default + + if use static-libs ; then + cp -pPR "${S}" "${S}.static" || die + mv "${S}.static" "${S}/static" || die + fi + + multilib_copy_sources +} + +multilib_src_configure() { + # bug #640836, bug #852929 + # Still broken in 3.10.0, see https://github.com/pciutils/pciutils/pull/144. + filter-lto + + # bug #471102 + append-lfs-flags +} + +pemake() { + emake \ + HOST="${CHOST}" \ + CROSS_COMPILE="${CHOST}-" \ + CC="$(tc-getCC)" \ + AR="$(tc-getAR)" \ + PKG_CONFIG="$(tc-getPKG_CONFIG)" \ + RANLIB="$(tc-getRANLIB)" \ + DNS=$(usex dns) \ + IDSDIR='$(SHAREDIR)/hwdata' \ + MANDIR='$(SHAREDIR)/man' \ + PREFIX="${EPREFIX}/usr" \ + SHARED="yes" \ + STRIP="" \ + ZLIB=$(usex zlib) \ + PCI_COMPRESSED_IDS=0 \ + PCI_IDS=pci.ids \ + LIBDIR="\${PREFIX}/$(get_libdir)" \ + LIBKMOD=$(multilib_native_usex kmod) \ + HWDB=$(usex udev) \ + "$@" +} + +multilib_src_compile() { + pemake OPT="${CFLAGS}" all + + if use static-libs ; then + pemake \ + -C "${BUILD_DIR}"/static \ + OPT="${CFLAGS}" \ + SHARED="no" \ + lib/libpci.a + fi +} + +multilib_src_install() { + pemake DESTDIR="${D}" install install-lib + + use static-libs && dolib.a "${BUILD_DIR}"/static/lib/libpci.a +} + +multilib_src_install_all() { + dodoc ChangeLog README TODO + + rm "${ED}"/usr/sbin/update-pciids "${ED}"/usr/share/man/man8/update-pciids.8* || die + rm -r "${ED}"/usr/share/hwdata || die + + newinitd "${FILESDIR}"/init.d-pciparm pciparm + newconfd "${FILESDIR}"/conf.d-pciparm pciparm +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pcsc-lite/pcsc-lite-2.4.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pcsc-lite/pcsc-lite-2.4.1.ebuild index 03ac67bc533..fbda0124416 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pcsc-lite/pcsc-lite-2.4.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pcsc-lite/pcsc-lite-2.4.1.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{11..14} ) VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/ludovicrousseau.asc inherit meson-multilib python-single-r1 tmpfiles udev verify-sig diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/portage/Manifest index b371f106435..c66feb0bcac 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/Manifest @@ -1,2 +1,3 @@ -DIST portage-3.0.72.tar.bz2 1211406 BLAKE2B ccf702bc56bab905d6ec9b99175bb86be95709761d370afeeb8edf9aa563869d8d8c98256224a054697a996a7b97dc9a3dfc8e993760aeec13a0ac4705dc78c5 SHA512 c58f5216b3587e1cfcf1998e719f847e1ba1938b7aeb4fcd9fb4e22e1cba68a9e3b98125c1c1386fc03954fc90559d2647a3a00ae2ab4b74692ee6a1d81eea66 DIST portage-3.0.77.tar.bz2 1222765 BLAKE2B 062b99059582caf323001b14e74d5ad762aeb4ece9750dcd548b4eddacabea60044dbb8006911c458c2550b7f1f86a5e91c5f0f67b37a3c839a1d7bac751376c SHA512 bae4d30d53473402a90c21923c71e81463e0f1afc1300f194d67b1af109eca71bd52ca82a1c17881871b9c30a64d584eb0392daab81b38c622cb2384afd195b7 +DIST portage-3.0.78.tar.bz2 1234503 BLAKE2B fecc7def9d2b3cbeb022a1807f9f3db643b4000b1c9674bf2306f6a7b13ef163f7243c9f62e035ef1c0ee5d49f2fdd25b63ff6ae100c9adf59fd3c9352e80410 SHA512 38243d05ad6d253275f19e7c90bc527fe63f6c26a82e7135c603f853612af42c1038ae3269637049ba7212e9caebfe80004d735c02c84882a35fdbc48d3777de +DIST portage-3.0.79.tar.bz2 1235108 BLAKE2B 279b874be40f3ba610d8dc439683a388dc926cabe236dc4426a64fcd1267484312e84b15fb44c80ecb0ddce50cace4c9fc3f29886b6911d4199ed611fbecf28d SHA512 63df73d0fb2fd5ff7e6f0cacd8999aca0c99b91fbe2a2be0204a597e8230ecc1e60dcad0f24d9200b5948dec2c7e1e417853805d19beaf748c1f16490e64036c diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/0001-bin-emerge-ebuild-don-t-define-signal-handlers-in-gl.patch b/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/0001-bin-emerge-ebuild-don-t-define-signal-handlers-in-gl.patch deleted file mode 100644 index ffe9f944c69..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/0001-bin-emerge-ebuild-don-t-define-signal-handlers-in-gl.patch +++ /dev/null @@ -1,77 +0,0 @@ -From d7d6fd54f1c936e89c5e4467c6c1f33b217325ca Mon Sep 17 00:00:00 2001 -Message-ID: -From: Sam James -Date: Tue, 16 Dec 2025 09:36:27 +0000 -Subject: [PATCH] bin: emerge, ebuild: don't define signal handlers in global - scope - -This breaks when `emerge` is frozen. Do what we do in `egencache`. We -do need to use the same boilerplate in all bin/* though... - -Bug: https://bugs.gentoo.org/941956 -Bug: https://bugs.gentoo.org/967199 -Signed-off-by: Sam James ---- - bin/ebuild | 10 +++++----- - bin/emerge | 10 +++++----- - 2 files changed, 10 insertions(+), 10 deletions(-) - -diff --git a/bin/ebuild b/bin/ebuild -index 0c6369e016..3fc6e334cb 100755 ---- a/bin/ebuild -+++ b/bin/ebuild -@@ -22,11 +22,6 @@ def debug_signal(_signum, _frame): - pdb.set_trace() - - --# Prevent "[Errno 32] Broken pipe" exceptions when writing to a pipe. --signal.signal(signal.SIGPIPE, signal.SIG_DFL) --signal.signal(signal.SIGTERM, signal_interrupt) --signal.signal(signal.SIGUSR1, debug_signal) -- - import argparse - from os import path as osp - import shlex -@@ -61,6 +56,11 @@ from _emerge.RootConfig import RootConfig - - - def main(): -+ # Prevent "[Errno 32] Broken pipe" exceptions when writing to a pipe. -+ signal.signal(signal.SIGPIPE, signal.SIG_DFL) -+ signal.signal(signal.SIGTERM, signal_interrupt) -+ signal.signal(signal.SIGUSR1, debug_signal) -+ - portage.process.sanitize_fds() - description = "See the ebuild(1) man page for more info" - usage = "Usage: ebuild [command] ..." -diff --git a/bin/emerge b/bin/emerge -index 9e5d59cb04..d4f50fa9a3 100755 ---- a/bin/emerge -+++ b/bin/emerge -@@ -22,11 +22,6 @@ def debug_signal(_signum, _frame): - pdb.set_trace() - - --# Prevent "[Errno 32] Broken pipe" exceptions when writing to a pipe. --signal.signal(signal.SIGPIPE, signal.SIG_DFL) --signal.signal(signal.SIGTERM, signal_interrupt) --signal.signal(signal.SIGUSR1, debug_signal) -- - from os import path as osp - - if osp.isfile( -@@ -46,6 +41,11 @@ from _emerge.main import emerge_main - - - def main(): -+ # Prevent "[Errno 32] Broken pipe" exceptions when writing to a pipe. -+ signal.signal(signal.SIGPIPE, signal.SIG_DFL) -+ signal.signal(signal.SIGTERM, signal_interrupt) -+ signal.signal(signal.SIGUSR1, debug_signal) -+ - portage.process.sanitize_fds() - try: - retval = emerge_main() --- -2.52.0 - diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/0002-Revert-depgraph-earlier-slot-operator-backtracking.patch b/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/0002-Revert-depgraph-earlier-slot-operator-backtracking.patch new file mode 100644 index 00000000000..9e6a9fcfcfc --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/0002-Revert-depgraph-earlier-slot-operator-backtracking.patch @@ -0,0 +1,259 @@ +From e1322d74de41e989f709e0129ac41e5469b9cc4c Mon Sep 17 00:00:00 2001 +Message-ID: +From: Zac Medico +Date: Fri, 20 Feb 2026 19:05:12 -0800 +Subject: [PATCH] Revert "depgraph: earlier slot operator backtracking" + +This reverts commit 8ddd35e04bb4c50a85d7cc61edb85d91dd10ce4b. + +Bug: https://bugs.gentoo.org/969654 +Bug: https://bugs.gentoo.org/964705 +Bug: https://bugs.gentoo.org/968228 +Signed-off-by: Zac Medico +--- + lib/_emerge/depgraph.py | 152 +++++++++--------- + .../test_binpackage_downgrades_slot_dep.py | 3 + + .../tests/resolver/test_missed_update.py | 3 + + 3 files changed, 86 insertions(+), 72 deletions(-) + +diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py +index 7ac07ad5e..5d9888229 100644 +--- a/lib/_emerge/depgraph.py ++++ b/lib/_emerge/depgraph.py +@@ -1937,9 +1937,16 @@ class depgraph: + # conflicts (or by blind luck). + raise self._unknown_internal_error() + ++ # Both _process_slot_conflict and _slot_operator_trigger_reinstalls ++ # can call _slot_operator_update_probe, which requires that ++ # self._dynamic_config._blocked_pkgs has been initialized by a ++ # call to the _validate_blockers method. + for conflict in self._dynamic_config._package_tracker.slot_conflicts(): + self._process_slot_conflict(conflict) + ++ if self._dynamic_config._allow_backtracking: ++ self._slot_operator_trigger_reinstalls() ++ + def _process_slot_conflict(self, conflict): + """ + Process slot conflict data to identify specific atoms which +@@ -2895,50 +2902,50 @@ class depgraph: + + return None + +- def _slot_operator_trigger_backtracking(self, dep: Dependency) -> bool: ++ def _slot_operator_trigger_reinstalls(self): + """ +- Trigger backtracking for slot operator issues if needed. +- Return True if this triggers backtracking, and False otherwise. ++ Search for packages with slot-operator deps on older slots, and schedule ++ rebuilds if they can link to a newer slot that's in the graph. + """ +- if not self._dynamic_config._allow_backtracking: +- return False +- +- atom = dep.atom +- +- if not (atom.soname or atom.slot_operator_built): +- new_child_slot = self._slot_change_probe(dep) +- if new_child_slot is not None: +- self._slot_change_backtrack(dep, new_child_slot) +- return True +- +- if not (dep.parent and isinstance(dep.parent, Package) and dep.parent.built): +- return False + + rebuild_if_new_slot = ( + self._dynamic_config.myparams.get("rebuild_if_new_slot", "y") == "y" + ) + +- # If the parent is not installed, check if it needs to be +- # rebuilt against an installed instance, since otherwise +- # it could trigger downgrade of an installed instance as +- # in bug #652938. +- want_update_probe = dep.want_update or not dep.parent.installed +- +- # Check for slot update first, since we don't want to +- # trigger reinstall of the child package when a newer +- # slot will be used instead. +- if rebuild_if_new_slot and want_update_probe: +- new_dep = self._slot_operator_update_probe(dep, new_child_slot=True) +- if new_dep is not None: +- self._slot_operator_update_backtrack(dep, new_child_slot=new_dep.child) +- return True ++ for slot_key, slot_info in self._dynamic_config._slot_operator_deps.items(): ++ for dep in slot_info: ++ atom = dep.atom + +- if want_update_probe: +- if self._slot_operator_update_probe(dep): +- self._slot_operator_update_backtrack(dep) +- return True ++ if not (atom.soname or atom.slot_operator_built): ++ new_child_slot = self._slot_change_probe(dep) ++ if new_child_slot is not None: ++ self._slot_change_backtrack(dep, new_child_slot) ++ continue + +- return False ++ if not ( ++ dep.parent and isinstance(dep.parent, Package) and dep.parent.built ++ ): ++ continue ++ ++ # If the parent is not installed, check if it needs to be ++ # rebuilt against an installed instance, since otherwise ++ # it could trigger downgrade of an installed instance as ++ # in bug #652938. ++ want_update_probe = dep.want_update or not dep.parent.installed ++ ++ # Check for slot update first, since we don't want to ++ # trigger reinstall of the child package when a newer ++ # slot will be used instead. ++ if rebuild_if_new_slot and want_update_probe: ++ new_dep = self._slot_operator_update_probe(dep, new_child_slot=True) ++ if new_dep is not None: ++ self._slot_operator_update_backtrack( ++ dep, new_child_slot=new_dep.child ++ ) ++ ++ if want_update_probe: ++ if self._slot_operator_update_probe(dep): ++ self._slot_operator_update_backtrack(dep) + + def _reinstall_for_flags( + self, pkg, forced_flags, orig_use, orig_iuse, cur_use, cur_iuse +@@ -3429,6 +3436,44 @@ class depgraph: + raise + del e + ++ # NOTE: REQUIRED_USE checks are delayed until after ++ # package selection, since we want to prompt the user ++ # for USE adjustment rather than have REQUIRED_USE ++ # affect package selection and || dep choices. ++ if ( ++ not pkg.built ++ and pkg._metadata.get("REQUIRED_USE") ++ and eapi_has_required_use(pkg.eapi) ++ ): ++ required_use_is_sat = check_required_use( ++ pkg._metadata["REQUIRED_USE"], ++ self._pkg_use_enabled(pkg), ++ pkg.iuse.is_valid_flag, ++ eapi=pkg.eapi, ++ ) ++ if not required_use_is_sat: ++ if dep.atom is not None and dep.parent is not None: ++ self._add_parent_atom(pkg, (dep.parent, dep.atom)) ++ ++ if arg_atoms: ++ for parent_atom in arg_atoms: ++ parent, atom = parent_atom ++ self._add_parent_atom(pkg, parent_atom) ++ ++ atom = dep.atom ++ if atom is None: ++ atom = Atom("=" + pkg.cpv) ++ self._dynamic_config._unsatisfied_deps_for_display.append( ++ ((pkg.root, atom), {"myparent": dep.parent, "show_req_use": pkg}) ++ ) ++ self._dynamic_config._required_use_unsatisfied = True ++ self._dynamic_config._skip_restart = True ++ # Add pkg to digraph in order to enable autounmask messages ++ # for this package, which is useful when autounmask USE ++ # changes have violated REQUIRED_USE. ++ self._dynamic_config.digraph.add(pkg, dep.parent, priority=priority) ++ return 0 ++ + if not pkg.onlydeps: + existing_node, existing_node_matches = self._check_slot_conflict( + pkg, dep.atom +@@ -3587,43 +3632,6 @@ class depgraph: + and (dep.atom.soname or dep.atom.slot_operator == "=") + ): + self._add_slot_operator_dep(dep) +- if self._slot_operator_trigger_backtracking(dep): +- # Drop slot operator deps that trigger backtracking, since +- # they may be irrelevant and therefore we don't want to +- # enforce the REQUIRED_USE check that comes below (bug 964705). +- # Since backtracking has been triggered, the _need_restart flag +- # is set and this depgraph is only useful for collecting +- # backtracking parameters at this point, so it is acceptable to +- # drop dependencies as needed. It would not be acceptable to +- # abort depgraph creation here, since that would not scale well +- # for large numbers of slot operator rebuilds. +- return 1 +- +- # NOTE: REQUIRED_USE checks are delayed until after +- # package selection, since we want to prompt the user +- # for USE adjustment rather than have REQUIRED_USE +- # affect package selection and || dep choices. +- if ( +- not pkg.built +- and pkg._metadata.get("REQUIRED_USE") +- and eapi_has_required_use(pkg.eapi) +- ): +- required_use_is_sat = check_required_use( +- pkg._metadata["REQUIRED_USE"], +- self._pkg_use_enabled(pkg), +- pkg.iuse.is_valid_flag, +- eapi=pkg.eapi, +- ) +- if not required_use_is_sat: +- atom = dep.atom +- if atom is None: +- atom = Atom("=" + pkg.cpv) +- self._dynamic_config._unsatisfied_deps_for_display.append( +- ((pkg.root, atom), {"myparent": dep.parent, "show_req_use": pkg}) +- ) +- self._dynamic_config._required_use_unsatisfied = True +- self._dynamic_config._skip_restart = True +- return 0 + + recurse = deep is True or not self._too_deep(self._depth_increment(depth, n=1)) + dep_stack = self._dynamic_config._dep_stack +diff --git a/lib/portage/tests/resolver/test_binpackage_downgrades_slot_dep.py b/lib/portage/tests/resolver/test_binpackage_downgrades_slot_dep.py +index b47f73dcb..699cd1c46 100644 +--- a/lib/portage/tests/resolver/test_binpackage_downgrades_slot_dep.py ++++ b/lib/portage/tests/resolver/test_binpackage_downgrades_slot_dep.py +@@ -1,6 +1,8 @@ + # Copyright 2025 Gentoo Authors + # Distributed under the terms of the GNU General Public License v2 + ++import pytest ++ + from portage.tests import TestCase + from portage.tests.resolver.ResolverPlayground import ( + ResolverPlayground, +@@ -9,6 +11,7 @@ from portage.tests.resolver.ResolverPlayground import ( + + + class BinpackageDowngradesSlotDepTestCase(TestCase): ++ @pytest.mark.xfail() + def testBinpackageDowngradesSlotDep(self): + python_use = "python_targets_python3_12 +python_targets_python3_13" + python_usedep = "python_targets_python3_12(-)?,python_targets_python3_13(-)?" +diff --git a/lib/portage/tests/resolver/test_missed_update.py b/lib/portage/tests/resolver/test_missed_update.py +index 6813a9172..2c15a16c8 100644 +--- a/lib/portage/tests/resolver/test_missed_update.py ++++ b/lib/portage/tests/resolver/test_missed_update.py +@@ -1,6 +1,8 @@ + # Copyright 2026 Gentoo Authors + # Distributed under the terms of the GNU General Public License v2 + ++import pytest ++ + from portage.tests import TestCase + from portage.tests.resolver.ResolverPlayground import ( + ResolverPlayground, +@@ -9,6 +11,7 @@ from portage.tests.resolver.ResolverPlayground import ( + + + class MissedQtUpdateTestCase(TestCase): ++ @pytest.mark.xfail() + def testMissedQtUpdate(self): + """ + Testcase where Portage was unable to upgrade from +-- +2.53.0 + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/0003-estrip-Don-t-break-the-debuglink-CRC-with-the-salted.patch b/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/0003-estrip-Don-t-break-the-debuglink-CRC-with-the-salted.patch new file mode 100644 index 00000000000..2ee28b9b49e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/0003-estrip-Don-t-break-the-debuglink-CRC-with-the-salted.patch @@ -0,0 +1,58 @@ +From c568ef909922c307dd99acfebc1214e6ea88e075 Mon Sep 17 00:00:00 2001 +Message-ID: +From: James Le Cuirot +Date: Fri, 27 Mar 2026 18:34:43 +0000 +Subject: [PATCH] estrip: Don't break the debuglink CRC with the salted build + ID + +Closes: https://bugs.gentoo.org/971641 +Signed-off-by: James Le Cuirot +Part-of: https://github.com/gentoo/portage/pull/1568 +Closes: https://github.com/gentoo/portage/pull/1568 +--- + NEWS | 2 ++ + bin/estrip | 8 ++++++-- + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/NEWS b/NEWS +index 923c99a74..94b2f8b98 100644 +--- a/NEWS ++++ b/NEWS +@@ -70,6 +70,8 @@ Bug fixes: + + * estrip: Silence noise from objcopy when no build ID section exists (bug #968220). + ++* estrip: Don't break the debuglink CRC with the salted build ID (bug #971641). ++ + portage-3.0.77 (2026-01-23) + -------------- + +diff --git a/bin/estrip b/bin/estrip +index 526a1f203..166f68087 100755 +--- a/bin/estrip ++++ b/bin/estrip +@@ -143,8 +143,7 @@ save_elf_debug() { + if (( has_feature[compressdebug] )); then + objcopy_flags+=( --compress-debug-sections ) + fi +- "${name_of[objcopy]}" "${objcopy_flags[@]}" "${src}" "${dst}" \ +- && "${name_of[objcopy]}" --add-gnu-debuglink="${dst}" "${src}" ++ "${name_of[objcopy]}" "${objcopy_flags[@]}" "${src}" "${dst}" + fi + + # Only do the following if the debug file was +@@ -199,6 +198,11 @@ save_elf_debug() { + __try_symlink "${src_buildid_rel}" "${buildid_file}" + fi + fi ++ ++ if [[ -z ${splitdebug} ]] ; then ++ # Add debuglink last to avoid the salted build ID breaking the CRC. ++ "${name_of[objcopy]}" --add-gnu-debuglink="${dst}" "${src}" ++ fi + fi + } + +-- +2.53.0 + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.72-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.72-r1.ebuild deleted file mode 100644 index c44316aa254..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.72-r1.ebuild +++ /dev/null @@ -1,237 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{12..14} ) -PYTHON_REQ_USE='bzip2(+),threads(+)' -TMPFILES_OPTIONAL=1 - -inherit meson linux-info python-r1 tmpfiles - -DESCRIPTION="The package management and distribution system for Gentoo" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/portage.git - https://github.com/gentoo/portage.git - " - inherit git-r3 -else - SRC_URI="https://gitweb.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -fi - -LICENSE="GPL-2" -SLOT="0" -IUSE="apidoc build doc gentoo-dev +ipc +native-extensions +rsync-verify selinux test xattr" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" -RESTRICT="!test? ( test )" - -BDEPEND=" - ${PYTHON_DEPS} - >=app-arch/tar-1.27 - >=dev-build/meson-1.3.0-r1 - >=sys-apps/sed-4.0.5 - sys-devel/patch - !build? ( $(python_gen_impl_dep 'ssl(+)') ) - apidoc? ( - dev-python/sphinx[${PYTHON_USEDEP}] - dev-python/sphinx-epytext[${PYTHON_USEDEP}] - ) - doc? ( - ~app-text/docbook-xml-dtd-4.4 - app-text/xmlto - ) - test? ( - dev-python/pytest-xdist[${PYTHON_USEDEP}] - dev-vcs/git - ) -" -# Require sandbox-2.2 for bug #288863. -# For whirlpool hash, require python[ssl] (bug #425046). -RDEPEND=" - ${PYTHON_DEPS} - acct-user/portage - >=app-arch/tar-1.27 - app-arch/zstd - >=app-misc/pax-utils-0.1.17 - dev-lang/python-exec:2 - >=sys-apps/baselayout-2.9 - >=sys-apps/findutils-4.9 - !build? ( - >=app-admin/eselect-1.2 - app-portage/getuto - >=app-shells/bash-5.0:0 - >=sec-keys/openpgp-keys-gentoo-release-20240703 - >=sys-apps/sed-4.0.5 - rsync-verify? ( - app-alternatives/gpg[ssl(-)] - >=app-portage/gemato-14.5[${PYTHON_USEDEP}] - ) - ) - kernel_linux? ( - sys-apps/util-linux - elibc_glibc? ( >=sys-apps/sandbox-2.2 ) - elibc_musl? ( >=sys-apps/sandbox-2.2 ) - ) - selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] ) - xattr? ( kernel_linux? ( - >=sys-apps/install-xattr-0.3 - ) ) -" -# coreutils-6.4 rdep is for date format in emerge-webrsync #164532 -# NOTE: FEATURES=installsources requires debugedit and rsync -PDEPEND=" - !build? ( - >=net-misc/rsync-2.6.4 - >=sys-apps/coreutils-6.4 - >=sys-apps/file-5.44-r3 - ) -" - -PATCHES=( - "${FILESDIR}"/0001-bin-emerge-ebuild-don-t-define-signal-handlers-in-gl.patch -) - -pkg_pretend() { - local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS" - - check_extra_config -} - -src_prepare() { - default - - if use prefix-guest; then - sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \ - -e "s|^\\[gentoo\\]|[gentoo_prefix]|" \ - -e "s|^\(sync-uri = \).*|\\1rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix|" \ - -i cnf/repos.conf || die "sed failed" - fi -} - -src_configure() { - local code_only=false - python_foreach_impl my_src_configure -} - -my_src_configure() { - local emesonargs=( - -Dcode-only=${code_only} - -Deprefix="${EPREFIX}" - -Dportage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}" - -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" - $(meson_use doc) - $(meson_use apidoc) - $(meson_use gentoo-dev) - $(meson_use ipc) - $(meson_use xattr) - ) - - if use native-extensions && [[ "${EPYTHON}" != pypy3* ]] ; then - emesonargs+=( -Dnative-extensions=true ) - else - emesonargs+=( -Dnative-extensions=false ) - fi - - if use build; then - emesonargs+=( -Drsync-verify=false ) - else - emesonargs+=( $(meson_use rsync-verify) ) - fi - - meson_src_configure - code_only=true -} - -src_compile() { - python_foreach_impl meson_src_compile -} - -src_test() { - local EPYTEST_XDIST=1 - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - python_foreach_impl epytest -} - -src_install() { - python_foreach_impl my_src_install - dotmpfiles "${FILESDIR}"/portage-{ccache,tmpdir}.conf - - local scripts - mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/{bin,sbin}/* || die) - python_replicate_script "${scripts[@]}" -} - -my_src_install() { - local pydirs=( - "${D}$(python_get_sitedir)" - "${ED}/usr/lib/portage/${EPYTHON}" - ) - - meson_src_install - python_fix_shebang "${pydirs[@]}" - python_optimize "${pydirs[@]}" -} - -pkg_preinst() { - if ! use build && [[ -z ${ROOT} ]]; then - python_setup - local sitedir=$(python_get_sitedir) - [[ -d ${D}${sitedir} ]] || die "${D}${sitedir}: No such directory" - env -u DISTDIR \ - -u PORTAGE_OVERRIDE_EPREFIX \ - -u PORTAGE_REPOSITORIES \ - -u PORTDIR \ - -u PORTDIR_OVERLAY \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - ED="${ED}" \ - "${PYTHON}" -m portage._compat_upgrade.default_locations || die - - env -u BINPKG_COMPRESS -u PORTAGE_REPOSITORIES \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - ED="${ED}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die - - env -u FEATURES -u PORTAGE_REPOSITORIES \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - ED="${ED}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || die - - env -u BINPKG_FORMAT \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - ED="${ED}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_format || die - fi - - # elog dir must exist to avoid logrotate error for bug #415911. - # This code runs in preinst in order to bypass the mapping of - # portage:portage to root:root which happens after src_install. - keepdir /var/log/portage/elog - # This is allowed to fail if the user/group are invalid for prefix users. - if chown portage:portage "${ED}"/var/log/portage{,/elog} 2>/dev/null ; then - chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog} - fi - - if has_version "<${CATEGORY}/${PN}-2.3.77"; then - elog "The emerge --autounmask option is now disabled by default, except for" - elog "portions of behavior which are controlled by the --autounmask-use and" - elog "--autounmask-license options. For backward compatibility, previous" - elog "behavior of --autounmask=y and --autounmask=n is entirely preserved." - elog "Users can get the old behavior simply by adding --autounmask to the" - elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this" - elog "change, see https://bugs.gentoo.org/658648." - fi -} - -pkg_postinst() { - # Warn about obsolete "enotice" script, bug #867010 - local bashrc=${EROOT}/etc/portage/profile/profile.bashrc - if [[ -e ${bashrc} ]] && grep -q enotice "${bashrc}"; then - eerror "Obsolete 'enotice' script detected!" - eerror "Please remove this from ${bashrc} to avoid problems." - eerror "See bug 867010 for more details." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.77-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.77-r1.ebuild deleted file mode 100644 index 8cc87763990..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.77-r1.ebuild +++ /dev/null @@ -1,237 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{12..14} ) -PYTHON_REQ_USE='bzip2(+),threads(+)' -TMPFILES_OPTIONAL=1 - -inherit meson linux-info python-r1 tmpfiles - -DESCRIPTION="The package management and distribution system for Gentoo" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/portage.git - https://github.com/gentoo/portage.git - " - inherit git-r3 -else - SRC_URI="https://gitweb.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -fi - -LICENSE="GPL-2" -SLOT="0" -IUSE="apidoc build doc gentoo-dev +ipc +native-extensions +rsync-verify selinux test xattr" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" -RESTRICT="!test? ( test )" - -BDEPEND=" - ${PYTHON_DEPS} - >=app-arch/tar-1.27 - >=dev-build/meson-1.3.0-r1 - >=sys-apps/sed-4.0.5 - sys-devel/patch - !build? ( $(python_gen_impl_dep 'ssl(+)') ) - apidoc? ( - dev-python/sphinx[${PYTHON_USEDEP}] - dev-python/sphinx-epytext[${PYTHON_USEDEP}] - ) - doc? ( - ~app-text/docbook-xml-dtd-4.4 - app-text/xmlto - ) - test? ( - dev-python/pytest-xdist[${PYTHON_USEDEP}] - dev-vcs/git - ) -" -# Require sandbox-2.2 for bug #288863. -# For whirlpool hash, require python[ssl] (bug #425046). -RDEPEND=" - ${PYTHON_DEPS} - >=acct-user/portage-0-r4 - >=app-arch/tar-1.27 - app-arch/zstd - >=app-misc/pax-utils-0.1.17 - dev-lang/python-exec:2 - >=sys-apps/baselayout-2.9 - >=sys-apps/findutils-4.9 - !build? ( - >=app-admin/eselect-1.2 - app-portage/getuto - >=app-shells/bash-5.3:0 - >=sec-keys/openpgp-keys-gentoo-release-20240703 - >=sys-apps/sed-4.0.5 - rsync-verify? ( - app-alternatives/gpg[ssl(-)] - >=app-portage/gemato-14.5[${PYTHON_USEDEP}] - ) - ) - kernel_linux? ( - sys-apps/util-linux - elibc_glibc? ( >=sys-apps/sandbox-2.2 ) - elibc_musl? ( >=sys-apps/sandbox-2.2 ) - ) - selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] ) - xattr? ( kernel_linux? ( - >=sys-apps/install-xattr-0.3 - ) ) -" -# coreutils-6.4 rdep is for date format in emerge-webrsync #164532 -# NOTE: FEATURES=installsources requires debugedit and rsync -PDEPEND=" - !build? ( - >=net-misc/rsync-2.6.4 - >=sys-apps/coreutils-6.4 - >=sys-apps/file-5.44-r3 - ) -" - -PATCHES=( - "${FILESDIR}"/0001-estrip-silence-noise-from-objcopy-if-build-ID-sectio.patch -) - -pkg_pretend() { - local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS" - - check_extra_config -} - -src_prepare() { - default - - if use prefix-guest; then - sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \ - -e "s|^\\[gentoo\\]|[gentoo_prefix]|" \ - -e "s|^\(sync-uri = \).*|\\1rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix|" \ - -i cnf/repos.conf || die "sed failed" - fi -} - -src_configure() { - local code_only=false - python_foreach_impl my_src_configure -} - -my_src_configure() { - local emesonargs=( - -Dcode-only=${code_only} - -Deprefix="${EPREFIX}" - -Dportage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}" - -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" - $(meson_use doc) - $(meson_use apidoc) - $(meson_use gentoo-dev) - $(meson_use ipc) - $(meson_use xattr) - ) - - if use native-extensions && [[ "${EPYTHON}" != pypy3* ]] ; then - emesonargs+=( -Dnative-extensions=true ) - else - emesonargs+=( -Dnative-extensions=false ) - fi - - if use build; then - emesonargs+=( -Drsync-verify=false ) - else - emesonargs+=( $(meson_use rsync-verify) ) - fi - - meson_src_configure - code_only=true -} - -src_compile() { - python_foreach_impl meson_src_compile -} - -src_test() { - local EPYTEST_XDIST=1 - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - python_foreach_impl epytest -} - -src_install() { - python_foreach_impl my_src_install - dotmpfiles "${FILESDIR}"/portage-{ccache,tmpdir}.conf - - local scripts - mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/{bin,sbin}/* || die) - python_replicate_script "${scripts[@]}" -} - -my_src_install() { - local pydirs=( - "${D}$(python_get_sitedir)" - "${ED}/usr/lib/portage/${EPYTHON}" - ) - - meson_src_install - python_fix_shebang "${pydirs[@]}" - python_optimize "${pydirs[@]}" -} - -pkg_preinst() { - if ! use build && [[ -z ${ROOT} ]]; then - python_setup - local sitedir=$(python_get_sitedir) - [[ -d ${D}${sitedir} ]] || die "${D}${sitedir}: No such directory" - env -u DISTDIR \ - -u PORTAGE_OVERRIDE_EPREFIX \ - -u PORTAGE_REPOSITORIES \ - -u PORTDIR \ - -u PORTDIR_OVERLAY \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - ED="${ED}" \ - "${PYTHON}" -m portage._compat_upgrade.default_locations || die - - env -u BINPKG_COMPRESS -u PORTAGE_REPOSITORIES \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - ED="${ED}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die - - env -u FEATURES -u PORTAGE_REPOSITORIES \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - ED="${ED}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || die - - env -u BINPKG_FORMAT \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - ED="${ED}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_format || die - fi - - # elog dir must exist to avoid logrotate error for bug #415911. - # This code runs in preinst in order to bypass the mapping of - # portage:portage to root:root which happens after src_install. - keepdir /var/log/portage/elog - # This is allowed to fail if the user/group are invalid for prefix users. - if chown portage:portage "${ED}"/var/log/portage{,/elog} 2>/dev/null ; then - chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog} - fi - - if has_version "<${CATEGORY}/${PN}-2.3.77"; then - elog "The emerge --autounmask option is now disabled by default, except for" - elog "portions of behavior which are controlled by the --autounmask-use and" - elog "--autounmask-license options. For backward compatibility, previous" - elog "behavior of --autounmask=y and --autounmask=n is entirely preserved." - elog "Users can get the old behavior simply by adding --autounmask to the" - elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this" - elog "change, see https://bugs.gentoo.org/658648." - fi -} - -pkg_postinst() { - # Warn about obsolete "enotice" script, bug #867010 - local bashrc=${EROOT}/etc/portage/profile/profile.bashrc - if [[ -e ${bashrc} ]] && grep -q enotice "${bashrc}"; then - eerror "Obsolete 'enotice' script detected!" - eerror "Please remove this from ${bashrc} to avoid problems." - eerror "See bug 867010 for more details." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.77-r3.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.77-r3.ebuild deleted file mode 100644 index 3dbc5fc06ef..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.77-r3.ebuild +++ /dev/null @@ -1,238 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{12..14} ) -PYTHON_REQ_USE='bzip2(+),threads(+)' -TMPFILES_OPTIONAL=1 - -inherit meson linux-info python-r1 tmpfiles - -DESCRIPTION="The package management and distribution system for Gentoo" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/portage.git - https://github.com/gentoo/portage.git - " - inherit git-r3 -else - SRC_URI="https://gitweb.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -fi - -LICENSE="GPL-2" -SLOT="0" -IUSE="apidoc build doc gentoo-dev +ipc +native-extensions +rsync-verify selinux test xattr" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" -RESTRICT="!test? ( test )" - -BDEPEND=" - ${PYTHON_DEPS} - >=app-arch/tar-1.27 - >=dev-build/meson-1.3.0-r1 - >=sys-apps/sed-4.0.5 - sys-devel/patch - !build? ( $(python_gen_impl_dep 'ssl(+)') ) - apidoc? ( - dev-python/sphinx[${PYTHON_USEDEP}] - dev-python/sphinx-epytext[${PYTHON_USEDEP}] - ) - doc? ( - ~app-text/docbook-xml-dtd-4.4 - app-text/xmlto - ) - test? ( - dev-python/pytest-xdist[${PYTHON_USEDEP}] - dev-vcs/git - ) -" -# Require sandbox-2.2 for bug #288863. -# For whirlpool hash, require python[ssl] (bug #425046). -RDEPEND=" - ${PYTHON_DEPS} - >=acct-user/portage-0-r4 - >=app-arch/tar-1.27 - app-arch/zstd - >=app-misc/pax-utils-0.1.17 - dev-lang/python-exec:2 - >=sys-apps/baselayout-2.9 - >=sys-apps/findutils-4.9 - !build? ( - >=app-admin/eselect-1.2 - app-portage/getuto - >=app-shells/bash-5.3:0 - dev-util/debugedit - >=sec-keys/openpgp-keys-gentoo-release-20240703 - >=sys-apps/sed-4.0.5 - rsync-verify? ( - app-alternatives/gpg[ssl(-)] - >=app-portage/gemato-14.5[${PYTHON_USEDEP}] - ) - ) - kernel_linux? ( - sys-apps/util-linux - elibc_glibc? ( >=sys-apps/sandbox-2.2 ) - elibc_musl? ( >=sys-apps/sandbox-2.2 ) - ) - selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] ) - xattr? ( kernel_linux? ( - >=sys-apps/install-xattr-0.3 - ) ) -" -# coreutils-6.4 rdep is for date format in emerge-webrsync #164532 -# NOTE: FEATURES=installsources requires debugedit and rsync -PDEPEND=" - !build? ( - >=net-misc/rsync-2.6.4 - >=sys-apps/coreutils-6.4 - >=sys-apps/file-5.44-r3 - ) -" - -PATCHES=( - "${FILESDIR}"/0001-estrip-silence-noise-from-objcopy-if-build-ID-sectio.patch -) - -pkg_pretend() { - local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS" - - check_extra_config -} - -src_prepare() { - default - - if use prefix-guest; then - sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \ - -e "s|^\\[gentoo\\]|[gentoo_prefix]|" \ - -e "s|^\(sync-uri = \).*|\\1rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix|" \ - -i cnf/repos.conf || die "sed failed" - fi -} - -src_configure() { - local code_only=false - python_foreach_impl my_src_configure -} - -my_src_configure() { - local emesonargs=( - -Dcode-only=${code_only} - -Deprefix="${EPREFIX}" - -Dportage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}" - -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" - $(meson_use doc) - $(meson_use apidoc) - $(meson_use gentoo-dev) - $(meson_use ipc) - $(meson_use xattr) - ) - - if use native-extensions && [[ "${EPYTHON}" != pypy3* ]] ; then - emesonargs+=( -Dnative-extensions=true ) - else - emesonargs+=( -Dnative-extensions=false ) - fi - - if use build; then - emesonargs+=( -Drsync-verify=false ) - else - emesonargs+=( $(meson_use rsync-verify) ) - fi - - meson_src_configure - code_only=true -} - -src_compile() { - python_foreach_impl meson_src_compile -} - -src_test() { - local EPYTEST_XDIST=1 - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - python_foreach_impl epytest -} - -src_install() { - python_foreach_impl my_src_install - dotmpfiles "${FILESDIR}"/portage-{ccache,tmpdir}.conf - - local scripts - mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/{bin,sbin}/* || die) - python_replicate_script "${scripts[@]}" -} - -my_src_install() { - local pydirs=( - "${D}$(python_get_sitedir)" - "${ED}/usr/lib/portage/${EPYTHON}" - ) - - meson_src_install - python_fix_shebang "${pydirs[@]}" - python_optimize "${pydirs[@]}" -} - -pkg_preinst() { - if ! use build && [[ -z ${ROOT} ]]; then - python_setup - local sitedir=$(python_get_sitedir) - [[ -d ${D}${sitedir} ]] || die "${D}${sitedir}: No such directory" - env -u DISTDIR \ - -u PORTAGE_OVERRIDE_EPREFIX \ - -u PORTAGE_REPOSITORIES \ - -u PORTDIR \ - -u PORTDIR_OVERLAY \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - ED="${ED}" \ - "${PYTHON}" -m portage._compat_upgrade.default_locations || die - - env -u BINPKG_COMPRESS -u PORTAGE_REPOSITORIES \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - ED="${ED}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die - - env -u FEATURES -u PORTAGE_REPOSITORIES \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - ED="${ED}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || die - - env -u BINPKG_FORMAT \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - ED="${ED}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_format || die - fi - - # elog dir must exist to avoid logrotate error for bug #415911. - # This code runs in preinst in order to bypass the mapping of - # portage:portage to root:root which happens after src_install. - keepdir /var/log/portage/elog - # This is allowed to fail if the user/group are invalid for prefix users. - if chown portage:portage "${ED}"/var/log/portage{,/elog} 2>/dev/null ; then - chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog} - fi - - if has_version "<${CATEGORY}/${PN}-2.3.77"; then - elog "The emerge --autounmask option is now disabled by default, except for" - elog "portions of behavior which are controlled by the --autounmask-use and" - elog "--autounmask-license options. For backward compatibility, previous" - elog "behavior of --autounmask=y and --autounmask=n is entirely preserved." - elog "Users can get the old behavior simply by adding --autounmask to the" - elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this" - elog "change, see https://bugs.gentoo.org/658648." - fi -} - -pkg_postinst() { - # Warn about obsolete "enotice" script, bug #867010 - local bashrc=${EROOT}/etc/portage/profile/profile.bashrc - if [[ -e ${bashrc} ]] && grep -q enotice "${bashrc}"; then - eerror "Obsolete 'enotice' script detected!" - eerror "Please remove this from ${bashrc} to avoid problems." - eerror "See bug 867010 for more details." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.77-r4.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.77-r4.ebuild new file mode 100644 index 00000000000..b2f04d71eb4 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.77-r4.ebuild @@ -0,0 +1,240 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..14} ) +PYTHON_REQ_USE='bzip2(+),threads(+)' +TMPFILES_OPTIONAL=1 + +inherit meson linux-info python-r1 tmpfiles + +DESCRIPTION="The package management and distribution system for Gentoo" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/portage.git + https://github.com/gentoo/portage.git + " + inherit git-r3 +else + SRC_URI="https://gitweb.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="apidoc build doc gentoo-dev +ipc +native-extensions +rsync-verify selinux test xattr" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${PYTHON_DEPS} + >=app-arch/tar-1.27 + >=dev-build/meson-1.3.0-r1 + >=sys-apps/sed-4.0.5 + sys-devel/patch + !build? ( $(python_gen_impl_dep 'ssl(+)') ) + apidoc? ( + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-epytext[${PYTHON_USEDEP}] + ) + doc? ( + ~app-text/docbook-xml-dtd-4.4 + app-text/xmlto + ) + test? ( + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-vcs/git + ) +" +# Require sandbox-2.2 for bug #288863. +# For whirlpool hash, require python[ssl] (bug #425046). +RDEPEND=" + ${PYTHON_DEPS} + >=acct-user/portage-0-r4 + >=app-arch/tar-1.27 + app-arch/zstd + >=app-misc/pax-utils-0.1.17 + dev-lang/python-exec:2 + >=sys-apps/baselayout-2.9 + >=sys-apps/findutils-4.9 + !build? ( + >=app-admin/eselect-1.2 + app-portage/getuto + >=app-shells/bash-5.3:0 + dev-util/debugedit + >=sec-keys/openpgp-keys-gentoo-release-20240703 + >=sys-apps/sed-4.0.5 + rsync-verify? ( + app-alternatives/gpg[ssl(-)] + >=app-portage/gemato-14.5[${PYTHON_USEDEP}] + ) + ) + kernel_linux? ( + sys-apps/util-linux + elibc_glibc? ( >=sys-apps/sandbox-2.2 ) + elibc_musl? ( >=sys-apps/sandbox-2.2 ) + ) + selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] ) + xattr? ( kernel_linux? ( + >=sys-apps/install-xattr-0.3 + ) ) +" +# coreutils-6.4 rdep is for date format in emerge-webrsync #164532 +# NOTE: FEATURES=installsources requires debugedit and rsync +PDEPEND=" + !build? ( + >=net-misc/rsync-2.6.4 + >=sys-apps/coreutils-6.4 + >=sys-apps/file-5.44-r3 + ) +" + +PATCHES=( + "${FILESDIR}"/0001-estrip-silence-noise-from-objcopy-if-build-ID-sectio.patch + "${FILESDIR}"/0002-Revert-depgraph-earlier-slot-operator-backtracking.patch + "${FILESDIR}"/0003-estrip-Don-t-break-the-debuglink-CRC-with-the-salted.patch +) + +pkg_pretend() { + local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS" + + check_extra_config +} + +src_prepare() { + default + + if use prefix-guest; then + sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \ + -e "s|^\\[gentoo\\]|[gentoo_prefix]|" \ + -e "s|^\(sync-uri = \).*|\\1rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix|" \ + -i cnf/repos.conf || die "sed failed" + fi +} + +src_configure() { + local code_only=false + python_foreach_impl my_src_configure +} + +my_src_configure() { + local emesonargs=( + -Dcode-only=${code_only} + -Deprefix="${EPREFIX}" + -Dportage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}" + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + $(meson_use doc) + $(meson_use apidoc) + $(meson_use gentoo-dev) + $(meson_use ipc) + $(meson_use xattr) + ) + + if use native-extensions && [[ "${EPYTHON}" != pypy3* ]] ; then + emesonargs+=( -Dnative-extensions=true ) + else + emesonargs+=( -Dnative-extensions=false ) + fi + + if use build; then + emesonargs+=( -Drsync-verify=false ) + else + emesonargs+=( $(meson_use rsync-verify) ) + fi + + meson_src_configure + code_only=true +} + +src_compile() { + python_foreach_impl meson_src_compile +} + +src_test() { + local EPYTEST_XDIST=1 + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + python_foreach_impl epytest +} + +src_install() { + python_foreach_impl my_src_install + dotmpfiles "${FILESDIR}"/portage-{ccache,tmpdir}.conf + + local scripts + mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/{bin,sbin}/* || die) + python_replicate_script "${scripts[@]}" +} + +my_src_install() { + local pydirs=( + "${D}$(python_get_sitedir)" + "${ED}/usr/lib/portage/${EPYTHON}" + ) + + meson_src_install + python_fix_shebang "${pydirs[@]}" + python_optimize "${pydirs[@]}" +} + +pkg_preinst() { + if ! use build && [[ -z ${ROOT} ]]; then + python_setup + local sitedir=$(python_get_sitedir) + [[ -d ${D}${sitedir} ]] || die "${D}${sitedir}: No such directory" + env -u DISTDIR \ + -u PORTAGE_OVERRIDE_EPREFIX \ + -u PORTAGE_REPOSITORIES \ + -u PORTDIR \ + -u PORTDIR_OVERLAY \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.default_locations || die + + env -u BINPKG_COMPRESS -u PORTAGE_REPOSITORIES \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die + + env -u FEATURES -u PORTAGE_REPOSITORIES \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || die + + env -u BINPKG_FORMAT \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_format || die + fi + + # elog dir must exist to avoid logrotate error for bug #415911. + # This code runs in preinst in order to bypass the mapping of + # portage:portage to root:root which happens after src_install. + keepdir /var/log/portage/elog + # This is allowed to fail if the user/group are invalid for prefix users. + if chown portage:portage "${ED}"/var/log/portage{,/elog} 2>/dev/null ; then + chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog} + fi + + if has_version "<${CATEGORY}/${PN}-2.3.77"; then + elog "The emerge --autounmask option is now disabled by default, except for" + elog "portions of behavior which are controlled by the --autounmask-use and" + elog "--autounmask-license options. For backward compatibility, previous" + elog "behavior of --autounmask=y and --autounmask=n is entirely preserved." + elog "Users can get the old behavior simply by adding --autounmask to the" + elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this" + elog "change, see https://bugs.gentoo.org/658648." + fi +} + +pkg_postinst() { + # Warn about obsolete "enotice" script, bug #867010 + local bashrc=${EROOT}/etc/portage/profile/profile.bashrc + if [[ -e ${bashrc} ]] && grep -q enotice "${bashrc}"; then + eerror "Obsolete 'enotice' script detected!" + eerror "Please remove this from ${bashrc} to avoid problems." + eerror "See bug 867010 for more details." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.77.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.77.ebuild deleted file mode 100644 index d5aba3270f3..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.77.ebuild +++ /dev/null @@ -1,233 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{12..14} ) -PYTHON_REQ_USE='bzip2(+),threads(+)' -TMPFILES_OPTIONAL=1 - -inherit meson linux-info python-r1 tmpfiles - -DESCRIPTION="The package management and distribution system for Gentoo" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/portage.git - https://github.com/gentoo/portage.git - " - inherit git-r3 -else - SRC_URI="https://gitweb.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -fi - -LICENSE="GPL-2" -SLOT="0" -IUSE="apidoc build doc gentoo-dev +ipc +native-extensions +rsync-verify selinux test xattr" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" -RESTRICT="!test? ( test )" - -BDEPEND=" - ${PYTHON_DEPS} - >=app-arch/tar-1.27 - >=dev-build/meson-1.3.0-r1 - >=sys-apps/sed-4.0.5 - sys-devel/patch - !build? ( $(python_gen_impl_dep 'ssl(+)') ) - apidoc? ( - dev-python/sphinx[${PYTHON_USEDEP}] - dev-python/sphinx-epytext[${PYTHON_USEDEP}] - ) - doc? ( - ~app-text/docbook-xml-dtd-4.4 - app-text/xmlto - ) - test? ( - dev-python/pytest-xdist[${PYTHON_USEDEP}] - dev-vcs/git - ) -" -# Require sandbox-2.2 for bug #288863. -# For whirlpool hash, require python[ssl] (bug #425046). -RDEPEND=" - ${PYTHON_DEPS} - >=acct-user/portage-0-r4 - >=app-arch/tar-1.27 - app-arch/zstd - >=app-misc/pax-utils-0.1.17 - dev-lang/python-exec:2 - >=sys-apps/baselayout-2.9 - >=sys-apps/findutils-4.9 - !build? ( - >=app-admin/eselect-1.2 - app-portage/getuto - >=app-shells/bash-5.3:0 - >=sec-keys/openpgp-keys-gentoo-release-20240703 - >=sys-apps/sed-4.0.5 - rsync-verify? ( - app-alternatives/gpg[ssl(-)] - >=app-portage/gemato-14.5[${PYTHON_USEDEP}] - ) - ) - kernel_linux? ( - sys-apps/util-linux - elibc_glibc? ( >=sys-apps/sandbox-2.2 ) - elibc_musl? ( >=sys-apps/sandbox-2.2 ) - ) - selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] ) - xattr? ( kernel_linux? ( - >=sys-apps/install-xattr-0.3 - ) ) -" -# coreutils-6.4 rdep is for date format in emerge-webrsync #164532 -# NOTE: FEATURES=installsources requires debugedit and rsync -PDEPEND=" - !build? ( - >=net-misc/rsync-2.6.4 - >=sys-apps/coreutils-6.4 - >=sys-apps/file-5.44-r3 - ) -" - -pkg_pretend() { - local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS" - - check_extra_config -} - -src_prepare() { - default - - if use prefix-guest; then - sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \ - -e "s|^\\[gentoo\\]|[gentoo_prefix]|" \ - -e "s|^\(sync-uri = \).*|\\1rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix|" \ - -i cnf/repos.conf || die "sed failed" - fi -} - -src_configure() { - local code_only=false - python_foreach_impl my_src_configure -} - -my_src_configure() { - local emesonargs=( - -Dcode-only=${code_only} - -Deprefix="${EPREFIX}" - -Dportage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}" - -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" - $(meson_use doc) - $(meson_use apidoc) - $(meson_use gentoo-dev) - $(meson_use ipc) - $(meson_use xattr) - ) - - if use native-extensions && [[ "${EPYTHON}" != pypy3* ]] ; then - emesonargs+=( -Dnative-extensions=true ) - else - emesonargs+=( -Dnative-extensions=false ) - fi - - if use build; then - emesonargs+=( -Drsync-verify=false ) - else - emesonargs+=( $(meson_use rsync-verify) ) - fi - - meson_src_configure - code_only=true -} - -src_compile() { - python_foreach_impl meson_src_compile -} - -src_test() { - local EPYTEST_XDIST=1 - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - python_foreach_impl epytest -} - -src_install() { - python_foreach_impl my_src_install - dotmpfiles "${FILESDIR}"/portage-{ccache,tmpdir}.conf - - local scripts - mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/{bin,sbin}/* || die) - python_replicate_script "${scripts[@]}" -} - -my_src_install() { - local pydirs=( - "${D}$(python_get_sitedir)" - "${ED}/usr/lib/portage/${EPYTHON}" - ) - - meson_src_install - python_fix_shebang "${pydirs[@]}" - python_optimize "${pydirs[@]}" -} - -pkg_preinst() { - if ! use build && [[ -z ${ROOT} ]]; then - python_setup - local sitedir=$(python_get_sitedir) - [[ -d ${D}${sitedir} ]] || die "${D}${sitedir}: No such directory" - env -u DISTDIR \ - -u PORTAGE_OVERRIDE_EPREFIX \ - -u PORTAGE_REPOSITORIES \ - -u PORTDIR \ - -u PORTDIR_OVERLAY \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - ED="${ED}" \ - "${PYTHON}" -m portage._compat_upgrade.default_locations || die - - env -u BINPKG_COMPRESS -u PORTAGE_REPOSITORIES \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - ED="${ED}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die - - env -u FEATURES -u PORTAGE_REPOSITORIES \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - ED="${ED}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || die - - env -u BINPKG_FORMAT \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - ED="${ED}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_format || die - fi - - # elog dir must exist to avoid logrotate error for bug #415911. - # This code runs in preinst in order to bypass the mapping of - # portage:portage to root:root which happens after src_install. - keepdir /var/log/portage/elog - # This is allowed to fail if the user/group are invalid for prefix users. - if chown portage:portage "${ED}"/var/log/portage{,/elog} 2>/dev/null ; then - chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog} - fi - - if has_version "<${CATEGORY}/${PN}-2.3.77"; then - elog "The emerge --autounmask option is now disabled by default, except for" - elog "portions of behavior which are controlled by the --autounmask-use and" - elog "--autounmask-license options. For backward compatibility, previous" - elog "behavior of --autounmask=y and --autounmask=n is entirely preserved." - elog "Users can get the old behavior simply by adding --autounmask to the" - elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this" - elog "change, see https://bugs.gentoo.org/658648." - fi -} - -pkg_postinst() { - # Warn about obsolete "enotice" script, bug #867010 - local bashrc=${EROOT}/etc/portage/profile/profile.bashrc - if [[ -e ${bashrc} ]] && grep -q enotice "${bashrc}"; then - eerror "Obsolete 'enotice' script detected!" - eerror "Please remove this from ${bashrc} to avoid problems." - eerror "See bug 867010 for more details." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.78.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.78.ebuild new file mode 100644 index 00000000000..62f87f2f1b9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.78.ebuild @@ -0,0 +1,234 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..14} ) +PYTHON_REQ_USE='bzip2(+),threads(+)' +TMPFILES_OPTIONAL=1 + +inherit meson linux-info python-r1 tmpfiles + +DESCRIPTION="The package management and distribution system for Gentoo" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/portage.git + https://github.com/gentoo/portage.git + " + inherit git-r3 +else + SRC_URI="https://gitweb.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="apidoc build doc gentoo-dev +ipc +native-extensions +rsync-verify selinux test xattr" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${PYTHON_DEPS} + >=app-arch/tar-1.27 + >=dev-build/meson-1.3.0-r1 + >=sys-apps/sed-4.0.5 + sys-devel/patch + !build? ( $(python_gen_impl_dep 'ssl(+)') ) + apidoc? ( + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-epytext[${PYTHON_USEDEP}] + ) + doc? ( + ~app-text/docbook-xml-dtd-4.4 + app-text/xmlto + ) + test? ( + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-vcs/git + ) +" +# Require sandbox-2.2 for bug #288863. +# For whirlpool hash, require python[ssl] (bug #425046). +RDEPEND=" + ${PYTHON_DEPS} + >=acct-user/portage-0-r4 + >=app-arch/tar-1.27 + app-arch/zstd + >=app-misc/pax-utils-0.1.17 + dev-lang/python-exec:2 + >=sys-apps/baselayout-2.9 + >=sys-apps/findutils-4.9 + !build? ( + >=app-admin/eselect-1.2 + app-portage/getuto + >=app-shells/bash-5.3:0 + dev-util/debugedit + >=sec-keys/openpgp-keys-gentoo-release-20240703 + >=sys-apps/sed-4.0.5 + rsync-verify? ( + app-alternatives/gpg[ssl(-)] + >=app-portage/gemato-14.5[${PYTHON_USEDEP}] + ) + ) + kernel_linux? ( + sys-apps/util-linux + elibc_glibc? ( >=sys-apps/sandbox-2.2 ) + elibc_musl? ( >=sys-apps/sandbox-2.2 ) + ) + selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] ) + xattr? ( kernel_linux? ( + >=sys-apps/install-xattr-0.3 + ) ) +" +# coreutils-6.4 rdep is for date format in emerge-webrsync #164532 +# NOTE: FEATURES=installsources requires debugedit and rsync +PDEPEND=" + !build? ( + >=net-misc/rsync-2.6.4 + >=sys-apps/coreutils-6.4 + >=sys-apps/file-5.44-r3 + ) +" + +pkg_pretend() { + local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS" + + check_extra_config +} + +src_prepare() { + default + + if use prefix-guest; then + sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \ + -e "s|^\\[gentoo\\]|[gentoo_prefix]|" \ + -e "s|^\(sync-uri = \).*|\\1rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix|" \ + -i cnf/repos.conf || die "sed failed" + fi +} + +src_configure() { + local code_only=false + python_foreach_impl my_src_configure +} + +my_src_configure() { + local emesonargs=( + -Dcode-only=${code_only} + -Deprefix="${EPREFIX}" + -Dportage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}" + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + $(meson_use doc) + $(meson_use apidoc) + $(meson_use gentoo-dev) + $(meson_use ipc) + $(meson_use xattr) + ) + + if use native-extensions && [[ "${EPYTHON}" != pypy3* ]] ; then + emesonargs+=( -Dnative-extensions=true ) + else + emesonargs+=( -Dnative-extensions=false ) + fi + + if use build; then + emesonargs+=( -Drsync-verify=false ) + else + emesonargs+=( $(meson_use rsync-verify) ) + fi + + meson_src_configure + code_only=true +} + +src_compile() { + python_foreach_impl meson_src_compile +} + +src_test() { + local EPYTEST_XDIST=1 + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + python_foreach_impl epytest +} + +src_install() { + python_foreach_impl my_src_install + dotmpfiles "${FILESDIR}"/portage-{ccache,tmpdir}.conf + + local scripts + mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/{bin,sbin}/* || die) + python_replicate_script "${scripts[@]}" +} + +my_src_install() { + local pydirs=( + "${D}$(python_get_sitedir)" + "${ED}/usr/lib/portage/${EPYTHON}" + ) + + meson_src_install + python_fix_shebang "${pydirs[@]}" + python_optimize "${pydirs[@]}" +} + +pkg_preinst() { + if ! use build && [[ -z ${ROOT} ]]; then + python_setup + local sitedir=$(python_get_sitedir) + [[ -d ${D}${sitedir} ]] || die "${D}${sitedir}: No such directory" + env -u DISTDIR \ + -u PORTAGE_OVERRIDE_EPREFIX \ + -u PORTAGE_REPOSITORIES \ + -u PORTDIR \ + -u PORTDIR_OVERLAY \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.default_locations || die + + env -u BINPKG_COMPRESS -u PORTAGE_REPOSITORIES \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die + + env -u FEATURES -u PORTAGE_REPOSITORIES \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || die + + env -u BINPKG_FORMAT \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_format || die + fi + + # elog dir must exist to avoid logrotate error for bug #415911. + # This code runs in preinst in order to bypass the mapping of + # portage:portage to root:root which happens after src_install. + keepdir /var/log/portage/elog + # This is allowed to fail if the user/group are invalid for prefix users. + if chown portage:portage "${ED}"/var/log/portage{,/elog} 2>/dev/null ; then + chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog} + fi + + if has_version "<${CATEGORY}/${PN}-2.3.77"; then + elog "The emerge --autounmask option is now disabled by default, except for" + elog "portions of behavior which are controlled by the --autounmask-use and" + elog "--autounmask-license options. For backward compatibility, previous" + elog "behavior of --autounmask=y and --autounmask=n is entirely preserved." + elog "Users can get the old behavior simply by adding --autounmask to the" + elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this" + elog "change, see https://bugs.gentoo.org/658648." + fi +} + +pkg_postinst() { + # Warn about obsolete "enotice" script, bug #867010 + local bashrc=${EROOT}/etc/portage/profile/profile.bashrc + if [[ -e ${bashrc} ]] && grep -q enotice "${bashrc}"; then + eerror "Obsolete 'enotice' script detected!" + eerror "Please remove this from ${bashrc} to avoid problems." + eerror "See bug 867010 for more details." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.79.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.79.ebuild new file mode 100644 index 00000000000..62f87f2f1b9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.79.ebuild @@ -0,0 +1,234 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..14} ) +PYTHON_REQ_USE='bzip2(+),threads(+)' +TMPFILES_OPTIONAL=1 + +inherit meson linux-info python-r1 tmpfiles + +DESCRIPTION="The package management and distribution system for Gentoo" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/portage.git + https://github.com/gentoo/portage.git + " + inherit git-r3 +else + SRC_URI="https://gitweb.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="apidoc build doc gentoo-dev +ipc +native-extensions +rsync-verify selinux test xattr" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${PYTHON_DEPS} + >=app-arch/tar-1.27 + >=dev-build/meson-1.3.0-r1 + >=sys-apps/sed-4.0.5 + sys-devel/patch + !build? ( $(python_gen_impl_dep 'ssl(+)') ) + apidoc? ( + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-epytext[${PYTHON_USEDEP}] + ) + doc? ( + ~app-text/docbook-xml-dtd-4.4 + app-text/xmlto + ) + test? ( + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-vcs/git + ) +" +# Require sandbox-2.2 for bug #288863. +# For whirlpool hash, require python[ssl] (bug #425046). +RDEPEND=" + ${PYTHON_DEPS} + >=acct-user/portage-0-r4 + >=app-arch/tar-1.27 + app-arch/zstd + >=app-misc/pax-utils-0.1.17 + dev-lang/python-exec:2 + >=sys-apps/baselayout-2.9 + >=sys-apps/findutils-4.9 + !build? ( + >=app-admin/eselect-1.2 + app-portage/getuto + >=app-shells/bash-5.3:0 + dev-util/debugedit + >=sec-keys/openpgp-keys-gentoo-release-20240703 + >=sys-apps/sed-4.0.5 + rsync-verify? ( + app-alternatives/gpg[ssl(-)] + >=app-portage/gemato-14.5[${PYTHON_USEDEP}] + ) + ) + kernel_linux? ( + sys-apps/util-linux + elibc_glibc? ( >=sys-apps/sandbox-2.2 ) + elibc_musl? ( >=sys-apps/sandbox-2.2 ) + ) + selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] ) + xattr? ( kernel_linux? ( + >=sys-apps/install-xattr-0.3 + ) ) +" +# coreutils-6.4 rdep is for date format in emerge-webrsync #164532 +# NOTE: FEATURES=installsources requires debugedit and rsync +PDEPEND=" + !build? ( + >=net-misc/rsync-2.6.4 + >=sys-apps/coreutils-6.4 + >=sys-apps/file-5.44-r3 + ) +" + +pkg_pretend() { + local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS" + + check_extra_config +} + +src_prepare() { + default + + if use prefix-guest; then + sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \ + -e "s|^\\[gentoo\\]|[gentoo_prefix]|" \ + -e "s|^\(sync-uri = \).*|\\1rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix|" \ + -i cnf/repos.conf || die "sed failed" + fi +} + +src_configure() { + local code_only=false + python_foreach_impl my_src_configure +} + +my_src_configure() { + local emesonargs=( + -Dcode-only=${code_only} + -Deprefix="${EPREFIX}" + -Dportage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}" + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + $(meson_use doc) + $(meson_use apidoc) + $(meson_use gentoo-dev) + $(meson_use ipc) + $(meson_use xattr) + ) + + if use native-extensions && [[ "${EPYTHON}" != pypy3* ]] ; then + emesonargs+=( -Dnative-extensions=true ) + else + emesonargs+=( -Dnative-extensions=false ) + fi + + if use build; then + emesonargs+=( -Drsync-verify=false ) + else + emesonargs+=( $(meson_use rsync-verify) ) + fi + + meson_src_configure + code_only=true +} + +src_compile() { + python_foreach_impl meson_src_compile +} + +src_test() { + local EPYTEST_XDIST=1 + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + python_foreach_impl epytest +} + +src_install() { + python_foreach_impl my_src_install + dotmpfiles "${FILESDIR}"/portage-{ccache,tmpdir}.conf + + local scripts + mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/{bin,sbin}/* || die) + python_replicate_script "${scripts[@]}" +} + +my_src_install() { + local pydirs=( + "${D}$(python_get_sitedir)" + "${ED}/usr/lib/portage/${EPYTHON}" + ) + + meson_src_install + python_fix_shebang "${pydirs[@]}" + python_optimize "${pydirs[@]}" +} + +pkg_preinst() { + if ! use build && [[ -z ${ROOT} ]]; then + python_setup + local sitedir=$(python_get_sitedir) + [[ -d ${D}${sitedir} ]] || die "${D}${sitedir}: No such directory" + env -u DISTDIR \ + -u PORTAGE_OVERRIDE_EPREFIX \ + -u PORTAGE_REPOSITORIES \ + -u PORTDIR \ + -u PORTDIR_OVERLAY \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.default_locations || die + + env -u BINPKG_COMPRESS -u PORTAGE_REPOSITORIES \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die + + env -u FEATURES -u PORTAGE_REPOSITORIES \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || die + + env -u BINPKG_FORMAT \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_format || die + fi + + # elog dir must exist to avoid logrotate error for bug #415911. + # This code runs in preinst in order to bypass the mapping of + # portage:portage to root:root which happens after src_install. + keepdir /var/log/portage/elog + # This is allowed to fail if the user/group are invalid for prefix users. + if chown portage:portage "${ED}"/var/log/portage{,/elog} 2>/dev/null ; then + chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog} + fi + + if has_version "<${CATEGORY}/${PN}-2.3.77"; then + elog "The emerge --autounmask option is now disabled by default, except for" + elog "portions of behavior which are controlled by the --autounmask-use and" + elog "--autounmask-license options. For backward compatibility, previous" + elog "behavior of --autounmask=y and --autounmask=n is entirely preserved." + elog "Users can get the old behavior simply by adding --autounmask to the" + elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this" + elog "change, see https://bugs.gentoo.org/658648." + fi +} + +pkg_postinst() { + # Warn about obsolete "enotice" script, bug #867010 + local bashrc=${EROOT}/etc/portage/profile/profile.bashrc + if [[ -e ${bashrc} ]] && grep -q enotice "${bashrc}"; then + eerror "Obsolete 'enotice' script detected!" + eerror "Please remove this from ${bashrc} to avoid problems." + eerror "See bug 867010 for more details." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.10.4.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.10.4.ebuild index faa1cdbba6b..4a382c15cb5 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.10.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.10.4.ebuild @@ -18,7 +18,7 @@ else 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 ~x64-macos" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86 ~x64-macos" fi LICENSE="GPL-3+" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/sandbox/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/sandbox/Manifest index b2865408d43..63f6ea36697 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/sandbox/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/sandbox/Manifest @@ -1,2 +1,4 @@ -DIST sandbox-2.39.tar.xz 462796 BLAKE2B 330c6f896eba6ff2a38eb8a5d1ff9b242d0e42ab03734254b1851f36cc851c32e7ed3d32afe07374b6e264cb0a922d25b010af5269f60fc5142b9036008f0945 SHA512 5eed5d828eb904b15d52736ea8835128e805f0274f2152d033ae6d93f1df3bc1f50ed23d7544c37ee06b14cb2c301110730e1de3097d6f7032069ef8dbbbd28c DIST sandbox-2.46.tar.xz 448188 BLAKE2B 42fcd5ff7e9592d5df4e807f7dec79510ecc03f217051256bcd4f912117d8e7f1422910ae30d21426a18e7a187a447f162f5040b7ac1e29c5039e9cc9efd3b9e SHA512 462545d60820e790828f0611b39746cd4fa6541beaa7c3edb660213946f1bd50334d9a99aed059cae871c3c8d2917bf7db850fee53fb8ac125bf137baf8b923d +DIST sandbox-2.47.tar.xz 449236 BLAKE2B 46482dcb38fbcbb44704e9ebf6ee24036114af13de998d4ef371f14f1d96e240b8c430cd9f3e4ec8478cd41e3c8e28d8fd4953752c144e3d1d720c2d83c07a9c SHA512 2a70e31d1f058e134ff7331e2657b5064959699a56c0cd8d0956e7fefe5955a85e73fd9543742c9db5bc6494ff99ec35d58c0fde2c0277bab617ba39344c26a1 +DIST sandbox-2.48.tar.xz 449708 BLAKE2B bc31b7c6913379611778267d53b181675c07664ebdbc98ae1c1c17a49bb2299be3abf7f4c9ef16d4cfaeb27d9666702ac265d37fe929d26c178b5df023c5466e SHA512 3fc796430af375bd3e2f2806710d8c550b2d4546183ea020340ed978dfcdf71e6272749ed526e12afee235fa43d95866ee3161326d391ded8aa66bb3c081ba28 +DIST sandbox-2.49.tar.xz 449676 BLAKE2B e7a9b70f471875cca08ce69573618405cac951b3ed09d5b1bc668e8e36b1f05d8484d9f3f6e38c4a72890336a075ee67559265f153b11401e0a1532fcaec13b4 SHA512 e4de7f30b0ae2dbb17a629d88b74473bf6992e39647fb26f4ade2c238b9a966eb249d6f21312f2143b223d66430d66f12e0ae25c6c439e34ce816cef5ab7c3ac diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/sandbox/sandbox-2.39.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/sandbox/sandbox-2.39.ebuild deleted file mode 100644 index 0c84ba7644d..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/sandbox/sandbox-2.39.ebuild +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -inherit flag-o-matic multilib-minimal multiprocessing - -DESCRIPTION="sandbox'd LD_PRELOAD hack" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Sandbox" -SRC_URI="https://dev.gentoo.org/~floppym/dist/${P}.tar.xz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="+nnp" - -# pax-utils lower bound for bug #265376 -DEPEND=">=app-misc/pax-utils-0.1.19" -# Avoid folks installing with older file, bug #889046. We still need the -# >= dep in Portage but this is a safety net if people do partial upgrades. -RDEPEND="!= dep in Portage but this is a safety net if people do partial upgrades. +RDEPEND="!= dep in Portage but this is a safety net if people do partial upgrades. +RDEPEND="!= dep in Portage but this is a safety net if people do partial upgrades. +RDEPEND="!/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-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/shadow/shadow-4.14.8-r2.ebuild deleted file mode 100644 index 5bfde451c78..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/shadow/shadow-4.14.8-r2.ebuild +++ /dev/null @@ -1,291 +0,0 @@ -# Copyright 1999-2026 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 YESCRYPT - 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.19.4.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/shadow/shadow-4.19.4.ebuild index 910a15e1641..05dc4a2390b 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/shadow/shadow-4.19.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/shadow/shadow-4.19.4.ebuild @@ -20,7 +20,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="BSD GPL-2" # Subslot is for libsubid's SONAME. SLOT="0/5" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE="acl audit nls pam selinux skey split-usr su systemd test xattr" RESTRICT="!test? ( test )" @@ -224,7 +224,7 @@ src_install() { if use kernel_Hurd ; then # sys-kernel/hurd provides this instead - rm "${ED}"/bin/login || die + mv "${ED}"/bin/login "${ED}"/bin/login.shadow || die fi } diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/Manifest index 7eb4b092d30..061d92169a2 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/Manifest @@ -1,4 +1,2 @@ -DIST systemd-258.3.tar.gz 17034328 BLAKE2B 668f5829d78412b256f49c3f46dffad5cf70fa335de3e5ca822bdc13e4f67874ac28005b616e7fdc0f3235f760c68809ae3ac97e1f53d3ca43fb7e0934ec0de9 SHA512 9f4261e1703efd1f38c90e4166e6d85fa9379c99ac7f3c66caa62955c3cbe8a43ab259c261ab20bce0dd84dd682258192ace66b4dee0390bf3740c32f4569fed -DIST systemd-259.3.tar.gz 17285135 BLAKE2B 81a66ec1aadeef14ca8fd53b23a8ebeb9fa23aed4298419fb5cb612c7a8f1b4c33f391a643e4d313dbef0385c339726c8f327306785852c8427416009c944f8d SHA512 ea7314fcde3c0e541c9399f2d165f114bd7bf37cec294680964352da374435ddd3949432f939f35ecb49f0ce6a3b7aaaddf2b65cc8107abc65e2ec3806c99dac DIST systemd-259.4.tar.gz 17336661 BLAKE2B 5e90410698e21e8fc8f5f22e3e26858f51d2cdfc362870f09ecccf8ed882602cdcef2614843738b14601349b05cfd3a8358a1771fc1fcd8e75d831940a8683c8 SHA512 bf572f92b0b01ecaf08f36ea5e13a2c05a79e6c0c2d9ef191855d1b83ae791a2977841ca85541ace1d30945d5f879d703d390767f708294986b29aeda1449b1f -DIST systemd-260.tar.gz 17577889 BLAKE2B 75db560c9d4d8f9ba24f46f70e38a9adc4f8be6ce08a04c900b1d3557739288faf85372b5b1943c59d9be13cdb8dc0fefe09aecb9310211ec479253c7e1aa12b SHA512 2b81a327319c6b06c04742aa8ee5f36ebc7b78aa6db2a82f2a7376fda8bf2079bfc418db290b0522e1d01a3449b3a4e847ebe22d260cc83aeb86a7a4de714d41 +DIST systemd-260.1.tar.gz 17581096 BLAKE2B 072424e7288f8796be1e6952fadc5452c2ab54633b356796a29872609a03b4cc2edbc0cac0df7542bc969b06d265d2cbf52f9174742c5a570a5a3d7a7664cfa8 SHA512 9f975dce6861853a817a7ceab18a24449a85d1bda6939b3a5173430c02a4d8a9a2b34ebb8cce1c51db9b0ff9078fcc65da7b0f44e3bdcbbe013b9e04bb6f0ff9 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/gentoo-journald-audit-r3.patch b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/gentoo-journald-audit-r3.patch deleted file mode 100644 index 291559ff229..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/gentoo-journald-audit-r3.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 0f16422e52ef793407d1cbef0c38eff29d6e251c Mon Sep 17 00:00:00 2001 -From: Mike Gilbert -Date: Wed, 17 Sep 2025 15:40:57 -0400 -Subject: [PATCH] journald: do not change the kernel audit setting by default - -Bug: https://bugs.gentoo.org/736910 ---- - man/journald.conf.xml | 2 +- - src/journal/journald-config.c | 2 +- - src/journal/journald.conf | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/man/journald.conf.xml b/man/journald.conf.xml -index 1d615b110d..4676d674a2 100644 ---- a/man/journald.conf.xml -+++ b/man/journald.conf.xml -@@ -483,7 +483,7 @@ - turn it off. When keep it will neither enable nor disable it, leaving the previous - state unchanged. This means if another tool turns on auditing even if - systemd-journald left it off, it will still collect the generated messages. -- Defaults to yes in the default journal namespace, and keep otherwise. -+ Defaults to keep. - - - -diff --git a/src/journal/journald-config.c b/src/journal/journald-config.c -index 8cffec880b..ea3bb34a76 100644 ---- a/src/journal/journald-config.c -+++ b/src/journal/journald-config.c -@@ -123,7 +123,7 @@ void manager_merge_configs(Manager *m) { - MERGE_NON_NEGATIVE(read_kmsg, !m->namespace); - /* By default, kernel auditing is enabled by the main namespace instance, and not controlled by - * non-default namespace instances. */ -- MERGE_NON_NEGATIVE(set_audit, m->namespace ? AUDIT_KEEP : AUDIT_YES); -+ MERGE_NON_NEGATIVE(set_audit, AUDIT_KEEP); - MERGE_NON_ZERO(sync_interval_usec, DEFAULT_SYNC_INTERVAL_USEC); - - /* TODO: also merge them when comdline or credentials support to configure them. */ -diff --git a/src/journal/journald.conf b/src/journal/journald.conf -index 9a12ca7657..3be3ed7327 100644 ---- a/src/journal/journald.conf -+++ b/src/journal/journald.conf -@@ -47,4 +47,4 @@ - #MaxLevelSocket=debug - #LineMax=48K - #ReadKMsg=yes --#Audit=yes -+#Audit=keep --- -2.51.0 - diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-258-shared-add-missing-alloc-util.patch b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-258-shared-add-missing-alloc-util.patch deleted file mode 100644 index f384b3fece5..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-258-shared-add-missing-alloc-util.patch +++ /dev/null @@ -1,24 +0,0 @@ -https://bugs.gentoo.org/963481 -https://github.com/systemd/systemd/pull/39149 - -From 3df39cedda01dec35e49f1ab5632cf9f325e5320 Mon Sep 17 00:00:00 2001 -From: Xarblu -Date: Fri, 26 Sep 2025 21:40:50 +0200 -Subject: [PATCH] shared: add missing alloc-util.h include - -Needed for _cleanup_free_ ---- - src/shared/password-quality-util-passwdqc.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/shared/password-quality-util-passwdqc.c b/src/shared/password-quality-util-passwdqc.c -index d74e0fb7f2370..844068a4d64a3 100644 ---- a/src/shared/password-quality-util-passwdqc.c -+++ b/src/shared/password-quality-util-passwdqc.c -@@ -1,5 +1,6 @@ - /* SPDX-License-Identifier: LGPL-2.1-or-later */ - -+#include "alloc-util.h" - #include "dlfcn-util.h" - #include "errno-util.h" - #include "log.h" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-258.3-kernel-install-test.patch b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-258.3-kernel-install-test.patch deleted file mode 100644 index b67c9a87f8d..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-258.3-kernel-install-test.patch +++ /dev/null @@ -1,16 +0,0 @@ -Revert for 258.3 of https://github.com/systemd/systemd/pull/39945 as that -commit got backported. It fails because master has the kernel install moved -to /var/tmp and this test change assumed that. - ---- a/src/kernel-install/test-kernel-install.sh -+++ b/src/kernel-install/test-kernel-install.sh -@@ -318,7 +318,7 @@ diff -u <(echo "$output") - >&2 < -Date: Sun, 8 Feb 2026 19:12:30 -0500 -Subject: [PATCH] meson: use printf instead of echo - -The echo builtin provided by some shells (mksh) will interpret \x2d as -an escape sequence. This causes meson to fail: - -``` -test/fuzz/meson.build:93:52: ERROR: File fuzz-unit-file/dm-back-slash.swap does not exist. -``` - -Bug: https://bugs.gentoo.org/969789 ---- - test/fuzz/meson.build | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/test/fuzz/meson.build b/test/fuzz/meson.build -index d4cfc0a5b4816..6f9f43a4105f9 100644 ---- a/test/fuzz/meson.build -+++ b/test/fuzz/meson.build -@@ -42,7 +42,7 @@ if git.found() and fs.is_dir(meson.project_source_root() / '.git') - 'ls-files', ':/@0@/*/*'.format(fuzz_testsdir), - check: true) - else -- out = run_command(sh, '-c', 'cd "@0@"; echo @1@/*/*'.format(meson.project_source_root(), fuzz_testsdir), check: true) -+ out = run_command(sh, '-c', 'cd "@0@"; printf "%s " @1@/*/*'.format(meson.project_source_root(), fuzz_testsdir), check: true) - endif - - # Add crafted fuzz inputs we have in the repo diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-260-kernel-install.patch b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-260-kernel-install.patch deleted file mode 100644 index 7c412373737..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-260-kernel-install.patch +++ /dev/null @@ -1,30 +0,0 @@ -https://bugs.gentoo.org/971388 -https://github.com/systemd/systemd/pull/41225 - -From 54db03334813a16721fa96c59b884f1591c758b5 Mon Sep 17 00:00:00 2001 -From: Robin Ebert -Date: Fri, 20 Mar 2026 13:32:04 +0100 -Subject: [PATCH] kernel-install: fix assert in context_copy - -(cherry picked from commit 55e7dc5ce4999ba9f01499dccdeba0235a86aaa4) ---- - src/kernel-install/kernel-install.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/kernel-install/kernel-install.c b/src/kernel-install/kernel-install.c -index a38dcaab8b556..618fa746c9bed 100644 ---- a/src/kernel-install/kernel-install.c -+++ b/src/kernel-install/kernel-install.c -@@ -152,10 +152,10 @@ static int context_copy(const Context *source, Context *ret) { - - assert(source); - assert(ret); -- assert(source->rfd >= 0 || source->rfd == AT_FDCWD); -+ assert(source->rfd >= 0 || source->rfd == AT_FDCWD || source->rfd == XAT_FDROOT); - - _cleanup_(context_done) Context copy = (Context) { -- .rfd = AT_FDCWD, -+ .rfd = source->rfd, - .action = source->action, - .machine_id = source->machine_id, - .machine_id_is_random = source->machine_id_is_random, diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-260.1-fuzz-journald.patch b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-260.1-fuzz-journald.patch new file mode 100644 index 00000000000..6f3b52f7da1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-260.1-fuzz-journald.patch @@ -0,0 +1,131 @@ +https://bugs.gentoo.org/969103 +https://github.com/systemd/systemd/pull/41753 +https://github.com/systemd/systemd/pull/41773 + +From f6c2e14676f266132772bec078578e344c91440d Mon Sep 17 00:00:00 2001 +From: Chris Hofer +Date: Mon, 20 Apr 2026 16:55:38 +0200 +Subject: [PATCH] build: Compile fuzz-journald-util.c only if want_fuzz_tests + +fuzz-journald-util.c is compiled unconditionally even though fuzzing +tests aren't enabled. Only build it if fuzzing tests are configured. +This also ensure that the functions it uses from src/shared/tests.c are +available. + +Fixes 32bd43d768a4bdd54481c5e37ce9ea3d1009a824 +Closes #39984 + +Signed-off-by: Chris Hofer +--- + src/journal/meson.build | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/src/journal/meson.build b/src/journal/meson.build +index 5f64304219447..1bec605b0ccf0 100644 +--- a/src/journal/meson.build ++++ b/src/journal/meson.build +@@ -19,11 +19,16 @@ systemd_journald_extract_sources = files( + 'journald-syslog.c', + 'journald-varlink.c', + 'journald-wall.c', +- # Build fuzz-journald.c as part of systemd-journald so we only compile it once instead of once per +- # fuzz test. +- 'fuzz-journald-util.c', + ) + ++if want_fuzz_tests ++ # Build fuzz-journald-util.c as part of systemd-journald so we only ++ # compile it once instead of once per fuzz test. ++ systemd_journald_extract_sources += files( ++ 'fuzz-journald-util.c', ++ ) ++endif ++ + journald_gperf_c = custom_target( + input : 'journald-gperf.gperf', + output : 'journald-gperf.c', +From 46776da0314528c1385fcde2bd59f34ba00866fa Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 22 Apr 2026 17:01:45 +0200 +Subject: [PATCH 1/2] meson: concatenate donors specified in 'objects' + +Previously, we'd only honour the last donor. +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 2b717e23966f6..ce25b59ce00c2 100644 +--- a/meson.build ++++ b/meson.build +@@ -2541,7 +2541,7 @@ foreach dict : executables + + foreach val : dict.get('objects', []) + obj = objects_by_name[val] +- kwargs += { 'objects' : obj['objects'] } ++ kwargs += { 'objects' : kwargs.get('objects', []) + obj['objects'] } + include_directories += obj['include_directories'] + endforeach + + +From f397ce001e525ae8f42518835d2ae98fba41fbe9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 22 Apr 2026 16:33:12 +0200 +Subject: [PATCH 2/2] meson: move fuzz-journald-util.c to fuzz-journal-audit + +The .c file is shared between various fuzz-journal-* binaries. It +was added to 32bd43d768a4bdd54481c5e37ce9ea3d1009a824, but that is +somewhat ugly. + +Let's add it to the alphabetially first fuzzer and share from there. + +Follow-up for 32bd43d768a4bdd54481c5e37ce9ea3d1009a824 and +85b5acde869baa51f5618fa503eafac3dccbf379. +--- + src/journal/meson.build | 18 ++++++++---------- + 1 file changed, 8 insertions(+), 10 deletions(-) + +diff --git a/src/journal/meson.build b/src/journal/meson.build +index 1bec605b0ccf0..142d2246c1fe0 100644 +--- a/src/journal/meson.build ++++ b/src/journal/meson.build +@@ -21,14 +21,6 @@ systemd_journald_extract_sources = files( + 'journald-wall.c', + ) + +-if want_fuzz_tests +- # Build fuzz-journald-util.c as part of systemd-journald so we only +- # compile it once instead of once per fuzz test. +- systemd_journald_extract_sources += files( +- 'fuzz-journald-util.c', +- ) +-endif +- + journald_gperf_c = custom_target( + input : 'journald-gperf.gperf', + output : 'journald-gperf.c', +@@ -63,7 +55,10 @@ journal_test_template = test_template + { + } + + journal_fuzz_template = fuzz_template + { +- 'objects' : ['systemd-journald'], ++ 'objects' : [ ++ 'fuzz-journald-audit', ++ 'systemd-journald', ++ ], + 'dependencies' : libselinux_cflags, + } + +@@ -138,8 +133,11 @@ executables += [ + libselinux_cflags, + ], + }, +- journal_fuzz_template + { ++ fuzz_template + { + 'sources' : files('fuzz-journald-audit.c'), ++ # fuzz-journald-util.c is shared with the other fuzzers below. ++ 'extract' : files('fuzz-journald-util.c'), ++ 'objects' : ['systemd-journald'], + }, + journal_fuzz_template + { + 'sources' : files('fuzz-journald-kmsg.c'), diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-260.1-gcc-17.patch b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-260.1-gcc-17.patch new file mode 100644 index 00000000000..a73c6c7957b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-260.1-gcc-17.patch @@ -0,0 +1,45 @@ +From 64b1e6be83f49b9fdebc9e07cc3b7485169970c2 Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich +Date: Tue, 5 May 2026 21:55:30 +0100 +Subject: [PATCH] sd-boot: efi-log: fix `__stack_chk_guard` type + +In https://gcc.gnu.org/PR121911 `gcc` started enforcing the type of +`__stack_chk_guard` to `uintptr_t` and broke `systemd` build as: + +``` +../src/boot/efi-log.c:136:17: error: conflicting types for '__stack_chk_guard'; have 'intptr_t' {aka 'long int'} + 136 | _used_ intptr_t __stack_chk_guard = (intptr_t) 0x70f6967de78acae3; + | ^~~~~~~~~~~~~~~~~ +cc1: note: previous declaration of '__stack_chk_guard' with type 'long unsigned int' +../src/boot/efi-log.c:136:17: error: declaration of '__stack_chk_guard' shadows a global declaration [-Werror=shadow] + 136 | _used_ intptr_t __stack_chk_guard = (intptr_t) 0x70f6967de78acae3; + | ^~~~~~~~~~~~~~~~~ +``` + +Let's match the declaration to unsigned type as suggested by upstream in +https://gcc.gnu.org/PR121911#c6. +--- + src/boot/efi-log.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/boot/efi-log.c b/src/boot/efi-log.c +index ed0a2746933e0..520f985389c55 100644 +--- a/src/boot/efi-log.c ++++ b/src/boot/efi-log.c +@@ -133,7 +133,7 @@ void log_wait(void) { + } + + // NOLINTNEXTLINE(misc-use-internal-linkage) +-_used_ intptr_t __stack_chk_guard = (intptr_t) 0x70f6967de78acae3; ++_used_ uintptr_t __stack_chk_guard = (uintptr_t) 0x70f6967de78acae3; + + /* We can only set a random stack canary if this function attribute is available, + * otherwise this may create a stack check fail. */ +@@ -144,7 +144,7 @@ void __stack_chk_guard_init(void) { + (void) rng->GetRNG(rng, NULL, sizeof(__stack_chk_guard), (void *) &__stack_chk_guard); + else + /* Better than no extra entropy. */ +- __stack_chk_guard ^= (intptr_t) __executable_start; ++ __stack_chk_guard ^= (uintptr_t) __executable_start; + } + #endif diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-260.1-gpt-generator.patch b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-260.1-gpt-generator.patch new file mode 100644 index 00000000000..d85bddcdbfc --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-260.1-gpt-generator.patch @@ -0,0 +1,39 @@ +https://bugs.gentoo.org/973136 +https://github.com/systemd/systemd/issues/41749 +https://github.com/systemd/systemd/pull/41756 +https://github.com/systemd/systemd/commit/1d78c2d327cbd4e738d0f1281a976a771f643517 + +From 1d78c2d327cbd4e738d0f1281a976a771f643517 Mon Sep 17 00:00:00 2001 +From: Nandakumar Raghavan +Date: Tue, 21 Apr 2026 13:14:17 +0000 +Subject: [PATCH] gpt-auto-generator: do not fail on missing libcryptsetup when + verity is not used + +add_veritysetup() is called unconditionally from add_root_mount() and +add_usr_mount() whenever in_initrd() is true, to generate units that +only activate if verity devices appear. However, when compiled without +libcryptsetup, this function returned a hard error, causing the entire +generator to fail even when no verity protection is in use. + +Change the #else fallback to log a debug message and return 0, matching +the pattern already used by add_root_cryptsetup(). +--- + src/gpt-auto-generator/gpt-auto-generator.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/gpt-auto-generator/gpt-auto-generator.c b/src/gpt-auto-generator/gpt-auto-generator.c +index 6716a8d1aaf7c..abbb955e5992e 100644 +--- a/src/gpt-auto-generator/gpt-auto-generator.c ++++ b/src/gpt-auto-generator/gpt-auto-generator.c +@@ -295,8 +295,8 @@ static int add_veritysetup( + + return 0; + #else +- return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), +- "Partition is Verity protected, but systemd-gpt-auto-generator was compiled without libcryptsetup support."); ++ log_warning("Compiled without libcryptsetup support, skipping verity setup for '%s'.", id); ++ return 0; + #endif + } + #endif + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-260.1-openssl-4.patch b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-260.1-openssl-4.patch new file mode 100644 index 00000000000..486e2ee1ff2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-260.1-openssl-4.patch @@ -0,0 +1,81 @@ +https://bugs.gentoo.org/973121 +https://github.com/systemd/systemd/pull/41639 + +From 5fb14a1b88edb0a1d402ad5cf14c7a6b00f682c2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 14 Apr 2026 18:59:07 +0200 +Subject: [PATCH] various: fix compilation with openssl-4.0.0-beta1 + +Various types have been made opaque, so we need to use some accessor +functions. +--- + src/sbsign/sbsign.c | 5 +++-- + src/shared/pkcs11-util.c | 15 ++++++++------- + 2 files changed, 11 insertions(+), 9 deletions(-) + +diff --git a/src/sbsign/sbsign.c b/src/sbsign/sbsign.c +index ee1c0f77ab906..f54dacf65a49d 100644 +--- a/src/sbsign/sbsign.c ++++ b/src/sbsign/sbsign.c +@@ -265,8 +265,9 @@ static int spc_indirect_data_content_new(const void *digest, size_t digestsz, ui + return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to get SpcPeImageData object: %s", + ERR_error_string(ERR_get_error(), NULL)); + +- idc->data->value->value.sequence->data = TAKE_PTR(peidraw); +- idc->data->value->value.sequence->length = peidrawsz; ++ if (!ASN1_STRING_set(idc->data->value->value.sequence, peidraw, peidrawsz)) ++ return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to set ASN1_STRING data."); ++ + idc->messageDigest->digestAlgorithm->algorithm = OBJ_nid2obj(NID_sha256); + if (!idc->messageDigest->digestAlgorithm->algorithm) + return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to get SHA256 object: %s", +diff --git a/src/shared/pkcs11-util.c b/src/shared/pkcs11-util.c +index 165fefbea1ff8..96b25c4ac36b8 100644 +--- a/src/shared/pkcs11-util.c ++++ b/src/shared/pkcs11-util.c +@@ -560,7 +560,11 @@ int pkcs11_token_read_public_key( + return log_debug_errno(SYNTHETIC_ERRNO(EIO), "Failed to init an EVP_PKEY_CTX for EC."); + + OSSL_PARAM ec_params[8] = { +- OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_PUB_KEY, os->data, os->length) ++ /* We need to drop the const from the data param, because ec_params is ++ * modified below. But we'll not modify ec_params[0]. */ ++ OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_PUB_KEY, ++ (unsigned char *) ASN1_STRING_get0_data(os), ++ ASN1_STRING_length(os)), + }; + + _cleanup_free_ void *order = NULL, *p = NULL, *a = NULL, *b = NULL, *generator = NULL; +@@ -663,13 +667,10 @@ int pkcs11_token_read_x509_certificate( + CK_OBJECT_HANDLE object, + X509 **ret_cert) { + +- _cleanup_free_ char *t = NULL; + CK_ATTRIBUTE attribute = { + .type = CKA_VALUE + }; + CK_RV rv; +- _cleanup_(X509_freep) X509 *x509 = NULL; +- X509_NAME *name = NULL; + int r; + + assert(ret_cert); +@@ -695,15 +696,15 @@ int pkcs11_token_read_x509_certificate( + "Failed to read X.509 certificate data off token: %s", sym_p11_kit_strerror(rv)); + + const unsigned char *p = attribute.pValue; +- x509 = d2i_X509(NULL, &p, attribute.ulValueLen); ++ _cleanup_(X509_freep) X509 *x509 = d2i_X509(NULL, &p, attribute.ulValueLen); + if (!x509) + return log_debug_errno(SYNTHETIC_ERRNO(EBADMSG), "Failed to parse X.509 certificate."); + +- name = X509_get_subject_name(x509); ++ const X509_NAME *name = X509_get_subject_name(x509); + if (!name) + return log_debug_errno(SYNTHETIC_ERRNO(EBADMSG), "Failed to acquire X.509 subject name."); + +- t = X509_NAME_oneline(name, NULL, 0); ++ _cleanup_free_ char *t = X509_NAME_oneline(name, NULL, 0); + if (!t) + return log_debug_errno(SYNTHETIC_ERRNO(EIO), "Failed to format X.509 subject name as string."); + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/metadata.xml index 9b7e3ed5150..cbee979b47d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/metadata.xml @@ -22,7 +22,6 @@ Enable portable home directories Enable embedded HTTP server in journald Enable import daemon - Use libiptc from net-firewall/iptables for NAT support in systemd-networkd; this is used only if the running kernel does not support nftables Enable kernel-install Enable kernel module loading via sys-apps/kmod Enable lz4 compression for the journal diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-258.3.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-258.3.ebuild deleted file mode 100644 index 65e000280b6..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-258.3.ebuild +++ /dev/null @@ -1,579 +0,0 @@ -# Copyright 2011-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 -PYTHON_COMPAT=( python3_{11..14} ) - -# Avoid QA warnings -TMPFILES_OPTIONAL=1 -UDEV_OPTIONAL=1 - -QA_PKGCONFIG_VERSION=$(ver_cut 1) - -if [[ ${PV} == 9999 ]]; then - EGIT_REPO_URI="https://github.com/systemd/systemd.git" - inherit git-r3 -else - MY_PV=${PV/_/-} - MY_P=${PN}-${MY_PV} - S=${WORKDIR}/${MY_P} - SRC_URI="https://github.com/systemd/${PN}/archive/refs/tags/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz" - - if [[ ${PV} != *rc* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - fi -fi - -inherit bash-completion-r1 linux-info meson-multilib optfeature pam python-single-r1 -inherit secureboot systemd toolchain-funcs udev - -DESCRIPTION="System and service manager for Linux" -HOMEPAGE="https://systemd.io/" - -LICENSE="GPL-2 LGPL-2.1 MIT public-domain" -SLOT="0/2" -IUSE=" - acl apparmor audit boot bpf cgroup-hybrid cryptsetup curl +dns-over-tls elfutils - fido2 +gcrypt gnutls homed http idn importd iptables +kernel-install +kmod - +lz4 lzma +openssl pam passwdqc pcre pkcs11 policykit pwquality qrcode - +resolvconf +seccomp selinux split-usr sysv-utils test tpm ukify vanilla xkb +zstd -" -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} - dns-over-tls? ( openssl ) - fido2? ( cryptsetup openssl ) - homed? ( cryptsetup pam openssl ) - importd? ( curl lzma openssl ) - ?? ( passwdqc pwquality ) - passwdqc? ( homed ) - pwquality? ( homed ) - boot? ( kernel-install ) - ukify? ( boot ) -" -RESTRICT="!test? ( test )" - -MINKV="4.15" - -COMMON_DEPEND=" - >=sys-apps/util-linux-2.32:0=[${MULTILIB_USEDEP}] - sys-libs/libcap:0=[${MULTILIB_USEDEP}] - virtual/libcrypt:=[${MULTILIB_USEDEP}] - acl? ( sys-apps/acl:0= ) - apparmor? ( >=sys-libs/libapparmor-2.13:0= ) - audit? ( >=sys-process/audit-2:0= ) - bpf? ( >=dev-libs/libbpf-1.4.0:0= ) - cryptsetup? ( >=sys-fs/cryptsetup-2.0.1:0= ) - curl? ( >=net-misc/curl-7.32.0:0= ) - elfutils? ( >=dev-libs/elfutils-0.158:0= ) - fido2? ( - dev-libs/libfido2:0= - ) - gcrypt? ( >=dev-libs/libgcrypt-1.4.5:0=[${MULTILIB_USEDEP}] ) - gnutls? ( >=net-libs/gnutls-3.6.0:0= ) - http? ( >=net-libs/libmicrohttpd-0.9.33:0=[epoll(+)] ) - idn? ( net-dns/libidn2:= ) - importd? ( - app-arch/bzip2:0= - virtual/zlib:= - ) - kmod? ( >=sys-apps/kmod-15:0= ) - lz4? ( >=app-arch/lz4-0_p131:0=[${MULTILIB_USEDEP}] ) - lzma? ( >=app-arch/xz-utils-5.0.5-r1:0=[${MULTILIB_USEDEP}] ) - iptables? ( net-firewall/iptables:0= ) - openssl? ( >=dev-libs/openssl-1.1.0:0= ) - pam? ( sys-libs/pam:=[${MULTILIB_USEDEP}] ) - passwdqc? ( sys-auth/passwdqc:0= ) - pkcs11? ( >=app-crypt/p11-kit-0.23.3:0= ) - pcre? ( dev-libs/libpcre2 ) - pwquality? ( >=dev-libs/libpwquality-1.4.1:0= ) - qrcode? ( >=media-gfx/qrencode-3:0= ) - seccomp? ( >=sys-libs/libseccomp-2.3.3:0= ) - selinux? ( >=sys-libs/libselinux-2.1.9:0= ) - tpm? ( app-crypt/tpm2-tss:0= ) - xkb? ( >=x11-libs/libxkbcommon-0.4.1:0= ) - zstd? ( >=app-arch/zstd-1.4.0:0=[${MULTILIB_USEDEP}] ) -" - -# Newer linux-headers needed by ia64, bug #480218 -DEPEND="${COMMON_DEPEND} - >=sys-kernel/linux-headers-${MINKV} -" - -PEFILE_DEPEND='dev-python/pefile[${PYTHON_USEDEP}]' - -# baselayout-2.2 has /run -RDEPEND="${COMMON_DEPEND} - >=acct-group/adm-0-r1 - >=acct-group/wheel-0-r1 - >=acct-group/kmem-0-r1 - >=acct-group/tty-0-r1 - >=acct-group/utmp-0-r1 - >=acct-group/audio-0-r1 - >=acct-group/cdrom-0-r1 - acct-group/clock - >=acct-group/dialout-0-r1 - >=acct-group/disk-0-r1 - >=acct-group/input-0-r1 - >=acct-group/kvm-0-r1 - >=acct-group/lp-0-r1 - >=acct-group/render-0-r1 - acct-group/sgx - >=acct-group/tape-0-r1 - acct-group/users - >=acct-group/video-0-r1 - >=acct-group/systemd-journal-0-r1 - >=acct-user/root-0-r1 - acct-user/nobody - >=acct-user/systemd-journal-remote-0-r1 - >=acct-user/systemd-coredump-0-r1 - >=acct-user/systemd-network-0-r1 - acct-user/systemd-oom - >=acct-user/systemd-resolve-0-r1 - >=acct-user/systemd-timesync-0-r1 - >=sys-apps/baselayout-2.2 - ukify? ( - ${PYTHON_DEPS} - $(python_gen_cond_dep "${PEFILE_DEPEND}") - ) - selinux? ( - sec-policy/selinux-base-policy[systemd] - sec-policy/selinux-ntp - ) - sysv-utils? ( - !sys-apps/openrc[sysv-utils(-)] - !sys-apps/sysvinit - ) - !sysv-utils? ( sys-apps/sysvinit ) - resolvconf? ( !net-dns/openresolv ) - !sys-apps/hwids[udev] - !sys-auth/nss-myhostname - !sys-fs/eudev - !sys-fs/udev -" - -# sys-apps/dbus: the daemon only (+ build-time lib dep for tests) -PDEPEND=">=sys-apps/dbus-1.9.8[systemd] - >=sys-fs/udev-init-scripts-34 - policykit? ( sys-auth/polkit ) - !vanilla? ( sys-apps/gentoo-systemd-integration )" - -BDEPEND=" - app-arch/xz-utils:0 - dev-util/gperf - >=dev-build/meson-0.46 - >=sys-apps/coreutils-8.16 - sys-devel/gettext - virtual/pkgconfig - bpf? ( - >=dev-util/bpftool-7.0.0 - sys-devel/bpf-toolchain - ) - test? ( - app-text/tree - dev-lang/perl - sys-apps/dbus - ) - app-text/docbook-xml-dtd:4.2 - app-text/docbook-xml-dtd:4.5 - app-text/docbook-xsl-stylesheets - dev-libs/libxslt:0 - ${PYTHON_DEPS} - $(python_gen_cond_dep " - dev-python/jinja2[\${PYTHON_USEDEP}] - dev-python/lxml[\${PYTHON_USEDEP}] - boot? ( - >=dev-python/pyelftools-0.30[\${PYTHON_USEDEP}] - test? ( ${PEFILE_DEPEND} ) - ) - ") -" - -QA_FLAGS_IGNORED="usr/lib/systemd/boot/efi/.*" -QA_EXECSTACK="usr/lib/systemd/boot/efi/*" - -check_cgroup_layout() { - # https://bugs.gentoo.org/935261 - [[ ${MERGE_TYPE} != buildonly ]] || return - [[ -z ${ROOT} ]] || return - [[ -e /sys/fs/cgroup/unified ]] || return - grep -q 'SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1' /proc/cmdline && return - - eerror "This system appears to be booted with the 'hybrid' cgroup layout." - eerror "This layout obsolete and is disabled in systemd." - - if grep -qF 'systemd.unified_cgroup_hierarchy'; then - eerror "Remove the systemd.unified_cgroup_hierarchy option" - eerror "from the kernel command line and reboot." - die "hybrid cgroup layout detected" - fi -} - -pkg_pretend() { - if use split-usr; then - eerror "Please complete the migration to merged-usr." - eerror "https://wiki.gentoo.org/wiki/Merge-usr" - die "systemd no longer supports split-usr" - fi - - check_cgroup_layout - - if use cgroup-hybrid; then - eerror "Disable the 'cgroup-hybrid' USE flag." - eerror "Rebuild any initramfs images after rebuilding systemd." - die "cgroup-hybrid is no longer supported" - fi - - if [[ ${MERGE_TYPE} != buildonly ]]; then - local CONFIG_CHECK="~BLK_DEV_BSG ~CGROUPS - ~CGROUP_BPF ~DEVTMPFS ~EPOLL ~FANOTIFY ~FHANDLE - ~INOTIFY_USER ~IPV6 ~NET ~NET_NS ~PROC_FS ~SIGNALFD ~SYSFS - ~TIMERFD ~TMPFS_XATTR ~UNIX ~USER_NS - ~CRYPTO_HMAC ~CRYPTO_SHA256 ~CRYPTO_USER_API_HASH - ~!GRKERNSEC_PROC ~!IDE ~!SYSFS_DEPRECATED - ~!SYSFS_DEPRECATED_V2" - - use acl && CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" - use bpf && CONFIG_CHECK+=" ~BPF ~BPF_SYSCALL ~BPF_LSM ~DEBUG_INFO_BTF" - use seccomp && CONFIG_CHECK+=" ~SECCOMP ~SECCOMP_FILTER" - - if kernel_is -ge 5 10 20; then - CONFIG_CHECK+=" ~KCMP" - else - CONFIG_CHECK+=" ~CHECKPOINT_RESTORE" - fi - - if kernel_is -ge 4 18; then - CONFIG_CHECK+=" ~AUTOFS_FS" - else - CONFIG_CHECK+=" ~AUTOFS4_FS" - fi - - if linux_config_exists; then - local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH) - if [[ -n ${uevent_helper_path} ]] && [[ ${uevent_helper_path} != '""' ]]; then - ewarn "It's recommended to set an empty value to the following kernel config option:" - ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}" - fi - if linux_chkconfig_present X86; then - CONFIG_CHECK+=" ~DMIID" - fi - fi - - if kernel_is -lt ${MINKV//./ }; then - ewarn "Kernel version at least ${MINKV} required" - fi - - check_extra_config - fi -} - -pkg_setup() { - use boot && secureboot_pkg_setup -} - -src_unpack() { - default - [[ ${PV} != 9999 ]] || git-r3_src_unpack -} - -src_prepare() { - local PATCHES=( - "${FILESDIR}/systemd-258-shared-add-missing-alloc-util.patch" - "${FILESDIR}/systemd-258.3-kernel-install-test.patch" - "${FILESDIR}/systemd-259-test-echo.patch" - ) - - if ! use vanilla; then - PATCHES+=( - "${FILESDIR}/gentoo-journald-audit-r3.patch" - ) - fi - - default -} - -src_configure() { - # Prevent conflicts with i686 cross toolchain, bug 559726 - tc-export AR CC NM OBJCOPY RANLIB - - python_setup - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --localstatedir="${EPREFIX}/var" - -Ddocdir="share/doc/${PF}" - # default is developer, bug 918671 - -Dmode=release - -Dsupport-url="https://gentoo.org/support/" - -Dpamlibdir="$(getpam_mod_dir)" - # avoid bash-completion dep - -Dbashcompletiondir="$(get_bashcompdir)" - -Dsplit-bin=false - # Disable compatibility with sysvinit - -Dsysvinit-path= - -Dsysvrcnd-path= - # no deps - -Dima=true - # Match /etc/shells, bug 919749 - -Ddebug-shell="${EPREFIX}/bin/sh" - -Ddefault-user-shell="${EPREFIX}/bin/bash" - # Optional components/dependencies - $(meson_native_use_feature acl) - $(meson_native_use_feature apparmor) - $(meson_native_use_feature audit) - $(meson_native_use_feature boot bootloader) - $(meson_native_use_feature bpf bpf-framework) - -Dbpf-compiler=gcc - $(meson_native_use_feature cryptsetup libcryptsetup) - $(meson_native_use_feature curl libcurl) - $(meson_native_use_bool dns-over-tls dns-over-tls) - $(meson_native_use_feature elfutils) - $(meson_native_use_feature fido2 libfido2) - $(meson_feature gcrypt) - $(meson_native_use_feature gnutls) - $(meson_native_use_feature homed) - $(meson_native_use_feature http microhttpd) - $(meson_native_use_bool idn) - $(meson_native_use_feature importd) - $(meson_native_use_feature importd bzip2) - $(meson_native_use_feature importd zlib) - $(meson_native_use_bool kernel-install) - $(meson_native_use_feature kmod) - $(meson_feature lz4) - $(meson_feature lzma xz) - $(meson_use test tests) - $(meson_feature zstd) - $(meson_native_use_feature iptables libiptc) - $(meson_native_use_feature openssl) - $(meson_feature pam) - $(meson_native_use_feature passwdqc) - $(meson_native_use_feature pkcs11 p11kit) - $(meson_native_use_feature pcre pcre2) - $(meson_native_use_feature policykit polkit) - $(meson_native_use_feature pwquality) - $(meson_native_use_feature qrcode qrencode) - $(meson_native_use_feature seccomp) - $(meson_native_use_feature selinux) - $(meson_native_use_feature tpm tpm2) - $(meson_native_use_feature test dbus) - $(meson_native_use_feature ukify) - $(meson_native_use_feature xkb xkbcommon) - -Dntp-servers="0.gentoo.pool.ntp.org 1.gentoo.pool.ntp.org 2.gentoo.pool.ntp.org 3.gentoo.pool.ntp.org" - # Breaks screen, tmux, etc. - -Ddefault-kill-user-processes=false - -Dcreate-log-dirs=false - - # multilib options - $(meson_native_true backlight) - $(meson_native_true binfmt) - $(meson_native_true coredump) - $(meson_native_true environment-d) - $(meson_native_true firstboot) - $(meson_native_true hibernate) - $(meson_native_true hostnamed) - $(meson_native_true ldconfig) - $(meson_native_true localed) - $(meson_native_enabled man) - $(meson_native_true networkd) - $(meson_native_true quotacheck) - $(meson_native_true randomseed) - $(meson_native_true rfkill) - $(meson_native_true sysusers) - $(meson_native_true timedated) - $(meson_native_true timesyncd) - $(meson_native_true tmpfiles) - $(meson_native_true vconsole) - ) - - case $(tc-arch) in - amd64|arm|arm64|loong|ppc|ppc64|riscv|s390|x86) - # src/vmspawn/vmspawn-util.h: QEMU_MACHINE_TYPE - myconf+=( $(meson_native_enabled vmspawn) ) ;; - *) - myconf+=( -Dvmspawn=disabled ) ;; - esac - - meson_src_configure "${myconf[@]}" -} - -multilib_src_test() { - ( - unset DBUS_SESSION_BUS_ADDRESS XDG_RUNTIME_DIR - export COLUMNS=80 - addpredict /dev - addpredict /proc - addpredict /run - addpredict /sys/fs/cgroup - meson_src_test --timeout-multiplier=10 - ) || die -} - -multilib_src_install_all() { - einstalldocs - dodoc "${FILESDIR}"/nsswitch.conf - - insinto /usr/lib/tmpfiles.d - doins "${FILESDIR}"/legacy.conf - - if ! use resolvconf; then - rm -f "${ED}"/usr/bin/resolvconf || die - fi - - if ! use sysv-utils; then - rm "${ED}"/usr/bin/{halt,init,poweroff,reboot,shutdown} || die - rm "${ED}"/usr/share/man/man1/init.1 || die - rm "${ED}"/usr/share/man/man8/{halt,poweroff,reboot,shutdown}.8 || die - fi - - # https://bugs.gentoo.org/761763 - rm -r "${ED}"/usr/lib/sysusers.d || die - - # Preserve empty dirs in /etc & /var, bug #437008 - keepdir /etc/{binfmt.d,modules-load.d,tmpfiles.d} - keepdir /etc/kernel/install.d - keepdir /etc/systemd/{network,system,user} - keepdir /etc/udev/rules.d - - keepdir /etc/udev/hwdb.d - - keepdir /usr/lib/systemd/{system-sleep,system-shutdown} - keepdir /usr/lib/{binfmt.d,modules-load.d} - keepdir /usr/lib/systemd/user-generators - keepdir /var/lib/systemd - keepdir /var/log/journal - - if use pam; then - if use selinux; then - newpamd "${FILESDIR}"/systemd-user-selinux.pam systemd-user - else - newpamd "${FILESDIR}"/systemd-user.pam systemd-user - fi - fi - - if use kernel-install; then - # Dummy config, remove to make room for sys-kernel/installkernel - rm "${ED}/usr/lib/kernel/install.conf" || die - fi - - use ukify && python_fix_shebang "${ED}" - use boot && secureboot_auto_sign -} - -migrate_locale() { - local envd_locale_def="${EROOT}/etc/env.d/02locale" - local envd_locale=( "${EROOT}"/etc/env.d/??locale ) - local locale_conf="${EROOT}/etc/locale.conf" - - if [[ ! -L ${locale_conf} && ! -e ${locale_conf} ]]; then - # If locale.conf does not exist... - if [[ -e ${envd_locale} ]]; then - # ...either copy env.d/??locale if there's one - ebegin "Moving ${envd_locale} to ${locale_conf}" - mv "${envd_locale}" "${locale_conf}" - eend ${?} || FAIL=1 - else - # ...or create a dummy default - ebegin "Creating ${locale_conf}" - cat > "${locale_conf}" <<-EOF - # This file has been created by the sys-apps/systemd ebuild. - # See locale.conf(5) and localectl(1). - - # LANG=${LANG} - EOF - eend ${?} || FAIL=1 - fi - fi - - if [[ ! -L ${envd_locale} ]]; then - # now, if env.d/??locale is not a symlink (to locale.conf)... - if [[ -e ${envd_locale} ]]; then - # ...warn the user that he has duplicate locale settings - ewarn - ewarn "To ensure consistent behavior, you should replace ${envd_locale}" - ewarn "with a symlink to ${locale_conf}. Please migrate your settings" - ewarn "and create the symlink with the following command:" - ewarn "ln -s -n -f ../locale.conf ${envd_locale}" - ewarn - else - # ...or just create the symlink if there's nothing here - ebegin "Creating ${envd_locale_def} -> ../locale.conf symlink" - ln -n -s ../locale.conf "${envd_locale_def}" - eend ${?} || FAIL=1 - fi - fi -} - -pkg_preinst() { - if [[ -e ${EROOT}/etc/sysctl.conf ]]; then - # Symlink /etc/sysctl.conf for easy migration. - dosym ../../../etc/sysctl.conf /usr/lib/sysctl.d/99-sysctl.conf - fi - - if ! use boot && has_version "sys-apps/systemd[gnuefi(-)]"; then - ewarn "The 'gnuefi' USE flag has been renamed to 'boot'." - ewarn "Make sure to enable the 'boot' USE flag if you use systemd-boot." - fi -} - -pkg_postinst() { - systemd_update_catalog - - # Keep this here in case the database format changes so it gets updated - # when required. - systemd-hwdb --root="${ROOT}" update - - udev_reload || FAIL=1 - - # Bug 465468, make sure locales are respected, and ensure consistency - # between OpenRC & systemd - migrate_locale - - if [[ -z ${REPLACING_VERSIONS} ]]; then - if type systemctl &>/dev/null; then - systemctl --root="${ROOT:-/}" enable getty@.service remote-fs.target || FAIL=1 - fi - elog "To enable a useful set of services, run the following:" - elog " systemctl preset-all --preset-mode=enable-only" - fi - - if [[ -L ${EROOT}/var/lib/systemd/timesync ]]; then - rm "${EROOT}/var/lib/systemd/timesync" - fi - - if [[ -z ${ROOT} && -d /run/systemd/system ]]; then - ebegin "Reexecuting system manager (systemd)" - systemctl daemon-reexec - eend $? || FAIL=1 - - # https://lists.freedesktop.org/archives/systemd-devel/2024-June/050466.html - ebegin "Signaling user managers to reexec" - systemctl kill --kill-whom='main' --signal='SIGRTMIN+25' 'user@*.service' - eend $? - fi - - if [[ ${FAIL} ]]; then - eerror "One of the postinst commands failed. Please check the postinst output" - eerror "for errors. You may need to clean up your system and/or try installing" - eerror "systemd again." - eerror - fi - - if use boot; then - optfeature "installing kernels in systemd-boot's native layout and update loader entries" \ - "sys-kernel/installkernel[systemd-boot]" - fi - if use ukify; then - optfeature "generating unified kernel image on each kernel installation" \ - "sys-kernel/installkernel[ukify]" - fi -} - -pkg_prerm() { - # If removing systemd completely, remove the catalog database. - if [[ ! ${REPLACED_BY_VERSION} ]]; then - rm -f -v "${EROOT}"/var/lib/systemd/catalog/database - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-259.3-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-259.3-r2.ebuild deleted file mode 100644 index 248bed28255..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-259.3-r2.ebuild +++ /dev/null @@ -1,585 +0,0 @@ -# Copyright 2011-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 -PYTHON_COMPAT=( python3_{11..14} ) - -# Avoid QA warnings -TMPFILES_OPTIONAL=1 -UDEV_OPTIONAL=1 - -QA_PKGCONFIG_VERSION=$(ver_cut 1) - -if [[ ${PV} == 9999 ]]; then - EGIT_REPO_URI="https://github.com/systemd/systemd.git" - inherit git-r3 -else - MY_PV=${PV/_/-} - MY_P=${PN}-${MY_PV} - S=${WORKDIR}/${MY_P} - SRC_URI="https://github.com/systemd/${PN}/archive/refs/tags/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz" - - if [[ ${PV} != *rc* ]] ; then - KEYWORDS="amd64 arm arm64 ppc ppc64 ~s390 x86" - fi -fi - -inherit branding linux-info meson-multilib optfeature pam python-single-r1 -inherit secureboot shell-completion systemd toolchain-funcs udev - -DESCRIPTION="System and service manager for Linux" -HOMEPAGE="https://systemd.io/" - -LICENSE="GPL-2 LGPL-2.1 MIT public-domain" -SLOT="0/2" -IUSE=" - acl apparmor audit boot bpf cgroup-hybrid cryptsetup curl +dns-over-tls elfutils - fido2 +gcrypt gnutls homed http idn importd +kernel-install +kmod - +lz4 lzma +openssl pam passwdqc pcre pkcs11 policykit pwquality qrcode - +resolvconf +seccomp selinux split-usr sysv-utils test tpm ukify vanilla xkb +zstd -" -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} - dns-over-tls? ( openssl ) - fido2? ( cryptsetup openssl ) - homed? ( cryptsetup pam openssl ) - importd? ( curl lzma openssl ) - ?? ( passwdqc pwquality ) - passwdqc? ( homed ) - pwquality? ( homed ) - boot? ( kernel-install ) - ukify? ( boot ) -" -RESTRICT="!test? ( test )" - -MINKV="4.15" - -COMMON_DEPEND=" - >=sys-apps/util-linux-2.32:0=[${MULTILIB_USEDEP}] - sys-libs/libcap:0=[${MULTILIB_USEDEP}] - virtual/libcrypt:=[${MULTILIB_USEDEP}] - acl? ( sys-apps/acl:0= ) - apparmor? ( >=sys-libs/libapparmor-2.13:0= ) - audit? ( >=sys-process/audit-2:0= ) - bpf? ( >=dev-libs/libbpf-1.4.0:0= ) - cryptsetup? ( >=sys-fs/cryptsetup-2.0.1:0= ) - curl? ( >=net-misc/curl-7.32.0:0= ) - elfutils? ( >=dev-libs/elfutils-0.158:0= ) - fido2? ( - dev-libs/libfido2:0= - ) - gcrypt? ( >=dev-libs/libgcrypt-1.4.5:0=[${MULTILIB_USEDEP}] ) - gnutls? ( >=net-libs/gnutls-3.6.0:0= ) - http? ( >=net-libs/libmicrohttpd-0.9.33:0=[epoll(+)] ) - idn? ( net-dns/libidn2:= ) - importd? ( - app-arch/bzip2:0= - virtual/zlib:= - ) - kmod? ( >=sys-apps/kmod-15:0= ) - lz4? ( >=app-arch/lz4-0_p131:0=[${MULTILIB_USEDEP}] ) - lzma? ( >=app-arch/xz-utils-5.0.5-r1:0=[${MULTILIB_USEDEP}] ) - openssl? ( >=dev-libs/openssl-1.1.0:0= ) - pam? ( sys-libs/pam:=[${MULTILIB_USEDEP}] ) - passwdqc? ( sys-auth/passwdqc:0= ) - pkcs11? ( >=app-crypt/p11-kit-0.23.3:0= ) - pcre? ( dev-libs/libpcre2 ) - pwquality? ( >=dev-libs/libpwquality-1.4.1:0= ) - qrcode? ( >=media-gfx/qrencode-3:0= ) - seccomp? ( >=sys-libs/libseccomp-2.3.3:0= ) - selinux? ( >=sys-libs/libselinux-2.1.9:0= ) - tpm? ( app-crypt/tpm2-tss:0= ) - xkb? ( >=x11-libs/libxkbcommon-0.4.1:0= ) - zstd? ( >=app-arch/zstd-1.4.0:0=[${MULTILIB_USEDEP}] ) -" - -# Newer linux-headers needed by ia64, bug #480218 -DEPEND="${COMMON_DEPEND} - >=sys-kernel/linux-headers-${MINKV} -" - -PEFILE_DEPEND='dev-python/pefile[${PYTHON_USEDEP}]' - -# baselayout-2.2 has /run -RDEPEND="${COMMON_DEPEND} - >=acct-group/adm-0-r1 - >=acct-group/wheel-0-r1 - >=acct-group/kmem-0-r1 - >=acct-group/tty-0-r1 - >=acct-group/utmp-0-r1 - >=acct-group/audio-0-r1 - >=acct-group/cdrom-0-r1 - acct-group/clock - >=acct-group/dialout-0-r1 - >=acct-group/disk-0-r1 - >=acct-group/input-0-r1 - >=acct-group/kvm-0-r1 - >=acct-group/lp-0-r1 - >=acct-group/render-0-r1 - acct-group/sgx - >=acct-group/tape-0-r1 - acct-group/users - >=acct-group/video-0-r1 - >=acct-group/systemd-journal-0-r1 - >=acct-user/root-0-r1 - acct-user/nobody - >=acct-user/systemd-journal-remote-0-r1 - >=acct-user/systemd-coredump-0-r1 - >=acct-user/systemd-network-0-r1 - acct-user/systemd-oom - >=acct-user/systemd-resolve-0-r1 - >=acct-user/systemd-timesync-0-r1 - >=sys-apps/baselayout-2.2 - elibc_musl? ( >=sys-libs/musl-1.2.5-r8 ) - ukify? ( - ${PYTHON_DEPS} - $(python_gen_cond_dep "${PEFILE_DEPEND}") - ) - selinux? ( - sec-policy/selinux-base-policy[systemd] - sec-policy/selinux-ntp - ) - sysv-utils? ( - !sys-apps/openrc[sysv-utils(-)] - !sys-apps/sysvinit - ) - !sysv-utils? ( sys-apps/sysvinit ) - resolvconf? ( !net-dns/openresolv ) - !sys-auth/nss-myhostname - !sys-fs/eudev - !sys-fs/udev -" - -# sys-apps/dbus: the daemon only (+ build-time lib dep for tests) -PDEPEND=" - >=sys-apps/dbus-1.9.8[systemd] - >=sys-fs/udev-init-scripts-34 - policykit? ( sys-auth/polkit ) - !sysv-utils? ( sys-apps/systemd-initctl ) - !vanilla? ( sys-apps/gentoo-systemd-integration ) -" - -BDEPEND=" - app-arch/xz-utils:0 - dev-util/gperf - >=dev-build/meson-0.46 - >=sys-apps/coreutils-8.16 - sys-devel/gettext - virtual/pkgconfig - bpf? ( - >=dev-util/bpftool-7.0.0 - sys-devel/bpf-toolchain - ) - test? ( - app-text/tree - dev-lang/perl - sys-apps/dbus - ) - app-text/docbook-xml-dtd:4.2 - app-text/docbook-xml-dtd:4.5 - app-text/docbook-xsl-stylesheets - dev-libs/libxslt:0 - ${PYTHON_DEPS} - $(python_gen_cond_dep " - dev-python/jinja2[\${PYTHON_USEDEP}] - dev-python/lxml[\${PYTHON_USEDEP}] - boot? ( - >=dev-python/pyelftools-0.30[\${PYTHON_USEDEP}] - test? ( ${PEFILE_DEPEND} ) - ) - ") -" - -QA_FLAGS_IGNORED="usr/lib/systemd/boot/efi/.*" -QA_EXECSTACK="usr/lib/systemd/boot/efi/*" - -check_cgroup_layout() { - # https://bugs.gentoo.org/935261 - [[ ${MERGE_TYPE} != buildonly ]] || return - [[ -z ${ROOT} ]] || return - [[ -e /sys/fs/cgroup/unified ]] || return - grep -q 'SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1' /proc/cmdline && return - - eerror "This system appears to be booted with the 'hybrid' cgroup layout." - eerror "This layout obsolete and is disabled in systemd." - - if grep -qF 'systemd.unified_cgroup_hierarchy'; then - eerror "Remove the systemd.unified_cgroup_hierarchy option" - eerror "from the kernel command line and reboot." - die "hybrid cgroup layout detected" - fi -} - -pkg_pretend() { - if use split-usr; then - eerror "Please complete the migration to merged-usr." - eerror "https://wiki.gentoo.org/wiki/Merge-usr" - die "systemd no longer supports split-usr" - fi - - check_cgroup_layout - - if use cgroup-hybrid; then - eerror "Disable the 'cgroup-hybrid' USE flag." - eerror "Rebuild any initramfs images after rebuilding systemd." - die "cgroup-hybrid is no longer supported" - fi - - if [[ ${MERGE_TYPE} != buildonly ]]; then - local CONFIG_CHECK="~BLK_DEV_BSG ~CGROUPS - ~CGROUP_BPF ~DEVTMPFS ~EPOLL ~FANOTIFY ~FHANDLE - ~INOTIFY_USER ~IPV6 ~NET ~NET_NS ~PROC_FS ~SIGNALFD ~SYSFS - ~TIMERFD ~TMPFS_XATTR ~UNIX ~USER_NS - ~CRYPTO_HMAC ~CRYPTO_SHA256 ~CRYPTO_USER_API_HASH - ~!GRKERNSEC_PROC ~!IDE ~!SYSFS_DEPRECATED - ~!SYSFS_DEPRECATED_V2" - - use acl && CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" - use bpf && CONFIG_CHECK+=" ~BPF ~BPF_SYSCALL ~BPF_LSM ~DEBUG_INFO_BTF" - use seccomp && CONFIG_CHECK+=" ~SECCOMP ~SECCOMP_FILTER" - - if kernel_is -ge 5 10 20; then - CONFIG_CHECK+=" ~KCMP" - else - CONFIG_CHECK+=" ~CHECKPOINT_RESTORE" - fi - - if kernel_is -ge 4 18; then - CONFIG_CHECK+=" ~AUTOFS_FS" - else - CONFIG_CHECK+=" ~AUTOFS4_FS" - fi - - if linux_config_exists; then - local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH) - if [[ -n ${uevent_helper_path} ]] && [[ ${uevent_helper_path} != '""' ]]; then - ewarn "It's recommended to set an empty value to the following kernel config option:" - ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}" - fi - if linux_chkconfig_present X86; then - CONFIG_CHECK+=" ~DMIID" - fi - fi - - if kernel_is -lt ${MINKV//./ }; then - ewarn "Kernel version at least ${MINKV} required" - fi - - check_extra_config - fi -} - -pkg_setup() { - use boot && secureboot_pkg_setup -} - -src_unpack() { - default - [[ ${PV} != 9999 ]] || git-r3_src_unpack -} - -src_prepare() { - local PATCHES=( - ) - - if ! use vanilla; then - PATCHES+=( - "${FILESDIR}/gentoo-journald-audit-r4.patch" - ) - fi - - default -} - -src_configure() { - # Prevent conflicts with i686 cross toolchain, bug 559726 - tc-export AR CC NM OBJCOPY RANLIB - - python_setup - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --localstatedir="${EPREFIX}/var" - -Ddocdir="share/doc/${PF}" - # default is developer, bug 918671 - -Dmode=release - -Dsupport-url="${BRANDING_OS_SUPPORT_URL}" - -Dpamlibdir="$(getpam_mod_dir)" - -Dlibc=$(usex elibc_musl musl glibc) - # avoid bash-completion dep - -Dbashcompletiondir="$(get_bashcompdir)" - -Dzshcompletiondir="$(get_zshcompdir)" - -Dsplit-bin=false - # Disable compatibility with sysvinit - -Dsysvinit-path= - -Dsysvrcnd-path= - # no deps - -Dima=true - # Match /etc/shells, bug 919749 - -Ddebug-shell="${EPREFIX}/bin/sh" - -Ddefault-user-shell="${EPREFIX}/bin/bash" - # Optional components/dependencies - $(meson_native_use_feature acl) - $(meson_native_use_feature apparmor) - $(meson_native_use_feature audit) - $(meson_native_use_feature boot bootloader) - $(meson_native_use_feature bpf bpf-framework) - -Dbpf-compiler=gcc - $(meson_native_use_feature cryptsetup libcryptsetup) - $(meson_native_use_feature curl libcurl) - $(meson_native_use_bool dns-over-tls dns-over-tls) - $(meson_native_use_feature elfutils) - $(meson_native_use_feature fido2 libfido2) - $(meson_feature gcrypt) - $(meson_native_use_feature gnutls) - $(meson_native_use_feature homed) - $(meson_native_use_feature http microhttpd) - $(meson_native_use_bool idn) - $(meson_native_use_feature importd) - $(meson_native_use_feature importd bzip2) - $(meson_native_use_feature importd zlib) - $(meson_native_use_bool kernel-install) - $(meson_native_use_feature kmod) - $(meson_feature lz4) - $(meson_feature lzma xz) - $(meson_feature zstd) - $(meson_native_use_feature openssl) - $(meson_feature pam) - $(meson_native_use_feature passwdqc) - $(meson_native_use_feature pkcs11 p11kit) - $(meson_native_use_feature pcre pcre2) - $(meson_native_use_feature policykit polkit) - $(meson_native_use_feature pwquality) - $(meson_native_use_feature qrcode qrencode) - $(meson_native_use_feature seccomp) - $(meson_native_use_feature selinux) - $(meson_native_use_feature tpm tpm2) - $(meson_native_use_feature test dbus) - $(meson_native_use_feature ukify) - $(meson_native_use_feature xkb xkbcommon) - -Dntp-servers="0.gentoo.pool.ntp.org 1.gentoo.pool.ntp.org 2.gentoo.pool.ntp.org 3.gentoo.pool.ntp.org" - # Breaks screen, tmux, etc. - -Ddefault-kill-user-processes=false - -Dcreate-log-dirs=false - - # multilib options - $(meson_native_true backlight) - $(meson_native_true binfmt) - $(meson_native_true coredump) - $(meson_native_true environment-d) - $(meson_native_true firstboot) - $(meson_native_true hibernate) - $(meson_native_true hostnamed) - $(meson_native_true ldconfig) - $(meson_native_true localed) - $(meson_native_enabled man) - $(meson_native_true networkd) - $(meson_native_true quotacheck) - $(meson_native_true randomseed) - $(meson_native_true rfkill) - $(meson_native_true sysusers) - $(meson_native_true timedated) - $(meson_native_true timesyncd) - $(meson_native_true tmpfiles) - $(meson_native_true vconsole) - ) - - # workaround for bug 969103 - if [[ ${CHOST} == riscv32* ]] ; then - myconf+=( -Dtests=true ) - else - myconf+=( $(meson_use test tests) ) - fi - - case $(tc-arch) in - amd64|arm|arm64|loong|ppc|ppc64|riscv|s390|x86) - # src/vmspawn/vmspawn-util.h: QEMU_MACHINE_TYPE - myconf+=( $(meson_native_enabled vmspawn) ) ;; - *) - myconf+=( -Dvmspawn=disabled ) ;; - esac - - meson_src_configure "${myconf[@]}" -} - -multilib_src_test() { - ( - unset DBUS_SESSION_BUS_ADDRESS XDG_RUNTIME_DIR - export COLUMNS=80 - addpredict /dev - addpredict /proc - addpredict /run - addpredict /sys/fs/cgroup - meson_src_test --timeout-multiplier=10 - ) || die -} - -multilib_src_install_all() { - einstalldocs - dodoc "${FILESDIR}"/nsswitch.conf - - insinto /usr/lib/tmpfiles.d - doins "${FILESDIR}"/legacy.conf - - if ! use resolvconf; then - rm -f "${ED}"/usr/bin/resolvconf || die - fi - - if ! use sysv-utils; then - rm "${ED}"/usr/bin/{halt,init,poweroff,reboot,shutdown} || die - rm "${ED}"/usr/share/man/man1/init.1 || die - rm "${ED}"/usr/share/man/man8/{halt,poweroff,reboot,shutdown}.8 || die - fi - - # https://bugs.gentoo.org/761763 - rm -r "${ED}"/usr/lib/sysusers.d || die - - # Preserve empty dirs in /etc & /var, bug #437008 - keepdir /etc/{binfmt.d,modules-load.d,tmpfiles.d} - keepdir /etc/kernel/install.d - keepdir /etc/systemd/{network,system,user} - keepdir /etc/udev/rules.d - - keepdir /etc/udev/hwdb.d - - keepdir /usr/lib/systemd/{system-sleep,system-shutdown} - keepdir /usr/lib/{binfmt.d,modules-load.d} - keepdir /usr/lib/systemd/user-generators - keepdir /var/lib/systemd - keepdir /var/log/journal - - if use pam; then - if use selinux; then - newpamd "${FILESDIR}"/systemd-user-selinux.pam systemd-user - else - newpamd "${FILESDIR}"/systemd-user.pam systemd-user - fi - fi - - if use kernel-install; then - # Dummy config, remove to make room for sys-kernel/installkernel - rm "${ED}/usr/lib/kernel/install.conf" || die - fi - - use ukify && python_fix_shebang "${ED}" - use boot && secureboot_auto_sign -} - -migrate_locale() { - local envd_locale_def="${EROOT}/etc/env.d/02locale" - local envd_locale=( "${EROOT}"/etc/env.d/??locale ) - local locale_conf="${EROOT}/etc/locale.conf" - - if [[ ! -L ${locale_conf} && ! -e ${locale_conf} ]]; then - # If locale.conf does not exist... - if [[ -e ${envd_locale} ]]; then - # ...either copy env.d/??locale if there's one - ebegin "Moving ${envd_locale} to ${locale_conf}" - mv "${envd_locale}" "${locale_conf}" - eend ${?} || FAIL=1 - else - # ...or create a dummy default - ebegin "Creating ${locale_conf}" - cat > "${locale_conf}" <<-EOF - # This file has been created by the sys-apps/systemd ebuild. - # See locale.conf(5) and localectl(1). - - # LANG=${LANG} - EOF - eend ${?} || FAIL=1 - fi - fi - - if [[ ! -L ${envd_locale} ]]; then - # now, if env.d/??locale is not a symlink (to locale.conf)... - if [[ -e ${envd_locale} ]]; then - # ...warn the user that he has duplicate locale settings - ewarn - ewarn "To ensure consistent behavior, you should replace ${envd_locale}" - ewarn "with a symlink to ${locale_conf}. Please migrate your settings" - ewarn "and create the symlink with the following command:" - ewarn "ln -s -n -f ../locale.conf ${envd_locale}" - ewarn - else - # ...or just create the symlink if there's nothing here - ebegin "Creating ${envd_locale_def} -> ../locale.conf symlink" - ln -n -s ../locale.conf "${envd_locale_def}" - eend ${?} || FAIL=1 - fi - fi -} - -pkg_preinst() { - if [[ -e ${EROOT}/etc/sysctl.conf ]]; then - # Symlink /etc/sysctl.conf for easy migration. - dosym ../../../etc/sysctl.conf /usr/lib/sysctl.d/99-sysctl.conf - fi - - if ! use boot && has_version "sys-apps/systemd[gnuefi(-)]"; then - ewarn "The 'gnuefi' USE flag has been renamed to 'boot'." - ewarn "Make sure to enable the 'boot' USE flag if you use systemd-boot." - fi -} - -pkg_postinst() { - systemd_update_catalog - - # Keep this here in case the database format changes so it gets updated - # when required. - systemd-hwdb --root="${ROOT}" update - - udev_reload || FAIL=1 - - # Bug 465468, make sure locales are respected, and ensure consistency - # between OpenRC & systemd - migrate_locale - - if [[ -z ${REPLACING_VERSIONS} ]]; then - if type systemctl &>/dev/null; then - systemctl --root="${ROOT:-/}" enable getty@.service remote-fs.target || FAIL=1 - fi - elog "To enable a useful set of services, run the following:" - elog " systemctl preset-all --preset-mode=enable-only" - fi - - if [[ -L ${EROOT}/var/lib/systemd/timesync ]]; then - rm "${EROOT}/var/lib/systemd/timesync" - fi - - if [[ -z ${ROOT} && -d /run/systemd/system ]]; then - ebegin "Reexecuting system manager (systemd)" - systemctl daemon-reexec - eend $? || FAIL=1 - - # https://lists.freedesktop.org/archives/systemd-devel/2024-June/050466.html - ebegin "Signaling user managers to reexec" - systemctl kill --kill-whom='main' --signal='SIGRTMIN+25' 'user@*.service' - eend $? - fi - - if [[ ${FAIL} ]]; then - eerror "One of the postinst commands failed. Please check the postinst output" - eerror "for errors. You may need to clean up your system and/or try installing" - eerror "systemd again." - eerror - fi - - if use boot; then - optfeature "installing kernels in systemd-boot's native layout and update loader entries" \ - "sys-kernel/installkernel[systemd-boot]" - fi - if use ukify; then - optfeature "generating unified kernel image on each kernel installation" \ - "sys-kernel/installkernel[ukify]" - fi -} - -pkg_prerm() { - # If removing systemd completely, remove the catalog database. - if [[ ! ${REPLACED_BY_VERSION} ]]; then - rm -f -v "${EROOT}"/var/lib/systemd/catalog/database - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-259.4-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-259.4-r1.ebuild index 6e24ac13771..84055e8f1da 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-259.4-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-259.4-r1.ebuild @@ -24,7 +24,7 @@ else fi fi -inherit branding linux-info meson-multilib optfeature pam python-single-r1 +inherit branding flag-o-matic linux-info meson-multilib optfeature pam python-single-r1 inherit secureboot shell-completion systemd toolchain-funcs udev DESCRIPTION="System and service manager for Linux" @@ -230,7 +230,6 @@ pkg_pretend() { ~CGROUP_BPF ~DEVTMPFS ~EPOLL ~FANOTIFY ~FHANDLE ~INOTIFY_USER ~IPV6 ~NET ~NET_NS ~PROC_FS ~SIGNALFD ~SYSFS ~TIMERFD ~TMPFS_XATTR ~UNIX ~USER_NS - ~CRYPTO_HMAC ~CRYPTO_SHA256 ~CRYPTO_USER_API_HASH ~!GRKERNSEC_PROC ~!IDE ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2" @@ -296,6 +295,20 @@ src_configure() { # Prevent conflicts with i686 cross toolchain, bug 559726 tc-export AR CC NM OBJCOPY RANLIB + # Our toolchain sets F_S=2 by default w/ >= -O2, so we need + # to unset F_S first, then explicitly set 2, to negate any default + # and anything set by the user if they're choosing 3 (or if they've + # modified GCC to set 3). + # + # malloc_usable_size doesn't play well with _F_S=3: + # https://github.com/systemd/systemd/issues/41459 (bug #971773) + if tc-is-clang && tc-enables-fortify-source ; then + # We can't unconditionally do this b/c we fortify needs + # some level of optimisation. + filter-flags -D_FORTIFY_SOURCE=3 + append-cppflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 + fi + python_setup multilib-minimal_src_configure @@ -530,8 +543,7 @@ pkg_postinst() { # Keep this here in case the database format changes so it gets updated # when required. - systemd-hwdb --root="${ROOT}" update - + udev_hwdb_update || FAIL=1 udev_reload || FAIL=1 # Bug 465468, make sure locales are respected, and ensure consistency diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-260-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-260-r2.ebuild deleted file mode 100644 index 8dda9a83a09..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-260-r2.ebuild +++ /dev/null @@ -1,594 +0,0 @@ -# Copyright 2011-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 -PYTHON_COMPAT=( python3_{11..14} ) - -# Avoid QA warnings -TMPFILES_OPTIONAL=1 -UDEV_OPTIONAL=1 - -QA_PKGCONFIG_VERSION=$(ver_cut 1) - -if [[ ${PV} == 9999 ]]; then - EGIT_REPO_URI="https://github.com/systemd/systemd.git" - inherit git-r3 -else - MY_PV=${PV/_/-} - MY_P=${PN}-${MY_PV} - S=${WORKDIR}/${MY_P} - SRC_URI="https://github.com/systemd/${PN}/archive/refs/tags/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz" - - if [[ ${PV} != *rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - fi -fi - -inherit branding linux-info meson-multilib optfeature pam python-single-r1 -inherit secureboot shell-completion systemd toolchain-funcs udev - -DESCRIPTION="System and service manager for Linux" -HOMEPAGE="https://systemd.io/" - -LICENSE="GPL-2 LGPL-2.1 MIT public-domain" -SLOT="0/2" -IUSE=" - acl apparmor audit boot bpf cryptsetup curl +dns-over-tls elfutils - fido2 +gcrypt gnutls homed idn importd +kernel-install +kmod +lz4 lzma - +openssl pam passwdqc pcre pkcs11 policykit pwquality qrcode remote - +resolvconf +seccomp selinux sysv-utils test tpm ukify vanilla xkb +zstd -" -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} - boot? ( kernel-install ) - dns-over-tls? ( openssl ) - fido2? ( cryptsetup openssl ) - homed? ( cryptsetup pam openssl ) - importd? ( curl lzma openssl ) - ?? ( passwdqc pwquality ) - passwdqc? ( homed ) - pwquality? ( homed ) - remote? ( curl ) - ukify? ( boot ) -" -RESTRICT="!test? ( test )" - -MINKV="5.10" - -COMMON_DEPEND=" - >=sys-apps/util-linux-2.37 - acl? ( sys-apps/acl ) - apparmor? ( >=sys-libs/libapparmor-2.13 ) - audit? ( >=sys-process/audit-2 ) - bpf? ( >=dev-libs/libbpf-1.4.0 ) - cryptsetup? ( >=sys-fs/cryptsetup-2.4.0:= ) - curl? ( >=net-misc/curl-7.32.0:0= ) - elfutils? ( >=dev-libs/elfutils-0.177 ) - elibc_glibc? ( - >=sys-libs/glibc-2.34 - >=sys-libs/libxcrypt-4.4.0 - ) - elibc_musl? ( - >=sys-libs/musl-1.2.5-r8 - virtual/libcrypt - ) - fido2? ( - dev-libs/libfido2 - ) - gcrypt? ( >=dev-libs/libgcrypt-1.4.5 ) - gnutls? ( >=net-libs/gnutls-3.6.0:0= ) - remote? ( >=net-libs/libmicrohttpd-0.9.33:0=[epoll(+)] ) - idn? ( net-dns/libidn2 ) - importd? ( - app-arch/bzip2:0= - virtual/zlib:= - ) - kmod? ( >=sys-apps/kmod-15:0= ) - lz4? ( >=app-arch/lz4-0_p131:0= ) - lzma? ( >=app-arch/xz-utils-5.0.5-r1:0= ) - openssl? ( >=dev-libs/openssl-3.0.0:0= ) - pam? ( sys-libs/pam:=[${MULTILIB_USEDEP}] ) - passwdqc? ( sys-auth/passwdqc ) - pkcs11? ( >=app-crypt/p11-kit-0.23.3 ) - pcre? ( dev-libs/libpcre2 ) - pwquality? ( >=dev-libs/libpwquality-1.4.1 ) - qrcode? ( >=media-gfx/qrencode-3:0= ) - seccomp? ( >=sys-libs/libseccomp-2.4.0 ) - selinux? ( >=sys-libs/libselinux-2.1.9 ) - tpm? ( app-crypt/tpm2-tss ) - xkb? ( >=x11-libs/libxkbcommon-0.4.1 ) - zstd? ( >=app-arch/zstd-1.4.0:0= ) -" - -# Newer linux-headers needed by ia64, bug #480218 -DEPEND="${COMMON_DEPEND} - >=sys-kernel/linux-headers-${MINKV} -" - -PEFILE_DEPEND='dev-python/pefile[${PYTHON_USEDEP}]' - -# baselayout-2.2 has /run -RDEPEND="${COMMON_DEPEND} - >=acct-group/adm-0-r1 - >=acct-group/wheel-0-r1 - >=acct-group/kmem-0-r1 - >=acct-group/tty-0-r1 - >=acct-group/utmp-0-r1 - >=acct-group/audio-0-r1 - >=acct-group/cdrom-0-r1 - acct-group/clock - >=acct-group/dialout-0-r1 - >=acct-group/disk-0-r1 - >=acct-group/input-0-r1 - >=acct-group/kvm-0-r1 - >=acct-group/lp-0-r1 - >=acct-group/render-0-r1 - acct-group/sgx - >=acct-group/tape-0-r1 - acct-group/users - >=acct-group/video-0-r1 - >=acct-group/systemd-journal-0-r1 - >=acct-user/root-0-r1 - acct-user/nobody - >=acct-user/systemd-journal-remote-0-r1 - >=acct-user/systemd-coredump-0-r1 - >=acct-user/systemd-network-0-r1 - acct-user/systemd-oom - >=acct-user/systemd-resolve-0-r1 - >=acct-user/systemd-timesync-0-r1 - >=sys-apps/baselayout-2.2 - ukify? ( - ${PYTHON_DEPS} - $(python_gen_cond_dep "${PEFILE_DEPEND}") - ) - selinux? ( - sec-policy/selinux-base-policy[systemd] - sec-policy/selinux-ntp - ) - sysv-utils? ( - !sys-apps/openrc[sysv-utils(-)] - !sys-apps/sysvinit - ) - !sysv-utils? ( sys-apps/sysvinit ) - resolvconf? ( !net-dns/openresolv ) - !sys-auth/nss-myhostname - !sys-fs/eudev - !sys-fs/udev -" - -# sys-apps/dbus: the daemon only (+ build-time lib dep for tests) -PDEPEND=" - >=sys-apps/dbus-1.9.8[systemd] - >=sys-fs/udev-init-scripts-34 - policykit? ( sys-auth/polkit ) - !sysv-utils? ( sys-apps/systemd-initctl ) - !vanilla? ( sys-apps/gentoo-systemd-integration ) -" - -BDEPEND=" - app-arch/xz-utils:0 - dev-util/gperf - >=dev-build/meson-0.46 - >=sys-apps/coreutils-8.16 - sys-devel/gettext - virtual/pkgconfig - bpf? ( - >=dev-util/bpftool-7.0.0 - sys-devel/bpf-toolchain - ) - test? ( - app-text/tree - dev-lang/perl - >=dev-libs/glib-2.22.0:2 - sys-apps/dbus - ) - app-text/docbook-xml-dtd:4.2 - app-text/docbook-xml-dtd:4.5 - app-text/docbook-xsl-stylesheets - dev-libs/libxslt:0 - ${PYTHON_DEPS} - $(python_gen_cond_dep " - dev-python/jinja2[\${PYTHON_USEDEP}] - dev-python/lxml[\${PYTHON_USEDEP}] - boot? ( - >=dev-python/pyelftools-0.30[\${PYTHON_USEDEP}] - test? ( ${PEFILE_DEPEND} ) - ) - ") -" - -QA_FLAGS_IGNORED="usr/lib/systemd/boot/efi/.*" -QA_EXECSTACK="usr/lib/systemd/boot/efi/*" - -pkg_pretend() { - if [[ ${MERGE_TYPE} != buildonly ]]; then - local CONFIG_CHECK="~BLK_DEV_BSG ~CGROUPS - ~CGROUP_BPF ~DEVTMPFS ~EPOLL ~FANOTIFY ~FHANDLE - ~INOTIFY_USER ~IPV6 ~NET ~NET_NS ~PROC_FS ~SIGNALFD ~SYSFS - ~TIMERFD ~TMPFS_XATTR ~UNIX ~USER_NS - ~CRYPTO_HMAC ~CRYPTO_SHA256 ~CRYPTO_USER_API_HASH - ~!GRKERNSEC_PROC ~!IDE ~!SYSFS_DEPRECATED - ~!SYSFS_DEPRECATED_V2" - - use acl && CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" - use bpf && CONFIG_CHECK+=" ~BPF ~BPF_SYSCALL ~BPF_LSM ~DEBUG_INFO_BTF" - use seccomp && CONFIG_CHECK+=" ~SECCOMP ~SECCOMP_FILTER" - - if kernel_is -ge 5 10 20; then - CONFIG_CHECK+=" ~KCMP" - else - CONFIG_CHECK+=" ~CHECKPOINT_RESTORE" - fi - - if kernel_is -ge 4 18; then - CONFIG_CHECK+=" ~AUTOFS_FS" - else - CONFIG_CHECK+=" ~AUTOFS4_FS" - fi - - if linux_config_exists; then - local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH) - if [[ -n ${uevent_helper_path} ]] && [[ ${uevent_helper_path} != '""' ]]; then - ewarn "It's recommended to set an empty value to the following kernel config option:" - ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}" - fi - if linux_chkconfig_present X86; then - CONFIG_CHECK+=" ~DMIID" - fi - fi - - if kernel_is -lt ${MINKV//./ }; then - ewarn "Kernel version at least ${MINKV} required" - fi - - check_extra_config - fi -} - -pkg_setup() { - use boot && secureboot_pkg_setup -} - -src_unpack() { - default - [[ ${PV} != 9999 ]] || git-r3_src_unpack -} - -src_prepare() { - local PATCHES=( - "${FILESDIR}/systemd-260-mips.patch" - "${FILESDIR}/systemd-260-kernel-install.patch" - ) - - if ! use vanilla; then - PATCHES+=( - "${FILESDIR}/gentoo-journald-audit-r4.patch" - ) - fi - - default -} - -src_configure() { - # Prevent conflicts with i686 cross toolchain, bug 559726 - tc-export AR CC NM OBJCOPY RANLIB - - python_setup - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --localstatedir="${EPREFIX}/var" - -Ddocdir="share/doc/${PF}" - -Dmode=release # default is developer, bug 918671 - -Dlibc=$(usex elibc_musl musl glibc) - -Dsupport-url="${BRANDING_OS_SUPPORT_URL}" - -Dpamlibdir="$(getpam_mod_dir)" - -Dbashcompletiondir="$(get_bashcompdir)" - -Dzshcompletiondir="$(get_zshcompdir)" - -Dsplit-bin=false - -Dima=true # no deps - -Ddebug-shell="${EPREFIX}/bin/sh" # Match /etc/shells, bug 919749 - -Ddefault-user-shell="${EPREFIX}/bin/bash" - -Dbpf-compiler=gcc - -Dntp-servers="0.gentoo.pool.ntp.org 1.gentoo.pool.ntp.org 2.gentoo.pool.ntp.org 3.gentoo.pool.ntp.org" - # Breaks screen, tmux, etc. - -Ddefault-kill-user-processes=false - -Dcreate-log-dirs=false - -Dlibcrypt=enabled - -Dcompat-mutable-uid-boundaries=true - - # options affecting multilib - $(meson_use !elibc_musl nss-myhostname) - $(meson_feature !elibc_musl nss-mymachines) - $(meson_feature !elibc_musl nss-resolve) - $(meson_use !elibc_musl nss-systemd) - $(meson_feature pam) - ) - - # workaround for bug 969103 - if [[ ${CHOST} == riscv32* ]] ; then - myconf+=( -Dtests=true ) - else - myconf+=( $(meson_use test tests) ) - fi - - if multilib_is_native_abi; then - myconf+=( - --auto-features=enabled - -Dman=enabled - -Dxenctrl=disabled - - # Optional components/dependencies - $(meson_feature acl) - $(meson_feature apparmor) - $(meson_feature audit) - $(meson_feature boot bootloader) - $(meson_feature bpf bpf-framework) - $(meson_feature cryptsetup libcryptsetup) - $(meson_feature cryptsetup libcryptsetup-plugins) - $(meson_feature curl libcurl) - $(meson_use dns-over-tls dns-over-tls) - $(meson_feature elfutils) - $(meson_feature fido2 libfido2) - $(meson_feature gcrypt) - $(meson_feature gnutls) - $(meson_feature homed) - $(meson_use idn) - $(meson_feature importd) - $(meson_feature importd bzip2) - $(meson_feature importd sysupdate) - $(meson_feature importd zlib) - $(meson_use kernel-install) - $(meson_feature kmod) - $(meson_feature lz4) - $(meson_feature lzma xz) - $(meson_feature zstd) - $(meson_feature openssl) - $(meson_feature passwdqc) - $(meson_feature pkcs11 p11kit) - $(meson_feature pcre pcre2) - $(meson_feature policykit polkit) - $(meson_feature pwquality) - $(meson_feature qrcode qrencode) - $(meson_feature remote) - $(meson_feature remote microhttpd) - $(meson_feature seccomp) - $(meson_feature selinux) - $(meson_feature tpm tpm2) - $(meson_feature test dbus) - $(meson_feature test glib) - $(meson_feature ukify) - $(meson_feature xkb xkbcommon) - ) - - case $(tc-arch) in - amd64|arm|arm64|loong|ppc|ppc64|riscv|s390|x86) - # src/vmspawn/vmspawn-util.h: QEMU_MACHINE_TYPE - myconf+=( $(meson_native_enabled vmspawn) ) ;; - *) - myconf+=( -Dvmspawn=disabled ) ;; - esac - else - myconf+=( - --auto-features=disabled - ) - fi - - meson_src_configure "${myconf[@]}" -} - -multilib_src_compile() { - local args=() - if ! multilib_is_native_abi; then - args+=( - devel libsystemd libudev - $(usex elibc_musl '' nss) - $(usev pam) - ) - fi - meson_src_compile "${args[@]}" -} - -multilib_src_test() { - local args=( --timeout-multiplier=10 ) - if ! multilib_is_native_abi; then - args+=( - --suite libsystemd --suite libudev - $(usex elibc_musl '' '--suite nss') - $(usex pam '--suite pam' '') - ) - fi - ( - unset DBUS_SESSION_BUS_ADDRESS XDG_RUNTIME_DIR - export COLUMNS=80 - addpredict /dev - addpredict /proc - addpredict /run - addpredict /sys/fs/cgroup - meson_src_test "${args[@]}" - ) || die -} - -multilib_src_install() { - local args=() - if ! multilib_is_native_abi; then - local tags=devel,libsystemd,libudev - use !elibc_musl && tags+=,nss - use pam && tags+=,pam - args+=( --tags "${tags}" ) - fi - meson_src_install "${args[@]}" -} - -multilib_src_install_all() { - einstalldocs - dodoc "${FILESDIR}"/nsswitch.conf - - insinto /usr/lib/tmpfiles.d - doins "${FILESDIR}"/legacy.conf - - if ! use resolvconf; then - rm -f "${ED}"/usr/bin/resolvconf || die - fi - - if ! use sysv-utils; then - rm "${ED}"/usr/bin/{halt,init,poweroff,reboot,shutdown} || die - rm "${ED}"/usr/share/man/man1/init.1 || die - rm "${ED}"/usr/share/man/man8/{halt,poweroff,reboot,shutdown}.8 || die - fi - - # https://bugs.gentoo.org/761763 - rm -r "${ED}"/usr/lib/sysusers.d || die - - # Preserve empty dirs in /etc & /var, bug #437008 - keepdir /etc/{binfmt.d,modules-load.d,tmpfiles.d} - keepdir /etc/kernel/install.d - keepdir /etc/systemd/{network,system,user} - keepdir /etc/udev/rules.d - - keepdir /etc/udev/hwdb.d - - keepdir /usr/lib/systemd/{system-sleep,system-shutdown} - keepdir /usr/lib/{binfmt.d,modules-load.d} - keepdir /usr/lib/systemd/user-generators - keepdir /var/lib/systemd - keepdir /var/log/journal - - if use pam; then - if use selinux; then - newpamd "${FILESDIR}"/systemd-user-selinux.pam systemd-user - else - newpamd "${FILESDIR}"/systemd-user.pam systemd-user - fi - fi - - if use kernel-install; then - # Dummy config, remove to make room for sys-kernel/installkernel - rm "${ED}/usr/lib/kernel/install.conf" || die - fi - - use ukify && python_fix_shebang "${ED}" - use boot && secureboot_auto_sign -} - -migrate_locale() { - local envd_locale_def="${EROOT}/etc/env.d/02locale" - local envd_locale=( "${EROOT}"/etc/env.d/??locale ) - local locale_conf="${EROOT}/etc/locale.conf" - - if [[ ! -L ${locale_conf} && ! -e ${locale_conf} ]]; then - # If locale.conf does not exist... - if [[ -e ${envd_locale} ]]; then - # ...either copy env.d/??locale if there's one - ebegin "Moving ${envd_locale} to ${locale_conf}" - mv "${envd_locale}" "${locale_conf}" - eend ${?} || FAIL=1 - else - # ...or create a dummy default - ebegin "Creating ${locale_conf}" - cat > "${locale_conf}" <<-EOF - # This file has been created by the sys-apps/systemd ebuild. - # See locale.conf(5) and localectl(1). - - # LANG=${LANG} - EOF - eend ${?} || FAIL=1 - fi - fi - - if [[ ! -L ${envd_locale} ]]; then - # now, if env.d/??locale is not a symlink (to locale.conf)... - if [[ -e ${envd_locale} ]]; then - # ...warn the user that he has duplicate locale settings - ewarn - ewarn "To ensure consistent behavior, you should replace ${envd_locale}" - ewarn "with a symlink to ${locale_conf}. Please migrate your settings" - ewarn "and create the symlink with the following command:" - ewarn "ln -s -n -f ../locale.conf ${envd_locale}" - ewarn - else - # ...or just create the symlink if there's nothing here - ebegin "Creating ${envd_locale_def} -> ../locale.conf symlink" - ln -n -s ../locale.conf "${envd_locale_def}" - eend ${?} || FAIL=1 - fi - fi -} - -pkg_preinst() { - if [[ -e ${EROOT}/etc/sysctl.conf ]]; then - # Symlink /etc/sysctl.conf for easy migration. - dosym ../../../etc/sysctl.conf /usr/lib/sysctl.d/99-sysctl.conf - fi - - if ! use boot && has_version "sys-apps/systemd[gnuefi(-)]"; then - ewarn "The 'gnuefi' USE flag has been renamed to 'boot'." - ewarn "Make sure to enable the 'boot' USE flag if you use systemd-boot." - fi -} - -pkg_postinst() { - systemd_update_catalog - - # Keep this here in case the database format changes so it gets updated - # when required. - systemd-hwdb --root="${ROOT}" update - - udev_reload || FAIL=1 - - # Bug 465468, make sure locales are respected, and ensure consistency - # between OpenRC & systemd - migrate_locale - - # Bug 971385 - systemd_reenable getty@.service - - if [[ -z ${REPLACING_VERSIONS} ]]; then - if type systemctl &>/dev/null; then - systemctl --root="${ROOT:-/}" enable getty@.service remote-fs.target || FAIL=1 - fi - elog "To enable a useful set of services, run the following:" - elog " systemctl preset-all --preset-mode=enable-only" - fi - - if [[ -L ${EROOT}/var/lib/systemd/timesync ]]; then - rm "${EROOT}/var/lib/systemd/timesync" - fi - - if [[ -z ${ROOT} && -d /run/systemd/system ]]; then - ebegin "Reexecuting system manager (systemd)" - systemctl daemon-reexec - eend $? || FAIL=1 - - # https://lists.freedesktop.org/archives/systemd-devel/2024-June/050466.html - ebegin "Signaling user managers to reexec" - systemctl kill --kill-whom='main' --signal='SIGRTMIN+25' 'user@*.service' - eend $? - fi - - if [[ ${FAIL} ]]; then - eerror "One of the postinst commands failed. Please check the postinst output" - eerror "for errors. You may need to clean up your system and/or try installing" - eerror "systemd again." - eerror - fi - - if use boot; then - optfeature "installing kernels in systemd-boot's native layout and update loader entries" \ - "sys-kernel/installkernel[systemd-boot]" - fi - if use ukify; then - optfeature "generating unified kernel image on each kernel installation" \ - "sys-kernel/installkernel[ukify]" - fi -} - -pkg_prerm() { - # If removing systemd completely, remove the catalog database. - if [[ ! ${REPLACED_BY_VERSION} ]]; then - rm -f -v "${EROOT}"/var/lib/systemd/catalog/database - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-260.1-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-260.1-r1.ebuild new file mode 100644 index 00000000000..8324e869ac9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-260.1-r1.ebuild @@ -0,0 +1,610 @@ +# Copyright 2011-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{11..14} ) + +# Avoid QA warnings +TMPFILES_OPTIONAL=1 +UDEV_OPTIONAL=1 + +QA_PKGCONFIG_VERSION=$(ver_cut 1) + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://github.com/systemd/systemd.git" + inherit git-r3 +else + MY_PV=${PV/_/-} + MY_P=${PN}-${MY_PV} + S=${WORKDIR}/${MY_P} + SRC_URI="https://github.com/systemd/${PN}/archive/refs/tags/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz" + + if [[ ${PV} != *rc* ]] ; then + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" + fi +fi + +inherit branding flag-o-matic linux-info meson-multilib optfeature pam python-single-r1 +inherit secureboot shell-completion systemd toolchain-funcs udev + +DESCRIPTION="System and service manager for Linux" +HOMEPAGE="https://systemd.io/" + +LICENSE="GPL-2 LGPL-2.1 MIT public-domain" +SLOT="0/2" +IUSE=" + acl apparmor audit boot bpf cryptsetup curl +dns-over-tls elfutils + fido2 +gcrypt gnutls homed idn importd +kernel-install +kmod +libarchive +lz4 lzma + +openssl pam passwdqc pcre pkcs11 policykit pwquality qrcode remote + +resolvconf +seccomp selinux sysv-utils test tpm ukify vanilla xkb +zstd +" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + boot? ( kernel-install ) + dns-over-tls? ( openssl ) + fido2? ( cryptsetup openssl ) + homed? ( cryptsetup pam openssl ) + importd? ( curl lzma openssl ) + ?? ( passwdqc pwquality ) + passwdqc? ( homed ) + pwquality? ( homed ) + remote? ( curl ) + ukify? ( boot ) +" +RESTRICT="!test? ( test )" + +MINKV="5.10" + +COMMON_DEPEND=" + >=sys-apps/util-linux-2.37 + acl? ( sys-apps/acl ) + apparmor? ( >=sys-libs/libapparmor-2.13 ) + audit? ( >=sys-process/audit-2 ) + bpf? ( >=dev-libs/libbpf-1.4.0 ) + cryptsetup? ( >=sys-fs/cryptsetup-2.4.0:= ) + curl? ( >=net-misc/curl-7.32.0:0= ) + elfutils? ( >=dev-libs/elfutils-0.177 ) + elibc_glibc? ( + >=sys-libs/glibc-2.34 + >=sys-libs/libxcrypt-4.4.0 + ) + elibc_musl? ( + >=sys-libs/musl-1.2.5-r8 + virtual/libcrypt + ) + fido2? ( + dev-libs/libfido2 + ) + gcrypt? ( >=dev-libs/libgcrypt-1.4.5 ) + gnutls? ( >=net-libs/gnutls-3.6.0:0= ) + remote? ( >=net-libs/libmicrohttpd-0.9.33:0=[epoll(+)] ) + idn? ( net-dns/libidn2 ) + importd? ( + app-arch/bzip2:0= + virtual/zlib:= + ) + kmod? ( >=sys-apps/kmod-15:0= ) + libarchive? ( >=app-arch/libarchive-3.0:0= ) + lz4? ( >=app-arch/lz4-0_p131:0= ) + lzma? ( >=app-arch/xz-utils-5.0.5-r1:0= ) + openssl? ( >=dev-libs/openssl-3.0.0:0= ) + pam? ( sys-libs/pam:=[${MULTILIB_USEDEP}] ) + passwdqc? ( sys-auth/passwdqc ) + pkcs11? ( >=app-crypt/p11-kit-0.23.3 ) + pcre? ( dev-libs/libpcre2 ) + pwquality? ( >=dev-libs/libpwquality-1.4.1 ) + qrcode? ( >=media-gfx/qrencode-3:0= ) + seccomp? ( >=sys-libs/libseccomp-2.4.0 ) + selinux? ( >=sys-libs/libselinux-2.1.9 ) + tpm? ( app-crypt/tpm2-tss ) + xkb? ( >=x11-libs/libxkbcommon-0.4.1 ) + zstd? ( >=app-arch/zstd-1.4.0:0= ) +" + +# Newer linux-headers needed by ia64, bug #480218 +DEPEND="${COMMON_DEPEND} + >=sys-kernel/linux-headers-${MINKV} +" + +PEFILE_DEPEND='dev-python/pefile[${PYTHON_USEDEP}]' + +# baselayout-2.2 has /run +RDEPEND="${COMMON_DEPEND} + >=acct-group/adm-0-r1 + >=acct-group/wheel-0-r1 + >=acct-group/kmem-0-r1 + >=acct-group/tty-0-r1 + >=acct-group/utmp-0-r1 + >=acct-group/audio-0-r1 + >=acct-group/cdrom-0-r1 + acct-group/clock + >=acct-group/dialout-0-r1 + >=acct-group/disk-0-r1 + >=acct-group/input-0-r1 + >=acct-group/kvm-0-r1 + >=acct-group/lp-0-r1 + >=acct-group/render-0-r1 + acct-group/sgx + >=acct-group/tape-0-r1 + acct-group/users + >=acct-group/video-0-r1 + >=acct-group/systemd-journal-0-r1 + >=acct-user/root-0-r1 + acct-user/nobody + >=acct-user/systemd-journal-remote-0-r1 + >=acct-user/systemd-coredump-0-r1 + >=acct-user/systemd-network-0-r1 + acct-user/systemd-oom + >=acct-user/systemd-resolve-0-r1 + >=acct-user/systemd-timesync-0-r1 + >=sys-apps/baselayout-2.2 + ukify? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep "${PEFILE_DEPEND}") + ) + selinux? ( + sec-policy/selinux-base-policy[systemd] + sec-policy/selinux-ntp + ) + sysv-utils? ( + !sys-apps/openrc[sysv-utils(-)] + !sys-apps/sysvinit + ) + !sysv-utils? ( sys-apps/sysvinit ) + resolvconf? ( !net-dns/openresolv ) + !sys-auth/nss-myhostname + !sys-fs/eudev + !sys-fs/udev +" + +# sys-apps/dbus: the daemon only (+ build-time lib dep for tests) +PDEPEND=" + >=sys-apps/dbus-1.9.8[systemd] + >=sys-fs/udev-init-scripts-34 + policykit? ( sys-auth/polkit ) + !sysv-utils? ( sys-apps/systemd-initctl ) + !vanilla? ( sys-apps/gentoo-systemd-integration ) +" + +BDEPEND=" + app-arch/xz-utils:0 + dev-util/gperf + >=dev-build/meson-0.46 + >=sys-apps/coreutils-8.16 + sys-devel/gettext + virtual/pkgconfig + bpf? ( + >=dev-util/bpftool-7.0.0 + sys-devel/bpf-toolchain + ) + test? ( + app-text/tree + dev-lang/perl + >=dev-libs/glib-2.22.0:2 + sys-apps/dbus + ) + app-text/docbook-xml-dtd:4.2 + app-text/docbook-xml-dtd:4.5 + app-text/docbook-xsl-stylesheets + dev-libs/libxslt:0 + ${PYTHON_DEPS} + $(python_gen_cond_dep " + dev-python/jinja2[\${PYTHON_USEDEP}] + dev-python/lxml[\${PYTHON_USEDEP}] + boot? ( + >=dev-python/pyelftools-0.30[\${PYTHON_USEDEP}] + test? ( ${PEFILE_DEPEND} ) + ) + ") +" + +QA_FLAGS_IGNORED="usr/lib/systemd/boot/efi/.*" +QA_EXECSTACK="usr/lib/systemd/boot/efi/*" + +pkg_pretend() { + if [[ ${MERGE_TYPE} != buildonly ]]; then + local CONFIG_CHECK="~BLK_DEV_BSG ~CGROUPS + ~CGROUP_BPF ~DEVTMPFS ~EPOLL ~FANOTIFY ~FHANDLE + ~INOTIFY_USER ~IPV6 ~NET ~NET_NS ~PROC_FS ~SIGNALFD ~SYSFS + ~TIMERFD ~TMPFS_XATTR ~UNIX ~USER_NS + ~!GRKERNSEC_PROC ~!IDE ~!SYSFS_DEPRECATED + ~!SYSFS_DEPRECATED_V2" + + use acl && CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" + use bpf && CONFIG_CHECK+=" ~BPF ~BPF_SYSCALL ~BPF_LSM ~DEBUG_INFO_BTF" + use seccomp && CONFIG_CHECK+=" ~SECCOMP ~SECCOMP_FILTER" + + if kernel_is -ge 5 10 20; then + CONFIG_CHECK+=" ~KCMP" + else + CONFIG_CHECK+=" ~CHECKPOINT_RESTORE" + fi + + if kernel_is -ge 4 18; then + CONFIG_CHECK+=" ~AUTOFS_FS" + else + CONFIG_CHECK+=" ~AUTOFS4_FS" + fi + + if linux_config_exists; then + local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH) + if [[ -n ${uevent_helper_path} ]] && [[ ${uevent_helper_path} != '""' ]]; then + ewarn "It's recommended to set an empty value to the following kernel config option:" + ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}" + fi + if linux_chkconfig_present X86; then + CONFIG_CHECK+=" ~DMIID" + fi + fi + + if kernel_is -lt ${MINKV//./ }; then + ewarn "Kernel version at least ${MINKV} required" + fi + + check_extra_config + fi +} + +pkg_setup() { + use boot && secureboot_pkg_setup +} + +src_unpack() { + default + [[ ${PV} != 9999 ]] || git-r3_src_unpack +} + +src_prepare() { + local PATCHES=( + "${FILESDIR}/systemd-260.1-fuzz-journald.patch" + "${FILESDIR}/systemd-260.1-openssl-4.patch" + "${FILESDIR}/systemd-260.1-gcc-17.patch" + "${FILESDIR}/systemd-260.1-gpt-generator.patch" + ) + + if ! use vanilla; then + PATCHES+=( + "${FILESDIR}/gentoo-journald-audit-r4.patch" + ) + fi + + default +} + +src_configure() { + # Prevent conflicts with i686 cross toolchain, bug 559726 + tc-export AR CC NM OBJCOPY RANLIB + + # Our toolchain sets F_S=2 by default w/ >= -O2, so we need + # to unset F_S first, then explicitly set 2, to negate any default + # and anything set by the user if they're choosing 3 (or if they've + # modified GCC to set 3). + # + # malloc_usable_size doesn't play well with _F_S=3: + # https://github.com/systemd/systemd/issues/41459 (bug #971773) + if tc-is-clang && tc-enables-fortify-source ; then + # We can't unconditionally do this b/c we fortify needs + # some level of optimisation. + filter-flags -D_FORTIFY_SOURCE=3 + append-cppflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 + fi + + python_setup + + multilib-minimal_src_configure +} + +multilib_src_configure() { + local myconf=( + --localstatedir="${EPREFIX}/var" + -Ddocdir="share/doc/${PF}" + -Dmode=release # default is developer, bug 918671 + -Dlibc=$(usex elibc_musl musl glibc) + -Dsupport-url="${BRANDING_OS_SUPPORT_URL}" + -Dpamlibdir="$(getpam_mod_dir)" + -Dbashcompletiondir="$(get_bashcompdir)" + -Dzshcompletiondir="$(get_zshcompdir)" + -Dsplit-bin=false + -Dima=true # no deps + -Ddebug-shell="${EPREFIX}/bin/sh" # Match /etc/shells, bug 919749 + -Ddefault-user-shell="${EPREFIX}/bin/bash" + -Dbpf-compiler=gcc + -Dntp-servers="0.gentoo.pool.ntp.org 1.gentoo.pool.ntp.org 2.gentoo.pool.ntp.org 3.gentoo.pool.ntp.org" + # Breaks screen, tmux, etc. + -Ddefault-kill-user-processes=false + -Dcreate-log-dirs=false + -Dlibcrypt=enabled + -Dcompat-mutable-uid-boundaries=true + + # options affecting multilib + $(meson_use !elibc_musl nss-myhostname) + $(meson_feature !elibc_musl nss-mymachines) + $(meson_feature !elibc_musl nss-resolve) + $(meson_use !elibc_musl nss-systemd) + $(meson_feature pam) + ) + + # workaround for bug 969103 + if [[ ${CHOST} == riscv32* ]] ; then + myconf+=( -Dtests=true ) + else + myconf+=( $(meson_use test tests) ) + fi + + if multilib_is_native_abi; then + myconf+=( + --auto-features=enabled + -Dman=enabled + -Dxenctrl=disabled + + # Optional components/dependencies + $(meson_feature acl) + $(meson_feature apparmor) + $(meson_feature audit) + $(meson_feature boot bootloader) + $(meson_feature bpf bpf-framework) + $(meson_feature cryptsetup libcryptsetup) + $(meson_feature cryptsetup libcryptsetup-plugins) + $(meson_feature curl libcurl) + $(meson_use dns-over-tls dns-over-tls) + $(meson_feature elfutils) + $(meson_feature fido2 libfido2) + $(meson_feature gcrypt) + $(meson_feature gnutls) + $(meson_feature homed) + $(meson_use idn) + $(meson_feature importd) + $(meson_feature importd bzip2) + $(meson_feature importd sysupdate) + $(meson_feature importd zlib) + $(meson_use kernel-install) + $(meson_feature kmod) + $(meson_feature libarchive) + $(meson_feature lz4) + $(meson_feature lzma xz) + $(meson_feature zstd) + $(meson_feature openssl) + $(meson_feature passwdqc) + $(meson_feature pkcs11 p11kit) + $(meson_feature pcre pcre2) + $(meson_feature policykit polkit) + $(meson_feature pwquality) + $(meson_feature qrcode qrencode) + $(meson_feature remote) + $(meson_feature remote microhttpd) + $(meson_feature seccomp) + $(meson_feature selinux) + $(meson_feature tpm tpm2) + $(meson_feature test dbus) + $(meson_feature test glib) + $(meson_feature ukify) + $(meson_feature xkb xkbcommon) + ) + + case $(tc-arch) in + amd64|arm|arm64|loong|ppc|ppc64|riscv|s390|x86) + # src/vmspawn/vmspawn-util.h: QEMU_MACHINE_TYPE + myconf+=( $(meson_native_enabled vmspawn) ) ;; + *) + myconf+=( -Dvmspawn=disabled ) ;; + esac + else + myconf+=( + --auto-features=disabled + ) + fi + + meson_src_configure "${myconf[@]}" +} + +multilib_src_compile() { + local args=() + if ! multilib_is_native_abi; then + args+=( + devel libsystemd libudev + $(usex elibc_musl '' nss) + $(usev pam) + ) + fi + meson_src_compile "${args[@]}" +} + +multilib_src_test() { + local args=( --timeout-multiplier=10 ) + if ! multilib_is_native_abi; then + args+=( + --suite libsystemd --suite libudev + $(usex elibc_musl '' '--suite nss') + $(usex pam '--suite pam' '') + ) + fi + ( + unset DBUS_SESSION_BUS_ADDRESS XDG_RUNTIME_DIR + export COLUMNS=80 + addpredict /dev + addpredict /proc + addpredict /run + addpredict /sys/fs/cgroup + meson_src_test "${args[@]}" + ) || die +} + +multilib_src_install() { + local args=() + if ! multilib_is_native_abi; then + local tags=devel,libsystemd,libudev + use !elibc_musl && tags+=,nss + use pam && tags+=,pam + args+=( --tags "${tags}" ) + fi + meson_src_install "${args[@]}" +} + +multilib_src_install_all() { + einstalldocs + dodoc "${FILESDIR}"/nsswitch.conf + + insinto /usr/lib/tmpfiles.d + doins "${FILESDIR}"/legacy.conf + + if ! use resolvconf; then + rm -f "${ED}"/usr/bin/resolvconf || die + fi + + if ! use sysv-utils; then + rm "${ED}"/usr/bin/{halt,init,poweroff,reboot,shutdown} || die + rm "${ED}"/usr/share/man/man1/init.1 || die + rm "${ED}"/usr/share/man/man8/{halt,poweroff,reboot,shutdown}.8 || die + fi + + # https://bugs.gentoo.org/761763 + rm -r "${ED}"/usr/lib/sysusers.d || die + + # Preserve empty dirs in /etc & /var, bug #437008 + keepdir /etc/{binfmt.d,modules-load.d,tmpfiles.d} + keepdir /etc/kernel/install.d + keepdir /etc/systemd/{network,system,user} + keepdir /etc/udev/rules.d + + keepdir /etc/udev/hwdb.d + + keepdir /usr/lib/systemd/{system-sleep,system-shutdown} + keepdir /usr/lib/{binfmt.d,modules-load.d} + keepdir /usr/lib/systemd/user-generators + keepdir /var/lib/systemd + keepdir /var/log/journal + + if use pam; then + if use selinux; then + newpamd "${FILESDIR}"/systemd-user-selinux.pam systemd-user + else + newpamd "${FILESDIR}"/systemd-user.pam systemd-user + fi + fi + + if use kernel-install; then + # Dummy config, remove to make room for sys-kernel/installkernel + rm "${ED}/usr/lib/kernel/install.conf" || die + fi + + use ukify && python_fix_shebang "${ED}" + use boot && secureboot_auto_sign +} + +migrate_locale() { + local envd_locale_def="${EROOT}/etc/env.d/02locale" + local envd_locale=( "${EROOT}"/etc/env.d/??locale ) + local locale_conf="${EROOT}/etc/locale.conf" + + if [[ ! -L ${locale_conf} && ! -e ${locale_conf} ]]; then + # If locale.conf does not exist... + if [[ -e ${envd_locale} ]]; then + # ...either copy env.d/??locale if there's one + ebegin "Moving ${envd_locale} to ${locale_conf}" + mv "${envd_locale}" "${locale_conf}" + eend ${?} || FAIL=1 + else + # ...or create a dummy default + ebegin "Creating ${locale_conf}" + cat > "${locale_conf}" <<-EOF + # This file has been created by the sys-apps/systemd ebuild. + # See locale.conf(5) and localectl(1). + + # LANG=${LANG} + EOF + eend ${?} || FAIL=1 + fi + fi + + if [[ ! -L ${envd_locale} ]]; then + # now, if env.d/??locale is not a symlink (to locale.conf)... + if [[ -e ${envd_locale} ]]; then + # ...warn the user that he has duplicate locale settings + ewarn + ewarn "To ensure consistent behavior, you should replace ${envd_locale}" + ewarn "with a symlink to ${locale_conf}. Please migrate your settings" + ewarn "and create the symlink with the following command:" + ewarn "ln -s -n -f ../locale.conf ${envd_locale}" + ewarn + else + # ...or just create the symlink if there's nothing here + ebegin "Creating ${envd_locale_def} -> ../locale.conf symlink" + ln -n -s ../locale.conf "${envd_locale_def}" + eend ${?} || FAIL=1 + fi + fi +} + +pkg_preinst() { + if [[ -e ${EROOT}/etc/sysctl.conf ]]; then + # Symlink /etc/sysctl.conf for easy migration. + dosym ../../../etc/sysctl.conf /usr/lib/sysctl.d/99-sysctl.conf + fi + + if ! use boot && has_version "sys-apps/systemd[gnuefi(-)]"; then + ewarn "The 'gnuefi' USE flag has been renamed to 'boot'." + ewarn "Make sure to enable the 'boot' USE flag if you use systemd-boot." + fi +} + +pkg_postinst() { + systemd_update_catalog + + # Keep this here in case the database format changes so it gets updated + # when required. + udev_hwdb_update || FAIL=1 + udev_reload || FAIL=1 + + # Bug 465468, make sure locales are respected, and ensure consistency + # between OpenRC & systemd + migrate_locale + + # Bug 971385 + systemd_reenable getty@.service + + if [[ -z ${REPLACING_VERSIONS} ]]; then + if type systemctl &>/dev/null; then + systemctl --root="${ROOT:-/}" enable getty@.service remote-fs.target || FAIL=1 + fi + elog "To enable a useful set of services, run the following:" + elog " systemctl preset-all --preset-mode=enable-only" + fi + + if [[ -L ${EROOT}/var/lib/systemd/timesync ]]; then + rm "${EROOT}/var/lib/systemd/timesync" + fi + + if [[ -z ${ROOT} && -d /run/systemd/system ]]; then + ebegin "Reexecuting system manager (systemd)" + systemctl daemon-reexec + eend $? || FAIL=1 + + # https://lists.freedesktop.org/archives/systemd-devel/2024-June/050466.html + ebegin "Signaling user managers to reexec" + systemctl kill --kill-whom='main' --signal='SIGRTMIN+25' 'user@*.service' + eend $? + fi + + if [[ ${FAIL} ]]; then + eerror "One of the postinst commands failed. Please check the postinst output" + eerror "for errors. You may need to clean up your system and/or try installing" + eerror "systemd again." + eerror + fi + + if use boot; then + optfeature "installing kernels in systemd-boot's native layout and update loader entries" \ + "sys-kernel/installkernel[systemd-boot]" + fi + if use ukify; then + optfeature "generating unified kernel image on each kernel installation" \ + "sys-kernel/installkernel[ukify]" + fi +} + +pkg_prerm() { + # If removing systemd completely, remove the catalog database. + if [[ ! ${REPLACED_BY_VERSION} ]]; then + rm -f -v "${EROOT}"/var/lib/systemd/catalog/database + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-9999.ebuild index 1b2f11cf8ff..f77cd773639 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-9999.ebuild @@ -24,7 +24,7 @@ else fi fi -inherit branding linux-info meson-multilib optfeature pam python-single-r1 +inherit branding flag-o-matic linux-info meson-multilib optfeature pam python-single-r1 inherit secureboot shell-completion systemd toolchain-funcs udev DESCRIPTION="System and service manager for Linux" @@ -206,7 +206,6 @@ pkg_pretend() { ~CGROUP_BPF ~DEVTMPFS ~EPOLL ~FANOTIFY ~FHANDLE ~INOTIFY_USER ~IPV6 ~NET ~NET_NS ~PROC_FS ~SIGNALFD ~SYSFS ~TIMERFD ~TMPFS_XATTR ~UNIX ~USER_NS - ~CRYPTO_HMAC ~CRYPTO_SHA256 ~CRYPTO_USER_API_HASH ~!GRKERNSEC_PROC ~!IDE ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2" @@ -271,6 +270,20 @@ src_configure() { # Prevent conflicts with i686 cross toolchain, bug 559726 tc-export AR CC NM OBJCOPY RANLIB + # Our toolchain sets F_S=2 by default w/ >= -O2, so we need + # to unset F_S first, then explicitly set 2, to negate any default + # and anything set by the user if they're choosing 3 (or if they've + # modified GCC to set 3). + # + # malloc_usable_size doesn't play well with _F_S=3: + # https://github.com/systemd/systemd/issues/41459 (bug #971773) + if tc-is-clang && tc-enables-fortify-source ; then + # We can't unconditionally do this b/c we fortify needs + # some level of optimisation. + filter-flags -D_FORTIFY_SOURCE=3 + append-cppflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 + fi + python_setup multilib-minimal_src_configure @@ -533,8 +546,7 @@ pkg_postinst() { # Keep this here in case the database format changes so it gets updated # when required. - systemd-hwdb --root="${ROOT}" update - + udev_hwdb_update || FAIL=1 udev_reload || FAIL=1 # Bug 465468, make sure locales are respected, and ensure consistency diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.3.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.3.ebuild index e3aaa6c2b51..cbba68c2c97 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.3.ebuild @@ -37,7 +37,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 ~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" REGEN_BDEPEND="verify-sig? ( sec-keys/openpgp-keys-texinfo )" fi fi @@ -61,7 +61,11 @@ DEPEND="${RDEPEND}" BDEPEND=" ${REGEN_BDEPEND} nls? ( >=sys-devel/gettext-0.19.6 ) - test? ( dev-perl/Test-Deep ) + test? ( + dev-perl/Data-Compare + dev-perl/Test-Deep + dev-perl/Text-Diff + ) " src_prepare() { 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 e3aaa6c2b51..bb06c378f94 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 @@ -61,7 +61,11 @@ DEPEND="${RDEPEND}" BDEPEND=" ${REGEN_BDEPEND} nls? ( >=sys-devel/gettext-0.19.6 ) - test? ( dev-perl/Test-Deep ) + test? ( + dev-perl/Data-Compare + dev-perl/Test-Deep + dev-perl/Text-Diff + ) " src_prepare() { diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/usbutils-019.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/usbutils-019.ebuild index 570cb995f5b..b3538a70746 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/usbutils-019.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/usbutils-019.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit meson python-single-r1 DESCRIPTION="USB enumeration utilities" 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 9678067c53c..699687a8e5a 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/Manifest @@ -2,3 +2,5 @@ DIST util-linux-2.41.2.tar.sign 833 BLAKE2B b2fbccf627769f6d49ada61176be28d3bada DIST util-linux-2.41.2.tar.xz 9612488 BLAKE2B 96cf8022a2d727df373f717fcca750e4f3ffd365f50af35cb805fecb7fa39962dea134fab7efdb9dfdc5aa6ac721e758e2ea40254e21d3fd9e9e5e4b2d25aa91 SHA512 696c87e7cf185acc9b4b969ddade6155ea2945ae494eaecfd7b1f35d9607166cb09be79878fb793dd31b4d4dcac8c9be4be76af3886185db7ae8b58c303fb0cf DIST util-linux-2.41.3.tar.sign 833 BLAKE2B 1b982a71fb7ab5f9d0d0cd0811abd48fc884578bf6528fcd590fcacf8eea8b0dcf20c3395b353b9cdbded2f5a91a38fa9b78b4d88d57fcdf961b28689036da10 SHA512 5aa90af75595867c534dc2853c16e742e0139f4c9bfb5a9dfc3e54bb27d8516d26bd074e7c24477910bb8ee63be8c1eb289bbdf56356cb60db991998d6793ef4 DIST util-linux-2.41.3.tar.xz 9467224 BLAKE2B 1e3902b1e121431d956fa51bfa88394f15ed84497eaa08c311bffd906bf49f6df9480892fee99523ac3b9f8a70f4311352d6310049827398ea99e195acbfdb5c SHA512 3d299f0e05a4c982a04dbcbaaeff1222152feedf51c56c5dbdeb75999c68269d652a994f5cdf4c1ee42bb7b28475dd0792192c299fd9bc3b45198c5b153dad00 +DIST util-linux-2.41.4.tar.sign 833 BLAKE2B fb63bced7ce0ad9b6c54855abb0dabd5cee7f9d668497bcae57fd4cfc7dfeccb167774338dc24c8491314be558286e487d4153a84d62ee636be4f6d4303301df SHA512 1d4673277e59a2409e414ee8cdc0f3d52cb40f626538f251c74820085128cc572a98bc27a784b10e3b87ed1babe344bbed32fb6a42f4aae67c5f533b24440eb8 +DIST util-linux-2.41.4.tar.xz 9468684 BLAKE2B 84a6d93c091c1fb8860f8a3e98e55447f6dba4e040066fbea12a67e9a165479e04527122525a7af0d6cd36e0d96a1c1b1e4b4064e51d35bf50b4b1186d2cf388 SHA512 c21ad77b787ab5892169c80cbec1ba46ed6bba36c1db278f2d1cd8712ae237f5cd25bfd20f2dc638334d1c47c5ff6102703147147d42f71c995bd397e735691a diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.41.4-no-AF_ALG.patch b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.41.4-no-AF_ALG.patch new file mode 100644 index 00000000000..da044a76ebc --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.41.4-no-AF_ALG.patch @@ -0,0 +1,19 @@ +Don't enable AF_ALG support: +* https://github.com/util-linux/util-linux/issues/4329 +* https://github.com/util-linux/util-linux/pull/4334#issuecomment-4492009559 + +It's brittle and on its way out of the kernel. hardlink automagically using +it has triggered a kernel panic as well: https://sporks.space/2026/05/19/chasing-down-why-installing-the-kernel-segfaulted/ +--- a/include/fileeq.h ++++ b/include/fileeq.h +@@ -10,10 +10,6 @@ + #include + #include + +-#if defined(__linux__) && defined(HAVE_LINUX_IF_ALG_H) +-# define USE_FILEEQ_CRYPTOAPI 1 +-#endif +- + /* Number of bytes from the beginning of the file we always + * compare by memcmp() */ + #define UL_FILEEQ_INTROSIZ 32 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.3-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.3-r1.ebuild index e162ab76d15..82506e0143a 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.3-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.3-r1.ebuild @@ -23,7 +23,7 @@ else inherit verify-sig if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos" fi SRC_URI="https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.4-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.4-r1.ebuild new file mode 100644 index 00000000000..d7c5885cd7a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.4-r1.ebuild @@ -0,0 +1,491 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +TMPFILES_OPTIONAL=1 + +inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 \ + pam python-r1 multilib-minimal multiprocessing systemd tmpfiles + +MY_PV="${PV/_/-}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="Various useful Linux utilities" +HOMEPAGE="https://www.kernel.org/pub/linux/utils/util-linux/ https://github.com/util-linux/util-linux" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git" + inherit autotools git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/karelzak.asc + inherit verify-sig + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos" + fi + + SRC_URI="https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz" + SRC_URI+=" verify-sig? ( https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.sign )" +fi + +S="${WORKDIR}/${MY_P}" + +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? ( virtual/zlib:= ) + cryptsetup? ( >=sys-fs/cryptsetup-2.1.0 ) + hardlink? ( dev-libs/libpcre2:= ) + ncurses? ( + sys-libs/ncurses:=[unicode(+)?] + magic? ( sys-apps/file:0= ) + ) + nls? ( virtual/libintl[${MULTILIB_USEDEP}] ) + pam? ( sys-libs/pam ) + python? ( ${PYTHON_DEPS} ) + readline? ( sys-libs/readline:0= ) + rtas? ( sys-libs/librtas ) + selinux? ( >=sys-libs/libselinux-2.2.2-r4[${MULTILIB_USEDEP}] ) + slang? ( sys-libs/slang ) + !build? ( + systemd? ( sys-apps/systemd ) + udev? ( virtual/libudev:= ) + ) +" +BDEPEND=" + virtual/pkgconfig + nls? ( + app-text/po4a + sys-devel/gettext + ) + test? ( app-alternatives/bc ) +" +DEPEND=" + ${RDEPEND} + virtual/os-headers + acct-group/root +" +RDEPEND+=" + hardlink? ( !app-arch/hardlink ) + logger? ( !>=app-admin/sysklogd-2.0[logger] ) + kill? ( + !sys-apps/coreutils[kill] + !sys-process/procps[kill] + ) + su? ( + !=sys-apps/shadow-4.7-r2[su] + ) + uuidd? ( + acct-user/uuidd + systemd? ( virtual/tmpfiles ) + ) + !net-wireless/rfkill +" + +if [[ ${PV} == 9999 ]] ; then + # Required for man-page generation + BDEPEND+=" dev-ruby/asciidoctor" +else + BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-karelzak-20230517 )" +fi + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) su? ( pam )" +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}"/${PN}-2.41.4-no-AF_ALG.patch +) + +pkg_pretend() { + if use su && ! use suid ; then + elog "su will be installed as suid despite USE=-suid (bug #832092)" + elog "To use su without suid, see e.g. Portage's suidctl feature." + fi +} + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + return + fi + + if use verify-sig; then + verify-sig_uncompress_verify_unpack "${DISTDIR}"/${MY_P}.tar.xz \ + "${DISTDIR}"/${MY_P}.tar.sign + else + default + fi +} + +src_prepare() { + default + + if use test ; then + # Known-failing tests + local known_failing_tests=( + # Subtest 'options-maximum-size-8192' fails + hardlink/options + + # Fails in sandbox + # re ioctl_ns: https://github.com/util-linux/util-linux/issues/2967 + lsns/ioctl_ns + lsfd/mkfds-inotify + lsfd/mkfds-symlink + lsfd/mkfds-rw-character-device + # Fails with network-sandbox at least in nspawn + lsfd/option-inet + utmp/last-ipv6 + + # Fails with permission errors in nspawn + fadvise/drop + fincore/count + + # Flaky + rename/subdir + + # Permission issues on /dev/random + lsfd/mkfds-eventpoll + lsfd/column-xmode + + # Hangs on some machines + script/replay + + # Fails for 32-bit time_t which some profiles have + misc/time_t + ) + + # debug prints confuse the tests which look for a diff + # in output + if has_version "=app-shells/bash-5.3_alpha*" ; then + known_failing_tests+=( + lsfd/column-ainodeclass + lsfd/mkfds-netlink-protocol + lsfd/column-type + lsfd/mkfds-eventfd + lsfd/mkfds-signalfd + lsfd/mkfds-mqueue + lsfd/mkfds-tcp6 + lsfd/mkfds-tcp + lsfd/filter-floating-point-nums + lsfd/mkfds-unix-stream-requiring-sockdiag + lsfd/mkfds-unix-dgram + lsfd/mkfds-directory + lsfd/mkfds-pty + lsfd/mkfds-pipe-no-fork + lsfd/mkfds-unix-stream + lsfd/mkfds-ro-regular-file + lsfd/mkfds-timerfd + lsfd/mkfds-udp + lsfd/mkfds-udp6 + ) + fi + + local known_failing_test + for known_failing_test in "${known_failing_tests[@]}" ; do + einfo "Removing known-failing test: ${known_failing_test}" + rm tests/ts/${known_failing_test} || die + done + fi + + if [[ ${PV} == 9999 ]] ; then + po/update-potfiles + eautoreconf + else + elibtoolize + fi +} + +python_configure() { + local myeconfargs=( + "${commonargs[@]}" + --disable-all-programs + --disable-bash-completion + --without-systemdsystemunitdir + --with-python + --enable-libblkid + --enable-libmount + --enable-pylibmount + ) + + mkdir "${BUILD_DIR}" || die + pushd "${BUILD_DIR}" >/dev/null || die + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + popd >/dev/null || die +} + +multilib_src_configure() { + # The scanf test in a run-time test which fails while cross-compiling. + # Blindly assume a POSIX setup since we require libmount, and libmount + # itself fails when the scanf test fails. bug #531856 + tc-is-cross-compiler && export scanf_cv_alloc_modifier=ms + + # bug #485486 + export ac_cv_header_security_pam_misc_h=$(multilib_native_usex pam) + # bug #545042 + export ac_cv_header_security_pam_appl_h=$(multilib_native_usex pam) + + # Undo bad ncurses handling by upstream. Fall back to pkg-config. + # bug #601530 + export NCURSES6_CONFIG=false NCURSES5_CONFIG=false + export NCURSESW6_CONFIG=false NCURSESW5_CONFIG=false + + # Avoid automagic dependency on ppc* + export ac_cv_lib_rtas_rtas_get_sysparm=$(usex rtas) + + # configure args shared by python and non-python builds + local commonargs=( + --localstatedir="${EPREFIX}/var" + --runstatedir="${EPREFIX}/run" + --enable-fs-paths-extra="${EPREFIX}/usr/sbin:${EPREFIX}/bin:${EPREFIX}/usr/bin" + ) + + local myeconfargs=( + "${commonargs[@]}" + --with-bashcompletiondir="$(get_bashcompdir)" + --without-python + $(multilib_native_use_enable suid makeinstall-chown) + $(multilib_native_use_enable suid makeinstall-setuid) + $(multilib_native_use_with readline) + $(multilib_native_use_with slang) + $(multilib_native_usex ncurses "$(use_with magic libmagic)" '--without-libmagic') + $(multilib_native_usex ncurses "$(use_with unicode ncursesw)" '--without-ncursesw') + $(multilib_native_usex ncurses "$(use_with !unicode ncurses)" '--without-ncurses') + $(multilib_native_use_with audit) + $(tc-has-tls || echo --disable-tls) + $(use_enable nls) + $(use_enable nls poman) + $(use_enable unicode widechar) + $(use_enable static-libs static) + $(use_with ncurses tinfo) + $(use_with selinux) + $(multilib_native_use_enable uuidd) + + # TODO: Wire this up (bug #931118) + --without-econf + + # TODO: Wire this up (bug #931297) + # TODO: investigate build failure w/ 2.40.1_rc1 + --disable-liblastlog2 + --disable-pam-lastlog2 + ) + + if use build ; then + myeconfargs+=( + --without-systemd + --without-udev + ) + else + myeconfargs+=( + $(multilib_native_use_with systemd) + $(multilib_native_use_with udev) + ) + fi + + if multilib_is_native_abi ; then + myeconfargs+=( + --disable-chfn-chsh + --disable-login + --disable-newgrp + --disable-nologin + --disable-pylibmount + --disable-raw + --disable-vipw + --enable-agetty + --enable-bash-completion + --enable-line + --enable-partx + --enable-rename + --enable-rfkill + --enable-schedutils + --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" + --with-tmpfilesdir="${EPREFIX}"/usr/lib/tmpfiles.d + $(use_enable caps setpriv) + $(use_enable cramfs) + $(use_enable fdformat) + $(use_enable hardlink) + $(use_enable kill) + $(use_enable logger) + $(use_enable ncurses pg) + $(use_enable su) + $(use_enable tty-helpers mesg) + $(use_enable tty-helpers wall) + $(use_enable tty-helpers write) + $(use_with cryptsetup) + ) + if [[ ${PV} == *9999 ]] ; then + myeconfargs+=( --enable-asciidoc ) + else + # Upstream is shipping pre-generated man-pages for releases + myeconfargs+=( --disable-asciidoc ) + fi + else + myeconfargs+=( + --disable-all-programs + --disable-asciidoc + --disable-bash-completion + --without-systemdsystemunitdir + --disable-poman + + # build libraries + --enable-libuuid + --enable-libblkid + --enable-libsmartcols + --enable-libfdisk + --enable-libmount + + # Support uuidd for non-native libuuid + $(use_enable uuidd libuuid-force-uuidd) + ) + fi + + if use kernel_Hurd ; then + # Disable Linux-specific features + myeconfargs+=( + --disable-partx + --disable-rfkill + --disable-schedutils + --disable-fsck + ) + + # This is explicitly needed for some reason? TODO + myeconfargs+=( + --enable-agetty + ) + fi + + # https://savannah.gnu.org/support/?111394 + # This can be removed when we patch dev-build/autoconf, though + # packages w/o eautoreconf will still need it. + [[ ${enable_year2038} == "no" ]] && myeconfargs+=( --disable-year2038 ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + + if multilib_is_native_abi && use python ; then + python_foreach_impl python_configure + fi +} + +src_configure() { + append-lfs-flags + + # Workaround for bug #961040 (gcc PR120006) + if tc-is-gcc && [[ $(gcc-major-version) == 15 && $(gcc-minor-version) -lt 2 ]] ; then + append-flags -fno-ipa-pta + fi + + multilib-minimal_src_configure +} + +python_compile() { + pushd "${BUILD_DIR}" >/dev/null || die + emake all + popd >/dev/null || die +} + +multilib_src_compile() { + emake all + + if multilib_is_native_abi && use python ; then + python_foreach_impl python_compile + fi +} + +python_test() { + pushd "${BUILD_DIR}" >/dev/null || die + emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot" + popd >/dev/null || die +} + +multilib_src_test() { + emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot" + if multilib_is_native_abi && use python ; then + python_foreach_impl python_test + fi +} + +python_install() { + pushd "${BUILD_DIR}" >/dev/null || die + emake DESTDIR="${D}" install + python_optimize + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi && use python ; then + python_foreach_impl python_install + fi + + # This needs to be called AFTER python_install call, bug #689190 + # XXX: -j1 as temporary workaround for bug #931301 + emake DESTDIR="${D}" install -j1 +} + +multilib_src_install_all() { + dodoc AUTHORS NEWS README* Documentation/{TODO,*.txt,releases/*} + + dosym hexdump /usr/bin/hd + newman - hd.1 <<< '.so man1/hexdump.1' + + # e2fsprogs-libs didn't install .la files, and .pc work fine + find "${ED}" -name "*.la" -delete || die + + if use pam ; then + # See https://github.com/util-linux/util-linux/blob/master/Documentation/PAM-configuration.txt + newpamd "${FILESDIR}/runuser.pamd" runuser + newpamd "${FILESDIR}/runuser-l.pamd" runuser-l + + newpamd "${FILESDIR}/su-l.pamd" su-l + fi + + if use su && ! use suid ; then + # Always force suid su, even when USE=-suid, as su is useless + # for the overwhelming-majority case without suid. + # Users who wish to truly have a no-suid su can strip it out + # via e.g. Portage's suidctl or some other hook. + # See bug #832092 + fperms u+s /bin/su + fi + + if use uuidd; then + newinitd "${FILESDIR}/uuidd.initd" uuidd + fi + + # Note: + # Bash completion for "runuser" command is provided by same file which + # would also provide bash completion for "su" command. However, we don't + # use "su" command from this package. + # This triggers a known QA warning which we ignore for now to magically + # keep bash completion for "su" command which shadow package does not + # provide. + + local ver=$(tools/git-version-gen .tarballversion) + local major=$(ver_cut 1 ${ver}) + local minor=$(ver_cut 2 ${ver}) + local release=$(ver_cut 3 ${ver}) + export QA_PKGCONFIG_VERSION="${major}.${minor}.${release:-0}" +} + +pkg_postinst() { + if ! use tty-helpers ; then + elog "The mesg/wall/write tools have been disabled due to USE=-tty-helpers." + fi + + if [[ -z ${REPLACING_VERSIONS} ]] ; then + elog "The agetty util now clears the terminal by default. You" + elog "might want to add --noclear to your /etc/inittab lines." + fi + + if use systemd && use uuidd; then + tmpfiles_process uuidd-tmpfiles.conf + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.4.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.4.ebuild new file mode 100644 index 00000000000..7e0583217a0 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.4.ebuild @@ -0,0 +1,484 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +TMPFILES_OPTIONAL=1 + +inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 \ + pam python-r1 multilib-minimal multiprocessing systemd tmpfiles + +MY_PV="${PV/_/-}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="Various useful Linux utilities" +HOMEPAGE="https://www.kernel.org/pub/linux/utils/util-linux/ https://github.com/util-linux/util-linux" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git" + inherit autotools git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/karelzak.asc + inherit verify-sig + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos" + fi + + SRC_URI="https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz" + SRC_URI+=" verify-sig? ( https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.sign )" +fi + +S="${WORKDIR}/${MY_P}" + +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? ( virtual/zlib:= ) + cryptsetup? ( >=sys-fs/cryptsetup-2.1.0 ) + hardlink? ( dev-libs/libpcre2:= ) + ncurses? ( + sys-libs/ncurses:=[unicode(+)?] + magic? ( sys-apps/file:0= ) + ) + nls? ( virtual/libintl[${MULTILIB_USEDEP}] ) + pam? ( sys-libs/pam ) + python? ( ${PYTHON_DEPS} ) + readline? ( sys-libs/readline:0= ) + rtas? ( sys-libs/librtas ) + selinux? ( >=sys-libs/libselinux-2.2.2-r4[${MULTILIB_USEDEP}] ) + slang? ( sys-libs/slang ) + !build? ( + systemd? ( sys-apps/systemd ) + udev? ( virtual/libudev:= ) + ) +" +BDEPEND=" + virtual/pkgconfig + nls? ( + app-text/po4a + sys-devel/gettext + ) + test? ( app-alternatives/bc ) +" +DEPEND=" + ${RDEPEND} + virtual/os-headers + acct-group/root +" +RDEPEND+=" + hardlink? ( !app-arch/hardlink ) + logger? ( !>=app-admin/sysklogd-2.0[logger] ) + kill? ( + !sys-apps/coreutils[kill] + !sys-process/procps[kill] + ) + su? ( + !=sys-apps/shadow-4.7-r2[su] + ) + uuidd? ( + acct-user/uuidd + 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 + + if use verify-sig; then + verify-sig_uncompress_verify_unpack "${DISTDIR}"/${MY_P}.tar.xz \ + "${DISTDIR}"/${MY_P}.tar.sign + else + default + fi +} + +src_prepare() { + default + + if use test ; then + # Known-failing tests + local known_failing_tests=( + # Subtest 'options-maximum-size-8192' fails + hardlink/options + + # Fails in sandbox + # re ioctl_ns: https://github.com/util-linux/util-linux/issues/2967 + lsns/ioctl_ns + lsfd/mkfds-inotify + lsfd/mkfds-symlink + lsfd/mkfds-rw-character-device + # Fails with network-sandbox at least in nspawn + lsfd/option-inet + utmp/last-ipv6 + + # Fails with permission errors in nspawn + fadvise/drop + fincore/count + + # Flaky + rename/subdir + + # Permission issues on /dev/random + lsfd/mkfds-eventpoll + lsfd/column-xmode + + # Hangs on some machines + script/replay + ) + + # debug prints confuse the tests which look for a diff + # in output + if has_version "=app-shells/bash-5.3_alpha*" ; then + known_failing_tests+=( + lsfd/column-ainodeclass + lsfd/mkfds-netlink-protocol + lsfd/column-type + lsfd/mkfds-eventfd + lsfd/mkfds-signalfd + lsfd/mkfds-mqueue + lsfd/mkfds-tcp6 + lsfd/mkfds-tcp + lsfd/filter-floating-point-nums + lsfd/mkfds-unix-stream-requiring-sockdiag + lsfd/mkfds-unix-dgram + lsfd/mkfds-directory + lsfd/mkfds-pty + lsfd/mkfds-pipe-no-fork + lsfd/mkfds-unix-stream + lsfd/mkfds-ro-regular-file + lsfd/mkfds-timerfd + lsfd/mkfds-udp + lsfd/mkfds-udp6 + ) + fi + + local known_failing_test + for known_failing_test in "${known_failing_tests[@]}" ; do + einfo "Removing known-failing test: ${known_failing_test}" + rm tests/ts/${known_failing_test} || die + done + fi + + if [[ ${PV} == 9999 ]] ; then + po/update-potfiles + eautoreconf + else + elibtoolize + fi +} + +python_configure() { + local myeconfargs=( + "${commonargs[@]}" + --disable-all-programs + --disable-bash-completion + --without-systemdsystemunitdir + --with-python + --enable-libblkid + --enable-libmount + --enable-pylibmount + ) + + mkdir "${BUILD_DIR}" || die + pushd "${BUILD_DIR}" >/dev/null || die + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + popd >/dev/null || die +} + +multilib_src_configure() { + # The scanf test in a run-time test which fails while cross-compiling. + # Blindly assume a POSIX setup since we require libmount, and libmount + # itself fails when the scanf test fails. bug #531856 + tc-is-cross-compiler && export scanf_cv_alloc_modifier=ms + + # bug #485486 + export ac_cv_header_security_pam_misc_h=$(multilib_native_usex pam) + # bug #545042 + export ac_cv_header_security_pam_appl_h=$(multilib_native_usex pam) + + # Undo bad ncurses handling by upstream. Fall back to pkg-config. + # bug #601530 + export NCURSES6_CONFIG=false NCURSES5_CONFIG=false + export NCURSESW6_CONFIG=false NCURSESW5_CONFIG=false + + # Avoid automagic dependency on ppc* + export ac_cv_lib_rtas_rtas_get_sysparm=$(usex rtas) + + # configure args shared by python and non-python builds + local commonargs=( + --localstatedir="${EPREFIX}/var" + --runstatedir="${EPREFIX}/run" + --enable-fs-paths-extra="${EPREFIX}/usr/sbin:${EPREFIX}/bin:${EPREFIX}/usr/bin" + ) + + local myeconfargs=( + "${commonargs[@]}" + --with-bashcompletiondir="$(get_bashcompdir)" + --without-python + $(multilib_native_use_enable suid makeinstall-chown) + $(multilib_native_use_enable suid makeinstall-setuid) + $(multilib_native_use_with readline) + $(multilib_native_use_with slang) + $(multilib_native_usex ncurses "$(use_with magic libmagic)" '--without-libmagic') + $(multilib_native_usex ncurses "$(use_with unicode ncursesw)" '--without-ncursesw') + $(multilib_native_usex ncurses "$(use_with !unicode ncurses)" '--without-ncurses') + $(multilib_native_use_with audit) + $(tc-has-tls || echo --disable-tls) + $(use_enable nls) + $(use_enable nls poman) + $(use_enable unicode widechar) + $(use_enable static-libs static) + $(use_with ncurses tinfo) + $(use_with selinux) + $(multilib_native_use_enable uuidd) + + # TODO: Wire this up (bug #931118) + --without-econf + + # TODO: Wire this up (bug #931297) + # TODO: investigate build failure w/ 2.40.1_rc1 + --disable-liblastlog2 + --disable-pam-lastlog2 + ) + + if use build ; then + myeconfargs+=( + --without-systemd + --without-udev + ) + else + myeconfargs+=( + $(multilib_native_use_with systemd) + $(multilib_native_use_with udev) + ) + fi + + if multilib_is_native_abi ; then + myeconfargs+=( + --disable-chfn-chsh + --disable-login + --disable-newgrp + --disable-nologin + --disable-pylibmount + --disable-raw + --disable-vipw + --enable-agetty + --enable-bash-completion + --enable-line + --enable-partx + --enable-rename + --enable-rfkill + --enable-schedutils + --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" + --with-tmpfilesdir="${EPREFIX}"/usr/lib/tmpfiles.d + $(use_enable caps setpriv) + $(use_enable cramfs) + $(use_enable fdformat) + $(use_enable hardlink) + $(use_enable kill) + $(use_enable logger) + $(use_enable ncurses pg) + $(use_enable su) + $(use_enable tty-helpers mesg) + $(use_enable tty-helpers wall) + $(use_enable tty-helpers write) + $(use_with cryptsetup) + ) + if [[ ${PV} == *9999 ]] ; then + myeconfargs+=( --enable-asciidoc ) + else + # Upstream is shipping pre-generated man-pages for releases + myeconfargs+=( --disable-asciidoc ) + fi + else + myeconfargs+=( + --disable-all-programs + --disable-asciidoc + --disable-bash-completion + --without-systemdsystemunitdir + --disable-poman + + # build libraries + --enable-libuuid + --enable-libblkid + --enable-libsmartcols + --enable-libfdisk + --enable-libmount + + # Support uuidd for non-native libuuid + $(use_enable uuidd libuuid-force-uuidd) + ) + fi + + if use kernel_Hurd ; then + # Disable Linux-specific features + myeconfargs+=( + --disable-partx + --disable-rfkill + --disable-schedutils + --disable-fsck + ) + + # This is explicitly needed for some reason? TODO + myeconfargs+=( + --enable-agetty + ) + fi + + # https://savannah.gnu.org/support/?111394 + # This can be removed when we patch dev-build/autoconf, though + # packages w/o eautoreconf will still need it. + [[ ${enable_year2038} == "no" ]] && myeconfargs+=( --disable-year2038 ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + + if multilib_is_native_abi && use python ; then + python_foreach_impl python_configure + fi +} + +src_configure() { + append-lfs-flags + + # Workaround for bug #961040 (gcc PR120006) + if tc-is-gcc && [[ $(gcc-major-version) == 15 && $(gcc-minor-version) -lt 2 ]] ; then + append-flags -fno-ipa-pta + fi + + multilib-minimal_src_configure +} + +python_compile() { + pushd "${BUILD_DIR}" >/dev/null || die + emake all + popd >/dev/null || die +} + +multilib_src_compile() { + emake all + + if multilib_is_native_abi && use python ; then + python_foreach_impl python_compile + fi +} + +python_test() { + pushd "${BUILD_DIR}" >/dev/null || die + emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot" + popd >/dev/null || die +} + +multilib_src_test() { + emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot" + if multilib_is_native_abi && use python ; then + python_foreach_impl python_test + fi +} + +python_install() { + pushd "${BUILD_DIR}" >/dev/null || die + emake DESTDIR="${D}" install + python_optimize + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi && use python ; then + python_foreach_impl python_install + fi + + # This needs to be called AFTER python_install call, bug #689190 + # XXX: -j1 as temporary workaround for bug #931301 + emake DESTDIR="${D}" install -j1 +} + +multilib_src_install_all() { + dodoc AUTHORS NEWS README* Documentation/{TODO,*.txt,releases/*} + + dosym hexdump /usr/bin/hd + newman - hd.1 <<< '.so man1/hexdump.1' + + # e2fsprogs-libs didn't install .la files, and .pc work fine + find "${ED}" -name "*.la" -delete || die + + if use pam ; then + # See https://github.com/util-linux/util-linux/blob/master/Documentation/PAM-configuration.txt + newpamd "${FILESDIR}/runuser.pamd" runuser + newpamd "${FILESDIR}/runuser-l.pamd" runuser-l + + newpamd "${FILESDIR}/su-l.pamd" su-l + fi + + if use su && ! use suid ; then + # Always force suid su, even when USE=-suid, as su is useless + # for the overwhelming-majority case without suid. + # Users who wish to truly have a no-suid su can strip it out + # via e.g. Portage's suidctl or some other hook. + # See bug #832092 + fperms u+s /bin/su + fi + + if use uuidd; then + newinitd "${FILESDIR}/uuidd.initd" uuidd + fi + + # Note: + # Bash completion for "runuser" command is provided by same file which + # would also provide bash completion for "su" command. However, we don't + # use "su" command from this package. + # This triggers a known QA warning which we ignore for now to magically + # keep bash completion for "su" command which shadow package does not + # provide. + + local ver=$(tools/git-version-gen .tarballversion) + local major=$(ver_cut 1 ${ver}) + local minor=$(ver_cut 2 ${ver}) + local release=$(ver_cut 3 ${ver}) + export QA_PKGCONFIG_VERSION="${major}.${minor}.${release:-0}" +} + +pkg_postinst() { + if ! use tty-helpers ; then + elog "The mesg/wall/write tools have been disabled due to USE=-tty-helpers." + fi + + if [[ -z ${REPLACING_VERSIONS} ]] ; then + elog "The agetty util now clears the terminal by default. You" + elog "might want to add --noclear to your /etc/inittab lines." + fi + + if use systemd && use uuidd; then + tmpfiles_process uuidd-tmpfiles.conf + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-9999.ebuild index 702d5039261..5e3a65eade3 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-9999.ebuild @@ -6,7 +6,7 @@ EAPI=8 PYTHON_COMPAT=( python3_{11..14} ) TMPFILES_OPTIONAL=1 -inherit flag-o-matic pam python-r1 meson-multilib tmpfiles toolchain-funcs +inherit pam python-r1 meson-multilib tmpfiles toolchain-funcs MY_PV="${PV/_/-}" MY_P="${PN}-${MY_PV}" @@ -125,11 +125,6 @@ src_unpack() { src_prepare() { default - # 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 - if use test ; then # Known-failing tests local known_failing_tests=( @@ -148,7 +143,6 @@ src_prepare() { findmnt/outputs findmnt/filterQ findmnt/filter - misc/mountpoint lsblk/lsblk lslocks/lslocks # Fails with network-sandbox at least in nspawn @@ -171,13 +165,20 @@ src_prepare() { # Format changes? lslogins/checkuser - misc/swaplabel - misc/setarch + + # Permission issues with changing OOM score + choom/choom + + # MKFDS_PID is empty + lsfd/option-hyperlink + + # Crashes but only under sandbox + setarch/setarch ) # debug prints confuse the tests which look for a diff # in output - if has_version "=app-shells/bash-5.3_alpha*" ; then + if has_version "=app-shells/bash-5.4_alpha*" ; then known_failing_tests+=( lsfd/column-ainodeclass lsfd/mkfds-netlink-protocol @@ -338,6 +339,7 @@ multilib_src_configure() { EOF # TODO: Verify this does the right thing for releases (may need to # manually install). + # https://github.com/util-linux/util-linux/issues/2900 if [[ ${PV} != *9999 ]] ; then # Upstream is shipping pre-generated man-pages for releases emesonargs+=( diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/pambase/Manifest b/sdk_container/src/third_party/portage-stable/sys-auth/pambase/Manifest index d669c417d57..4f8c8c5eded 100644 --- a/sdk_container/src/third_party/portage-stable/sys-auth/pambase/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-auth/pambase/Manifest @@ -1,4 +1 @@ -DIST pambase-20250826.tar.bz2 4925 BLAKE2B c6929aa506b94b9215bd2c686fd9965d6c3a77f36c7a2d114ca5b2c39a30e2209a84408ee855559837d54161e359723889b89bb9c048bb36b00c7156495968fc SHA512 c9bc07ac617891ddab6f2a8358b10899462d9b54fcc3642d222dd2402914f24225854103b6c581aa2041fb0feb0f94688e07aad10ab94c3a629b4cd2937bd785 -DIST pambase-20250906.tar.bz2 4972 BLAKE2B b65da13a265d5a3df1e84546a8f6e1447d7ea5a40fe4a44488691c4a182cf4b3d13d20ce85778f549d217ebf4b4511e71f5f285b34edf9e9e18bab50b0d22c82 SHA512 639d87169fafb0e44401104ade7dfaa7a5d6bd473d9e4e3c35a0fb87aaf73a383d406ee05944a3190750e55e59decd867ab3f773664f9fb787f40acc05826d1c -DIST pambase-20251013.tar.bz2 4963 BLAKE2B c2eb355819c28a6b41e8aea843c176769fa53519cb357239712165f0bf507bc21132d732fd2600d9354e2031e55da30beb676f1da854ce4bda687b8de006641a SHA512 968d82e817b209d66ea1719493539ff363a844795efd8584690a4ca9b5f932f5f5a9e8352747b590ae6ffba332a9a7d8e2a224af26bc3a6bdf012736daca9e6c DIST pambase-20251104.tar.bz2 4986 BLAKE2B fe5deb57d1b346071d67ac6720e3a8930c23a5aee6b64beeea2238e60b7a8a3070603bf4665936d082a8469f72058787a11243722b3fbd9edb888dab59c3dedc SHA512 037e3fbf4b63a1944220e73b2c8f15b3aea1f7f7691cdcf50c38c7a5702b6620fdaa4464c5183d26058f1a2d081cd1557690028fefbd649d0083cf22fbf9e1ae diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/pambase/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-auth/pambase/metadata.xml index 526e8b5c341..86b87e20052 100644 --- a/sdk_container/src/third_party/portage-stable/sys-auth/pambase/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-auth/pambase/metadata.xml @@ -72,7 +72,10 @@ via pam_sss. - Switch Linux-PAM's pam_unix module to use yescrypt for passwords hashes rather than MD5 + Switch Linux-PAM's pam_unix module to use yescrypt for passwords hashes + rather than MD5. Like with USE=sha512 (see that description), this + only changes the default, and hashes with other types are still + supported. Enable pam_krb5 module on system auth stack, as an alternative diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/pambase/pambase-20250826.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/pambase/pambase-20250826.ebuild deleted file mode 100644 index a56107d0f7b..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-auth/pambase/pambase-20250826.ebuild +++ /dev/null @@ -1,129 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..13} ) - -inherit edo pam python-any-r1 readme.gentoo-r1 - -DESCRIPTION="PAM base configuration files" -HOMEPAGE="https://github.com/gentoo/pambase" - -if [[ ${PV} == *9999 ]]; then - inherit git-r3 - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/pambase.git - https://github.com/gentoo/pambase.git - " -else - SRC_URI="https://gitweb.gentoo.org/proj/pambase.git/snapshot/${P}.tar.bz2" - - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -fi - -LICENSE="MIT" -SLOT="0" -IUSE="caps debug elogind gnome-keyring homed minimal mktemp +nullok pam_krb5 pam_ssh +passwdqc pwhistory pwquality securetty selinux +sha512 sssd systemd yescrypt" - -RESTRICT="binchecks" - -REQUIRED_USE=" - ?? ( elogind systemd ) - ?? ( passwdqc pwquality ) - ?? ( sha512 yescrypt ) - pwhistory? ( || ( passwdqc pwquality ) ) - homed? ( !pam_krb5 ) - pam_krb5? ( !homed ) -" - -MIN_PAM_REQ=1.4.0 - -RDEPEND=" - >=sys-libs/pam-${MIN_PAM_REQ} - elogind? ( sys-auth/elogind[pam] ) - gnome-keyring? ( gnome-base/gnome-keyring[pam] ) - mktemp? ( sys-auth/pam_mktemp ) - pam_krb5? ( - >=sys-libs/pam-${MIN_PAM_REQ} - sys-auth/pam_krb5 - ) - caps? ( sys-libs/libcap[pam] ) - pam_ssh? ( sys-auth/pam_ssh ) - passwdqc? ( >=sys-auth/passwdqc-1.4.0-r1 ) - pwquality? ( dev-libs/libpwquality[pam] ) - selinux? ( sys-libs/pam[selinux] ) - sha512? ( >=sys-libs/pam-${MIN_PAM_REQ} ) - homed? ( sys-apps/systemd[homed] ) - systemd? ( sys-apps/systemd[pam] ) - yescrypt? ( sys-libs/libxcrypt[system] ) - sssd? ( sys-auth/sssd ) -" -BDEPEND=" - $(python_gen_any_dep ' - dev-python/jinja2[${PYTHON_USEDEP}] - ') -" - -python_check_deps() { - python_has_version "dev-python/jinja2[${PYTHON_USEDEP}]" -} - -src_configure() { - local crypt=md5 - # TODO: sha256, blowfish, gost_yescrypt - use sha512 && crypt=sha512 - use yescrypt && crypt=yescrypt - - local pamargs=( - # Not all 'upstream' options are (currently) wired up - # in the ebuild. - # - # TODO: pam_shells - $(usev caps '--caps') - $(usev debug '--debug') - $(usev elogind '--elogind') - $(usev gnome-keyring '--gnome-keyring') - $(usev homed '--homed') - $(usev minimal '--minimal') - $(usev mktemp '--mktemp') - $(usev nullok '--nullok') - $(usev pam_krb5 '--krb5') - $(usev pam_ssh '--pam-ssh') - $(usev passwdqc '--passwdqc') - $(usev pwhistory '--pwhistory') - $(usev pwquality '--pwquality') - $(usev securetty '--securetty') - $(usev selinux '--selinux') - $(usex systemd '--systemd' '--openrc') - $(usev sssd '--sssd') - - --encrypt=${crypt} - ) - - edo ${EPYTHON} ./${PN}.py "${pamargs[@]}" -} - -src_test() { :; } - -src_install() { - local DOC_CONTENTS - - if use passwdqc; then - DOC_CONTENTS="To amend the existing password policy please see the man 5 passwdqc.conf - page and then edit the /etc/security/passwdqc.conf file" - fi - - if use pwquality; then - DOC_CONTENTS="To amend the existing password policy please see the man 5 pwquality.conf - page and then edit the /etc/security/pwquality.conf file" - fi - - { use passwdqc || use pwquality; } && readme.gentoo_create_doc - - dopamd -r stack/. -} - -pkg_postinst() { - { use passwdqc || use pwquality; } && readme.gentoo_print_elog -} diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/pambase/pambase-20250906.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/pambase/pambase-20250906.ebuild deleted file mode 100644 index 2d64418812b..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-auth/pambase/pambase-20250906.ebuild +++ /dev/null @@ -1,129 +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 edo pam python-any-r1 readme.gentoo-r1 - -DESCRIPTION="PAM base configuration files" -HOMEPAGE="https://github.com/gentoo/pambase" - -if [[ ${PV} == *9999 ]]; then - inherit git-r3 - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/pambase.git - https://github.com/gentoo/pambase.git - " -else - SRC_URI="https://gitweb.gentoo.org/proj/pambase.git/snapshot/${P}.tar.bz2" - - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -fi - -LICENSE="MIT" -SLOT="0" -IUSE="caps debug elogind gnome-keyring homed minimal mktemp +nullok pam_krb5 pam_ssh +passwdqc pwhistory pwquality securetty selinux +sha512 sssd systemd yescrypt" - -RESTRICT="binchecks" - -REQUIRED_USE=" - ?? ( elogind systemd ) - ?? ( passwdqc pwquality ) - ?? ( sha512 yescrypt ) - pwhistory? ( || ( passwdqc pwquality ) ) - homed? ( !pam_krb5 ) - pam_krb5? ( !homed ) -" - -MIN_PAM_REQ=1.4.0 - -RDEPEND=" - >=sys-libs/pam-${MIN_PAM_REQ} - elogind? ( sys-auth/elogind[pam] ) - gnome-keyring? ( gnome-base/gnome-keyring[pam] ) - mktemp? ( sys-auth/pam_mktemp ) - pam_krb5? ( - >=sys-libs/pam-${MIN_PAM_REQ} - sys-auth/pam_krb5 - ) - caps? ( sys-libs/libcap[pam] ) - pam_ssh? ( sys-auth/pam_ssh ) - passwdqc? ( >=sys-auth/passwdqc-1.4.0-r1 ) - pwquality? ( dev-libs/libpwquality[pam] ) - selinux? ( sys-libs/pam[selinux] ) - sha512? ( >=sys-libs/pam-${MIN_PAM_REQ} ) - homed? ( sys-apps/systemd[homed] ) - systemd? ( sys-apps/systemd[pam] ) - yescrypt? ( sys-libs/libxcrypt[system] ) - sssd? ( sys-auth/sssd ) -" -BDEPEND=" - $(python_gen_any_dep ' - dev-python/jinja2[${PYTHON_USEDEP}] - ') -" - -python_check_deps() { - python_has_version "dev-python/jinja2[${PYTHON_USEDEP}]" -} - -src_configure() { - local crypt=md5 - # TODO: sha256, blowfish, gost_yescrypt - use sha512 && crypt=sha512 - use yescrypt && crypt=yescrypt - - local pamargs=( - # Not all 'upstream' options are (currently) wired up - # in the ebuild. - # - # TODO: pam_shells - $(usev caps '--caps') - $(usev debug '--debug') - $(usev elogind '--elogind') - $(usev gnome-keyring '--gnome-keyring') - $(usev homed '--homed') - $(usev minimal '--minimal') - $(usev mktemp '--mktemp') - $(usev nullok '--nullok') - $(usev pam_krb5 '--krb5') - $(usev pam_ssh '--pam-ssh') - $(usev passwdqc '--passwdqc') - $(usev pwhistory '--pwhistory') - $(usev pwquality '--pwquality') - $(usev securetty '--securetty') - $(usev selinux '--selinux') - $(usex systemd '--systemd' '--openrc') - $(usev sssd '--sssd') - - --encrypt=${crypt} - ) - - edo ${EPYTHON} ./${PN}.py "${pamargs[@]}" -} - -src_test() { :; } - -src_install() { - local DOC_CONTENTS - - if use passwdqc; then - DOC_CONTENTS="To amend the existing password policy please see the man 5 passwdqc.conf - page and then edit the /etc/security/passwdqc.conf file" - fi - - if use pwquality; then - DOC_CONTENTS="To amend the existing password policy please see the man 5 pwquality.conf - page and then edit the /etc/security/pwquality.conf file" - fi - - { use passwdqc || use pwquality; } && readme.gentoo_create_doc - - dopamd -r stack/. -} - -pkg_postinst() { - { use passwdqc || use pwquality; } && readme.gentoo_print_elog -} diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/pambase/pambase-20251013.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/pambase/pambase-20251013.ebuild deleted file mode 100644 index 2d64418812b..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-auth/pambase/pambase-20251013.ebuild +++ /dev/null @@ -1,129 +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 edo pam python-any-r1 readme.gentoo-r1 - -DESCRIPTION="PAM base configuration files" -HOMEPAGE="https://github.com/gentoo/pambase" - -if [[ ${PV} == *9999 ]]; then - inherit git-r3 - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/pambase.git - https://github.com/gentoo/pambase.git - " -else - SRC_URI="https://gitweb.gentoo.org/proj/pambase.git/snapshot/${P}.tar.bz2" - - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -fi - -LICENSE="MIT" -SLOT="0" -IUSE="caps debug elogind gnome-keyring homed minimal mktemp +nullok pam_krb5 pam_ssh +passwdqc pwhistory pwquality securetty selinux +sha512 sssd systemd yescrypt" - -RESTRICT="binchecks" - -REQUIRED_USE=" - ?? ( elogind systemd ) - ?? ( passwdqc pwquality ) - ?? ( sha512 yescrypt ) - pwhistory? ( || ( passwdqc pwquality ) ) - homed? ( !pam_krb5 ) - pam_krb5? ( !homed ) -" - -MIN_PAM_REQ=1.4.0 - -RDEPEND=" - >=sys-libs/pam-${MIN_PAM_REQ} - elogind? ( sys-auth/elogind[pam] ) - gnome-keyring? ( gnome-base/gnome-keyring[pam] ) - mktemp? ( sys-auth/pam_mktemp ) - pam_krb5? ( - >=sys-libs/pam-${MIN_PAM_REQ} - sys-auth/pam_krb5 - ) - caps? ( sys-libs/libcap[pam] ) - pam_ssh? ( sys-auth/pam_ssh ) - passwdqc? ( >=sys-auth/passwdqc-1.4.0-r1 ) - pwquality? ( dev-libs/libpwquality[pam] ) - selinux? ( sys-libs/pam[selinux] ) - sha512? ( >=sys-libs/pam-${MIN_PAM_REQ} ) - homed? ( sys-apps/systemd[homed] ) - systemd? ( sys-apps/systemd[pam] ) - yescrypt? ( sys-libs/libxcrypt[system] ) - sssd? ( sys-auth/sssd ) -" -BDEPEND=" - $(python_gen_any_dep ' - dev-python/jinja2[${PYTHON_USEDEP}] - ') -" - -python_check_deps() { - python_has_version "dev-python/jinja2[${PYTHON_USEDEP}]" -} - -src_configure() { - local crypt=md5 - # TODO: sha256, blowfish, gost_yescrypt - use sha512 && crypt=sha512 - use yescrypt && crypt=yescrypt - - local pamargs=( - # Not all 'upstream' options are (currently) wired up - # in the ebuild. - # - # TODO: pam_shells - $(usev caps '--caps') - $(usev debug '--debug') - $(usev elogind '--elogind') - $(usev gnome-keyring '--gnome-keyring') - $(usev homed '--homed') - $(usev minimal '--minimal') - $(usev mktemp '--mktemp') - $(usev nullok '--nullok') - $(usev pam_krb5 '--krb5') - $(usev pam_ssh '--pam-ssh') - $(usev passwdqc '--passwdqc') - $(usev pwhistory '--pwhistory') - $(usev pwquality '--pwquality') - $(usev securetty '--securetty') - $(usev selinux '--selinux') - $(usex systemd '--systemd' '--openrc') - $(usev sssd '--sssd') - - --encrypt=${crypt} - ) - - edo ${EPYTHON} ./${PN}.py "${pamargs[@]}" -} - -src_test() { :; } - -src_install() { - local DOC_CONTENTS - - if use passwdqc; then - DOC_CONTENTS="To amend the existing password policy please see the man 5 passwdqc.conf - page and then edit the /etc/security/passwdqc.conf file" - fi - - if use pwquality; then - DOC_CONTENTS="To amend the existing password policy please see the man 5 pwquality.conf - page and then edit the /etc/security/pwquality.conf file" - fi - - { use passwdqc || use pwquality; } && readme.gentoo_create_doc - - dopamd -r stack/. -} - -pkg_postinst() { - { use passwdqc || use pwquality; } && readme.gentoo_print_elog -} 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 deleted file mode 100644 index f1a092723b2..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-126-r2.ebuild +++ /dev/null @@ -1,157 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..13} ) -inherit meson pam pax-utils python-any-r1 systemd tmpfiles xdg-utils - -DESCRIPTION="Policy framework for controlling privileges for system-wide services" -HOMEPAGE="https://www.freedesktop.org/wiki/Software/polkit https://github.com/polkit-org/polkit" -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://github.com/polkit-org/polkit" - inherit git-r3 -elif [[ ${PV} == *_p* ]] ; then - # Upstream don't make releases very often. Test snapshots throughly - # and review commits, but don't shy away if there's useful stuff there - # we want. - MY_COMMIT="" - SRC_URI="https://github.com/polkit-org/polkit/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz" - - S="${WORKDIR}"/${PN}-${MY_COMMIT} -else - SRC_URI="https://github.com/polkit-org/polkit/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" -fi - -LICENSE="LGPL-2" -SLOT="0" -if [[ ${PV} != 9999 ]] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -fi -IUSE="examples gtk +introspection kde pam nls selinux systemd test" -RESTRICT="!test? ( test )" - -BDEPEND=" - acct-user/polkitd - app-text/docbook-xml-dtd:4.1.2 - app-text/docbook-xsl-stylesheets - >=dev-libs/glib-2.32 - dev-libs/libxslt - dev-util/glib-utils - virtual/pkgconfig - introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2 ) - nls? ( sys-devel/gettext ) - test? ( - $(python_gen_any_dep ' - dev-python/dbus-python[${PYTHON_USEDEP}] - dev-python/python-dbusmock[${PYTHON_USEDEP}] - ') - ) -" -DEPEND=" - >=dev-libs/glib-2.32:2 - dev-libs/expat - dev-lang/duktape:= - pam? ( - sys-auth/pambase - sys-libs/pam - ) - !pam? ( virtual/libcrypt:= ) - systemd? ( sys-apps/systemd:0=[policykit] ) - !systemd? ( sys-auth/elogind ) -" -RDEPEND=" - ${DEPEND} - acct-user/polkitd - selinux? ( sec-policy/selinux-policykit ) -" -PDEPEND=" - gtk? ( || ( - >=gnome-extra/polkit-gnome-0.105 - >=lxde-base/lxsession-0.5.2 - ) ) - kde? ( kde-plasma/polkit-kde-agent ) -" - -DOCS=( docs/TODO HACKING.md NEWS.md README.md ) - -QA_MULTILIB_PATHS=" - usr/lib/polkit-1/polkit-agent-helper-1 - usr/lib/polkit-1/polkitd -" - -PATCHES=( - "${FILESDIR}"/${P}-elogind.patch - "${FILESDIR}"/${P}-dbusmock.patch -) - -python_check_deps() { - python_has_version "dev-python/dbus-python[${PYTHON_USEDEP}]" && - python_has_version "dev-python/python-dbusmock[${PYTHON_USEDEP}]" -} - -pkg_setup() { - use test && python-any-r1_pkg_setup -} - -src_prepare() { - default - - # bug #401513 - sed -i -e 's|unix-group:@PRIVILEGED_GROUP@|unix-user:@PRIVILEGED_GROUP@|' src/polkitbackend/*-default.rules.in || die -} - -src_configure() { - xdg_environment_reset - - local emesonargs=( - --localstatedir="${EPREFIX}"/var - -Dauthfw="$(usex pam pam shadow)" - -Dexamples=false - -Dgtk_doc=false - -Dman=true - -Dos_type=gentoo - -Dpam_module_dir=$(getpam_mod_dir) - -Dprivileged_group=0 - -Dsession_tracking="$(usex systemd logind elogind)" - -Dsystemdsystemunitdir="$(systemd_get_systemunitdir)" - -Dlibs-only=false - $(meson_use introspection) - $(meson_use nls gettext) - $(meson_use test tests) - ) - meson_src_configure -} - -src_compile() { - meson_src_compile - - # Required for polkitd on hardened/PaX due to spidermonkey's JIT - pax-mark mr src/polkitbackend/.libs/polkitd test/polkitbackend/.libs/polkitbackendjsauthoritytest -} - -src_install() { - meson_src_install - - # acct-user/polkitd installs its own (albeit with a different filename) - rm -rf "${ED}"/usr/lib/sysusers.d || die - - if use examples ; then - docinto examples - dodoc src/examples/{*.c,*.policy*} - fi - - if [[ ${EUID} == 0 ]]; then - diropts -m 0700 -o polkitd - fi - keepdir /etc/polkit-1/rules.d -} - -pkg_postinst() { - tmpfiles_process polkit-tmpfiles.conf - - if [[ ${EUID} == 0 ]]; then - chmod 0700 "${EROOT}"/{etc,usr/share}/polkit-1/rules.d - chown polkitd "${EROOT}"/{etc,usr/share}/polkit-1/rules.d - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-126-r3.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-126-r3.ebuild new file mode 100644 index 00000000000..10b26c1331e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-126-r3.ebuild @@ -0,0 +1,163 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +inherit meson pam pax-utils python-any-r1 systemd tmpfiles xdg-utils + +DESCRIPTION="Policy framework for controlling privileges for system-wide services" +HOMEPAGE="https://www.freedesktop.org/wiki/Software/polkit https://github.com/polkit-org/polkit" +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/polkit-org/polkit" + inherit git-r3 +elif [[ ${PV} == *_p* ]] ; then + # Upstream don't make releases very often. Test snapshots throughly + # and review commits, but don't shy away if there's useful stuff there + # we want. + MY_COMMIT="" + SRC_URI="https://github.com/polkit-org/polkit/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz" + + S="${WORKDIR}"/${PN}-${MY_COMMIT} +else + SRC_URI="https://github.com/polkit-org/polkit/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" +fi + +LICENSE="LGPL-2" +SLOT="0" +if [[ ${PV} != 9999 ]] ; then + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +fi +IUSE="elogind examples gtk +introspection kde pam nls selinux systemd test" +RESTRICT="!test? ( test )" +REQUIRED_USE="?? ( elogind systemd )" + +BDEPEND=" + acct-user/polkitd + app-text/docbook-xml-dtd:4.1.2 + app-text/docbook-xsl-stylesheets + >=dev-libs/glib-2.32 + dev-libs/libxslt + dev-util/glib-utils + virtual/pkgconfig + introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2 ) + nls? ( sys-devel/gettext ) + test? ( + $(python_gen_any_dep ' + dev-python/dbus-python[${PYTHON_USEDEP}] + dev-python/python-dbusmock[${PYTHON_USEDEP}] + ') + ) +" +DEPEND=" + >=dev-libs/glib-2.32:2 + dev-libs/expat + dev-lang/duktape:= + elogind? ( sys-auth/elogind ) + pam? ( + sys-auth/pambase + sys-libs/pam + ) + !pam? ( virtual/libcrypt:= ) + systemd? ( sys-apps/systemd:0=[policykit] ) +" +RDEPEND=" + ${DEPEND} + acct-user/polkitd + selinux? ( sec-policy/selinux-policykit ) +" +PDEPEND=" + gtk? ( || ( + >=gnome-extra/polkit-gnome-0.105 + >=lxde-base/lxsession-0.5.2 + ) ) + kde? ( kde-plasma/polkit-kde-agent ) +" + +DOCS=( docs/TODO HACKING.md NEWS.md README.md ) + +QA_MULTILIB_PATHS=" + usr/lib/polkit-1/polkit-agent-helper-1 + usr/lib/polkit-1/polkitd +" + +PATCHES=( + "${FILESDIR}"/${P}-elogind.patch + "${FILESDIR}"/${P}-dbusmock.patch +) + +python_check_deps() { + python_has_version "dev-python/dbus-python[${PYTHON_USEDEP}]" && + python_has_version "dev-python/python-dbusmock[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +src_prepare() { + default + + # bug #401513 + sed -i -e 's|unix-group:@PRIVILEGED_GROUP@|unix-user:@PRIVILEGED_GROUP@|' src/polkitbackend/*-default.rules.in || die +} + +src_configure() { + xdg_environment_reset + + # Use ConsoleKit as a fallback with no build-time dependencies, bug 973339 + local session_tracking=ConsoleKit + use elogind && session_tracking=elogind + use systemd && session_tracking=logind + + local emesonargs=( + --localstatedir="${EPREFIX}"/var + -Dauthfw="$(usex pam pam shadow)" + -Dexamples=false + -Dgtk_doc=false + -Dman=true + -Dos_type=gentoo + -Dpam_module_dir=$(getpam_mod_dir) + -Dprivileged_group=0 + -Dsession_tracking="${session_tracking}" + -Dsystemdsystemunitdir="$(systemd_get_systemunitdir)" + -Dlibs-only=false + $(meson_use introspection) + $(meson_use nls gettext) + $(meson_use test tests) + ) + meson_src_configure +} + +src_compile() { + meson_src_compile + + # Required for polkitd on hardened/PaX due to spidermonkey's JIT + pax-mark mr src/polkitbackend/.libs/polkitd test/polkitbackend/.libs/polkitbackendjsauthoritytest +} + +src_install() { + meson_src_install + + # acct-user/polkitd installs its own (albeit with a different filename) + rm -rf "${ED}"/usr/lib/sysusers.d || die + + if use examples ; then + docinto examples + dodoc src/examples/{*.c,*.policy*} + fi + + if [[ ${EUID} == 0 ]]; then + diropts -m 0700 -o polkitd + fi + keepdir /etc/polkit-1/rules.d +} + +pkg_postinst() { + tmpfiles_process polkit-tmpfiles.conf + + if [[ ${EUID} == 0 ]]; then + chmod 0700 "${EROOT}"/{etc,usr/share}/polkit-1/rules.d + chown polkitd "${EROOT}"/{etc,usr/share}/polkit-1/rules.d + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-9999.ebuild index d932aa3e7d5..a77721caaf3 100644 --- a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-9999.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit meson pam pax-utils python-any-r1 systemd tmpfiles xdg-utils DESCRIPTION="Policy framework for controlling privileges for system-wide services" @@ -28,8 +28,9 @@ SLOT="0" if [[ ${PV} != 9999 ]] ; then KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" fi -IUSE="examples gtk +introspection kde pam nls selinux systemd test" +IUSE="elogind examples gtk +introspection kde pam nls selinux systemd test" RESTRICT="!test? ( test )" +REQUIRED_USE="?? ( elogind systemd )" BDEPEND=" acct-user/polkitd @@ -52,13 +53,13 @@ DEPEND=" >=dev-libs/glib-2.32:2 dev-libs/expat dev-lang/duktape:= + elogind? ( sys-auth/elogind ) pam? ( sys-auth/pambase sys-libs/pam ) !pam? ( virtual/libcrypt:= ) systemd? ( sys-apps/systemd:0=[policykit] ) - !systemd? ( sys-auth/elogind ) " RDEPEND=" ${DEPEND} @@ -99,6 +100,11 @@ src_prepare() { src_configure() { xdg_environment_reset + # Use ConsoleKit as a fallback with no build-time dependencies, bug 973339 + local session_tracking=ConsoleKit + use elogind && session_tracking=elogind + use systemd && session_tracking=logind + local emesonargs=( --localstatedir="${EPREFIX}"/var -Dauthfw="$(usex pam pam shadow)" @@ -108,7 +114,7 @@ src_configure() { -Dos_type=gentoo -Dpam_module_dir=$(getpam_mod_dir) -Dprivileged_group=0 - -Dsession_tracking="$(usex systemd logind elogind)" + -Dsession_tracking="${session_tracking}" -Dsystemdsystemunitdir="$(systemd_get_systemunitdir)" -Dlibs-only=false $(meson_use introspection) diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/sssd/Manifest b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/Manifest index ad117012ece..18fefe6b85a 100644 --- a/sdk_container/src/third_party/portage-stable/sys-auth/sssd/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/Manifest @@ -1,5 +1,7 @@ DIST sssd-2.12.0.tar.gz 9739617 BLAKE2B d5629a24ee6db3e0a7a205a387acb01d0cc102b6bfc1131a208ea03c609941dd5ccfefd790ca1dc10f6e57d698828ff38364be9c8f6a7f7aeaec4b8a07346494 SHA512 3bd90a88a43019b00d3f0a674ef4d2473bf6895e749a54bec8ac1661e7d289083e0cbd64846dacc8bdd4b2447f171dddb2d0ba108962dbd862bce86c2247b038 DIST sssd-2.12.0.tar.gz.asc 833 BLAKE2B ffb95b672fd5b63f6147b4c4e85ee04c260eb2fa01c90ed52e04bb5c8e1bba76fead5dca1343a1d8c53d69d36c1145378c18f01fe86896f52dd64a1ed7c1d973 SHA512 b4a7696969f2c0a034ef01eaa50282556e3c07c0be53088d9ce5cb3f24e2dc5428fe8ad2f2f6aca7903a16e2d39591f32b04ca76b16662d24ae64cea15658684 +DIST sssd-2.13.0.tar.gz 9127914 BLAKE2B d180c53dfaf74137b3208ecba1e8b58ae6fa8bf5fd122ceb362ab382bd34904871857dbbc8f7b1fef858c9220772495d1262c7348c11beae432985c368900334 SHA512 3d900d7a5538114b888c57a5f5a555f6200cf077881c02b4d9b9af33d590bfd71fa296513e38343ad7d96447f5fe2ed69562ccd9a80bb3eed0dec890461da777 +DIST sssd-2.13.0.tar.gz.asc 833 BLAKE2B 08f13c3634ffb2ef30f8cf8ca3302e2c98bc8f9894141886f17762c3744e8efaeb9ee9d4e51d3c20afc00e0210c73b22b0a822f698313762bfe54bbfc8e8e23c SHA512 c12839860d444f223ee0a55d135cb49725287463f7aa12e6f854fd3565f2ce750b1526a8275e5399b64aa1ef59f0668b3a5ec745b786cc9265c58f77fa059464 DIST sssd-2.9.7.tar.gz 9161891 BLAKE2B 1658f3a6447c58665fccf144292deda759a72e1dbe0913e49f510fa8342e0fa09569319a40293a63c360c17ede0e8051c93b81e488549ed8e3bbeff37ce86389 SHA512 ba2bcab28491971e420b8bb8769574e88af4059cad5cec5320668cabf31c11314fce6dcab45b097d7b0876dfebe1cad22a0104c0856c80cdc07c21b19a95a3f2 DIST sssd-2.9.7.tar.gz.asc 833 BLAKE2B 2d0b2417a38b99b6014e20abcc121e7eb1b6028c9e8292ca998099ae6eaa6e47cb3c1ab42864ffcc2f1566c20c27c9d65d7b5a801403aff23ca952fda6ecfdb2 SHA512 74117dca7a5cf62400358769757485bb304e200e29fef9613c92e8d30770b0fe54d5c95b4053ac32005f665a6cef247c639a2b14df132a7e82a8b92d527dbba3 DIST sssd-2.9.8.tar.gz 9330244 BLAKE2B f5f88287b4bf7936e56e44c9ba7eba728c8546663304f9c6881d5bb427ff5f3dfb635536110f198439b41b481a7b9a2980138acd0d90d7334d439559425d9170 SHA512 9b10cb5e343d32402a437dab3304c16596e9eb7b51a452ca3e2b3fea4aa8dc879abe06a57ccc716bece8024847211abf5affa83e1d2ca2cac101132133a6619a diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/sssd/files/sssd-2.9.8-r1-pam_fix_out-of-bounds_read_in_pam_passkey_child_read_data.patch b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/files/sssd-2.9.8-r1-pam_fix_out-of-bounds_read_in_pam_passkey_child_read_data.patch new file mode 100644 index 00000000000..a0c98e1be96 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/files/sssd-2.9.8-r1-pam_fix_out-of-bounds_read_in_pam_passkey_child_read_data.patch @@ -0,0 +1,117 @@ +From 73e53fbe95435569ee8620f651f8936b519098ae Mon Sep 17 00:00:00 2001 +From: Xu Raoqing <609179072@qq.com> +Date: Tue, 21 Apr 2026 16:49:05 +0800 +Subject: [PATCH 1/2] pam: fix out-of-bounds read in + pam_passkey_child_read_data + +The pam_passkey_child_read_data() function failed to properly handle +raw bytes received from a pipe. The data was treated as a NUL-terminated +C string without explicit termination, resulting in an out-of-bounds read +when processed by snprintf() with %s format. + +Fix by using memcpy instead of snprintf and explicitly NUL-terminating +the buffer. Add checks for buf_len == 0 or buf == NULL to avoid undefined +behavior. Check the return value of sss_authtok_set_passkey_reply and +propagate errors properly. + +Fixes: CVE-2026-6245 + +:relnote: Security fix for CVE-2026-6245: out-of-bounds read in PAM passkey responder + +Reviewed-by: Alexey Tikhonov +Reviewed-by: Iker Pedrosa +Reviewed-by: Sumit Bose +(cherry picked from commit 550b08cabe4dd5508c7ea74f634869374204d63f) +--- + src/responder/pam/pamsrv_passkey.c | 18 ++++++++++++++---- + 1 file changed, 14 insertions(+), 4 deletions(-) + +diff --git a/src/responder/pam/pamsrv_passkey.c b/src/responder/pam/pamsrv_passkey.c +index ab8da72eee0..d1446868440 100644 +--- a/src/responder/pam/pamsrv_passkey.c ++++ b/src/responder/pam/pamsrv_passkey.c +@@ -814,16 +814,26 @@ static void pam_passkey_child_read_data(struct tevent_req *subreq) + return; + } + +- str = malloc(sizeof(char) * buf_len); +- if (str == NULL) { ++ if (buf_len == 0 || buf == NULL) { ++ tevent_req_error(req, EINVAL); + return; + } + +- snprintf(str, buf_len, "%s", buf); ++ str = malloc(buf_len + 1); ++ if (str == NULL) { ++ tevent_req_error(req, ENOMEM); ++ return; ++ } + +- sss_authtok_set_passkey_reply(state->pd->authtok, str, 0); ++ memcpy(str, buf, buf_len); ++ str[buf_len] = '\0'; + ++ ret = sss_authtok_set_passkey_reply(state->pd->authtok, str, 0); + free(str); ++ if (ret != EOK) { ++ tevent_req_error(req, ret); ++ return; ++ } + + tevent_req_done(req); + return; + +From 50436ace215bf46ccbfcb070fd3565a19ea223bc Mon Sep 17 00:00:00 2001 +From: Alexey Tikhonov +Date: Wed, 22 Apr 2026 13:03:48 +0200 +Subject: [PATCH 2/2] PAM/PASSKEY: avoid unnecessary memcpy + +`sss_authtok_set_passkey_reply()` -> `sss_authtok_set_string()` handles +non NULL-terminated buffer correctly. + +Reviewed-by: Iker Pedrosa +Reviewed-by: Sumit Bose +(cherry picked from commit 3b0b16e96728b3d2f8ddd8c0ee67b92ec210d44f) +--- + src/responder/pam/pamsrv_passkey.c | 16 +++------------- + 1 file changed, 3 insertions(+), 13 deletions(-) + +diff --git a/src/responder/pam/pamsrv_passkey.c b/src/responder/pam/pamsrv_passkey.c +index d1446868440..57f37110c8d 100644 +--- a/src/responder/pam/pamsrv_passkey.c ++++ b/src/responder/pam/pamsrv_passkey.c +@@ -801,7 +801,6 @@ static void pam_passkey_child_read_data(struct tevent_req *subreq) + { + uint8_t *buf; + ssize_t buf_len; +- char *str; + struct tevent_req *req = tevent_req_callback_data(subreq, + struct tevent_req); + struct pam_passkey_auth_send_state *state = tevent_req_data(req, struct pam_passkey_auth_send_state); +@@ -814,22 +813,13 @@ static void pam_passkey_child_read_data(struct tevent_req *subreq) + return; + } + +- if (buf_len == 0 || buf == NULL) { ++ if (buf_len <= 0 || buf == NULL) { + tevent_req_error(req, EINVAL); + return; + } + +- str = malloc(buf_len + 1); +- if (str == NULL) { +- tevent_req_error(req, ENOMEM); +- return; +- } +- +- memcpy(str, buf, buf_len); +- str[buf_len] = '\0'; +- +- ret = sss_authtok_set_passkey_reply(state->pd->authtok, str, 0); +- free(str); ++ ret = sss_authtok_set_passkey_reply(state->pd->authtok, ++ (const char*)buf, (size_t)buf_len); + if (ret != EOK) { + tevent_req_error(req, ret); + return; diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/sssd/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/metadata.xml index a0489f66277..e0d916e966d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-auth/sssd/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/metadata.xml @@ -17,6 +17,7 @@ Build and use the cifsidmap plugin Add support for netlink protocol via dev-libs/libnl Add support for the nfsv4 idmapd plugin provided by net-fs/nfs-utils + Add support for login via OpenID Connect, such as Keycloak Add support for FIDO2 passkeys" Add Privileged Attribute Certificate Support for Kerberos Enable SystemTap/DTrace tracing diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.12.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.12.0-r1.ebuild deleted file mode 100644 index 99212ff16bb..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.12.0-r1.ebuild +++ /dev/null @@ -1,365 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Ukrainian translation causes compile failure, so skip it for now -#PLOCALES="ca de es fr ja ko pt_BR ru sv tr uk" -PLOCALES="ca de es fr ja ko pt_BR ru sv tr" -PLOCALES_BIN="${PLOCALES} bg cs eu fi hu id it ka nb nl pl pt tg zh_TW zh_CN" -PLOCALE_BACKUP="sv" -PYTHON_COMPAT=( python3_{11..14} ) - -inherit autotools linux-info multilib-minimal optfeature plocale \ - python-single-r1 pam systemd tmpfiles udev toolchain-funcs verify-sig - -DESCRIPTION="System Security Services Daemon provides access to identity and authentication" -HOMEPAGE="https://github.com/SSSD/sssd" -if [[ ${PV} != 9999 ]]; then - SRC_URI="https://github.com/SSSD/sssd/releases/download/${PV}/${P}.tar.gz - https://github.com/SSSD/sssd/releases/download/${PV}/${P}.tar.gz.asc" - KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" -else - inherit git-r3 - EGIT_REPO_URI="https://github.com/SSSD/sssd.git" - EGIT_BRANCH="master" -fi - -LICENSE="GPL-3" -SLOT="0" -IUSE="doc +netlink nfsv4 nls passkey python samba selinux systemd systemtap test" -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" -RESTRICT="!test? ( test )" - -DEPEND=" - >=app-crypt/mit-krb5-1.19.1[${MULTILIB_USEDEP}] - app-crypt/p11-kit - >=dev-libs/ding-libs-0.2 - >=dev-libs/cyrus-sasl-2.1.25-r3[kerberos] - dev-libs/jansson:= - dev-libs/libpcre2:= - dev-libs/libunistring:=[${MULTILIB_USEDEP}] - >=dev-libs/popt-1.16 - >=dev-libs/openssl-1.0.2:= - >=net-dns/bind-9.9[gssapi] - >=net-dns/c-ares-1.10.0-r1:=[${MULTILIB_USEDEP}] - >=net-nds/openldap-2.4.30:=[sasl,experimental] - net-fs/cifs-utils[acl] - >=sys-apps/dbus-1.6 - >=sys-apps/keyutils-1.5:= - sys-libs/libcap - >=sys-libs/pam-0-r1[${MULTILIB_USEDEP}] - >=sys-libs/talloc-2.0.7 - >=sys-libs/tdb-1.2.9 - >=sys-libs/tevent-0.9.16 - virtual/ldb:= - virtual/libintl - netlink? ( dev-libs/libnl:3 ) - nfsv4? ( >=net-fs/nfs-utils-2.3.1-r2 ) - nls? ( >=sys-devel/gettext-0.18 ) - passkey? ( dev-libs/libfido2:= ) - python? ( - ${PYTHON_DEPS} - systemd? ( - $(python_gen_cond_dep ' - dev-python/python-systemd[${PYTHON_USEDEP}] - ') - ) - ) - samba? ( >=net-fs/samba-4.10.2[winbind] ) - selinux? ( - >=sys-libs/libselinux-2.1.9 - >=sys-libs/libsemanage-2.1 - ) - systemd? ( - sys-apps/systemd:= - sys-apps/util-linux - ) - systemtap? ( dev-debug/systemtap )" -RDEPEND="${DEPEND} - acct-user/sssd - acct-group/sssd - selinux? ( >=sec-policy/selinux-sssd-2.20120725-r9 )" -DEPEND+=" - sys-apps/shadow" -BDEPEND=" - acct-user/sssd - acct-group/sssd - sys-libs/libcap - virtual/pkgconfig - ${PYTHON_DEPS} - doc? ( app-text/doxygen ) - nls? ( app-text/po4a - sys-devel/gettext ) - test? ( - dev-libs/check - dev-libs/softhsm:2 - dev-util/cmocka - net-libs/gnutls[pkcs11,tools] - sys-libs/libfaketime - sys-libs/nss_wrapper - sys-libs/pam_wrapper - sys-libs/uid_wrapper - ) - app-text/docbook-xml-dtd:4.4 - >=dev-libs/libxslt-1.1.26 - verify-sig? ( sec-keys/openpgp-keys-sssd ) -" - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/sssd.asc - -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.10.0_beta2-fix-systemd-systemconfdir.patch" - "${FILESDIR}/${PN}-2.12.0-dont-clobber-getpwnam-buffer.patch" -) - -MULTILIB_WRAPPED_HEADERS=( - /usr/include/ipa_hbac.h - /usr/include/sss_idmap.h - /usr/include/sss_nss_idmap.h - # --with-ifp - /usr/include/sss_sifp.h - /usr/include/sss_sifp_dbus.h - # from 1.15.3 - /usr/include/sss_certmap.h -) - -pkg_setup() { - linux-info_pkg_setup - python-single-r1_pkg_setup -} - -src_prepare() { - default - - plocale_get_locales > src/man/po/LINGUAS || die - - sed -i \ - -e "/_langs]/ s/ .*//" \ - src/man/po/po4a.cfg \ - || die - enable_locale() { - local locale=${1} - - sed -i \ - -e "/_langs]/ s/$/ ${locale}/" \ - src/man/po/po4a.cfg \ - || die - } - - plocale_for_each_locale enable_locale - - PLOCALES="${PLOCALES_BIN}" - plocale_get_locales > po/LINGUAS || die - - sed -i \ - -e 's:/var/run:/run:' \ - src/examples/logrotate \ - || die - - # disable flaky test, see https://github.com/SSSD/sssd/issues/5631 - sed -i \ - -e '/^\s*pam-srv-tests[ \\]*$/d' \ - Makefile.am \ - || die - - # requires valgrind headers installed, see - # https://github.com/SSSD/sssd/pull/7845 - sed -i \ - -e '/^\s*test_iobuf[ \\]*$/d' \ - Makefile.am \ - || die - - eautoreconf - - multilib_copy_sources -} - -src_configure() { - local native_dbus_cflags=$($(tc-getPKG_CONFIG) --cflags dbus-1 || die) - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=() - - myconf+=( - --libexecdir="${EPREFIX}"/usr/libexec - --localstatedir="${EPREFIX}"/var - --runstatedir="${EPREFIX}"/run - --sbindir="${EPREFIX}"/usr/sbin - --with-pid-path="${EPREFIX}"/run/sssd - --with-plugin-path="${EPREFIX}"/usr/$(get_libdir)/sssd - --enable-pammoddir="${EPREFIX}"/$(getpam_mod_dir) - --with-ldb-lib-dir="${EPREFIX}"/usr/$(get_libdir)/samba/ldb - --with-db-path="${EPREFIX}"/var/lib/sss/db - --with-gpo-cache-path="${EPREFIX}"/var/lib/sss/gpo_cache - --with-pubconf-path="${EPREFIX}"/var/lib/sss/pubconf - --with-pipe-path="${EPREFIX}"/var/lib/sss/pipes - --with-mcache-path="${EPREFIX}"/var/lib/sss/mc - --with-secrets-db-path="${EPREFIX}"/var/lib/sss/secrets - --with-log-path="${EPREFIX}"/var/log/sssd - --with-tmpfilesdir=/usr/lib/tmpfiles.d - --with-udevrulesdir="$(get_udevdir)/rules.d" - --with-kcm - --enable-kcm-renewal - --with-os=gentoo - --disable-rpath - --disable-static - # Valgrind is only used for tests - --disable-valgrind - $(use_with samba) - --with-smb-idmap-interface-version=6 - --enable-cifs-idmap-plugin - $(multilib_native_use_with selinux) - --enable-krb5-locator-plugin - $(use_enable samba pac-responder) - $(multilib_native_use_with nfsv4 nfsv4-idmapd-plugin) - $(use_enable nls) - $(multilib_native_use_with netlink libnl) - --with-manpages - --with-sudo - $(multilib_native_with autofs) - $(multilib_native_with ssh) - --without-oidc-child - $(multilib_native_with passkey) - --with-subid - $(use_enable systemtap) - --without-python2-bindings - $(multilib_native_use_with python python3-bindings) - # Annoyingly configure requires that you pick systemd XOR sysv - --with-initscript=$(usex systemd systemd sysv) - --with-sssd-user=sssd - KRB5_CONFIG="${ESYSROOT}"/usr/bin/krb5-config - CPPFLAGS="${CPPFLAGS} -I${ESYSROOT}/usr/include/samba-4.0" - ) - - use systemd && myconf+=( - --with-systemdunitdir=$(systemd_get_systemunitdir) - ) - - if ! multilib_is_native_abi; then - # work-around all the libraries that are used for CLI and server - myconf+=( - {POPT,TALLOC,TDB,TEVENT,LDB}_{CFLAGS,LIBS}=' ' - # ldb headers are fine since native needs it - # ldb lib fails... but it does not seem to bother - {DHASH,UNISTRING,INI_CONFIG_V{0,1,1_1,1_3}}_{CFLAGS,LIBS}=' ' - {PCRE,CARES,SYSTEMD_LOGIN,SASL,DBUS,CRYPTO,P11_KIT}_{CFLAGS,LIBS}=' ' - {NDR_NBT,SAMBA_UTIL,SMBCLIENT,NDR_KRB5PAC,JANSSON}_{CFLAGS,LIBS}=' ' - - # use native include path for dbus (needed for build) - DBUS_CFLAGS="${native_dbus_cflags}" - - # non-pkgconfig checks - ac_cv_lib_ldap_ldap_search=yes - --without-kcm - --without-manpages - ) - fi - - econf "${myconf[@]}" -} - -multilib_src_compile() { - if multilib_is_native_abi; then - default - use doc && emake docs - else - emake libnss_sss.la pam_sss.la pam_sss_gss.la - emake sssd_krb5_locator_plugin.la - use samba && emake sssd_pac_plugin.la - fi -} - -multilib_src_test() { - if multilib_is_native_abi; then - local -x CK_TIMEOUT_MULTIPLIER=10 - emake check VERBOSE=yes - fi -} - -multilib_src_install() { - if multilib_is_native_abi; then - emake -j1 DESTDIR="${D}" install - if use python; then - python_fix_shebang "${ED}" - python_optimize - fi - else - # easier than playing with automake... - dopammod .libs/pam_sss.so - dopammod .libs/pam_sss_gss.so - - into / - dolib.so .libs/libnss_sss.so* - - exeinto /usr/$(get_libdir)/krb5/plugins/libkrb5 - doexe .libs/sssd_krb5_locator_plugin.so - - if use samba; then - exeinto /usr/$(get_libdir)/krb5/plugins/authdata - doexe .libs/sssd_pac_plugin.so - fi - fi -} - -multilib_src_install_all() { - einstalldocs - - insinto /etc/sssd - insopts -m600 - doins src/examples/sssd-example.conf - - insinto /etc/logrotate.d - insopts -m644 - newins src/examples/logrotate sssd - - newconfd "${FILESDIR}"/sssd.conf sssd - - keepdir /var/lib/sss/db - keepdir /var/lib/sss/deskprofile - keepdir /var/lib/sss/gpo_cache - keepdir /var/lib/sss/keytabs - keepdir /var/lib/sss/mc - keepdir /var/lib/sss/pipes/private - keepdir /var/lib/sss/pubconf/krb5.include.d - keepdir /var/lib/sss/secrets - keepdir /var/log/sssd - keepdir /etc/sssd/conf.d - keepdir /etc/sssd/pki - - # strip empty dirs - if ! use doc; then - rm -r "${ED}"/usr/share/doc/"${PF}"/doc || die - rm -r "${ED}"/usr/share/doc/"${PF}"/{hbac,idmap,nss_idmap}_doc || die - fi - - rm -r "${ED}"/run || die - find "${ED}" -type f -name '*.la' -delete || die -} - -pkg_postinst() { - udev_reload - tmpfiles_process sssd-tmpfiles.conf - echo - elog "You must set up sssd.conf (default installed into /etc/sssd)" - elog "and (optionally) configuration in /etc/pam.d in order to use SSSD" - elog "features." - echo - optfeature "Kerberos keytab renew (see krb5_renew_interval)" app-crypt/adcli - - if ! use python; then - echo - ewarn "sssctl analyze will not work because the python USE flag is disabled." - fi -} - -pkg_postrm() { - udev_reload -} diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.12.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.12.0-r2.ebuild new file mode 100644 index 00000000000..817ce3a2b77 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.12.0-r2.ebuild @@ -0,0 +1,377 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Ukrainian translation causes compile failure, so skip it for now +#PLOCALES="ca de es fr ja ko pt_BR ru sv tr uk" +PLOCALES="ca de es fr ja ko pt_BR ru sv tr" +PLOCALES_BIN="${PLOCALES} bg cs eu fi hu id it ka nb nl pl pt tg zh_TW zh_CN" +PLOCALE_BACKUP="sv" +PYTHON_COMPAT=( python3_{11..14} ) + +inherit autotools fcaps linux-info multilib-minimal optfeature plocale \ + python-single-r1 pam systemd tmpfiles udev toolchain-funcs verify-sig + +DESCRIPTION="System Security Services Daemon provides access to identity and authentication" +HOMEPAGE="https://github.com/SSSD/sssd" +if [[ ${PV} != 9999 ]]; then + SRC_URI="https://github.com/SSSD/sssd/releases/download/${PV}/${P}.tar.gz + https://github.com/SSSD/sssd/releases/download/${PV}/${P}.tar.gz.asc" + KEYWORDS="amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc x86" +else + inherit git-r3 + EGIT_REPO_URI="https://github.com/SSSD/sssd.git" + EGIT_BRANCH="master" +fi + +LICENSE="GPL-3" +SLOT="0" +IUSE="doc +netlink nfsv4 nls passkey python samba selinux systemd systemtap test" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" +RESTRICT="!test? ( test )" + +DEPEND=" + >=app-crypt/mit-krb5-1.19.1[${MULTILIB_USEDEP}] + app-crypt/p11-kit + >=dev-libs/ding-libs-0.2 + >=dev-libs/cyrus-sasl-2.1.25-r3[kerberos] + dev-libs/jansson:= + dev-libs/libpcre2:= + dev-libs/libunistring:=[${MULTILIB_USEDEP}] + >=dev-libs/popt-1.16 + >=dev-libs/openssl-1.0.2:= + >=net-dns/bind-9.9[gssapi] + >=net-dns/c-ares-1.10.0-r1:=[${MULTILIB_USEDEP}] + >=net-nds/openldap-2.4.30:=[sasl,experimental] + net-fs/cifs-utils[acl] + >=sys-apps/dbus-1.6 + >=sys-apps/keyutils-1.5:= + sys-libs/libcap + >=sys-libs/pam-0-r1[${MULTILIB_USEDEP}] + >=sys-libs/talloc-2.0.7 + >=sys-libs/tdb-1.2.9 + >=sys-libs/tevent-0.9.16 + virtual/ldb:= + virtual/libintl + netlink? ( dev-libs/libnl:3 ) + nfsv4? ( >=net-fs/nfs-utils-2.3.1-r2 ) + nls? ( >=sys-devel/gettext-0.18 ) + passkey? ( dev-libs/libfido2:= ) + python? ( + ${PYTHON_DEPS} + systemd? ( + $(python_gen_cond_dep ' + dev-python/python-systemd[${PYTHON_USEDEP}] + ') + ) + ) + samba? ( >=net-fs/samba-4.10.2[winbind] ) + selinux? ( + >=sys-libs/libselinux-2.1.9 + >=sys-libs/libsemanage-2.1 + ) + systemd? ( + sys-apps/systemd:= + sys-apps/util-linux + ) + systemtap? ( dev-debug/systemtap )" +RDEPEND="${DEPEND} + acct-user/sssd + acct-group/sssd + selinux? ( >=sec-policy/selinux-sssd-2.20120725-r9 )" +DEPEND+=" + sys-apps/shadow" +BDEPEND=" + acct-user/sssd + acct-group/sssd + sys-libs/libcap + virtual/pkgconfig + ${PYTHON_DEPS} + doc? ( app-text/doxygen ) + nls? ( app-text/po4a + sys-devel/gettext ) + test? ( + dev-libs/check + dev-libs/softhsm:2 + dev-util/cmocka + net-libs/gnutls[pkcs11,tools] + sys-libs/libfaketime + sys-libs/nss_wrapper + sys-libs/pam_wrapper + sys-libs/uid_wrapper + ) + app-text/docbook-xml-dtd:4.4 + >=dev-libs/libxslt-1.1.26 + verify-sig? ( sec-keys/openpgp-keys-sssd ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/sssd.asc + +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.10.0_beta2-fix-systemd-systemconfdir.patch" + "${FILESDIR}/${PN}-2.12.0-dont-clobber-getpwnam-buffer.patch" +) + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/ipa_hbac.h + /usr/include/sss_idmap.h + /usr/include/sss_nss_idmap.h + # --with-ifp + /usr/include/sss_sifp.h + /usr/include/sss_sifp_dbus.h + # from 1.15.3 + /usr/include/sss_certmap.h +) + +# mimic upstream's setcap here, they're liable to get lost +# https://github.com/SSSD/sssd/blob/a6d0f0cf484aeeead535b7138d1334b309c61a4e/Makefile.am#L5567 +FILECAPS=( + cap_dac_read_search=p "usr/libexec/sssd/ldap_child" + -- + cap_dac_read_search,cap_setuid,cap_setgid=p "usr/libexec/sssd/krb5_child" + -- + cap_dac_read_search=p "usr/libexec/sssd/sssd_pam" +) + +pkg_setup() { + linux-info_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + default + + plocale_get_locales > src/man/po/LINGUAS || die + + sed -i \ + -e "/_langs]/ s/ .*//" \ + src/man/po/po4a.cfg \ + || die + enable_locale() { + local locale=${1} + + sed -i \ + -e "/_langs]/ s/$/ ${locale}/" \ + src/man/po/po4a.cfg \ + || die + } + + plocale_for_each_locale enable_locale + + PLOCALES="${PLOCALES_BIN}" + plocale_get_locales > po/LINGUAS || die + + sed -i \ + -e 's:/var/run:/run:' \ + src/examples/logrotate \ + || die + + # disable flaky test, see https://github.com/SSSD/sssd/issues/5631 + sed -i \ + -e '/^\s*pam-srv-tests[ \\]*$/d' \ + Makefile.am \ + || die + + # requires valgrind headers installed, see + # https://github.com/SSSD/sssd/pull/7845 + sed -i \ + -e '/^\s*test_iobuf[ \\]*$/d' \ + Makefile.am \ + || die + + eautoreconf + + multilib_copy_sources +} + +src_configure() { + local native_dbus_cflags=$($(tc-getPKG_CONFIG) --cflags dbus-1 || die) + + multilib-minimal_src_configure +} + +multilib_src_configure() { + local myconf=() + + myconf+=( + --libexecdir="${EPREFIX}"/usr/libexec + --localstatedir="${EPREFIX}"/var + --runstatedir="${EPREFIX}"/run + --sbindir="${EPREFIX}"/usr/sbin + --with-pid-path="${EPREFIX}"/run/sssd + --with-plugin-path="${EPREFIX}"/usr/$(get_libdir)/sssd + --enable-pammoddir="${EPREFIX}"/$(getpam_mod_dir) + --with-ldb-lib-dir="${EPREFIX}"/usr/$(get_libdir)/samba/ldb + --with-db-path="${EPREFIX}"/var/lib/sss/db + --with-gpo-cache-path="${EPREFIX}"/var/lib/sss/gpo_cache + --with-pubconf-path="${EPREFIX}"/var/lib/sss/pubconf + --with-pipe-path="${EPREFIX}"/var/lib/sss/pipes + --with-mcache-path="${EPREFIX}"/var/lib/sss/mc + --with-secrets-db-path="${EPREFIX}"/var/lib/sss/secrets + --with-log-path="${EPREFIX}"/var/log/sssd + --with-tmpfilesdir=/usr/lib/tmpfiles.d + --with-udevrulesdir="$(get_udevdir)/rules.d" + --with-kcm + --enable-kcm-renewal + --with-os=gentoo + --disable-rpath + --disable-static + # Valgrind is only used for tests + --disable-valgrind + $(use_with samba) + --with-smb-idmap-interface-version=6 + --enable-cifs-idmap-plugin + $(multilib_native_use_with selinux) + --enable-krb5-locator-plugin + $(use_enable samba pac-responder) + $(multilib_native_use_with nfsv4 nfsv4-idmapd-plugin) + $(use_enable nls) + $(multilib_native_use_with netlink libnl) + --with-manpages + --with-sudo + $(multilib_native_with autofs) + $(multilib_native_with ssh) + --without-oidc-child + $(multilib_native_with passkey) + --with-subid + $(use_enable systemtap) + --without-python2-bindings + $(multilib_native_use_with python python3-bindings) + # Annoyingly configure requires that you pick systemd XOR sysv + --with-initscript=$(usex systemd systemd sysv) + --with-sssd-user=sssd + KRB5_CONFIG="${ESYSROOT}"/usr/bin/krb5-config + CPPFLAGS="${CPPFLAGS} -I${ESYSROOT}/usr/include/samba-4.0" + ) + + use systemd && myconf+=( + --with-systemdunitdir=$(systemd_get_systemunitdir) + --with-syslog=$(usex systemd journald syslog) + ) + + if ! multilib_is_native_abi; then + # work-around all the libraries that are used for CLI and server + myconf+=( + {POPT,TALLOC,TDB,TEVENT,LDB}_{CFLAGS,LIBS}=' ' + # ldb headers are fine since native needs it + # ldb lib fails... but it does not seem to bother + {DHASH,UNISTRING,INI_CONFIG_V{0,1,1_1,1_3}}_{CFLAGS,LIBS}=' ' + {PCRE,CARES,SYSTEMD_LOGIN,SASL,DBUS,CRYPTO,P11_KIT}_{CFLAGS,LIBS}=' ' + {NDR_NBT,SAMBA_UTIL,SMBCLIENT,NDR_KRB5PAC,JANSSON}_{CFLAGS,LIBS}=' ' + + # use native include path for dbus (needed for build) + DBUS_CFLAGS="${native_dbus_cflags}" + + # non-pkgconfig checks + ac_cv_lib_ldap_ldap_search=yes + --without-kcm + --without-manpages + ) + fi + + econf "${myconf[@]}" +} + +multilib_src_compile() { + if multilib_is_native_abi; then + default + use doc && emake docs + else + emake libnss_sss.la pam_sss.la pam_sss_gss.la + emake sssd_krb5_locator_plugin.la + use samba && emake sssd_pac_plugin.la + fi +} + +multilib_src_test() { + if multilib_is_native_abi; then + local -x CK_TIMEOUT_MULTIPLIER=10 + emake check VERBOSE=yes + fi +} + +multilib_src_install() { + if multilib_is_native_abi; then + emake -j1 DESTDIR="${D}" install + if use python; then + python_fix_shebang "${ED}" + python_optimize + fi + else + # easier than playing with automake... + dopammod .libs/pam_sss.so + dopammod .libs/pam_sss_gss.so + + into / + dolib.so .libs/libnss_sss.so* + + exeinto /usr/$(get_libdir)/krb5/plugins/libkrb5 + doexe .libs/sssd_krb5_locator_plugin.so + + if use samba; then + exeinto /usr/$(get_libdir)/krb5/plugins/authdata + doexe .libs/sssd_pac_plugin.so + fi + fi +} + +multilib_src_install_all() { + einstalldocs + + insinto /etc/sssd + insopts -m600 + doins src/examples/sssd-example.conf + + insinto /etc/logrotate.d + insopts -m644 + newins src/examples/logrotate sssd + + newconfd "${FILESDIR}"/sssd.conf sssd + + keepdir /var/lib/sss/db + keepdir /var/lib/sss/deskprofile + keepdir /var/lib/sss/gpo_cache + keepdir /var/lib/sss/keytabs + keepdir /var/lib/sss/mc + keepdir /var/lib/sss/pipes/private + keepdir /var/lib/sss/pubconf/krb5.include.d + keepdir /var/lib/sss/secrets + keepdir /var/log/sssd + keepdir /etc/sssd/conf.d + keepdir /etc/sssd/pki + + # strip empty dirs + if ! use doc; then + rm -r "${ED}"/usr/share/doc/"${PF}"/doc || die + rm -r "${ED}"/usr/share/doc/"${PF}"/{hbac,idmap,nss_idmap}_doc || die + fi + + rm -r "${ED}"/run || die + find "${ED}" -type f -name '*.la' -delete || die +} + +pkg_postinst() { + fcaps_pkg_postinst + udev_reload + tmpfiles_process sssd-tmpfiles.conf + echo + elog "You must set up sssd.conf (default installed into /etc/sssd)" + elog "and (optionally) configuration in /etc/pam.d in order to use SSSD" + elog "features." + echo + optfeature "Kerberos keytab renew (see krb5_renew_interval)" app-crypt/adcli + + if ! use python; then + echo + ewarn "sssctl analyze will not work because the python USE flag is disabled." + fi +} + +pkg_postrm() { + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.12.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.12.0.ebuild deleted file mode 100644 index 9cd07b712ee..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.12.0.ebuild +++ /dev/null @@ -1,392 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Ukrainian translation causes compile failure, so skip it for now -#PLOCALES="ca de es fr ja ko pt_BR ru sv tr uk" -PLOCALES="ca de es fr ja ko pt_BR ru sv tr" -PLOCALES_BIN="${PLOCALES} bg cs eu fi hu id it ka nb nl pl pt tg zh_TW zh_CN" -PLOCALE_BACKUP="sv" -PYTHON_COMPAT=( python3_{11..14} ) - -inherit autotools linux-info multilib-minimal optfeature plocale \ - python-single-r1 pam systemd tmpfiles udev toolchain-funcs verify-sig - -DESCRIPTION="System Security Services Daemon provides access to identity and authentication" -HOMEPAGE="https://github.com/SSSD/sssd" -if [[ ${PV} != 9999 ]]; then - SRC_URI="https://github.com/SSSD/sssd/releases/download/${PV}/${P}.tar.gz - https://github.com/SSSD/sssd/releases/download/${PV}/${P}.tar.gz.asc" - KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" -else - inherit git-r3 - EGIT_REPO_URI="https://github.com/SSSD/sssd.git" - EGIT_BRANCH="master" -fi - -LICENSE="GPL-3" -SLOT="0" -IUSE="doc +netlink nfsv4 nls passkey python samba selinux systemd systemtap test" -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" -RESTRICT="!test? ( test )" - -DEPEND=" - >=app-crypt/mit-krb5-1.19.1[${MULTILIB_USEDEP}] - app-crypt/p11-kit - >=dev-libs/ding-libs-0.2 - >=dev-libs/cyrus-sasl-2.1.25-r3[kerberos] - dev-libs/jansson:= - dev-libs/libpcre2:= - dev-libs/libunistring:=[${MULTILIB_USEDEP}] - >=dev-libs/popt-1.16 - >=dev-libs/openssl-1.0.2:= - >=net-dns/bind-9.9[gssapi] - >=net-dns/c-ares-1.10.0-r1:=[${MULTILIB_USEDEP}] - >=net-nds/openldap-2.4.30:=[sasl,experimental] - net-fs/cifs-utils[acl] - >=sys-apps/dbus-1.6 - >=sys-apps/keyutils-1.5:= - sys-libs/libcap - >=sys-libs/pam-0-r1[${MULTILIB_USEDEP}] - >=sys-libs/talloc-2.0.7 - >=sys-libs/tdb-1.2.9 - >=sys-libs/tevent-0.9.16 - virtual/ldb:= - virtual/libintl - netlink? ( dev-libs/libnl:3 ) - nfsv4? ( >=net-fs/nfs-utils-2.3.1-r2 ) - nls? ( >=sys-devel/gettext-0.18 ) - passkey? ( dev-libs/libfido2:= ) - python? ( - ${PYTHON_DEPS} - systemd? ( - $(python_gen_cond_dep ' - dev-python/python-systemd[${PYTHON_USEDEP}] - ') - ) - ) - samba? ( >=net-fs/samba-4.10.2[winbind] ) - selinux? ( - >=sys-libs/libselinux-2.1.9 - >=sys-libs/libsemanage-2.1 - ) - systemd? ( - sys-apps/systemd:= - sys-apps/util-linux - ) - systemtap? ( dev-debug/systemtap )" -RDEPEND="${DEPEND} - acct-user/sssd - acct-group/sssd - passkey? ( sys-apps/pcsc-lite[policykit] ) - selinux? ( >=sec-policy/selinux-sssd-2.20120725-r9 )" -DEPEND+=" - sys-apps/shadow" -BDEPEND=" - acct-user/sssd - acct-group/sssd - sys-libs/libcap - virtual/pkgconfig - ${PYTHON_DEPS} - doc? ( app-text/doxygen ) - nls? ( app-text/po4a - sys-devel/gettext ) - test? ( - dev-libs/check - dev-libs/softhsm:2 - dev-util/cmocka - net-libs/gnutls[pkcs11,tools] - sys-libs/libfaketime - sys-libs/nss_wrapper - sys-libs/pam_wrapper - sys-libs/uid_wrapper - ) - app-text/docbook-xml-dtd:4.4 - >=dev-libs/libxslt-1.1.26 - verify-sig? ( sec-keys/openpgp-keys-sssd ) -" - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/sssd.asc - -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.10.0_beta2-fix-systemd-systemconfdir.patch" -) - -MULTILIB_WRAPPED_HEADERS=( - /usr/include/ipa_hbac.h - /usr/include/sss_idmap.h - /usr/include/sss_nss_idmap.h - # --with-ifp - /usr/include/sss_sifp.h - /usr/include/sss_sifp_dbus.h - # from 1.15.3 - /usr/include/sss_certmap.h -) - -sssd_migrate_files() { - if has_version "<=sys-auth/sssd-2.9.9999" - then - einfo "Checking if sssd is running" - if [ -f /run/sssd.pid ] - then - elog "Please stop sssd after installing before" - elog "performing the migration process" - fi - einfo "Checking if /var/lib/sss ownership" - if [ -d /var/lib/sss ] && [ $(stat -c "%U:%G" /var/lib/sss) != "sssd:sssd" ] - then - elog "After installing, please execute" - elog "chown -R sssd:sssd /var/lib/sss" - fi - einfo "Checking if /var/log/sssd ownership" - if [ -d /var/log/sssd ] && [ $(stat -c "%U:%G" /var/log/sssd) != "sssd:sssd" ] - then - elog "After installing, please execute" - elog "chown -R sssd:sssd /var/log/sssd" - fi - einfo "Checking if /etc/sssd ownership" - if ! use systemd && [ -d /etc/sssd ] && [ $(stat -c "%U:%G" /etc/sssd) != "root:sssd" ] - then - elog "After installing, please execute" - elog "chown -R root:sssd /etc/sssd" - fi - fi -} - -pkg_setup() { - linux-info_pkg_setup - python-single-r1_pkg_setup - - sssd_migrate_files -} - -src_prepare() { - default - - plocale_get_locales > src/man/po/LINGUAS || die - - sed -i \ - -e "/_langs]/ s/ .*//" \ - src/man/po/po4a.cfg \ - || die - enable_locale() { - local locale=${1} - - sed -i \ - -e "/_langs]/ s/$/ ${locale}/" \ - src/man/po/po4a.cfg \ - || die - } - - plocale_for_each_locale enable_locale - - PLOCALES="${PLOCALES_BIN}" - plocale_get_locales > po/LINGUAS || die - - sed -i \ - -e 's:/var/run:/run:' \ - src/examples/logrotate \ - || die - - # disable flaky test, see https://github.com/SSSD/sssd/issues/5631 - sed -i \ - -e '/^\s*pam-srv-tests[ \\]*$/d' \ - Makefile.am \ - || die - - # requires valgrind headers installed, see - # https://github.com/SSSD/sssd/pull/7845 - sed -i \ - -e '/^\s*test_iobuf[ \\]*$/d' \ - Makefile.am \ - || die - - eautoreconf - - multilib_copy_sources -} - -src_configure() { - local native_dbus_cflags=$($(tc-getPKG_CONFIG) --cflags dbus-1 || die) - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=() - - myconf+=( - --libexecdir="${EPREFIX}"/usr/libexec - --localstatedir="${EPREFIX}"/var - --runstatedir="${EPREFIX}"/run - --sbindir="${EPREFIX}"/usr/sbin - --with-pid-path="${EPREFIX}"/run/sssd - --with-plugin-path="${EPREFIX}"/usr/$(get_libdir)/sssd - --enable-pammoddir="${EPREFIX}"/$(getpam_mod_dir) - --with-ldb-lib-dir="${EPREFIX}"/usr/$(get_libdir)/samba/ldb - --with-db-path="${EPREFIX}"/var/lib/sss/db - --with-gpo-cache-path="${EPREFIX}"/var/lib/sss/gpo_cache - --with-pubconf-path="${EPREFIX}"/var/lib/sss/pubconf - --with-pipe-path="${EPREFIX}"/var/lib/sss/pipes - --with-mcache-path="${EPREFIX}"/var/lib/sss/mc - --with-secrets-db-path="${EPREFIX}"/var/lib/sss/secrets - --with-log-path="${EPREFIX}"/var/log/sssd - --with-tmpfilesdir=/usr/lib/tmpfiles.d - --with-udevrulesdir="$(get_udevdir)/rules.d" - --with-kcm - --enable-kcm-renewal - --with-os=gentoo - --disable-rpath - --disable-static - # Valgrind is only used for tests - --disable-valgrind - $(use_with samba) - --with-smb-idmap-interface-version=6 - --enable-cifs-idmap-plugin - $(multilib_native_use_with selinux) - --enable-krb5-locator-plugin - $(use_enable samba pac-responder) - $(multilib_native_use_with nfsv4 nfsv4-idmapd-plugin) - $(use_enable nls) - $(multilib_native_use_with netlink libnl) - --with-manpages - --with-sudo - $(multilib_native_with autofs) - $(multilib_native_with ssh) - --without-oidc-child - $(multilib_native_with passkey) - --with-subid - $(use_enable systemtap) - --without-python2-bindings - $(multilib_native_use_with python python3-bindings) - # Annoyingly configure requires that you pick systemd XOR sysv - --with-initscript=$(usex systemd systemd sysv) - --with-sssd-user=sssd - KRB5_CONFIG="${ESYSROOT}"/usr/bin/krb5-config - CPPFLAGS="${CPPFLAGS} -I${ESYSROOT}/usr/include/samba-4.0" - ) - - use systemd && myconf+=( - --with-systemdunitdir=$(systemd_get_systemunitdir) - ) - - if ! multilib_is_native_abi; then - # work-around all the libraries that are used for CLI and server - myconf+=( - {POPT,TALLOC,TDB,TEVENT,LDB}_{CFLAGS,LIBS}=' ' - # ldb headers are fine since native needs it - # ldb lib fails... but it does not seem to bother - {DHASH,UNISTRING,INI_CONFIG_V{0,1,1_1,1_3}}_{CFLAGS,LIBS}=' ' - {PCRE,CARES,SYSTEMD_LOGIN,SASL,DBUS,CRYPTO,P11_KIT}_{CFLAGS,LIBS}=' ' - {NDR_NBT,SAMBA_UTIL,SMBCLIENT,NDR_KRB5PAC,JANSSON}_{CFLAGS,LIBS}=' ' - - # use native include path for dbus (needed for build) - DBUS_CFLAGS="${native_dbus_cflags}" - - # non-pkgconfig checks - ac_cv_lib_ldap_ldap_search=yes - --without-kcm - --without-manpages - ) - fi - - econf "${myconf[@]}" -} - -multilib_src_compile() { - if multilib_is_native_abi; then - default - use doc && emake docs - else - emake libnss_sss.la pam_sss.la pam_sss_gss.la - emake sssd_krb5_locator_plugin.la - use samba && emake sssd_pac_plugin.la - fi -} - -multilib_src_test() { - if multilib_is_native_abi; then - local -x CK_TIMEOUT_MULTIPLIER=10 - emake check VERBOSE=yes - fi -} - -multilib_src_install() { - if multilib_is_native_abi; then - emake -j1 DESTDIR="${D}" install - if use python; then - python_fix_shebang "${ED}" - python_optimize - fi - else - # easier than playing with automake... - dopammod .libs/pam_sss.so - dopammod .libs/pam_sss_gss.so - - into / - dolib.so .libs/libnss_sss.so* - - exeinto /usr/$(get_libdir)/krb5/plugins/libkrb5 - doexe .libs/sssd_krb5_locator_plugin.so - - if use samba; then - exeinto /usr/$(get_libdir)/krb5/plugins/authdata - doexe .libs/sssd_pac_plugin.so - fi - fi -} - -multilib_src_install_all() { - einstalldocs - - insinto /etc/sssd - insopts -m600 - doins src/examples/sssd-example.conf - - insinto /etc/logrotate.d - insopts -m644 - newins src/examples/logrotate sssd - - newconfd "${FILESDIR}"/sssd.conf sssd - - keepdir /var/lib/sss/db - keepdir /var/lib/sss/deskprofile - keepdir /var/lib/sss/gpo_cache - keepdir /var/lib/sss/keytabs - keepdir /var/lib/sss/mc - keepdir /var/lib/sss/pipes/private - keepdir /var/lib/sss/pubconf/krb5.include.d - keepdir /var/lib/sss/secrets - keepdir /var/log/sssd - keepdir /etc/sssd/conf.d - keepdir /etc/sssd/pki - - # strip empty dirs - if ! use doc; then - rm -r "${ED}"/usr/share/doc/"${PF}"/doc || die - rm -r "${ED}"/usr/share/doc/"${PF}"/{hbac,idmap,nss_idmap}_doc || die - fi - - rm -r "${ED}"/run || die - find "${ED}" -type f -name '*.la' -delete || die -} - -pkg_postinst() { - tmpfiles_process sssd-tmpfiles.conf - echo - elog "You must set up sssd.conf (default installed into /etc/sssd)" - elog "and (optionally) configuration in /etc/pam.d in order to use SSSD" - elog "features." - echo - optfeature "Kerberos keytab renew (see krb5_renew_interval)" app-crypt/adcli - - if ! use python; then - echo - ewarn "sssctl analyze will not work because the python USE flag is disabled." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.13.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.13.0.ebuild new file mode 100644 index 00000000000..1899a277d08 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.13.0.ebuild @@ -0,0 +1,379 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PLOCALES="ca de es fr ja ko pt_BR ru sv tr" +PLOCALES_BIN="${PLOCALES} bg cs eu fi hu id it ka nb nl pl pt tg zh_TW zh_CN" +PLOCALE_BACKUP="sv" +PYTHON_COMPAT=( python3_{11..14} ) + +inherit autotools fcaps linux-info multilib-minimal optfeature plocale \ + python-single-r1 pam systemd tmpfiles udev toolchain-funcs verify-sig + +DESCRIPTION="System Security Services Daemon provides access to identity and authentication" +HOMEPAGE="https://github.com/SSSD/sssd" +if [[ ${PV} != 9999 ]]; then + SRC_URI="https://github.com/SSSD/sssd/releases/download/${PV}/${P}.tar.gz + https://github.com/SSSD/sssd/releases/download/${PV}/${P}.tar.gz.asc" + KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc x86" +else + inherit git-r3 + EGIT_REPO_URI="https://github.com/SSSD/sssd.git" + EGIT_BRANCH="master" +fi + +LICENSE="GPL-3" +SLOT="0" +IUSE="doc +netlink nfsv4 nls openid passkey python samba selinux systemd systemtap test" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" +RESTRICT="!test? ( test )" + +DEPEND=" + >=app-crypt/mit-krb5-1.19.1[${MULTILIB_USEDEP}] + app-crypt/p11-kit + >=dev-libs/ding-libs-0.2 + >=dev-libs/cyrus-sasl-2.1.25-r3[kerberos] + dev-libs/jansson:= + dev-libs/libpcre2:= + dev-libs/libunistring:=[${MULTILIB_USEDEP}] + >=dev-libs/popt-1.16 + >=dev-libs/openssl-1.0.2:= + >=net-dns/bind-9.9[gssapi] + >=net-dns/c-ares-1.10.0-r1:=[${MULTILIB_USEDEP}] + >=net-nds/openldap-2.4.30:=[sasl,experimental] + net-fs/cifs-utils[acl] + >=sys-apps/dbus-1.6 + >=sys-apps/keyutils-1.5:= + sys-libs/libcap + >=sys-libs/pam-0-r1[${MULTILIB_USEDEP}] + >=sys-libs/talloc-2.0.7 + >=sys-libs/tdb-1.2.9 + >=sys-libs/tevent-0.9.16 + virtual/ldb:= + virtual/libintl + netlink? ( dev-libs/libnl:3 ) + nfsv4? ( >=net-fs/nfs-utils-2.3.1-r2 ) + nls? ( >=sys-devel/gettext-0.18 ) + openid? ( + dev-libs/jose + net-misc/curl + ) + passkey? ( dev-libs/libfido2:= ) + python? ( + ${PYTHON_DEPS} + systemd? ( + $(python_gen_cond_dep ' + dev-python/python-systemd[${PYTHON_USEDEP}] + ') + ) + ) + samba? ( >=net-fs/samba-4.10.2[winbind] ) + selinux? ( + >=sys-libs/libselinux-2.1.9 + >=sys-libs/libsemanage-2.1 + ) + systemd? ( + sys-apps/systemd:= + sys-apps/util-linux + ) + systemtap? ( dev-debug/systemtap )" +RDEPEND="${DEPEND} + acct-user/sssd + acct-group/sssd + selinux? ( >=sec-policy/selinux-sssd-2.20120725-r9 )" +DEPEND+=" + sys-apps/shadow" +BDEPEND=" + acct-user/sssd + acct-group/sssd + sys-libs/libcap + virtual/pkgconfig + ${PYTHON_DEPS} + doc? ( app-text/doxygen ) + nls? ( app-text/po4a + sys-devel/gettext ) + test? ( + app-alternatives/bc + dev-libs/check + dev-libs/softhsm:2 + dev-util/cmocka + net-libs/gnutls[pkcs11,tools] + sys-libs/libfaketime + sys-libs/nss_wrapper + sys-libs/pam_wrapper + sys-libs/uid_wrapper + ) + app-text/docbook-xml-dtd:4.4 + >=dev-libs/libxslt-1.1.26 + verify-sig? ( sec-keys/openpgp-keys-sssd ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/sssd.asc + +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.10.0_beta2-fix-systemd-systemconfdir.patch" +) + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/ipa_hbac.h + /usr/include/sss_idmap.h + /usr/include/sss_nss_idmap.h + # --with-ifp + /usr/include/sss_sifp.h + /usr/include/sss_sifp_dbus.h + # from 1.15.3 + /usr/include/sss_certmap.h +) + +# mimic upstream's setcap here, they're liable to get lost +# https://github.com/SSSD/sssd/blob/a6d0f0cf484aeeead535b7138d1334b309c61a4e/Makefile.am#L5567 +FILECAPS=( + cap_dac_read_search=p "usr/libexec/sssd/ldap_child" + -- + cap_dac_read_search,cap_setuid,cap_setgid=p "usr/libexec/sssd/krb5_child" + -- + cap_dac_read_search=p "usr/libexec/sssd/sssd_pam" +) + +pkg_setup() { + linux-info_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + default + + plocale_get_locales > src/man/po/LINGUAS || die + + sed -i \ + -e "/_langs]/ s/ .*//" \ + src/man/po/po4a.cfg \ + || die + enable_locale() { + local locale=${1} + + sed -i \ + -e "/_langs]/ s/$/ ${locale}/" \ + src/man/po/po4a.cfg \ + || die + } + + plocale_for_each_locale enable_locale + + PLOCALES="${PLOCALES_BIN}" + plocale_get_locales > po/LINGUAS || die + + sed -i \ + -e 's:/var/run:/run:' \ + src/examples/logrotate \ + || die + + # disable flaky test, see https://github.com/SSSD/sssd/issues/5631 + sed -i \ + -e '/^\s*pam-srv-tests[ \\]*$/d' \ + Makefile.am \ + || die + + # requires valgrind headers installed, see + # https://github.com/SSSD/sssd/pull/7845 + sed -i \ + -e '/^\s*test_iobuf[ \\]*$/d' \ + Makefile.am \ + || die + + eautoreconf + + multilib_copy_sources +} + +src_configure() { + local native_dbus_cflags=$($(tc-getPKG_CONFIG) --cflags dbus-1 || die) + + multilib-minimal_src_configure +} + +multilib_src_configure() { + local myconf=() + + myconf+=( + --libexecdir="${EPREFIX}"/usr/libexec + --localstatedir="${EPREFIX}"/var + --runstatedir="${EPREFIX}"/run + --sbindir="${EPREFIX}"/usr/sbin + --with-pid-path="${EPREFIX}"/run/sssd + --with-plugin-path="${EPREFIX}"/usr/$(get_libdir)/sssd + --enable-pammoddir="${EPREFIX}"/$(getpam_mod_dir) + --with-ldb-lib-dir="${EPREFIX}"/usr/$(get_libdir)/samba/ldb + --with-db-path="${EPREFIX}"/var/lib/sss/db + --with-gpo-cache-path="${EPREFIX}"/var/lib/sss/gpo_cache + --with-pubconf-path="${EPREFIX}"/var/lib/sss/pubconf + --with-pipe-path="${EPREFIX}"/var/lib/sss/pipes + --with-mcache-path="${EPREFIX}"/var/lib/sss/mc + --with-secrets-db-path="${EPREFIX}"/var/lib/sss/secrets + --with-log-path="${EPREFIX}"/var/log/sssd + --with-tmpfilesdir=/usr/lib/tmpfiles.d + --with-udevrulesdir="$(get_udevdir)/rules.d" + --with-kcm + --enable-kcm-renewal + --with-os=gentoo + --disable-rpath + --disable-static + # Valgrind is only used for tests + --disable-valgrind + $(use_with samba) + --with-smb-idmap-interface-version=6 + --enable-cifs-idmap-plugin + $(multilib_native_use_with selinux) + --enable-krb5-locator-plugin + $(use_enable samba pac-responder) + $(multilib_native_use_with nfsv4 nfsv4-idmapd-plugin) + $(use_enable nls) + $(multilib_native_use_with netlink libnl) + --with-manpages + --with-sudo + $(multilib_native_with autofs) + $(multilib_native_with ssh) + $(use_with openid oidc-child) + $(multilib_native_with passkey) + --with-subid + $(use_enable systemtap) + --without-python2-bindings + $(multilib_native_use_with python python3-bindings) + # Annoyingly configure requires that you pick systemd XOR sysv + --with-initscript=$(usex systemd systemd sysv) + --with-sssd-user=sssd + KRB5_CONFIG="${ESYSROOT}"/usr/bin/krb5-config + CPPFLAGS="${CPPFLAGS} -I${ESYSROOT}/usr/include/samba-4.0" + ) + + use systemd && myconf+=( + --with-systemdunitdir=$(systemd_get_systemunitdir) + --with-syslog=$(usex systemd journald syslog) + ) + + if ! multilib_is_native_abi; then + # work-around all the libraries that are used for CLI and server + myconf+=( + {POPT,TALLOC,TDB,TEVENT,LDB}_{CFLAGS,LIBS}=' ' + # ldb headers are fine since native needs it + # ldb lib fails... but it does not seem to bother + {DHASH,UNISTRING,INI_CONFIG_V{0,1,1_1,1_3}}_{CFLAGS,LIBS}=' ' + {PCRE,CARES,SYSTEMD_LOGIN,SASL,DBUS,CRYPTO,P11_KIT}_{CFLAGS,LIBS}=' ' + {NDR_NBT,SAMBA_UTIL,SMBCLIENT,NDR_KRB5PAC,JANSSON}_{CFLAGS,LIBS}=' ' + + # use native include path for dbus (needed for build) + DBUS_CFLAGS="${native_dbus_cflags}" + + # non-pkgconfig checks + ac_cv_lib_ldap_ldap_search=yes + --without-kcm + --without-manpages + ) + fi + + econf "${myconf[@]}" +} + +multilib_src_compile() { + if multilib_is_native_abi; then + default + use doc && emake docs + else + emake libnss_sss.la pam_sss.la pam_sss_gss.la + emake sssd_krb5_locator_plugin.la + use samba && emake sssd_pac_plugin.la + fi +} + +multilib_src_test() { + if multilib_is_native_abi; then + local -x CK_TIMEOUT_MULTIPLIER=10 + emake check VERBOSE=yes + fi +} + +multilib_src_install() { + if multilib_is_native_abi; then + emake -j1 DESTDIR="${D}" install + if use python; then + python_fix_shebang "${ED}" + python_optimize + fi + else + # easier than playing with automake... + dopammod .libs/pam_sss.so + dopammod .libs/pam_sss_gss.so + + into / + dolib.so .libs/libnss_sss.so* + + exeinto /usr/$(get_libdir)/krb5/plugins/libkrb5 + doexe .libs/sssd_krb5_locator_plugin.so + + if use samba; then + exeinto /usr/$(get_libdir)/krb5/plugins/authdata + doexe .libs/sssd_pac_plugin.so + fi + fi +} + +multilib_src_install_all() { + einstalldocs + + insinto /etc/sssd + insopts -m600 + doins src/examples/sssd-example.conf + + insinto /etc/logrotate.d + insopts -m644 + newins src/examples/logrotate sssd + + newconfd "${FILESDIR}"/sssd.conf sssd + + keepdir /var/lib/sss/db + keepdir /var/lib/sss/deskprofile + keepdir /var/lib/sss/gpo_cache + keepdir /var/lib/sss/keytabs + keepdir /var/lib/sss/mc + keepdir /var/lib/sss/pipes/private + keepdir /var/lib/sss/pubconf/krb5.include.d + keepdir /var/lib/sss/secrets + keepdir /var/log/sssd + keepdir /etc/sssd/conf.d + keepdir /etc/sssd/pki + + # strip empty dirs + if ! use doc; then + rm -r "${ED}"/usr/share/doc/"${PF}"/doc || die + rm -r "${ED}"/usr/share/doc/"${PF}"/{hbac,idmap,nss_idmap}_doc || die + fi + + rm -r "${ED}"/run || die + find "${ED}" -type f -name '*.la' -delete || die +} + +pkg_postinst() { + fcaps_pkg_postinst + udev_reload + tmpfiles_process sssd-tmpfiles.conf + echo + elog "You must set up sssd.conf (default installed into /etc/sssd)" + elog "and (optionally) configuration in /etc/pam.d in order to use SSSD" + elog "features." + echo + optfeature "Kerberos keytab renew (see krb5_renew_interval)" app-crypt/adcli + + if ! use python; then + echo + ewarn "sssctl analyze will not work because the python USE flag is disabled." + fi +} + +pkg_postrm() { + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.9.8-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.9.8-r1.ebuild new file mode 100644 index 00000000000..8f8e6a6c42e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.9.8-r1.ebuild @@ -0,0 +1,345 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PLOCALES="ca de es fr ja ko pt_BR ru sv tr uk" +PLOCALES_BIN="${PLOCALES} bg cs eu fi hu id it ka nb nl pl pt tg zh_TW zh_CN" +PLOCALE_BACKUP="sv" +PYTHON_COMPAT=( python3_{11..14} ) + +inherit autotools linux-info multilib-minimal optfeature plocale \ + python-single-r1 pam systemd toolchain-funcs verify-sig + +DESCRIPTION="System Security Services Daemon provides access to identity and authentication" +HOMEPAGE="https://github.com/SSSD/sssd" +if [[ ${PV} != 9999 ]]; then + SRC_URI="https://github.com/SSSD/sssd/releases/download/${PV}/${P}.tar.gz + https://github.com/SSSD/sssd/releases/download/${PV}/${P}.tar.gz.asc" + KEYWORDS="amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc x86" +else + inherit git-r3 + EGIT_REPO_URI="https://github.com/SSSD/sssd.git" + EGIT_BRANCH="master" +fi + +LICENSE="GPL-3" +SLOT="0" +IUSE="acl doc +netlink nfsv4 nls passkey python samba selinux systemd systemtap test" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" +RESTRICT="!test? ( test )" + +DEPEND=" + >=app-crypt/mit-krb5-1.19.1[${MULTILIB_USEDEP}] + app-crypt/p11-kit + >=dev-libs/ding-libs-0.2 + >=dev-libs/cyrus-sasl-2.1.25-r3[kerberos] + dev-libs/jansson:= + dev-libs/libpcre2:= + dev-libs/libunistring:=[${MULTILIB_USEDEP}] + >=dev-libs/popt-1.16 + >=dev-libs/openssl-1.0.2:= + >=net-dns/bind-9.9[gssapi] + >=net-dns/c-ares-1.10.0-r1:=[${MULTILIB_USEDEP}] + >=net-nds/openldap-2.4.30:=[sasl,experimental] + >=sys-apps/dbus-1.6 + >=sys-apps/keyutils-1.5:= + >=sys-libs/pam-0-r1[${MULTILIB_USEDEP}] + >=sys-libs/talloc-2.0.7 + >=sys-libs/tdb-1.2.9 + >=sys-libs/tevent-0.9.16 + virtual/ldb:= + virtual/libintl + acl? ( net-fs/cifs-utils[acl] ) + netlink? ( dev-libs/libnl:3 ) + nfsv4? ( >=net-fs/nfs-utils-2.3.1-r2 ) + nls? ( >=sys-devel/gettext-0.18 ) + passkey? ( dev-libs/libfido2:= ) + python? ( + ${PYTHON_DEPS} + systemd? ( + $(python_gen_cond_dep ' + dev-python/python-systemd[${PYTHON_USEDEP}] + ') + ) + ) + samba? ( >=net-fs/samba-4.10.2[winbind] ) + selinux? ( + >=sys-libs/libselinux-2.1.9 + >=sys-libs/libsemanage-2.1 + ) + systemd? ( + sys-apps/systemd:= + sys-apps/util-linux + ) + systemtap? ( dev-debug/systemtap )" +RDEPEND="${DEPEND} + selinux? ( >=sec-policy/selinux-sssd-2.20120725-r9 )" +DEPEND+=" + sys-apps/shadow" +BDEPEND=" + virtual/pkgconfig + app-text/docbook-xml-dtd:4.4 + >=dev-libs/libxslt-1.1.26 + ${PYTHON_DEPS} + doc? ( app-text/doxygen ) + nls? ( sys-devel/gettext + app-text/po4a ) + test? ( + dev-libs/check + dev-libs/softhsm:2 + dev-util/cmocka + net-libs/gnutls[pkcs11,tools] + sys-libs/libfaketime + sys-libs/nss_wrapper + sys-libs/pam_wrapper + sys-libs/uid_wrapper + ) + verify-sig? ( sec-keys/openpgp-keys-sssd ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/sssd.asc + +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.9.8-r1-pam_fix_out-of-bounds_read_in_pam_passkey_child_read_data.patch" +) + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/ipa_hbac.h + /usr/include/sss_idmap.h + /usr/include/sss_nss_idmap.h + # --with-ifp + /usr/include/sss_sifp.h + /usr/include/sss_sifp_dbus.h + # from 1.15.3 + /usr/include/sss_certmap.h +) + +pkg_setup() { + linux-info_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + default + + plocale_get_locales > src/man/po/LINGUAS || die + + sed -i \ + -e "/_langs]/ s/ .*//" \ + src/man/po/po4a.cfg \ + || die + enable_locale() { + local locale=${1} + + sed -i \ + -e "/_langs]/ s/$/ ${locale}/" \ + src/man/po/po4a.cfg \ + || die + } + + plocale_for_each_locale enable_locale + + PLOCALES="${PLOCALES_BIN}" + plocale_get_locales > po/LINGUAS || die + + sed -i \ + -e 's:/var/run:/run:' \ + src/examples/logrotate \ + || die + + # disable flaky test, see https://github.com/SSSD/sssd/issues/5631 + sed -i \ + -e '/^\s*pam-srv-tests[ \\]*$/d' \ + Makefile.am \ + || die + + eautoreconf + + multilib_copy_sources +} + +src_configure() { + local native_dbus_cflags=$($(tc-getPKG_CONFIG) --cflags dbus-1 || die) + + # Workaround for bug #938302 + if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then + export DTRACE="${BROOT}"/usr/bin/stap-dtrace + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + local myconf=() + + myconf+=( + --libexecdir="${EPREFIX}"/usr/libexec + --localstatedir="${EPREFIX}"/var + --runstatedir="${EPREFIX}"/run + --sbindir="${EPREFIX}"/usr/sbin + --with-pid-path="${EPREFIX}"/run + --with-plugin-path="${EPREFIX}"/usr/$(get_libdir)/sssd + --enable-pammoddir="${EPREFIX}$(getpam_mod_dir)" + --with-ldb-lib-dir="${EPREFIX}"/usr/$(get_libdir)/samba/ldb + --with-db-path="${EPREFIX}"/var/lib/sss/db + --with-gpo-cache-path="${EPREFIX}"/var/lib/sss/gpo_cache + --with-pubconf-path="${EPREFIX}"/var/lib/sss/pubconf + --with-pipe-path="${EPREFIX}"/var/lib/sss/pipes + --with-mcache-path="${EPREFIX}"/var/lib/sss/mc + --with-secrets-db-path="${EPREFIX}"/var/lib/sss/secrets + --with-log-path="${EPREFIX}"/var/log/sssd + --with-kcm + --enable-kcm-renewal + --with-os=gentoo + --disable-rpath + --disable-static + # Valgrind is only used for tests + --disable-valgrind + $(use_with samba) + --with-smb-idmap-interface-version=6 + $(multilib_native_use_enable acl cifs-idmap-plugin) + $(multilib_native_use_with selinux) + $(multilib_native_use_with selinux semanage) + --enable-krb5-locator-plugin + $(use_enable samba pac-responder) + $(multilib_native_use_with nfsv4 nfsv4-idmapd-plugin) + $(use_enable nls) + $(multilib_native_use_with netlink libnl) + --with-manpages + --with-sudo + $(multilib_native_with autofs) + $(multilib_native_with ssh) + --without-oidc-child + $(multilib_native_with passkey) + --with-subid + $(use_enable systemtap) + --without-python2-bindings + $(multilib_native_use_with python python3-bindings) + # Annoyingly configure requires that you pick systemd XOR sysv + --with-initscript=$(usex systemd systemd sysv) + KRB5_CONFIG="${ESYSROOT}"/usr/bin/krb5-config + # Needed for Samba 4.21 + CPPFLAGS="${CPPFLAGS} -I${ESYSROOT}/usr/include/samba-4.0" + ) + + use systemd && myconf+=( + --with-systemdunitdir=$(systemd_get_systemunitdir) + ) + + if ! multilib_is_native_abi; then + # work-around all the libraries that are used for CLI and server + myconf+=( + {POPT,TALLOC,TDB,TEVENT,LDB}_{CFLAGS,LIBS}=' ' + # ldb headers are fine since native needs it + # ldb lib fails... but it does not seem to bother + {DHASH,UNISTRING,INI_CONFIG_V{0,1,1_1,1_3}}_{CFLAGS,LIBS}=' ' + {PCRE,CARES,SYSTEMD_LOGIN,SASL,DBUS,CRYPTO,P11_KIT}_{CFLAGS,LIBS}=' ' + {NDR_NBT,SAMBA_UTIL,SMBCLIENT,NDR_KRB5PAC,JANSSON}_{CFLAGS,LIBS}=' ' + + # use native include path for dbus (needed for build) + DBUS_CFLAGS="${native_dbus_cflags}" + + # non-pkgconfig checks + ac_cv_lib_ldap_ldap_search=yes + --without-kcm + --without-manpages + ) + fi + + econf "${myconf[@]}" +} + +multilib_src_compile() { + if multilib_is_native_abi; then + default + use doc && emake docs + else + emake libnss_sss.la pam_sss.la pam_sss_gss.la + emake sssd_krb5_locator_plugin.la + use samba && emake sssd_pac_plugin.la + fi +} + +multilib_src_test() { + if multilib_is_native_abi; then + local -x CK_TIMEOUT_MULTIPLIER=10 + emake check VERBOSE=yes + fi +} + +multilib_src_install() { + if multilib_is_native_abi; then + emake -j1 DESTDIR="${D}" install + if use python; then + python_fix_shebang "${ED}" + python_optimize + fi + else + # easier than playing with automake... + dopammod .libs/pam_sss.so + dopammod .libs/pam_sss_gss.so + + into / + dolib.so .libs/libnss_sss.so* + + exeinto /usr/$(get_libdir)/krb5/plugins/libkrb5 + doexe .libs/sssd_krb5_locator_plugin.so + + if use samba; then + exeinto /usr/$(get_libdir)/krb5/plugins/authdata + doexe .libs/sssd_pac_plugin.so + fi + fi +} + +multilib_src_install_all() { + einstalldocs + + insinto /etc/sssd + insopts -m600 + doins src/examples/sssd-example.conf + + insinto /etc/logrotate.d + insopts -m644 + newins src/examples/logrotate sssd + + newconfd "${FILESDIR}"/sssd.conf sssd + + keepdir /var/lib/sss/db + keepdir /var/lib/sss/deskprofile + keepdir /var/lib/sss/gpo_cache + keepdir /var/lib/sss/keytabs + keepdir /var/lib/sss/mc + keepdir /var/lib/sss/pipes/private + keepdir /var/lib/sss/pubconf/krb5.include.d + keepdir /var/lib/sss/secrets + keepdir /var/log/sssd + + # strip empty dirs + if ! use doc; then + rm -r "${ED}"/usr/share/doc/"${PF}"/doc || die + rm -r "${ED}"/usr/share/doc/"${PF}"/{hbac,idmap,nss_idmap}_doc || die + fi + + rm -r "${ED}"/run || die + find "${ED}" -type f -name '*.la' -delete || die +} + +pkg_postinst() { + elog "You must set up sssd.conf (default installed into /etc/sssd)" + elog "and (optionally) configuration in /etc/pam.d in order to use SSSD" + elog "features." + echo + optfeature "Kerberos keytab renew (see krb5_renew_interval)" app-crypt/adcli + + if ! use python; then + echo + ewarn "sssctl analyze will not work because the python USE flag is disabled." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-block/open-iscsi/open-iscsi-2.1.11.ebuild b/sdk_container/src/third_party/portage-stable/sys-block/open-iscsi/open-iscsi-2.1.11.ebuild index 433cda3ddcf..e7164dc4315 100644 --- a/sdk_container/src/third_party/portage-stable/sys-block/open-iscsi/open-iscsi-2.1.11.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-block/open-iscsi/open-iscsi-2.1.11.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -12,7 +12,7 @@ SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" LICENSE="LGPL-3+ GPL-2+" SLOT="0/0.2" KEYWORDS="~alpha amd64 arm arm64 ~mips ppc ppc64 ~riscv ~sparc x86" -IUSE="debug infiniband +tcp rdma systemd" +IUSE="debug infiniband +tcp rdma selinux systemd" REQUIRED_USE="infiniband? ( rdma ) || ( rdma tcp )" # Tries to write to /run/lock/iscsi etc RESTRICT="test" @@ -29,6 +29,7 @@ RDEPEND=" ${DEPEND} sys-fs/lsscsi sys-apps/util-linux + selinux? ( sec-policy/selinux-iscsi ) " BDEPEND="virtual/pkgconfig" diff --git a/sdk_container/src/third_party/portage-stable/sys-block/open-isns/open-isns-0.103.ebuild b/sdk_container/src/third_party/portage-stable/sys-block/open-isns/open-isns-0.103.ebuild index 7375c39226d..1b2e53595c2 100644 --- a/sdk_container/src/third_party/portage-stable/sys-block/open-isns/open-isns-0.103.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-block/open-isns/open-isns-0.103.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -14,7 +14,7 @@ SRC_URI="https://github.com/open-iscsi/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.g LICENSE="LGPL-2.1" SLOT="0" KEYWORDS="~alpha amd64 arm arm64 ~mips ppc ppc64 ~riscv ~sparc x86" -IUSE="ssl static" +IUSE="ssl selinux static" # Tests can't connect RESTRICT="test" @@ -23,7 +23,10 @@ DEPEND=" dev-libs/openssl:= ) " -RDEPEND="${DEPEND}" +RDEPEND=" + ${DEPEND} + selinux? ( sec-policy/selinux-isns ) +" src_configure() { local emesonargs=( diff --git a/sdk_container/src/third_party/portage-stable/sys-block/parted/Manifest b/sdk_container/src/third_party/portage-stable/sys-block/parted/Manifest index ef92ff2b25c..0e80a126454 100644 --- a/sdk_container/src/third_party/portage-stable/sys-block/parted/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-block/parted/Manifest @@ -1,2 +1,4 @@ DIST parted-3.6.tar.xz 1896164 BLAKE2B 99b6d096e4db05144c98e9f0a9a97c647aa911ee5df031244b03d5223f709d43d9302cef12dd4b2f97f42ec476510561b7f8b3b1ef7cb09d0a7c4d512e7a6739 SHA512 034a44b25718acba175212019d24f092972a791c5bd1d921ae91e17478657a77c5c5dd0c832bed7968c3a07ec6c65c0785acfac2f90c1ca5e1692f3c141693ef DIST parted-3.6.tar.xz.sig 508 BLAKE2B 92fbf624cfeb474e36d43954ecf6c42cf86557b99c7cd477c648bdeefb3ca2b40c51c320b20ea91075276d9ccc1da4219cd843b2916157c564c92a34a35ec55f SHA512 7c845026937b29fb49085ef9e3354226b73a1c3b5f9082d440d9a8ac13d76b1d07dae0bc10d8c974d4e57bc582f38c0a908e80718dd1ff1adfad3b04699c672c +DIST parted-3.7.tar.xz 1970028 BLAKE2B 967a2c5e6f8d93bd8eff2fe9092413582437c7d33fb151ca5230c8acd0c32e94c90edcb83abed888da560f7fbfcc77ee31cda54ddc3c1af24b1a1c522ab83bca SHA512 941afeb68edb45c33fb797f4c320ed1aa1de2e8b35defa5d742aa6894618e6729a1440e3ee0824e8710bc58eb42b85d77f28ba083d92d4ea3f3f65f37c8307b0 +DIST parted-3.7.tar.xz.sig 508 BLAKE2B 006bb49ee8ff9135e633bfa6c2a32fcd9f661e83cab58e85535adcac3481350a6c552a730b5b32abca41a8a9f953f85bc48abd5a24d05e6048bd1f5a8dd3efc1 SHA512 b6cb75d0e58ea344b91e8b92aba40de1d828257b123134052a9aafaaad5ed0f1aec2e11c2ea17776ea30800636d823aa2da0044be52c9c5addf4b102caafc25c diff --git a/sdk_container/src/third_party/portage-stable/sys-block/parted/parted-3.6-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-block/parted/parted-3.6-r2.ebuild index dd6827691fe..395708d73b2 100644 --- a/sdk_container/src/third_party/portage-stable/sys-block/parted/parted-3.6-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-block/parted/parted-3.6-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -17,7 +17,7 @@ SRC_URI=" LICENSE="GPL-3+" SLOT="0" KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="+debug device-mapper nls readline" +IUSE="+debug device-mapper nls readline static-libs" # util-linux for libuuid RDEPEND=" @@ -75,9 +75,9 @@ src_configure() { $(use_enable debug) $(use_enable device-mapper) $(use_enable nls) + $(use_enable static-libs static) $(use_with readline) --disable-rpath - --disable-static ) econf "${myconf[@]}" } diff --git a/sdk_container/src/third_party/portage-stable/sys-block/parted/parted-3.7.ebuild b/sdk_container/src/third_party/portage-stable/sys-block/parted/parted-3.7.ebuild new file mode 100644 index 00000000000..7e07365aa06 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-block/parted/parted-3.7.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bcl.asc + +inherit verify-sig + +DESCRIPTION="Create, destroy, resize, check, copy partitions and file systems" +HOMEPAGE="https://www.gnu.org/software/parted/" +SRC_URI=" + mirror://gnu/${PN}/${P}.tar.xz + verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig ) +" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +IUSE="+debug device-mapper nls readline static-libs" + +# util-linux for libuuid +RDEPEND=" + >=sys-fs/e2fsprogs-1.27 + sys-apps/util-linux + device-mapper? ( >=sys-fs/lvm2-2.02.45 ) + readline? ( + >=sys-libs/ncurses-5.7-r7:0= + >=sys-libs/readline-5.2:0= + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + nls? ( >=sys-devel/gettext-0.12.1-r2 ) + verify-sig? ( >=sec-keys/openpgp-keys-bcl-20260418 ) + virtual/pkgconfig +" + +DOCS=( + AUTHORS BUGS ChangeLog NEWS README THANKS TODO doc/{API.md,FAT,USER.jp} +) + +PATCHES=( + "${FILESDIR}"/${PN}-3.2-po4a-mandir.patch + # https://lists.gnu.org/archive/html/bug-parted/2022-02/msg00000.html + "${FILESDIR}"/${PN}-3.4-posix-printf.patch + # https://debbugs.gnu.org/61129 + "${FILESDIR}"/${PN}-3.6-tests-unicode.patch +) + +# false positive +QA_CONFIG_IMPL_DECL_SKIP="MIN" + +src_prepare() { + default + + touch doc/pt_BR/Makefile.in || die +} + +src_configure() { + # -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 myconf=( + $(use_enable debug) + $(use_enable device-mapper) + $(use_enable nls) + $(use_enable static-libs static) + $(use_with readline) + --disable-rpath + # Avoid clobbering _FORTIFY_SOURCE + --disable-gcc-warnings + ) + + # https://debbugs.gnu.org/61128 + CONFIG_SHELL="${BROOT}"/bin/bash econf "${myconf[@]}" +} + +src_install() { + default + + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/Manifest b/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/Manifest index b78dc723e9b..87401814405 100644 --- a/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/Manifest @@ -1,122 +1,81 @@ -DIST adler-1.0.2.crate 12778 BLAKE2B a1dc17786adae945ac09d3525e609ed944e6465690787bbb831a1b9d53793cba1989793d0a5606d5d23ee20d36457923d451b1b3530c9ec7072a487aa3e55bbd SHA512 7ab190d31890fc05b0b55d8e2c6527a505e06793d5496be0b3831e0513412f9ba97f8148f6f68ed0770fa9cd980a5092d885e058becf1d5506b7c74b82674aa1 DIST adler2-2.0.1.crate 13366 BLAKE2B 3b28bbd7f89424567ff1bb36b984bf4fd767370459f5548545218cbe1c9f082fedd932fccc7e6acd83a1dfa06a371124801a772e5555ede7d6c2cd1ac57930a4 SHA512 555b2b7ba6f8116acccd0bcd16ed34cc78162c81023cff31a8566ffcd456c03832089fca2d5b668ceaac4fe8f922d31aa9c487f226a36cace294ff4a219bd91d DIST aho-corasick-1.1.3.crate 183311 BLAKE2B 8dfcbba0b9d94e55eae739b16f5c6474baa43ee7854c5ca792f426a9f46fb0eece79cd493b804e51449181bcad338b96819fe977c02c9907654d713e26b9f830 SHA512 ba422a54688c4678fcf16e34fdf3ed06c333e6e3fc8b75af9272a215add494d43ebaef319021134b61327fd5d3572aec0dc655b714ffb3bc71ba3c265c9ebb69 DIST aho-corasick-1.1.4.crate 184015 BLAKE2B 088766e505a828a221a9bca29cb1833ac3964a538cda62d12b723a263fe0e588406af0b710cf87ef67b0ccb9aa3bf69f42e0e5225ade47abe93c73fcaca69ec1 SHA512 c77e35191b00546f5e499fab154170cedd619599e7250f92db9fba0a41c833eb426f214e58b00c5c39f8757406b33492b3241cb8cb233ce384ad0683c3ee4b62 DIST allocator-api2-0.2.21.crate 63622 BLAKE2B 983897fc977118f220dc4af7e801ac08eba77bfde2a25d756bad3e77f849418e74e7c67eaed68e2d719ca7fc6e1e9ce151dd7dbe8707dc43d4a6400294c8fc8e SHA512 1bb5711ed6041b0d7eae2ec784b8aa9d215db0f49cf79c692946eeb0db545d358cbcaa8156ae34e51d05287c08574f1da251ee574f2392949e4ed26d04770d03 -DIST anstream-0.6.15.crate 29231 BLAKE2B cc4cf0f381c210fecc20b5796fe872b533419e5f957021b0c3be3cdc23fb84ce029fbef6f9b6f174a76ad713c07f0811145a70572de7c24cfab060fdd990f49a SHA512 1cb01a0293b4c9bcc010909707e71c464416d3ec6fc9789060b7aa9fe4cc04424fefa8013cc8765ccdae6dfd9a1c50a11f7b30b39a32c4aeaf525f28167ddb92 DIST anstream-0.6.21.crate 29516 BLAKE2B ddab9728a4824b1682a84339e2c5212904fcf878867c8ed7604ce045d4ba6bae0f129e73968e20d58a9b2e297ad1b6ddd5557907d3b6ae9253e3127ea901d40b SHA512 909059510b778f606df779d5f8ee69cf721072e81f933eb5f5fddaa4d1586a0040ba7456165d5db16c812dd654c2dda6b929ccb997310b507f1b79846ca1f402 DIST anstyle-1.0.13.crate 17651 BLAKE2B 026d4163f4bc8d1677d0830dbe46fd335d18e50420d2d809a675609c1e020f7e3c5e69b8d0a7baf5f42fa2321b6230c619a93aaf8e02ceaef638f8006dbf479b SHA512 1a92c4bf6ff7262c0f5fe72ff66eaf11f0c84e84a06746767918903c0416ba5d33ac54ff9a2c6cde37e26bb2287675d3f0a8a7efa95eb013c9be388b8139661e -DIST anstyle-1.0.8.crate 15771 BLAKE2B c039613e7de27cc990e5764810f9351754b160928a8954dc19041354cf9fef1422ed964237a5d39d16e4e9f8592ed52c523ccf36b0b5506f464d4f818f3332ff SHA512 3b867f73df0b2f69a0c7d5d6e62c7515045e053656afaa303e5aade8012e838cdf5d15d2c3d7c297db9e297d08ea69a9c8eed04b97922a83f56c58962c1c0b69 -DIST anstyle-parse-0.2.5.crate 22680 BLAKE2B 7473651b1eee08857a6ed1419d3d62ba4b9a9aa0d6657965ad9c67bddd793d825737d3804961716a89bdebed9879ac43b42c897cd229c6e7bd780859e1e3c247 SHA512 cd94ad0e88ad4547a660da1473bf4e6dfed805a066782124204143c7f754c12db719bd3a1774c299f1a035740bfc4830919da191bd14e0acede410f6dbd1e2ef DIST anstyle-parse-0.2.7.crate 21707 BLAKE2B 41d51d4c026e548a9428f5fd8dc85fce964e3f1cf709820dd53d216af3065a4ee069de8c5bcec5eae19b99172f60e89034a2ded6bc787f3ea4159d5d30de3984 SHA512 3e0920594dfa15f16dd308d0da81d784e6a5d6fd7a3b12cc1512fb625369ea7b4550df549e3be961906e2d3105f72ecb86b89dd6f5817c2c982929ea26d605fa -DIST anstyle-query-1.1.1.crate 9891 BLAKE2B c298114c1864a5233fb39c365e079a7f1f4ef23499dc330e5deb06f83f27bc727015befef79075c7e39952547f799b4135d7db287cf72dfc914191df784a4989 SHA512 1b2e888f025142a0d9b01314cf083831a2a45d8da737c1be3a6a9aa177e73e0d2ae7999fe7610dd450b7096115e8cf38c5da23723cebf1deaa7d3501d3dbd5ce DIST anstyle-query-1.1.4.crate 10192 BLAKE2B c5672d2982bef5702f5d592bea8b4336df3f24edad35656873accb4491c0b6f323189c6721a7f722e6aae31ea8c183a93e3d59a123dc1c150ad1c85640906e40 SHA512 b94c550b865d17c15b2ff1a41da4f7aaf3a5c0694b2188c7238cae8212d8390f759381a3ae5598c13396a728aed8bffd4e32fe06da51af0ba92c334124d26641 DIST anstyle-query-1.1.5.crate 10264 BLAKE2B e1c1bad89ad4c09e48f9d7c417713953f7f468f10f7f61e351137be801b5986ab3d21406411b0b23c42af4a2b5881b85aa68dfc66d23cafca7dfcb88180104b7 SHA512 3b7b888df0b678bd4560981dd94a51a6af9a535cc1a869bb4577e832492bb6de718a3ac80ecf61f8857b3d0ed7b95e444e85bd00ef65a46c6a244d0b0eadd95d DIST anstyle-wincon-3.0.10.crate 12558 BLAKE2B eddfdfd0bf8ec9520319c3bc54d627be3ecc4d931181e629f5ae4f1352a1662476060a25639f390825405691ef22befbc6f1b51d79047690fadbc90993b9ff5d SHA512 bee4e8a76185a359e6f6c0cca11ca322a8ff6eb92a1659986bbb2287c5e198f3e9cf3e48c9d980b18fa012b5d52f97cd017770736be27e550cf61be553982c8c DIST anstyle-wincon-3.0.11.crate 12638 BLAKE2B 01f1ce85205ed3e573daca145ae420e9f7d78867fc036133be74bbcc9b83231ecbc681b57eb98bec622bcbaaf4bb293d05d3021a29b49a0a71b8ab89b0ae9dfd SHA512 09c3215dc6cef75d6282078e68c5dbd51580b6c8db79a77932d2e74a51d29cb0ef23c31b8a73a71896a45eb5dc5f94aee209bd8f6e5df4c675dabe3cd304a96b -DIST anstyle-wincon-3.0.4.crate 12234 BLAKE2B 23294d6ed7715c55c8f796eb7b860450c57b22b57e32a5c75847f2e2bd68a52b33c24797db662aa5fd7e799b9644075c8c939d93b0cf8598b16ee80fc817b77f SHA512 24b3a9a44382609ad449425a657d4b42a792d4703c36e0953f09a03817759c266a2f0ff4ecc9e8b93ea8403df2badef1f1af6a6e50af56205176c41b13501ae6 DIST anyhow-1.0.100.crate 54059 BLAKE2B 3089cd4bac1a3ede11c5849fabf12735392ba2910f5d5c1117cbbc9fe2491855745879690522988ac343e210783f8d885f13593b4d0f3a3816b9a8c35ef2eb7d SHA512 1f0c072aab9490d68db3783f078c6f8a4d96360908fc6ee3e971b02fb72b9dd5e689dd385f0e93388a87e0dfbd8cff0e14a280b40d55f87646f3c0e558e779ca -DIST anyhow-1.0.86.crate 46741 BLAKE2B 21b1f3acd1c1b659e6e9a53693178de67c806d7dbad30dedea0fb7078b2388baa196d1e7240a7dc88ed9dc93ee4c00bca8e608dad1b6bfb5bfa4f4c5ab51f0d3 SHA512 3853da32a2c53d73969bb29a1e622f3a6d5832d8888dc6bc8eedb76394b392f983aa3fcb1f542933e238841486106f0f38e9a2400c12c7699baba0ebe1d8193a -DIST atty-0.2.14.crate 5470 BLAKE2B 2db856a9e898a430258f059aeaf7c844a153293e8856d90ac81f7d91a888c89198768ad5cb09303c23241fe85c560a55148fa56a303651a82b0edb895616bfab SHA512 d7b6c4b9a0f898d91ddbc41a5ee45bbf45d1d269508c8cc87ee3e3990500e41e0ec387afb1f3bc7db55bedac396dd86c6509f4bf9e5148d809c3802edcc5e1d9 -DIST autocfg-1.3.0.crate 16524 BLAKE2B 7d5a03853d6b4f0da08d8e139fb200da21e47fa7e50d1956270d0ff0cc496f660f8f800122c95eee9ba98d9210ab200c3010b782097483d12d6be4ac0df0e7c9 SHA512 a5570b955d57a7183ba148b335837dc5af24b202e80681027536d33fe2822509ba644fc70c29f018c893285ced2bf6774f44ca6c59f7c7e2226d5349cf7c3635 DIST autocfg-1.5.0.crate 18729 BLAKE2B 27580e39b366c6fca02c9db09997b6415c409f12068f1249184268bf96fd85ba659e25ec730f99e10caf452f96c486f3d7442bf09c4552b5f39519b21d6f88cc SHA512 f279856f234d39d369623576acf9546a1ca24d7fe449f36d4fb93ea75a7efaf2c4015b9616a69bbbed358c5e5882e16b045352f046aa4c049b3d13b1e8257b08 DIST base64-0.22.1.crate 81597 BLAKE2B 6f216a560bd36e6e6b74e908344b457594cc768d9763070e269b56a14b150cbfc4b7f599d4c2a0a5f783638170ee132f0796fefb14fcac7fd73c58db0791007a SHA512 91cf2e4e7fc8815f9b8a86a7fa722a20eee3dc1dd57111b29e420de87ce7836bcdb1db01d3cafb9a977710ef63e7cc41b7772762323e68e0e832156858aace20 -DIST bindgen-0.69.4.crate 221092 BLAKE2B 69ed55a5827bfe850f589e39bc6e2f4445e20363002c765c5475007b75e4d81cac3d9df358505c63bd6a48300ae4988507abf78dd734bb98b33525bf9212237b SHA512 99530060708690f2ce0b87b97c9ce2998ee968df193137f3c9bf4fa66836814e2ae74c7e0b3057dcff1da7d2c4ea38157e21143c5117be35e94b878c0a427a34 DIST bindgen-0.71.1.crate 237785 BLAKE2B 4ef4af15b95a65510190e611662e39c4c7f6a33c02ed49c19e7e2d8d0ba951657ee5f681e73d3297603a87cff02ad857a21711f1a66eb13526d5af72e749ad1b SHA512 ff7f9f1989cf014fdc73f47263adff7928a51787e57a08eb687bfa3fae2b474300c13bfba62eff4da97cb70c456846826353debd9ef6de255228fe30dc9a7b6d DIST bindgen-0.72.1.crate 246071 BLAKE2B b6db53ca86fa3b5f71abbf6d2fd5f83553e167507db2e869ed7f3acf8865478e49430eddce8c255a8fabf8f6e408e7dcc78a9088201cdeea1e48bc387f8a6f28 SHA512 14f4277b62cfc91661400ed1bacb82a9f28b7e6caa17dd4bb4dbeedd5784299d5915c2235af9da42a8a216fa0b14b49f1e38eaa530f1e906bcd74f864ae8a7e2 -DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62 DIST bitflags-2.10.0.crate 48427 BLAKE2B 238a6da813eb2c5541ad470b97b9cf6ad8004095d2a8e865b88eb2301290b7bda22e5b062ba66a04ff0f3108a84d4799af0786b76f785fb5782bd847876549c9 SHA512 6fcdaf250ca6e74b65ecba755d62c3e78f6c02ce1a9562a3b17bb2d6068a0df480ad9c838ce427dc2d2869a9dd1f86f2fb1dc1e50a114def77fd24154b2b86b0 -DIST bitflags-2.6.0.crate 45357 BLAKE2B 3a368bd2eb58c095b7b4a46680cc2d90a28e24b2e37c854bbf8647c861c4b8fb37eca827599673c5c7df763048149dd82123d1ede1f8a0e58a6bc23c8250f7e6 SHA512 f9bb3c48931ed7e7e05ec6d13305af5da6b6c18861ff307d7dc17c658f63972c87b70b0527287b3625c8592befc207cfe15550654995faf3862bb12a6d95bacf DIST bumpalo-3.19.0.crate 96414 BLAKE2B f8c155f77cf977d72749f3cb943a6b171dfc4f67135da345a935ba603f2b52b5feafbba908b31feff391128196c7b0088f6f62d5b37bc4d2277fc0fb9c560b54 SHA512 58db27a643c55adae07061100e3604dad0056bacd42ce1142bcc34249645e9313e886c3174a755593544684fcc632f134f9c6066752ac695254fb9ecd40878cf -DIST bytemuck-1.16.3.crate 49539 BLAKE2B 5e9a4c9e5bb1ec5398670edad455fa54b08955b48390d784c29c7ba153db4d0fb25c4d14f445ed28c443379a761354b1d9eb8c9c6e2a2930f5fb3f9085ad45b2 SHA512 17bf35d082c8009ce6ae24ae681715d8fd303f728f9bb2a0702096fd8635b5e7294eeea5375217a8276ba6136a16f94eb670c5d5baba9020674dc958173342f8 DIST bytemuck-1.24.0.crate 53243 BLAKE2B 472563c13565b62378576597a98c8050117940842846f2fb711fe4fc251e3bab19ed8f0d7e8215c880f06638684f1b8090afee598c730dacfe536f53287dcd69 SHA512 4e3b8071b7dc3b88104786f007f2fb8930cf252fc6cc04ff0c1a13873cd272971edcedcc9231a2a44bbdeca9c831f4c732e6917581420f209003b47761a8ced8 DIST byteorder-1.5.0.crate 23288 BLAKE2B 7f85a7948406844070a2c8202e0bd52f73b3dfc7c666a97046128044eb9352195afb80e2bf894c0742ad109e4473339de1365d09591de70dfec6c8c02a8e1453 SHA512 96caf981177f6ded9f27f025922cb94eb0cd9de5303bd91680099912d922092e77b7361efa70011e84f1595e443193e4f1b354443b9980c123f6ae573b236f7f DIST cassowary-0.3.0.crate 22876 BLAKE2B 7e74a08e02050548ade7dd1ebba7ce4e4360d258ea6acf126453889dbf16df433bed7b68789736881c957f4c09eead1f763a0c02f2474157b1650a1e77e6eca9 SHA512 0838c0b79ed31f0c514fe4ac82633976e34b0d6cb08616313cda0e00623514fc6498c6c308cfef54ea029f1fdbaafe2991ca8ac3c38437a113ac62e37f9397f8 DIST castaway-0.2.4.crate 12546 BLAKE2B 22f5199928387778df87086aa786bb25b79e77040d7408b601a2c5d07968ea79c018d3c69b3dbb6a785edbecab000621d5921b69d628ab6b3a9ce43c79615d51 SHA512 15b88016bbeae50146401607549b077b329c9bbae25768536360a964bd5c3b598feedce0365ca4b2662c7b94081062fc469f6a1049fc38187d79daac77b20481 DIST cexpr-0.6.0.crate 17966 BLAKE2B cb46f066eb1f4dbac00ec86dc3e562db7ee8ea5ff17d16a60004fa020405e455b8aeb3d001f669cb33d1b62525bfd04ec657ffca4ed44a83af4a5e75b2c820e3 SHA512 766bff7ca7f9bf0885aee6f014bcfc084e7fdfcd567a49443d5340acfe8f257db109de17b24588504fc35c53f2d4303e2d22da21f73669125cfca984950cf886 -DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff DIST cfg-if-1.0.4.crate 9360 BLAKE2B beadbfb273ee97cbb6e3740891fbace57511399ad203459b66b397587d794677a9515cde4e9ec4320c3795518bf1551d72b9a889f8ac4b225168f493288b7c19 SHA512 176e04df7ba783b7143bb84397b777f5c5a1305c08a5c3a218d4a66830620be89ed68992ba27686165bcd3fb2f34b2daf80b2a1d4b481ecc267c988e84d28e9d DIST cfg_aliases-0.2.1.crate 6355 BLAKE2B a758d9c88527f0e6e7cfd6d4c83eda1bcb4d6e2438189fe08e8ecbcaa78d56afc5a4873f3b82bf7da96afd690b44cdf1e44466b6da0f37c358b340481017103e SHA512 74969d12d5d24002a29e08d52e30fbce014dd481a7c35ee0162e69333c5f2d7755f3b02439b31522e12444cf1ac8e65880ce33fe6778dac03757e362cbf8a72c DIST clang-sys-1.8.1.crate 44009 BLAKE2B 9173de6dfbd3ef9d5d1fdc559700cd3a52f95cd77302063a97e8cf311a35825825e030b47f252c857853663ae8a16709e1f7bd0c608d67c2a74eb36ed588e778 SHA512 a68c426c20110fddb8bba07d6631517b0528fad45802e5a34a22561d7e6dad82dc5001387019a03f275e9a671b09ee0a06b6e86793c4fb4ec655700bb0f5e125 -DIST clap-4.5.13.crate 56267 BLAKE2B 233f2fb4405ee2ff669220214c13b6c94858dbc375c8bf7eb83d7488690d74ebd8e1514679e02d1354b493b6e37fd7ed4b2ae32065d115a7287014aece90c2af SHA512 dd1a42ad3bf39463966c2ef76f3ec2dc5a847160bcd73de1718bd6706790f1ace183e3c9e6ee8d06f6ddea4b9bf30c884fa97d36b44f30dac26a85a52d9a0025 DIST clap-4.5.50.crate 62030 BLAKE2B cf2cf1761b2d4500ba6ce9c48e9127d83bc0eda99d111eedc5d45c9444c8cf53d15f9d56dddb1cd1d1ae464e514bd6484a15b4055a6305c5e476e80d57e090d0 SHA512 f98dc12a40453f17c733562e2d3a08dd4c073f2930665a683328100c5a09ae7d77fe535a22cce12c4eee8e2b073ebdfc156cfd4f5ebbd2f57fe779d206092264 DIST clap-4.5.52.crate 62033 BLAKE2B 49d6c9ec19e31324e4e4493f4b0f45986bef54b6943c9d2164f9a00ea994c6ee257e64892828668992cc6cd5bdc99b1fd3d680aa7b3569dc6ce433cd07a2835f SHA512 17e7ccaaa76db226c3857644e197c6861b18e02a32bdda7108b38b22727bba8d3d06fe96df7826a4e2dddab0bdfde051090e6bb6f68faf7b412b8859fca6934a -DIST clap_builder-4.5.13.crate 164093 BLAKE2B f938635782ba9c1a675bc15a73a36ee7f1cbee501dd10be6f267364fde125c75474e5abe226e0eaf0c9fb224887c65bbc1be4641ca093282d3042f9980f4ab94 SHA512 ab7a29b29a15d22701550fc590ca6ec256edf03828e2b9a87072734a8f66b6e5a1843ac2ee7856c62472960af4e8f40840f840adb78ce5afca918f333e0f623f DIST clap_builder-4.5.50.crate 171137 BLAKE2B c22e6f71df95d9cfd3c5f319d7c374ecb4879667279343e65ba35cac4308b490cacf2b2a702c4927d04412df2b1de776a38dd4081673777cf101553206fd32a0 SHA512 767b3bc14de66da6ba4cdf937b65d1f05fc34396026d8eeab39365714b26c7a2e0a7a494101ba13c97f23cbdabdedebfb62f522cce72fdb6f0fd5f45fd030cae DIST clap_builder-4.5.52.crate 170544 BLAKE2B 4a3d91c0d34789c25550f9fc14acc744ec27c00b8e96a4b5dc182672a2d92614019cf706ee68309e9b3d2095a9fa2837e11fa01ef224ca813f80a398f6c750e2 SHA512 c4af54b9e8ed6d99b6687fd5b8d81bb4b365493959598a83d40da99b57325e8bd60f5a8ed5220e5bad22247859a070886c1424a90ae476f79a5e678979e255b0 -DIST clap_lex-0.7.2.crate 12805 BLAKE2B 952bf3f3885ae7bedd0e8add236590da5fce72a7ccd88ebda063410aef337ce7ccdb5e5e929cb870bc993891610edc0197150a3aa82a62fadc4bbfd96324fcdf SHA512 a8726397e5372fca3389748efdfdbd016b6baedad5b4bd95f33e4e820d4f40e0b94c88b1918ded3678aecf23911028e2261837e73d58ba7fd6f091eb47267380 DIST clap_lex-0.7.6.crate 13466 BLAKE2B 723f306a9ae6c1fedd6b85fade039cc2a1dba51aa4412972025e0ff1aa8f15742e090dec61df3ac17ea9aae426e96049a673f5b944cb164b649ec1809477ab88 SHA512 d248b65234f201b2cb867562ca3d8299e79d348874547639b31883c6eac8416d3d6394e5b0047ad74f1a2c37e7721375c76bcaed1e60d13c3f1937b20ad9c54e -DIST colorchoice-1.0.2.crate 7924 BLAKE2B a4027d5f870b4d9a718ac3f9d89ce04e2ed38406658c4a55ffaf39ed0cb1ce7e1c691eb56c66596b519ca82309e8ec7eebac65e69394cdd277f44f9b6280d560 SHA512 f34d5f66f84e90f473b6b9a62a61a59575e712d3e9b140324683f80af42d40c1d079701aa2ed651d0dd95a5ac8838e1f6f6c034e2adef79509d32357b8093117 DIST colorchoice-1.0.4.crate 8196 BLAKE2B be97be7d875cdd09cdf3f2594f0e7ed80601de62bc907ff70053317b9d48e889b3fd2fa0da5e6a681fcf80b24be5e16089289e3dbdb68255b486c18c517c55f1 SHA512 0bc6e55c3909e7bcfdf198d5d68ed8b588b82a72f53aaa41efeecf9dae2d31e6c172a7ba922e000fd7cdf6373c13371a98e7da08e6988fdcfbf20782dda8e4e5 DIST compact_str-0.8.1.crate 71371 BLAKE2B de7fd2b980a4b34b323010fe559a94e8b1aafa30456debc039aefcdaaefa48439353139a071e440b3bb136df166aabe096774bf3f6a7b91669cd5d80e4a24408 SHA512 146e2a6be6cf948981d51f9034f0aaa1a1563debef58ca7fd3110093b0f4333a9a6a3c5dc7cde25b936d8dfba72254bfacb7814f86167043431ded9c5797417a -DIST console-0.15.8.crate 36364 BLAKE2B 467de2c2fbfe31688cea20b338558ae9671e50ba1fd07983d21f32d7eacb73e565ebdd6ec5e78b2ae04446f09615c70983c0ee534e25ca5a28fd1b408acfdf34 SHA512 b05e49ed145785e29631d481885788f0cc5574d4d7c4d90280dfedaee7f8c1515072c9c4cfe6bd2e017230cd228157222af7e7d41a9fce697cd1888095df4de9 DIST console-0.16.1.crate 39129 BLAKE2B beec08ca77c04ff56595ab7a3d7d3237bee31f02f4af9c74ca34c6e9cb47bdb2bf422b2d9151d6be0694fd98d1f5ddccd42b64c0b9d8c100bd2baacbb9f6b20c SHA512 8d3f4e52355f135f98f0ececdf8b7ada8270ed0ee5faf791299d236a194fef42ec87ac84bbddb464619dd32d8ea8b985b26c8710acfc29480bd362507b150786 DIST crc32c-0.6.8.crate 9647 BLAKE2B 91f007df201128e3f0470d3b681322ffa7dce1ef99323fd830d20a8e863562878e77d66acb65d576dba536d3be56fbe9ac99d22cf84bf9bdf4c441d66d068037 SHA512 928319ea908ca28ef4039e7fbde86dce2ed870887e0cd1116a7d016aa7e533f5f36d11a89fd78cccf1f50c4f1ff20b8f6fd5e3711bbb84c2146686a9d351fad8 -DIST crc32fast-1.4.2.crate 38491 BLAKE2B aaa3acca66e5814a45f12a90ae09f6ff5fc14ca94c8539184dab6ed928abc68cd1d37e539c268c1effd50ab3af20de6038593fb9c6bd6a664785dac52f6939fd SHA512 c7608d33022062e217d3576f536ffbd51479855a5e5874529c71db2bf6a937ce04d814c39cf777309c38445393bf43cb9996161947e28738abd432f11beb7266 DIST crc32fast-1.5.0.crate 40723 BLAKE2B 6e91ee57a1915c9a9f7305db24337f03cbe48fc60ef01c65ea55dfb4f1f60c9c93736d9b69efce3759d5504a1988bae7a2581a494edaaf27ee030e25e97c853f SHA512 80d473960f004148e14e5fe2f23aa0d1b8c36e96237f49a6765ef713030e8326dbc0250a561afcfc49d8733f5a6d4f9f4677451cc13e2426ffed61f8c00cd81e DIST darling-0.20.11.crate 37614 BLAKE2B 9bec875e60dd2971ad97a3098ec6060d16ddae7b4f85c0daa1326ab2411516c2da2eff283fcdfd091087402643d1a8db5db151c7792b97f75ef9722ef8219eff SHA512 62532fb9ff5f63592ac61d55a3f899ab90bddd380212637f380ae49e4037c3a3058055f88a5b5fe9c707c2884dc1333756364ba7acff74b0184050d9a063d596 DIST darling_core-0.20.11.crate 68006 BLAKE2B 7a112380a91d9e8bb5ab84ac50ee1e21e25aaee4757cd976e82fca912eb17941799f3367250af10ea36182c26ab4289d51bd003f6aa7fe686587c696f4e87910 SHA512 aa2a8ca52bf3513711ed97fda6825d9139e0bcc818d4bac7023455a96c035e7cd676d6e3ed9bf594a6725353923de7c2e8474de3081f6d35f0c5dd507b2ca1d2 DIST darling_macro-0.20.11.crate 2532 BLAKE2B 18b7a038f1a3aa245f1089f5608d859982eb82f76c9085e96f21f42ba83a65a076d5810842a4fd952dd4ee65392fd5d4e478f067de31ffcbffa34db2ce933d64 SHA512 4884d05a87ba1638b7cdc0a3ee2718c38aa255aa19547388aa834abe95159a72128817494f4184dfd1aa811f1eda385ed4d4f3e65fc8735effa01769fbbacccd -DIST data-encoding-2.6.0.crate 20769 BLAKE2B 9d5713e63f6f6a4d6e5324fb0be9308a231ccefa20d69cda9e19609a2250e2cd72030ec28309068f71c932327a3ef680b749125658e27d35273354c3465f9931 SHA512 a685c7bbd251a5738b27ac3ac8121a0db049221510c99e0ada6f245ed7499d04ec29d725ad01c688ad283e3d2d5aae0751685c804f6d95cae84e63a160d04c9c DIST data-encoding-2.9.0.crate 21564 BLAKE2B 2abe5ad8772030140a67c015cb1ef5c0f1fadfb0398d0e73bdd8f93ae229955ef9ae430b28cf622ea3cff4ea8108159c05aa4d501eb6feb5b7a34b4a6c86fe03 SHA512 ec4edf4b7e9cf3f0f963de117e15cf4e7723587782b4520b01101e91880b074eca1473dc6c9d4e484bc2193caa975a7fc11ef3efb114354c491f13c86b149104 -DIST devicemapper-0.34.3.crate 68045 BLAKE2B 4e80d88f5ab4a44fd07b222e554a285f2f2686debe82d292b10ba51a8503e52eafa9bc1b9bccbfa0e6670072905f2708f1388ec3f85b55e1f0fc1eba64afdd1b SHA512 f7fb45f5e4829b0a86af9c76dfde724b74211942bfad1348b8fc322eeea39ce311eef009d4136d59d2e7292f1a844634f3493c13371b510ade3cf9ea23f4f55d DIST devicemapper-0.34.5.crate 77244 BLAKE2B 7cfb2be51d5d4608411c0ee76be09b59eeb4e3e25e2088261c0303731f79bc006a5f3ee4da8b0a291bf4b8b76669a71c41c3c03e2e02bd29ad32d13851ba0e28 SHA512 544850dd14922ab3e56935b1641b028c252ea3ca5f86dc78afd6cf96b4aff931c61d31e296df4a0747efdf30848eff5b985a179a79db6a256d4821a1174c94e7 -DIST devicemapper-sys-0.3.0.crate 7225 BLAKE2B 8d962dc46408580ddf1822cfce77cd102d3b9ca35311e1630630dae0f49e3f69107bff6086f0d038037e9b75f997ed54574de4415612cf1acb159a1b158a71d3 SHA512 4851be561f3735aab457ba575a5c46eaf5bd03aadc16bc5236c2e94286a62fc67639c7ef55466535cf243a7c7719e5b2ccf282db7641998df22ad2d40700f0ba DIST devicemapper-sys-0.3.2.crate 10278 BLAKE2B 9463c842c157508218088312f12d032eee19d06490aba16e2623fb8b6d5e308ebffca6291f7d4e2ad5ef7f86296de3f081414e3535e438d94a0c10b1cdccf98c SHA512 695c5d7262c3dab8dcfd4022d5080784199cb6fd762d70dde729d0a21a3a941abd6175db823c078989d6ec373686d6567eb8508f1cc86959be96db9d85800d3f DIST devicemapper-sys-0.3.3.crate 9813 BLAKE2B b5f07c247c7f3db891a763884c865f624d2512775d0390f6a7a22408320e6f1b2b37b57d14a173637bdd4334a4549e2ead73f0eab33722cb7809553f3337026a SHA512 d5fcc713c88fc5cbcaaf0b12e7dcf55b5659c13df212be024655fbe94d543e50b732b07aa8f2b5d2902447488d403f1f88facc73a5da40887ccea9466a263ed5 DIST downcast-0.11.0.crate 5976 BLAKE2B 4ca0e66dbd8dbc86920d4184de8b37ab41954cb1560c7727334c990b97ad9544b098f7ce50759d10cac8b9cb955893805aed3bac5849c8b44a965e24d2ac7653 SHA512 11b037a09829e3e93eabff69f02b608725e6e348a191b1b6c8bb044b8d820a6ebf46eaea2f8bf5eb1c156f20d3e97be9b581e1b5fccebbfe76d94157d6bccd53 -DIST duct-0.13.7.crate 30055 BLAKE2B f1259e9818a7c2f1df3dc387be3837a987e0246dacac84d3ac3443a0c6870b6cb4dab36d380ef8d04db47545655ef4def8c713c62f6e86f2b995fa3b69a16b6f SHA512 b6e524144360b61b5c134d40aec409664388e88ada241443d152c5f7ef8795535ba243cc792c881557412bf75c2ba73c84e2f620eaf7d4668a15ba6bc274b1e7 DIST duct-1.1.0.crate 35093 BLAKE2B 5580216e79152c95ff1012000daae202f665eb08aa8b77dba58772b2342cb4c65b18dbd222ad773fe42b590020ed0f8cf35df3abb68620405c834d4d6e779741 SHA512 8bbb4a65404c6c074bf60b4a5bb5432a3fa240ccde3d224eba3a753bfda01e2576dc828d37edd656b314caefa4a9f400ffb260d352a698627ccb623700523368 DIST duct-1.1.1.crate 37041 BLAKE2B e65f1fe1cb46f46ea6a981575d2ffb2602407a012a94bb36c3f8a950b6fb8a89a94c4ad1aa032886884c73818b3dd3c4435e06f3539dbddc1d4ee1804f4af2a7 SHA512 2bfc531841954e040f5d55c78dd9ccf72dff1fcf6f675ab3f7e8a7f520070532db16057fe921be7b14844addb88a45b662632624dec2b38912b4ae195b742b59 -DIST either-1.13.0.crate 19169 BLAKE2B d6223c76421babf163a694aa513fe07adcf4cea329872c02f5af5956e89b2c353a899f5708e5a2924e5a92d871ba748490350ba30c17dcd78dd4379e229f6e11 SHA512 72e803079bae621d282136ab1e423ba71415bf12038b6f386f294cae68a67ad9ff16e4fdf4344eb3fee4418e853f9cac344c248f6befa3006d1c954668b36322 DIST either-1.15.0.crate 20114 BLAKE2B 2f87cb6408b1e1a15ea19d930cfca3948d867d268c8ff18cbaf39dcb7f7fdc628811575ec87a7728940dfb2c26775995a3165ab9c17dd42880d56569b22c6f88 SHA512 d70c34d903e8e5088fd065a6da6673eadb569a20af183fa9bd6418940b37c8c2a777c44dbdab1b9960890cba5cb7464b805667ac42f4e05499ddcd4277d24e3f -DIST encode_unicode-0.3.6.crate 45741 BLAKE2B e1e3792bc2bf9db7df33a516d0d755eef5eff1249aa9b2fd7f0dfcb155786c566fb619c9b2d73425a8625c8593988b117e9676c341f65e8795ddc838bf9881c4 SHA512 64193d6ac75f66d58ed864169b5d6228ede36dcf100614395e086bc8e847a3ddd287734d88e8ed50f38c679a99c80ec68449175a67d8ee03b02ec1cfa9d55e77 DIST encode_unicode-1.0.0.crate 56986 BLAKE2B 76e8915408c26bdc909e9ff2d59a1655344dcb4ca0e6accaf038434b7518f1b86554954fda8c7874285924c7d16cc81f62e68afcb8b0efc639407b558df1470b SHA512 c9a21d48ba9d50750789cb6fbe32afd903c583c9ef05a9741007dcdf64b1344735f71dd882ad71ab9e5f96f8839578ca53bca14d13d57b9e27b8cce2cd507359 -DIST env_filter-0.1.2.crate 13327 BLAKE2B 96f888b30ec8b40032e588f8ac73e9fe23340af71d5ec69cd8b4dc2bcc272ecd64d1d3ab54bc57e7a71a44cbac497ee7ad3df52930dfe3c7ba7dd129df290b73 SHA512 b1f21a5d4aadfd940bde3e53935c04da48e48cd4f825cedaa83968a08244722aa4e92afb9fd2fdd228412754f040f7bb68f24e05c0bf9bf57783aec042808606 DIST env_filter-0.1.4.crate 15281 BLAKE2B 4c069793165e5adcbf59586a4bbf4aa436532d838f1b939ad92db011f51f1e337cdbd7e3b84cb9e7681d942c36400f169e0ed6f8b66429cdc77626010a781f68 SHA512 58ebb6a087e50c212fe1292a4e0fe6ce7154d3ca7164ffc6bab914e4300543726f4b7875918effcdbb660b08ccac67df7c91b1fc43f5fdf53ea7a46351ac9299 -DIST env_logger-0.11.5.crate 30683 BLAKE2B 9dd2b461be5c5cb3411ebba8bcdb53a78fff28c54fafd21a0f8c3fe578ebc3882ed5df63a5ef9adf62bce00fb6360de895457baf75fd2ed1a6730429478c32cc SHA512 e2ab1f117227ebf8840daaff971c2533830c0e481797cdcaa055a4506ffef78fc0830bfa13295275c604273d494278d43440b987132f97ed6bc1cf705e05cd8a DIST env_logger-0.11.8.crate 32538 BLAKE2B 9d62afecac4d4fb20bbb99611cade6ddbec17c8dedca94aeb13fad8fbfcf82988a55bb45400e78adf8257fb346b0d6cda3e2c2ed2332961d485055b365f396fb SHA512 84091355d3d9f2bfb1fdf4f1c6309444b513385d9b911f3af8cd1b5c467033769e7add11f65f31da8931dd05d96a348e0bcd670733d31ff981faf760d727afa7 DIST env_logger-0.8.4.crate 33342 BLAKE2B b1bb359be2f34ca6f93f72154c86920b8254f574b48f693b2ae7296cd1ff25d34dea61e95fb2954569fdebb6c522c851ef7499c107005528aa2226df13b0de33 SHA512 9e4478ff609a2e1e1a902a55b221af43a52622fdb5668dc33fb0be354b964708b7b6d13b7f1ef11982f45fa7e71f0712a2ab3fd4ea98155a5115e5a7c3d33049 DIST equivalent-1.0.2.crate 7419 BLAKE2B 7ce4fb7b911961cd4ccfb48323eea4952110a069789c6bd177a63391c270df861afadd00c07db7b22768f0864f320e429e0200c433284f528336e2f81d071eff SHA512 8e0e2dc070794a85b276e93f9e4a65d3bbb8587b33fda211c34479a0b88504c913d8bef9e84d7996254aeabe1efe4ff1ef6259ff4fe3f9ccb90dd90070b3e4d4 DIST errno-0.3.14.crate 12002 BLAKE2B 57fd842a717086ffdcfa5102a8c52bf8210672820366d78aadb6f159055917477e6771e9fbda88787278bf3a116bc7253dcb705b601e54038a93a1820c3c287a SHA512 1de95c9806323d63e7cc95111e67b3ba1ee4b9d47b70cec33485194574d6b584d22ff877dfbc244317822721291d537d9509ae5e46f1b45169cb478a78322366 -DIST errno-0.3.9.crate 10690 BLAKE2B 8deb19cf0c830ff2adebb733ab961558cb4463f256604f9c76d5c5952f34a79b70dce47e28f68f459977ef34d4821ab5d0f7e79a7a110693700f80b49ba56651 SHA512 777fbac5730d420d58275ef63b7579997d8e6c72106d483ee1e3b1f1ce3977f1f66c56870a05acaa4cfacacb820eaf963e9c763748759cff3668fa2e6f89f04a DIST exitcode-1.1.2.crate 6538 BLAKE2B 3015eb8bf6658336cfe43b4cc59ca95d8fff5380dfa2bb2a3086005b0dde5e6a704c6b62e027bb5c0d6e6103bb5dec4ab4c869ef454361f224d013c267bf4a78 SHA512 fa31817e2bfdafe64faaaa6b32573e01e2ca0db24c6c88c81f43d84a9db66d19db842b61cbd89b8f6e199aad531a1dc0053b2d4166e0f9196f275fe715f28fc3 -DIST fastrand-2.1.0.crate 14907 BLAKE2B f96c74c1da31bae35e5ae0a557b3cdf120099cd7f31475ff6ce0eddfd8d30baeb025cd17b661f452cc4d3fedde763621301545e28efa030b3be21d1d9ba8d0d9 SHA512 ce776a3d0fbc108017c93ce9bff7c9e7e65590acb149dcd55c2f349d2077ffdf5ac6427753732f60cd7acf141ef6f89359b2e7d9368016be53b24e8703e71104 DIST fastrand-2.3.0.crate 15076 BLAKE2B 15c9a1c4f64d94c4bfd38ae139c6fe19b6b621a495c1b57209edd6d76d978eaf018ba77f356b5086c3f462a6de044fb5e3b172fc288309569911a17ec39951bc SHA512 267fecbb7459c8840f03425733d278dd6c4e7637b85b99552877117ed5e8015e094d86aa95841f77064136b7f382276c3cb2c2bef7b2881d272f4aa57c5cf947 -DIST fixedbitset-0.4.2.crate 15954 BLAKE2B 91270883db5ad0e999ebbca1123d8729d3040eb936034ab8da3cda72a830e45fcb977b3fe3c2b94e870c1fbc366ee8602357bb77e8b9a40cc41a04afad1b266b SHA512 57c5d756b0a202b2506270f0d5e890f7617a1e0c015b6059ea23fab49cf7af47fd06927eb56feb03b37cb2b6c467e326b3f0da1e32cfcb6339cf11a130a3ccab DIST fixedbitset-0.5.7.crate 26537 BLAKE2B 48b7e02d7fa3fb33f05fb2de50a829e2f25d19ac680d59c754faef754ca4678d1671fcdc66d06c39b51b4f937bca44a89b87da195e43a4a905a0d29fa95996f9 SHA512 320b1b47a9f93590f24d5c111c171c401f15a50dc29617c8715b6c9d0b3f26e17f966a87d8628661dfc62ff8dee98524f3b6f4f4391725b1b77db714eb6eef60 -DIST flate2-1.0.31.crate 108176 BLAKE2B 2b0afbeec9ef08e54bfc572d7a386052d519d5bdeb220a316b67409403d229425580e33991f0a98536e6468f0e59ca87b59ff2d00425749336d4e68906d5d787 SHA512 b211254e15b38663f080552598d61d6766d6e7abc45cbac8fbdb5af65b833d2d3fbc00b5748ee12d4fc71726ab84dda9da20b6916121735c7b1c6c9d7a09fa61 DIST flate2-1.1.4.crate 77010 BLAKE2B fac509e03369218f587db1c8372fc6e7ef4aa8d5f9cbe22bc19408347544112330c5bc3f6a1545ccef964d2042c3efed0d5f5b0afcd5fd7d593ef35c85750900 SHA512 23f595b3cba18df65843ef1db2597f445bff8edea152f0e0200d13419580f8e4d20a39a492c52122f225ee6835615706456b2769d7d3fad597924d4733f57c44 DIST flate2-1.1.5.crate 77015 BLAKE2B 3bc8387b79a2f8d4124f98aa9f65580c3bc6f1a927643b52f414ffce4eb3eeab0fb595532e14591573ec0955800891b039c3935619b964d7fed3b2dac9031256 SHA512 b1be1942083756459f87044212b9915656a4c272ca9414f76d38a87242fe5c7a993cb7b05641f18163b2481daf6e9d724f500bed2fde9aebe35103470f065648 DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d SHA512 2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334 DIST foldhash-0.1.5.crate 21901 BLAKE2B 22c3a266becac17995ac996f5c9caa8dea77e36786c50464e4e7750d8f3f13321a0a1abd3a9abcfd6ff441ddea257066b2dfb7fc6fcf7468f537dbd1b0db737d SHA512 3a634fdec410d87ffced8aa1bf8dacd9316a04c51424563d60b4dd611617041f09085edfd0ec96e6bb0e0db74a0e950b0616d1fb94a31667af35af1637604c22 -DIST fragile-2.0.0.crate 14668 BLAKE2B 2e589b312d7409a1a550a676303b9b2adf2e28b0d4cd02c7fb22b48a88d1f88a04e55c4405078e2c43b13ccada890a33bcacfe179abd12236c23f219d275c4df SHA512 a48fee7c13ad800142a9ef1f355b2200b904ad9bf97b3601e310bad2b6ad90ea235b9704964c54be1d9c415c9c95fbc5f49e8ba5d7c6ee3488573f3404912608 DIST fragile-2.0.1.crate 14648 BLAKE2B c717d80a6ccc1af7ebfd76d91d2dc3e081cbeff258efb33b4b6ab6d462c7dc41ecf0d74d8a40c88434b429b6e0f458d3deb430e425713c70066edbb3db1a8d4a SHA512 2c1eeda0fe1ddc7128b313c66eb853b539c1e4c40379f5c16200935ccd6c29b63986ca152e2848c255220dac08b38fe3a62414ae11f7b8a9a675bfb2e7bc913d -DIST getrandom-0.2.15.crate 37163 BLAKE2B 7d534e799a4711d01c6553b8c9422dbf01e384a850fb0f7cd76e444628f2b96d28d0f5e8dae042f8081a2bf9340f57c558be50a6f22ed5fa6b0301a15898fb35 SHA512 04789a53d3f4a84862e1e8b2113641af67e471b468de1222470d5e6cef0015232463a2cf3c3518dc2a533b3983b175a7c8922da00665bcf71c1e4e279b67e6fb DIST getrandom-0.2.16.crate 40163 BLAKE2B cf95b380a610313eaf068fa210bdb4a9e0b9211321d708f9877cd9e1901df0f6b7f57462a4937da3419c7547ef300291deb5367f4dce4ff776e7f0d9d36dcd8d SHA512 6391d5322f8ce2ea7d14062d378ae2ffad66622afd58b9f1732e5314b27d3a554c8a008f6d0d133640f11d769ac51ea4acd24e40259e14e2ffce93d5c3c1eb1e DIST getrandom-0.3.4.crate 50932 BLAKE2B 34165a6994877aeaf3063affd48eb499512371a1fdc0d890feee598b5e22c14cb8347642a0e9374cd5d8a59a8281db839e45923769260312379321bef54c687d SHA512 43c44ec3ba0668f388519b2cefbee63f959f0e078730b3f7563742522e5f4b120472024b95fc94aeb90900a15d327c3573271bb26b2de4785e589a8bc1bc9da8 -DIST glob-0.3.1.crate 18880 BLAKE2B dc89b3a664e810264dd7a01ad892e865ce35b504bfe5dba12d7ea8084da7de84feaa94c2208f1a1eefed90297e552636ad61ccebf6fc8cb4d01f27d605ad0a09 SHA512 29368160138bcb7ea5660f9f30c5711cfca8bc8ba836bbade3fbe8c424e7b4118daf27cffa677962e37e36f025fd2bb5a9c2aea865b0ff155cace455dfbb658b DIST glob-0.3.3.crate 22861 BLAKE2B 34434d0ee1d50d0453f7294cb793ff123415feda605b09a2634708646fd91584db6b77a51d38c20ec89d8e3b36b136d071d30020f6325cbffbce736403c68803 SHA512 159a5de81cd59c472cd5705a50f140d29adb64ef10d8dd4bab77f9a44cce33933a779ecd12b399edffaac551fd935a3aa74ede4c9aa9b3e5212d220b3fe22219 DIST hashbrown-0.15.5.crate 140908 BLAKE2B 6a360eaa2e174ddd1e9761bc19edc4b57b80f84c36bb5d64003c7206755d4175a05f39c001acaf000ec69ced9e28c3853bd64702e2927aa7c38527a53abf2201 SHA512 654682535882733b56dad632851fed93a17ad0b2d3e13e3390d7802450781501e275b0e0b39fa32a6eae092132858ed79b305238cd5771c08987c5d26af6d692 DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76 -DIST hermit-abi-0.1.19.crate 9979 BLAKE2B 801e8052b85341cca388ada9db4b06bb1bd7b64474185b2ad06c0256b9e597639bd3dd4ba0053ea010f922e53969a4ab47b90d451fd9b94c8f2324055d151ea1 SHA512 1c877fcd562b15d2de9c151fd6c5f3ea4bf48abcb799e6139a180ffad5d64b632f0000d5707bbd92ff23a0e5f349157b9e0f5be8b50f03680b0fa47315dbb78a DIST hermit-abi-0.3.9.crate 16165 BLAKE2B b779f005bd4cb9ba9abe401a0a559a5bbcc44726ac37f53e9c8d1f7218389ec8b48f74d14666261bc4fba4fbe5558cfefae873c49a2312c8c8bd4010b8344064 SHA512 f3a5a51d834a6ad55480b53f7e9cdc73a512ab0cc6c246a6ab1e8bf8f9851a0c8a55982f5bba6cb57b5a03b54870e73b0bab0a79195764c308318394a3ea8045 DIST hermit-abi-0.5.2.crate 17435 BLAKE2B 695192149342273199ffb026de57e2d906249757b9b4bbceb6b40d3b2298a942a75390aeaa3ad4cad71e5d44687379dfc49598bacdb2cf989ab48864c4b2b517 SHA512 0392a8350288e5d500967bee8e98626024b47a7da331f833b9528bd7318cf43f41eefa46aa6aebd19febfadcbcb2d7c9f70d6ca3631c1618d63c60366dbe7c15 -DIST humantime-2.1.0.crate 16749 BLAKE2B e2ae8325b037fb175b9200cc5c1944ce579056c6662cce307beb6701894552362a25e371aad65f8fb9384945b48815ca74bb8b544a32e0a5845b7edd30b918c9 SHA512 3bf29ddd1391d82897c22baa0ff3ed58ef6d6959859f1f8ed54d324caba5b6fb4422e56790511ce82f902cd11467f93c8ab7fc7b0e0bdb719308a4d0a446ae0c DIST ident_case-1.0.1.crate 3492 BLAKE2B bc79ebeefbb7e3ed1139e3f41d8d20fb175786bb123bdb9c1a92ea70effb4a0e5e798f24b068cd66a1bf20d53eea4bf24de495b5568c2d649ea804389a1327ab SHA512 81003a43f18da5997d644319274502e2066af9f9fd1400afda7cf2986b3ae0b7355b932302723cd3bda2d46b264340434d9279dea58425bad13785698d5808a9 -DIST indicatif-0.17.8.crate 64869 BLAKE2B c534020b2c7b25bb07cdd0fd4414fc817506647cf5b8e2081c22be58857d5adb170082a3756004c69187619fc5625f8b9a1904566dc51c621838e09ecda5b43e SHA512 487e73445c5c7d3c16d6f93a3d9767f41b37d2832e56851154f8b69e678ab7d9ab04eba225a6bcf8b48842ae0db0249b060e998e29a252dedf8afacdc88b1aaf DIST indicatif-0.18.1.crate 66826 BLAKE2B 96ba7d6bb3ba41f6f8190daf7329e41068d841d37750141beca58ac12d05ee54191ae14d64fe8986e2e9d7cf5a1a0bef4f9d9480d67f1efb5e9a6c9bc70879bf SHA512 af81776df2de89dcfa81772b8cea21b32dfad9ad483f4e4f060ae1b2b53ca89c5766564eee2855e74f21d80c13821bc72416bbd4807ba86621f11bfc7579d5e0 DIST indicatif-0.18.3.crate 66504 BLAKE2B 61c6e0a3892bca66cc6db8d5371ad3130a43d45936b1e8e29e99bb3a7e3b6b3842798373a326f167c7eb752d9d3cd18ffa5bd274310c88a6b30e142f44d8714f SHA512 356b999f503bd64f98f817578dcd957645c8d23c256229ce1b1bf2d1ebd390caecb1ccdd71165311181f2447d6e80561763fc3418688c2ddeddf8c1af95c9028 DIST indoc-2.0.7.crate 17184 BLAKE2B aae454874b44dbc908a75b64626e608e04017c1407daff9a2e2dd12a337ac04db594540d2f31bfc590d6f37f0d711ff2d3054352ff1b33e736c36620404be0a0 SHA512 6e80cf927001821606488a822fd0f67ae1a569b022c98e727e6b1571c88d87775166f088322bd5f17abb8fc1fde62c9d14fb2e99f1e50918487252d823e48f73 DIST instability-0.3.9.crate 14451 BLAKE2B e45163b3d73ed63c3df11147f5540a94b2b67ae7e977d6ba1b9ec80544898082c948b7909f4a770f76b8e60bea7ebf52d81ed36b28366b458a34b6e68cb0e5c3 SHA512 1a710c6be8eadf481e505854d7fc614f983d410caf56516a35c36cbf637b04290c7d4ec9d4ab6398151a645a962b1af8824c69078a180856eebec1033fdffde0 -DIST instant-0.1.13.crate 6305 BLAKE2B 83a2c479e21e789ca9795f66116ebc55481a42afb21f4c0ec0551edf07781901a28978667e92b01355b43e0e1a7ffcd3cc37b5501a7521da78f4f352e586c9fd SHA512 b7839431e8920c4c0841d0974eede75fc50f2bb7a9475664bd2c4ff6c558a10084e1c025e5be977c3364ae9112c365c0a6f480cb9b35ee4130ca2beebcf650a9 DIST io-lifetimes-1.0.11.crate 37346 BLAKE2B 7f278b7378a8569d3552c9b6d4be06d7908e05d77cdb964267f0b621ec4975a42fb6e48fc030a75ad5865681adf32ff747943ac559ab4ad73331a6611a1b10c6 SHA512 30c6e5ce6f5beabe0d7bee4f4522884d1316cf7d9b8d093ba0f952995997be3d0f10e1e77b9c20b7fe2b65429de0d2ec89bb35e939455795205206a3154ed544 DIST io-uring-0.7.10.crate 103070 BLAKE2B a958427e3f5e5e1d24a29e92da91654859597eb49363b076f9b3b6c9278387f4c264d95212ab12f903acc336014e224d63eb79b52210202abf5933fd9d5e6e32 SHA512 637c324d33f2d78bb6e2e13d021d9d3da02de4bf6698585c738de29e14b89e7ad2b310aa2ae0bea0eaa283e354a55f88b5de50212671d8e67a27833bca722165 DIST io-uring-0.7.11.crate 104409 BLAKE2B 8cbace2d564916184ab58c10e422481bc4a14fa5edc090fe689adb373ab2f490c00d609857bafcbd6d148c587c2413d63cd369c89a3bb9147c35b629be2499ea SHA512 a4c2aabcce6f583f49cc92b1c38f6d4bc40e2d03fee69f138340fbb56e34110781474e17b369281431ba54b9eb883d1eb801dd98260b6834934020a522a6abc7 DIST iovec-0.1.4.crate 8720 BLAKE2B aa1b4cd98ebe47901c0959cf1d8eb2586a803d0453e2a8bdd5c63442b32886dbcb37650aa218c748fd45c9fe3a7fdf20569eae5b19716487b139caae1526da4c SHA512 e23fcaac239807daea20ddcf2cdd4fb858ba1aa970ce6248f70f0fba5bff7ebdb27247c0997ac0ff2791178f86ff9657e473d8f64b86c644763e5b3474edd158 -DIST is_terminal_polyfill-1.70.1.crate 7492 BLAKE2B fa663f858ab8e5fd56202d731b572bfdd4ab0e8262100424e27360a9ffd2820182bc57d6718a305ef82d04c3798111841c0d9f9dcfe219765c0f63edb560dc1e SHA512 4730fa09401cb4e69c92b38b2b43afd74699c61f5bd7b37605efbc0c08ca7a1318d43e4a844e46e0f84f83f42432f01e33771be2b18eb5977702ab9f894837e1 DIST is_terminal_polyfill-1.70.2.crate 7548 BLAKE2B d84c45a94bc0ede333843ddb5206379f1a7d9df742c7f7940374d6b17b0a9c300e32fed5fe2bc58e6b3bc5d18b5fc58dd4e283c01c2f3b4f10f254b3cf7668c3 SHA512 d62f444e83950bdd441215c0ce681ff774692b35fec2af7181dfa243dd43fe42ff7e10a6e3b1d578712e4130dbfdf471ecdae73a3a584a2856a848d387b6c261 -DIST itertools-0.12.1.crate 137761 BLAKE2B d7db67feb7418d6a779dc17d8a2f33481114cd81a4d53a10cffe08e13f0d3cf4525a5ef43368fe979d5a3ce230872eaf993f7065885531aeb5a6479351857708 SHA512 0d9c1849dcc0ddf7555b0aeb7e4f2ef3b101cfc6f03310ce1b6072d70ac8c8d3387ef4c726146102012e75171e0b0bf13465704b6edfc02752e349dc6af7cf68 DIST itertools-0.13.0.crate 146261 BLAKE2B b23d59a87f80d24925bc868c0ac7abb6b9d05aad5ca08833634ef760ce228a1b753062ec4bd22237d0e74727edecd7ba3df9789cee896345b69780d7de66866c SHA512 c6cb8f93a93b6ac1a2cbb3033e66fc81a39f83be773b734bea3311332b96bc71bbb518aae3e6b40cb537590c23de1ca4964361c336795c3985bde63232d410c4 DIST itoa-1.0.15.crate 11231 BLAKE2B 17c261baf95bff2f6cf0dbc33ab78ebbab0cf5dc56aeb7f8977377af868deb5957918f1763c2fe8c080e931489ea89ebcc16b3ebd976eeeb7663ff74989a1071 SHA512 158ca5dd4b04cb12d9292a4df63c72443adaf5aab1bd9aacdb964dc58878d847a64251f84897cb25c34648d4c973b44fef5b4c175d7c04cabc2c13b4631c2e42 DIST jiff-0.2.15.crate 712996 BLAKE2B c90d59db2762c59fd85fa8f45c189e2cdb476afd140899e5cde1b657b2630cee75a10ea3d3f20a7ce2853fef972bbbfb21b701375e5e9d20b6287cbe433e9a10 SHA512 577b5b326c66bf8b81174c48e913ee381cb17030b7cfb3d211ea3376a4805edf08eebff7ba1aa67cf20144ebf3aca02d6f96f771cd44e5bf6aa0a23e96f6fd27 @@ -125,113 +84,70 @@ DIST jiff-static-0.2.15.crate 76146 BLAKE2B 5409fded10b61363d8a6c907716b5e374eb1 DIST jiff-static-0.2.16.crate 77672 BLAKE2B bc22d4e757ed36a1dd04ef524f5a27707d5ccda94e009deac32cb0ee2eb99a59181bff15e60e1168afa42e15198f1f1200610e8729da60372a929da6b51bbf52 SHA512 5701a44d5d9f2f70e67018271a47ac224d0bbcc5b92f66919c89d59dd69b45332aa4674e82016f4458e666026ca1b56a14568a75085d7fc58d035e8906245a2e DIST js-sys-0.3.81.crate 56399 BLAKE2B b279d15b1b177e4617ba5b6509d35c41d077d458f4f30684fd211c652d7a1f0b4e3bba62a74842aaa1227f61b382f5729e9cbf4bf517c0d2fc9dbbb0e46a67e6 SHA512 c62b7ed89c6b82dad85c7950add67c352a92ad9b7dc759170a42291e62fc21b1dd2fe84214a893d6447b73b00762439b5f787f7d86e5fd7cb505c056e6be50c7 DIST js-sys-0.3.82.crate 56436 BLAKE2B 9f7b485177d1a3ade0f1c47becb114ba3dded7fe308420e56e1784199cd9cfcc1fd773a53fe4cc30132ec6579454936ae2be641ab3007c07658c9d525d73394a SHA512 ded31e414e3921c583358032b3e70895e570750f7b3913d685b2582a45b350e854acce64348f1c46692d910d4c7b366b6748574ec993c197b18e87870a52657b -DIST lazy_static-1.5.0.crate 14025 BLAKE2B df29e0e3d1c061815bdd608b41074436024dc407d454f32517705ab04b2fe06075e310086c5e4961df0b4885e91021589d0bca2c1cbe6f0aeffa3ff1b3fd4637 SHA512 6d2f9887cd7f34f019644e42f02f2bf0111accd73aeaa60973ba0b039b6774670debece1ea9a6978e923208ef5d3ab7326473ee3560c078817f0f7ab8ed0f65f -DIST lazycell-1.3.0.crate 12502 BLAKE2B dca2d3f46823a52dcf87b7d6103fc4f1f83bc5247ce361946ac2d9df239fb43ce4b418104503698dff0242480cd014996e77da4ae0a88f3cedbce4eb9d3c9ef8 SHA512 f9d627afc28b61e9687a3f72260eb013401fd64057647641ff2e763770d7380ab1d2d8cbb4a3c8818d53d504c618a3b46aaf701f72f4d7b25d226042824c2f8d -DIST libc-0.2.155.crate 743539 BLAKE2B 42cdcf8d4a187383548b1f09d404474f168916d626d614463fe10a1fd886e972e1caf6297e75445214af3f31fe631d0927e54ec1cdc63e20082b3587e38dce16 SHA512 05354bba532b8338bda1f88f12c7f3893429734a06e33925fca2b99d49548ae5216e2cd84e782d2368a2dfef20b0e035e2dcad8dd13ede7119462a8c639b2807 DIST libc-0.2.177.crate 792045 BLAKE2B ecea1ade26b0faa9cb5fb025e237f3a59dfb562e7b3de3682b42a41038b1d436e83b42b53158c1fc1cc4b1cc64ab55ba1497e869ae850a677c089fcce9138912 SHA512 9d737091dba80244137987d06a52ffcd44a968c96b59ae9af9cfa40c38cb9675d023f6324fbf25c436ce1b9592ebf26248f85b0a7c97ee02360ca624b0efb3e0 -DIST libloading-0.8.5.crate 28902 BLAKE2B a0fca8f8876092e874964b3dcbaacd417451704fc1d687669a95a0b9df22ccda73a754118ac0bd706a7c7d86e4eceb2ad012e20e341d71548b34ea8d629bbfdf SHA512 f332884fa75cf210460f4678d45091345b23469c09301614c476e95bc54163afd6d4f098a34f9e0d529fa1ec63892395b50957598070ff327743e4c3b0871074 DIST libloading-0.8.9.crate 30222 BLAKE2B ea3e581dfad82c73731e7c2ca13dc608d78c4e6c517d063ecfc0fb138775ccd9c071aa2c7b539476223510dfb4aab03783fc46d610771eba21933aaed339d1ed SHA512 374d82f4516e81c0ff66f244b89b486ccba675cd7e9e65b7732242830a43caefefae2efd11c209da64d8d96755c4432aea97f2dd200969fc077545212a1175ee DIST libredox-0.1.10.crate 7332 BLAKE2B b3dec5511df635f98f1424d9765724a8313b85ed73bbc6fc736a57b5b0a49972cf02d546654c88562846dd6bb2eb3701d4e14312eda85b173336167104687899 SHA512 3cf139189f8ae2ff77fa9663d1a5405ac3047d5cbab76b6497038631e2070fc2b637f9aab5001756d2f0d2f34e820a909de19da68a59c903ecc3bf80d8e80680 DIST libudev-sys-0.1.4.crate 6177 BLAKE2B c513b5cd68fc60a7a33ba281e4fc4f9a5896946aeb1fe31abb8af22d279c39c3d781fd34109f98fd010fe8aa817b9d91726887f0ee8bf0f66a3bf313b01c9ff3 SHA512 185bd84a729a5dda6fb274584c7a731652418da9435d844870a9d09662918c9230287f4ad002273599d0a3e9709a36ae06d59a6686dfba978fb7cd1c51bbc2c7 DIST linux-raw-sys-0.11.0.crate 2659624 BLAKE2B 0852bb981c64b8e70c7037a3da13a6a16b7a89190bc50a07159d28a797e6d1ef2f2010383df5a43cda19fa291ee5eb4c6365a51f5d9fd31f204544ac7e115129 SHA512 b16261142f3cbd1caa4e0a17ba06dea49f0d4514f583ca511d9c7ba6ef231f18322f37303b7ffacc73ae7f22b81dfd740584ef7bfaf67a9eaf43859d2de1f941 -DIST linux-raw-sys-0.4.14.crate 1826665 BLAKE2B 804af73daf396bb20da14f831f26ce06325181de14f0c277350bd22d21789f2bdd663a964cc0e7c5cbd2e084285d02a401a6bfbb3e8a8f079c120f9488b56f99 SHA512 28149660bd975ede05624af3582d5c78f498239f5d89713c2c32f5372fc16f4ca024dec35f81ea973a2cf986098890395dbda06ac6cf4ee29df3f9a0e11eaea7 -DIST log-0.4.22.crate 44027 BLAKE2B 831dc5092db05123bf2e909eafa708339983edece9bc8cb802f0ab418d47ddc5045a72c1b58bc7c46ffa68080eebd0fd55d6e4f5b3d5ad3b0bc6b2ea0dcaace1 SHA512 bd7baa9c8a5523fd0864a53bcde955d484cacd782412b5b02c890b89dbf62137624da3a27337a310dd8f62bcc6606925a42bbd4ca161a3b7936ea4ff96bc0d71 DIST log-0.4.28.crate 51131 BLAKE2B 2911509cabe6a69b60945e798f2afee934d865d21efa22d150288de6a27a797fe00ee4f249fc6f6d7a02e2efb7377d2a7188a8ed8cb692f76b94a0df56d74d83 SHA512 cea74c92c80f291360a7cdf022e3ce2f509b9051b415840ab2a159585384f3fe606289da00a6def0c3d666416c5fcda865e2ae4ad48df07618818e8486cd0209 DIST lru-0.12.5.crate 16047 BLAKE2B b5d7d77b4b29973fde0854f55c395edb6ea6e3a309fd33f0c43a6680955bdeb60fab624f02135b637d95e5a0e9da79890a71290c19d797f758c73d16c3d44a27 SHA512 a77230403b1ccb5aa3ed1ed89e7e6af53b3b34d4373e663c1a9789dada12c252e2b5d8b7ac78717c4c4909203c7ea2ce5743ee6cb414aa268c329b889d66a982 -DIST memchr-2.7.4.crate 96670 BLAKE2B da38114beca670467c3e1fbf4e415af6f22d52e3223715d52e181babb89b872b46511563985bcc16d7ff4e82f812c6e83ad904b0fe2501b14445119dfa8240e6 SHA512 8d0e8b9c30208897d4b1b920f1bdcccd0c2b75d92a06abe4a1b2407938768abb6487d63de56c6a80419798fe69517210643dfaf11f5f5540185f0eccf220adb2 DIST memchr-2.7.6.crate 97616 BLAKE2B 3429786e97f1aa078892e417c8ed8198ec727969517309049b842e44097e58038583508aa974e6246888c18e11f9d23863c1bb012b542c5685250fe34e250d7b SHA512 38843817334da88ad74ce679b4401cf948cf8138815f3acc5eb0d005da3aabceb2216e20887e79344396569a2fa136e3aa1f7f3251a00d07dd6934cee79f4fad DIST minimal-lexical-0.2.1.crate 94841 BLAKE2B e6b8919b80d938d0b98d60d4f5f29ce43d77ebfcf8b18bde08909141915c6ef4f0d07a543538d4f3ba8527a9f55926d4a8e83473248469d087e80b274d701d61 SHA512 385fab51884bdcc7b0f2728a219ab164d0dc8efe42160b918f2c09f79ecf853fb12bda006d11e649f097bae1499dcd41ddf2a8784ee7d178cf2c28059e46078c -DIST miniz_oxide-0.7.4.crate 56119 BLAKE2B 68facfec9ff405bebe99f52bcf3aac6788f1b5eef313ca393e2a15e1158bf294003cbe31efea4c793e644e8ab4e00ef67d38f7d32849ab6f01a8e19d31c30221 SHA512 482bf02d7bfd25bd8abe5e5959132677202d8c5dc014b9b0b64fbdc204be1b8431867095c140a1183dd1ca59f6ba871a355422fbd148ce34d62960cad2b7a978 DIST miniz_oxide-0.8.9.crate 67132 BLAKE2B 1a11c5aeef43ac93635942e0c4f17538150f8307fb280b0d66436e4b6697638f0b1bafbdebb377a5dba14a75f213024201e325747419623e5f7d57060bba4445 SHA512 3f6fd786c5fa5b4abafaf21244dd4830d26688d5b6975522bda595206517f354d92d13fb95235667cbc39c0275371c737164d9c7a58e32e09da86eed2f239242 -DIST mockall-0.13.0.crate 22819 BLAKE2B 1589e2daf2be54c92b5b5a907c713b30f15b56befe9fb7420536c5c1ec705fbb795f24ea64f7abe465f3ff2cff586850ca30879af76331d9948eab4e57121326 SHA512 cafd57bc600896be2f0c414ed5ce874a33fe9cf4e13dd08196455f67c6f37e6b6a7ae716abc72088f55c0dd4b8454cc8e086f8a5e5ce087f0084edaad592f44c DIST mockall-0.13.1.crate 22825 BLAKE2B 8365cc35cfd590b6fb86f4d14d52652975d855c6d06750a58794f3e1d0818bb79e815d6b1966bbff1fa13e512d960f48f660fe591333a04df413d81a8e1b390e SHA512 8ed8c2d5adf26eda8bfa9fc3cdff43d1ec95a5696258c33fcc5241c9846a73975cd0394707491440f4b827e0d8bc3d14df5c825fc6c7cf9f79312316c01aa834 -DIST mockall_derive-0.13.0.crate 47268 BLAKE2B f6f5d9eeb7e8e4c88d47747f35ebf15e1dd85b0db86e91cdc14890ccc50ab6d38cfd6df951860cd740fbe5790830505fbd388a1b4e4a6e2554b591f073e2dbef SHA512 611002863080a137e0966d5be2dbd347ca2b1143d504e971a65c3a6c8120fc2d5eada3fee1e27a34055a0298a263c9c29918c1e14b7300a1bf50271b00bd68cb DIST mockall_derive-0.13.1.crate 47822 BLAKE2B 17d9ae282e165550168eb568df0ccc5512d7479e18fbfe02829803efd81b53dee1f660ed00b88a213575c65ba5d24944c44a530776708e63c57834c2c728c59d SHA512 3e1eab7f9dd2e0b40d41cef0311f0c360f42236988182c28db2199044c1d3b712ec4ead7cc5e6a89fc33df286e34eebc00a4bae6a02b4e8fedfac2158fccc993 -DIST nix-0.29.0.crate 318248 BLAKE2B 3a13a88375a359cf77b28d7f77f47f178bd31ef74b7627b6701bc6fc601024706be4e9ac1a076c7cba26b64d3bac4de17aab45fe3c045aa7a36e2d9232e872ca SHA512 86c05084aa0e6238f8d48df0f5ce6e6d7661b589f4f3fbdad43387c59c0d6afafea4badf25d31db1611615de19a0b9ef18ce614846b79a47cad4e2c9367dbe7f DIST nix-0.30.1.crate 342015 BLAKE2B efe5faaf142fbf8d97366d11f28189167d3d22c1ed76b65e7887064f2fd146ae27282aeb230eb798d7c1b3850ea1502bcb325dc23536800690f0be3d66d37b63 SHA512 80df8102a3a387d9cd73cd8d756b9fad5c4c4b57f6e94d9acfa24ee07af51f28ba2db70b8d37ddd6c7eae883c7acf9fc366a0100659856939210ffde1b124d87 DIST nom-7.1.3.crate 117570 BLAKE2B 5643b67990b7305e101b16b8cd27c447e162a7adc6d0dfac00920b0cb50fea98c9d4edca63c34f6845cba05f8d0acb407cf3045cf64a4cb28e53c8b6bc9090cf SHA512 1ffce08dde299bc0e0367ad59c7b6a83e23decfa11115ee076ab91ec53cdd9ef37e4c2103c96eff23a7b6b8b5c3f67c83ce1917928c7d4c6462083bdfa0c9cad DIST nom-8.0.0.crate 135590 BLAKE2B c97f47d8c59f6607517278afeca45949a1ed61c1c178c2cb4a990a3439a532e544e5d3d4732e9abb87d93731b65379ab13e44297cd2573e543bf85958d7034d7 SHA512 7634276cf799b0260e4f82818e297001101c84961b498552ee19d2b2bd7b7be3621ce7fbfa9d85c4531c650448b2d32326ecef28f8282b016f5a504e69783cb6 DIST num-derive-0.4.2.crate 14709 BLAKE2B be4abc3c51647f2d4ebe0c0619948cdc994c6ef808d768dd2b9274410716f524ec73c75440f7a780e4871f33055c81f800b0171e4b7a4e2214da5a3007393dab SHA512 55b951470a07dbce489ee43e1540056123d3eb7b5240903cd348951b81ef5aa5b2b1db311d1219bec8ad191373d0079bf40861e3f45380f8d8132f39d33b4f4c DIST num-traits-0.2.19.crate 51631 BLAKE2B 78637360cbf32d172510a62bd9442708af9730c0296a2bb4ebd200c08facd49bc31bf8ddd58967e0df7273a938832b620265d9f8f4d26ad16049bf6dac1cb4e5 SHA512 180018a5eceb45085e4e8d103ff21bb4d5079cea874c42a0ad4c76c99d275d434bbc1cc289f0cdec172866daa89dbfe0871410b2cc3407233fe1129786905956 -DIST num_cpus-1.16.0.crate 15713 BLAKE2B 11b432fc7c7496d48918f09ed0954e0f1d0845596301266321293b374392898853fb7c313a0b0fd9d22d9dbfe3ccc5cc1e38f38407c89b2e5906eb76caa6ad68 SHA512 a75863afc4a563e63c64d06471c7921615355d98011ea9497b1f1a7dac2bdfc876509136018e8062ac38575ccf476a196d1fd9231e09e90017333bbf2df4615d DIST num_cpus-1.17.0.crate 15874 BLAKE2B 8b31104cb49696d8994fd05176556056db69ec3e2b7d61b6b0a88f8ea7f4395934df1187c86301a3a56c3dd6be02b5eb2baeb72a991fa3cbf61571767dd1ee76 SHA512 b2d7f664214bceb8acca0758bde4d516267c0c76a70fafa25ed6204eebedd69a110f045682f50cfe6759a9c2178b026df077c5f0f85d020712dab65cf65d0aff -DIST number_prefix-0.4.0.crate 6922 BLAKE2B 81bd3b588c788e6865104e5ce87119b5e0c5a526042963d52cd582ff23c2f8c9f32b4c445ef0397fc402b6d047e031d8e2c67ac97e191bde22e17662eec3a554 SHA512 a43b668d7314218b86ca7451daa9dfef71f6c9f6616bc34c12d94ae6030f182bcca9da83905cb46f3d49d0aa81385a787e92e4f3ae239658067adc249f8174df -DIST numtoa-0.1.0.crate 8999 BLAKE2B 6a8cbf17458227fa87bdd6a35404e09afc092a1ea45d68c6c035e08a9d344fdb356b1bc7b52239dd6354ed9094e9338ccac599542bd7f0caf167ab8d17ad5fa7 SHA512 41b5c774048592c5867fba217c85d4ece4540e0f3ab0eea7dd1a6af340ba46dae42bbca62ea7fe3afdb258660f39a3d3082264c99dea67d3d1ae178d00a01354 DIST numtoa-0.2.4.crate 9167 BLAKE2B 16b0e6c26879c33c952ee0122c8d2b28cd678d3d877434292203fe420f1f60d8be7ef1b9067070e449a15cb138551bf3c3b6421b629b80c201d34ba1f1e688da SHA512 d627d2ea465c81b768545a1ed1770d5a567f0cd6fb19e819717ba31d795c47296f1575c56d767a7f7535c83c65d81482cbfda8d1c8e711c209e76ab813065b4a -DIST once_cell-1.19.0.crate 33046 BLAKE2B c14b374eaf4ac0f60acc2e02f7bba270a0e8e0a6978d749cd3cb0ab3eb26907e4fbea70dd5132982f90290381ed18ff8a87fd530f1415fabffac864f157ea380 SHA512 4154876afd34a699ee650d1a8a1c5ee5a25f0ebd9388b8bef2564e33629fae68f113d7507488c68abbe7ea1acf9bbc41813cbbf3ef3e464e3f3b9cc7a51d870c DIST once_cell-1.21.3.crate 34534 BLAKE2B 3578aaef305cad2fdffdc40c392775a3540bfab3f3aeafd22466d9507bf8346b9fcc200929d48525b051070c0aaa423ecbcaa12868b34dca007991effb224166 SHA512 32a87506c6f4598f3ca2c88556014ef2093d5db9a08602335e847caa537a866492fa74c894e7e1da2e4289a1d3dbffcb90a9e37a4a1453203832f434b8206990 DIST once_cell_polyfill-1.70.2.crate 7448 BLAKE2B 5a90f8eeff25a555987b84b9800f9e0b2aa94fb4827f76678ef45d344c4baeae5a079a288fd02a570d0f0099e9b2842d32dd206dbd609212496e77ede47a4d21 SHA512 9e0d07bcd40e4a5c271646d6fce71677acbfa4439b4e818bb4df823eb31eff976ba78239e3a7e0ad21e80ea8d0d3af3e74a7d0a0a55b308d4c777b9b5e1ef8ad -DIST os_pipe-1.2.1.crate 10691 BLAKE2B 563b108a8ce21dc4406a35bd2776b156ec77053f9449ba92acb81b9194a6df58a72a1fbbcbfe0b8d88c3fd3b4f8b1244a4d6737916f8e4050c6cd3eff7a8b130 SHA512 3a184359185495e8a931d3e875c5ebdc822e6fc76ecb9fb4264409f68d8a145406001339bdc00585f3ed7d9ecc74fc89f662fa8e08f4ed764a258302a198d4ff DIST os_pipe-1.2.3.crate 10467 BLAKE2B 223f79114161825747792e10f073c5fc32bfc4ffa67d6d48ad73feb8589370a5260054c9cfe3b6d77dc5742b72015ff96d8271cc74c505dad0aebe8a666cec05 SHA512 19dee6ead0eb792eab5e282e595ed5c3bc741613e1a7a790c9478c63f6b179f4aa55f4ddbd768f01aa8cc502c860691836f25e00e49bf133a0153ce7c5545f3b DIST paste-1.0.15.crate 18374 BLAKE2B 69ee7def55e658a9aa72405bad62325e8d6021a4989fbf11c88d1bf05fbac520f7b04d467bc3c6eb45043a41119f65aceecc4a6a1418a9192d73f33134545062 SHA512 5026d3ec7141ec4e2517a0b1283912d0801e9356f77b703d954b379439b8d85e3886d42fb28f7835edaeeac465582da14233564fb010c71425a59c9e1cbd46b4 -DIST pkg-config-0.3.30.crate 20613 BLAKE2B e14dd544612f74b038bc7d279d629034237946c261e3e97621d6ac910a12f4fa4e75932dbd5d3339e62325d0ccf33002b07f04b0523f93d2bd3b1a919841ba66 SHA512 e4bce232e1e1cbb17d1c08c3de4dd12613f5a5238f831c2a765b6ede9b494e647d2416a7d9a0c926104e24066dd1b38df8df98a6c55d62f25060f80eb33d064d DIST pkg-config-0.3.32.crate 21370 BLAKE2B 74ded191f066bc223739b3d4afec58f23de57566e7604e3dd62001d9a095a7b6a3633fdb01fdc46960c8134a694d6bf097d9ecec62b38c4f14acafbbabd6e893 SHA512 59569110185fa665f76a13e884a67ad1578c55246abacfc18cb9f037b2d2d9ec3f2078a3adfe5cc82a451892c9ad55f918ee01362a741f57dc9ff6846a4e32e5 DIST portable-atomic-1.11.1.crate 185506 BLAKE2B 953bb1f2059dc1d891305eb89945f1f6a172fa50972725aee499de72b5dd9b4ad8ccefe4e891183ff8e6b64f4d1bb45ec33b06e0f5af34c940f817b290f746d9 SHA512 4c037ae0b4aef43077bdbf803389bc078d963f20d023e2e1d339a54f67fa9b27c174e7c1b6eca8881ecf301e30c431632d2c0dcedfb5b19552892fac0f81e2e1 -DIST portable-atomic-1.7.0.crate 145385 BLAKE2B 7d9622d636677e3adae0f909405090318a9d6189fc18683ed21074e9360f213b44c5213f3561e3dd1f642547c2c2e6682b9e1efa63243c1f12636bb11bd15dbe SHA512 0849edaa7a1f9ea66182443e31691e7839c857240916521bbd6009b5e692b13f5b315df36e656134651386bc50d895ecf6155a906750009514cad8bfc7e57fe2 DIST portable-atomic-util-0.2.4.crate 47043 BLAKE2B 6a8e122bb2b9eb8262e9eb790f336dbb602f6c086f8ac025740c043170360d5474af578b3842b06ec51535535de3f4d1b6753ec54a6871dd0396f5c1012b0bd4 SHA512 f2266e78576181123aaf68e7b5d3523a368fa8136d447bac68a08d65c7051dea677cea84491a1a03b9decb4704b2f9392574d68dda9427092a2ac92cfa0affe8 -DIST ppv-lite86-0.2.20.crate 22478 BLAKE2B 9d68dc36d8148047d571c0147ed29f586f3c6ac9394b56bd955c8ae5bb18f5a8da5369809f7b8c3199074e23660325158c32c62e1bf69a16cb1f5da2a01f5df0 SHA512 6d171f63b42296f7765732fce3af7ea05d0d81f1541ffb3ad86e81210715ef4afe5bc9e58926e97e757aea6ff96a8012c8411eac78be0fd080898318ed21d7d1 DIST ppv-lite86-0.2.21.crate 22522 BLAKE2B 150b2ae019f296dc0a15090bcabcf4981bc58159d592b07da729565ef8976e3d1b4416381c6ecaac77874d8e259995254255c8831861ac20922b810753128cd4 SHA512 94710d5b25b67539cfa828476367849e1ecaca744f2e0429b48c05b47ec48cd57f950fb9845a361fbfd96f361ac00fd2d47cc27c584b79ce3d9d8fc133f5b7bc -DIST predicates-3.1.2.crate 23986 BLAKE2B db4209b491f82a1ef6147158fdf86c0bd8a059e61c4a1922dccba257e461be36e31d4a03440c2b80b3c7c49d612dec81fb76f648bd5837c481d93cc9ac5ede65 SHA512 50896189f39842ef424aebc12c2633112fda83eba1bdeaa3e6f398db1e28dca0cc7838948f25e67f6fceede1a91a1b0ede5d4dc4edac6da752e48c7a07bbe3ae DIST predicates-3.1.3.crate 24063 BLAKE2B f57d4d19128107107b436bcce2be5efcb2a17cb18952221bbcb63691f5bb0fa3932a50e721dcfbd959d27b34084a6a9931378bc55c3c23a6668fa6a552e72abf SHA512 0da703faeb708e3f9eb9bb8803dd8cf6a493b02d38b9b617fd1eed7ccb870ae96c5be6cfe63b7ea8855cb2a019a7ea59799faf2bd78fb490d62e640d1a7de1e2 -DIST predicates-core-1.0.8.crate 8552 BLAKE2B 774ed04fea09335ae9b4e87a237871f954b85e54df369c5be60977381e8cb50f11aa869e5ee41e57e4f3283003a9da67bdbe3460420ac8620f18fd81e33f0597 SHA512 8cfd010b70aa694620d6c573bd8ddc50ea16ba08f6c737902ba6697307af4510b9298ffcc3068b45bdc6430103db6fb4499783c64044d87d023bea46d45d0f7c DIST predicates-core-1.0.9.crate 8618 BLAKE2B e5ff73c0756f4cd91ff5d2fdd7dfd33e300dae34731933c11798d7ad2e07d9500dbb7828e7473a055c55b5ffa8a761f02a9d04ef313e544e477e4cb94159576b SHA512 618db56d417f44f5575159265f245fbb62399951824730546df735dd9bc9dba2200f58c0a7c7830040bf27954bb48e01fddb5fe0f4d4890d5e172cb1c586735b -DIST predicates-tree-1.0.11.crate 8393 BLAKE2B a8ed762ab18f3cd72ed749cb3db3d756dfd2d3875b0f1c68a99e39ed4ac5c7000086606c21a834ea0a81db961ceab659a4648435d9eaf1bf3d7f29d92410efb6 SHA512 e1b08010f9cab65c75d82cc44cfdf64d92127acf6a72ee0ce1533e5d7d8027ccab912e1c499b7b78508b5e3cb20dc03df94de3dd520ae13736906a5f374b10cd DIST predicates-tree-1.0.12.crate 8392 BLAKE2B 4b124a7b718d2942f5624d410fb8c59c06e90ec5b576fdfe20542dd00da64fe6a5fbacadcde3c3a6f19b8ef99efd862b08be08e08691e858a4b3d7bd72a4cf71 SHA512 f5f6d7d0cba4ca7176a26d9adea5ded46f1a3361f9b6ceaa7dcf468ce616912cf3b764b8250f39a42a24eac71fb94e0d4d822c89361aae02472cf761ba55dfaa DIST prettyplease-0.2.37.crate 72033 BLAKE2B 997c8d855023ba6dcc7aa3a8f1c0ac6f6ca72dab2804cfcfb0987832ae044ffc5f5d7541e66d7ff5b0679065e5217078a832333e6cb92d89a93660aedaf0b447 SHA512 3273621f42cd2f4f892ee81e130f50e7d30f7254f922a84e55e454c0157bd0a59c678ee352e05007fdb0a62cdab2d7693185990354b81d2b1f5d08b51cff77d0 DIST proc-macro2-1.0.101.crate 53886 BLAKE2B db566c4fb6a197e0aa45cc074310853eaa24ceeafe9fb91f2014ba47cf6b1cbc34e4e9391456c946587540c8e270e1a37f5195cf03bd15ea5d4f171bba9772db SHA512 3171c807d24371da2931f9c706fb3129bb9bf3ac40418e5d14cfc372baf96e5fee9ede72091163858e3ba0b4f88594efa1031b0bb7128ca68e7b847dead6856c DIST proc-macro2-1.0.103.crate 60024 BLAKE2B e5ce5f77838fd063b5615b1555db02175621135132de6aa7479d67fd0a34c15e8235290112a728f3251cf913a835bf0aafaf6930880511427143b63152047259 SHA512 9a6964a2ad24dbb1108b7018882ddb48cb6e6f652d1c5eed1cac94602539fc71f011a0a276765778df161edbd6387bf03a8505d93565e0c106f09e98d7d6efce -DIST proc-macro2-1.0.86.crate 48958 BLAKE2B 4b89e07f23af8328dbb34fe2b3f1b202f1e6a3885a6269740a23359b41bb4099ac2484565d3b2b0936261689ca525785ac620c766997234fd8d0f409e80e5ea3 SHA512 1cdb7e22a35ae231d880c9420784c9acf97bda2db258b3d34aae5061dc1858449defe19a49e12c6a4173906aa72a4115059ac2db0fc760205fd2ab8b5b414434 -DIST quick-xml-0.36.1.crate 185352 BLAKE2B 0ad31fb7210bb9c71ee480d400d10c01e02fdc509ccc275305cdabe29aa7d3816ffc7854371e493d3b4b28d43452bf7ef393f7ba4ca556d311cc83f7887ee802 SHA512 21233a50b5ec45db623d4043e03962a19f10cae36fcf3074c32eec3c007a59310ab884352b6c880632535164745fbbf2985d27cd549d50b509f97395a0d48248 DIST quick-xml-0.38.3.crate 204498 BLAKE2B b029d214e594b3fa6161edac5957769c0b711dc866ac8e8caf06339f1d317a2d08097c0495b488cebe258ff0033a568e9ec5b46743dbf40886246dbf5e5e2f19 SHA512 6ea8669671deced89bd14761786e490cdb51693e7344b482480988604fbe323c0c20232fad09d7620b0449ea1c8a1eaf7e716374d2096e919630ba540d45e242 DIST quick-xml-0.38.4.crate 205035 BLAKE2B 242ca800fc568f77d0d2b7f2963fd16142a05150a692a15584b3044c54fb5a2b44eb703dcc04fc9fe99b6efa35560ef6a760a180ac445a26b0f1e944d7ea1773 SHA512 dd2bea3dec3410978f8f15a0f6046047e5735fc75e714f6a19ab646090b347805ed77be51378ce3f9de19744daaf588ab5ea6e6a8b2d1f72198b4c78056b3877 DIST quickcheck-1.0.3.crate 28069 BLAKE2B 5f0ddc8e22fec55e879745a95024abaa03d7bcfc6453286eec072663b36a5d6ae247b3c1622c4743e1ca9b7c4bb21da0d095aa5247f32b0bedc393f92cda6bc0 SHA512 07dd707c9d3fd0b9cedbba545bc8b4fc1ca2770d169e444f8c96f8306d3161a6a3e9189cc5d0d6b3dc4221f7dbc05887dfe2dedc914f88d5e69ab2b94179185a -DIST quickcheck_macros-1.0.0.crate 5275 BLAKE2B 1681fbc5a476c627da442d601d9f24dfeaa147dbad7c8d6989ad73cf5a204963c29b2b5bf68513ba74c322f74ef5ceea92594953e9034921a2c8132150252779 SHA512 f7de86f76a53fc36063f10f5405979677a2e48a96d13c439a4aa98e89ec7f3c3cae324b8dd789a5236630110ac9a1763f28361442cca08d1a1ef458c7bfadd55 DIST quickcheck_macros-1.1.0.crate 11744 BLAKE2B 50ad3dce5da43105a0fabc8ba373d614c718fcb0918a9dddfcf7115f1802c2d8509f8eb11d63937154686281a4e024ff9f5fa71a2209f7e84a9e9a31be3eca94 SHA512 d63c43796b4995b4a416c82365b09e29c50376e00c8c3a25d05da88a0f62b90c17385e98508659e3f210fbab8b103cee4113acaa76b5c2215faf0c47dfbf786f -DIST quote-1.0.36.crate 28507 BLAKE2B b93495163ed205e33543ed45f084870240d479071d643704b6e348fb9ada6e1d8401893c13348b9964f4b6b17ddb96cb5458eec540f0d761655fcb96a4cd9129 SHA512 f1f002a912692f7ffd4912ca980ec57ff4aca3a7d9e2e42e9e3409e2105c9f59d86c05719f6af309bccaef2f8843b0848a6e3afda3356e045d8e7cc5956ae685 DIST quote-1.0.41.crate 31408 BLAKE2B 9d496e0878fc329ac9492ecbd470e762bd807ec8ca4e17a856b4d1c776351434778f519977137a67b8c143ee60b20774c09768d480cff51b22f2cfcb364a20d9 SHA512 64374d70eb29f7d7e02e535ba383586d93f68a9b6464c79840fa6c42a1ac47be7ba14e415a40e158f845e486ed33d5c564c882913780d296360b30a56301ff7e DIST quote-1.0.42.crate 31504 BLAKE2B a8106c0fe3953bcc2aa421516dfbaad6d6cb2ea839b2ce1447a45b8732dad40a921c2008b477bc0fa029dc0e0357a339db543b1f90bb9da77a5a3681fc16bed0 SHA512 6d55047312de6bab660459750c54213e986f0a80b4458fdb706c2fb3bab83b8239cd230dd9291662076d395c818a391142af1228ae3158cfa4960d6c74d531ba DIST r-efi-5.3.0.crate 64532 BLAKE2B 54bc882e333f7ba52b6dd6ac92b8a282581c10b47de91a4c4b71b15a27b2df885ab52ae2fcc8a546367ee1ce98300dcaec3c33cbd7393b134383528540bb7d14 SHA512 e748db9729dbddf215d5c37630fa272197dd2921297800209ca7bfcd6ffd8530b598b944d95547ad9723655cafdfb69b1c1fade9ba5f8c2ac5c55ec38258fdad DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2 DIST rand-0.9.2.crate 99930 BLAKE2B 4440c21211e3c09daf8797de5ae1c7c461ead207456ad0a0405c6da266de51427dbd68090c461f1a349a04064e4bdba8151656e2e9f7c17be1f4aaeec1e26f3a SHA512 91faee823d9a3b109135182b9566e6327881736359c9d68358ad7dc78eac1e845c553820e2450ca481cae1e0969ec6566e72f7f9233251b1f9133449306f2965 -DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075 DIST rand_chacha-0.9.0.crate 18258 BLAKE2B aa0efd158877a116b2587177f2da84832ba8153b629aaf8181ca7622bc8ea624b5a5d205d1b745caafaad78d5a55aa08a4f35822b8925acdf7d1212baf62abeb SHA512 f62a7bb067ff984049c96cddccc841cd9931daeb5b25bb69f056bfe577f62b1b35c08f2bb5028590eefa04a9369beead4e6b03607eec97256e0383b20542af96 DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808c66d73d79efa66c4178dc03db06f12201bf0e7930181c4b0f4030c49b20cce6eb7839763cf2217cad9710789a SHA512 36c67eb845aa2ccca49d6d680f28d418229bbc5a050729e487fe6b9f9f384fdd7b8d67fc6508b90b79ffb3c26688e72feceb3ecae57d3d7f59338aeb62296f79 DIST rand_core-0.9.3.crate 24543 BLAKE2B d611130e240dffaff33f8384f13a008af93254b1530bbbd2369057ca33f295c7037178010efe76e4d7bf18e36003f843409fabec060c8c78077cba00772e66f9 SHA512 6e8e4067dbf5853c55b0ed38293b6bc6bdecbdd31bb9d624609b0222f706f5b29281ffd5fffd5c316367ba5b22c29e5282c61de3738344798ce0f9cf9cf2ce19 -DIST rangemap-1.5.1.crate 57091 BLAKE2B 2fde0bcf53cad7c90bd39f6bc85f9d0913f9d772b93259b563ccff7cf08ff22df6050e7838122c8ce1ffbd87185f2613bcc1d175dcec4439835095133c8bbef7 SHA512 a78cc008bee3468604df91e18e1a03a6d1701c1ed96f4dca5995a97474f3d335bd6208f0ab2e6c616f501d39da86bc30a3f3913ffbf4796be45a7a9ad1b1f160 DIST rangemap-1.6.0.crate 58332 BLAKE2B f167e720b9ec094379ed639eb3454b75cb2688930aa3ea7b1eacaeb4bf7c911f12ab18546bbaa9e29a4645e77fba2bfe9a6de5ec72660c3696a5ad5b74502f0d SHA512 159908404972a709cf4d638a196df84859958cceeb5efeedfd05afe8c309aa2d87a8f0546e193f8bade8ec89ae85b3cc4e8a0063e06c1b057d837e4d0587a1a5 DIST rangemap-1.7.0.crate 57912 BLAKE2B cf6de2ea92f11639369941efcd1fea35c7d3abade01e583475d93108db42e7cb3cbe3e6afb072ac050e069cd69a742313fb472ebd031a7d5f1cad1e1ca399b43 SHA512 629a83f4023b9db7a0ca764e4d79844319862a23b918842136c177a1451a7ccf582f0208dafe8b2e4eb7dd00b41f26cfa18866ee19543aa5f3226032cf5b63bc DIST ratatui-0.29.0.crate 543514 BLAKE2B d5e7de30e0c7f077ea5a4d13ce5417ab5221e0afa7d819c5706b711a843eced0d7bcef9f2d64bee5e74892ac9f6431d8ebf1f6b326e467e08e948ed0b86ded2f SHA512 0825af0b840e83e6a4aef9e631ae8840e8f7fe4ecc80dfe24b093488a95e1710d11c9a99f92690b0028f106b3d2351949a2b64016369a1fdf822eb4a2381eeb6 -DIST redox_syscall-0.2.16.crate 24012 BLAKE2B 9497a52044458b1435ea16e86ee072e379b6b11ee31602ea72d6b6072a4a99426f409c2e58108a4e9c36dc193fa49c83951e71f4fd4e158eafff18c594dc01ad SHA512 63b5d876baaf99f5cf737679bc6ac7a9e3d8a41aa93f5c59416ce7e3841e2513bff678773553cfe62fb452707f82acc384ea63aec932a31bf94679cd1caddd27 DIST redox_syscall-0.5.18.crate 30747 BLAKE2B b9507a055aa34178982f0b5861602d2e11e13c2604f905c9b747c39aa6c45f06e60cf5c9d17d914712a815fc5e9ad75bf648c300e7265fd4afbac0b0c207afa6 SHA512 69f1cfb215666f1243616366711dbd8cadd6bb411121f48f6e4ffd7b25479efa6f900dd072d7cc6e6fb8130d95cdb42f4c0cb4ba9e05b09b1fa676ca32932101 DIST redox_termios-0.1.3.crate 3240 BLAKE2B 3aa7360c9e982faf433b527605fab4cc01f74eac5f1f4698b5c7f43e5a7645fcddb39bd639c8f6935fb82db5a065630ee788fd8b111cca80be15db1a08d0b3fe SHA512 a221afea8eb1c7efe848e270a6ad5b65a97af945b4f64d3aa5346f5a61a9daaac1993446ddd78c1923b798e1659518856d7260d9d30651d91897850b0a1950d8 -DIST regex-1.10.6.crate 253894 BLAKE2B 176cf6a1e86aa8a5004af5ab0d6cd4178135bdae3caeb6a8276b8739858c65e9ebcf23749398a5a91adcfee9cca3667b306c4adb6307acfe61dadba8c6f3eee4 SHA512 ec28961d226c944321d9953c42e43cf2d23b8ca0d72d6412e7b0f572c407aceb079bb82502d124af94d71d67c9e5e0c9f66ab9f31edf6023ff045ec37b770964 DIST regex-1.12.2.crate 163843 BLAKE2B 4e36124886e35c2e06ecf3310c32f45bb80fff978a99509abd7d7eb6378f81123819470c227d5c234fd6e3bc7a8e7baa331ee0ed3137f9256c76cb32413ecb7f SHA512 c459657944679350369462c3c7686dcdf412597f75bc13c450a131bfceebfe2cd1e1d7f95f0f55b4aa16bfc1acb5c777f344fcfd6a5927aa76b8a2d7aa954d3c DIST regex-automata-0.4.13.crate 625250 BLAKE2B e8682eff5df93737430a783cd913265dd45a9692fc4623a956557cd7d6553f34eff731f6f3ec5fed5c0dc6b7f8f31236203ad9f459a998fede053d990d9faea6 SHA512 f76939dc573a88d17b4cf37fedfcdf95202171ca8607374a5c2bcdc515abd1ef9231376175c6cf11cc567eddda34e0c5f90ed1c592f2c5efbd1dee883954a932 -DIST regex-automata-0.4.7.crate 617582 BLAKE2B 6295d866706b623b2025fdc0c407086fec15053229d708713d0ec165bd526ba25e7468d0009625cbbbc21d20345f0af2eea10addf6de633e8e6a02dddced67b8 SHA512 b19d00d64bb8cd833cfb35fabb162b9481716f4b7f6035c1c8f1de4e0f90e00823d006e057aa3505aeda48c9e1802e61173c4a2878891129a3a918727e43b0d3 -DIST regex-syntax-0.8.4.crate 347577 BLAKE2B 400323cdad2a7daa8d4006e4dd7a7b1234704df0f80ca0f4bb19447f8f1d270053bc8aa613e48291ab3a78c7eb02d7afec57bfc8d966a48b372a4c80de9b120c SHA512 10719c138d9aa304106fcbf77da0b01645d1b6fbc621abb639dbd43ed5fc3dbd22aaad8b86df55a60e7b2b4fc347b6f41419131d7b047273e146073250d892ed DIST regex-syntax-0.8.8.crate 359141 BLAKE2B db4a6a76dfd7d2619fffb7fddd8a82411afad16bc8b1a8501628e872c9b3e0a4fe71947a135900442590b944a623c5e9253e36bab865703bd5b5150aa2a65e51 SHA512 337ca84af81f2c5cd7d213e3ad96a1facba2917f135c4c1ef03571160d24e4ae47186ad07e421a7a4ff0baadbe95d34365e69400f3c36ef39ebeb3e7c14224e4 -DIST retry-2.0.0.crate 6688 BLAKE2B c3b2b9c67c13f927dfe533b85cdacf01d9a1d85eefe13bb964606d9f0892817a48ccfbc814de25b7d1fe120b5a7b4ced8438d2e323186053c6213d33bc36d1dc SHA512 e3e0f0e4a1c0b728edcb503f42a7bf828544f74152c4ac74f1acfe26aa5ade60fa901e4d7b38989651708cd23f28d837a2846c9e4d27d0ec0cb2772c8810d8cd DIST retry-2.1.0.crate 6859 BLAKE2B a6f3bc404bd87320c96e852b277bfe645e47336c8b34310aa06100b421bd4035e9364dfb51218cd2900f2c1a6cfc65a3f65a80de7eb6b2283fda9c4cf6bbf809 SHA512 995a52c965a88c7cddecb7cae61a19aaf250466d456933d177a940744fde59a75325890bf22da9b6408e437e29c138187ee5977c6f0c9d407241e3546ac26c22 -DIST rio-2979a720f671e836302c01546f9cc9f7988610c8.gh.tar.gz 27249 BLAKE2B 5a2206986662979875c6f8ed5c9cd19465bd22bef1ba55bc92d67bc539271a3af29993333951377953de2f4f8c8f5343c2def3350f1e94ead572a7b9b09159e8 SHA512 40d5b942737e099735bcacdaedb101e44c39dc1f8e1488550d3a039562b5b2bd78edaff42b0ba9731f038f0555a0480152ad1c33bf31693892ba5733a39bd946 -DIST roaring-0.10.6.crate 93933 BLAKE2B 0dea5947fd525d910a1617607ff2b2917b851859eb6a8b448da3b786bc975fdffcf76e6d59ca04fe84438897f84b0272a6dc09351d76a6458acaed212d4d93e5 SHA512 0e62b9ca7243fb9bb02fd59e728cc8a45c151c94209486dc04113c3306011b8395f0c59141814dd97805b8cf6063ebb322a9f03e53b6fd43249199b2d014774e DIST roaring-0.11.2.crate 127098 BLAKE2B dd650c47b77b9256aa43dda996a2bd8813ccda0190448a7c7e6c79c37fdd030c1e4220bc941a135ec69f29fe988b7d12e3c481cf794c7b872038b67a6d1846e6 SHA512 cc2472ab967885902a52b07e59a28bcb0c81e81930f20c83745dfba5052685d9a810877634ae622e5be4efbe223adb8ecad5a49aadbf128109d6a8b1af3efb26 -DIST rustc-hash-1.1.0.crate 9331 BLAKE2B 16ac56622897f47a06b661fb59a196b08d48e782ab87549c8bd5c6fe92f374c9bfd44dcb36588512bd9b6125c2fd79a12d648aaa308fd9694bcca3a7c1b49ac9 SHA512 84e673ea9b046f7b989d47f2c4505557fbd5de991e6fc9f56a03605d40e0b4ba5427cd566954890153cc033ccbec6c984306634571935bfe0d4cdfbe56f39544 DIST rustc-hash-2.1.1.crate 14154 BLAKE2B 7a1b3b82bbbf6a123512815c3e8f068a17890cbbb8b68e88a5a492f62469942fadd776207eebd913052a1c06e1fd37a549e86526b9fc8f08b9ca7cb0044ac16b SHA512 87097d98d47f327d000041ab13acddc366f1500d9c3e5c82169c3358112c7a7c03701c9b3c2c81d9f9da65b7ebac1c479b179dfaf7c059cd0b929b4673e51084 -DIST rustc_version-0.4.0.crate 12175 BLAKE2B 6fda2ce03eab45d7193fa0d70175cc7ffb56b7be85fb1314092bdcfd3948ea145420569ace3a47218a4a2a6e44a818862cea6dd8cfb945475496f63b591c29da SHA512 f66da7c6efe431db06cd01180d84ba67fcd38f8cd6ef693762957c00ccc2211f23c08079d7f184776e08f28d2d6ca3bdb5f5016f7de245c6193d4722891ba1db DIST rustc_version-0.4.1.crate 12245 BLAKE2B 0ed627c560d88e5ade830cc5f72c62f6ba88be3e30d0f8db34761fcd0b284e5b2fc063c240149aabdfb12c8410ecdbe50cb10a3544500b5a020f95a31cd6709c SHA512 7aa8a487ca7411b6d23cae62f7568fa3474a7b1fd1589621071be3428a550ed3b7c4ad68277a8f86849e5900397d7d0e9d678f5d423742a045dc7c660fa6c598 -DIST rustix-0.38.34.crate 365160 BLAKE2B 02513c2513ac45897b659f0d332a0dc32401d238b8fb64ad4a90ecc4d8952fb042c0bde4bf13d52630cef34e73e96dd32cf772a8601b4f6eb5e2961f0a394add SHA512 717cf26e2ec792b41819ff964888adb265a215d2b6c6e2b7a8ca1f7f793b713b853bba9cf03c2cc88b0f9a5eb1a0478faedbc05526f39bd81583e7b1f764756f DIST rustix-1.1.2.crate 422717 BLAKE2B 603a41f610c6a2be2ee170f6d35ce1683a50590d909ba5444c1777b9c00b584f4544868f4c4d3b2397ca8b77da2d8a40154ccc6f0f2f6affd2353aebfd6b4515 SHA512 4a5ebae0902c7ce683acf5c2a0ee62a4903ccdd7f147ab5b1a657ae6d4b468beca31a15c473f02bb2f9e81c2b07924c23b31ff860482a711808a774dfb5af5bf DIST rustversion-1.0.22.crate 21096 BLAKE2B cdf773cda21ebde50da897c0af0e4af14660ce953d3037054a99d8adc3db2dc6e30a57201a45676abfb183c62016a68069848e7537f711b1752339d194b0a378 SHA512 7929352df3e5279ac88cebb26ca89bb13c755f46986d2d1f514d18a3239a63638bf64f8ff153920569d173185d988d692ee676335afba0bf72d47f71babe0e15 DIST ryu-1.0.20.crate 48738 BLAKE2B b126085448cb58639a7b5867fe313dcaabaf19df478f67fcb6cf15b8e881a21e641878345e0bf1fea7d24b56b921e667fd26a39cb81fca7ea02585332068263f SHA512 329c581429d9b8baa7d9edd9cf20e23fb8002f339d9fb3d50ed4c7eb68fb19c1ba966d52a9c9602265ca5f59f2bd4393ddcb3a7ac20c64aee3096e137eb2a384 -DIST safemem-0.3.3.crate 7778 BLAKE2B 6ebc0e234054919687e8a369bc30ca6b007d0e4f8147157ba1a90c290b7f0b490e5c21a6d4406671e26ac073f9e4e06a2bc9b1f21eb152b05c4022a3a4ef3793 SHA512 2e4852ca91160f9f1e764b75145d794726a5f6c162cc99ecbf9cae20474a06cb3a0dfc245b895c51342240f6875423010b33e36d038b8b419a37e4820a9caf72 -DIST semver-1.0.23.crate 30622 BLAKE2B af5f7401daa2004ac1fc419ff907a65feb9b11743ad0feca0929bf2409eb81e03637ec5f92ba9f38ea386c4ee5cde72bd3d2042083e2fb0d6fa0b839b1c5093a SHA512 5ea1fa17c08d1280c3a4bc8d28494e88ee05acd5dc969ef6f0c6f91fd3b5a8fbe999c9e8bbd2da383413038b8d29fabf02b87bd5265bbb8333f3fcbe409103ec DIST semver-1.0.27.crate 30081 BLAKE2B 760cd2994baba2ab8d63656b39f281304b309152cb3c576a0cf31ebf57294bdb6a10ad73e61f974688b0dd80490e0f4da004f3396cb6988bc90af8eee0961ed9 SHA512 8492a2ce5adf32cf6183d03509766f169b323a9376b061c9659a8752f69de5f45f7c64f474fa907fd9261fe3e9a7691a39c8a603d0c2e8d9484f5946bc27d78c -DIST serde-1.0.204.crate 78253 BLAKE2B 6fdebf3cbcc0327b404caaae43c87ba2b6105374a5ee3eaa34d44866e782132cff535da4c069c007783b7b6468d55cb1ceb6a41da74b9eab03ace7cf4811e09e SHA512 2fefbeed0117bd791fd25dd5ad0c99ed4f60aac5919605b6f642050f748dd472bf9d4d121b78b0cfe8719db30a675559d097bcc7542cb57451d1779dfd8d294f DIST serde-1.0.228.crate 83652 BLAKE2B d1909d671ea6d5c2eb4ce34ee4493ecaf665d416111b4cac754b5d33b85f916296110bae7aa961efd987a2ceb4a31ba645752ce99dd28dedb9f1eecdd4d7b1b2 SHA512 9b645d6214203533b303fc5e88ad4f7686c22df084878d18a0209a92304a340fcb62fdde88a7080cf7a7348d47b9b363885c4e1da90dba08cc99ff620f375e97 DIST serde_core-1.0.228.crate 63111 BLAKE2B 8a64e4627ad21a3d16dd37d53fb809d11171bf337ec16bb1223075cbf81b6b85cd1c8d19abadf42460d0fbea323e2f351eeb6ef823389d519121b74e68edb215 SHA512 43897e3a7ebdc85d81d1cb30cda8f0a11610f6f551529c8a21462c24fb83110652b462846aa3e1bed5fbf8b5d7927018845a524ee9e079e2c8acf2c687efd6c4 -DIST serde_derive-1.0.204.crate 55871 BLAKE2B 8f0cdb244a820712d557a3273e505c4461f4d7db89e8394040b4c66ede787b6b38b4c9923b38959ab4042c9076b8af72008c0dd15ac93a0ecdeb99da8fb526ae SHA512 bbb2b5e60e2af5bc7528b937ffaf0d3ffd433dbd9cb2592c1e07090620309057e4f11cbd6112fc1d2c5557e1bb3c0f4d59eb06ff06fa021ec683ab880997140e DIST serde_derive-1.0.228.crate 59605 BLAKE2B 166ee2f9ff9f7a0928d0a65a72db3d9226c377bca2a1771956e8ecd9c7faf0544673c9c21be2a5553e621b55c74c7b958052592a1cf6eb6427a2d4f3e3dc6bb8 SHA512 8bfdfeee10ee7ef0670972aa963ef63b13e8eb2c8a09b9e0b717f92551aa89b3dd2a0dcbae6ccf20a1caece07e6adb18f0db56fdac020e4e0281b0d24e376003 -DIST shared_child-1.0.1.crate 8967 BLAKE2B ff47cb9e567415976817eaa8ad7a229570036ff09214083746861eef76df7c897fee06e9ca1bec0b16e07cd6f9d7e0e6253a550e66be8dce65604f3681433158 SHA512 3596285e36724fefcbfcd8c877fd66e2179dbc47ad7ddf601ed793ed74df871eaccf15184f8355f3e355aa64583d6757872d9777864347d36922cc40b731c82a DIST shared_child-1.1.1.crate 14191 BLAKE2B 905b72fce40712746c11119409f641697adb784859b3c13c6a342bc94db05a9c91a9c9df72cfa251de7fa4a254033d59c35459089a397b7e2a43fe33b7e21b7c SHA512 718c6ed1138f3cf2769815d504a2ed4a792defee66d3abaa65b46924e0151603bcfc81360ce451b1b8f1b3fe8f48144e046fb17e7c35ec3821c819b59c4ff384 DIST shared_thread-0.2.0.crate 6364 BLAKE2B 63e6804882db3afb83cc99a096d0ec89d423f3f9efdbc950da1cbde941b8391a05f3ed086592e18e6e32e03ae13952f9249b0c37478e791965c232c95cfb13c9 SHA512 e69dd85b70c7570fd05e38ee29d0f86b357e073c4b84a100d8c5e71b7c343cdf44c74c21b6fe1392703fc4745737be2a27959cc70fb6938a8ef36179b6b76a10 DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a @@ -243,40 +159,25 @@ DIST static_assertions-1.1.0.crate 18480 BLAKE2B 358dd5ac413d06f62da0388e2016c5f DIST strsim-0.11.1.crate 14266 BLAKE2B 252a9ede4241b165525486aa8855dece37af77f5b28e0e1858c4a5d2047db9fa958328db10989234aad69463ab51b2303785ec056c63ea8c95bf95e111ddabf2 SHA512 0cebe0155a92640e56db9a599ae62078cbb32e1d2da8bfa67ed0e8f410a7558dfcf7b3c2720ff5913282e291ecf076aed9fe9bf84c8d44e814a642b1bed3335c DIST strum-0.26.3.crate 7237 BLAKE2B bdc348c718c39609c00b9fa7d47b7090b1467022b7a8a28cc7c8a72a0aef20569c6ab22a8a8d26c2d9272f18d000e4ce94858a6647194f0a7b86d812d52b05a9 SHA512 62f116d5bbc6167a6ac68b049f8045bc660901f1ce1252f8bdcd91cb28bef821aad8098905369db6c2fe74c134a5d549e55ddd28e383d7d78f7175258924b268 DIST strum_macros-0.26.4.crate 27531 BLAKE2B 7f7d57c957a1591054288fcae6590a5e669fba1b47d8f1a52371ce60fd84f91fdb430e48cc7edbb5fc72914be5ce12af29758b653680da3f4177339b31206750 SHA512 77a17ce47d5e8fe8a89cb6aa6c3ca5d5c2625aea0f93456f05a9994238cd3b08b3f7c6a45e9b3db21bca8fb5759f505f15cc111ac84acbbb34d59cdae8307b0b -DIST syn-1.0.109.crate 237611 BLAKE2B e827445d00c79a8eeb91eacde472f1987addd6ce9e1df95d7abf6446a77ff4173a8006845f3ae71c1da47193cfb72e0ead9a6d6bad2573be12c17e90735d9ad9 SHA512 12816b9e8cf984024b2fbce9f0ae14cf94d4d2c06f08cc54fb793ce78770bb4cc1288eb7df0ba5e8e937756e1e8e295c53fe07a0c5dde1ea8ddba03b6203b37d DIST syn-2.0.107.crate 301716 BLAKE2B 76ae71e40724b7ab0912df8c5d9ff571a21b6da1ed8f849395ca8565535c245894bbb1927952fa2c81891ce08d5e19336138f80c6374ca4a46c8bc8ed1ff53c7 SHA512 6c65589ad86a01307defcbfcb62d95b342135ad22636b899195784e56d476fe5eb5c7f2b54f827166e573f0a4af0ca834f4a107700417fd68edce7e423467f4a DIST syn-2.0.110.crate 302184 BLAKE2B 68135017080bbdcee324fc4c98a719d70f9abe3f0a0913b82ad5dd96c8969712bb50d1bb387ed5e60b9fb64e69d6a1e0070361b4c41bc7c0804a4b674099222f SHA512 f9a393a3edcb49d039926bafa46f8befcb840da2af80329eb8b0efa1a2911e5db3e531d1866341f78cb4c28b7a122a07e269263262ff372c27334c7988f536e1 -DIST syn-2.0.72.crate 267069 BLAKE2B b0b979f78937a10a6db45f96d5d93c595427a4e158d658a2186419d89b219a4a405ade488d88d9ebdbd605ce4b706aba7088ab39a77294f3cf9847bf032d8f91 SHA512 c3d26bf9787555bc6fd8bd789855d252e80ad28a413593e13bad174adf86087ff195a6b4227bdeb6d1a1c87b0af8e965d6f2d04b8d45e7383b6de49990b92e89 -DIST tempfile-3.11.0.crate 34153 BLAKE2B 3a89580e05600ff2ef5637d2ed76ad8f1a769f6dae40cbd23f7bc2cb9d0807d03713ce1571df54c866c8fd9a4fb073990e4e98cc8ffee33aa4d8343c2d39733c SHA512 47d4c48c4f90d116a2f7d5ebf29ea623fb0a0fbfb1192aaaa53a83218ac910b6c836d6d4d8233b07d06e14de70fbf30d243152b7ac22a03d180905c53b6ad9e6 DIST tempfile-3.23.0.crate 43063 BLAKE2B f799368de517d83a5e42505438565c9d16217300d5c5f552e2789de4edcd493474d1d9a9e9cfdb88a776f26f403a89e0f436308b2ae7535d9b377b7c652f7cae SHA512 8e9f84400f714209eb713af5960d1de501c10520817299f0ba2fd53a7c5f0931b60d1053c2c84820aa627aa94bdefa1b0e82c787784b1960170930f0ed2d8753 -DIST termion-1.5.6.crate 22677 BLAKE2B b918dc82bfa370bb9662bace34211bc7afa03a042dbd25f4456a7e3859521d4f32ab755780e58070f29eb7903f3b4f8129eb9447cda953b9190f9df3b7eb3aea SHA512 228b6fa7e2f280d6bfc7cef77e7a1d0d8f597178e66af0bde1b1fb6553857b511ba8a6786165815aac6d8a082fd37191f4ea35a47f1e1182f7f2c6086eb34a8c DIST termion-4.0.5.crate 24766 BLAKE2B 0622af95cdeb86ba569eac27e2837c810e5978da5bed214a873b4fedaf25a033d53bd8e9b901d0a8c60763bfef28646987275c8d00d56ae03cce0ff8fd3604e8 SHA512 2577813b9b1ca4f4b669f4d79d46f44bfd53152056b78e26ce4c972dae09a7550264412be2d5932f262a7c178ce4be7e54adaf2c4853816883818f0805f77ade -DIST termtree-0.4.1.crate 4557 BLAKE2B d4300b0e6e908c519a0a76f5e08167f4467f428b2926e7739614cef5d3e294dfac15ae8576f7011a852745713c16da93346660ff96520a2bb90a4dd4c23d889c SHA512 ddbe0d3ddd79b182732359f47958ca32aa351d10b1e7d5f6456700b851aa2b5314ce005e1fd120a248b676f219fbd68039cefc071d92c5b5477d053bb6e29062 DIST termtree-0.5.1.crate 8498 BLAKE2B ebe1face80741908e28d3fbf828bd0a7a70bb317f4532fe38ac9b6adae898a7032f751718a39300ecca8c7bf0ea6cca028c02c93c7ce7a645d67656318e90172 SHA512 43d92132cef6d352c6c0190ce4a688d7cffb61ee86dbc6b49ba1f4c404661f9b329331198063d913ae52b2d4c69e6a2d9f5cd62886894c468093abd8604f0125 -DIST thin-provisioning-tools-1.1.0.tar.gz 418825 BLAKE2B 8bd959bb1d5c70feca306ec41450c34c4da830ca7e68d3d3c632971323e492f9e4fbc63e718c05c50caeb64bfe91fe59306275179852f82bfb397fefb87d0709 SHA512 8cf3953743334b5a34504695757fa2de5a5fb5bdb8c7aed859995154fc004f52c3ef041558d307a2309c2de8dcdcbd8a0537bd3408fd78c7ff2f641f28944c1e DIST thin-provisioning-tools-1.3.0.tar.gz 471090 BLAKE2B 5a36385249459d87d3d1e0d2de87392f668a9f82cd8d73f370137f1785ef0ca9fa8fca1094fa0f25ab97f92c723553fb54ff71ac846783503b19ce543f4bef3d SHA512 84e364df240a43fea44edfe14cf428d79d1301891b2482599229e125768912127922377139c2117db50a5370fb08c0f52d589d11b6a90673af2d242ff4ef7920 DIST thin-provisioning-tools-1.3.1.tar.gz 482509 BLAKE2B c55a4067389fa281f172ead6ded56d7902cf1968f3753a4499753ef8c5298f84ece01f0c2dbc1cdea07780364ac20c7a6e0a67de3fdba6760539c892832a44db SHA512 ff0758b21b50702568cad88522ee4c2b6b4433cec0a5f5074c9d1791c13e630e5c516601d7a68c51ac34e036091fc82fe831dbe51e6776737571d90ed266878e -DIST thiserror-1.0.63.crate 21537 BLAKE2B eacab5745d948416bde165d768f55c10c132572052db405ae3dd3e6e3b5ce41f36d574192ae68fecf6002ae5b14fd0aa135fe15e1614f3b51a294d5edc67c9ac SHA512 d5c2360075947cc0fff3253b5532f03f3102d6c9ef52dfeb3b400771116937e466a62ce67ccdf91532bf096f4882322522349a727588fd87b932326c8e758753 DIST thiserror-2.0.17.crate 28857 BLAKE2B ea60d7597439a703f50faf77dfc1cba7cf4ee5c9f7a28b9c553099fddf0534be55e484f4d0761639c845596ee4b4f2b273169cad6c1d36e1a06c775ea79554d9 SHA512 1a20ecdee9e0cef6f4af845255bf7664c77f55a8e6d878ef9c398c42d6c6f6e3deaaf606d7739df3a157f55c5be8bd0ae1af9e9bd7a66cd218e9a6268f7fab91 -DIST thiserror-impl-1.0.63.crate 16047 BLAKE2B 290b56ece5c592fdab4d20e9ebcc8dfe3f76b00aa48ed6c216ed0ebcab86b1ab4b4d676d0f52329abaccefae12bd47b4a81966901fdcf4ca5d0632d5021adbb8 SHA512 f93b7f89784d72d8b6e36050c22b88b7fd8de38e9a90fa6fe3f45973ea1566ce8bf82e959951377e3bf584a32afc97812188be25983a028be138b1700bb8c102 DIST thiserror-impl-2.0.17.crate 21344 BLAKE2B cc54f1423307f64857c67eebc2ae0537ffe9ad65a0443ba31c35ce20a7e4de96ad29a18237be48fad998e509cc4262e1483d4a983efc606b6714ed11bab9cd1e SHA512 3e1185fafd0c77acf6f79ead5633ff756c55e88f83285e10e2dfb9e58155b3c1c1b637a0bb7cd5d36a07cc9b014401942aa5b0709b6387e44d37c2b407e012ec -DIST threadpool-1.8.1.crate 14408 BLAKE2B 8bd64ede19184e18460f6b2ad5bc888d6facd5fcaa5b43c35269e35909c9c68a884203f5c4b92619c097ad48c19ec29f73085755ee348cc637233ff3b5b50ccc SHA512 adaa5aecdeec25848af15b160e5b39833978454d834974211bd586d81837f2ce89e5590f08b7e0d4868346cf57056913a5d41bc8bf92b89109ed769cce4a8be0 -DIST tui-0.19.0.crate 141279 BLAKE2B 55eb71dc524f45c3154f8af4024ccce33816d0c30aa28b3708a4991602892e5980df7f59b47d6c2cfe39fc90d07d7a0409693c37564b5d0d2f2f3a48e9e17c91 SHA512 b90497d06181ca74ad0a976ed57bfd6e6495e6fc96651ee96fe9e326ebf773b6627d87cae07aec26d17800a4274624ad3e835a86c37258c51077c86e667078a8 -DIST udev-0.7.0.crate 17980 BLAKE2B ef62bfc3bebdea9fbc30d8c0de6989b0310da2b7efa65345e991b5ac85d39578a5cc9bf97558786f09806c790eae4a99ca7be29d35b8793a92c71bed07a9b91a SHA512 87aa3182c028911b23c6820408879f901dd674ff6fe95c8382ecdec3d4da9f3e19dc03b2435c72e7cf299af083d5de9a6b83a84a75de4c2483c97ea9c1950393 DIST udev-0.9.3.crate 21737 BLAKE2B 395c0e57f33be007dbf9d4c77f6d1e2619ab779ed45e6bc3dbd14c77454c0df3d27b6ec85776cbc39214d4b76750472292ca5895b360aa2b4bfda3f0d65ccc57 SHA512 527c075460cc1badcd290255451da1f39aa5fa46ea659c4009847d1af46d21957c099cb1f7de39083e9d7d611cc91f5703bcec0e39b037d70bff7ef0e548c99a -DIST unicode-ident-1.0.12.crate 42168 BLAKE2B 4cede03c08758ccd6bf53a0d0057d7542dfdd0c93d342e89f3b90460be85518a9fd24958d8b1da2b5a09b5ddbee8a4263982194158e171c2bba3e394d88d6dac SHA512 bc1824e1e4452a40732fc69874d7e1a66f7803717a314790dcf48867eba34bc9441331ef031e386912e52c385645c25b6ed39d4f149973b5b97371b1b96b1920 DIST unicode-ident-1.0.20.crate 47416 BLAKE2B 98ae8010ba78315f3ad79707a24f437d86692a14bf857a495f1fec7a0007dc51577c787c9858c9ae379a3c80bc4b471da718087ec9c2fa613b4da66e0f337ffe SHA512 dee59f539c1a92c6847644dd609b65ebe08cfc2ad1054b6bb6c835b5a63c90d9fff09889c4a5cffaf11119898bc1235d8af421b6b1668ae0a153f221684c4c4c DIST unicode-ident-1.0.22.crate 47919 BLAKE2B 766f52249631092af952df717e09e1eb0d2a8e87c45e65113f0b2b88b42e8b406a87241fadd368ceb9e13339362b48cdbbc6f699f95f448ab45dbbd861615d62 SHA512 81666679aaa2eebfe1429827fa2a88ee0b52bd69723067132c24252070133b3731287bcd880ba16d16274f038c7b27bcf637e9150b6cd955fb4ff49642078125 -DIST unicode-segmentation-1.11.0.crate 102740 BLAKE2B 6ab5de53073ff56da4924e8c6ecbfa4bbd72a66b8d86f2c32b2f0ccfefee8064997a6b5311af5de2b71943089c9f52862e3cb13cf366cd645f57c96f2ac8673a SHA512 4914543cf022680f341c4a235f6d9204b3ac9a9098f34a80ee8c94e3d8ccbb82e78af016978eda910987533044593ac629a35286dc80707d349b33e405e86bef DIST unicode-segmentation-1.12.0.crate 106323 BLAKE2B 268b60aff6694434f05afb7e2b8187eeccdceb77460f8ce2ac0f84d470f8a4e03182ce3f7906177cd2f00f989273a7e69061a763006245f0876bf21b15076804 SHA512 55eebfe5e9972b39d7c0011d80eb5f517d636de37870999119a3d8f064f21f67b66a5ba9761d562738b05f220e21d56b5be7bbd9cc51662994e40dd67c38f946 DIST unicode-truncate-1.1.0.crate 12529 BLAKE2B 908c794c44d4928bcb73e3cb7f89a5f57ec39bb0a2931db282849d547fee1e228f0ae01d50421b86a5d08c4860c4960d96909f1444e00179ee7309e25e1a7fd6 SHA512 090050af06ec187902102b07b2caa4f5c4d1a046d013aa1fabef9d18fd3679a6dc4dde6b55b9f606dfb057349fb5c10e2c229d3577116c9fcff07f1099fdf4f2 -DIST unicode-width-0.1.13.crate 457228 BLAKE2B 757c4da5fa090369a26130b08440c2348f1cd1c0dfbb6770dd75b65eba797eaa65f5d683f0c2862cced06124d46a89b4825af0d990f6adc2df8709b8ef291665 SHA512 9781d6dab2c6343e8c28ec66b50cb4293261bb2114e122fa80ad2facdb23020f5b621c38030193b918669e58adf143808e5ab4c507c18beb6dc61e97b2e296f4 DIST unicode-width-0.1.14.crate 271615 BLAKE2B dd2e1504caedecb5d37c397ba05446d3d762b8b6833a8032ebbc213e324d53d89db5e96ed2f7223096e5754d800b39a54105906effc88d9437d7acb9e7beb81e SHA512 3c58a18776aa82cc13c761789a47901616cd98a30356f93d7eb05ae457314209d0a66213e2bbfa5eb8b59be6beacf62438234ce8daafa31b128dbf7d5d6fcadb DIST unicode-width-0.2.0.crate 271509 BLAKE2B 53015f24c57ba65d7ffc6e15e947f5ab96fa272996fe5a4d2f9203051972238ea7591c99f1d8ae5d2610c7b83c215b6912eff7aaae034237aec8d79620bfb843 SHA512 38149ad512a44fc79b2c991c6b5667da2e8f8b442ab6bb7e4f404e7fbb034f7540c7e0e8b9e72a1ff6117b899d6034862239f43b6423fa89d55dcf489caff37d DIST unit-prefix-0.5.1.crate 7627 BLAKE2B 73c1cfe0c8736556700ae374de1004832d3c5e87370d0e0295a60ee78c8dc7a1b4153c1649207734a716820d55e9f3fc5932da87fbd8abd9ff5b8e0d3477eafe SHA512 ceffc0a250d17eb08edd4ad07411834dfcef275c1f5bfa4085f16852133a8b3467be3e8e696336da4a9901b235da66f04ecd9616395b6dd0d9ea88b66000a5a0 DIST unit-prefix-0.5.2.crate 8041 BLAKE2B b4758a3191a670db8c133ea1cb2b5348df68e4d7f50f08397b3964cf3dbcfad9abf10f9a07da05a5af54cbd976f5f17e177538670579a48076d460263b49f54b SHA512 d4b80b081e5dbcad2cec9b40889fac228539563a29eb0c904d90dc67a4f300ce4006bff55701cb3fe9801a1352b1467afeafc25e8398074bc34cb890fbfc2c52 DIST utf8parse-0.2.2.crate 13499 BLAKE2B 095b5d219ab8ff04c06fd6303e03d913ae36a57845f0b2ca3217a40e31a54cb0fb5ecedbde165d28f5f60f1553d8252986d7098fa83befc84a7cb20bf3b76144 SHA512 f3dbf78fe924f1dc3cf9498b6e43fb10174699463f31091a7a8136d8f31ec84fc00e80e3d8551b7e86257e8b3573cfddb56fc0de797fdb2cde0e962a8f239266 -DIST wasi-0.11.0+wasi-snapshot-preview1.crate 28131 BLAKE2B fe501889f25d65e2d032f885cc50c4f8bf7dd70fd5cbc438de349838370d8699e9627b0a4fc76030ea9fe6d508f41d0c9928a875fdbc47e73bfb17241cf7b155 SHA512 043500ab28cd9cb779475255da5d109ebab7fccca72b64873dc28d77bc5a157ba8d96b9e8f05223b5b36c7089bb7b4ba87657fc69bac16b78972f897294a865f DIST wasi-0.11.1+wasi-snapshot-preview1.crate 28477 BLAKE2B bcc773ba28cbe8d820e9e9fbb275fb4451bc7f39b3bd88bcd93850bf2bdb5300489bd8eca27489ccc5f6269b00f4e1b505ae3a33a35d708cd5a414ad307be149 SHA512 29e3c903763db2580a15f50db487c5e1d4e90763e48d90a5b3f681e468a24f9df1a01773bd1ffa0e3cd293dd8cb4d6fbabfaa63c0e13889c811a56f4554ada49 DIST wasip2-1.0.1+wasi-0.2.4.crate 132087 BLAKE2B 9ae5188981d55ab0cfc52668cd822bedde6b03104990bcd070f459a39ef75699a792bfbd33766cdfae852147c2f3ea236aa1d1b792e85c56be21b74aee2232af SHA512 56b88f97224b6b9763f4d2572e986609fc86a98f597930b5cbc8095d4184a0279286c8c79f6ace19bb08ba08854a408a61004bdc6b2f3b72d4f3fcb5e43edceb DIST wasm-bindgen-0.2.104.crate 47345 BLAKE2B 36867eb3a9f872da20a511e3724f13a1c7b6fbff71c0a7d13d1b6380ebfcb4eb2eda9a8d30cc5306497c199d50343ea37445f71b9d9148e71e6cfd123dbd27f4 SHA512 1e6a3aa20c236becd7cd06748b08f3b6eeb59c3fa7b52a15ba0e5e2164ee04ca635c0af7fe3d12f12dda43af739d0df4bae586dac76e63d72176bcf1782986d3 @@ -289,43 +190,27 @@ DIST wasm-bindgen-macro-support-0.2.105.crate 49633 BLAKE2B 36c59a0fffe14cb6b5cc DIST wasm-bindgen-shared-0.2.104.crate 9057 BLAKE2B 970e017fb34c816e7827a175f5a252cf377fcc19fb15be93eafb830523b47df1eb0d9ec03565ec5086914f740818f7deb9a14edb7e7972c6fcb3319394598363 SHA512 ad994073722bd9c4ea955a77032fc5f3c9236446e1e7dad80b8a396be1deb7f1d1c4ba700fd2438c9d0a40c212c171e222dcb8a95235f3f48e42cfb76d721554 DIST wasm-bindgen-shared-0.2.105.crate 9269 BLAKE2B c67cbf7f2eda35a29c0c60313e9887bc4e44ce0233cd9387f30fce55bfe173551b06f3b0e0d1834dd7c2a0e6383ce0b28390cf05e9ff692245fe4e38751e0b17 SHA512 a3604dd72ed83a627a1b708f1b268693c93a56cf1851823398e43da066f87a25535222cfdf987153d12f948cd7e316e5c2382d12273c63317025ad774411c079 DIST web-time-1.1.0.crate 18026 BLAKE2B cd72e384aca90c79e587448160587531c417f31a32e9ded23e6b78d492d0e517520170fd03177f28870c313b9302b28c32069a2408acccc076a1e4939a2c8f8d SHA512 73e4ef9851de089fde9381a595cb9e37a434f563f1fd350e345f2617b701caf57a9aef739b922b5b10cda131cdf2fd0af42c55603f8973a623a8b6ae70f6cc9f -DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97 -DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2 -DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513 DIST windows-link-0.2.1.crate 6133 BLAKE2B d1ca714178e6fe12bb3b4caeed9a52a36890989e77ae2dcd6f2d18ae4a21fb8479d304cdff63bb0a5f28acf44eaf104821cff83cd66b3a0406a5f33a800e3641 SHA512 afb0c87beb8914fd9a3e52db6f2f64a840470b9751b66c83892c24cb1c46cda63fb16b1aeafcaa5a1fc7c5ba01da46be63e5227cc108dede8b0bd27785498a6b DIST windows-sys-0.48.0.crate 2628884 BLAKE2B 551e900de4f67187ef034b60df9fd0e0d8f82a3100ef28e1eabd543ac129d882dc86ffcc1714071aba09e4cb2ae2d2f07ace1a32b99fd989ce525cf05991edab SHA512 bdf534bcf3face31e9ebe11427a911a53f89f4ff5eaea8cccd094e139bfe14b2aec602b1cab1df774794d999477439d9adc6b627a8e33c20334fc348ba2c47ed -DIST windows-sys-0.52.0.crate 2576877 BLAKE2B 69d6b560ccfc8f679e2678663ba606060d71fa28efa82c8aef8cceaa2c63b06f2052764d60163964f939649a26bbec6361ee4b094555e941fae92070db566980 SHA512 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03 -DIST windows-sys-0.59.0.crate 2387323 BLAKE2B 3110c8cd2bc005f8c95cd038a8d574af648dc19788fe4485f977376f92e36b911b1a542d669a07ae9cd4ea72a884ab01ec78b8a2b5587456eb202452d1d8fa0d SHA512 d35e009e979633a1f3c8468cd038bd5c8c0381405165ce03497decd7d9edaaac485d704487e4a61d9aaf4e4d011b4248408912df6a0044d50e8457259867e061 DIST windows-sys-0.60.2.crate 2518479 BLAKE2B c2e2f614066e5a9d7ec461d9d25bd441188797ad85e1e923baeb0193e82f5c138ae7fb4ad0255d483f60f7a94e3f5cd8373d01b7485c052c9498937bc40da992 SHA512 a48aa1b66479451e431032737b63dc62eac6f63c251534e258de75bbee4858829faf5e641756566f00e153b08548ba32beb437b5ea42e9531e3fcbd8eb25209d DIST windows-sys-0.61.2.crate 2517186 BLAKE2B f4eab0b365aa1df8a353d634da5081237bef0f7b69f02ffcaba232a688e59dfe877c47114de64c81e3cbb929c2fea1143ed6bda56ce935e66d871a993ac29106 SHA512 e6c8f61f0724dafca7821ee9b9c07237ccfee69be269be2fa7318eb48b151285ecf63e860aa1fe303639222fe11268e3773f37c2dd79f923029af58c645edb3f DIST windows-targets-0.48.5.crate 6904 BLAKE2B 7396bb210f37bd51da86f39fca3425c8f6610721d5c4e94f9fafa0a8a8046303b3fcc6979146bcfaa32f4406d242a0455f6cbb220f84c6ff84650e755acf5223 SHA512 e079eeef255a046be7f8e6a31c14f7b230254ebcf05eed2944827bb3d2a0dc30940d87593cf544d5e7ef35f6312b99430efcfb01421d91b02bb9c4bef7d98709 -DIST windows-targets-0.52.6.crate 6403 BLAKE2B eb98d0a8daeed5fe76e7fa8edb2743e2a3e77dfb9c4ea68605a6ab10532cb7cfc43bc1cea0180869445bd940be762a40136500e26b84ca88b5e0c502004c7a4c SHA512 d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f DIST windows-targets-0.53.5.crate 7126 BLAKE2B 17a0452fe72a42df4aec8b4ae7798bd611df4f3b093709aee7b8dc991fbc2351edd23e134d12412fb47e9930ae30476b55841d52be5e764fc42a7922e3134ad3 SHA512 285a2ad1c370d8485a84c3921b180416c79ad596ace5ce30a1100fe0d9725139e9302f5728d4874789d8abe5c53e9b30ff4738d969da1c07940bde2b01c7a203 DIST windows_aarch64_gnullvm-0.48.5.crate 418492 BLAKE2B 5c6f7d73ad05740f0bac304ed1ef9b2ea63b0d6ca8f875552ae299a0b73b1557e8fe996f1c2b69be9f2df350c9288690f49ee62239a2896991364331d6c55462 SHA512 20158d31454488f6053d3ad7b97d7fc6eae6cf37e4ba0e50c28bd29b368505eed64199ae31104d5f97b66846be54e5ed25c0ad31ea850819205c573a31ac0996 -DIST windows_aarch64_gnullvm-0.52.6.crate 435718 BLAKE2B 8b12ae02892cb69401329034bbca671d13bd268a112120b56b90504707cef89decfbd2560492844a9f0588fab62dc1476ab7e931126b939015d25a8cc91ca334 SHA512 f62b2d942bdb3a9353465b07d47b93de179bb706511aa497e4addd74cff95e689a9b633e7801ce786e73b5ae5f30b506b6faa199c5ab86eefdc1d94652df79c5 DIST windows_aarch64_gnullvm-0.53.1.crate 787748 BLAKE2B 78729e1107cf64ffc6a3d70c14cc93e7867578be51d3f6f442914a5f2d065fa86be843b72cd24d707eb59b779e9a719eb28d025619cdc219e379827acb4a16c2 SHA512 5e480e54af09c142ff75e77f733327dd3862f32620e0b075e02bf8119e955ef2f3acfa00f7c7a4d6a2b034d03d70c45e191a40c8af628484d0e76a0b15870cdc DIST windows_aarch64_msvc-0.48.5.crate 798483 BLAKE2B 60c466d6536426425a34b5ca20da97c8127ebeb4fb9b1363911165bada484f8913fcd50e90410b5661e0c27dbfe8f4eeaa62fb17d1f3566bfc82b6255e11619b SHA512 223f016c6f1a44dbc5c8a8428b39438f75380ea06951b7c26ed0877b19d79410c6fde5e4c7f2c839b6e76159131f39a1230e0e3a208dfc425ba9117e3665c4ff -DIST windows_aarch64_msvc-0.52.6.crate 832615 BLAKE2B adc8ff61b6dc96d39c92c7d4221ae6aa0575edfc016cfcd046067ca5d8fcfd56d10e8e227be1c038ce34684be22c7ccaf5f18cd5a7638d28fbff4ba15b48b90b SHA512 a3e21305ad0e6de38f5b5ed5d37ee5825b7521064163bcdf31d63341cd87983f54377865d2daf3bb480d2d0aa66d6f598fa09540ec1d71baea74569c86bd213b DIST windows_aarch64_msvc-0.53.1.crate 838009 BLAKE2B 0a04f6d80bd0ab41964e9932040d6c748b6bf10d609bdd35074ba26d245a98281739c8ac68a3fe251d36148a53e1730b0ea2dd5347279e74dea881be43d67707 SHA512 81175036792cab41ede4e3a21ae324e638c39604e14c7a3dae8db4090cec45b385aca32416ccad50ab194ce06d3a71f2e12473767d680348795383dbb2d17426 DIST windows_i686_gnu-0.48.5.crate 844891 BLAKE2B fdc37cd74a4982056bf22fdb7b84e1c55dc838f3cb19ff3648730a77e673ef4ecc0380b3e4277bb8df2fcfa25f57b69014713d9e3ed27c28e19b25b3ea2ab774 SHA512 931ba5c1e4eb8ae73248e00d9611298d1c4b4b0dae719fdeb9243930cd420a103a7bc2738e0a4887c42c8f25728d6c5d64ad141dc092bc3f1d0f35dbe37d303a -DIST windows_i686_gnu-0.52.6.crate 880402 BLAKE2B 5aab8ee07132eccb7695807eb44811beeb0657aadfb672c54e99b6ae39c067ba9b93e38fc69bb5b9b14a9759f263ccd5e301597d2727d83b31b49a409b6bd405 SHA512 a1f6b5dd23d17ec3567bc9d11a4be6f35e196eee21ca342e9b88dbaa6a5f7c46e439c834b77e724f32ac22c0d81573746b3b513a6c944a221b92b2c76fe98822 DIST windows_i686_gnu-0.53.1.crate 939775 BLAKE2B c6abfbe7b82c7fd95a483da467ce8f12a3777572e34c42777e6378976344c95e5a56e3e7ae47049e14de81aa26f276a723ac5cb61f2c62b141020a97a91f137b SHA512 5af8519d1e0d9947738d5aa339091695467a55b62fe97bac680eb469679180a54e9f65e2ef8d0c34d4e63ede8c16f34a0fbd1f54ff53924ebcd6cef17c3474d2 -DIST windows_i686_gnullvm-0.52.6.crate 475940 BLAKE2B fec4fda8bb2bf319a501a22372fa642ae682e4dee3235b258a028190ee73220bfc55b3142f06249bb4579b17e5fde662bb2b121aefe18544653350d7d0fe7d8e SHA512 95f13af855d530acc0b856214478d4b11b8dbab3f8f79dd223d0b009790c0e46d096fc1773e0277997deb2d5b96c704f17f23c7df11411524629f75415dec99f DIST windows_i686_gnullvm-0.53.1.crate 857396 BLAKE2B 4fcc61c3634d7b905c946ccaa2f6d03ccf0feb6f8080337d5618959a532fddd5989dbc95d8559bbfb06335865387900e7cfe942cfb67a7724c3c00dc99b1d603 SHA512 492bee10b669c799a93b7ad98ee7a15c0ccde4d13697408612cd345cca2b7efc38b85c550eaf1b83470bee53ff3324045b7b751c3a31ac0e214b9965e05bbffc DIST windows_i686_msvc-0.48.5.crate 864300 BLAKE2B 3d3ea8be55e2d6ced0eeda18abe1dffb925a1a78f456d683e4450d9f2fd287ad2e8494d65b2b770c677a12b3a60d10f0435e16c61880e3867c3657fd44892442 SHA512 70e2fb4fdb006a4cbd43ab2c7e940b277a15fb1790dfa2d1fc1f1fd18bead4886f6dc046e44326603e4894d988578917b8932aba5d9a6a4cc8424911cad9dc7e -DIST windows_i686_msvc-0.52.6.crate 901163 BLAKE2B 99ed34e052db5ba77bab240ed5d38ce450be347a794d63ec39b719304c32722c9999b540ab40abe0216318900b7412970df99dfb36d1516a9517cae0c77d1bdc SHA512 ca97913ce202d73266cf55947b868bea7e964a4516b6a096a81aeab6a60ee73867171032ced35e3afccff741ddfb2def7468343b6eceb95253e4d4f349efbf96 DIST windows_i686_msvc-0.53.1.crate 907688 BLAKE2B f6ae6032836367e9a42261779661abd028d303cfb13c016dd1a745b21b58d62531dd0d7658a6c133d2bf1dd95c538cf24340bb50e6743a82d6be9a622ff371b7 SHA512 b78f2a21e88adb65bf8a81bfa8a133d6ebe18b8394220421bd5f10b619528f118a255dacf6e78014ddb4db8a27b936be7af6e137133d914e1cc0902139a0e0cd DIST windows_x86_64_gnu-0.48.5.crate 801619 BLAKE2B aa7e7e6a6ff9f9553ada3a0a39a9aa798e9d995a8eef36e0b6fdb2a0db93ddecee5548970575271fe43aec74797a420d0ee231d503b5bad1bd999059261e0e33 SHA512 1d6056fae430b3d042bdff3c6217c76be4b8b9f5dada9bad06beaac2db7d7ab9b0a82e44f498ec88e61afa73e99f56d84d445dc3847732b9ce5d947e08485f74 -DIST windows_x86_64_gnu-0.52.6.crate 836363 BLAKE2B e2335829155cdbd4a55cc9f9babc237e14e32aab97f6f91afabcdf80d2aee37d6fb4b8669aaf433ff532c85dba59b3d366c7d41b61a2f29b96f960169c900687 SHA512 c4086bb0280042f2bef9b556283b67f8a5cacddd209e1c5fabec63decec6d4fd2d6a7071407973981b98ae0c0cf7034fc612f9e70dc6d3eed9acdec771ae31cb DIST windows_x86_64_gnu-0.53.1.crate 903712 BLAKE2B b5a86bd4a760fb6d937dc5285d2c594245ed6bbc541ffd6cf6d169c7e4e8c4334523c06c7a59c52f100a05da7976193fbb535ff3bf7db30897d9940d4d5648a4 SHA512 e4c5bbc49202636c03953aa0fff1f1affed69970aae198cb4d1eeb5dda63b9e07b0cfaf46015bca3b8c48fd90d3552488a6a7b17b53aebf9776e996ccbf9c7d5 DIST windows_x86_64_gnullvm-0.48.5.crate 418486 BLAKE2B 12a2199d434617c1df1a839e9f435620ad64b40c579f6d0c3677553ad7a48e5765d12c266b04946402e15c92cff2e4ac4979ce2130750ef426e2672119680284 SHA512 c016d5b5e73832b61ff67929d92fa8c16e154656294357266ad29ce1f44db4ca2d2935dba31a6b571187dc838b1d22f1e3b41fefffd1d719a338439adf1646aa -DIST windows_x86_64_gnullvm-0.52.6.crate 435707 BLAKE2B ab77dccd06328cdb00175f41cdbc120594050a9678b7f9820444391fb50aada3911a91ea00f3a6db2b4fa1820fd23bc9a007dfbe65ad41417c26ee1137ef9b96 SHA512 67681f5859e249c56b0183181811f6212cc7008d6471dad78aecc7ebe3d027686b19210b8aa9014c554410f69f913d21ce2aca928eea905eab779bea26464cbd DIST windows_x86_64_gnullvm-0.53.1.crate 787739 BLAKE2B b5e3aaba4ecd1e5e21a0b9ce5beaad3f9ef78249f21b3dbdb69af98d5f36d01f2ce65d3188788392b866f296548075857e2f904e30cb79db33fb3134fd78e946 SHA512 30b8919ee9ad36acfac4e28a3b22378ce11ee73d35de60dd9c9217adf14e85222da5526100b0252372e039e559a5bf734ba134b10f707657d542341056947588 DIST windows_x86_64_msvc-0.48.5.crate 798412 BLAKE2B 8abc0721e2fb337fe17c91d278947d36122d9045b839ba0cf3e690202d242265b676f23cc301da5f9d98c56ca4ecb76f7d6f072ee71bf986a1deca87020b90e5 SHA512 fa1c5cd14ca2ff0082e2504cf59d317dc4dc6f7138d35c12f95d4476a9c13d8b7f5537d0ee251eee7c99411ad31b22263171b7fbd391daa5d3ea3488ceaa61a0 -DIST windows_x86_64_msvc-0.52.6.crate 832564 BLAKE2B 8e9a3044654c6de99a9153e7cacd575474e7a8a3d883c67b02132af5d3fc99d03cd5f7a4dd666a3947451d11218e6acc6eb5e2526f012481106cc13453839719 SHA512 21944cd8e3a481b514509e73ae3f62722fe7ed380d37ea0c25f8fbdeba79174dd52ff65d898838da5df4197894b74e00f45d47489418e978753b4e55c7e623e7 DIST windows_x86_64_msvc-0.53.1.crate 837950 BLAKE2B 5775d30ce763835fa26376d85e9ae6f598b817b8d32b01147e5d197c364a5071ce7b5b09ee6f611fcf30790af79c4e4282e04ced620190629eebcbccabb8d720 SHA512 bb724f4051db90ce49b552021e746769e5dfe3792b522416539960c27f9ace14f63c47f0f240d6563257377129b5f3ba2c262c6fea9610428aa860fe035f189c DIST wit-bindgen-0.46.0.crate 60508 BLAKE2B 4422fb47880ecd70749d615ea6ed0a8bcb5941bd9de2c2164a6f1248574363408fcb634e0e9aa0af3e0f278c9311a81212818dff70ef39614646ffdd646b1fe7 SHA512 5d37ac5855797cfb906c983a70780d7cd29d70c4e5b6e54328fc18297feeb89ceda0aa732123280a12610015fbdb42bcd76aae12b1debb281b0a848016134548 -DIST zerocopy-0.7.35.crate 152645 BLAKE2B 8f13123c9d9257ac5a5c6954d38c3510fa658624442f7e03cdcc6db5a0977d9f26bb4e277be172b7872ec365cf6e58ac742e5578636f7698f9f37093e9249d9a SHA512 17fcb31c029ae89c01e5bae5fb2bb46bd434120199a3dc2c7fe0012dbbcfe2a0bb38934c4a7d3a4920e3fe47c097403beee554fefa54b66cb390f8b1de638d3c DIST zerocopy-0.8.27.crate 252663 BLAKE2B bef5142d18ae053a542d3a481e5ed3594ee73f9d89eb82224c115701e38245e87ba9cfddd15812fbae5c2486ad46c11481ee722a3c3832a2540a43f84f6dce7e SHA512 f3f8d298b3a56d0eb3061207d069f34302e1dfb61e6b3ab2a9c8d0656b5da807ebd70310ddf818fbb40547597183e09be77c07c4b665690af66f27a9cf96a1df -DIST zerocopy-derive-0.7.35.crate 37829 BLAKE2B badeb7fa5e0bfe93a6788d93fd297604ed31de526b121549300ead3c49d450f49265f499e2e7ce606dcce2b59dd01f7fa817b8fbb3f237475185c5b42f5299c4 SHA512 dbe23573b62a6267d7bc8c744320b75b2fbda03b908c1d175211f7394374fe182bce58021e25485c10671d726b2007f250565dfe53134d51c89293bb607e9feb DIST zerocopy-derive-0.8.27.crate 89827 BLAKE2B ace5abe8aca7cdc22ab66826e7e244b89d84adf495186eaa2714d6c521403e2fd84b56259eed6d2a6ad9800e164021dadfcdf4c80ad8a8b7eb0dd7fe799e9749 SHA512 9fd0b4f900e6ea7c92998b7297deafa84870e7e57d09225ae3910894358da9f405925fed88d2528f52caf5a1f6e32dd75bfa18ed3a7f9fee75bfa88c0f23e451 diff --git a/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/files/thin-provisioning-tools-1.1.0-rio-nightly.patch b/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/files/thin-provisioning-tools-1.1.0-rio-nightly.patch deleted file mode 100644 index 3472b9fbad6..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/files/thin-provisioning-tools-1.1.0-rio-nightly.patch +++ /dev/null @@ -1,11 +0,0 @@ -https://bugs.gentoo.org/939517 ---- a/src/lib.rs -+++ b/src/lib.rs -@@ -130,7 +130,6 @@ - trivial_casts, - trivial_numeric_casts, - unsafe_code, -- unused_qualifications - )] - #![deny( - clippy::cast_lossless, diff --git a/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.1.0-r3.ebuild b/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.1.0-r3.ebuild deleted file mode 100644 index 33fe16a4bc0..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.1.0-r3.ebuild +++ /dev/null @@ -1,241 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# bug #964273 -RUST_MAX_VER=1.88.0 - -CRATES=" - adler@1.0.2 - aho-corasick@1.1.3 - anstream@0.6.15 - anstyle-parse@0.2.5 - anstyle-query@1.1.1 - anstyle-wincon@3.0.4 - anstyle@1.0.8 - anyhow@1.0.86 - atty@0.2.14 - autocfg@1.3.0 - base64@0.22.1 - bindgen@0.69.4 - bitflags@1.3.2 - bitflags@2.6.0 - bytemuck@1.16.3 - byteorder@1.5.0 - cassowary@0.3.0 - cexpr@0.6.0 - cfg-if@1.0.0 - cfg_aliases@0.2.1 - clang-sys@1.8.1 - clap@4.5.13 - clap_builder@4.5.13 - clap_lex@0.7.2 - colorchoice@1.0.2 - console@0.15.8 - crc32c@0.6.8 - crc32fast@1.4.2 - data-encoding@2.6.0 - devicemapper-sys@0.3.0 - devicemapper@0.34.3 - downcast@0.11.0 - duct@0.13.7 - either@1.13.0 - encode_unicode@0.3.6 - env_filter@0.1.2 - env_logger@0.11.5 - env_logger@0.8.4 - errno@0.3.9 - exitcode@1.1.2 - fastrand@2.1.0 - fixedbitset@0.4.2 - flate2@1.0.31 - fragile@2.0.0 - getrandom@0.2.15 - glob@0.3.1 - hermit-abi@0.1.19 - hermit-abi@0.3.9 - humantime@2.1.0 - indicatif@0.17.8 - instant@0.1.13 - iovec@0.1.4 - is_terminal_polyfill@1.70.1 - itertools@0.12.1 - lazy_static@1.5.0 - lazycell@1.3.0 - libc@0.2.155 - libloading@0.8.5 - libudev-sys@0.1.4 - linux-raw-sys@0.4.14 - log@0.4.22 - memchr@2.7.4 - minimal-lexical@0.2.1 - miniz_oxide@0.7.4 - mockall@0.13.0 - mockall_derive@0.13.0 - nix@0.29.0 - nom@7.1.3 - num-derive@0.4.2 - num-traits@0.2.19 - num_cpus@1.16.0 - number_prefix@0.4.0 - numtoa@0.1.0 - once_cell@1.19.0 - os_pipe@1.2.1 - pkg-config@0.3.30 - portable-atomic@1.7.0 - ppv-lite86@0.2.20 - predicates-core@1.0.8 - predicates-tree@1.0.11 - predicates@3.1.2 - proc-macro2@1.0.86 - quick-xml@0.36.1 - quickcheck@1.0.3 - quickcheck_macros@1.0.0 - quote@1.0.36 - rand@0.8.5 - rand_chacha@0.3.1 - rand_core@0.6.4 - rangemap@1.5.1 - redox_syscall@0.2.16 - redox_termios@0.1.3 - regex-automata@0.4.7 - regex-syntax@0.8.4 - regex@1.10.6 - retry@2.0.0 - roaring@0.10.6 - rustc-hash@1.1.0 - rustc_version@0.4.0 - rustix@0.38.34 - safemem@0.3.3 - semver@1.0.23 - serde@1.0.204 - serde_derive@1.0.204 - shared_child@1.0.1 - shlex@1.3.0 - strsim@0.11.1 - syn@1.0.109 - syn@2.0.72 - tempfile@3.11.0 - termion@1.5.6 - termtree@0.4.1 - thiserror-impl@1.0.63 - thiserror@1.0.63 - threadpool@1.8.1 - tui@0.19.0 - udev@0.7.0 - unicode-ident@1.0.12 - unicode-segmentation@1.11.0 - unicode-width@0.1.13 - utf8parse@0.2.2 - wasi@0.11.0+wasi-snapshot-preview1 - winapi-i686-pc-windows-gnu@0.4.0 - winapi-x86_64-pc-windows-gnu@0.4.0 - winapi@0.3.9 - windows-sys@0.52.0 - windows-sys@0.59.0 - windows-targets@0.52.6 - windows_aarch64_gnullvm@0.52.6 - windows_aarch64_msvc@0.52.6 - windows_i686_gnu@0.52.6 - windows_i686_gnullvm@0.52.6 - windows_i686_msvc@0.52.6 - windows_x86_64_gnu@0.52.6 - windows_x86_64_gnullvm@0.52.6 - windows_x86_64_msvc@0.52.6 - zerocopy-derive@0.7.35 - zerocopy@0.7.35 -" - -declare -A GIT_CRATES=( - [rio]='https://github.com/jthornber/rio;2979a720f671e836302c01546f9cc9f7988610c8;rio-%commit%' -) - -LLVM_COMPAT=( {17..20} ) - -inherit cargo llvm-r1 - -DESCRIPTION="A suite of tools for thin provisioning on Linux" -HOMEPAGE="https://github.com/jthornber/thin-provisioning-tools" - -if [[ ${PV} == *9999 ]]; then - EGIT_REPO_URI="https://github.com/jthornber/thin-provisioning-tools.git" - inherit git-r3 -else - SRC_URI=" - https://github.com/jthornber/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz - ${CARGO_CRATE_URIS} - " - KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv ~sparc x86" -fi - -LICENSE="GPL-3" -# Dependent crate licenses -LICENSE+=" Apache-2.0 BSD GPL-3 ISC MIT MPL-2.0 Unicode-DFS-2016" -SLOT="0" -IUSE="io-uring" - -RDEPEND="virtual/libudev:=" -# libdevmapper.h needed for devicemapper-sys crate -DEPEND=" - ${RDEPEND} - sys-fs/lvm2 -" -# Needed for bindgen -BDEPEND=" - $(llvm_gen_dep ' - llvm-core/clang:${LLVM_SLOT} - ') - virtual/pkgconfig -" - -DOCS=( - CHANGES - COPYING - README.md - doc/TODO.md - doc/thinp-version-2/notes.md -) - -# Rust -QA_FLAGS_IGNORED="usr/sbin/pdata_tools" - -PATCHES=( - "${FILESDIR}/${PN}-1.0.6-build-with-cargo.patch" -) - -pkg_setup() { - llvm-r1_pkg_setup - rust_pkg_setup -} - -src_unpack() { - if [[ ${PV} == 9999 ]] ; then - git-r3_src_unpack - cargo_live_src_unpack - else - cargo_src_unpack - fi -} - -src_prepare() { - default - - cd "${WORKDIR}"/rio* || die - eapply "${FILESDIR}/${PN}-1.1.0-rio-nightly.patch" -} - -src_configure() { - local myfeatures=( $(usev io-uring io_uring) ) - cargo_src_configure -} - -src_install() { - emake \ - DESTDIR="${D}" \ - DATADIR="${ED}/usr/share" \ - PDATA_TOOLS="$(cargo_target_dir)/pdata_tools" \ - install - - einstalldocs -} diff --git a/sdk_container/src/third_party/portage-stable/sys-boot/grub/files/gfxpayload.patch b/sdk_container/src/third_party/portage-stable/sys-boot/grub/files/gfxpayload.patch index 6c63ef88b09..59e4a45e491 100644 --- a/sdk_container/src/third_party/portage-stable/sys-boot/grub/files/gfxpayload.patch +++ b/sdk_container/src/third_party/portage-stable/sys-boot/grub/files/gfxpayload.patch @@ -1,3 +1,7 @@ +https://bugs.gentoo.org/528826 +http://lists.gnu.org/archive/html/grub-devel/2014-10/msg00031.html +https://gitlab.freedesktop.org/gnu-grub/grub/-/merge_requests/98 + From e2d5bf1bc6aaaabeba538c1ca94ea8601e4e1474 Mon Sep 17 00:00:00 2001 From: Mike Gilbert Date: Thu, 16 Oct 2014 23:43:51 -0400 diff --git a/sdk_container/src/third_party/portage-stable/sys-boot/grub/files/grub-2.14-efi_uga.patch b/sdk_container/src/third_party/portage-stable/sys-boot/grub/files/grub-2.14-efi_uga.patch new file mode 100644 index 00000000000..51819d04318 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-boot/grub/files/grub-2.14-efi_uga.patch @@ -0,0 +1,41 @@ +https://gitlab.freedesktop.org/gnu-grub/grub/-/merge_requests/10 + +From 129588e498647842c6f13f7809ef9ac583e2351b Mon Sep 17 00:00:00 2001 +From: Egor Ignatov +Date: Thu, 19 Mar 2026 17:22:11 +0500 +Subject: [PATCH] util/grub.d/00_header.in: Load efi_uga only on x86 EFI + platforms + +The efi_uga module is only built for i386-efi and x86_64-efi firmware), but +commit ea0b76dc4a ("Disable loading all_video for EFI") loads it unconditionally +on all EFI platforms. This causes a "file not found" error on aarch64-efi and +other non-x86 EFI targets. + +Guard the insmod with a $grub_cpu check so the module is only +loaded where it is actually available. + +Fixes: ea0b76dc4 ("util/grub.d/00_header.in: Disable loading all_video for EFI") + +Signed-off-by: Egor Ignatov +--- + util/grub.d/00_header.in | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in +index 77834cfaf..1afe41e67 100644 +--- a/util/grub.d/00_header.in ++++ b/util/grub.d/00_header.in +@@ -135,7 +135,9 @@ else # GRUB_FORCE_EFI_ALL_VIDEO is not set true + cat < +Date: Thu, 16 Oct 2014 23:43:51 -0400 +Subject: [PATCH] 10_linux: default gfxpayload=keep only when booting using EFI + +A given kernel may be compiled with CONFIG_FB_EFI, but may be booted in +legacy PC-BIOS mode. It is not safe to set gfxmode=keep under these +conditions, and this may result in a black screen once the kernel +starts. + +Signed-off-by: Mike Gilbert +Reviewed-by: Neal Gompa +Reviewed-by: Leo Sandoval +--- + util/grub.d/10_linux.in | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +index 1233b112b..737e1c30c 100644 +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -118,7 +118,9 @@ linux_entry () + echo " load_video" | sed "s/^/$submenu_indentation/" + if grep -qx "CONFIG_FB_EFI=y" "${config}" 2> /dev/null \ + && grep -qx "CONFIG_VT_HW_CONSOLE_BINDING=y" "${config}" 2> /dev/null; then +- echo " set gfxpayload=keep" | sed "s/^/$submenu_indentation/" ++ echo ' if [ "x$grub_platform" = xefi ]; then' | sed "s/^/$submenu_indentation/" ++ echo " set gfxpayload=keep" | sed "s/^/$submenu_indentation/" ++ echo ' fi' | sed "s/^/$submenu_indentation/" + fi + else + if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then +-- +GitLab + diff --git a/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-2.14-r3.ebuild b/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-2.14-r3.ebuild deleted file mode 100644 index 8cbfee458c7..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-2.14-r3.ebuild +++ /dev/null @@ -1,455 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# This ebuild uses 3 special global variables: -# GRUB_BOOTSTRAP: Invoke bootstrap (gnulib) -# GRUB_AUTOGEN: Invoke autogen.sh -# GRUB_AUTORECONF: Inherit autotools and invoke eautoreconf -# -# When applying patches: -# If gnulib is updated, set GRUB_BOOTSTRAP=1 -# If gentpl.py or *.def is updated, set GRUB_AUTOGEN=1 -# If gnulib, gentpl.py, *.def, or any autotools files are updated, set GRUB_AUTORECONF=1 -# -# If any of the above applies to a user patch, the user should set the -# corresponding variable in make.conf or the environment. - -GRUB_AUTOGEN=1 -GRUB_AUTORECONF=1 - -PYTHON_COMPAT=( python3_{11..14} ) -WANT_LIBTOOL=none - -if [[ -n ${GRUB_AUTORECONF} ]]; then - inherit autotools -fi - -inherit bash-completion-r1 eapi9-ver flag-o-matic multibuild optfeature -inherit python-any-r1 secureboot toolchain-funcs verify-sig - -DESCRIPTION="GNU GRUB boot loader" -HOMEPAGE="https://www.gnu.org/software/grub/" - -MY_P=${P} -if [[ ${PV} != 9999 ]]; then - if [[ ${PV} == *_alpha* || ${PV} == *_beta* || ${PV} == *_rc* ]]; then - # The quote style is to work with <=bash-4.2 and >=bash-4.3 #503860 - MY_P=${P/_/'~'} - SRC_URI=" - https://alpha.gnu.org/gnu/${PN}/${MY_P}.tar.xz - verify-sig? ( https://alpha.gnu.org/gnu/${PN}/${MY_P}.tar.xz.sig ) - " - S=${WORKDIR}/${MY_P} - else - SRC_URI=" - mirror://gnu/${PN}/${P}.tar.xz - verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig ) - https://dev.gentoo.org/~floppym/dist/${P}-patches.tar.xz - " - S=${WORKDIR}/${P%_*} - fi - BDEPEND=" - verify-sig? ( - sec-keys/openpgp-keys-grub - sec-keys/openpgp-keys-unifont - ) - " - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" -else - inherit git-r3 - EGIT_REPO_URI="https://git.savannah.gnu.org/git/grub.git" -fi - -DEJAVU_VER=2.37 -DEJAVU=dejavu-fonts-ttf-${DEJAVU_VER} -UNIFONT=unifont-17.0.02 -SRC_URI+=" - fonts? ( - mirror://gnu/unifont/${UNIFONT}/${UNIFONT}.pcf.gz - verify-sig? ( mirror://gnu/unifont/${UNIFONT}/${UNIFONT}.pcf.gz.sig ) - ) - themes? ( https://downloads.sourceforge.net/project/dejavu/dejavu/${DEJAVU_VER}/${DEJAVU}.tar.bz2 ) -" - -# Includes licenses for dejavu and unifont -LICENSE="GPL-3+ BSD MIT fonts? ( GPL-2-with-font-exception ) themes? ( CC-BY-SA-3.0 BitstreamVera )" -SLOT="2/${PVR}" -IUSE="+branding +device-mapper doc efiemu +fonts mount nls protect sdl test +themes truetype libzfs" - -GRUB_ALL_PLATFORMS=( coreboot efi-32 efi-64 emu ieee1275 loongson multiboot - qemu qemu-mips pc uboot xen xen-32 xen-pvh ) -IUSE+=" ${GRUB_ALL_PLATFORMS[@]/#/grub_platforms_}" - -REQUIRED_USE=" - grub_platforms_coreboot? ( fonts ) - grub_platforms_qemu? ( fonts ) - grub_platforms_ieee1275? ( fonts ) - grub_platforms_loongson? ( fonts ) -" - -BDEPEND+=" - ${PYTHON_DEPS} - >=sys-devel/flex-2.5.35 - sys-devel/bison - sys-apps/help2man - sys-apps/texinfo - fonts? ( - media-libs/freetype:2 - virtual/pkgconfig - ) - test? ( - app-admin/genromfs - app-alternatives/cpio - app-arch/lzop - app-emulation/qemu - dev-libs/libisoburn - sys-apps/miscfiles - sys-block/parted - sys-fs/squashfs-tools - ) - themes? ( - media-libs/freetype:2 - virtual/pkgconfig - ) - truetype? ( virtual/pkgconfig ) -" -DEPEND=" - app-arch/xz-utils - >=sys-libs/ncurses-5.2-r5:0= - grub_platforms_emu? ( - sdl? ( media-libs/libsdl2 ) - ) - device-mapper? ( >=sys-fs/lvm2-2.02.45 ) - libzfs? ( sys-fs/zfs:= ) - mount? ( sys-fs/fuse:3= ) - truetype? ( media-libs/freetype:2= ) - ppc? ( >=sys-apps/ibm-powerpc-utils-1.3.5 ) - ppc64? ( >=sys-apps/ibm-powerpc-utils-1.3.5 ) - protect? ( dev-libs/libtasn1:= ) -" -RDEPEND="${DEPEND} - branding? ( themes? ( >=sys-boot/grub-themes-gentoo-1.0-r1 ) ) - kernel_linux? ( - grub_platforms_efi-32? ( sys-boot/efibootmgr ) - grub_platforms_efi-64? ( sys-boot/efibootmgr ) - ) - !sys-boot/grub:0 - nls? ( sys-devel/gettext ) -" - -RESTRICT="!test? ( test ) test? ( userpriv )" - -QA_EXECSTACK="usr/bin/grub-emu* usr/lib/grub/*" -QA_PRESTRIPPED="usr/lib/grub/.*" -QA_MULTILIB_PATHS="usr/lib/grub/.*" -QA_WX_LOAD="usr/lib/grub/*" - -pkg_setup() { - # skip python-any-r1_pkg_setup: python_setup is called in src_prepare - secureboot_pkg_setup -} - -src_unpack() { - if [[ ${PV} == 9999 ]]; then - git-r3_src_unpack - pushd "${P}" >/dev/null || die - local GNULIB_URI="https://git.savannah.gnu.org/git/gnulib.git" - local GNULIB_REVISION=$(source bootstrap.conf >/dev/null; echo "${GNULIB_REVISION}") - git-r3_fetch "${GNULIB_URI}" "${GNULIB_REVISION}" - git-r3_checkout "${GNULIB_URI}" gnulib - if use nls; then - sh linguas.sh || die - fi - popd >/dev/null || die - elif use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sig} \ - "${BROOT}"/usr/share/openpgp-keys/grub.asc - fi - if use fonts && use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${UNIFONT}.pcf.gz{,.sig} \ - "${BROOT}"/usr/share/openpgp-keys/unifont.asc - fi - default -} - -src_prepare() { - local PATCHES=( - "${WORKDIR}/${P}-patches" - ) - - default - - python_setup - - if [[ -n ${GRUB_BOOTSTRAP} ]]; then - eautopoint --force - AUTOPOINT=: AUTORECONF=: ./bootstrap --skip-po || die - elif [[ -n ${GRUB_AUTOGEN} ]]; then - FROM_BOOTSTRAP=1 ./autogen.sh || die - fi - - if [[ -n ${GRUB_AUTORECONF} ]]; then - eautoreconf - fi -} - -grub_do() { - multibuild_foreach_variant run_in_build_dir "$@" -} - -grub_do_once() { - multibuild_for_best_variant run_in_build_dir "$@" -} - -grub_configure() { - local platform - - case ${MULTIBUILD_VARIANT} in - efi*) platform=efi ;; - xen-pvh) platform=xen_pvh ;; - xen*) platform=xen ;; - guessed) ;; - *) platform=${MULTIBUILD_VARIANT} ;; - esac - - case ${MULTIBUILD_VARIANT} in - *-32) - if [[ ${CTARGET:-${CHOST}} == x86_64* ]]; then - local CTARGET=i386 - fi ;; - *-64) - if [[ ${CTARGET:-${CHOST}} == i?86* ]]; then - local CTARGET=x86_64 - local -x TARGET_CFLAGS="-Os -march=x86-64 ${TARGET_CFLAGS}" - local -x TARGET_CPPFLAGS="-march=x86-64 ${TARGET_CPPFLAGS}" - fi ;; - esac - - local myeconfargs=( - --disable-werror - --program-prefix= - --libdir="${EPREFIX}"/usr/lib - $(use_enable device-mapper) - $(use_enable mount grub-mount) - $(use_enable nls) - $(use_enable protect grub-protect) - $(use_enable themes grub-themes) - $(use_enable truetype grub-mkfont) - $(use_enable libzfs) - --enable-grub-emu-sdl=no - $(use_enable sdl grub-emu-sdl2) - ${platform:+--with-platform=}${platform} - - # Let configure detect this where supported - $(usex efiemu '' '--disable-efiemu') - ) - - if use fonts; then - cp "${WORKDIR}/${UNIFONT}.pcf" unifont.pcf || die - fi - - if use themes; then - cp "${WORKDIR}/${DEJAVU}/ttf/DejaVuSans.ttf" DejaVuSans.ttf || die - fi - - local ECONF_SOURCE="${S}" - econf "${myeconfargs[@]}" -} - -src_configure() { - # Bug 508758. - replace-flags -O3 -O2 - - # Workaround for bug 829165. - filter-ldflags -pie - - # We don't want to leak flags onto boot code. - export HOST_CCASFLAGS=${CCASFLAGS} - export HOST_CFLAGS=${CFLAGS} - export HOST_CPPFLAGS=${CPPFLAGS} - export HOST_LDFLAGS=${LDFLAGS} - unset CCASFLAGS CFLAGS CPPFLAGS LDFLAGS - - tc-ld-disable-gold #439082 #466536 #526348 - export TARGET_LDFLAGS="${TARGET_LDFLAGS} ${LDFLAGS}" - unset LDFLAGS - - tc-export CC NM OBJCOPY RANLIB STRIP - tc-export BUILD_CC BUILD_PKG_CONFIG - - # Force configure to use flex & bison, bug 887211. - export LEX=flex - unset YACC - - local sedargs=( - -e "s/@PV@/${PV}/" - -e "s/@PVR@/${PVR}/" - -e "s/@GEN_GRUB@/5/" - -e "s/@GEN_GENTOO@/1/" - ) - sed "${sedargs[@]}" "${FILESDIR}/sbat.csv.in" > "${WORKDIR}/sbat.csv" || die - - MULTIBUILD_VARIANTS=() - local p - for p in "${GRUB_ALL_PLATFORMS[@]}"; do - use "grub_platforms_${p}" && MULTIBUILD_VARIANTS+=( "${p}" ) - done - [[ ${#MULTIBUILD_VARIANTS[@]} -eq 0 ]] && MULTIBUILD_VARIANTS=( guessed ) - grub_do grub_configure -} - -src_compile() { - # Sandbox bug 404013. - use libzfs && { addpredict /etc/dfs; addpredict /dev/zfs; } - - grub_do emake - use doc && grub_do_once emake -C docs html -} - -src_test() { - # The qemu dependency is a bit complex. - # You will need to adjust QEMU_SOFTMMU_TARGETS to match the cpu/platform. - local SANDBOX_WRITE=${SANDBOX_WRITE} - addwrite /dev - grub_do emake -j1 check -} - -grub_mkstandalone_secureboot() { - use secureboot || return - - if tc-is-cross-compiler; then - ewarn "USE=secureboot is not supported when cross-compiling." - ewarn "No standalone EFI executable will be built." - return 1 - fi - - local standalone_targets - - case ${CTARGET:-${CHOST}} in - i?86* | x86_64*) - use grub_platforms_efi-32 && standalone_targets+=( i386-efi ) - use grub_platforms_efi-64 && standalone_targets+=( x86_64-efi ) - ;; - arm* | aarch64*) - use grub_platforms_efi-32 && standalone_targets+=( arm-efi ) - use grub_platforms_efi-64 && standalone_targets+=( arm64-efi ) - ;; - riscv*) - use grub_platforms_efi-32 && standalone_targets+=( riscv32-efi ) - use grub_platforms_efi-64 && standalone_targets+=( riscv64-efi ) - ;; - ia64*) - use grub_platforms_efi-64 && standalone_targets+=( ia64-efi ) - ;; - loongarch64*) - use grub_platforms_efi-64 && standalone_targets+=( loongarch64-efi ) - ;; - esac - - if [[ ${#standalone_targets[@]} -eq 0 ]]; then - ewarn "USE=secureboot is enabled, but no suitable EFI target in GRUB_PLATFORMS." - ewarn "No standalone EFI executable will be built." - return 1 - fi - - local target mkstandalone_args - - # grub-mkstandalone embeds a config file, make this config file chainload - # a config file in the same directory grub is installed in. This requires - # pre-loading the part_gpt and part_msdos modules. - echo 'configfile ${cmdpath}/grub.cfg' > "${T}/grub.cfg" || die - for target in "${standalone_targets[@]}"; do - ebegin "Building standalone EFI executable for ${target}" - mkstandalone_args=( - --verbose - --directory="${ED}/usr/lib/grub/${target}" - --locale-directory="${ED}/usr/share/locale" - --format="${target}" - --modules="part_gpt part_msdos" - --sbat="${ED}/usr/share/grub/sbat.csv" - --output="${ED}/usr/lib/grub/grub-${target%-efi}.efi" - "boot/grub/grub.cfg=${T}/grub.cfg" - ) - - "${ED}/usr/bin/grub-mkstandalone" "${mkstandalone_args[@]}" - eend ${?} || die "grub-mkstandalone failed to build EFI executable" - done - - secureboot_auto_sign -} - -src_install() { - grub_do emake install DESTDIR="${D}" bashcompletiondir="$(get_bashcompdir)" - use doc && grub_do_once emake -C docs install-html DESTDIR="${D}" - - einstalldocs - - insinto /etc/default - newins "${FILESDIR}"/grub.default-4 grub - - if use branding && use themes ; then - sed -i -e 's:^#GRUB_THEME=.*$:GRUB_THEME="/boot/grub/themes/gentoo_glass/theme.txt":g' \ - "${ED}/etc/default/grub" || die - fi - - # https://bugs.gentoo.org/231935 - dostrip -x /usr/lib/grub - - insinto /usr/share/grub - doins "${WORKDIR}/sbat.csv" - - if use elibc_musl; then - # https://bugs.gentoo.org/900348 - QA_CONFIG_IMPL_DECL_SKIP=( re_{compile_pattern,match,search,set_syntax} ) - fi - - grub_mkstandalone_secureboot -} - -pkg_postinst() { - elog "For information on how to configure GRUB2 please refer to the guide:" - elog " https://wiki.gentoo.org/wiki/GRUB2_Quick_Start" - - if [[ -z ${REPLACING_VERSIONS} ]]; then - elog - optfeature "detecting other operating systems (grub-mkconfig)" sys-boot/os-prober - optfeature "creating rescue media (grub-mkrescue)" dev-libs/libisoburn sys-fs/mtools - optfeature "enabling RAID device detection" sys-fs/mdadm - optfeature "automatically updating GRUB's configuration on each kernel installation" "sys-kernel/installkernel[grub]" - elif ver_replacing -lt ${PVR}; then - ewarn - ewarn "Re-run grub-install to update installed boot code!" - ewarn "Re-run grub-mkconfig to update grub.cfg!" - ewarn - fi - - if has_version sys-boot/os-prober; then - ewarn "Due to security concerns, os-prober is disabled by default." - ewarn "Set GRUB_DISABLE_OS_PROBER=false in /etc/default/grub to enable it." - fi - - if grep -q GRUB_LINUX_KERNEL_GLOBS "${EROOT}"/etc/default/grub; then - ewarn "Support for GRUB_LINUX_KERNEL_GLOBS has been dropped." - ewarn "Ensure that your kernels are named appropriately or edit" - ewarn "/etc/grub.d/10_linux to compensate." - fi - - if use secureboot; then - elog - elog "The signed standalone grub EFI executable(s) are available in:" - elog " /usr/lib/grub/grub-.efi(.signed)" - elog "These EFI executables should be copied to the usual location at:" - elog " ESP/EFI/Gentoo/grub.efi" - elog "Note that 'grub-install' does not install these images." - elog - elog "These standalone grub executables read the grub config file from" - elog "the grub.cfg in the same directory instead of the default" - elog "/boot/grub/grub.cfg. When sys-kernel/installkernel[grub] is used," - elog "the location of the grub.cfg may be overridden by setting the" - elog "GRUB_CFG environment variable:" - elog " GRUB_CFG=ESP/EFI/Gentoo/grub.cfg" - elog - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-2.14-r5.ebuild b/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-2.14-r5.ebuild new file mode 100644 index 00000000000..dd354a614f8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-2.14-r5.ebuild @@ -0,0 +1,464 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# This ebuild uses 3 special global variables: +# GRUB_BOOTSTRAP: Invoke bootstrap (gnulib) +# GRUB_AUTOGEN: Invoke autogen.sh +# GRUB_AUTORECONF: Inherit autotools and invoke eautoreconf +# +# When applying patches: +# If gnulib is updated, set GRUB_BOOTSTRAP=1 +# If gentpl.py or *.def is updated, set GRUB_AUTOGEN=1 +# If gnulib, gentpl.py, *.def, or any autotools files are updated, set GRUB_AUTORECONF=1 +# +# If any of the above applies to a user patch, the user should set the +# corresponding variable in make.conf or the environment. + +GRUB_AUTOGEN=1 +GRUB_AUTORECONF=1 + +PYTHON_COMPAT=( python3_{11..14} ) +WANT_LIBTOOL=none + +if [[ -n ${GRUB_AUTORECONF} ]]; then + inherit autotools +fi + +inherit bash-completion-r1 eapi9-pipestatus eapi9-ver flag-o-matic multibuild optfeature +inherit python-any-r1 secureboot toolchain-funcs verify-sig + +DESCRIPTION="GNU GRUB boot loader" +HOMEPAGE="https://www.gnu.org/software/grub/" + +MY_P=${P} +if [[ ${PV} != 9999 ]]; then + if [[ ${PV} == *_alpha* || ${PV} == *_beta* || ${PV} == *_rc* ]]; then + # The quote style is to work with <=bash-4.2 and >=bash-4.3 #503860 + MY_P=${P/_/'~'} + SRC_URI=" + https://alpha.gnu.org/gnu/${PN}/${MY_P}.tar.xz + verify-sig? ( https://alpha.gnu.org/gnu/${PN}/${MY_P}.tar.xz.sig ) + " + S=${WORKDIR}/${MY_P} + else + SRC_URI=" + mirror://gnu/${PN}/${P}.tar.xz + verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig ) + https://dev.gentoo.org/~floppym/dist/${P}-patches.tar.xz + " + S=${WORKDIR}/${P%_*} + fi + BDEPEND=" + verify-sig? ( + sec-keys/openpgp-keys-grub + sec-keys/openpgp-keys-unifont + ) + " + KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86" +else + inherit git-r3 + EGIT_REPO_URI="https://git.savannah.gnu.org/git/grub.git" +fi + +DEJAVU_VER=2.37 +DEJAVU=dejavu-fonts-ttf-${DEJAVU_VER} +UNIFONT=unifont-17.0.02 +SRC_URI+=" + fonts? ( + mirror://gnu/unifont/${UNIFONT}/${UNIFONT}.pcf.gz + verify-sig? ( mirror://gnu/unifont/${UNIFONT}/${UNIFONT}.pcf.gz.sig ) + ) + themes? ( https://downloads.sourceforge.net/project/dejavu/dejavu/${DEJAVU_VER}/${DEJAVU}.tar.bz2 ) +" + +# Includes licenses for dejavu and unifont +LICENSE="GPL-3+ BSD MIT fonts? ( GPL-2-with-font-exception ) themes? ( CC-BY-SA-3.0 BitstreamVera )" +SLOT="2/${PVR}" +IUSE="+branding +device-mapper doc efiemu +fonts mount nls protect sdl test +themes truetype libzfs" + +GRUB_ALL_PLATFORMS=( coreboot efi-32 efi-64 emu ieee1275 loongson multiboot + qemu qemu-mips pc uboot xen xen-32 xen-pvh ) +IUSE+=" ${GRUB_ALL_PLATFORMS[@]/#/grub_platforms_}" + +REQUIRED_USE=" + grub_platforms_coreboot? ( fonts ) + grub_platforms_qemu? ( fonts ) + grub_platforms_ieee1275? ( fonts ) + grub_platforms_loongson? ( fonts ) +" + +BDEPEND+=" + ${PYTHON_DEPS} + >=sys-devel/flex-2.5.35 + sys-devel/bison + sys-apps/help2man + sys-apps/texinfo + fonts? ( + media-libs/freetype:2 + virtual/pkgconfig + ) + test? ( + app-admin/genromfs + app-alternatives/cpio + app-arch/lzop + app-emulation/qemu + dev-libs/libisoburn + sys-apps/miscfiles + sys-block/parted + sys-fs/squashfs-tools + ) + themes? ( + media-libs/freetype:2 + virtual/pkgconfig + ) + truetype? ( virtual/pkgconfig ) +" +DEPEND=" + app-arch/xz-utils + >=sys-libs/ncurses-5.2-r5:0= + grub_platforms_emu? ( + sdl? ( media-libs/libsdl2 ) + ) + device-mapper? ( >=sys-fs/lvm2-2.02.45 ) + libzfs? ( sys-fs/zfs:= ) + mount? ( sys-fs/fuse:3= ) + truetype? ( media-libs/freetype:2= ) + ppc? ( >=sys-apps/ibm-powerpc-utils-1.3.5 ) + ppc64? ( >=sys-apps/ibm-powerpc-utils-1.3.5 ) + protect? ( dev-libs/libtasn1:= ) +" +RDEPEND="${DEPEND} + branding? ( themes? ( >=sys-boot/grub-themes-gentoo-1.0-r1 ) ) + kernel_linux? ( + grub_platforms_efi-32? ( sys-boot/efibootmgr ) + grub_platforms_efi-64? ( sys-boot/efibootmgr ) + ) + !sys-boot/grub:0 + nls? ( sys-devel/gettext ) +" + +RESTRICT="!test? ( test ) test? ( userpriv )" + +QA_EXECSTACK="usr/bin/grub-emu* usr/lib/grub/*" +QA_PRESTRIPPED="usr/lib/grub/.*" +QA_MULTILIB_PATHS="usr/lib/grub/.*" +QA_WX_LOAD="usr/lib/grub/*" + +pkg_setup() { + # skip python-any-r1_pkg_setup: python_setup is called in src_prepare + secureboot_pkg_setup +} + +src_unpack() { + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + pushd "${P}" >/dev/null || die + local GNULIB_URI="https://git.savannah.gnu.org/git/gnulib.git" + local GNULIB_REVISION=$(source bootstrap.conf >/dev/null; echo "${GNULIB_REVISION}") + git-r3_fetch "${GNULIB_URI}" "${GNULIB_REVISION}" + git-r3_checkout "${GNULIB_URI}" gnulib + if use nls; then + sh linguas.sh || die + fi + popd >/dev/null || die + elif use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sig} \ + "${BROOT}"/usr/share/openpgp-keys/grub.asc + fi + if use fonts && use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${UNIFONT}.pcf.gz{,.sig} \ + "${BROOT}"/usr/share/openpgp-keys/unifont.asc + fi + default +} + +src_prepare() { + # Bug 971544 + find grub-core/lib/gnulib -name '*.in.h' | sed 's/.in.h$/.h/' | xargs rm -fv + pipestatus || die + + local PATCHES=( + "${WORKDIR}/${P}-patches" + "${FILESDIR}/${P}-efi_uga.patch" + "${FILESDIR}/${P}-gfxpayload.patch" + ) + + default + + python_setup + + if [[ -n ${GRUB_BOOTSTRAP} ]]; then + eautopoint --force + AUTOPOINT=: AUTORECONF=: ./bootstrap --skip-po || die + elif [[ -n ${GRUB_AUTOGEN} ]]; then + FROM_BOOTSTRAP=1 ./autogen.sh || die + fi + + if [[ -n ${GRUB_AUTORECONF} ]]; then + eautoreconf + fi +} + +grub_do() { + multibuild_foreach_variant run_in_build_dir "$@" +} + +grub_do_once() { + multibuild_for_best_variant run_in_build_dir "$@" +} + +grub_configure() { + local platform + + case ${MULTIBUILD_VARIANT} in + efi*) platform=efi ;; + xen-pvh) platform=xen_pvh ;; + xen*) platform=xen ;; + guessed) ;; + *) platform=${MULTIBUILD_VARIANT} ;; + esac + + case ${MULTIBUILD_VARIANT} in + *-32) + if [[ ${CTARGET:-${CHOST}} == x86_64* ]]; then + local CTARGET=i386 + fi ;; + *-64) + if [[ ${CTARGET:-${CHOST}} == i?86* ]]; then + local CTARGET=x86_64 + local -x TARGET_CFLAGS="-Os -march=x86-64 ${TARGET_CFLAGS}" + local -x TARGET_CPPFLAGS="-march=x86-64 ${TARGET_CPPFLAGS}" + fi ;; + esac + + local myeconfargs=( + --disable-werror + --program-prefix= + --libdir="${EPREFIX}"/usr/lib + $(use_enable device-mapper) + $(use_enable mount grub-mount) + $(use_enable nls) + $(use_enable protect grub-protect) + $(use_enable themes grub-themes) + $(use_enable truetype grub-mkfont) + $(use_enable libzfs) + --enable-grub-emu-sdl=no + $(use_enable sdl grub-emu-sdl2) + ${platform:+--with-platform=}${platform} + + # Let configure detect this where supported + $(usex efiemu '' '--disable-efiemu') + ) + + if use fonts; then + cp "${WORKDIR}/${UNIFONT}.pcf" unifont.pcf || die + fi + + if use themes; then + cp "${WORKDIR}/${DEJAVU}/ttf/DejaVuSans.ttf" DejaVuSans.ttf || die + fi + + local ECONF_SOURCE="${S}" + econf "${myeconfargs[@]}" +} + +src_configure() { + # Bug 508758. + replace-flags -O3 -O2 + + # Workaround for bug 829165. + filter-ldflags -pie + + # We don't want to leak flags onto boot code. + export HOST_CCASFLAGS=${CCASFLAGS} + export HOST_CFLAGS=${CFLAGS} + export HOST_CPPFLAGS=${CPPFLAGS} + export HOST_LDFLAGS=${LDFLAGS} + unset CCASFLAGS CFLAGS CPPFLAGS LDFLAGS + + tc-ld-disable-gold #439082 #466536 #526348 + export TARGET_LDFLAGS="${TARGET_LDFLAGS} ${LDFLAGS}" + unset LDFLAGS + + tc-export CC NM OBJCOPY RANLIB STRIP + tc-export BUILD_CC BUILD_PKG_CONFIG + + # Force configure to use flex & bison, bug 887211. + export LEX=flex + unset YACC + + local sedargs=( + -e "s/@PV@/${PV}/" + -e "s/@PVR@/${PVR}/" + -e "s/@GEN_GRUB@/5/" + -e "s/@GEN_GENTOO@/1/" + ) + sed "${sedargs[@]}" "${FILESDIR}/sbat.csv.in" > "${WORKDIR}/sbat.csv" || die + + MULTIBUILD_VARIANTS=() + local p + for p in "${GRUB_ALL_PLATFORMS[@]}"; do + use "grub_platforms_${p}" && MULTIBUILD_VARIANTS+=( "${p}" ) + done + [[ ${#MULTIBUILD_VARIANTS[@]} -eq 0 ]] && MULTIBUILD_VARIANTS=( guessed ) + grub_do grub_configure +} + +src_compile() { + # Sandbox bug 404013. + if use libzfs; then + addpredict /etc/dfs + addpredict /dev/zfs + fi + + grub_do emake + use doc && grub_do_once emake -C docs html +} + +src_test() { + # The qemu dependency is a bit complex. + # You will need to adjust QEMU_SOFTMMU_TARGETS to match the cpu/platform. + local SANDBOX_WRITE=${SANDBOX_WRITE} + addwrite /dev + grub_do emake -j1 check +} + +grub_mkstandalone_secureboot() { + use secureboot || return + + if tc-is-cross-compiler; then + ewarn "USE=secureboot is not supported when cross-compiling." + ewarn "No standalone EFI executable will be built." + return 1 + fi + + local standalone_targets + + case ${CTARGET:-${CHOST}} in + i?86* | x86_64*) + use grub_platforms_efi-32 && standalone_targets+=( i386-efi ) + use grub_platforms_efi-64 && standalone_targets+=( x86_64-efi ) + ;; + arm* | aarch64*) + use grub_platforms_efi-32 && standalone_targets+=( arm-efi ) + use grub_platforms_efi-64 && standalone_targets+=( arm64-efi ) + ;; + riscv*) + use grub_platforms_efi-32 && standalone_targets+=( riscv32-efi ) + use grub_platforms_efi-64 && standalone_targets+=( riscv64-efi ) + ;; + ia64*) + use grub_platforms_efi-64 && standalone_targets+=( ia64-efi ) + ;; + loongarch64*) + use grub_platforms_efi-64 && standalone_targets+=( loongarch64-efi ) + ;; + esac + + if [[ ${#standalone_targets[@]} -eq 0 ]]; then + ewarn "USE=secureboot is enabled, but no suitable EFI target in GRUB_PLATFORMS." + ewarn "No standalone EFI executable will be built." + return 1 + fi + + local target mkstandalone_args + + # grub-mkstandalone embeds a config file, make this config file chainload + # a config file in the same directory grub is installed in. This requires + # pre-loading the part_gpt and part_msdos modules. + echo 'configfile ${cmdpath}/grub.cfg' > "${T}/grub.cfg" || die + for target in "${standalone_targets[@]}"; do + ebegin "Building standalone EFI executable for ${target}" + mkstandalone_args=( + --verbose + --directory="${ED}/usr/lib/grub/${target}" + --locale-directory="${ED}/usr/share/locale" + --format="${target}" + --modules="part_gpt part_msdos" + --sbat="${ED}/usr/share/grub/sbat.csv" + --output="${ED}/usr/lib/grub/grub-${target%-efi}.efi" + "boot/grub/grub.cfg=${T}/grub.cfg" + ) + + "${ED}/usr/bin/grub-mkstandalone" "${mkstandalone_args[@]}" + eend ${?} || die "grub-mkstandalone failed to build EFI executable" + done + + secureboot_auto_sign +} + +src_install() { + grub_do emake install DESTDIR="${D}" bashcompletiondir="$(get_bashcompdir)" + use doc && grub_do_once emake -C docs install-html DESTDIR="${D}" + + einstalldocs + + insinto /etc/default + newins "${FILESDIR}"/grub.default-4 grub + + if use branding && use themes ; then + sed -i -e 's:^#GRUB_THEME=.*$:GRUB_THEME="/boot/grub/themes/gentoo_glass/theme.txt":g' \ + "${ED}/etc/default/grub" || die + fi + + # https://bugs.gentoo.org/231935 + dostrip -x /usr/lib/grub + + insinto /usr/share/grub + doins "${WORKDIR}/sbat.csv" + + if use elibc_musl; then + # https://bugs.gentoo.org/900348 + QA_CONFIG_IMPL_DECL_SKIP=( re_{compile_pattern,match,search,set_syntax} ) + fi + + grub_mkstandalone_secureboot +} + +pkg_postinst() { + elog "For information on how to configure GRUB2 please refer to the guide:" + elog " https://wiki.gentoo.org/wiki/GRUB2_Quick_Start" + + if [[ -z ${REPLACING_VERSIONS} ]]; then + elog + optfeature "detecting other operating systems (grub-mkconfig)" sys-boot/os-prober + optfeature "creating rescue media (grub-mkrescue)" dev-libs/libisoburn sys-fs/mtools + optfeature "enabling RAID device detection" sys-fs/mdadm + optfeature "automatically updating GRUB's configuration on each kernel installation" "sys-kernel/installkernel[grub]" + elif ver_replacing -lt ${PVR}; then + ewarn + ewarn "Re-run grub-install to update installed boot code!" + ewarn "Re-run grub-mkconfig to update grub.cfg!" + ewarn + fi + + if has_version sys-boot/os-prober; then + ewarn "Due to security concerns, os-prober is disabled by default." + ewarn "Set GRUB_DISABLE_OS_PROBER=false in /etc/default/grub to enable it." + fi + + if grep -q GRUB_LINUX_KERNEL_GLOBS "${EROOT}"/etc/default/grub; then + ewarn "Support for GRUB_LINUX_KERNEL_GLOBS has been dropped." + ewarn "Ensure that your kernels are named appropriately or edit" + ewarn "/etc/grub.d/10_linux to compensate." + fi + + if use secureboot; then + elog + elog "The signed standalone grub EFI executable(s) are available in:" + elog " /usr/lib/grub/grub-.efi(.signed)" + elog "These EFI executables should be copied to the usual location at:" + elog " ESP/EFI/Gentoo/grub.efi" + elog "Note that 'grub-install' does not install these images." + elog + elog "These standalone grub executables read the grub config file from" + elog "the grub.cfg in the same directory instead of the default" + elog "/boot/grub/grub.cfg. When sys-kernel/installkernel[grub] is used," + elog "the location of the grub.cfg may be overridden by setting the" + elog "GRUB_CFG environment variable:" + elog " GRUB_CFG=ESP/EFI/Gentoo/grub.cfg" + elog + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-9999.ebuild index 42c2ed896e7..9e2f2153af9 100644 --- a/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-9999.ebuild @@ -299,7 +299,10 @@ src_configure() { src_compile() { # Sandbox bug 404013. - use libzfs && { addpredict /etc/dfs; addpredict /dev/zfs; } + if use libzfs; then + addpredict /etc/dfs + addpredict /dev/zfs + fi grub_do emake use doc && grub_do_once emake -C docs html diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.5.3.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.5.3.ebuild index a6c0d3c1643..aca52dc3a90 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.5.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.5.3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -7,7 +7,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/binutils-config.git" inherit git-r3 else - SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" + SRC_URI="https://distfiles.gentoo.org/pub/proj/toolchain/binutils-config/${P}.tar.xz" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" fi diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.6.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.6.ebuild index 7adc982245a..e2b0887e6a2 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.6.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -7,7 +7,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/binutils-config.git" inherit git-r3 else - SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" + SRC_URI="https://distfiles.gentoo.org/pub/proj/toolchain/binutils-config/${P}.tar.xz" KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" fi diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-9999.ebuild index d320ea3392a..aca52dc3a90 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -7,7 +7,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/binutils-config.git" inherit git-r3 else - SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" + SRC_URI="https://distfiles.gentoo.org/pub/proj/toolchain/binutils-config/${P}.tar.xz" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" fi diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/Manifest b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/Manifest index f93b6e04407..fc885a3a2ed 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,3 +1,2 @@ -DIST crossdev-20251008.tar.xz 33852 BLAKE2B 4b689da747d73eb592cd6a1b0913084e28ab9882762a24c3fe90b845247ad13fad2c5e61a9d05312607716dfa464b7f1647eb731def555010bdc9bcdaaffe2a4 SHA512 414f45ede604dd6a770bec9032619f153d585d03a4f967e34b46253fcfaa7cace495f3ddbb00921b5efa4f2e3a6b68db9e15117559e557048203b273a0d29a3e -DIST crossdev-20251214.tar.xz 33892 BLAKE2B 02a97ef33ad3515a0bca9dd09636fe1b1bc9f5ac47663655cf4343d6b46738bf2281ae14ee28fb02f5c9bfdd06aaca41ef04559c3fcb9595c853a79d56099fae SHA512 a78e1cce83514d46de42a3e55a261e25fca9dbf8c4264a752fe896a8a9ed431db37214d69ec65062b3e981482d6fa7ff4e82e02c881612fd7e0ea1c1c6a6b0a0 -DIST crossdev-20260318.tar.xz 34200 BLAKE2B 12e534b54d7f7a26afdf55327b57c12fd91d67653fcb942b2beea45054d83be4c8667fc28cd7f6cb9d5ae6970faf63609fdb531dcc98bb03be1820bfac850c13 SHA512 b96e36a247066dff2533afb16f90aebf80da869ba323c775009ed79df973d57cbd186b437ad19d48361ca2d7d9bb7c114fdf9a7b209804da2ce5c172ad4e9aeb +DIST crossdev-20260326.tar.xz 34568 BLAKE2B 78a0af449c1e3e0a27be8e7dfe8b4ddb17ba4425f21fb6fb9f4b4f414d9611e9bc4293ff6cbb52139e3682f9d1f6ea968fb5ed2f28f88069217cf7ce204312c5 SHA512 502e719b02785b5a535ca17dd29b1227bbc01f7e6bbdc1c15c4d6dd36da2d596e07566f2fe188a0850dfc159d3c883708975436d88262cad7d06cdf947a23379 +DIST crossdev-20260501.tar.xz 34624 BLAKE2B c162a2b3d9bf63721743adfbd0ac0a8838b057c99620ecce4fffe5479e9ea2804af1fb1794eacd3fd702490d20e1c59724feb641372e7e32d717ce07274db864 SHA512 d08df164e39ba67ae377c01b38bdd46cf8890ee93223ddc9fb947bda2648a6fa096aa99797abf2953ecc6035fb1a59ea54de826d3ebbae41e54ed6da412b151d diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20251008.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20251008.ebuild deleted file mode 100644 index 450f5772eaa..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20251008.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 toolchain-funcs - -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() { - 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 - mv "${ED}"/usr/share/config.site{,.d/80crossdev.conf} || die -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20251214.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20251214.ebuild deleted file mode 100644 index 450f5772eaa..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20251214.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 toolchain-funcs - -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() { - 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 - mv "${ED}"/usr/share/config.site{,.d/80crossdev.conf} || die -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20260318.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20260326.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20260318.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20260326.ebuild diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20260501-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20260501-r1.ebuild new file mode 100644 index 00000000000..ac045cbcd99 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20260501-r1.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit eapi9-ver toolchain-funcs + +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://distfiles.gentoo.org/pub/proj/toolchain/crossdev/${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() { + 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 + mv "${ED}"/usr/share/config.site{,.d/80crossdev.conf} || die +} + +pkg_postinst() { + if [[ -z ${REPLACING_VERSIONS} ]] || ver_replacing -lt 20260501-r1; then + ewarn "crossdev requires another repository exist on the system for" + ewarn "its generated ebuilds. It uses the 'crossdev' repository by default," + ewarn "and otherwise the first non-gentoo repository it finds." + ewarn + ewarn "If you do not already have a 'crossdev' repository," + ewarn "it is recommended that you create one with the following steps:" + ewarn " installing app-eselect/eselect-repository" + ewarn " running eselect repository create crossdev" + ewarn + ewarn "Alternatively, always invoke crossdev with --ov-output NAME.". + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20260501.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20260501.ebuild new file mode 100644 index 00000000000..f44725ccd46 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20260501.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit toolchain-funcs + +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://distfiles.gentoo.org/pub/proj/toolchain/crossdev/${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() { + 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 + mv "${ED}"/usr/share/config.site{,.d/80crossdev.conf} || die +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-99999999.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-99999999.ebuild index 5494e3601b7..ac045cbcd99 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-99999999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-99999999.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="8" -inherit toolchain-funcs +inherit eapi9-ver toolchain-funcs if [[ ${PV} == "99999999" ]] ; then inherit git-r3 @@ -12,7 +12,7 @@ if [[ ${PV} == "99999999" ]] ; then https://github.com/gentoo/crossdev " else - SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" + SRC_URI="https://distfiles.gentoo.org/pub/proj/toolchain/crossdev/${P}.tar.xz" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" fi @@ -44,3 +44,18 @@ src_install() { dodir /usr/share/config.site.d mv "${ED}"/usr/share/config.site{,.d/80crossdev.conf} || die } + +pkg_postinst() { + if [[ -z ${REPLACING_VERSIONS} ]] || ver_replacing -lt 20260501-r1; then + ewarn "crossdev requires another repository exist on the system for" + ewarn "its generated ebuilds. It uses the 'crossdev' repository by default," + ewarn "and otherwise the first non-gentoo repository it finds." + ewarn + ewarn "If you do not already have a 'crossdev' repository," + ewarn "it is recommended that you create one with the following steps:" + ewarn " installing app-eselect/eselect-repository" + ewarn " running eselect repository create crossdev" + ewarn + ewarn "Alternatively, always invoke crossdev with --ov-output NAME.". + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/gcc-config-2.12.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/gcc-config-2.12.1.ebuild index 247493d4d9a..3c202430bb6 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/gcc-config-2.12.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/gcc-config-2.12.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -7,7 +7,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/gcc-config.git" inherit git-r3 else - SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" + SRC_URI="https://distfiles.gentoo.org/pub/proj/toolchain/gcc-config/${P}.tar.xz" KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" fi diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/gcc-config-2.12.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/gcc-config-2.12.2.ebuild index 247493d4d9a..3c202430bb6 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/gcc-config-2.12.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/gcc-config-2.12.2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -7,7 +7,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/gcc-config.git" inherit git-r3 else - SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" + SRC_URI="https://distfiles.gentoo.org/pub/proj/toolchain/gcc-config/${P}.tar.xz" KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" fi diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/gcc-config-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/gcc-config-9999.ebuild index e61ef5182d1..dedb5acd9fe 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/gcc-config-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/gcc-config-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -7,7 +7,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/gcc-config.git" inherit git-r3 else - SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" + SRC_URI="https://distfiles.gentoo.org/pub/proj/toolchain/gcc-config/${P}.tar.xz" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" fi diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/Manifest b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/Manifest index b68f04095c2..a7daf8dfef5 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 @@ -2,22 +2,19 @@ DIST gcc-10.5.0-musl-patches-2.tar.xz 3452 BLAKE2B 5387e516d07d81477b3f39b8b3bd9 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-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-patches-3.tar.xz 15540 BLAKE2B 7a35016381ae4f98c2dca19243ed59b0a9934ed0138e74c06b663c12dcfa2d722731819878bc1d5b092ac81fbb6b88cc254585ddf8f3081fbf503bb77df0b260 SHA512 4bb8c8bbf81f60dfe84db1ce296209b563a99452eac3e23f8547a0396de00b1a152b314ba94ba197b3b2d33b462ace43bf2613daedd5e51d5695709705e9c395 DIST gcc-11.5.0.tar.xz 82399864 BLAKE2B f4a61faad32aac9e9cb553c1a1a011df0a057f6e2cac92a13cc7e285d08191dd4a117f41a8faac2359c0e2a16f954c7fef354dda9df8c63bff1c5cefda82602c SHA512 88f17d5a5e69eeb53aaf0a9bc9daab1c4e501d145b388c5485ebeb2cc36178fbb2d3e49ebef4a8c007a05e88471a06b97cf9b08870478249f77fbfa3d4abd9a8 -DIST gcc-12.4.0-musl-patches-4.tar.xz 4524 BLAKE2B 04a26a9e44b61379caaec7b1f7f002811786a75016fca242b05d9871a51f3350ce4e67f784a7e20d2f8965390a3f01fe5eea3a4c04494d7f8ff1c39e444c0048 SHA512 8f45b0e6da2e30dce01addb4259a0f8002e441019789b45711a6dcb47023c824a89e5f851e816113ef6caa2b491c640006f3fc3a96bc8c6ce9ce7749bf2162a6 -DIST gcc-12.4.0-patches-4.tar.xz 15648 BLAKE2B eec4a40233d396ef4d22901cd06b75a78800531e0c6f3d7d765b0b4ba0bbcf7d966112cfc73289245f209a931432c9d7c276c636c8c19ae79cfbf9b6d4a8fa17 SHA512 fb5d5a0433480dca0752e50448f9d2608c8df8579d9963a31bab15379e14cbc1ff2fcd37da8601b536b219f7b6b4f0364bc2cc8de07cbf468e81aae12910f862 +DIST gcc-12.5.0-musl-patches-1.tar.xz 4460 BLAKE2B ba9635d32e63a18a617fab823fc032d03d3413e9775039a60bfec1e3a28055ba7843197104593b2a17cc1d465b1ef90f3d2dbada6f62845b47980bdb77227686 SHA512 38a13b15bb5640c9d97d9d2c7b6a4a76499a4bb78d1b107d947429cc6a1f57c00d71c34a420eedd34fe850d97a986ab587a946ad314e52310c782783add4e561 +DIST gcc-12.5.0-patches-1.tar.xz 16604 BLAKE2B 9525f38913d043fbf9be57032b2f7d947dd652581cef6fa908461762868d050d0e2d9a85fddfac1110e87549cff70838db465979a726c5478709303f32685501 SHA512 fafd37b7f5f0621cee214c23b7851a51cb6b6e7ef73b04786e95b0ad9a8349e5886a2eb156f8549990fcfc76506cc0eb0b1b3e86d4d132a6b6d97a77850af85f DIST gcc-12.5.0.tar.xz 85897368 BLAKE2B df2f87b407c5572d3590e9868a7597b98bc913669054e517fb2eb9ed82f635df6735a5cab0eab30ebec694e39e552806d837233f0ffe02aa90f5d8b61352c34f SHA512 c76020e4c844b53485502cb8a4e295221c9d37487d66c9f4559031fb14c85de20602e6387310005386cb0ef25e55067d2cfef141423bb445f3b77e7456a23533 DIST gcc-13-20250807.tar.xz 84575936 BLAKE2B cac8022c6c6d31fa1d741589b9a7c7fd60eb5fb9b44921b1be8beec1bed5846f769ecbdbd7950ed4de23de69c553b22944038edd92f0e76dc24154720a21f015 SHA512 2d5b59e2e18c02d49d8adadb3c62a45700016828a3dd170c276bfccebb6d15e05cf494fa523447a38e04e6b963c35467c8fb6a699da7cd39bb319f639cd9bf56 DIST gcc-13-20251016.tar.xz 84569872 BLAKE2B 39d1031bc18809098365cda39402ab6d5fa9b513cb2429e1a5f636f6aaaa1e51c515dda5d2842756fdfa03076f0b00089e929dd21bf1fb9a4ba03a4d31d1488f SHA512 bd8e121441bf448b8faf4f0adea93ee218a67a54646bce18638eec5c51974bda4b3226907e5ed7877f973a5a998cbd083dc27c12a64dfa07aec693da1cb2af55 -DIST gcc-13-20260122.tar.xz 84569448 BLAKE2B 3c9396da0126b92a7679237428e29e799cf26f6304ef06f07436b33ecdddb61f061cd116ed26adc8c30a9bb9b6cb8a577e01344b1f3019e81f7f84ac088f2805 SHA512 03737a75a28f692d4f44c09800ee6ef697fae147f3938faf9b0d8ab86a07b260cb8e896bb92c4e464f4a81cbfc7c93ad36eae1a226ad49d86c0e7caf5d9f12f8 -DIST gcc-13-20260129.tar.xz 84576100 BLAKE2B ff9b6050b657ea160137d4cdf0551f112c9cd26b7f8675d9914f0c935a732b4f2034f4dbc1021f3528f0bc9f0309198814a2bd187677c52dec3604828cd0503a SHA512 07d17b035a9bd8ceb0dfc0c9ac00cd29f18ba51db78e62802da6bdfa504b096f9141d716adbd3551476b739bf61d3afd059ae737c6eced44cd1f636150b253a5 -DIST gcc-13-20260205.tar.xz 84578824 BLAKE2B 889ff4c361b30c7429c1067445a3dd86b60ba2dee87c038a995efa10bd78984ed2f591b912a01f46338f3b0164d99f15cb5ab71dccff6019a8710ccbca791532 SHA512 88da57ec1d2b81438df228d24445026aadb8b9783d88093e769ae567ebecda2303aeddcdbac42ecfd373736bfce17c3c1c6aaba20ecc0b9b22d245a64677eb66 DIST gcc-13-20260212.tar.xz 84576196 BLAKE2B c637df92a9948bd88654509a9e03813daca16aff27909e35e47a7b1cf3a7e9abe07064c6bf2ee8223829a8203b6f7bab365d4cbd620d0a563c5cd9e6a73ba4f8 SHA512 9fdd87433a7b49c6a969dea2b023dabadbdec614b0eac84c5b0c459fd49df1786fb7b595e4015632691400bd6db2c5109db593709a5c0b89ce0b20021b888487 -DIST gcc-13-20260219.tar.xz 84574608 BLAKE2B 72f5f1f292c5cd609ef05089dc9d524ce4a894a28aedbae38aa45369d8691efb2bb6aafc34870b5668634ccabbb68a029049767cae83678153f1cafedb422859 SHA512 037a489177de2fd42463d3993d857c33f3d2f7a78f9213070930f8226820b6546ba6b3a3c8fbfb47f2df4250154ac5f30e79f563b43ff850643bc4b9fc17d4c0 -DIST gcc-13-20260226.tar.xz 84576560 BLAKE2B 02ad5b8bb991f5fcc951eb5d33492dea80747f4193d83d24bc308af54fb5d68a58274160f00ef0abeb731e9b72b2e9cd11312442835766d036bb7c8b203b4953 SHA512 19aa010b674edcf9a54cc2e5669cce6fd08c70b2233f9431d5d7cc89f6638f7a95b7cb9944f7d36ecf2c3c3074c21ecfa78b1b4e79ae0ff3185febaf5b87f0cd -DIST gcc-13-20260305.tar.xz 84579092 BLAKE2B 9141ecd9bc92282e6823ffb389557163912b22122140a6d30c63860e6855fcdd04a8203dc6678bb450467ead4c886c2460a83a5adefa58149e995db6a1eca911 SHA512 c204297cc5bfaf48aaecbcd08868d2fc97cd2813be3ce7e176e0b1074bdc12758bee4c6dec36f7681a2a7ee29daa07b092eec8fd19f02d26a171f5715268202f -DIST gcc-13-20260312.tar.xz 84573676 BLAKE2B e2920ee94fc0e5eeff082bc1c9b5d3d5e100f4d0ed28fe5d8c1fd879bf6b2946559ee7b67c08905d7595caea5b29484e4892c3cf17c43872679ea86d823a02bd SHA512 e273253b89cb3c932e81e3220a42e02b9c2e5212e60c4b6fd1d4bfad1c7377bf65dac641ab7851081a41afb6262c9fd214c38455e902b1dfeb5db83e0fbf7db4 -DIST gcc-13-20260319.tar.xz 84577216 BLAKE2B b4ab5db6772814eaf33e0ff4909e260fd78fd2d8940532655f12637a910450dd0df793c721995b722036f24b4b228c8ab106fc3ba806426ab34d13ea5c2172e0 SHA512 6963d0fa574680493550c49c5651c1899858a6dbbc0313b02149c515bec479933392b456838889170d8dd3e13e27a6320fb40612696854ee31991a4e32e62474 +DIST gcc-13-20260422.tar.xz 84601552 BLAKE2B f5c250c66c70d3dce080a39fe33e6ba2fe8c98c4af4352ff392028feafca0be9631dded1c23a6876d082aa63885f00c433f4aed8a7fb105626bc9dba9565661d SHA512 18edb2ae41b27cf76628da63cc592440da1d92ad54d74e7f5f3a4d6a5e2d6610b43acb2525b2bd135e56bcaac5a6ec1e57495543d3eef8598e7e3c7898ee6988 +DIST gcc-13-20260429.tar.xz 84595480 BLAKE2B 78bfa978b63317208c3a4e8d86ce18adbd0f41a109cbce61609f13360111a68938ccf6f5cef6479f43fe858a40977a77cd1b474a1a756e647f5ae6dce858863a SHA512 02156af19b366e9f417e1f6b2a0d427a653df769ceb04ef8c5cc4bc69a5abbddfafddbfe98132ed21b5c64a990d8fcf24a1dac4898558e24a078fff4addcda94 +DIST gcc-13-20260506.tar.xz 84603572 BLAKE2B 531b9225907acb3304787ca20fdc850b01e508ab592895fd2900e8032c30e2981a46247b78c5beb7b771655e961adf307d25fe326e02ecd30ea01d6598ff3c4b SHA512 192266e22370d350ea353452e0f178310f65eb420bf1c4872e41e8590a2dcf487df3f5eaccbe14e87470070012e13202dc68d408504cf87bbe655cba1054d633 +DIST gcc-13-20260513.tar.xz 84601752 BLAKE2B 2499dece45d95a059fe49c4e21db05736a0b536e88c7ee1e2613b13ab2ff088102acbae886d6eb02eb4254a743dd2c91149c5f78b904701c694eb4edce2c9534 SHA512 2711d17d5f908a9f35d248884cd926efc59af00a53f96b090aaebfdc7900fa1b49ebe998fbc7369b2806fab3f2f6dcbfb5abbf740f60fdeebeda1cc574617c2d +DIST gcc-13-20260520.tar.xz 84606308 BLAKE2B 69b294c4f3f1d292c37a552a05de13687d47d09ac3070e0c2e573a04f2fa0bfa3ee89563241447187db497935e0115bb48f75c607b2443b0a4e4558b8e683df4 SHA512 85c9776ba5dbb144228b7554eec94fac18f68c55b65bbd820f33c931ab7433a5fe8fe8b91354269f0209e3ec2c6f9e733c2a59e04a8e815aaa7645e8d6ad8fb6 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 @@ -26,53 +23,49 @@ DIST gcc-13.3.0-patches-8.tar.xz 57472 BLAKE2B 85976f7313340ce7a2cd9e7fa67e6d69c DIST gcc-13.3.0-patches-9.tar.xz 69080 BLAKE2B 4933533a19c54972b18f91749ea6ac2f9f9963de8ebea1f16bfd7617fdea2e5f1df29b564c090c32ba6c53feee2f1f9107dfcf96e42050fc701f30bfa8a4c606 SHA512 4a8125f5021c5dff526ecd9bebeff7cfa4aa7d6dace23eacbfda54ea5bdc468d17503a0d8072f8561a72c887f8ce294c648fa802210a0d7e04aee8a585968ea3 DIST gcc-14-20250801.tar.xz 88323948 BLAKE2B 1d47af7340faeed133a1d55bed8a788e4a7e0d12741d80a4345053fae1e95aa57ba4a24361c130080539242e5e5a7f2076827fdd3f2be383ad8d739443c3c885 SHA512 4034c9cfc0eb64239fc2149709d2d9d5055cd11ee5ea2284c61ed3d230f812bc1d8899ead339940b579610b65e1939eaf8ec05a2e26a50cb2c2c5a802a3437ff DIST gcc-14-20251017.tar.xz 88341316 BLAKE2B cbf51aa6784652c90c58766a5f1baadb3395632b708988d7bc6043e2b943536acc5446d0463cee6192aaf026c5f93de09d9366bb3fe6d8134ab098c08b660552 SHA512 7b3385a7143003386df9c4794f2e1b0c79c8a5bccbc29a0e6a897d7028f51ac1e5c71796c0f0caaa3555acf427c8e6e0eccbd68d51512c4d6b5f6eafdc14a02b -DIST gcc-14-20260123.tar.xz 88332388 BLAKE2B 9c0f3c630a8663e1411f67c8eddb3f0c2d73d3271b265c6bbbf20cb2221a1e49a9fbe01a606e1b07da1c234d68c259ee8b6b3c8505ff5368d91459f80bef3e60 SHA512 b7fc32d691785c7a82f1252c480d69bf5da0ccb5d0e974d18564e12f2e56a8ab36f3169af1513491ee9d70f088b488283db8a5773f754decec2f04cbdb53329c -DIST gcc-14-20260130.tar.xz 88361580 BLAKE2B 7d43b0ed00b0777f786658854ea667eda34c0f57f0050cab6801e1065761fd0455ceb78ebfdff0e0193638209d89bc11a094a92b14a32c89915cf2f3543ceb0b SHA512 9b2c9866bdc8c4b8b3978e9632fcc818f4c8514382e6c9a8d079b08760a2c4edcf38525d1c2dcf9f4cf412660ed8ebe0e228a76ab53977fc4b2d251849aecd16 -DIST gcc-14-20260206.tar.xz 88365888 BLAKE2B 8ab03dea6ef6f20bffb15198a327fc686a031b453447d1369c7e98f4b6ed9bbf8e68d31bf069b1856b2371036251672c5139b81715857caca03324c0c073e58b SHA512 a3907239e6e695f94ed84ac7f166ea7b9beb1c900b94e0ecd27bea391fd904c7487fad8004136d4296937b757816fa0f9089d3933c8748b67e98eb1a404bd975 DIST gcc-14-20260213.tar.xz 88372424 BLAKE2B 7831805a232eb732cba36853849a2b3e7dfc8911a4944ac25e3baea08ed6282b7850a62acd6d13877e23b44f8744e684753c1cb08d2957434a1a602843ad4db2 SHA512 0957d2b63269f43abc59538021b59bfa9971188eb194d2de2ebd50726ee19aa0f2903652d0ed20e240d5df77c308f19365f7c55351b8c35c3f91a3da5d0d73d7 -DIST gcc-14-20260220.tar.xz 88374408 BLAKE2B e06578c3e17aded587bc857b67229a49b7dc9070b8989f440f1861fbf88b466e603e5398b467f1f88a2fd990d7cb6cd3533fac47c95d53b7a1baa7bbdf712048 SHA512 a9080da674d31bb7b29685c49c4b0546ce8fe1a2bec607f50a3a94ead1ad4ac2015f0ae5510ce5ceb0c2ad089745ca0f55905bc36b087fe09f87c9471021e418 -DIST gcc-14-20260227.tar.xz 88377520 BLAKE2B 1b542572649e0200934ddb2ee096f1ef4b06e12a86b12a98991f3e4cc8738659a2b02f4b6d77afd70064d59f731a4e6400c51e764598aa0facdd028ee1e9be0a SHA512 fac95c7f487463af7508f5ed6504a0d72f2a507d679dd4f3f10c827f2d0095e9743feabf410376a1995e0387d1e51939f112253ea0ff02c114731dd2bcd5d372 -DIST gcc-14-20260306.tar.xz 88371144 BLAKE2B 88708d5bc8102cda936f22b00e8710d01e93bf38fc482cdcedd623fbf145697ca3aaecfb2a3238b9f40aaa5b8934a1747699fca1d2af27365bbe2c823c0e9420 SHA512 c0c36b9c02127fa246aea0aa86a20eb843505236646b47524f8eeac06bb210da05f94f6e52f4337b7bf384a776f5ca8adf65adb8f2604ed22a7b626fd7ca7c6c -DIST gcc-14-20260313.tar.xz 88375016 BLAKE2B 411849b4ec7a1b9f1abdb74d2c8659017285e0e1f33f290782d3977e6abe57ca3bc967415cd641baab945348494dfd811477a191d0211db0f404581dde9f7484 SHA512 13e6a5f85ee42f6f3361d2b0b1a9d85915564b1a12f6c735cdee7d15a5a7ccf60da7bd967e6c91e16fbdd4a711d25cb4b97a7441e75444da722818c85be523b3 -DIST gcc-14-20260320.tar.xz 88412768 BLAKE2B 631f571de4e80b8af48f140a610872855f0855186b0567152d726e489f834243b0159d7e27ef37a1726775bea57e87601860639a4afdf4f31a2b5153c0be2fdd SHA512 b8e2d4c492c14d6cbe693dc4e1622812623c6a102d3e6e2834e88c2e8aa0dbce874967d6b93f1e69df9f493dde309a941cda08bbd09d3e506967c5bebdd019a4 +DIST gcc-14-20260423.tar.xz 88441200 BLAKE2B cc62c52587e1394fc429a48c8638c1a1b709aeb4f26cc419bf38d90d8bd0eb29f44e6630b96a8f4a5d0d30d379fa241126913b46040ef20d4ecce2c58291fc43 SHA512 5057c007502afce1be02770402ce84834e7b219203329a2ae6ff012261b70d7f290f82b91a7b01cec318fc8f36a60c131cf2d05764db00865aca1a1a7e1893ce +DIST gcc-14-20260430.tar.xz 88451772 BLAKE2B aaff1f443acfaca57b7808a43e1728b0ccc16d0be80300bad638733b0daf966fa83a7a98e53bd4cef075356bcb2edba22cee7c4b86c52ba2dbc8b0362cbf2430 SHA512 6547ffe56a41acf388bf205128048f2660dc0c22328782deff5a7a1225073011db4ef6a405b7e6b6d1cc225e87ccdcbf339e68b4118e95e49075b50ee7b77493 +DIST gcc-14-20260507.tar.xz 88459308 BLAKE2B 6715e7f36ed651752640ce16c427f3cc2d3eeef5913a75721071ea84b503673d0703a9613313a34ce9caf6bdafffe83c5c8e99ba97deb2e463254ef787adce23 SHA512 ba88c20dc982e1d16dc08e4a85ad5eb34cb8747330de1beb2b09709cf1409697a58d7c90250bbe0a364a25235a2de36e10203f10dd6ad79c53b9ec994411cb2b +DIST gcc-14-20260514.tar.xz 88462504 BLAKE2B e03286c86d2537dd172ba4f7e611ff69f8830fb323a3c2186070b1a1cf3f989e36c35ccdc4a884550093b14066e7cc2fb2663729a4ad472b380b5e4e1a881d3b SHA512 9ad4e8541fdaf02d7160cd7b1454f4765c3d2a10051a380bb6a9e110f83ee86661693b7b534fbd6d5fa9cb9e72e80db6e17f351177c1cd550d3ab854fea0754e +DIST gcc-14-20260521.tar.xz 88467356 BLAKE2B 049527a1d6770cc85c3e75da1b0299d7494560c9b631b03028aaaff887f926b60b8107deeadb470e08001dfc59b21197792ae5ce1877ad71af45b688a8be5405 SHA512 3c353ca786b36c996ad480f151815bfed5aae2811504091bc2cc88d73556faabdad447ffd0ae7ff3e5ec5654af4ad1be6a06163c40d5a26d641ab546174c8178 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-patches-5.tar.xz 53952 BLAKE2B 3e5f63d760caf3c18c0f683c00170bb71998b4f0e15552103359d5c0954144676f6ca60e3e367a94cbdff0ab9bec21f3e04e30c38aae8f7e79911da30e6aeb76 SHA512 1702b7f6ee791468d02fcb9d418d2dd48e10cd6dc6eab0cf455aaf848bb78d953b00690fd78cab1ddd5af02acc237072c99ee43f0e512ae3e2e5f922f40f0dfe DIST gcc-14.3.0-patches-6.tar.xz 28148 BLAKE2B ba80a00289da26d3b5a813a9878aae6b34640e5cf8f37431ef846894087096dc84869e120ed17f23062bd2702a8059d73ead3ba28115e9c3bad55f46e7f474ee SHA512 7ee900f327bd92484ffba03ff80827b42ffba75d7527e26e09ea07e6d61622d812e1a00f77f3d669d7bde0366bab43085552d6140b28bc319edab9eb0e9a73f5 DIST gcc-15-20251108.tar.xz 92349104 BLAKE2B 40c890e2d61dd02f20a190c8d82175a1df271bd77a1d7cf1bae296ca47941cd43f672ada0fed0c8b27a65d469aedefd0fccd9282418f28feebff29f0b940ef1a SHA512 cc12ff495ba08d37e719278aac7bd526f53609d6cce1f4b45183ff336b78e26eb97967fe5405f791528d0913378084ad6c596e246a5a85b550b84051e5b3974b -DIST gcc-15-20251115.tar.xz 92358784 BLAKE2B 8dcf640bd61c0e2379df666bdf9afb6a43492ac5aeb1023dc322b136dff7831166931a6953ac5b883fed45efa855740013e385cd478d0449f61eb8ff7ad296b0 SHA512 fc609f058a6683d6e0496d48ff4240e4f871b378ce1765844c56c5ac96cac04c556f3418b1e1b03a615a0b968c1e92ecfc3e4310e93a654327a718d00672fd14 DIST gcc-15-20251122.tar.xz 92364288 BLAKE2B 6c7795992430e3a650f43033b135613c5cd56e4b6e4ff5b121f665dba47c038b4ccc339c50b3e3367e2f6436f5a7cf761bca1cd13dc3d42a50b1f1105b8b1c3c SHA512 0534c9ea6c2684e01d93b32301ed11df4a716637e0d68fae4659730dbfc5e23f3e28c41a6b86b25c1bf8b97816b076abcd24f5c2841516031dbc4473bdf28797 -DIST gcc-15-20260124.tar.xz 92362060 BLAKE2B c25f87e6b2a09be9754619591de8474977b9f20eaf67b437ff898f15a767abd0874ad744cb7302b4632bc0d6fb993e4500e79398e0ccb2380d0ba704b27d5fb9 SHA512 ffa0bb1e67e774189ec958c0833413bc6b3f25bc344b893557d4ba612884aa1640e9c4f8cbdae92dc4a279cbfc40866d9fe059be46e926c8aa06cc1f28733391 -DIST gcc-15-20260131.tar.xz 92355456 BLAKE2B 1bbe4432d9a42fc19054ea86ca4229328af84160f63ce177b58c8f408ab900208e901dce49bcb43f84db527a98fa5adfe58493c8f1f364052201d9f751c17dd3 SHA512 8442303102be9dec71659c47b1ce0f214483caaf83109a9795ff3b1a375062d41e04cebe5615104f1cb10dc29cce556a6ba9e1707876e137aee5b6808d8c8fc6 -DIST gcc-15-20260207.tar.xz 92363192 BLAKE2B 8914359de9f39731cde87efe28b59256f09665e822cf69308a704759eba520cad61313a72637995358549a2d4f08d60a6fe9d5ce93b686a95e9d1cfe28b635df SHA512 0092448f65a1510606a3ddbd4a6ca123f2ea269e7ca05b33fe562968d6289dac9523930937820e94b05f61964ff19fac8e11c45659175d686ebc5e62d6952c9e DIST gcc-15-20260214.tar.xz 92376288 BLAKE2B 36aad1794fa23574501dc27b4ce88cce9aed13f6ee93f9797bd058388d68da1b3f93f5fa4b5dd2f02d99556e15ed1f92e9c6cfa45c9ecba2f9c3130c5ac4afff SHA512 e610aa9142e58ab59b32f7a83f62cf629ce08b41e1fe41ef56cbad72240c0d10dc1e784bb6e34962a03e271d0d8ca6ae95ca67886fa9f229668ad7e514dbc357 -DIST gcc-15-20260221.tar.xz 92364832 BLAKE2B 899d0963c0b688fd8249cf9201b003e08b24f67ec397b0d29df24a972313560954c146d2eacb01ed894df1932091c8e1d77508d16c692dca71949263e6c10a11 SHA512 01485ac36fca7df2f132db7468158532ff8083d9227c1d57582b65047932e8202ab3ac1caf2c2bdedad58bcd31a6568217f51d3492e461ee7415b8e6506aa77d -DIST gcc-15-20260228.tar.xz 92382472 BLAKE2B e1f0aa167133e634248e940b8bd4e0b05d032b9fed03e6540d1497e3fa33f74a67e70fa22586a781e9305b99fe42bab60af694caba30de7277ef869a49640f0f SHA512 051918fd499be7ac77e3281e655f444ddb3e2e825ae3d895d56db3440b9ab67d374899fd52699adbd036458c5701b9dfa36806fa019b6bbf762de818432343b2 -DIST gcc-15-20260307.tar.xz 92385576 BLAKE2B 8bedda7ff2cc8f75af831ff5ba36be1db1191cf18974a7f61961519188281053034b5eca74ee8b231a4c268303f3e7c89cea103c92e6ba550f17ba812d5d20a0 SHA512 8e0eefcb2c4cdaf266f4b2355784ae79d0c11881a0136b703113641663c76e74db2c3afdad7600ee08a909d28019e7ef4916298b2fd0ae7a0eff20c22574b989 -DIST gcc-15-20260314.tar.xz 92390324 BLAKE2B e97d9b5dc1950f8cf361263aea27171bee6c61c5c4aad71666c66df321216edf09887322be93b5f8fda66c201d5833de944fba47f7a05a1150df3095431027c6 SHA512 366ac7e7248d60e34a807533333d8f0367d292658c1eb4a28fe0b3dce797feff8625da5358556298e27d42133f7592786449dad9ddf308435a75f4904996d18a -DIST gcc-15-20260321.tar.xz 92394228 BLAKE2B e9a2d93ff9a8c6de0658781728e32bdd07ec4d708109fc5357aca16e59a517a7defaebfa0d6634fdeaa7486902fc6011cefb92f94a39f3006f774b793dbe0e7a SHA512 e1ebe4f837df49aea4476c1db47ee444620d07cc8e71f0916b9b84022101b031a0b31c5e36e6836f3c231bf83e11b53eba9d14f512e3166cf61f5f707c054aea +DIST gcc-15-20260424.tar.xz 92415724 BLAKE2B abdbe0ac51bfe436b9f126e4e641bdf1e457ac8c2998822410f523f79c4537bff0d1f15e32464d62babbcbb6b59d3172ea8ff48c6bc3d0881ac03e2dfc818570 SHA512 a952390a357fcd5cd8054bb4cadf9b699f94a985467c77709b20c8d71a76fd6eab8722f1d222f3ed935e00fd33dae93bc559d6270f8bb1a739ddf3bc29a82205 +DIST gcc-15-20260501.tar.xz 92426968 BLAKE2B f8cd3cb703f5d5a945e62b8d888200f498bf9fd16fda0b9154c442f159441a53b94003a5af78b3b1360fafe71799b838c6034198b981a2dee3a833885cc05575 SHA512 c3f01e7777c30281c1c930503ec0f856b5250394818afd6ae8d0c22c8239ab357e9e3b3c62855878f9705b1a58a53d53d5ea0829c429bc13d576ed5b7e4244ff +DIST gcc-15-20260508.tar.xz 92425260 BLAKE2B ef33a59d1b31c4476ae5663b88ef3f1e2b65311cc0e06723c2719308a52c18d6d02d2d294940dc19569c1069f16e73ad190d2518980c5eac012a69797a00b496 SHA512 b41cc456b1a1096da8490ce051834cc81b18fac4b8ac5fc9fa8d7cce69fc8da1b97bf682d1d56ed587f0560e508ed72e2f474c801daabd23b9293b6f164d10f4 +DIST gcc-15-20260515.tar.xz 92432788 BLAKE2B 53d8d3d650a82c5876bd27c0239aa3236d6885f2e5042450bd9075c660b1048c5b6bf4bdd0e3911f9538875fdb6f6ad9dd0d28ff2e62172e0ba4b939a7bb3012 SHA512 b77293c516e1978643c55b34d4e7f80fb1561236baa82c006676dbf13f76c4ec007aca7062a2d73bed54af977550328f01907a67b3302c4f0deab59afde9a00f +DIST gcc-15-20260522.tar.xz 92439160 BLAKE2B d585f05f369d10f93050db58ccbc068979e773ab7456a9e1f93f9ca77d800c5bdfa8083391b037496b537e44dc7debf9606f205afe7b50e62a6f000483f1edd5 SHA512 b1d0ba28a8d17dbb112c05b46c0b1e6eae97ca496ad4440fc9145b5a320d6fa76f80e83da5feeb9e02e1af2d56bb56bf419c5159df2cf5da28d1bc14fe1f027f DIST gcc-15.2.0-musl-patches-1.tar.xz 7168 BLAKE2B 6b7cfb123c3a691693240db815e6852a1e6c3820baa499368c463e0a0c1490c701053cfea10bf1d33f89dd2ba7bbddf63c4e6e0976590e3aaf1fee78b9282079 SHA512 ab80ffd69b9ead1fe06a9433faaa97ae53947d214999e77ea363fa6435de080d031a1aa6869e1dc088e800317952f2dc249a9e872113db56fb76f0a432240871 DIST gcc-15.2.0-patches-2.tar.xz 18708 BLAKE2B 09c54bd1b8436e12a3da1c3ee41017cd3e960268a5d4637252152b44a4cc93934d4dc93eff842d7dcee4d1688b7f2d98be48114ef5c864793242177f7549c933 SHA512 f11cfafe00f7d18e05a316bd1dc522477cc4118fdd65019cf85bca674ff0180951506fef84ce0b5b13190ccfe44c777a64afdc602a4580595005b43b79ae7411 -DIST gcc-15.2.0-patches-3.tar.xz 17436 BLAKE2B ae72e3c5feb7b96c10eb0706efe95047f0516a66ec19488ad7281dd4c62d4c6f1d1d594c6a865c808293b30b4f57ee8bc018b90fcf5944ccb935bc391752aa74 SHA512 4d23fd0dacc33c069528ef0bd6ece3029a4b221e55c82347c2df8a6fa8b890c6e7eeaf15284204a4a29841678b033af2272481bde6fca8ebcc08f8c233f4e7e3 DIST gcc-15.2.0-patches-4.tar.xz 19912 BLAKE2B 255d6435fe5b205d23d04eb885c55b421b1e6ffc30623fad5fe8a4cee5582f210e9851165b0976629d7e49288366a14635acdf1ad70f6d2fe288bdf88a9416a5 SHA512 f36c0a1e8abbb25cebfd93965950c072f33d8dbbc0be285e8e374a3602fe7e7cae3dfe44f24856d2231bcbfb40fe0c1de3b629e2f573d97f82212a7acf52ccc8 DIST gcc-15.2.0-patches-5.tar.xz 17460 BLAKE2B 66a813306de7b83da88fd293536f7795fd85c1d9dc5e442c64ab7f9098a7bc3aa4eb1eb27ef16f2fe6f14e3da12ded92a7b3e8aa9cdb449753e31d3546f0907c SHA512 68748f853a9ea7ee50c957c3f31c61ac52235b952f8ecb4dee35ac6f0563c088a733041468961d83ec0a27d5ad3a88c85d38513cbd6a365f38abfa48976387bc -DIST gcc-16-20260125.tar.xz 98189184 BLAKE2B a1517fccfc6aeb1347fedc8e06f6736782e15b1133ff1f8282151287c0034535878f38275947743063c1b10f6651feff4a27d559ea10c3776c34b62ff0697736 SHA512 70bd49813f73736df5192c7e042163149a18baa04eccb5434486a1ec6bc0e8a965ad40fcbff40067155ad0f26d0764fcaf0a3bf102748cb6db03cad16c79ff8a -DIST gcc-16-20260201.tar.xz 98286008 BLAKE2B b6c444dc09e5e0dd7514dc43d7a11730a4f529553b7d411fbdf8ff2617a5259dd284d6cb60af938c8a71981ee0585220f75ef3536ba2a30bc6b81237ad582a33 SHA512 569de9c2fb6836770b4fe4ca3bfcac694fcee0463bb0d2e29433796598f9980134e45fa7c7f0a900b03094a9a9b01c119aa88c55eafdacfcdd661c8f475acb94 -DIST gcc-16-20260208.tar.xz 98344104 BLAKE2B 55968c9e137bab67ffed776a1ce9981ffc096c2b4e9337535ba8e0c3ad696120b0dc49f44daaae56365e43a252ea759d1ed79cb9eafab4860f7cb0ceb2aedb4e SHA512 9aebcaa4d5068d3d1c063756cc405b324350a151073f8e3fcb483be1c06eec95f8f971f5dcab9b1b77918f468c0991f6fc3d6767b960b469ab5a2fcc85c519c5 -DIST gcc-16-20260215.tar.xz 98388052 BLAKE2B 924334293d0628a7457cda91aa46f5a3fa9c0d49915c497391efd1758a079ee9e1e210efe1514d526181a74d99c78f5bb9f074350136c03aa921fe41f17d6d59 SHA512 c2e7395d07f06f27a8e588b2f96dcb6630b1ac47aab0ab1ab6ee7055ec34661b4f0e17c7184e9fc0273765475829d652108f7f7c53c08f1b5f780e7df23809d0 -DIST gcc-16-20260222.tar.xz 98490280 BLAKE2B a78546fe74ff97593cfc0e4c35d8bd67faa21fe2853918578f48b3e53170a295c6a98db0e5c1c252fe38b786bc35af5e7aa2db2f5ce39145025a31f298ff5834 SHA512 3dc5bbcb2ecbc0fa0262bbfeb8af75e5c90c3935bca825055d984e8cda87b31b03b16949eb2a3a88b3f89996302d9fd2b624fab6cdeea5b3e4a1f40c280a68ee -DIST gcc-16-20260301.tar.xz 98581536 BLAKE2B ab779e3c30965b182c13a7f25388f19b757cb071420d6ec17e1dbdc0364645f48d225a60c3f14f02e1d19b769b2741a46a4ffadbcf207b28a61a1e8238b5263f SHA512 3a9bb3d41793e780adf704690ae4d60345b504f6b19ee4c545b68f8df0ab1afce07046a7f90ac11710de87762d710bbf6d652f53bb3bbd4eef0db20db25c5acc -DIST gcc-16-20260308.tar.xz 98605400 BLAKE2B 757a6ddc67f21f733e0469bf0c8832281fd5457b93ec436812b8dab7d3e74c79482e7dc526a9d76fcfd819c4a42b5fce3c71fb36b278cf11e6cc87610f2229ac SHA512 2b4644dd3f225ed89d14eff1436a1d7977b7f39c55683bf789a7afe74ef2e699aa2ac25934ca5f3474397ff6d50fa5debfe46a56d47cb622f8d88ecb010d95d0 -DIST gcc-16-20260315.tar.xz 98655696 BLAKE2B 7e436e7cd4d4c8c34f58bf63030c4db5f1ae0097c43992d2d95357c29af00dd8fe2c462f09ba6f3dd2fcbaa397d5155ff9852d60984fd4710a5f8982fce092e5 SHA512 bc3205eb33455c0d171f9fe3c9babc02485e5c04f6502d5a056f7e3d7aac051a6a2e5ea104322d172e1129dc823ab664214a145cca82103fff5d461c932d5f00 -DIST gcc-16-20260322.tar.xz 98722428 BLAKE2B cb7b23a377d59304b1540c054e0abeb3239e7e9ded369b46ec903b54f6d7c353ee7e6d76c858e86fde0945fb120a3016a632339eb4e444c411e024ae822c2373 SHA512 cb090529657a776d6312390640a9ea310d621d721fb35b7ee38d1f10fc121c9a9b3bd437e5a0ff951e3a74b93c5fdf7a2493f04d6f1282534ae95592ad5859fd -DIST gcc-16.0.0-musl-patches-1.tar.xz 3040 BLAKE2B 18b16357699780eb470cf44a10710281955140103198e0bd55b75e1efe3dbec233689edb11e1b9a62f782f3d97293af4906c18c2c41613b422eda085ee819467 SHA512 5ba580c7c7bb9e62935a5162d44d357cc31185a113acff7498ed7b1ac43fd0a35de7c3de0c87f02fe0be46b5e55b49bb35d1f5cd470058d21a9ea4096a37e13d -DIST gcc-16.0.0-patches-34.tar.xz 27964 BLAKE2B 69cb42657f2e52c8d54c98023261a2deb811d1dc7a63064eaf24936ea10ef6826350339f2273b9bb276959d10c8e819fcb671de9d96e16ce5ce6f1c8dd4071c5 SHA512 16ab66ed14083a5c00e28d2f8ae06319a6187049fbf0cea0929f0c80acb647801bc08dc7621472d9d639b763311dce586f81e6a8bb0c13a1fe796a9036a325e4 -DIST gcc-16.0.0-patches-35.tar.xz 25940 BLAKE2B e6a7f7e550a83a706914a46d9226690e0fc8c130492f1c0c6e000a3bcfbcc28cab07437d6e0cbbfc9f511e9130f49272096bf1335e5e9bdbe9aa5812ca99ba42 SHA512 70f8128e24a5fcff4cafcddf2847bd439cf445359cf37d908749133ae0f69d6da18bfc6a8de9bc968963eec86f3eec9684df2db5eb66fe25717a4ed8b2533f4e -DIST gcc-16.0.0-patches-36.tar.xz 26860 BLAKE2B 87387001fa68c9d1007cc257168a5c2c3fae9151852a9eac74b1a184f554f8b5686f433efc5a676248a5e650bde4a3c74789ea8103d531ca0b8766fbbec23c98 SHA512 5b1feb07491375e4d343af625f1e6cdfd5797d7a7527885fb744880271eb0906ada69e823508454a44ca11b7715c339f2c2349b953e996f9f5170e4113810d17 -DIST gcc-16.0.0-patches-37.tar.xz 25552 BLAKE2B 6fcd16c4d3e40ebb61bd371b1e234e3ccae4f869501b2affd3c705a385f0cfe6390ead5fb212e43999c62177d15149c1737ae32321d034eac8db7601458400bd SHA512 857ed03394b9222d46a4d908167a77b8ff5e0ebdce7eddaeb9eb73666c6f227d8074d4d1afb0bd5fdcdcd44ff9c99c27aba8ef27bbba0d91b7a6a459bb60739a -DIST gcc-16.0.0-patches-38.tar.xz 26208 BLAKE2B a2d717e2eca757bc8e2cf8eed7c03c7022847f7a8100555c098b447035cf802eba3aa5f3ea042a1464b8225368e8019ba30f486a1307b5050befb7bcb7f9678e SHA512 967bf16a72dd45bde5cc059a4a6a51453d1a039edfaf8634f8f631e33d0395f933a0fdc48406fd82dd824b221389d776ed0301d0d0a0db8dfe94dcde18feaa46 -DIST gcc-16.0.0-patches-39.tar.xz 27360 BLAKE2B 33680cf4e1cd74c772d93d923d5500fd3ca5cbcc78c04e91c4ce996416c493f85a3e8d9cb9e61df56142485083c532321d8b0642930c5af3dadd7b18a836c41d SHA512 4c996fe13f6717645f953682c898bd464b094a6bf9a34464f51b39deeae7411f11d8eaa6e1d2d7c2ebb44c88bd7f01e161a9ba490e721a2b93decbe0dabda396 -DIST gcc-16.0.0-patches-40.tar.xz 25804 BLAKE2B 47e38b02d021bad1c403950d1f0a0ee1f82eee3b9638842a00343f53e0a232bda67d7b709c97941c233f229a16fff38c07256e2156d2a138527027bf06738f9d SHA512 908d250583089b43603c52e511ad722ca6d0a42d101c14e2fccaa01184c3d12bd01c703daf39e100d6914f0554422c577a8f0b4f04d634515675b74d1d9b143d +DIST gcc-15.2.0-patches-6.tar.xz 18324 BLAKE2B 876697050a872133d4deac7005c65c1dcc2ec8f153f4c3455dfd26758ad2ff8e8e860e0b27d224110caa9160bb05376cde147013cca2ed3d2009c64295add557 SHA512 cfe83511b9e212e0201c8b2ff2cbc1fad4344300d6e80018cbb17c5d1720ba67c7c253d8c739c4359c69a96b7594fca0dbc8de324ef213b263dbeeacdda1d105 +DIST gcc-15.2.0-patches-7.tar.xz 18396 BLAKE2B 2874678100433d899646a29d6b985fa48f0a19a73036103f8047c252bc1dd3f1df0d5c09bf1f97adfb2866c34a8e7ca6977909b5b4551b67a38eb45bf66afa95 SHA512 92a7579a134857e3bf3feae33c7dfdfe269f58dbe0013860a0249c0b26052b34ff92cb7cb23bb99719a4eaa6f52385f33e80f4abc2a49ab9cef2f3363352cbca +DIST gcc-15.2.0-patches-8.tar.xz 17584 BLAKE2B e35d85b993fc2ad86924158cac893a815f70332335ed02d970bcdf89c1ceafc2972576bcd85b4912e6ada91bdd80e8f10cbc6be798c804438368bae60abe2731 SHA512 6440a792320037b746ba405469773b96c1d4272c5248ae3808e6d8a2d576564c0f52889a6f88c3271233c8c2fe7ecb974d31ced2141f16f2c5ca68b9e47ace8c +DIST gcc-16-20260502.tar.xz 98912088 BLAKE2B d4b953ef6606fa8d3b69d474eb3c223809924869b9c562d39ad37759fa00468885b06a707b1479e38b15cbd8ca13dd8cc27b65ffceb53dd41b78cadf35ea3b6d SHA512 6beb4f6c7169c87ebc4a51c268b8c7fcbb07e96edfc674fc72afdc3dd605b4e44c05b2fdfc86963ffeb8346a64973630e456bdc91d0a5b42a11144cb2dbe2d18 +DIST gcc-16-20260509.tar.xz 98914656 BLAKE2B c7a6087ba990f50cab066c006f7c55c5249b01e162f066ada3f9dd92bc3adaa85af2d5f2baa197dc7ea454aa4af411cfccd3d22e526dd24e27af77cdbbc920a6 SHA512 01c948f971687e2a5531b53f216dbf29c39634705f2e1c569e65c6b6e25691c4cfc45f84af8d71dcdafd4d4f909e3f8791d35b16064185a4d33da489e30bc088 +DIST gcc-16-20260516.tar.xz 98915364 BLAKE2B 6515ec0d002d169972aa583209cd816658a33b8bdad2ded7edfbe28d19b1c51d93090ce43469d909894a29e628371be04eddb611c9264013e3bc754f807d756a SHA512 bf1677cc3576e9a1bde36b48d8f21d85df328c28e3b912d37ad5ece56fafa4aca56d82cd0487e1f8e8162c9edb28cd12e5025c040b7d8f46948b3d2de3c30bcd +DIST gcc-16-20260523.tar.xz 98921832 BLAKE2B 04c6e5639a27f61913ba7771d54c6d581af637838d6ff667297ff98870c1f262bf9f15a9c885cd22139a2c0182a5d7343612c1113b4992acef9814e3fccb54e3 SHA512 311f073a51c71b5cf49f8a7012371203e1669d9e1e7cb63ba8879662b130e88f24a87827669d96fa6caa224861acf82ed728be547af9296920dbca30498630d7 +DIST gcc-16.1.0-musl-patches-1.tar.xz 3036 BLAKE2B 9f1fd288c22d61883d579b7d198ca5497ae9d18a8d85208ce9cfa14b2799ebd012ab17a0a4443ba1d899339c2ee217c907fc8a78e2a19022bfaffbe32c513aa4 SHA512 d362915d57b8f6b1dd0dfa879d7a4f31b50465ff65281a0bf961936ea08bed23d9e1c827f8079c1c9e18191f22aa61494add36fb58763bed934f19ca53767a2a +DIST gcc-16.1.0-patches-1.tar.xz 25128 BLAKE2B 487f8e1f204b8218ae54ef093fd3b99dd94a24e0fdc22ac37182b28e382e5601edc85e9af5c8374e76a576c8e8280cb84603e6f60bfb645a2adff5ee8e2e0070 SHA512 f5b4aefa101cef70c6bd78c689e90b0a30db14718ae2ff01827fe13af793f812616f16cc705fa333676f31025f3e840e243ef52851d32278b86d8b515589a2d9 +DIST gcc-16.1.0-patches-2.tar.xz 26584 BLAKE2B 3597414aa1bedace5444834778bb666fc3372f3703975d5bc4656a792dbe498a76be582254bb3400f157cfcce2925c117d19595380fa2ffb6dab1e6f0d36ad57 SHA512 480a457b8944df5dd189c912d76457d650c348bce161465fd6031dd7c2803f8f9b26ef31b4ae8a8770c88eaa9c59a42c06ee1be3e1c8ec718974dda8b38a84ad +DIST gcc-16.1.0.tar.xz 102456900 BLAKE2B ceb07866b6b17eb4c69a6b51241b275bc5ec506603a7c1a4c1e2585091a09fc647be945beeff76700bffd9018bda81b072d84f909fd7998baa0cfe3f0eb550b4 SHA512 b3454958891ab47e1e5b6cb9396c0ad3b04f32fe2a7bf1153a143f21013fdb6b295ca94c98964698a688e4c1d7555ffd8ffbc20187507cce6b1c32cbcc09897a +DIST gcc-17-20260426.tar.xz 98950460 BLAKE2B 05e078c2e71ae5877172d1940ca150e4bfccda156acab2594f8794cef99e25d161965c32827c7f720ffd193d25e41d31632dc36920f4fcece8a66b01eb136184 SHA512 a51cdd6ab718c545aa6a85594f4d92defdf87eee914f37c5556cbdbaae52c1683b8a106c0d22eb3ba4b5f1a1ebddcf5c9d9a3182f6c71b796b95276cf7c7cf41 +DIST gcc-17-20260503.tar.xz 98970580 BLAKE2B 5b2046d78d8519fa0e29e61731bfba80c1a3108e8b981afa2c98362bcb5a525113c3fa3b168c8244e3dc65f99c5f445b675fc2de1c51039ed994667f88e73449 SHA512 18c1257fe9012c43a3d6121a9cc1244fb0b42b3951a136e34a58741e4aa71a9ed0c11014ca3e5ccc1cc81c22eb07bf134b25c072a7da470238306d3d36d6dcb2 +DIST gcc-17-20260510.tar.xz 98978656 BLAKE2B e5b26081251772e47819c7848c834a2b1e3ad3421bac0e407b7abe6d30635c394c49a04f845b53622b2833e5941b853e2985a395c50152b9aa076aacbf0da278 SHA512 79748b2df412adfe5578a24d4698a17cd505d532b520b2bad0fde1cf8d21b7593958f565de289d301fa322002edc1a506b19076c84c65e3f1afd65d1d3c96f2b +DIST gcc-17-20260517.tar.xz 99029888 BLAKE2B 461d73eae5752ddc56beb0aa1b765c355bf52779780af6944f4505b85d687b7ecf94cb805279f0e20368a25d74cb850b285ba4bd8c3b9940d97a4ffbfa7196a2 SHA512 43da20698110c50207307bef89518e0225b090615a80fa4def0f17d26b9ae94c5f70cf05299d8517710065b91daf6f61ee433637671ae2971ee82feab12517b9 +DIST gcc-17-20260524.tar.xz 99113748 BLAKE2B ecb39c8dd44292f280457f3940cfb8e522f394593db4f760f9e7e26889f6b5344a559169e37abd910c6179584645183faf98cd8df7a7cb02379b125c91ab3aeb SHA512 587f92bfe5c601297e47f6b5bafdc75dfec0d0221c5a0096e458f3efbf5386bb10631992ac292462e95500470319f4a406eeefab4387789d8e98ad32281d9e30 +DIST gcc-17.0.0-musl-patches-1.tar.xz 3040 BLAKE2B cc39906facd9c395bae9f87c67124066b8081521df39857d752f1e398dca5113240d24a836ca0f793313f954d6c38ff39961bf71a8036a1d5bc62751e71eb7c9 SHA512 4e330ee1c87229ba30644ad7a6841683aba368ce00585b5a7af433f215e248534a8d81f6f95fcf7b348c7d9aeaf1eeae015d76601e3d918a0ca39d94ed7e521c +DIST gcc-17.0.0-patches-1.tar.xz 25196 BLAKE2B 7db76cfcc56556489c5c0698bad9d8f8f41d57f81ee439c7dc57add47858226fc37e8818e1644be69eff7322d4823b28571784dc0166624c866868b92c9f6e42 SHA512 9349836f0578d121b2b824c91f6ec18e5df3c4fc811f9b5e118e0ee957f9983cb2ff3b8b254b5dd912b5b1113259a3e2ac5e7b06c7c121ba9ca964c89a73bfa0 +DIST gcc-17.0.0-patches-2.tar.xz 25148 BLAKE2B 0d1358c7cca8ed3779d0b618160fa31105dd1a84f0b84f351edaf0095e5e72cc59e204b70f843a7c327c4ea8a243c2ddfddfefc61ce1b1bc6275855cf84f4abc SHA512 80bc3b6369a602b4705f8ae658962c5ab23e3e93bcb91fa551ca9e180e3a8cdea534190d21702313a4bf8bbdbf26c6984eee53ee3c5a346ce4cee549b376f1ca +DIST gcc-17.0.0-patches-3.tar.xz 27364 BLAKE2B e7c039dbfb942f5f61b7faed8cd0fd31d52ae27ba256da98722eea8af5d692702faf1419e79d7c34e6d462cb7f4b3dd64ca47e4cd2527209ebbbbc4be819e1fa SHA512 e1ec00b76407aaf640f8b06d626ee85074fed1e936c14ee48f177796f4fd0100aa2e372e31181c84d7feea0c5b1e5a08e9619d572090196e5d1462bdba619450 +DIST gcc-17.0.0-patches-4.tar.xz 26632 BLAKE2B 69b491f3b1be38c9d0c72510b9f31a12cc8149f3d7125897095ebeafadc2a99596287a38fd8206af85b49831b336bab7e96920a56a44071d4834dd9aa4297975 SHA512 3c983d9df9a308fdc442b5453c3dd66f27fa731afd4dedc906e0841c23cd8e6f9b8c1ae5de5ac3466e5e0ea923cc6df0af46893ea7dce78135b74c494a0fecca 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/files/0001-tree-optimization-124034-remove-early-break-special-.patch b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/0001-tree-optimization-124034-remove-early-break-special-.patch deleted file mode 100644 index 0e94fc35b28..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/0001-tree-optimization-124034-remove-early-break-special-.patch +++ /dev/null @@ -1,79 +0,0 @@ -From bbb15fd5c8a561075f4a6c71eb1f03ad6c08c5ea Mon Sep 17 00:00:00 2001 -Message-ID: -From: Richard Biener -Date: Mon, 9 Feb 2026 10:53:01 +0100 -Subject: [PATCH] tree-optimization/124034 - remove early-break special-casing - of inductions - -After recent improvements to how we deal with early-break requirements -of induction variable updates we no longer need to force induction -latch defs relevant. This in turn makes only-live defs visible to -SLP discovery, resolving the miscompilation in this PR. - - PR tree-optimization/124034 - * tree-vect-stmts.cc (process_use): Never force induction - latch defs relevant when doing early break vectorization. - - * gcc.dg/vect/vect-early-break_142-pr124034.c: New testcase. ---- - .../vect/vect-early-break_142-pr124034.c | 31 +++++++++++++++++++ - gcc/tree-vect-stmts.cc | 5 +-- - 2 files changed, 32 insertions(+), 4 deletions(-) - create mode 100644 gcc/testsuite/gcc.dg/vect/vect-early-break_142-pr124034.c - -diff --git a/gcc/testsuite/gcc.dg/vect/vect-early-break_142-pr124034.c b/gcc/testsuite/gcc.dg/vect/vect-early-break_142-pr124034.c -new file mode 100644 -index 000000000000..4834544eeae7 ---- /dev/null -+++ b/gcc/testsuite/gcc.dg/vect/vect-early-break_142-pr124034.c -@@ -0,0 +1,31 @@ -+/* { dg-add-options vect_early_break } */ -+ -+#include "tree-vect.h" -+ -+__attribute__((noipa)) -+static -+long -+memeqbyte (char byte, void *data, long length) -+{ -+ char *p = data; -+ for (long i = 0; i < 16; i++, length--) -+ { -+ if (length == 0) -+ return 0; -+ if (p[i] != byte) -+ return 0; -+ } -+ return length; -+} -+ -+#define n 16 -+ -+int -+main () -+{ -+ char iov[n]; -+ check_vect (); -+ __builtin_memset (iov, 'x', n); -+ if (memeqbyte('x', iov, n)) -+ __builtin_abort(); -+} -diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc -index e7d6b4c123af..77f6d7a639ae 100644 ---- a/gcc/tree-vect-stmts.cc -+++ b/gcc/tree-vect-stmts.cc -@@ -644,10 +644,7 @@ process_use (stmt_vec_info stmt_vinfo, tree use, loop_vec_info loop_vinfo, - && STMT_VINFO_DEF_TYPE (stmt_vinfo) == vect_induction_def - && (PHI_ARG_DEF_FROM_EDGE (stmt_vinfo->stmt, - loop_latch_edge (bb->loop_father)) -- == use) -- && (!LOOP_VINFO_EARLY_BREAKS (loop_vinfo) -- || (gimple_bb (stmt_vinfo->stmt) -- != LOOP_VINFO_LOOP (loop_vinfo)->header))) -+ == use)) - { - if (dump_enabled_p ()) - dump_printf_loc (MSG_NOTE, vect_location, --- -2.53.0 - diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-10.5.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-10.5.0.ebuild index 207599d226d..75a8509908e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-10.5.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-10.5.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,6 @@ 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="10.5.0" PATCH_VER="7" 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 b566b5dc5b7..c0d63849a58 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 @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,10 +6,9 @@ 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="11.5.0" -PATCH_VER="2" +PATCH_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 3556be347dc..bf4b1e520b0 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 @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,12 +6,11 @@ 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="12.4.0" -PATCH_VER="4" -MUSL_VER="4" -MUSL_GCC_VER="12.4.0" +PATCH_GCC_VER="12.5.0" +PATCH_VER="1" +MUSL_VER="1" +MUSL_GCC_VER="12.5.0" PYTHON_COMPAT=( python3_{11..14} ) if [[ ${PV} == *.9999 ]] ; then diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.0.ebuild index ddbddbc1f9e..f360beb7c4a 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -7,7 +7,6 @@ EAPI=8 # https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc PYTHON_COMPAT=( python3_{11..14} ) -TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="13.2.0" PATCH_VER="3" 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 3c4101c6599..b54b4b9a98f 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 @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,6 @@ EAPI=8 # Maintenance notes and explanations of GCC handling are on the wiki: # https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc -TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="13.3.0" MUSL_GCC_VER="13.3.0" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20251016.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20251016.ebuild index dca8cbfa667..93bcc04648d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20251016.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20251016.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,6 @@ EAPI=8 # Maintenance notes and explanations of GCC handling are on the wiki: # https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc -TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="13.3.0" MUSL_GCC_VER="13.3.0" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260122.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260122.ebuild deleted file mode 100644 index 2448afba4b1..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260122.ebuild +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="13.3.0" -MUSL_GCC_VER="13.3.0" -PATCH_VER="9" -MUSL_VER="3" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ ${PV} == *.9999 ]] ; then - MY_PV_2=$(ver_cut 2) - MY_PV_3=1 - if [[ ${MY_PV_2} == 0 ]] ; then - MY_PV_2=0 - MY_PV_3=0 - else - MY_PV_2=$((${MY_PV_2} - 1)) - fi - - # e.g. 12.2.9999 -> 12.1.1 - TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} -elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260129.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260129.ebuild deleted file mode 100644 index 2448afba4b1..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260129.ebuild +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="13.3.0" -MUSL_GCC_VER="13.3.0" -PATCH_VER="9" -MUSL_VER="3" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ ${PV} == *.9999 ]] ; then - MY_PV_2=$(ver_cut 2) - MY_PV_3=1 - if [[ ${MY_PV_2} == 0 ]] ; then - MY_PV_2=0 - MY_PV_3=0 - else - MY_PV_2=$((${MY_PV_2} - 1)) - fi - - # e.g. 12.2.9999 -> 12.1.1 - TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} -elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260205.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260205.ebuild deleted file mode 100644 index 2448afba4b1..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260205.ebuild +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="13.3.0" -MUSL_GCC_VER="13.3.0" -PATCH_VER="9" -MUSL_VER="3" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ ${PV} == *.9999 ]] ; then - MY_PV_2=$(ver_cut 2) - MY_PV_3=1 - if [[ ${MY_PV_2} == 0 ]] ; then - MY_PV_2=0 - MY_PV_3=0 - else - MY_PV_2=$((${MY_PV_2} - 1)) - fi - - # e.g. 12.2.9999 -> 12.1.1 - TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} -elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260212.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260212.ebuild index 9f9c198351c..d036b2a5009 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260212.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260212.ebuild @@ -6,7 +6,6 @@ EAPI=8 # Maintenance notes and explanations of GCC handling are on the wiki: # https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc -TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="13.3.0" MUSL_GCC_VER="13.3.0" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260219.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260219.ebuild deleted file mode 100644 index 2448afba4b1..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260219.ebuild +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="13.3.0" -MUSL_GCC_VER="13.3.0" -PATCH_VER="9" -MUSL_VER="3" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ ${PV} == *.9999 ]] ; then - MY_PV_2=$(ver_cut 2) - MY_PV_3=1 - if [[ ${MY_PV_2} == 0 ]] ; then - MY_PV_2=0 - MY_PV_3=0 - else - MY_PV_2=$((${MY_PV_2} - 1)) - fi - - # e.g. 12.2.9999 -> 12.1.1 - TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} -elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260226.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260226.ebuild deleted file mode 100644 index 2448afba4b1..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260226.ebuild +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="13.3.0" -MUSL_GCC_VER="13.3.0" -PATCH_VER="9" -MUSL_VER="3" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ ${PV} == *.9999 ]] ; then - MY_PV_2=$(ver_cut 2) - MY_PV_3=1 - if [[ ${MY_PV_2} == 0 ]] ; then - MY_PV_2=0 - MY_PV_3=0 - else - MY_PV_2=$((${MY_PV_2} - 1)) - fi - - # e.g. 12.2.9999 -> 12.1.1 - TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} -elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260305.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260305.ebuild deleted file mode 100644 index 2448afba4b1..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260305.ebuild +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="13.3.0" -MUSL_GCC_VER="13.3.0" -PATCH_VER="9" -MUSL_VER="3" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ ${PV} == *.9999 ]] ; then - MY_PV_2=$(ver_cut 2) - MY_PV_3=1 - if [[ ${MY_PV_2} == 0 ]] ; then - MY_PV_2=0 - MY_PV_3=0 - else - MY_PV_2=$((${MY_PV_2} - 1)) - fi - - # e.g. 12.2.9999 -> 12.1.1 - TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} -elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260312.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260312.ebuild deleted file mode 100644 index 2448afba4b1..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260312.ebuild +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="13.3.0" -MUSL_GCC_VER="13.3.0" -PATCH_VER="9" -MUSL_VER="3" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ ${PV} == *.9999 ]] ; then - MY_PV_2=$(ver_cut 2) - MY_PV_3=1 - if [[ ${MY_PV_2} == 0 ]] ; then - MY_PV_2=0 - MY_PV_3=0 - else - MY_PV_2=$((${MY_PV_2} - 1)) - fi - - # e.g. 12.2.9999 -> 12.1.1 - TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} -elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260319.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260319.ebuild deleted file mode 100644 index 2448afba4b1..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260319.ebuild +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="13.3.0" -MUSL_GCC_VER="13.3.0" -PATCH_VER="9" -MUSL_VER="3" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ ${PV} == *.9999 ]] ; then - MY_PV_2=$(ver_cut 2) - MY_PV_3=1 - if [[ ${MY_PV_2} == 0 ]] ; then - MY_PV_2=0 - MY_PV_3=0 - else - MY_PV_2=$((${MY_PV_2} - 1)) - fi - - # e.g. 12.2.9999 -> 12.1.1 - TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} -elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260422.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260422.ebuild new file mode 100644 index 00000000000..fea647d1997 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260422.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="13.3.0" +MUSL_GCC_VER="13.3.0" +PATCH_VER="9" +MUSL_VER="3" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ ${PV} == *.9999 ]] ; then + MY_PV_2=$(ver_cut 2) + MY_PV_3=1 + if [[ ${MY_PV_2} == 0 ]] ; then + MY_PV_2=0 + MY_PV_3=0 + else + MY_PV_2=$((${MY_PV_2} - 1)) + fi + + # e.g. 12.2.9999 -> 12.1.1 + TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} +elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260429.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260429.ebuild new file mode 100644 index 00000000000..93bcc04648d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260429.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="13.3.0" +MUSL_GCC_VER="13.3.0" +PATCH_VER="9" +MUSL_VER="3" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ ${PV} == *.9999 ]] ; then + MY_PV_2=$(ver_cut 2) + MY_PV_3=1 + if [[ ${MY_PV_2} == 0 ]] ; then + MY_PV_2=0 + MY_PV_3=0 + else + MY_PV_2=$((${MY_PV_2} - 1)) + fi + + # e.g. 12.2.9999 -> 12.1.1 + TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} +elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260506.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260506.ebuild new file mode 100644 index 00000000000..fea647d1997 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260506.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="13.3.0" +MUSL_GCC_VER="13.3.0" +PATCH_VER="9" +MUSL_VER="3" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ ${PV} == *.9999 ]] ; then + MY_PV_2=$(ver_cut 2) + MY_PV_3=1 + if [[ ${MY_PV_2} == 0 ]] ; then + MY_PV_2=0 + MY_PV_3=0 + else + MY_PV_2=$((${MY_PV_2} - 1)) + fi + + # e.g. 12.2.9999 -> 12.1.1 + TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} +elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260513.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260513.ebuild new file mode 100644 index 00000000000..fea647d1997 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260513.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="13.3.0" +MUSL_GCC_VER="13.3.0" +PATCH_VER="9" +MUSL_VER="3" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ ${PV} == *.9999 ]] ; then + MY_PV_2=$(ver_cut 2) + MY_PV_3=1 + if [[ ${MY_PV_2} == 0 ]] ; then + MY_PV_2=0 + MY_PV_3=0 + else + MY_PV_2=$((${MY_PV_2} - 1)) + fi + + # e.g. 12.2.9999 -> 12.1.1 + TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} +elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260520.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260520.ebuild new file mode 100644 index 00000000000..fea647d1997 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260520.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="13.3.0" +MUSL_GCC_VER="13.3.0" +PATCH_VER="9" +MUSL_VER="3" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ ${PV} == *.9999 ]] ; then + MY_PV_2=$(ver_cut 2) + MY_PV_3=1 + if [[ ${MY_PV_2} == 0 ]] ; then + MY_PV_2=0 + MY_PV_3=0 + else + MY_PV_2=$((${MY_PV_2} - 1)) + fi + + # e.g. 12.2.9999 -> 12.1.1 + TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} +elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.5.9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.5.9999.ebuild index 2bfe38b0038..cf886a8a221 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.5.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.5.9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,6 @@ EAPI=8 # Maintenance notes and explanations of GCC handling are on the wiki: # https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc -TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="13.3.0" MUSL_GCC_VER="13.3.0" 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 04671101910..6e8c962eb49 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 @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,6 @@ EAPI=8 # Maintenance notes and explanations of GCC handling are on the wiki: # https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc -TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="14.3.0" PATCH_VER="4" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20251017.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20251017.ebuild index e1f5607a033..da48784ea01 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20251017.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20251017.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,6 @@ EAPI=8 # Maintenance notes and explanations of GCC handling are on the wiki: # https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc -TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="14.3.0" PATCH_VER="5" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260123.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260123.ebuild deleted file mode 100644 index 58030521832..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260123.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="14.3.0" -PATCH_VER="5" -MUSL_VER="2" -MUSL_GCC_VER="14.3.0" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # m68k doesnt build (ICE, bug 932733) - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260130.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260130.ebuild deleted file mode 100644 index 58030521832..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260130.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="14.3.0" -PATCH_VER="5" -MUSL_VER="2" -MUSL_GCC_VER="14.3.0" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # m68k doesnt build (ICE, bug 932733) - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260206.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260206.ebuild deleted file mode 100644 index 58030521832..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260206.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="14.3.0" -PATCH_VER="5" -MUSL_VER="2" -MUSL_GCC_VER="14.3.0" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # m68k doesnt build (ICE, bug 932733) - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260213.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260213.ebuild index ecb9d097185..b68bdb592fd 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260213.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260213.ebuild @@ -6,7 +6,6 @@ EAPI=8 # Maintenance notes and explanations of GCC handling are on the wiki: # https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc -TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="14.3.0" PATCH_VER="5" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260220.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260220.ebuild deleted file mode 100644 index 58030521832..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260220.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="14.3.0" -PATCH_VER="5" -MUSL_VER="2" -MUSL_GCC_VER="14.3.0" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # m68k doesnt build (ICE, bug 932733) - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260227.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260227.ebuild deleted file mode 100644 index 58030521832..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260227.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="14.3.0" -PATCH_VER="5" -MUSL_VER="2" -MUSL_GCC_VER="14.3.0" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # m68k doesnt build (ICE, bug 932733) - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260306.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260306.ebuild deleted file mode 100644 index 58030521832..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260306.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="14.3.0" -PATCH_VER="5" -MUSL_VER="2" -MUSL_GCC_VER="14.3.0" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # m68k doesnt build (ICE, bug 932733) - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260313.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260313.ebuild deleted file mode 100644 index 58030521832..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260313.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="14.3.0" -PATCH_VER="5" -MUSL_VER="2" -MUSL_GCC_VER="14.3.0" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # m68k doesnt build (ICE, bug 932733) - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260320.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260320.ebuild deleted file mode 100644 index b6c44d735a3..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260320.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="14.3.0" -PATCH_VER="6" -MUSL_VER="2" -MUSL_GCC_VER="14.3.0" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # m68k doesnt build (ICE, bug 932733) - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260423.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260423.ebuild new file mode 100644 index 00000000000..4eb953d1246 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260423.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="14.3.0" +PATCH_VER="6" +MUSL_VER="2" +MUSL_GCC_VER="14.3.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # m68k doesnt build (ICE, bug 932733) + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260430.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260430.ebuild new file mode 100644 index 00000000000..3af2dfd2521 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260430.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="14.3.0" +PATCH_VER="6" +MUSL_VER="2" +MUSL_GCC_VER="14.3.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # m68k doesnt build (ICE, bug 932733) + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260507.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260507.ebuild new file mode 100644 index 00000000000..4eb953d1246 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260507.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="14.3.0" +PATCH_VER="6" +MUSL_VER="2" +MUSL_GCC_VER="14.3.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # m68k doesnt build (ICE, bug 932733) + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260514.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260514.ebuild new file mode 100644 index 00000000000..4eb953d1246 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260514.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="14.3.0" +PATCH_VER="6" +MUSL_VER="2" +MUSL_GCC_VER="14.3.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # m68k doesnt build (ICE, bug 932733) + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260521.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260521.ebuild new file mode 100644 index 00000000000..4eb953d1246 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20260521.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="14.3.0" +PATCH_VER="6" +MUSL_VER="2" +MUSL_GCC_VER="14.3.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # m68k doesnt build (ICE, bug 932733) + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.4.9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.4.9999.ebuild index 7709385ccbf..0892c6a257d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.4.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.4.9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,6 @@ EAPI=8 # Maintenance notes and explanations of GCC handling are on the wiki: # https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc -TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="14.3.0" MUSL_GCC_VER="14.3.0" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251108-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251108-r1.ebuild index 4bc7f7f7ca7..99c1075fac4 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251108-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251108-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,6 @@ EAPI=8 # Maintenance notes and explanations of GCC handling are on the wiki: # https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc -TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="15.2.0" PATCH_VER="2" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251115.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251115.ebuild deleted file mode 100644 index eafdd7a441f..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251115.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="15.2.0" -PATCH_VER="3" -MUSL_VER="1" -MUSL_GCC_VER="15.2.0" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=master -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251122.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251122.ebuild index 195c5b1c9a5..feb47aabcb5 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251122.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251122.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,6 @@ EAPI=8 # Maintenance notes and explanations of GCC handling are on the wiki: # https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc -TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="15.2.0" PATCH_VER="4" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260124.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260124.ebuild deleted file mode 100644 index 6351526d140..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260124.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="15.2.0" -PATCH_VER="5" -MUSL_VER="1" -MUSL_GCC_VER="15.2.0" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=master -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260131.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260131.ebuild deleted file mode 100644 index 6351526d140..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260131.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="15.2.0" -PATCH_VER="5" -MUSL_VER="1" -MUSL_GCC_VER="15.2.0" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=master -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260207.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260207.ebuild deleted file mode 100644 index 6351526d140..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260207.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="15.2.0" -PATCH_VER="5" -MUSL_VER="1" -MUSL_GCC_VER="15.2.0" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=master -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260214.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260214.ebuild index 5a34a76a028..86c6709c89d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260214.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260214.ebuild @@ -6,7 +6,6 @@ EAPI=8 # Maintenance notes and explanations of GCC handling are on the wiki: # https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc -TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="15.2.0" PATCH_VER="5" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260221.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260221.ebuild deleted file mode 100644 index 137388e82fc..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260221.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="15.2.0" -PATCH_VER="5" -MUSL_VER="1" -MUSL_GCC_VER="15.2.0" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=master -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260228.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260228.ebuild deleted file mode 100644 index 137388e82fc..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260228.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="15.2.0" -PATCH_VER="5" -MUSL_VER="1" -MUSL_GCC_VER="15.2.0" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=master -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260307.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260307.ebuild deleted file mode 100644 index 137388e82fc..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260307.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="15.2.0" -PATCH_VER="5" -MUSL_VER="1" -MUSL_GCC_VER="15.2.0" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=master -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260314.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260314.ebuild deleted file mode 100644 index 137388e82fc..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260314.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="15.2.0" -PATCH_VER="5" -MUSL_VER="1" -MUSL_GCC_VER="15.2.0" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=master -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260321.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260321.ebuild deleted file mode 100644 index 137388e82fc..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260321.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="15.2.0" -PATCH_VER="5" -MUSL_VER="1" -MUSL_GCC_VER="15.2.0" -PYTHON_COMPAT=( python3_{11..14} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=master -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260424.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260424.ebuild new file mode 100644 index 00000000000..8ddd24dc9f9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260424.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="15.2.0" +PATCH_VER="6" +MUSL_VER="1" +MUSL_GCC_VER="15.2.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260501.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260501.ebuild new file mode 100644 index 00000000000..cef09bea228 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260501.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="15.2.0" +PATCH_VER="7" +MUSL_VER="1" +MUSL_GCC_VER="15.2.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260508.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260508.ebuild new file mode 100644 index 00000000000..76e691e7f5a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260508.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="15.2.0" +PATCH_VER="8" +MUSL_VER="1" +MUSL_GCC_VER="15.2.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260515.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260515.ebuild new file mode 100644 index 00000000000..76e691e7f5a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260515.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="15.2.0" +PATCH_VER="8" +MUSL_VER="1" +MUSL_GCC_VER="15.2.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260522.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260522.ebuild new file mode 100644 index 00000000000..76e691e7f5a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20260522.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="15.2.0" +PATCH_VER="8" +MUSL_VER="1" +MUSL_GCC_VER="15.2.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.3.9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.3.9999.ebuild index 757ab8f09d6..850fc945ad2 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 @@ -6,7 +6,6 @@ EAPI=8 # Maintenance notes and explanations of GCC handling are on the wiki: # https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc -TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="15.2.0" MUSL_GCC_VER="15.2.0" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260125.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260125.ebuild deleted file mode 100644 index 34cf82c9da0..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260125.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="16.0.0" -PATCH_VER="34" -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.1_p20260201.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260201.ebuild deleted file mode 100644 index 9683d59e9f5..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260201.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="16.0.0" -PATCH_VER="35" -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.1_p20260208-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260208-r1.ebuild deleted file mode 100644 index 47c25b42c5a..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260208-r1.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="16.0.0" -PATCH_VER="36" -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 "${FILESDIR}"/0001-tree-optimization-124034-remove-early-break-special-.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260215.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260215.ebuild deleted file mode 100644 index 7aa84a02fb7..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260215.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="16.0.0" -PATCH_VER="37" -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 - [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260222.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260222.ebuild deleted file mode 100644 index 45fd51ea37f..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260222.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="16.0.0" -PATCH_VER="38" -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 - [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260301.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260301.ebuild deleted file mode 100644 index 45fd51ea37f..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260301.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="16.0.0" -PATCH_VER="38" -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 - [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260308.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260308.ebuild deleted file mode 100644 index 34f248837a7..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260308.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="16.0.0" -PATCH_VER="39" -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 - [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260315.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260315.ebuild deleted file mode 100644 index 63a680a334d..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260315.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="16.0.0" -PATCH_VER="40" -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 - [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260322.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260322.ebuild deleted file mode 100644 index 63a680a334d..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.1_p20260322.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="16.0.0" -PATCH_VER="40" -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 - [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.9999.ebuild deleted file mode 100644 index 2046aae02f4..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.9999.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintenance notes and explanations of GCC handling are on the wiki: -# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="16.0.0" -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 - [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.1.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.1.0.ebuild new file mode 100644 index 00000000000..dfc8b316b20 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.1.0.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="16.1.0" +PATCH_VER="1" +MUSL_VER="1" +MUSL_GCC_VER="16.1.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.1.1_p20260502.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.1.1_p20260502.ebuild new file mode 100644 index 00000000000..036dab287f6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.1.1_p20260502.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="16.1.0" +PATCH_VER="1" +MUSL_VER="1" +MUSL_GCC_VER="16.1.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.1.1_p20260509.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.1.1_p20260509.ebuild new file mode 100644 index 00000000000..036dab287f6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.1.1_p20260509.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="16.1.0" +PATCH_VER="1" +MUSL_VER="1" +MUSL_GCC_VER="16.1.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.1.1_p20260516.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.1.1_p20260516.ebuild new file mode 100644 index 00000000000..9a2ea79cb4f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.1.1_p20260516.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="16.1.0" +PATCH_VER="2" +MUSL_VER="1" +MUSL_GCC_VER="16.1.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.1.1_p20260523.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.1.1_p20260523.ebuild new file mode 100644 index 00000000000..9a2ea79cb4f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.1.1_p20260523.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="16.1.0" +PATCH_VER="2" +MUSL_VER="1" +MUSL_GCC_VER="16.1.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.2.9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.2.9999.ebuild new file mode 100644 index 00000000000..57ee445aeff --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.2.9999.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="16.1.0" +MUSL_GCC_VER="16.1.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260426.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260426.ebuild new file mode 100644 index 00000000000..40a5550ca05 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260426.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="17.0.0" +PATCH_VER="1" +MUSL_GCC_VER="17.0.0" +MUSL_VER="1" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260503.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260503.ebuild new file mode 100644 index 00000000000..9a2c4ca6cee --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260503.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="17.0.0" +PATCH_VER="2" +MUSL_GCC_VER="17.0.0" +MUSL_VER="1" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260510.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260510.ebuild new file mode 100644 index 00000000000..257dbebeeab --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260510.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="17.0.0" +PATCH_VER="3" +MUSL_GCC_VER="17.0.0" +MUSL_VER="1" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260517.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260517.ebuild new file mode 100644 index 00000000000..8ee2fd96d29 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260517.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="17.0.0" +PATCH_VER="4" +MUSL_GCC_VER="17.0.0" +MUSL_VER="1" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260524.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260524.ebuild new file mode 100644 index 00000000000..8ee2fd96d29 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260524.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="17.0.0" +PATCH_VER="4" +MUSL_GCC_VER="17.0.0" +MUSL_VER="1" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.9999.ebuild new file mode 100644 index 00000000000..2267325f8b1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.9999.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="17.0.0" +MUSL_GCC_VER="17.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 + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-8.5.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-8.5.0-r2.ebuild index 17559a30fc6..8781f06d029 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-8.5.0-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-8.5.0-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="8" @@ -7,7 +7,6 @@ EAPI="8" # https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc TOOLCHAIN_PATCH_SUFFIX="xz" -TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_VER="5" PYTHON_COMPAT=( python3_{11..14} ) diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-9.5.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-9.5.0.ebuild index 95c35205ffc..40a1937ed49 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-9.5.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-9.5.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,6 @@ 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="9.5.0" PATCH_VER="3" 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 d2a94fb89af..25236cd1b85 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 @@ -10,3 +10,5 @@ DIST gettext-0.25.1.tar.xz 9930836 BLAKE2B 8a1e512b9bcfa196dcf138e80844766fe35d6 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 +DIST gettext-1.0.tar.xz 10721600 BLAKE2B 052bd847c8cdb963437613583256e430b52e27e5ebe29a04df6ac549552ab0f85a1e637b991ebb57e82805fb6d2d23f37c4b70d7f711dc086f57a3a32ba3f00e SHA512 fa657faf5685dae7121a9b0293d3308a3910a72b90943a7a493b88cf88e95f29c5758e1573320169fe9beac6f101ef76f4165a279a7f3294155d7a773e2fa09f +DIST gettext-1.0.tar.xz.sig 228 BLAKE2B 7716edc683b32b2af5476963d555e681285e8a750f66056badcfa2caa01c41655866a8ed0f7ad61914aee82cd70252cc36c4e19af6eea0a0a0ffdf07a20c4d4a SHA512 2673cbacea48b257702c1aed16ef6b685a43f3f8cc8c5bcce5531c70930d5aa47a09bf79d5e3c5261c9cccd7c72a8b74cc40ef33ba3363695df8153d7e4eb66b diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/files/gettext-1.0-fix-syntax-error.patch b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/files/gettext-1.0-fix-syntax-error.patch new file mode 100644 index 00000000000..a29eff2e93a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/files/gettext-1.0-fix-syntax-error.patch @@ -0,0 +1,46 @@ +https://savannah.gnu.org/bugs/?67987 +- rebased Changelog entry +- duplicated hunk to match duplicated gnulib in tarball + +From: Bruno Haible +Date: Thu, 29 Jan 2026 19:04:32 +0100 +Subject: [PATCH] relocatable-prog-wrapper: Fix syntax error on Linux (regr. 2025-12-09). + +Reported by Erik Schnetter +at . + +* lib/progreloc.c (find_executable): Remove extraneous brace. + +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,10 @@ ++2026-01-29 Bruno Haible ++ ++ relocatable-prog-wrapper: Fix syntax error on Linux (regr. 2025-12-09). ++ Reported by Erik Schnetter ++ at . ++ * lib/progreloc.c (find_executable): Remove extraneous brace. ++ + 2026-01-29 Bruno Haible + + examples: Use infrastructure from gettext version 1.0. +--- a/gettext-tools/gnulib-lib/progreloc.c ++++ b/gettext-tools/gnulib-lib/progreloc.c +@@ -259,7 +259,6 @@ find_executable (const char *argv0) + char *link = xreadlink (buf); + if (link != NULL && link[0] != '[') + return link; +- } + if (executable_fd < 0) + executable_fd = open (buf, O_EXEC | O_CLOEXEC, 0); + } +--- a/gettext-runtime/gnulib-lib/progreloc.c ++++ b/gettext-runtime/gnulib-lib/progreloc.c +@@ -259,7 +259,6 @@ find_executable (const char *argv0) + char *link = xreadlink (buf); + if (link != NULL && link[0] != '[') + return link; +- } + if (executable_fd < 0) + executable_fd = open (buf, O_EXEC | O_CLOEXEC, 0); + } diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-1.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-1.0.ebuild new file mode 100644 index 00000000000..5194846322b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-1.0.ebuild @@ -0,0 +1,202 @@ +# Copyright 1999-2026 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 ~arm64-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 + "${FILESDIR}"/${PN}-1.0-fix-syntax-error.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.25-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/po-fetch + 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-devel/patch/patch-2.8-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/patch/patch-2.8-r1.ebuild index 24bf479200d..58365abd306 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/patch/patch-2.8-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/patch/patch-2.8-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -58,6 +58,12 @@ src_configure() { # rename to gpatch for better BSD compatibility --program-prefix=g ) + + # https://savannah.gnu.org/support/?111394 + # This can be removed when we patch dev-build/autoconf, though + # packages w/o eautoreconf will still need it. + [[ ${enable_year2038} == "no" ]] && myeconfargs+=( --disable-year2038 ) + # Do not let $ED or $PATH (split-usr) mess up the search for `ed`: # bug 470210 / bug 957593 ac_cv_path_ED="${EPREFIX}/bin/ed" \ diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/patch/patch-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/patch/patch-9999.ebuild index fafd712ded4..9f8877a3a20 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/patch/patch-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/patch/patch-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -58,6 +58,12 @@ src_configure() { # rename to gpatch for better BSD compatibility --program-prefix=g ) + + # https://savannah.gnu.org/support/?111394 + # This can be removed when we patch dev-build/autoconf, though + # packages w/o eautoreconf will still need it. + [[ ${enable_year2038} == "no" ]] && myeconfargs+=( --disable-year2038 ) + # Do not let $ED mess up the search for `ed` 470210. ac_cv_path_ED=$(type -P ed) \ econf "${myeconfargs[@]}" diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/Manifest b/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/Manifest index a1ff3411e48..50cce1f7397 100644 --- a/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/Manifest @@ -3,4 +3,8 @@ DIST edk2-202408-1-arm64.xpak 2710314 BLAKE2B e21ee00e178c59cd89cc297f22a0444594 DIST edk2-202411-1-amd64.xpak 6551638 BLAKE2B 96cbbfd3cc105805bd2c4b535aa2802258fd7a51a5601c3dbdf6e7a34add424a46f2d0b99ffb95cc4af87c7636aa73ceaf4200a2bcda4d466464dc19798cef38 SHA512 c3df3a7af4460e3ef9fef46f279bf9984a52995335842daec51e3e3a71ebb874e905c95ee35f645787447301d7f12662ceae5fa202399e9d42174253e2c915c5 DIST edk2-202411-1-arm64.xpak 2694540 BLAKE2B abf73580f8b9b6e6172918b43906d17787fd27b62e067f0950cd8dd7462aa70fa70fda21b634711526328d6c00ed7526764411daaa3801876812a9408fccefc6 SHA512 6f9908c1abd444ea9a2c2fe98b0a34b9f8827d7e909d35503fd90846c6c3c2d9d74adc264e83834f51f48f3cf1b2959ef1c75ce83fd24e916325437dbbb2b741 DIST edk2-202411-1-riscv.xpak 1424979 BLAKE2B 417b183c4786ad094966765912a5359f6764f868f60e6dfc9689342f8f23c223b1770f00f6f31fc6f2826827b5473586013d7aee2a502dfe403784811814c842 SHA512 a20a2222ea5dc13d8fac7beb63a3287572316343a79913eefcc77db53107a6a8ab34094d5b711631f25188810961a873e468f9b07fd13cbc149d119299e5e4c8 +DIST edk2-202511-1-qemu-aarch64.xpak 4052801 BLAKE2B 79fb12322613286fc0733da774e29db35b4e2a5eb61d36c1717450cc49b124f54cd3b695af871d5be28bab39bde10d9247c67115a6e89378950d468287300f70 SHA512 036aff0540b5947a146a8f42f09e4f354d0a54ad5227e351696573759ceb004855eedc1acd1e8751012f97313610b76ddf3631b5cb2bb7cd218657d6732cc548 +DIST edk2-202511-1-qemu-loongarch64.xpak 1994972 BLAKE2B 98ef04fa0042f82458b48e5edee4ee271196bdc73ab3e7c0c97397c2a989240881fa1d0d3ed5e24f35731a37be43c1f140914965fb04b2f03aabd00e0615782d SHA512 deac522183b2c2a4ca54dacad087a753866b66cef148b481f77c9a4d163fd972ab043340880d66be523b99ba40e7e7bb0efaf4282cc6cbd41e6f0bdff05fe485 +DIST edk2-202511-1-qemu-riscv64.xpak 1847391 BLAKE2B ef1070607e4e937a211c39e558e7012a02387f29d876680b9b05aaeffb8d7dda9c56a20d05d607319def68e1677a2c8985fb498a2c55bb607251a4fbe6c3d5eb SHA512 e9bdc4141dc0ded6b7620eadfda89fc7009823e7762759cd925cfc6d178a50638aa09f088b7d195b1bf18b70d8e920ee00d4ed35a65fa39b6061729ebd828c66 +DIST edk2-202511-1-qemu-x86_64.xpak 8985483 BLAKE2B 752351a7ccdb7e16274e94bd1d43d605c31b6babe0dbe4af189aeedbb70a0d943c7be8c4b9b1808cf4229603ca2ffeb4e90d6419000fb3691af7fa73e9792881 SHA512 aca265ad79cb0a835e7dc2bbf3fdcdfce43d2f03a5fd9663f0d3b719620ae4adc4f16453759c547adf508d7a549463875788a0913e0fae8b7e630915ad7c33b5 DIST edk2-ovmf-202202-1.xpak 2672386 BLAKE2B 75c15d4379610ab2af85b78166e350d52f4f1bc1fff5b2eb693ad0d7b1f6648e65d8ae3e2c5467f93f1557ad3b4fa664ab2d76ff10794667de22c2ea8cca6b2d SHA512 06783b89c96bada0fd025ff39eaee501a027abcb03c0bdcf3ff497d52be22927ab03013d90f145ee94a8662cfffe4f8c154dcd06db1bb1acef8a85ae43de14a3 diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/edk2-bin-202511.ebuild b/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/edk2-bin-202511.ebuild new file mode 100644 index 00000000000..bf887f6d1b1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/edk2-bin-202511.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit readme.gentoo-r1 secureboot + +BINPKG="${P/-bin/}-1" +QEMU_TARGETS="aarch64 loongarch64 riscv64 x86_64" + +DESCRIPTION="TianoCore EDK II UEFI firmware for virtual machines" +HOMEPAGE="https://github.com/tianocore/edk2" +for a in ${QEMU_TARGETS}; do + SRC_URI+=" qemu_softmmu_targets_${a}? ( https://dev.gentoo.org/~chewi/distfiles/${BINPKG}-qemu-${a}.xpak )" +done +S="${WORKDIR}" +LICENSE="BSD-2-with-patent MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" +printf -v IUSE ' qemu_softmmu_targets_%s' ${QEMU_TARGETS} +REQUIRED_USE="|| ( ${IUSE} )" + +RDEPEND="!sys-firmware/edk2" + +DOC_CONTENTS="This package includes the TianoCore EDK II UEFI firmware for virtual \ +machines of these QEMU architectures: ${QEMU_TARGETS}. See each architecture's README \ +for usage details." + +src_unpack() { + local a + for a in ${QEMU_TARGETS}; do + use "qemu_softmmu_targets_${a}" || continue + mkdir "${a}" || die + tar -C "${a}" -xf - < <(xz -c -d --single-stream "${DISTDIR}/${BINPKG}-qemu-${a}.xpak") || + die "unpacking ${a} QEMU binpkg failed" + done +} + +src_prepare() { + bunzip2 */usr/share/doc/*/README.gentoo.bz2 || die + default +} + +src_install() { + insinto /usr/share + doins -r */usr/share/{edk2,qemu}/ + + # Compatibility with older package versions. + use qemu_softmmu_targets_x86_64 && dosym edk2/OvmfX64 /usr/share/edk2-ovmf + + secureboot_auto_sign --in-place + readme.gentoo_create_doc + + local a + for a in ${QEMU_TARGETS}; do + use "qemu_softmmu_targets_${a}" || continue + newdoc "${a}"/usr/share/doc/*/README.gentoo README-"${a}".gentoo + done +} + +pkg_preinst() { + local OLD=${EROOT}/usr/share/edk2-ovmf NEW=${EROOT}/usr/share/edk2/OvmfX64 + if use qemu_softmmu_targets_x86_64 && [[ -d ${OLD} && ! -L ${OLD} ]]; then + { + rm -vf "${OLD}"/{OVMF_{CODE,CODE.secboot,VARS}.fd,EnrollDefaultKeys.efi,Shell.efi,UefiShell.img} && + mkdir -p "${NEW}" && + find "${OLD}" -mindepth 1 -maxdepth 1 -execdir mv --update=none-fail -vt "${NEW}"/ {} + && + rmdir "${OLD}" + } || die "unable to replace old directory with compatibility symlink" + fi +} + +pkg_postinst() { + readme.gentoo_print_elog +} diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/Manifest b/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/Manifest index 6ee771e6728..881b9b5724b 100644 --- a/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/Manifest @@ -1,5 +1,7 @@ DIST intel-microcode-collection-20260211.tar.xz 24796412 BLAKE2B a5944ed538a1d7ddae5e92409383f09e10304b39834d8488e5197e1b66d17fadd495f23e0bdab4ed06cd6abee73048617805f902ee95a01f37f79f54851d3ba0 SHA512 7d760a121601c329fdb7ef3d79217b29a6e3e2c7c7b112f701a6e60467641472fe4e3f66bf61d2788c4bfeb17fa2e6c1dc11c5cd18efd99e2acf753fdb3b1b0c DIST intel-microcode-collection-20260227.tar.xz 26976652 BLAKE2B 7a49dfcd62d9ba1773768954b4aaff98c37ae50a2be16c671a78a4046c5523634bc19809b4bbef03cd7a60e8c710ce477a9b0949ff6a8ddc8aa9f8590143de23 SHA512 1ce5428d50e692015b9c919049bda27215453aaddbcb8bc3c8c3312ad763ca9f102b0cc614905931441e031a5fc1ac7f54dd367a0b4506b41f73e7260e11ee18 +DIST intel-microcode-collection-20260513.tar.xz 27365080 BLAKE2B a2c984da2889ed13e4b671fa957662205ef11c3e3c0bc88c50e56460b7647346393daedbd363daac70e9d7a1d21ab81653186ff1be20e56d04e5345b45d870f5 SHA512 4be613c12063c42867e389a7881195c762ec2a7866fdde226c4e00d4cf9697b305884b02e0c2fc9194c2486c969babcdadd607171c729fa1100d2687f52e98d2 DIST intel-ucode-sig_0x406e3-rev_0xd6.bin 101376 BLAKE2B 66d55867954d69dda1425febd93bb8c89f7aa836d504f8b5fee127f8505bcf2246f4fcc55cc245bc5e532528d60cca2eee278de7ab5174dc2862db7982a2b36f SHA512 248066b521bf512b5d8e4a8c7e921464ce52169c954d6e4ca580d8c172cd789519e22b4cf56c212e452b4191741f0202019f7061d322c9433b5af9ce5413b567 DIST microcode-20260210.tar.gz 16622114 BLAKE2B 3b3a8fef499a67af0264550b457ae7de4f6965d9c8c02cc1b5b0f02316580662397016287510e09274e241d8d9cb7d70245f05a584f746515ac7c9bbe4a5cb28 SHA512 ec4ed32600ce1ce2c9c52796458f92205c89c38ba2834d84ab86d800790c709d22cb66e4fca5edda42752363956324f8066d08e3b1d81c50ac879d2749068655 DIST microcode-20260227.tar.gz 16621772 BLAKE2B 3725dee3af32b545a754a47616c7451a6e7e227af125a8eb35729b2784dfbdecccea6054e1f3190119253041697ce525380e5a98c929e42a4294028d2eca1ebd SHA512 d9de41b1f1b2740d12f0e9e4987b8001d7b9a0ae53382e9bd715936fb7cab7da74a9154df781950738db1c1ebb9ad4f46700355b67a0fb4e8fd5e80711702723 +DIST microcode-20260512.tar.gz 16949219 BLAKE2B 10407aa08481998fb5102bbf517b1cf5c083d16fae8468d25ad2c6ad4b6a665c520cb35f22a44b1f2b385232694bd18b1ee2e75a46658dcdafe40c0c54562c07 SHA512 b6e2e9fb3fe19cd46fcbcd639d16e2348b812eac2bcc535fb839d226218e1cbc724fc49c0d81acf606a22b719ff43ed5b46304fba65ef0ba663290df822649b8 diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/intel-microcode-20260227_p20260227.ebuild b/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/intel-microcode-20260227_p20260227.ebuild index c7ca5d9bbe7..d23defd2734 100644 --- a/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/intel-microcode-20260227_p20260227.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/intel-microcode-20260227_p20260227.ebuild @@ -17,8 +17,9 @@ inherit dist-kernel-utils linux-info mount-boot # b. Rename the Intel directory to intel-microcode-collection- # c. From the CPUMicrocodes directory tar and xz compress the contents of intel-microcode-collection-: # tar -cJf intel-microcode-collection-.tar.xz intel-microcode-collection-/ -# d. This file can go in your devspace, add the URL to SRC_URI if it's not there -# https://dev.gentoo.org/~/dist/intel-microcode/intel-microcode-collection-${COLLECTION_SNAPSHOT}.tar.xz +# d. This file should be signed and uploaded to masterkup. For detailed instructions, please go to: https://wiki.gentoo.org/wiki/Project:Infrastructure/Project_Distfiles +# e. The SRC_URI will then be of the form: +# https://distfiles.gentoo.org/pub/proj/intel-microcode/intel-microcode-collection-${COLLECTION_SNAPSHOT}.tar.xz # # PV: # * the first date is upstream diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/intel-microcode-20260512_p20260513.ebuild b/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/intel-microcode-20260512_p20260513.ebuild new file mode 100644 index 00000000000..d23defd2734 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/intel-microcode-20260512_p20260513.ebuild @@ -0,0 +1,339 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dist-kernel-utils linux-info mount-boot + +# Find updates by searching and clicking the first link (hopefully it's the one): +# https://www.intel.com/content/www/us/en/search.html?keyword=Processor+Microcode+Data+File +# +# +# Package Maintenance instructions: +# 1. The ebuild is in the form of intel-microcode-_p.ebuild +# 2. The INTEL_SNAPSHOT upstream is located at: https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files +# 3. The COLLECTION_SNAPSHOT is created manually using the following steps: +# a. Clone the repository https://github.com/platomav/CPUMicrocodes +# b. Rename the Intel directory to intel-microcode-collection- +# c. From the CPUMicrocodes directory tar and xz compress the contents of intel-microcode-collection-: +# tar -cJf intel-microcode-collection-.tar.xz intel-microcode-collection-/ +# d. This file should be signed and uploaded to masterkup. For detailed instructions, please go to: https://wiki.gentoo.org/wiki/Project:Infrastructure/Project_Distfiles +# e. The SRC_URI will then be of the form: +# https://distfiles.gentoo.org/pub/proj/intel-microcode/intel-microcode-collection-${COLLECTION_SNAPSHOT}.tar.xz +# +# PV: +# * the first date is upstream +# * the second date is snapshot (use last commit date in repo) from intel-microcode-collection + +COLLECTION_SNAPSHOT="${PV##*_p}" +INTEL_SNAPSHOT="${PV/_p*}" +#NUM="28087" + +#https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=${NUM} +#https://downloadmirror.intel.com/${NUM}/eng/microcode-${INTEL_SNAPSHOT}.tgz + +DESCRIPTION="Intel IA32/IA64 microcode update data" +HOMEPAGE="https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files https://github.com/platomav/CPUMicrocodes http://inertiawar.com/microcode/" +SRC_URI=" + https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/archive/microcode-${INTEL_SNAPSHOT}.tar.gz + https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/raw/437f382b1be4412b9d03e2bbdcda46d83d581242/intel-ucode/06-4e-03 -> intel-ucode-sig_0x406e3-rev_0xd6.bin + https://dev.gentoo.org/~mpagano/dist/intel-microcode/intel-microcode-collection-${COLLECTION_SNAPSHOT}.tar.xz + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/intel-microcode-collection-${COLLECTION_SNAPSHOT}.tar.xz +" +S="${WORKDIR}" + +LICENSE="intel-ucode" +SLOT="0" +KEYWORDS="-* amd64 x86" +IUSE="dist-kernel hostonly +initramfs +split-ucode vanilla" +REQUIRED_USE=" + || ( initramfs split-ucode ) + dist-kernel? ( split-ucode ) +" +RESTRICT="binchecks strip" + +BDEPEND=">=sys-apps/iucode_tool-2.3" +# !/dev/null; then + # new tarball format from GitHub + mv * ../ || die "Failed to move Intel-Linux-Processor-Microcode-Data*" + cd .. || die + rm -r Intel-Linux-Processor-Microcode-Data* || die + fi + + mkdir intel-ucode-old || die + cp "${DISTDIR}"/intel-ucode-sig_0x406e3-rev_0xd6.bin "${S}"/intel-ucode-old/ || die + + # Prevent "invalid file format" errors from iucode_tool + rm -f "${S}"/intel-ucod*/list || die + + # https://gitlab.com/iucode-tool/iucode-tool/-/issues/4 + rm "${S}"/intel-microcode-collection-${COLLECTION_SNAPSHOT}/cpu106C0_plat01_ver00000007_2007-08-24_PRD_923CDFA3.bin || die + + # Remove non-microcode file from list + rm -f "${S}"/intel-microcode-collection-${COLLECTION_SNAPSHOT}/LICENSE || die + rm -f "${S}"/intel-ucode*/LICENSE || die +} + +src_install() { + # This will take ALL of the upstream microcode sources: + # - microcode.dat + # - intel-ucode/ + # In some cases, they have not contained the same content (eg the directory has newer stuff). + MICROCODE_SRC=( + "${S}"/intel-ucode/ + "${S}"/intel-ucode-with-caveats/ + "${S}"/intel-ucode-old/ + ) + + # Allow users who are scared about microcode updates not included in Intel's official + # microcode tarball to opt-out and comply with Intel marketing + if ! use vanilla; then + MICROCODE_SRC+=( "${S}"/intel-microcode-collection-${COLLECTION_SNAPSHOT} ) + fi + + # These will carry into pkg_preinst via env saving. + : ${MICROCODE_BLACKLIST=${MICROCODE_BLACKLIST_DEFAULT}} + : ${MICROCODE_SIGNATURES=${MICROCODE_SIGNATUES_DEFAULT}} + + opts=( + ${MICROCODE_BLACKLIST} + ${MICROCODE_SIGNATURES} + # be strict about what we are doing + --overwrite + --strict-checks + --no-ignore-broken + # we want to install latest version + --no-downgrade + # show everything we find + --list-all + # show what we selected + --list + ) + + # Instruct Dracut on whether or not we want the microcode in initramfs + # Use here 15 instead of 10, intel-microcode overwrites linux-firmware + ( + insinto /usr/lib/dracut/dracut.conf.d + newins - 15-${PN}.conf <<<"early_microcode=$(usex initramfs)" + ) + if use initramfs; then + # Install installkernel/kernel-install hooks for non-dracut initramfs + # generators that don't bundled the microcode + ( + exeinto /usr/lib/kernel/preinst.d + doexe "${FILESDIR}/35-intel-microcode.install" + exeinto /usr/lib/kernel/install.d + doexe "${FILESDIR}/35-intel-microcode-systemd.install" + ) + fi + + # The earlyfw cpio needs to be in /boot because it must be loaded before + # rootfs is mounted. + if ! use dist-kernel && use initramfs; then + dodir /boot && opts+=( --write-earlyfw="${ED}/boot/intel-uc.img" ) + fi + + keepdir /lib/firmware/intel-ucode + opts+=( --write-firmware="${ED}/lib/firmware/intel-ucode" ) + + iucode_tool \ + "${opts[@]}" \ + "${MICROCODE_SRC[@]}" \ + || die "iucode_tool ${opts[@]} ${MICROCODE_SRC[@]}" + + dodoc releasenote.md +} + +pkg_preinst() { + if [[ ${MICROCODE_BLACKLIST} != ${MICROCODE_BLACKLIST_DEFAULT} ]]; then + ewarn "MICROCODE_BLACKLIST is set to \"${MICROCODE_BLACKLIST}\" instead of default \"${MICROCODE_BLACKLIST_DEFAULT}\". You are on your own!" + fi + + if [[ ${MICROCODE_SIGNATURES} != ${MICROCODE_SIGNATURES_DEFAULT} ]]; then + ewarn "Package was created using advanced options:" + ewarn "MICROCODE_SIGNATURES is set to \"${MICROCODE_SIGNATURES}\" instead of default \"${MICROCODE_SIGNATURES_DEFAULT}\"!" + fi + + # Make sure /boot is available if needed. + use initramfs && ! use dist-kernel && mount-boot_pkg_preinst + + local _initramfs_file="${ED}/boot/intel-uc.img" + + if use hostonly; then + # While this output looks redundant we do this check to detect + # rare cases where iucode_tool was unable to detect system's processor(s). + local _detected_processors=$(iucode_tool --scan-system 2>&1) + if [[ -z "${_detected_processors}" ]]; then + ewarn "Looks like iucode_tool was unable to detect any processor!" + else + einfo "Only installing ucode(s) for ${_detected_processors#iucode_tool: system has } due to USE=hostonly ..." + fi + + opts=( + --scan-system + # be strict about what we are doing + --overwrite + --strict-checks + --no-ignore-broken + # we want to install latest version + --no-downgrade + # show everything we find + --list-all + # show what we selected + --list + ) + + # The earlyfw cpio needs to be in /boot because it must be loaded before + # rootfs is mounted. + if ! use dist-kernel && use initramfs; then + opts+=( --write-earlyfw=${_initramfs_file} ) + fi + + if use split-ucode; then + opts+=( --write-firmware="${ED}/lib/firmware/intel-ucode" ) + fi + + opts+=( "${ED}/lib/firmware/intel-ucode-temp" ) + + mv "${ED}"/lib/firmware/intel-ucode{,-temp} || die + keepdir /lib/firmware/intel-ucode + + iucode_tool "${opts[@]}" || die "iucode_tool ${opts[@]}" + + rm -r "${ED}"/lib/firmware/intel-ucode-temp || die + + elif ! use split-ucode; then # hostonly disabled + rm -r "${ED}"/lib/firmware/intel-ucode || die + fi + + # Because it is possible that this package will install not one single file + # due to user selection which is still somehow unexpected we add the following + # check to inform user so that the user has at least a chance to detect + # a problem/invalid select. + local _has_installed_something= + if use initramfs && [[ -s "${_initramfs_file}" ]]; then + _has_installed_something="yes" + elif use split-ucode; then + _has_installed_something=$(find "${ED}/lib/firmware/intel-ucode" -maxdepth 0 -not -empty -exec echo yes \;) + fi + + if use hostonly && [[ -n "${_has_installed_something}" ]]; then + elog "You only installed ucode(s) for all currently available (=online)" + elog "processor(s). Remember to re-emerge this package whenever you" + elog "change the system's processor model." + elog "" + elif [[ -z "${_has_installed_something}" ]]; then + ewarn "WARNING:" + if [[ ${MICROCODE_SIGNATURES} != ${MICROCODE_SIGNATURES_DEFAULT} ]]; then + ewarn "No ucode was installed! Because you have created this package" + ewarn "using MICROCODE_SIGNATURES variable please double check if you" + ewarn "have an invalid select." + ewarn "It's rare but it is also possible that just no ucode update" + ewarn "is available for your processor(s). In this case it is safe" + ewarn "to ignore this warning." + else + ewarn "No ucode was installed! It's rare but it is also possible" + ewarn "that just no ucode update is available for your processor(s)." + ewarn "In this case it is safe to ignore this warning." + fi + + ewarn "" + + if use hostonly; then + ewarn "Unset \"hostonly\" USE flag to install all available ucodes." + ewarn "" + fi + fi +} + +pkg_prerm() { + # Make sure /boot is mounted so that we can remove /boot/intel-uc.img! + use initramfs && ! use dist-kernel && mount-boot_pkg_prerm +} + +pkg_postrm() { + # Don't forget to umount /boot if it was previously mounted by us. + use initramfs && ! use dist-kernel && mount-boot_pkg_postrm +} + +pkg_postinst() { + if use initramfs; then + if use dist-kernel; then + dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" --all + else + # Don't forget to umount /boot if it was previously mounted by us. + mount-boot_pkg_postinst + fi + fi + + # We cannot give detailed information if user is affected or not: + # If MICROCODE_BLACKLIST wasn't modified, user can still use MICROCODE_SIGNATURES + # to to force a specific, otherwise blacklisted, microcode. So we + # only show a generic warning based on running kernel version: + if kernel_is -lt 4 14 34; then + ewarn "${P} contains microcode updates which require" + ewarn "additional kernel patches which aren't yet included in kernel <4.14.34." + ewarn "Loading such a microcode through kernel interface from an unpatched kernel" + ewarn "can crash your system!" + ewarn "" + ewarn "Those microcodes are blacklisted per default. However, if you have altered" + ewarn "MICROCODE_BLACKLIST or MICROCODE_SIGNATURES, you maybe have unintentionally" + ewarn "re-enabled those microcodes...!" + ewarn "" + ewarn "Check \"${EROOT}/usr/share/doc/${PN}-*/releasenot*\" if your microcode update" + ewarn "requires additional kernel patches or not." + fi +} 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 bb283656a81..643d96ea2d2 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 @@ -1,6 +1,4 @@ -DIST btrfs-progs-v6.17.1.tar.sign 566 BLAKE2B 0313dce425d84f16eb64085f4144bcfc21172f96223de0a36d78a8dc5f4da4d0ff5b2453961c99607426ce412a3f0d7acfc205788e897684b68d7da5758e339d SHA512 39dabbc3546e32468ae71b5d83606aabc38d9ef1996e1c40d8b5976cd4924b4877c373e05888b284988e35d5b363801f0c67f93ae43d907cba76dff145fc9f7b -DIST btrfs-progs-v6.17.1.tar.xz 4964964 BLAKE2B 6340fb5f87d3dcf9598785fbb00ccd2278e268c1b798a1013ede9d25fc8e2005376c2333c84befcf95ec9ae2b7e75562750a2bf8fbfc7bbf966d713e1feb5818 SHA512 7723dd924025e7d6d6cfa081dcbe86bfe86cc6f226c8eb7317d86871864807257bd96c19c715b819e76125b33b90100f6897f4eb665d8414f30a3aa7a5aba631 DIST btrfs-progs-v6.19.1.tar.sign 566 BLAKE2B f743d46a80b03ae63dfe0eea262577228db56b305fc105ac9b24d5672dc60dac59e35673ee96a3f5cc72e4d048fdf7b92c8ea1e96f089bc96bb0d36628af1c97 SHA512 364b858320aa976807d58532b96fb4baaf814e9c6ed54b675275f101d7fb3b9f9187a6e07b0a85e53bae831f7217107c0e838436fda9b6788c3dbf2cd807ae5b DIST btrfs-progs-v6.19.1.tar.xz 4977432 BLAKE2B 555bf1c0625afd30dae3cc38f293de195450133cea701096010cadde3d8be405681ed2c4b5e43db777df146e1d2d90697746bc9eea253211df216bd4456e04a1 SHA512 ece500bf512a7970bd6a611c4f74aa3f7285eb55b86987fb8a21bc82cb7d0b1e6b683d02efc34ec8c4ff7f6d620b5ec12ef277af0d6d831586f9f70087355ca9 -DIST btrfs-progs-v6.19.tar.sign 566 BLAKE2B 04a10b6df9149fe1cac4b5162b6d03f0de4f213f624bf188698445de86d73bb64142ecc9b3d9c9120d457d84cf1fb12a08283ab56026babdba18a2c64eb83fc9 SHA512 00ff5b059092c7475bec698571d9b010c00e1bbd55305982b9528c0120d027d72162c6c9829aa0251e973d6897706164f3d188353762dff743bae77832ea5067 -DIST btrfs-progs-v6.19.tar.xz 5816796 BLAKE2B a2deec1d1f9528f8e1e07f44dc6afda537ef6490ba4de6773906b42d2e3b5917fc6b92f650f24a502a7d8b6487dc07528d61a46b2b3bc422158ff3fe9deb204f SHA512 6cd5bb863c164a11d999be7aec15441ac8ab91f1e4da2cd6355781edd5251c7fcd4639bacfe7014c8dc260fb02505374fc4c82140418b769fbe14f889fc03ce9 +DIST btrfs-progs-v7.0.tar.sign 594 BLAKE2B 3b31dc3b529600d65721994742786a65ebec3e296a26f1510c34ceac9f5309ca72068af6322a46925d9b80b0f0492e0624ebb7ddd3904c610a161bb28ad45834 SHA512 78a358f5ba7b4e8ee3477bbcd8eab623c05dd8d157ac3858a7ea7e0ceda8c296363b6bf50a8bdf3f3a590580e4ea8e885d596f0fc3e2d6263337f9847b014813 +DIST btrfs-progs-v7.0.tar.xz 4989268 BLAKE2B a0e8ef7a5bca5c4f4deb5487215a3543ae99759ffec191cd23b776d21621fb9aba173115a47ae34ebd0e6e38d720d430e5092151e938b0b65cff4aabffd9c607 SHA512 f6fc13f16a1f170eacbcb53efb2e5a86e89c73fd797fc8d9a419b7024f5a13a788cd92e0caa41964e7716d8bccc24ce4b8a5e3b3861d85c793642021c5b03791 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.17.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.17.1.ebuild deleted file mode 100644 index ccb1ef7764c..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.17.1.ebuild +++ /dev/null @@ -1,184 +0,0 @@ -# Copyright 2008-2026 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(+)?] - virtual/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(+)] - virtual/zlib:=[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() { - if use verify-sig; then - verify-sig_uncompress_verify_unpack "${DISTDIR}"/${MY_P}.tar.xz \ - "${DISTDIR}"/${MY_P}.tar.sign - 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 - - 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/btrfs-progs/btrfs-progs-6.19.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.19.1.ebuild index 711f1d01589..7cdaabfb9da 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.19.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.19.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 ~s390 ~sparc x86" fi fi diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.19.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.19.ebuild deleted file mode 100644 index 711f1d01589..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.19.ebuild +++ /dev/null @@ -1,184 +0,0 @@ -# Copyright 2008-2026 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(+)?] - virtual/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(+)] - virtual/zlib:=[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() { - if use verify-sig; then - verify-sig_uncompress_verify_unpack "${DISTDIR}"/${MY_P}.tar.xz \ - "${DISTDIR}"/${MY_P}.tar.sign - 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 - - 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/btrfs-progs/btrfs-progs-7.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-7.0.ebuild new file mode 100644 index 00000000000..c9ec39cb839 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-7.0.ebuild @@ -0,0 +1,184 @@ +# Copyright 2008-2026 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 ~s390 ~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(+)?] + virtual/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(+)] + virtual/zlib:=[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() { + if use verify-sig; then + verify-sig_uncompress_verify_unpack "${DISTDIR}"/${MY_P}.tar.xz \ + "${DISTDIR}"/${MY_P}.tar.sign + 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 + + 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/btrfs-progs/btrfs-progs-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-9999.ebuild index 711f1d01589..c9ec39cb839 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-9999.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 ~s390 ~sparc ~x86" fi fi diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/Manifest index 4d53fded063..53811dd4ffe 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/Manifest @@ -2,3 +2,5 @@ DIST cryptsetup-2.8.3.tar.sign 833 BLAKE2B f03bb85dfdcc3b22ab7141478fb289fb6ff8b DIST cryptsetup-2.8.3.tar.xz 11863620 BLAKE2B 9559fb8cd0d916903c0e491c14f8d30a156672313065f4d58ca02a67293288831e6b5d12e843ae607c604d6a08bed46da887308a9ff87413e413b1cf7756810d SHA512 6aaf5a7e6d716e581b50fce417dad079022ff15d54e8a93697888b030b8defa03a39fd94725c3a8692cd07147573bd7f1c3c41571c488aabd44e4f9def9673e2 DIST cryptsetup-2.8.4.tar.sign 833 BLAKE2B 22264d6a314cb14cabf1614225cc339261ec7dc44c280547a00ee552f6723243591260e0aa793330f4a2a8460840e687847d08923ab3abfea2e11d81a8e3e805 SHA512 b568ea6272960f186c83247c95c666355c44deb9be7508202ec56d0bca8dcfe660ef175f0f0792ebf9c1219f15cd3f24536dffff5e131142c1ead408a5350274 DIST cryptsetup-2.8.4.tar.xz 11880632 BLAKE2B 135721fe1daca13bf5c1116dfe9888d50e617d06f8c2c3cff60bb76ab9d2ef4f91524d8c4185c5f673290b5a7f9dcd83b9ab9c25112500fea9100e30d8a8caf0 SHA512 cf9923552f93d3ca047fa17e2d73923b782e0f5146d9721fb8e1196374185524c2642c1243ea72107aef03a0b0b9d967576a58b1a680dd9b6a17dbf4a4430489 +DIST cryptsetup-2.8.6.tar.sign 833 BLAKE2B 399d3ec4b5bce2abd4d4a3f81f4ca79867ecd12e5e1b3128cb610629ed716877cf23b42bc7c9579f977187aa62541c13df7fa371f89a962e453e3f087e1b5239 SHA512 5299d18b55c119bc80654be8868b9d111aedbe33654ccc64cb0e627d39c5265e960b406884347d4ed4129c39cc3fcd990c1861a80d7958059a17e945df769548 +DIST cryptsetup-2.8.6.tar.xz 11887880 BLAKE2B 1d5ac80bbd2349f727fbb4ff1c7b85e48dbf7bc5a2cb985f23f3c4a482d44043900c0ab4b5190c2cd2d8e6037346d8ed9e1eabb19123c627498fb723776cb677 SHA512 b580e0b384a590447cf21a9d50142e7f799c3dae0fc13999886db45716f95523fa47c795335a27a7282ff1ee67eedd69989c56e6a429016aa957171fe2646d5e diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/cryptsetup-2.8.6-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/cryptsetup-2.8.6-r1.ebuild new file mode 100644 index 00000000000..2fb701e205e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/cryptsetup-2.8.6-r1.ebuild @@ -0,0 +1,177 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# TODO: meson (not just yet as of 2.8.0, see https://gitlab.com/cryptsetup/cryptsetup/-/issues/949#note_2585304492) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/milanbroz.asc +inherit linux-info tmpfiles verify-sig + +DESCRIPTION="Tool to setup encrypted devices with dm-crypt" +HOMEPAGE="https://gitlab.com/cryptsetup/cryptsetup" +SRC_URI=" + https://www.kernel.org/pub/linux/utils/${PN}/v$(ver_cut 1-2)/${P/_/-}.tar.xz + verify-sig? ( https://www.kernel.org/pub/linux/utils/${PN}/v$(ver_cut 1-2)/${P/_/-}.tar.sign ) +" +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" +fi + +CRYPTO_BACKENDS="gcrypt kernel nettle +openssl" +# we don't support nss since it doesn't allow cryptsetup to be built statically +# and it's missing ripemd160 support so it can't provide full backward compatibility +IUSE="${CRYPTO_BACKENDS} +argon2 fips nls pwquality passwdqc ssh static static-libs test +udev urandom" +RESTRICT="!test? ( test )" +# bug #496612, bug #832711, bug #843863 +REQUIRED_USE=" + ?? ( pwquality passwdqc ) + ^^ ( ${CRYPTO_BACKENDS//+/} ) + static? ( !ssh !udev !fips ) + static-libs? ( !passwdqc ) + fips? ( !kernel !nettle ) +" + +LIB_DEPEND=" + dev-libs/json-c:=[static-libs(+)] + dev-libs/popt[static-libs(+)] + >=sys-apps/util-linux-2.31-r1[static-libs(+)] + argon2? ( app-crypt/argon2:=[static-libs(+)] ) + gcrypt? ( + dev-libs/libgcrypt:0=[static-libs(+)] + dev-libs/libgpg-error[static-libs(+)] + ) + nettle? ( >=dev-libs/nettle-2.4[static-libs(+)] ) + openssl? ( dev-libs/openssl:0=[static-libs(+)] ) + pwquality? ( dev-libs/libpwquality[static-libs(+)] ) + passwdqc? ( sys-auth/passwdqc ) + ssh? ( net-libs/libssh[static-libs(+)] net-libs/libssh[sftp(+)] ) + sys-fs/lvm2[static-libs(+)] +" +# We have to always depend on ${LIB_DEPEND} rather than put behind +# !static? () because we provide a shared library which links against +# these other packages. bug #414665 +RDEPEND=" + static-libs? ( ${LIB_DEPEND} ) + ${LIB_DEPEND//\[static-libs\([+-]\)\]} + udev? ( virtual/libudev:= ) +" +DEPEND=" + ${RDEPEND} + static? ( ${LIB_DEPEND} ) +" +# vim-core needed for xxd in tests +BDEPEND=" + virtual/pkgconfig + test? ( app-editors/vim-core ) + verify-sig? ( sec-keys/openpgp-keys-milanbroz ) +" + +pkg_setup() { + local CONFIG_CHECK="~DM_CRYPT ~CRYPTO ~CRYPTO_CBC ~CRYPTO_SHA256" + local WARNING_DM_CRYPT="CONFIG_DM_CRYPT:\tis not set (required for cryptsetup)\n" + local WARNING_CRYPTO_SHA256="CONFIG_CRYPTO_SHA256:\tis not set (required for cryptsetup)\n" + local WARNING_CRYPTO_CBC="CONFIG_CRYPTO_CBC:\tis not set (required for kernel 2.6.19)\n" + local WARNING_CRYPTO="CONFIG_CRYPTO:\tis not set (required for cryptsetup)\n" + + # The kernel crypto backend talks to the in-kernel crypto API via AF_ALG + if use kernel ; then + CONFIG_CHECK+=" ~CRYPTO_USER_API ~CRYPTO_USER_API_HASH ~CRYPTO_USER_API_SKCIPHER" + local WARNING_CRYPTO_USER_API="CONFIG_CRYPTO_USER_API:\tis not set (required for the kernel crypto backend)\n" + local WARNING_CRYPTO_USER_API_HASH="CONFIG_CRYPTO_USER_API_HASH:\tis not set (required for the kernel crypto backend)\n" + local WARNING_CRYPTO_USER_API_SKCIPHER="CONFIG_CRYPTO_USER_API_SKCIPHER:\tis not set (required for the kernel crypto backend)\n" + fi + check_extra_config +} + +src_unpack() { + if use verify-sig; then + verify-sig_uncompress_verify_unpack "${DISTDIR}"/${P/_/-}.tar.xz \ + "${DISTDIR}"/${P/_/-}.tar.sign + else + default + fi +} + +src_prepare() { + default + + sed -i '/^LOOPDEV=/s:$: || exit 0:' tests/{compat,mode}-test || die +} + +src_configure() { + # configure may search for libselinux but it seems to only be for + # statically linking lvm2 + local myeconfargs=( + --disable-internal-argon2 + --disable-asciidoc + --enable-shared + --sbindir="${EPREFIX}"/sbin + # for later use + --with-default-luks-format=LUKS2 + --with-tmpfilesdir="${EPREFIX}/usr/lib/tmpfiles.d" + --with-crypto_backend=$(for x in ${CRYPTO_BACKENDS//+/} ; do usev ${x} ; done) + $(use_enable argon2 libargon2) + $(use_enable nls) + $(use_enable pwquality) + $(use_enable passwdqc) + $(use_enable !static external-tokens) + $(use_enable static static-cryptsetup) + $(use_enable static-libs static) + $(use_enable udev) + $(use_enable !urandom dev-random) + $(use_enable ssh ssh-token) + $(usev !argon2 '--with-luks2-pbkdf=pbkdf2') + $(use_enable fips) + ) + + econf "${myeconfargs[@]}" +} + +src_test() { + if [[ ! -e /dev/mapper/control ]] ; then + ewarn "No /dev/mapper/control found -- skipping tests" + return 0 + fi + + local p + for p in /dev/mapper /dev/loop* ; do + addwrite ${p} + done + + default +} + +src_install() { + default + + if use static ; then + mv "${ED}"/sbin/cryptsetup{.static,} || die + mv "${ED}"/sbin/veritysetup{.static,} || die + mv "${ED}"/sbin/integritysetup{.static,} || die + + if use ssh ; then + mv "${ED}"/sbin/cryptsetup-ssh{.static,} || die + fi + fi + + find "${ED}" -type f -name "*.la" -delete || die + + dodoc docs/v*ReleaseNotes + + newconfd "${FILESDIR}"/2.4.3-dmcrypt.confd dmcrypt + newinitd "${FILESDIR}"/2.4.3-dmcrypt.rc dmcrypt +} + +pkg_postinst() { + tmpfiles_process cryptsetup.conf + + if use kernel ; then + ewarn "Note that kernel backend is very slow for this type of operation" + ewarn "and is provided mainly for embedded systems wanting to avoid" + ewarn "userspace crypto libraries." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/e2fsprogs/e2fsprogs-1.47.4.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/e2fsprogs/e2fsprogs-1.47.4.ebuild index 84180092fbc..378342ebff7 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/e2fsprogs/e2fsprogs-1.47.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/e2fsprogs/e2fsprogs-1.47.4.ebuild @@ -15,7 +15,7 @@ SRC_URI=" LICENSE="GPL-2 BSD" 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="archive cron fuse nls static-libs test +tools" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/Manifest index 819477c5c3c..ddf833b0b35 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/Manifest @@ -1,5 +1,3 @@ DIST fuse-2.9.9.tar.gz 1813177 BLAKE2B 9e9141380bda46eb0bcce325c6fd293fe3844fe884a4952bb38d4b89dc48b728ffcc891038b3a7a861f05acfacce9dd7bb0e11d600609f3ad0ab278ccbe98847 SHA512 3d82fafd04f2924299bb09d2bb144935fa004a43fb9a6568e2e1cc5a60fded2efa1711029a0d7f12b3e6e4501f7217f2ee3545646d89da8dece083cb390f23e2 -DIST fuse-3.16.2.tar.gz 14165836 BLAKE2B 04f0037f924ef7b7cc90cb4c26afd1e942da69efebd93f3114774f2101550729379a0256ba190d7c99249fbce4ead5902133c01b29d8d75f41777d148540f521 SHA512 3e8889863cd67dada67271f095f694dc9e5aaf2561fd1e2285aee95b5a54e692bb195ab8fce57fc2bdf08d0ea17b6d56ca4967b4e4371d639d6133907b2370d3 -DIST fuse-3.17.4.tar.gz 7307414 BLAKE2B eb9dfd5c446a35f7ef0b6b58c52fe22d306782f5a8b56dc54b00829aa8a59700bd2b03755cc58221d154b88cbdb3da59913700b3d7efa67a586bfaa8fef00e9d SHA512 5451b374ceadb4cb5a8f0c396f1111932ec63984b80dfad7a76258c026b4e8e5ab4a563bb4a9e272d7fa62a5f452113885d4c3ea080a9f56b6aeb85d50c01010 -DIST fuse-3.18.1.tar.gz 8350400 BLAKE2B b0a38794b8eb932f7b23314afdaeacbdd302e9f9037794f5dceb87b22f19de8d125ec0112ee28751b94063324c872e03c26e3128c6cd817858245f7df5acd7ef SHA512 02a6ed591e3a634893ab9a621ccc3b745abda06c5da5a4f2a7cc5a1740ddf8199c841f987bcbc8958fc134c2d773055a06cf25aeb6ef55204a4598b99371cb0b +DIST fuse-3.18.2.tar.gz 4933779 BLAKE2B 852ac7e268cb290bcd0efec5e08f5ab09a2c1b87c168fc51e7f5a6da7d820a914106ec2cc4ec02e27b6e2adce60762f06ad299c9dea7f0295ef6331d7ecf9a85 SHA512 b2ca702b74788230981d05dc85458ee3582970dcb1526e7eda8f46e23d0373b361ef1438874a7caa46aaf02a5b84f7e5341fbe61e856cfbce849d1209b4aabbe DIST iconv.m4.bz2 3057 BLAKE2B 9d8f7637d87bfcea1b60f3ea11e162aecf391b3f4579a3b85afb01735f56bfbae363a7e781279f3b2bed0d1dd3336f7d0678d3b1d59004824d7d0ca848dceb6e SHA512 9899368b8acc06e216a7a548b83a894f780e152a02612cd52af02b5c3f2ff38e2c36e77bda300587f81c3d74c90addec8066885216fa0e74f3f3280a383d2b55 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.16.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.16.2.ebuild deleted file mode 100644 index aacd083a980..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.16.2.ebuild +++ /dev/null @@ -1,79 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{10..12} ) -inherit flag-o-matic meson-multilib udev python-any-r1 - -DESCRIPTION="An interface for filesystems implemented in userspace" -HOMEPAGE="https://github.com/libfuse/libfuse" -SRC_URI="https://github.com/libfuse/libfuse/releases/download/${P}/${P}.tar.gz" - -LICENSE="GPL-2 LGPL-2.1" -SLOT="3" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="+suid test" -RESTRICT="test" -PROPERTIES="test_privileged" - -BDEPEND=" - virtual/pkgconfig - test? ( - ${PYTHON_DEPS} - $(python_gen_any_dep 'dev-python/pytest[${PYTHON_USEDEP}]') - $(python_gen_any_dep 'dev-python/looseversion[${PYTHON_USEDEP}]') - ) -" -RDEPEND=">=sys-fs/fuse-common-3.3.0-r1" - -DOCS=( AUTHORS ChangeLog.rst README.md doc/README.NFS doc/kernel.txt ) - -python_check_deps() { - python_has_version "dev-python/pytest[${PYTHON_USEDEP}]" && - python_has_version "dev-python/looseversion[${PYTHON_USEDEP}]" -} - -pkg_setup() { - use test && python-any-r1_pkg_setup -} - -multilib_src_configure() { - # bug #853058 - filter-lto - - local emesonargs=( - $(meson_use test examples) - $(meson_use test tests) - -Duseroot=false - -Dinitscriptdir= - -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d" - ) - meson_src_configure -} - -src_test() { - # For tests to pass: - # sandbox must be disabled. - # Write access to /dev/cuse* and /dev/fuse is required. - # root must be a member of the portage group; CAP_DAC_OVERRIDE is dropped. - # TMPDIR must be short for unix socket paths. - local -x TMPDIR=/tmp - multilib-minimal_src_test -} - -multilib_src_test() { - epytest -} - -multilib_src_install_all() { - # Installed via fuse-common - rm -r "${ED}"{/etc,$(get_udevdir)} || die - - # useroot=false prevents the build system from doing this. - use suid && fperms u+s /usr/bin/fusermount3 - - # manually install man pages to respect compression - rm -r "${ED}"/usr/share/man || die - doman doc/{fusermount3.1,mount.fuse3.8} -} 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 deleted file mode 100644 index 353fc68f5c9..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.17.4.ebuild +++ /dev/null @@ -1,79 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..13} ) -inherit flag-o-matic meson-multilib udev python-any-r1 - -DESCRIPTION="An interface for filesystems implemented in userspace" -HOMEPAGE="https://github.com/libfuse/libfuse" -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" -IUSE="+suid test" -RESTRICT="test" -PROPERTIES="test_privileged" - -BDEPEND=" - virtual/pkgconfig - test? ( - ${PYTHON_DEPS} - $(python_gen_any_dep 'dev-python/pytest[${PYTHON_USEDEP}]') - $(python_gen_any_dep 'dev-python/looseversion[${PYTHON_USEDEP}]') - ) -" -RDEPEND=">=sys-fs/fuse-common-3.3.0-r1" - -DOCS=( AUTHORS ChangeLog.rst README.md doc/README.NFS doc/kernel.txt ) - -python_check_deps() { - python_has_version "dev-python/pytest[${PYTHON_USEDEP}]" && - python_has_version "dev-python/looseversion[${PYTHON_USEDEP}]" -} - -pkg_setup() { - use test && python-any-r1_pkg_setup -} - -multilib_src_configure() { - # bug #853058 - filter-lto - - local emesonargs=( - $(meson_use test examples) - $(meson_use test tests) - -Duseroot=false - -Dinitscriptdir= - -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d" - ) - meson_src_configure -} - -src_test() { - # For tests to pass: - # sandbox must be disabled. - # Write access to /dev/cuse* and /dev/fuse is required. - # root must be a member of the portage group; CAP_DAC_OVERRIDE is dropped. - # TMPDIR must be short for unix socket paths. - local -x TMPDIR=/tmp - multilib-minimal_src_test -} - -multilib_src_test() { - epytest -} - -multilib_src_install_all() { - # Installed via fuse-common - rm -r "${ED}"{/etc,$(get_udevdir)} || die - - # useroot=false prevents the build system from doing this. - use suid && fperms u+s /usr/bin/fusermount3 - - # manually install man pages to respect compression - rm -r "${ED}"/usr/share/man || die - doman doc/{fusermount3.1,mount.fuse3.8} -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.18.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.18.2.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.18.1.ebuild rename to sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.18.2.ebuild diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/lvm2/lvm2-2.03.38.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/lvm2/lvm2-2.03.38.ebuild index ddd6bf41c67..526a82f8ec2 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/lvm2/lvm2-2.03.38.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/lvm2/lvm2-2.03.38.ebuild @@ -13,7 +13,7 @@ S="${WORKDIR}/${PN^^}.${PV}" LICENSE="GPL-2 LGPL-2.1" 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="lvm nvme readline sanlock selinux static static-libs systemd test thin +udev valgrind xfs" REQUIRED_USE=" static? ( !systemd !udev !nvme ) diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/lvm2/lvm2-2.03.39.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/lvm2/lvm2-2.03.39.ebuild index b9704da3e74..d4a07464edb 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/lvm2/lvm2-2.03.39.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/lvm2/lvm2-2.03.39.ebuild @@ -13,7 +13,7 @@ S="${WORKDIR}/${PN^^}.${PV}" LICENSE="GPL-2 LGPL-2.1" 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="lvm nvme readline sanlock selinux static static-libs systemd test thin +udev valgrind vdo xfs" REQUIRED_USE=" static? ( !systemd !udev !nvme ) diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/lvm2/lvm2-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/lvm2/lvm2-9999.ebuild index 2412519d2eb..0663a44257c 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/lvm2/lvm2-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/lvm2/lvm2-9999.ebuild @@ -6,27 +6,30 @@ EAPI=8 TMPFILES_OPTIONAL=1 inherit autotools linux-info systemd toolchain-funcs tmpfiles udev flag-o-matic +DESCRIPTION="User-land utilities for LVM2 (device-mapper) software" +HOMEPAGE="https://sourceware.org/lvm2/" + if [[ ${PV} == 9999 ]]; then inherit git-r3 EGIT_REPO_URI="https://gitlab.com/lvmteam/lvm2.git" else SRC_URI="https://sourceware.org/ftp/lvm2/${PN^^}.${PV}.tgz" S="${WORKDIR}/${PN^^}.${PV}" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" fi -DESCRIPTION="User-land utilities for LVM2 (device-mapper) software" -HOMEPAGE="https://sourceware.org/lvm2/" - LICENSE="GPL-2 LGPL-2.1" SLOT="0" -IUSE="lvm nvme readline sanlock selinux static static-libs systemd test thin +udev valgrind xfs" +IUSE="lvm nvme readline sanlock selinux static static-libs systemd test thin +udev valgrind vdo xfs" REQUIRED_USE=" static? ( !systemd !udev !nvme ) static-libs? ( static !udev ) systemd? ( udev ) test? ( lvm ) thin? ( lvm ) + sanlock? ( lvm ) + vdo? ( lvm ) " RESTRICT="!test? ( test )" @@ -40,7 +43,9 @@ DEPEND_COMMON=" readline? ( sys-libs/readline:= ) sanlock? ( >=sys-cluster/sanlock-4.0.0 ) systemd? ( >=sys-apps/systemd-234:= ) + vdo? ( >=sys-block/vdo-8.3.2.1 ) ) + nvme? ( >=sys-libs/libnvme-1.1 ) " # /run is now required for locking during early boot. /var cannot be assumed to # be available -- thus, pull in recent enough baselayout for /run. @@ -49,7 +54,6 @@ RDEPEND=" ${DEPEND_COMMON} >=sys-apps/baselayout-2.2 lvm? ( virtual/tmpfiles ) - nvme? ( >=sys-libs/libnvme-1.1 ) " PDEPEND=" @@ -136,7 +140,6 @@ src_configure() { $(use_enable lvm cmdlib) $(use_enable lvm fsadm) $(use_enable lvm lvmpolld) - # This only causes the .static versions to become available $(usev static --enable-static_link) @@ -144,6 +147,9 @@ src_configure() { # so we cannot disable them --with-mirrors="$(usex lvm internal none)" --with-snapshots="$(usex lvm internal none)" + # vdo is internal or none only + --with-vdo="$(usex vdo internal none)" + ) if use lvm && use thin; then diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/lxcfs/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/lxcfs/Manifest index 36969330472..4cb507ef57e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/lxcfs/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-fs/lxcfs/Manifest @@ -4,3 +4,5 @@ DIST lxcfs-6.0.5.tar.gz 106565 BLAKE2B 1a726165be6670c7da4cab3e401e81229ba34f085 DIST lxcfs-6.0.5.tar.gz.asc 833 BLAKE2B 58a12c083bf4b1d5138aec172223eed1d79284c6d48cc7262f9e9dac479894f094d6a8f2051aee9352c99947a638bb891cd48690d194e3d4b4392231ff8ebaef SHA512 c50289168d1a6c970dcffe61dcf2ee5296420c91cd8638b0f285e53e07b0e0d3704a199c8eceee2d282b2906e430165e86315271a9bd9335a91252727c2c921c DIST lxcfs-6.0.6.tar.gz 107250 BLAKE2B 450c82293cc02477261e7b1b00e89e4ce293d2c991525b42ebf10de8ed88b221680ab05c1b41b763b02d7a53cbce7beb05e84d6218c8add46e564723c9b1004f SHA512 cf8801c3b990e0630983cb42e2093e8f66ef5ae185b206b1ba1429edf199cefe1cd36dc6024453ecf2917c16b83e4ea1516a58dcbf61a5df0a4afbecb0cfff82 DIST lxcfs-6.0.6.tar.gz.asc 833 BLAKE2B 69d03a0089c2b9141816bf1b1c778cd8563afdac12f83546ee16ec8497ae17d16a2ae335dc3fa29bae3fe827b8ba7dd161568156cd6231cb85731dc9993bdccb SHA512 e5b76c82577689f26d4d44808d37af5530f7dfdeed8a104a0c7eddc541902bf4cfdabbdae681c7917418f8461a527baf2b70d07f03b396e808537bb327c7864c +DIST lxcfs-7.0.0.tar.gz 100168 BLAKE2B feefc31c1f544fa7d261cd9c9faa13bfd8da876185b40955359bb20e4e3304b476e8a60f9b8463467aa483708a58007dc8314bad693268208050fd957ce883cc SHA512 115c712178047d1450f4f12ec97177f886a036f767172d028b8bb054df0250cd9e7c74d73d73b841b13631e07302dd4cda537a7504d2ab06c359d16909098b48 +DIST lxcfs-7.0.0.tar.gz.asc 833 BLAKE2B 5ac2f8c74bd8bc26f1d4a469ccaa598052c537bb286c8e8fb5cf423318234ce08902094b087c1f58845e1f63bc97fd0f3470cd03ae3e2d855f3150ef6328d43b SHA512 e88c78802023954e8da01d8b77defdb62566c84666ef72e12328406a2c74469bc0212998a5c9cb75afec50a290e723a6715d5543323884591c997f8794c2814a diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/lxcfs/lxcfs-7.0.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/lxcfs/lxcfs-7.0.0.ebuild new file mode 100644 index 00000000000..daeb2f2bcb5 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/lxcfs/lxcfs-7.0.0.ebuild @@ -0,0 +1,82 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..14} ) + +inherit meson python-any-r1 systemd verify-sig + +DESCRIPTION="FUSE filesystem for LXC" +HOMEPAGE="https://linuxcontainers.org/lxcfs/introduction/ https://github.com/lxc/lxcfs/" +SRC_URI="https://linuxcontainers.org/downloads/lxcfs/${P}.tar.gz + verify-sig? ( https://linuxcontainers.org/downloads/lxcfs/${P}.tar.gz.asc )" + +LICENSE="Apache-2.0 LGPL-2+" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~riscv ~x86" +IUSE="doc test" + +DEPEND="sys-fs/fuse:3=" +RDEPEND="${DEPEND}" +BDEPEND="${PYTHON_DEPS} + virtual/pkgconfig + $(python_gen_any_dep ' + dev-python/jinja2[${PYTHON_USEDEP}] + ') + doc? ( sys-apps/help2man ) + verify-sig? ( sec-keys/openpgp-keys-linuxcontainers )" + +# Needs some black magic to work inside container/chroot. +RESTRICT="test" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/linuxcontainers.asc + +python_check_deps() { + python_has_version -b "dev-python/jinja2[${PYTHON_USEDEP}]" +} + +pkg_setup() { + python-any-r1_pkg_setup +} + +src_prepare() { + default + + # Fix python shebangs for python-exec[-native-symlinks], #851480 + local shebangs=($(grep -rl "#!/usr/bin/env python3" || die)) + python_fix_shebang -q ${shebangs[*]} +} + +src_configure() { + local emesonargs=( + --localstatedir "${EPREFIX}/var" + + $(meson_use doc docs) + $(meson_use test tests) + + -Dfuse-version=3 + -Dinit-script="" + -Dmocks=false + -Dwith-init-script="" + ) + + meson_src_configure +} + +src_test() { + cd "${BUILD_DIR}"/tests || die "failed to change into tests/ directory." + ./main.sh || die +} + +src_install() { + meson_src_install + + newconfd "${FILESDIR}"/lxcfs-5.0.2.confd lxcfs + newinitd "${FILESDIR}"/lxcfs-5.0.2.initd lxcfs + + # Provide our own service file (copy of upstream) due to paths being different from upstream, + # #728470 + # https://github.com/lxc/lxcfs/tree/main/config/init + systemd_newunit "${FILESDIR}"/lxcfs-5.0.2.service lxcfs.service +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/Manifest index fedaa62edbb..c9c5d912abb 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/Manifest @@ -1,4 +1,6 @@ DIST mdadm-4.4.tar.gz 619823 BLAKE2B d368681d94e31db2127a1114ad21b76647ee4b62f701705a93ca8482a58ec10d9cd58c5394bb346da0c58339f759fa6168441250a504931e43c0943b74ceef85 SHA512 08682b27f41a230f188d3b61e22e95ff8808b36c8fc2cba1dff443d39a72b35ba2eaf29ed64c7e5583c177fe6b71df983ec9a80a4128d8f07d58b7435d4700f6 DIST mdadm-4.5.tar.gz 623840 BLAKE2B 6cfa80514b4d51c2e8c5e3275ec3dce1a59c509fd83dbc41d395e47ed59c19df30b0382cf6dc5f3c6faf973296e341bc5e461303b3a0f6ce58da887ef0e8a418 SHA512 2b13cca2ffb8d3d4a80120016f3f646c61afa42c8c074502aaa7b1cd1fa908614f2080e575ab03d21f6fb954bc7663706622bba787af653c51ba3f8f741e8e6f +DIST mdadm-4.6.tar.gz 625532 BLAKE2B 5a2c523670cc659397b0d36f1026f944e630d422e16d3830bb5d94a03ac84118d99553f7f7d555e3f8cd445908cb2519725bc56d9516de24dd837ecdea0be3bc SHA512 d11eefdffedefecea0786f7ec034305339b7d93d75916eb9501726de0a296dc668c8d0091d1c130805a5d47122ad6d944e46bd723430c15414a360c35d8b06be DIST mdadm_4.4-3.debian.tar.xz 88948 BLAKE2B 48d2af9477b420f1bbaffebbeaf2389038f8f58846264fcda5f25d72c64c5543a2cd73eb3fba4c7dc834810e3367f571628bdcc43989724f773fc3789514c765 SHA512 8be55fb40e21ad4026339e8e03df1c4889b66f36d4c41627dd60528dc424e5faa10cb20e8e3fbe737eb9af4705eed10bd4e7017353e773ac73cbeaaa3670d2ff DIST mdadm_4.5-5.debian.tar.xz 92056 BLAKE2B da078b4d7f718ff57ad67cc8aaf572cab3e0bf434eb91fb581f71d41d6087f8c807731d1336e35e6cdc3e6dbbdfd1f8f62138b5a60e6de969d04c143b72cfbf9 SHA512 53e31549b3140ad049d76b57a5f5c8de2b46fdaebdac001ceb29e5aaade00e6dae681928eb9bd4572068506a420397e824d43e757a6c628fb21b111a2732e0e5 +DIST mdadm_4.6-1.debian.tar.xz 89472 BLAKE2B f56e2c5f9203b8c5538e15ae6c9d87d26a47efb224eb20204f504c3ebe7c71684a798477b3e38f6cf16d2c66761d0b2d88268557134fcab7c37180bc63e9812b SHA512 8e035346a5cf050d6a8819d93f8f9aac6a3f1477b151e5bef446f05918ed639e7259ced76359aeb2aa309ee738f5170cdb52e5f6ecb8f51d79b1c92bb2b4db42 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.6-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.6-r1.ebuild new file mode 100644 index 00000000000..e34c42a6ab2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mdadm/mdadm-4.6-r1.ebuild @@ -0,0 +1,118 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic systemd toolchain-funcs udev + +DEB_PF="4.6-1" +DESCRIPTION="Tool for running RAID systems - replacement for the raidtools" +HOMEPAGE="https://github.com/md-raid-utilities/mdadm https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/" +SRC_URI="https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/snapshot/${P}.tar.gz" +SRC_URI+=" mirror://debian/pool/main/m/mdadm/${PN}_${DEB_PF}.debian.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86" +fi +IUSE="static systemd +udev corosync" +REQUIRED_USE="static? ( !udev )" + +BDEPEND="virtual/pkgconfig" +DEPEND=" + udev? ( virtual/libudev:= ) + corosync? ( sys-cluster/corosync ) +" +RDEPEND=" + ${DEPEND} + >=sys-apps/util-linux-2.16 +" + +# The tests edit values in /proc and run tests on software raid devices. +# Thus, they shouldn't be run on systems with active software RAID devices. +RESTRICT="test" + +PATCHES=( + "${WORKDIR}/debian/patches/debian" +) + +mdadm_emake() { + # We should probably make libdlm into USE flags (bug #573782) + local args=( + PKG_CONFIG="$(tc-getPKG_CONFIG)" + CC="$(tc-getCC)" + CWFLAGS="-Wall -fPIE" + CXFLAGS="${CFLAGS}" + LDFLAGS="${LDFLAGS}" + UDEVDIR="$(get_udevdir)" + SYSTEMD_DIR="$(systemd_get_systemunitdir)" + COROSYNC="$(usev !corosync '-DNO_COROSYNC')" + DLM="-DNO_DLM" + + # bug #732276 + STRIP= + + "$@" + ) + + emake "${args[@]}" +} + +src_compile() { + use static && append-ldflags -static + + # CPPFLAGS won't work for this + use udev || append-cflags -DNO_LIBUDEV + + # bug 907082 + use elibc_musl && append-cppflags -D_LARGEFILE64_SOURCE + + mdadm_emake all +} + +src_test() { + mdadm_emake test + + sh ./test || die +} + +src_install() { + mdadm_emake DESTDIR="${D}" install install-systemd + + einstalldocs + + insinto /etc + newins documentation/mdadm.conf-example mdadm.conf + newinitd "${FILESDIR}"/mdadm.rc mdadm + newconfd "${FILESDIR}"/mdadm.confd mdadm + newinitd "${FILESDIR}"/mdraid.rc mdraid + newconfd "${FILESDIR}"/mdraid.confd mdraid + + # From the Debian patchset + into /usr + dodoc "${WORKDIR}"/debian/local/doc/README.checkarray + dosbin "${WORKDIR}"/debian/local/bin/checkarray + insinto /etc/default + newins "${FILESDIR}"/etc-default-mdadm mdadm + + exeinto /etc/cron.weekly + newexe "${FILESDIR}"/mdadm.weekly mdadm +} + +pkg_postinst() { + udev_reload + + if ! systemd_is_booted; then + if [[ -z ${REPLACING_VERSIONS} ]] ; then + # Only inform people the first time they install. + elog "If you're not relying on kernel auto-detect of your RAID" + elog "devices, you need to add 'mdraid' to your 'boot' runlevel:" + elog " rc-update add mdraid boot" + fi + fi +} + +pkg_postrm() { + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mtools/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/mtools/Manifest index 22ad5323d77..f122930765d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/mtools/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mtools/Manifest @@ -1,4 +1 @@ -DIST mtools-4.0.46.tar.lz 391300 BLAKE2B 997e766b215aebefb23d57f357ea0b95db62a7e3b40712597c38aa11c0f9c47dc43b0b6a34bfa2b976ec8298ed221c5d7d81e9f16dbeb0a4812e3a6cbff16a16 SHA512 1af737cc4793a2e6afe14b5595f085f8aa29e58bf4d8ba89454c7b9a10041a0ebe06fd50b525332c38805c7a9b014fc4379ae1cc259da7626974c6b6a061e727 -DIST mtools-4.0.47.tar.lz 391656 BLAKE2B 52fdfdaaea09cf3809b0432237b1491be9c2869fe839e951f11178970ebbc82d9dc4bc6446015e50f44098171493c4d4d191d23c03a0b83819b1dd66934493f1 SHA512 7d3db137a121f5fa54b1b2565048a3be5ac197f25240da037c8200232a0282b1541eb220359e6759e96e77836d2babc0b5a9894c91c5ba7b87b9acc5d1458c81 -DIST mtools-4.0.48.tar.lz 396333 BLAKE2B 3305f79bb7c67040a2df3cccfb2e5e7fde721c8b21f0a1eec1f34a7733596cd6d80135b21595b0b0d8ca6a556d23e891880adcc5122e7c9e128561842df4ffcc SHA512 a352ac557341a594009c7adf44964bc3e4ac31d7fbcfe8a52d70c3b3a06ac134d176f52515d5a7d9aef0563c14967fd80385dc0b84a979abed1f221156ff22a0 DIST mtools-4.0.49.tar.lz 397000 BLAKE2B 239909e2a296875dd0a875f48296ee94e5f7781755e4690694b9ea6fa243582018cffbecd1750401ab55defea0a42f345ea828a5cfc3264eeb9d46373913b24a SHA512 b357a23143783ed860ea8e434a9f1c6be71b39ac10e106388c2986367f82b3bda9858340b8de3b6025193ee18729783560dce7c3e3a3595fd3aa6048837df518 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mtools/mtools-4.0.46.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/mtools/mtools-4.0.46.ebuild deleted file mode 100644 index 1ec590ada76..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/mtools/mtools-4.0.46.ebuild +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit flag-o-matic unpacker - -DESCRIPTION="Utilities to access MS-DOS disks from Unix without mounting them" -HOMEPAGE="https://www.gnu.org/software/mtools/ https://savannah.gnu.org/projects/mtools" -SRC_URI="mirror://gnu/${PN}/${P}.tar.lz" - -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86 ~x64-macos ~x64-solaris" -IUSE="gui" - -RDEPEND=" - virtual/libiconv - gui? ( - x11-libs/libICE - x11-libs/libXau - x11-libs/libSM - x11-libs/libX11 - x11-libs/libXt - ) -" -DEPEND="${RDEPEND}" -BDEPEND="$(unpacker_src_uri_depends)" - -src_configure() { - if ! use elibc_glibc && ! use elibc_musl ; then - # bug #447688 - append-libs "-liconv" - fi - - local myeconfargs=( - --sysconfdir="${EPREFIX}"/etc/mtools - $(use_with gui x) - ) - - econf "${myeconfargs[@]}" -} - -src_install() { - local -a DOCS=( README* Release.notes ) - - default - - insinto /etc/mtools - doins mtools.conf - - # Default is fine - sed -i -e '/^SAMPLE FILE$/s:^:#:' "${ED}"/etc/mtools/mtools.conf || die -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mtools/mtools-4.0.47.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/mtools/mtools-4.0.47.ebuild deleted file mode 100644 index 1ec590ada76..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/mtools/mtools-4.0.47.ebuild +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit flag-o-matic unpacker - -DESCRIPTION="Utilities to access MS-DOS disks from Unix without mounting them" -HOMEPAGE="https://www.gnu.org/software/mtools/ https://savannah.gnu.org/projects/mtools" -SRC_URI="mirror://gnu/${PN}/${P}.tar.lz" - -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86 ~x64-macos ~x64-solaris" -IUSE="gui" - -RDEPEND=" - virtual/libiconv - gui? ( - x11-libs/libICE - x11-libs/libXau - x11-libs/libSM - x11-libs/libX11 - x11-libs/libXt - ) -" -DEPEND="${RDEPEND}" -BDEPEND="$(unpacker_src_uri_depends)" - -src_configure() { - if ! use elibc_glibc && ! use elibc_musl ; then - # bug #447688 - append-libs "-liconv" - fi - - local myeconfargs=( - --sysconfdir="${EPREFIX}"/etc/mtools - $(use_with gui x) - ) - - econf "${myeconfargs[@]}" -} - -src_install() { - local -a DOCS=( README* Release.notes ) - - default - - insinto /etc/mtools - doins mtools.conf - - # Default is fine - sed -i -e '/^SAMPLE FILE$/s:^:#:' "${ED}"/etc/mtools/mtools.conf || die -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mtools/mtools-4.0.48.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/mtools/mtools-4.0.48.ebuild deleted file mode 100644 index 1ec590ada76..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/mtools/mtools-4.0.48.ebuild +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit flag-o-matic unpacker - -DESCRIPTION="Utilities to access MS-DOS disks from Unix without mounting them" -HOMEPAGE="https://www.gnu.org/software/mtools/ https://savannah.gnu.org/projects/mtools" -SRC_URI="mirror://gnu/${PN}/${P}.tar.lz" - -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86 ~x64-macos ~x64-solaris" -IUSE="gui" - -RDEPEND=" - virtual/libiconv - gui? ( - x11-libs/libICE - x11-libs/libXau - x11-libs/libSM - x11-libs/libX11 - x11-libs/libXt - ) -" -DEPEND="${RDEPEND}" -BDEPEND="$(unpacker_src_uri_depends)" - -src_configure() { - if ! use elibc_glibc && ! use elibc_musl ; then - # bug #447688 - append-libs "-liconv" - fi - - local myeconfargs=( - --sysconfdir="${EPREFIX}"/etc/mtools - $(use_with gui x) - ) - - econf "${myeconfargs[@]}" -} - -src_install() { - local -a DOCS=( README* Release.notes ) - - default - - insinto /etc/mtools - doins mtools.conf - - # Default is fine - sed -i -e '/^SAMPLE FILE$/s:^:#:' "${ED}"/etc/mtools/mtools.conf || die -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/multipath-tools/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/multipath-tools/Manifest index c59e1baaabd..b279915355f 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/multipath-tools/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-fs/multipath-tools/Manifest @@ -1,2 +1 @@ DIST multipath-tools-0.14.3.tar.gz 623654 BLAKE2B b59cb622f50299b3f0c0c6ede89fed5dc3641a8833b57369a1878468912bece7472be226a52d16008f71ac78fedd903d474dfb4d536b0a6e697e4d57edaad25b SHA512 8434396da58636d0f7082fdbca2ee8f1e50c38e39d9c1e00a8a235f18d3bc34973a3d7c6c011ba8a1a48454a3b9366c5a7ccce57d2ddc0ed2decc013a8f9728e -DIST multipath-tools-0.9.8.tar.gz 580531 BLAKE2B 66bc6b78795c08b4fe5f4bc718330be51b073dddb597998f384ccaf746c0b9e53e21d674623df03ed7f9ccd9800fe988add8068e0eaaeace076c00395453ba0a SHA512 4d73bcf6bce769a829c306c609b206ddba65a708620f458106e406dd18d12f9a9d97f400662daa8e6a75c9fdf7decb6dcbda92cb807b6c53522c7b4b2795b627 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/multipath-tools/files/multipath-tools-0.9.7-remove-Werror.patch b/sdk_container/src/third_party/portage-stable/sys-fs/multipath-tools/files/multipath-tools-0.9.7-remove-Werror.patch deleted file mode 100644 index 449746e1f66..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/multipath-tools/files/multipath-tools-0.9.7-remove-Werror.patch +++ /dev/null @@ -1,49 +0,0 @@ -diff --git a/Makefile.inc b/Makefile.inc -index 6b45430..c47f82f 100644 ---- a/Makefile.inc -+++ b/Makefile.inc -@@ -96,7 +96,7 @@ MODPROBE_UNIT := $(shell test "0$(SYSTEMD)" -lt 245 2>/dev/null || \ - echo "modprobe@dm_multipath.service") - - OPTFLAGS := -O2 -g $(STACKPROT) --param=ssp-buffer-size=4 --WARNFLAGS := -Werror -Wall -Wextra -Wformat=2 $(WFORMATOVERFLOW) -Werror=implicit-int \ -+WARNFLAGS := -Wall -Wextra -Wformat=2 $(WFORMATOVERFLOW) -Werror=implicit-int \ - -Werror=implicit-function-declaration -Werror=format-security \ - $(WNOCLOBBERED) -Werror=cast-qual $(ERROR_DISCARDED_QUALIFIERS) $(W_URCU_TYPE_LIMITS) - CPPFLAGS := $(FORTIFY_OPT) $(CPPFLAGS) $(D_URCU_VERSION) \ -diff --git a/create-config.mk b/create-config.mk -index 4d318b9..1d4ff2d 100644 ---- a/create-config.mk -+++ b/create-config.mk -@@ -64,7 +64,7 @@ check_var = $(shell \ - # gcc 4.8 compiles blacklist.c only with -Wno-missing-field-initializers - TEST_MISSING_INITIALIZERS = $(shell \ - echo 'struct A {int a, b;}; struct B {struct A a; int b;} b = {.a.a=1};' | \ -- $(CC) -c -Werror -Wmissing-field-initializers -o /dev/null -xc - >/dev/null 2>&1 \ -+ $(CC) -c -Wmissing-field-initializers -o /dev/null -xc - >/dev/null 2>&1 \ - || echo -Wno-missing-field-initializers) - - # gcc 4.8.4 and certain versions of liburcu fail to compile this with -Werror=type-limits -@@ -136,7 +136,7 @@ SYSTEMD := $(strip $(or $(shell $(PKG_CONFIG) --modversion libsystemd 2>/dev/nul - # Evaluates to "option" if yes, and "fallback" otherwise. - TEST_CC_OPTION = $(shell \ - if echo 'int main(void){return 0;}' | \ -- $(CC) -o /dev/null -c -Werror "$(1)" -xc - >/dev/null 2>&1; \ -+ $(CC) -o /dev/null -c "$(1)" -xc - >/dev/null 2>&1; \ - then \ - echo "$(1)"; \ - else \ -@@ -148,11 +148,11 @@ TEST_CC_OPTION = $(shell \ - # but it doesn't seem to make a difference wrt the compilation result. - FORTIFY_OPT := $(shell \ - if /bin/echo -e '$(__HASH__)include \nint main(void) { return 0; }' | \ -- $(CC) -o /dev/null $(OPTFLAGS) -c -Werror -D_FORTIFY_SOURCE=3 -xc - 2>/dev/null; \ -+ $(CC) -o /dev/null $(OPTFLAGS) -c -D_FORTIFY_SOURCE=3 -xc - 2>/dev/null; \ - then \ - echo "-D_FORTIFY_SOURCE=3"; \ - elif /bin/echo -e '$(__HASH__)include \nint main(void) { return 0; }' | \ -- $(CC) -o /dev/null $(OPTFLAGS) -c -Werror -D_FORTIFY_SOURCE=2 -xc - 2>/dev/null; \ -+ $(CC) -o /dev/null $(OPTFLAGS) -c -D_FORTIFY_SOURCE=2 -xc - 2>/dev/null; \ - then \ - echo "-D_FORTIFY_SOURCE=2"; \ - fi) diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/multipath-tools/multipath-tools-0.14.3.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/multipath-tools/multipath-tools-0.14.3.ebuild index 37c5bb28f1c..faf9716af48 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/multipath-tools/multipath-tools-0.14.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/multipath-tools/multipath-tools-0.14.3.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://github.com/opensvc/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P} LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha amd64 ~arm arm64 ~loong ppc ppc64 ~riscv x86" +KEYWORDS="~alpha amd64 ~arm arm64 ~loong ppc ppc64 ~riscv ~s390 x86" IUSE="systemd test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/multipath-tools/multipath-tools-0.9.8-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/multipath-tools/multipath-tools-0.9.8-r1.ebuild deleted file mode 100644 index db3d55366b3..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/multipath-tools/multipath-tools-0.9.8-r1.ebuild +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit flag-o-matic linux-info systemd tmpfiles toolchain-funcs udev - -DESCRIPTION="Device mapper target autoconfig" -HOMEPAGE="http://christophe.varoqui.free.fr/" -SRC_URI="https://github.com/opensvc/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 ~arm arm64 ~loong ppc ppc64 ~riscv x86" -IUSE="systemd test" -RESTRICT="!test? ( test )" - -RDEPEND=" - dev-libs/json-c:= - dev-libs/libaio - dev-libs/userspace-rcu:= - >=sys-fs/lvm2-2.02.45 - sys-libs/readline:= - >=virtual/libudev-232-r3 - systemd? ( sys-apps/systemd ) -" -DEPEND=" - ${RDEPEND} - test? ( dev-util/cmocka ) -" -BDEPEND="virtual/pkgconfig" - -CONFIG_CHECK="~DM_MULTIPATH" - -PATCHES=( - "${FILESDIR}"/${PN}-0.9.7-remove-Werror.patch -) - -myemake() { - local myemakeargs=( - prefix="${EPREFIX}" - usr_prefix="${EPREFIX}/usr" - LIB="$(get_libdir)" - RUN=run - plugindir="${EPREFIX}/$(get_libdir)/multipath" - unitdir="$(systemd_get_systemunitdir)" - libudevdir="${EPREFIX}$(get_udevdir)" - GENTOO_CFLAGS="${CFLAGS}" - GENTOO_CPPFLAGS="${CPPFLAGS}" - FORTIFY_OPT= - OPTFLAGS= - FAKEVAR=1 - V=1 - ) - - if ! use systemd; then - # Bug 956025 - myemakeargs+=( SYSTEMD= ) - fi - - emake "${myemakeargs[@]}" "$@" -} - -src_prepare() { - default - - sed -r -i -e '/^(CPPFLAGS|CFLAGS)\>/s,^(CPPFLAGS|CFLAGS)\>[[:space:]]+:=,\1 := $(GENTOO_\1),' \ - "${S}"/Makefile.inc || die -} - -src_compile() { - tc-export CC - # Breaks with always_inline - filter-flags -fno-semantic-interposition - # Breaks because of use of wrapping (-Wl,-wrap, wrap_*) - # https://github.com/opensvc/multipath-tools/issues/18 - filter-lto - myemake -} - -src_test() { - myemake test -} - -src_install() { - dodir /sbin - - myemake DESTDIR="${ED}" install - - einstalldocs - - newinitd "${FILESDIR}"/multipathd-r1.rc multipathd - newinitd "${FILESDIR}"/multipath.rc multipath - - find "${ED}" -type f -name '*.la' -delete || die -} - -pkg_postinst() { - tmpfiles_process /usr/lib/tmpfiles.d/multipath.conf - udev_reload - - if [[ -z ${REPLACING_VERSIONS} ]] ; then - elog "If you need multipath on your system, you must" - elog "add 'multipath' into your boot runlevel!" - fi -} - -pkg_postrm() { - udev_reload -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/Manifest index d8eea305701..aa904273ec0 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/Manifest @@ -1,2 +1 @@ -DIST squashfs-tools-4.7.4.tar.gz 408882 BLAKE2B 2488f2d953c53bbf25d18242b4cb315ebe67f336bb07003d52622f701c9ee8409330fe16a5782737777cbbd62228181973005e66c4e56f28900769dad94df51e SHA512 16943b331723c301d7e65c14e5946d3fa27f974ba509a412ab6182a48d83a935d445feb80a27d89a5b5ba5cf86e55835f12d28c2b2b57f5623e1151cb2966376 DIST squashfs-tools-4.7.5.tar.gz 412571 BLAKE2B 69720d858e3b1b3255930cd39033f06c7824f5b94ee5da27562d4873701c5f724cf4cebdb853026b20f1d3b32be8b579404e092f4f98908373fe95da83ba631d SHA512 d24f1c8611dc7dcb17b81f3a34ee8c0d3484141c70ebe7c77c91c966e76cddc671e24d3f4a471ddc819c4708480cdd179168fe2bca8a09e97cebf0da9ef83b1c diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/squashfs-tools-4.7.4.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/squashfs-tools-4.7.4.ebuild deleted file mode 100644 index 690b0eefa67..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/squashfs-tools-4.7.4.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit flag-o-matic toolchain-funcs - -DESCRIPTION="Tools to create and extract Squashfs filesystems" -HOMEPAGE="https://github.com/plougher/squashfs-tools/" -SRC_URI=" - https://github.com/plougher/squashfs-tools/archive/${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" -IUSE="debug lz4 lzma lzo xattr zstd" - -DEPEND=" - virtual/zlib:= - lz4? ( app-arch/lz4 ) - lzma? ( app-arch/xz-utils ) - lzo? ( dev-libs/lzo ) - xattr? ( sys-apps/attr ) - zstd? ( app-arch/zstd ) -" -RDEPEND=${DEPEND} - -use10() { - usex "${1}" 1 0 -} - -src_compile() { - # set up make command line variables in EMAKE_SQUASHFS_CONF - local opts=( - LZMA_XZ_SUPPORT=$(use10 lzma) - LZO_SUPPORT=$(use10 lzo) - LZ4_SUPPORT=$(use10 lz4) - XATTR_SUPPORT=$(use10 xattr) - XZ_SUPPORT=$(use10 lzma) - ZSTD_SUPPORT=$(use10 zstd) - ) - - tc-export CC - use debug && append-cppflags -DSQUASHFS_TRACE - emake "${opts[@]}" -C squashfs-tools -} - -src_install() { - dobin squashfs-tools/{mksquashfs,unsquashfs} - dodoc ACKNOWLEDGEMENTS CHANGES README* - doman Documentation/manpages/*.1 - - dosym unsquashfs /usr/bin/sqfscat - dosym mksquashfs /usr/bin/sqfstar -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/squashfs-tools-4.7.5.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/squashfs-tools-4.7.5.ebuild index 17d0cde7ed6..9cc2592531b 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/squashfs-tools-4.7.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/squashfs-tools-4.7.5.ebuild @@ -14,7 +14,7 @@ SRC_URI=" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE="debug lz4 lzma lzo xattr zstd" DEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/Manifest index 427f9740838..6a936a43bcb 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/Manifest @@ -1,3 +1,4 @@ DIST xfsprogs-6.17.0.tar.xz 1563092 BLAKE2B e841526add6c17d036a709c1fafe879a50ba7d568008865eac8d166182be5514d8abc94b8facbe113aa6106ac394ea01049b6a555ebd280ee1cd5d64fff1b5da SHA512 bcdd5a632ac1eae4ad68ac1b18a0289820fcef997da2b3b132e97f035f21e951f20f19de9d09e0babd7d7feb8ad14c0782aa81c698b39c19e4349e603892287e DIST xfsprogs-6.18.0.tar.xz 1563944 BLAKE2B 225cb49a39a2539e48513985d72602c0c067f73597e3fe1d9d4062989ed98c3a0b2c85bb9d465c60acefce3243a7e2320808727e6ce527fbc35216bde235144e SHA512 95fcbfdd91d9b02ec9adef50e23a39240056bf3bfed3d973e048a50dd0d0b040f80e8cf72537cca7e560718e4444ed1bbcf8b99ee4c82e044ca52d916536f7f5 DIST xfsprogs-6.19.0.tar.xz 1564764 BLAKE2B 30ef424589e96175aa38776d809c7a0e1ce2d74ba3ccfca83c00bf102836f93f131afd63e5be8d639aee4e3c8831f6d536029b4e7d6dd44b9297426d6c028d2c SHA512 9ca8ba19a3cc3a4e8a03ca4fe641ae958eb5fd9c4a8b09430a9fa4891d27f63506acd543c061887fec5ba22d2883c69f8c52a155f4f58af96206999725e25bf7 +DIST xfsprogs-7.0.1.tar.xz 1591728 BLAKE2B 0834beee30b6f4d6cf16c4e34d2daff0720d1f620d75f1794eb8c8f8d822768f48e8d6d51e51ec8c1eeb73a0e3123a8baa6647cf3215f9d25254cc13d6cf02ba SHA512 21c235bb48f3b8e43a7cda3968e28ecb0333a28db9f2beac77acb9eebc476decdd5119d55230d44ac11734d9d0d7a88f66a74677cd25fe128fea7e0464083665 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.19.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.19.0.ebuild index fd6f587864e..03a2a9bc514 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.19.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.19.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/xfsprogs/xfsprogs-7.0.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-7.0.1.ebuild new file mode 100644 index 00000000000..96bc0f73ce7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-7.0.1.ebuild @@ -0,0 +1,112 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic systemd udev + +DESCRIPTION="XFS filesystem utilities" +HOMEPAGE="https://xfs.wiki.kernel.org/ https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/" +SRC_URI="https://www.kernel.org/pub/linux/utils/fs/xfs/${PN}/${P}.tar.xz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="icu libedit nls selinux static-libs" + +RDEPEND=" + dev-libs/inih + dev-libs/userspace-rcu:= + >=sys-apps/util-linux-2.17.2 + icu? ( dev-libs/icu:= ) + libedit? ( dev-libs/libedit ) +" +DEPEND=" + ${RDEPEND} + >=sys-kernel/linux-headers-6.18 +" +BDEPEND="nls? ( sys-devel/gettext )" +RDEPEND+=" selinux? ( sec-policy/selinux-xfs )" + +src_prepare() { + default + + # Fix doc dir + sed -i \ + -e "/^PKG_DOC_DIR/s:@pkg_name@:${PF}:" \ + include/builddefs.in || die + + # Don't install compressed docs + sed 's@\(CHANGES\)\.gz[[:space:]]@\1 @' -i doc/Makefile || die +} + +src_configure() { + # include/builddefs.in will add FCFLAGS to CFLAGS which will + # unnecessarily clutter CFLAGS (and fortran isn't used) + unset FCFLAGS + + # If set in user env, this breaks configure + unset PLATFORM + + export DEBUG=-DNDEBUG + + # Package is honoring CFLAGS; No need to use OPTIMIZER anymore. + # However, we have to provide an empty value to avoid default + # flags. + export OPTIMIZER=" " + + # Avoid automagic on libdevmapper (bug #709694) + export ac_cv_search_dm_task_create=no + + # bug 903611 + use elibc_musl && append-flags -D_LARGEFILE64_SOURCE + + # Upstream does NOT support --disable-static anymore, + # https://www.spinics.net/lists/linux-xfs/msg30185.html + # https://www.spinics.net/lists/linux-xfs/msg30272.html + local myconf=( + --enable-static + # Doesn't do anything beyond adding -flto (bug #930947). + --disable-lto + # The default value causes double 'lib' + --localstatedir="${EPREFIX}/var" + --with-crond-dir="${EPREFIX}/etc/cron.d" + # TODO: Write equivalent OpenRC init scripts for installed systemd units + # Possibly document timer equivalents too for cron + --with-systemd-unit-dir="$(systemd_get_systemunitdir)" + --with-udev-rule-dir="$(get_udevdir)/rules.d" + $(use_enable icu libicu) + $(use_enable nls gettext) + $(use_enable libedit editline) + ) + + econf "${myconf[@]}" +} + +src_compile() { + emake V=1 +} + +src_install() { + # XXX: There's a missing dep in the install-dev target, so split it + emake DIST_ROOT="${ED}" HAVE_ZIPPED_MANPAGES=false install + emake DIST_ROOT="${ED}" HAVE_ZIPPED_MANPAGES=false install-dev + + # Not actually used but --localstatedir causes this empty dir + # to be installed. + rmdir "${ED}"/var/lib/xfsprogs "${ED}"/var/lib || die + + if ! use static-libs; then + rm "${ED}/usr/$(get_libdir)/libhandle.a" || die + fi + + find "${ED}" -name '*.la' -delete || die +} + +pkg_postrm() { + udev_reload +} + +pkg_postinst() { + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/Manifest b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/Manifest index c8f66631317..92b9ff9b523 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/Manifest @@ -1,3 +1,3 @@ -DIST dracut-108.tar.gz 552724 BLAKE2B fa5efd4039be8d2d30564a0768d2dec8c3d72b3721391d3a02bde8445cd7a5766d4b119594ebbca86dbd59bd71b64353febaaa7e2257f02d0075333dc29e9047 SHA512 ed06844b65003c1f75373309dbdc10a3036958f413b05b608510142fa78bb34dd9fb1e622242b02b2e9e4063bfa916fd755f5131a77fb3249f77d3f08eca2283 -DIST dracut-109.tar.gz 556060 BLAKE2B b1f456182bd79e213d30751822c6d284a29e7b2f8c43bd59dad84e22520dbd461c872e44e4bc35c27d76faf35ed8b6a525f72ef8289b419f75ed68988e9937f0 SHA512 4bd846fb67a0af698a34f02b6b5594e547257d9904b2173e23298623a47295e589fe6b2dcd83f32b8721b50b94e8f7a0cf41d19d17b847238d7bfd9195c3061d -DIST dracut-110.tar.gz 573501 BLAKE2B e82e9db9767bb3e02f13536b26b97a0db94a567980c17e356054015ab3108946b35f7d993864f2ffded3dd0915ee5853df21b7e40ce20a4df5a81a5014a73ee5 SHA512 be5affbe1c76889c0ffe3ae6c52704b559e364cfa5fa149e07a0bbe5e373c7e8c4b54e4a20e7564c91750c8e1593f7cd108806cf63053c8e30d143246e549597 +DIST dracut-108-r1.tar.gz 552754 BLAKE2B 1bfa7beaba0f631c279442c8ab670556ce3df20213d81d6060d608e44285f9f5d07541f9855ff82b4e057b55b65396b61778049af8b27d1036db00c7cc8b658b SHA512 2fa6edf8d018b3205c19e34e560de74b2319d59522f1c3891c44a895a8da43344ac5c020078abb821147e607ff4b45d5add417592055f9d166934f2d4de267ea +DIST dracut-110-r1.tar.gz 573549 BLAKE2B d7b92773d732b8cee60e2625caac2f69b47438a7f8b30b889165253cfcf94b2364be3b10bb2b9b477e957a6d284cf195581905df0ad4365ebe03483ff2a61d1f SHA512 8e2ed2d3b35e3e82d1ffa809e1cf87cb8108402a66dad25000b0fd21f24dcda2eb5fd944b55edf108a4e37793d0d98814413382e554e808cd2e1a2a5bb8a420e +DIST dracut-111.tar.gz 586307 BLAKE2B 1def3957013c1508cf70018b4b5aeae333b459e50a7fc2945cd0c7a99f1c6942c8280888239273b62cdcfa3471a980d74b3769b5e3d0536be4f1729d102074f0 SHA512 4c8a3e1e82bfc1dbe155241564bc93bedc2b321566002ccc643697b50173b8e564d03b1bbff4f49602e0cb7abbee21dfb14aadc453ac9703a846c160d070b4bc diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-108-r6.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-108-r6.ebuild index f466e367817..e8af6875fed 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-108-r6.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-108-r6.ebuild @@ -8,13 +8,12 @@ inherit cargo flag-o-matic bash-completion-r1 edo optfeature systemd toolchain-f if [[ ${PV} == 9999 ]] ; then inherit git-r3 - EGIT_REPO_URI="https://github.com/dracut-ng/dracut-ng" + EGIT_REPO_URI="https://github.com/dracut-ng/dracut" else if [[ "${PV}" != *_rc* ]]; then KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~sparc x86" fi - SRC_URI="https://github.com/dracut-ng/dracut-ng/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" - S="${WORKDIR}/${PN}-ng-${PV}" + SRC_URI="https://github.com/dracut-ng/dracut/archive/refs/tags/${PV}.tar.gz -> ${P}-r1.tar.gz" fi DESCRIPTION="Generic initramfs generation tool" diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-109-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-109-r2.ebuild deleted file mode 100644 index 556d1e23709..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-109-r2.ebuild +++ /dev/null @@ -1,249 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 -CARGO_OPTIONAL=1 - -inherit cargo flag-o-matic bash-completion-r1 edo optfeature systemd toolchain-funcs - -if [[ ${PV} == 9999 ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/dracut-ng/dracut-ng" -else - if [[ "${PV}" != *_rc* ]]; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" - fi - SRC_URI="https://github.com/dracut-ng/dracut-ng/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" -fi - -DESCRIPTION="Generic initramfs generation tool" -HOMEPAGE="https://github.com/dracut-ng/dracut-ng/wiki" - -LICENSE="GPL-2" -SLOT="0" -IUSE="dracut-cpio selinux systemd test" -RESTRICT="test" -PROPERTIES="test? ( test_privileged test_network )" - -COMMON_DEPEND=" - >=sys-apps/kmod-23 - systemd? ( >=sys-apps/systemd-257:= ) -" -RDEPEND="${COMMON_DEPEND} - app-alternatives/cpio - >=app-shells/bash-4.0:0 - sys-apps/coreutils[xattr(-)] - >=sys-apps/kmod-23[tools] - || ( - >=sys-apps/sysvinit-2.87-r3 - sys-apps/openrc[sysv-utils(-),selinux?] - sys-apps/systemd[sysv-utils(+)] - sys-apps/s6-linux-init[sysv-utils(-)] - ) - >=sys-apps/util-linux-2.21 - virtual/pkgconfig[native-symlinks(+)] - virtual/udev - - elibc_musl? ( sys-libs/fts-standalone ) - selinux? ( - sec-policy/selinux-dracut - sys-libs/libselinux - sys-libs/libsepol - ) -" -DEPEND="${COMMON_DEPEND} - elibc_musl? ( sys-libs/fts-standalone ) -" - -BDEPEND=" - || ( - app-text/asciidoc - dev-ruby/asciidoctor - ) - app-text/docbook-xml-dtd:4.5 - >=app-text/docbook-xsl-stylesheets-1.75.2 - >=dev-libs/libxslt-1.1.26 - virtual/pkgconfig - dracut-cpio? ( ${RUST_DEPEND} ) - test? ( - net-nds/rpcbind - net-fs/nfs-utils - sys-block/open-iscsi - sys-fs/btrfs-progs - sys-fs/dmraid - sys-fs/lvm2[lvm,thin] - sys-fs/mdadm - sys-fs/multipath-tools - alpha? ( app-emulation/qemu[qemu_softmmu_targets_alpha] ) - amd64? ( app-emulation/qemu[qemu_softmmu_targets_x86_64] ) - arm? ( app-emulation/qemu[qemu_softmmu_targets_arm] ) - arm64? ( app-emulation/qemu[qemu_softmmu_targets_aarch64] ) - hppa? ( app-emulation/qemu[qemu_softmmu_targets_hppa] ) - loong? ( app-emulation/qemu[qemu_softmmu_targets_loongarch64] ) - mips? ( || ( - app-emulation/qemu[qemu_softmmu_targets_mips] - app-emulation/qemu[qemu_softmmu_targets_mips64] - app-emulation/qemu[qemu_softmmu_targets_mips64el] - ) ) - ppc? ( app-emulation/qemu[qemu_softmmu_targets_ppc] ) - ppc64? ( app-emulation/qemu[qemu_softmmu_targets_ppc64] ) - riscv? ( || ( - app-emulation/qemu[qemu_softmmu_targets_riscv32] - app-emulation/qemu[qemu_softmmu_targets_riscv64] - ) ) - sparc? ( || ( - app-emulation/qemu[qemu_softmmu_targets_sparc] - app-emulation/qemu[qemu_softmmu_targets_sparc64] - ) ) - x86? ( app-emulation/qemu[qemu_softmmu_targets_i386] ) - ) -" - -QA_MULTILIB_PATHS="usr/lib/dracut/.*" - -PATCHES=( - "${FILESDIR}"/gentoo-ldconfig-paths-r1.patch - # Gentoo specific acct-user and acct-group conf adjustments - "${FILESDIR}"/${PN}-108-acct-user-group-gentoo.patch - # https://github.com/dracut-ng/dracut-ng/pull/1122#issuecomment-3192110686 - "${FILESDIR}"/${PN}-108-disable-ukify-magic.patch -) - -pkg_setup() { - use dracut-cpio && rust_pkg_setup -} - -src_configure() { - local myconf=( - --prefix="${EPREFIX}/usr" - --sysconfdir="${EPREFIX}/etc" - --bashcompletiondir="$(get_bashcompdir)" - --systemdsystemunitdir="$(systemd_get_systemunitdir)" - --disable-dracut-cpio - ) - - if ! has_version -b dev-ruby/asciidoctor; then - myconf+=( --disable-asciidoctor ) - fi - - # this emulates what the build system would be doing without us - append-cflags -D_FILE_OFFSET_BITS=64 - - tc-export CC PKG_CONFIG - - # https://bugs.gentoo.org/968765 - use systemd || export SYSTEMD_CFLAGS= SYSTEMD_LIBS= - - edo ./configure "${myconf[@]}" - if use dracut-cpio; then - cargo_gen_config - cargo_src_configure - fi -} - -src_compile() { - default - if use dracut-cpio; then - pushd src/dracut-cpio >/dev/null || die - cargo_src_compile - popd >/dev/null || die - fi -} - -src_test() { - addwrite /dev/kvm - # Translate ARCH so run-qemu can find the correct qemu-system-ARCH - local qemu_arch - if use amd64; then - qemu_arch=x86_64 - elif use arm64; then - qemu_arch=aarch64 - elif use loong; then - qemu_arch=loongarch64 - elif use x86; then - qemu_arch=i386 - else - qemu_arch=$(tc-arch) - fi - ARCH=${qemu_arch} emake -C test check -} - -src_install() { - local DOCS=( - AUTHORS - NEWS.md - README.md - ) - default - if use dracut-cpio; then - exeinto /usr/lib/dracut - doexe "src/dracut-cpio/$(cargo_target_dir)/dracut-cpio" - fi - - # Use our own from sys-kernel/installkernel[dracut] - rm -r "${ED}/usr/lib/kernel" || die -} - -pkg_preinst() { - # Remove directory/symlink conflicts - # https://bugs.gentoo.org/943007 - local save_nullglob=$(shopt -p nullglob) - shopt -s nullglob - local module - for module in "${EROOT}"/usr/lib/dracut/modules.d/{80test,80test-makeroot,80test-root}; do - if [[ ! -L ${module} && -d ${module} ]]; then - rm -rv "${module}" || die - fi - local backups=( "${module}".backup.* ) - if [[ ${#backups[@]} -gt 0 ]]; then - rm -v "${backups[@]}" || die - fi - done - eval "${save_nullglob}" -} - -pkg_postinst() { - optfeature "Networking support" net-misc/networkmanager - optfeature "Legacy networking support" net-misc/curl "net-misc/dhcp[client]" \ - sys-apps/iproute2 "net-misc/iputils[arping]" - optfeature "Scan for Btrfs on block devices" sys-fs/btrfs-progs - optfeature "Load kernel modules and drop this privilege for real init" \ - sys-libs/libcap - optfeature "Support CIFS" net-fs/cifs-utils - optfeature "Decrypt devices encrypted with cryptsetup/LUKS" \ - "sys-fs/cryptsetup[-static-libs]" - optfeature "Support for GPG-encrypted keys for crypt module" \ - "app-alternatives/gpg[reference]" "app-alternatives/gpg[freepg(-)]" - optfeature \ - "Allows use of dash instead of default bash (on your own risk)" \ - app-shells/dash - optfeature \ - "Allows use of busybox instead of default bash (on your own risk)" \ - sys-apps/busybox - optfeature "Support iSCSI" sys-block/open-iscsi - optfeature "Support Logical Volume Manager" sys-fs/lvm2[lvm] - optfeature "Support MD devices, also known as software RAID devices" \ - sys-fs/mdadm sys-fs/dmraid - optfeature "Support Device Mapper multipathing" sys-fs/multipath-tools - optfeature "Plymouth boot splash" '>=sys-boot/plymouth-0.8.5-r5' - optfeature "Support network block devices" sys-block/nbd - optfeature "Support NFS" net-fs/nfs-utils net-nds/rpcbind - optfeature \ - "Install ssh and scp along with config files and specified keys" \ - virtual/openssh - optfeature "Enable logging with rsyslog" app-admin/rsyslog - optfeature "Support Squashfs" sys-fs/squashfs-tools - optfeature "Support TPM 2.0 TSS" app-crypt/tpm2-tools - optfeature "Support Bluetooth (experimental)" net-wireless/bluez - optfeature "Support BIOS-given device names" sys-apps/biosdevname - optfeature "Support network NVMe" sys-apps/nvme-cli app-misc/jq - optfeature \ - "Enable rngd service to help generating entropy early during boot" \ - sys-apps/rng-tools - optfeature "building Unified Kernel Images with dracut (--uefi)" \ - "sys-apps/systemd[boot]" "sys-apps/systemd-utils[boot]" - optfeature "automatically generating an initramfs on each kernel installation" \ - "sys-kernel/installkernel[dracut]" - optfeature "automatically generating an UKI on each kernel installation" \ - "sys-kernel/installkernel[dracut,uki]" -} diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-110-r3.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-110-r3.ebuild deleted file mode 100644 index 200586d0161..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-110-r3.ebuild +++ /dev/null @@ -1,249 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 -CARGO_OPTIONAL=1 - -inherit cargo flag-o-matic bash-completion-r1 edo optfeature systemd toolchain-funcs - -if [[ ${PV} == 9999 ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/dracut-ng/dracut-ng" -else - if [[ "${PV}" != *_rc* ]]; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" - fi - SRC_URI="https://github.com/dracut-ng/dracut-ng/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" - S="${WORKDIR}/${PN}-ng-${PV}" -fi - -DESCRIPTION="Generic initramfs generation tool" -HOMEPAGE="https://github.com/dracut-ng/dracut-ng/wiki" - -LICENSE="GPL-2" -SLOT="0" -IUSE="dracut-cpio selinux systemd test" -RESTRICT="test" -PROPERTIES="test? ( test_privileged test_network )" - -COMMON_DEPEND=" - >=sys-apps/kmod-23 - systemd? ( >=sys-apps/systemd-257:= ) -" -RDEPEND="${COMMON_DEPEND} - app-alternatives/cpio - >=app-shells/bash-4.0:0 - sys-apps/coreutils[xattr(-)] - >=sys-apps/kmod-23[tools] - || ( - >=sys-apps/sysvinit-2.87-r3 - sys-apps/openrc[sysv-utils(-),selinux?] - sys-apps/systemd[sysv-utils(+)] - sys-apps/s6-linux-init[sysv-utils(-)] - ) - >=sys-apps/util-linux-2.21 - virtual/pkgconfig[native-symlinks(+)] - virtual/udev - - elibc_musl? ( sys-libs/fts-standalone ) - selinux? ( - sec-policy/selinux-dracut - sys-libs/libselinux - sys-libs/libsepol - ) -" -DEPEND="${COMMON_DEPEND} - elibc_musl? ( sys-libs/fts-standalone ) -" - -BDEPEND=" - || ( - app-text/asciidoc - dev-ruby/asciidoctor - ) - app-text/docbook-xml-dtd:4.5 - >=app-text/docbook-xsl-stylesheets-1.75.2 - >=dev-libs/libxslt-1.1.26 - virtual/pkgconfig - dracut-cpio? ( ${RUST_DEPEND} ) - test? ( - net-nds/rpcbind - net-fs/nfs-utils - sys-block/open-iscsi - sys-fs/btrfs-progs - sys-fs/dmraid - sys-fs/lvm2[lvm,thin] - sys-fs/mdadm - sys-fs/multipath-tools - alpha? ( app-emulation/qemu[qemu_softmmu_targets_alpha] ) - amd64? ( app-emulation/qemu[qemu_softmmu_targets_x86_64] ) - arm? ( app-emulation/qemu[qemu_softmmu_targets_arm] ) - arm64? ( app-emulation/qemu[qemu_softmmu_targets_aarch64] ) - hppa? ( app-emulation/qemu[qemu_softmmu_targets_hppa] ) - loong? ( app-emulation/qemu[qemu_softmmu_targets_loongarch64] ) - mips? ( || ( - app-emulation/qemu[qemu_softmmu_targets_mips] - app-emulation/qemu[qemu_softmmu_targets_mips64] - app-emulation/qemu[qemu_softmmu_targets_mips64el] - ) ) - ppc? ( app-emulation/qemu[qemu_softmmu_targets_ppc] ) - ppc64? ( app-emulation/qemu[qemu_softmmu_targets_ppc64] ) - riscv? ( || ( - app-emulation/qemu[qemu_softmmu_targets_riscv32] - app-emulation/qemu[qemu_softmmu_targets_riscv64] - ) ) - sparc? ( || ( - app-emulation/qemu[qemu_softmmu_targets_sparc] - app-emulation/qemu[qemu_softmmu_targets_sparc64] - ) ) - x86? ( app-emulation/qemu[qemu_softmmu_targets_i386] ) - ) -" - -QA_MULTILIB_PATHS="usr/lib/dracut/.*" - -PATCHES=( - "${FILESDIR}"/gentoo-ldconfig-paths-r1.patch - # Gentoo specific acct-user and acct-group conf adjustments - "${FILESDIR}"/${PN}-110-acct-user-group-gentoo.patch -) - -pkg_setup() { - use dracut-cpio && rust_pkg_setup -} - -src_configure() { - local myconf=( - --bashcompletiondir="$(get_bashcompdir)" - --disable-dracut-cpio - --enable-network-legacy - --prefix="${EPREFIX}/usr" - --sysconfdir="${EPREFIX}/etc" - --systemdsystemunitdir="$(systemd_get_systemunitdir)" - ) - - if ! has_version -b dev-ruby/asciidoctor; then - myconf+=( --disable-asciidoctor ) - fi - - # this emulates what the build system would be doing without us - append-cflags -D_FILE_OFFSET_BITS=64 - - tc-export CC PKG_CONFIG - - # https://bugs.gentoo.org/968765 - use systemd || export SYSTEMD_CFLAGS= SYSTEMD_LIBS= - - edo ./configure "${myconf[@]}" - if use dracut-cpio; then - cargo_gen_config - cargo_src_configure - fi -} - -src_compile() { - default - if use dracut-cpio; then - pushd src/dracut-cpio >/dev/null || die - cargo_src_compile - popd >/dev/null || die - fi -} - -src_test() { - addwrite /dev/kvm - # Translate ARCH so run-qemu can find the correct qemu-system-ARCH - local qemu_arch - if use amd64; then - qemu_arch=x86_64 - elif use arm64; then - qemu_arch=aarch64 - elif use loong; then - qemu_arch=loongarch64 - elif use x86; then - qemu_arch=i386 - else - qemu_arch=$(tc-arch) - fi - ARCH=${qemu_arch} emake -C test check -} - -src_install() { - local DOCS=( - AUTHORS - NEWS.md - README.md - ) - default - if use dracut-cpio; then - exeinto /usr/lib/dracut - doexe "src/dracut-cpio/$(cargo_target_dir)/dracut-cpio" - fi - - # Use our own from sys-kernel/installkernel[dracut] - rm -r "${ED}/usr/lib/kernel" || die -} - -pkg_preinst() { - # Remove directory/symlink conflicts - # https://bugs.gentoo.org/943007 - local save_nullglob=$(shopt -p nullglob) - shopt -s nullglob - local module - for module in "${EROOT}"/usr/lib/dracut/modules.d/{80test,80test-makeroot,80test-root}; do - if [[ ! -L ${module} && -d ${module} ]]; then - rm -rv "${module}" || die - fi - local backups=( "${module}".backup.* ) - if [[ ${#backups[@]} -gt 0 ]]; then - rm -v "${backups[@]}" || die - fi - done - eval "${save_nullglob}" -} - -pkg_postinst() { - optfeature "Networking support" net-misc/networkmanager - optfeature "Legacy networking support" net-misc/curl "net-misc/dhcp[client]" \ - sys-apps/iproute2 "net-misc/iputils[arping]" - optfeature "Scan for Btrfs on block devices" sys-fs/btrfs-progs - optfeature "Load kernel modules and drop this privilege for real init" \ - sys-libs/libcap - optfeature "Support CIFS" net-fs/cifs-utils - optfeature "Decrypt devices encrypted with cryptsetup/LUKS" \ - "sys-fs/cryptsetup[-static-libs]" - optfeature "Support for GPG-encrypted keys for crypt module" \ - "app-alternatives/gpg[reference]" "app-alternatives/gpg[freepg(-)]" - optfeature \ - "Allows use of dash instead of default bash (on your own risk)" \ - app-shells/dash - optfeature \ - "Allows use of busybox instead of default bash (on your own risk)" \ - sys-apps/busybox - optfeature "Support iSCSI" sys-block/open-iscsi - optfeature "Support Logical Volume Manager" sys-fs/lvm2[lvm] - optfeature "Support MD devices, also known as software RAID devices" \ - sys-fs/mdadm sys-fs/dmraid - optfeature "Support Device Mapper multipathing" sys-fs/multipath-tools - optfeature "Plymouth boot splash" '>=sys-boot/plymouth-0.8.5-r5' - optfeature "Support network block devices" sys-block/nbd - optfeature "Support NFS" net-fs/nfs-utils net-nds/rpcbind - optfeature \ - "Install ssh and scp along with config files and specified keys" \ - virtual/openssh - optfeature "Enable logging with rsyslog" app-admin/rsyslog - optfeature "Support Squashfs" sys-fs/squashfs-tools - optfeature "Support TPM 2.0 TSS" app-crypt/tpm2-tools - optfeature "Support Bluetooth (experimental)" net-wireless/bluez - optfeature "Support BIOS-given device names" sys-apps/biosdevname - optfeature "Support network NVMe" sys-apps/nvme-cli app-misc/jq - optfeature \ - "Enable rngd service to help generating entropy early during boot" \ - sys-apps/rng-tools - optfeature "building Unified Kernel Images with dracut (--uefi)" \ - "sys-apps/systemd[boot]" "sys-apps/systemd-utils[boot]" - optfeature "automatically generating an initramfs on each kernel installation" \ - "sys-kernel/installkernel[dracut]" - optfeature "automatically generating an UKI on each kernel installation" \ - "sys-kernel/installkernel[dracut,uki]" -} diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-110-r5.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-110-r5.ebuild new file mode 100644 index 00000000000..f4a711724fe --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-110-r5.ebuild @@ -0,0 +1,250 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +CARGO_OPTIONAL=1 + +inherit cargo flag-o-matic bash-completion-r1 edo optfeature systemd toolchain-funcs + +if [[ ${PV} == 9999 ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/dracut/dracut-ng" +else + if [[ "${PV}" != *_rc* ]]; then + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" + fi + SRC_URI="https://github.com/dracut-ng/dracut/archive/refs/tags/${PV}.tar.gz -> ${P}-r1.tar.gz" +fi + +DESCRIPTION="Generic initramfs generation tool" +HOMEPAGE="https://github.com/dracut-ng/dracut-ng/wiki" + +LICENSE="GPL-2" +SLOT="0" +IUSE="dracut-cpio selinux systemd test" +RESTRICT="test" +PROPERTIES="test? ( test_privileged test_network )" + +COMMON_DEPEND=" + >=sys-apps/kmod-23 + systemd? ( >=sys-apps/systemd-257:= ) +" +RDEPEND="${COMMON_DEPEND} + app-alternatives/cpio + >=app-shells/bash-4.0:0 + sys-apps/coreutils[xattr(-)] + >=sys-apps/kmod-23[tools] + || ( + >=sys-apps/sysvinit-2.87-r3 + sys-apps/openrc[sysv-utils(-),selinux?] + sys-apps/systemd[sysv-utils(+)] + sys-apps/s6-linux-init[sysv-utils(-)] + ) + >=sys-apps/util-linux-2.21 + virtual/pkgconfig[native-symlinks(+)] + virtual/udev + + elibc_musl? ( sys-libs/fts-standalone ) + selinux? ( + sec-policy/selinux-dracut + sys-libs/libselinux + sys-libs/libsepol + ) +" +DEPEND="${COMMON_DEPEND} + elibc_musl? ( sys-libs/fts-standalone ) +" + +BDEPEND=" + || ( + app-text/asciidoc + dev-ruby/asciidoctor + ) + app-text/docbook-xml-dtd:4.5 + >=app-text/docbook-xsl-stylesheets-1.75.2 + >=dev-libs/libxslt-1.1.26 + virtual/pkgconfig + dracut-cpio? ( ${RUST_DEPEND} ) + test? ( + net-nds/rpcbind + net-fs/nfs-utils + sys-block/open-iscsi + sys-fs/btrfs-progs + sys-fs/dmraid + sys-fs/lvm2[lvm,thin] + sys-fs/mdadm + sys-fs/multipath-tools + alpha? ( app-emulation/qemu[qemu_softmmu_targets_alpha] ) + amd64? ( app-emulation/qemu[qemu_softmmu_targets_x86_64] ) + arm? ( app-emulation/qemu[qemu_softmmu_targets_arm] ) + arm64? ( app-emulation/qemu[qemu_softmmu_targets_aarch64] ) + hppa? ( app-emulation/qemu[qemu_softmmu_targets_hppa] ) + loong? ( app-emulation/qemu[qemu_softmmu_targets_loongarch64] ) + mips? ( || ( + app-emulation/qemu[qemu_softmmu_targets_mips] + app-emulation/qemu[qemu_softmmu_targets_mips64] + app-emulation/qemu[qemu_softmmu_targets_mips64el] + ) ) + ppc? ( app-emulation/qemu[qemu_softmmu_targets_ppc] ) + ppc64? ( app-emulation/qemu[qemu_softmmu_targets_ppc64] ) + riscv? ( || ( + app-emulation/qemu[qemu_softmmu_targets_riscv32] + app-emulation/qemu[qemu_softmmu_targets_riscv64] + ) ) + sparc? ( || ( + app-emulation/qemu[qemu_softmmu_targets_sparc] + app-emulation/qemu[qemu_softmmu_targets_sparc64] + ) ) + x86? ( app-emulation/qemu[qemu_softmmu_targets_i386] ) + ) +" + +QA_MULTILIB_PATHS="usr/lib/dracut/.*" + +PATCHES=( + "${FILESDIR}"/gentoo-ldconfig-paths-r1.patch + # Gentoo specific acct-user and acct-group conf adjustments + "${FILESDIR}"/${PN}-110-acct-user-group-gentoo.patch + "${FILESDIR}"/${PN}-110-set-defaults.patch + "${FILESDIR}"/${P}-dash-printf.patch +) + +pkg_setup() { + use dracut-cpio && rust_pkg_setup +} + +src_configure() { + local myconf=( + --bashcompletiondir="$(get_bashcompdir)" + --disable-dracut-cpio + --enable-network-legacy + --prefix="${EPREFIX}/usr" + --sysconfdir="${EPREFIX}/etc" + --systemdsystemunitdir="$(systemd_get_systemunitdir)" + ) + + if ! has_version -b dev-ruby/asciidoctor; then + myconf+=( --disable-asciidoctor ) + fi + + # this emulates what the build system would be doing without us + append-cflags -D_FILE_OFFSET_BITS=64 + + tc-export CC PKG_CONFIG + + # https://bugs.gentoo.org/968765 + use systemd || export SYSTEMD_CFLAGS= SYSTEMD_LIBS= + + edo ./configure "${myconf[@]}" + if use dracut-cpio; then + cargo_gen_config + cargo_src_configure + fi +} + +src_compile() { + default + if use dracut-cpio; then + pushd src/dracut-cpio >/dev/null || die + cargo_src_compile + popd >/dev/null || die + fi +} + +src_test() { + addwrite /dev/kvm + # Translate ARCH so run-qemu can find the correct qemu-system-ARCH + local qemu_arch + if use amd64; then + qemu_arch=x86_64 + elif use arm64; then + qemu_arch=aarch64 + elif use loong; then + qemu_arch=loongarch64 + elif use x86; then + qemu_arch=i386 + else + qemu_arch=$(tc-arch) + fi + ARCH=${qemu_arch} emake -C test check +} + +src_install() { + local DOCS=( + AUTHORS + NEWS.md + README.md + ) + default + if use dracut-cpio; then + exeinto /usr/lib/dracut + doexe "src/dracut-cpio/$(cargo_target_dir)/dracut-cpio" + fi + + # Use our own from sys-kernel/installkernel[dracut] + rm -r "${ED}/usr/lib/kernel" || die +} + +pkg_preinst() { + # Remove directory/symlink conflicts + # https://bugs.gentoo.org/943007 + local save_nullglob=$(shopt -p nullglob) + shopt -s nullglob + local module + for module in "${EROOT}"/usr/lib/dracut/modules.d/{80test,80test-makeroot,80test-root}; do + if [[ ! -L ${module} && -d ${module} ]]; then + rm -rv "${module}" || die + fi + local backups=( "${module}".backup.* ) + if [[ ${#backups[@]} -gt 0 ]]; then + rm -v "${backups[@]}" || die + fi + done + eval "${save_nullglob}" +} + +pkg_postinst() { + optfeature "Networking support" net-misc/networkmanager + optfeature "Legacy networking support" net-misc/curl "net-misc/dhcp[client]" \ + sys-apps/iproute2 "net-misc/iputils[arping]" + optfeature "Scan for Btrfs on block devices" sys-fs/btrfs-progs + optfeature "Load kernel modules and drop this privilege for real init" \ + sys-libs/libcap + optfeature "Support CIFS" net-fs/cifs-utils + optfeature "Decrypt devices encrypted with cryptsetup/LUKS" \ + "sys-fs/cryptsetup[-static-libs]" + optfeature "Support for GPG-encrypted keys for crypt module" \ + "app-alternatives/gpg[reference]" "app-alternatives/gpg[freepg(-)]" + optfeature \ + "Allows use of dash instead of default bash (on your own risk)" \ + app-shells/dash + optfeature \ + "Allows use of busybox instead of default bash (on your own risk)" \ + sys-apps/busybox + optfeature "Support iSCSI" sys-block/open-iscsi + optfeature "Support Logical Volume Manager" sys-fs/lvm2[lvm] + optfeature "Support MD devices, also known as software RAID devices" \ + sys-fs/mdadm sys-fs/dmraid + optfeature "Support Device Mapper multipathing" sys-fs/multipath-tools + optfeature "Plymouth boot splash" '>=sys-boot/plymouth-0.8.5-r5' + optfeature "Support network block devices" sys-block/nbd + optfeature "Support NFS" net-fs/nfs-utils net-nds/rpcbind + optfeature \ + "Install ssh and scp along with config files and specified keys" \ + virtual/openssh + optfeature "Enable logging with rsyslog" app-admin/rsyslog + optfeature "Support Squashfs" sys-fs/squashfs-tools + optfeature "Support TPM 2.0 TSS" app-crypt/tpm2-tools + optfeature "Support Bluetooth (experimental)" net-wireless/bluez + optfeature "Support BIOS-given device names" sys-apps/biosdevname + optfeature "Support network NVMe" sys-apps/nvme-cli app-misc/jq + optfeature \ + "Enable rngd service to help generating entropy early during boot" \ + sys-apps/rng-tools + optfeature "building Unified Kernel Images with dracut (--uefi)" \ + "sys-apps/systemd[boot]" "sys-apps/systemd-utils[boot]" + optfeature "automatically generating an initramfs on each kernel installation" \ + "sys-kernel/installkernel[dracut]" + optfeature "automatically generating an UKI on each kernel installation" \ + "sys-kernel/installkernel[dracut,uki]" +} diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-111.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-111.ebuild new file mode 100644 index 00000000000..a5c18279a98 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-111.ebuild @@ -0,0 +1,246 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +CARGO_OPTIONAL=1 + +inherit cargo flag-o-matic bash-completion-r1 edo optfeature systemd toolchain-funcs + +if [[ ${PV} == 9999 ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/dracut-ng/dracut" +else + if [[ "${PV}" != *_rc* ]]; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + fi + SRC_URI="https://github.com/dracut-ng/dracut/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" +fi + +DESCRIPTION="Generic initramfs generation tool" +HOMEPAGE="https://github.com/dracut-ng/dracut-ng/wiki" + +LICENSE="GPL-2" +SLOT="0" +IUSE="dracut-cpio selinux systemd test" +RESTRICT="test" +PROPERTIES="test? ( test_privileged test_network )" + +COMMON_DEPEND=" + >=sys-apps/kmod-23 + systemd? ( >=sys-apps/systemd-257:= ) +" +RDEPEND="${COMMON_DEPEND} + app-alternatives/cpio + >=app-shells/bash-4.0:0 + sys-apps/coreutils[xattr(-)] + >=sys-apps/kmod-23[tools] + || ( + >=sys-apps/sysvinit-2.87-r3 + sys-apps/openrc[sysv-utils(-),selinux?] + sys-apps/systemd[sysv-utils(+)] + sys-apps/s6-linux-init[sysv-utils(-)] + ) + >=sys-apps/util-linux-2.21 + virtual/pkgconfig[native-symlinks(+)] + virtual/udev + + elibc_musl? ( sys-libs/fts-standalone ) + selinux? ( + sec-policy/selinux-dracut + sys-libs/libselinux + sys-libs/libsepol + ) +" +DEPEND="${COMMON_DEPEND} + elibc_musl? ( sys-libs/fts-standalone ) +" + +BDEPEND=" + || ( + app-text/asciidoc + dev-ruby/asciidoctor + ) + app-text/docbook-xml-dtd:4.5 + >=app-text/docbook-xsl-stylesheets-1.75.2 + >=dev-libs/libxslt-1.1.26 + virtual/pkgconfig + dracut-cpio? ( ${RUST_DEPEND} ) + test? ( + net-nds/rpcbind + net-fs/nfs-utils + sys-block/open-iscsi + sys-fs/btrfs-progs + sys-fs/dmraid + sys-fs/lvm2[lvm,thin] + sys-fs/mdadm + sys-fs/multipath-tools + alpha? ( app-emulation/qemu[qemu_softmmu_targets_alpha] ) + amd64? ( app-emulation/qemu[qemu_softmmu_targets_x86_64] ) + arm? ( app-emulation/qemu[qemu_softmmu_targets_arm] ) + arm64? ( app-emulation/qemu[qemu_softmmu_targets_aarch64] ) + hppa? ( app-emulation/qemu[qemu_softmmu_targets_hppa] ) + loong? ( app-emulation/qemu[qemu_softmmu_targets_loongarch64] ) + mips? ( || ( + app-emulation/qemu[qemu_softmmu_targets_mips] + app-emulation/qemu[qemu_softmmu_targets_mips64] + app-emulation/qemu[qemu_softmmu_targets_mips64el] + ) ) + ppc? ( app-emulation/qemu[qemu_softmmu_targets_ppc] ) + ppc64? ( app-emulation/qemu[qemu_softmmu_targets_ppc64] ) + riscv? ( || ( + app-emulation/qemu[qemu_softmmu_targets_riscv32] + app-emulation/qemu[qemu_softmmu_targets_riscv64] + ) ) + sparc? ( || ( + app-emulation/qemu[qemu_softmmu_targets_sparc] + app-emulation/qemu[qemu_softmmu_targets_sparc64] + ) ) + x86? ( app-emulation/qemu[qemu_softmmu_targets_i386] ) + ) +" + +QA_MULTILIB_PATHS="usr/lib/dracut/.*" + +PATCHES=( + "${FILESDIR}"/gentoo-ldconfig-paths-r1.patch +) + +pkg_setup() { + use dracut-cpio && rust_pkg_setup +} + +src_configure() { + local myconf=( + --bashcompletiondir="$(get_bashcompdir)" + --disable-dracut-cpio + --enable-network-legacy + --prefix="${EPREFIX}/usr" + --sysconfdir="${EPREFIX}/etc" + --systemdsystemunitdir="$(systemd_get_systemunitdir)" + ) + + if ! has_version -b dev-ruby/asciidoctor; then + myconf+=( --disable-asciidoctor ) + fi + + # this emulates what the build system would be doing without us + append-cflags -D_FILE_OFFSET_BITS=64 + + tc-export CC PKG_CONFIG + + # https://bugs.gentoo.org/968765 + use systemd || export SYSTEMD_CFLAGS= SYSTEMD_LIBS= + + edo ./configure "${myconf[@]}" + if use dracut-cpio; then + cargo_gen_config + cargo_src_configure + fi +} + +src_compile() { + default + if use dracut-cpio; then + pushd src/dracut-cpio >/dev/null || die + cargo_src_compile + popd >/dev/null || die + fi +} + +src_test() { + addwrite /dev/kvm + # Translate ARCH so run-qemu can find the correct qemu-system-ARCH + local qemu_arch + if use amd64; then + qemu_arch=x86_64 + elif use arm64; then + qemu_arch=aarch64 + elif use loong; then + qemu_arch=loongarch64 + elif use x86; then + qemu_arch=i386 + else + qemu_arch=$(tc-arch) + fi + ARCH=${qemu_arch} emake -C test check +} + +src_install() { + local DOCS=( + AUTHORS + NEWS.md + README.md + ) + default + if use dracut-cpio; then + exeinto /usr/lib/dracut + doexe "src/dracut-cpio/$(cargo_target_dir)/dracut-cpio" + fi + + # Use our own from sys-kernel/installkernel[dracut] + rm -r "${ED}/usr/lib/kernel" || die +} + +pkg_preinst() { + # Remove directory/symlink conflicts + # https://bugs.gentoo.org/943007 + local save_nullglob=$(shopt -p nullglob) + shopt -s nullglob + local module + for module in "${EROOT}"/usr/lib/dracut/modules.d/{80test,80test-makeroot,80test-root}; do + if [[ ! -L ${module} && -d ${module} ]]; then + rm -rv "${module}" || die + fi + local backups=( "${module}".backup.* ) + if [[ ${#backups[@]} -gt 0 ]]; then + rm -v "${backups[@]}" || die + fi + done + eval "${save_nullglob}" +} + +pkg_postinst() { + optfeature "Networking support" net-misc/networkmanager + optfeature "Legacy networking support" net-misc/curl "net-misc/dhcp[client]" \ + sys-apps/iproute2 "net-misc/iputils[arping]" + optfeature "Scan for Btrfs on block devices" sys-fs/btrfs-progs + optfeature "Load kernel modules and drop this privilege for real init" \ + sys-libs/libcap + optfeature "Support CIFS" net-fs/cifs-utils + optfeature "Decrypt devices encrypted with cryptsetup/LUKS" \ + "sys-fs/cryptsetup[-static-libs]" + optfeature "Support for GPG-encrypted keys for crypt module" \ + "app-alternatives/gpg[reference]" "app-alternatives/gpg[freepg(-)]" + optfeature \ + "Allows use of dash instead of default bash (on your own risk)" \ + app-shells/dash + optfeature \ + "Allows use of busybox instead of default bash (on your own risk)" \ + sys-apps/busybox + optfeature "Support iSCSI" sys-block/open-iscsi + optfeature "Support Logical Volume Manager" sys-fs/lvm2[lvm] + optfeature "Support MD devices, also known as software RAID devices" \ + sys-fs/mdadm sys-fs/dmraid + optfeature "Support Device Mapper multipathing" sys-fs/multipath-tools + optfeature "Plymouth boot splash" '>=sys-boot/plymouth-0.8.5-r5' + optfeature "Support network block devices" sys-block/nbd + optfeature "Support NFS" net-fs/nfs-utils net-nds/rpcbind + optfeature \ + "Install ssh and scp along with config files and specified keys" \ + virtual/openssh + optfeature "Enable logging with rsyslog" app-admin/rsyslog + optfeature "Support Squashfs" sys-fs/squashfs-tools + optfeature "Support TPM 2.0 TSS" app-crypt/tpm2-tools + optfeature "Support Bluetooth (experimental)" net-wireless/bluez + optfeature "Support BIOS-given device names" sys-apps/biosdevname + optfeature "Support network NVMe" sys-apps/nvme-cli app-misc/jq + optfeature \ + "Enable rngd service to help generating entropy early during boot" \ + sys-apps/rng-tools + optfeature "building Unified Kernel Images with dracut (--uefi)" \ + "sys-apps/systemd[boot]" "sys-apps/systemd-utils[boot]" + optfeature "automatically generating an initramfs on each kernel installation" \ + "sys-kernel/installkernel[dracut]" + optfeature "automatically generating an UKI on each kernel installation" \ + "sys-kernel/installkernel[dracut,uki]" +} diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-9999.ebuild index 200586d0161..a5c18279a98 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-9999.ebuild @@ -8,13 +8,12 @@ inherit cargo flag-o-matic bash-completion-r1 edo optfeature systemd toolchain-f if [[ ${PV} == 9999 ]] ; then inherit git-r3 - EGIT_REPO_URI="https://github.com/dracut-ng/dracut-ng" + EGIT_REPO_URI="https://github.com/dracut-ng/dracut" else if [[ "${PV}" != *_rc* ]]; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" fi - SRC_URI="https://github.com/dracut-ng/dracut-ng/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" - S="${WORKDIR}/${PN}-ng-${PV}" + SRC_URI="https://github.com/dracut-ng/dracut/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" fi DESCRIPTION="Generic initramfs generation tool" @@ -104,8 +103,6 @@ QA_MULTILIB_PATHS="usr/lib/dracut/.*" PATCHES=( "${FILESDIR}"/gentoo-ldconfig-paths-r1.patch - # Gentoo specific acct-user and acct-group conf adjustments - "${FILESDIR}"/${PN}-110-acct-user-group-gentoo.patch ) pkg_setup() { diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/files/dracut-110-dash-printf.patch b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/files/dracut-110-dash-printf.patch new file mode 100644 index 00000000000..15aec415182 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/files/dracut-110-dash-printf.patch @@ -0,0 +1,32 @@ +https://bugs.gentoo.org/971601 +https://github.com/dracut-ng/dracut-ng/pull/2303 + +From eca6d9f1d35879d411f5f860cf5e0a57cd155ad4 Mon Sep 17 00:00:00 2001 +From: Benjamin Drung +Date: Mon, 16 Mar 2026 11:22:33 +0100 +Subject: [PATCH] fix(dracut.sh): use printf instead of echo in mark_hostonly + +POSIX requires to interpreted escape sequences. The filenames passed to +`mark_hostonly` might contain backslashes and therefore might be +interpreted (dash 0.5.13.1 will do that). + +So use `printf` instead to avoid escaping the filenames. + +Fixes: https://github.com/dracut-ng/dracut-ng/issues/2280 +--- + dracut.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dracut.sh b/dracut.sh +index 28c8ecc92..cc5ad0b8c 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1559,7 +1559,7 @@ inst_fsck_help() { + # shellcheck disable=SC2317,SC2329 + mark_hostonly() { + for i in "$@"; do +- echo "$i" >> "$initdir/lib/dracut/hostonly-files" ++ printf "%s\n" "$i" >> "$initdir/lib/dracut/hostonly-files" + done + } + diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/files/dracut-110-set-defaults.patch b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/files/dracut-110-set-defaults.patch new file mode 100644 index 00000000000..891733fc0a9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/files/dracut-110-set-defaults.patch @@ -0,0 +1,29 @@ +https://github.com/dracut-ng/dracut/commit/86dae8081027e3461a49999d63938561eb2ed662 +diff --git a/dracut.conf.d/gentoo/01-gentoo.conf b/dracut.conf.d/gentoo/01-gentoo.conf +index 5c12d1c50b..218e70b99b 100644 +--- a/dracut.conf.d/gentoo/01-gentoo.conf ++++ b/dracut.conf.d/gentoo/01-gentoo.conf +@@ -1,2 +1,22 @@ +-# Gentoo specific Dracut configuration ++# Build an initramfs specific to this machine by default. This ensures ++# local configuration files (/etc/...) are included. ++hostonly="yes" ++hostonly_mode="sloppy" ++ ++# Usage of ukify is controlled via sys-kernel/installkernel[+/-ukify]. ++# Automatic delegation in sys-kernel/dracut is disabled here. + ukify="no" ++# Building an UKI is toggled by sys-kernel/installkernel[+/-uki]. ++# If the ukify USE flag is also enabled then ukify is used to build ++# the UKI. If not, then Dracut uses objcopy/objdump to build an UKI. ++# Automatic delegation to ukify is disabled, see also above. ++# By default we do not build an UKI (initramfs only). ++uefi="no" ++ ++# Inclusion of CPU microcode is controlled via: ++# sys-kernel/linux-firmware[+/-initramfs], and/or ++# sys-firmware/intel-microcode[+/-initramfs] ++# The later takes precedence if both are installed. Disable the ++# inclusion by default here, the aforementioned packages override it. ++# If neither package is installed then no microcode can be included. ++early_microcode="no" diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/cracklib/cracklib-2.10.3.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/cracklib/cracklib-2.10.3.ebuild index f181121f885..66fa54f8edd 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/cracklib/cracklib-2.10.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/cracklib/cracklib-2.10.3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -7,7 +7,7 @@ EAPI=8 DISTUTILS_EXT=1 DISTUTILS_OPTIONAL=1 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 libtool multilib-minimal usr-ldscript MY_P=${P/_} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/Manifest index cea437520e8..4153cd4d662 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/Manifest @@ -28,9 +28,13 @@ DIST glibc-2.40.tar.xz 18752204 BLAKE2B 8593cab5b2549b77159b6866fbb40b917e491fd5 DIST glibc-2.41-patches-12.tar.xz 168252 BLAKE2B c844fba0871e7aa60af636c0569d01beebd314367081313635598074643449cc047a07b88979d341ba8327ac7becd3aef8b20662c8490565d29c49ade474cb8b SHA512 b780db3e31f3724cc19129bc11f49e4ad649a1a2b8174f990041640c81e03fcda3c5f3c25dffd215c7b1173e5ebb226312af58112e9798ba7254889d7b05f454 DIST glibc-2.41.tar.xz 19344868 BLAKE2B 4da62f489ba7a95bb069c2cfea8cf78e4d37e3a5f7e1736239670ba1dca12b69aa77bd00ced078c27d91b1e622c58cbd70258161a9d18c5b3bcc95863b8d744d SHA512 894a3e5a796bc13df30c26a5bfbe4d60b5dbdaac54e7763432235124b547070c7dda88c50584536870cab79183d8cad73a3ac6ed09bfe54fa8482aad07253169 DIST glibc-2.42-patches-7.tar.xz 69864 BLAKE2B 59c1ec784d49ccce40c14a3b09c3edb7ad557677dc9ab9af526ca27b3716fa3727e10ef34c2c1ea09a9855ec0d8553ce873cbbf75af57e6e0717ef97d1d37def SHA512 9ac6ba2392b76dce2cf39f6e7b054166d0fc07395b7958b9a84bbb1654ae3e3548113e5fe5bfcd4b9000668c4ea07a70c8c1e5688c0e72e613462383222ae48f +DIST glibc-2.42-patches-8.tar.xz 77696 BLAKE2B dfde3bce38f34d99e1011532ce19fdb34cc1f59fae0d8d6df4b285520e7e7c2995d14be84dc0127346b38ab9e313c4aa0eb4c112a49dc6f28822f55f16bec206 SHA512 d482b7aff496db59efb0c91f2eb4b5302374986fa241e9f9248bfceb6296c1b65ca26160019564b3f40c7d0f7512ed096d771b98ce563d4889a3499880cd9c27 +DIST glibc-2.42-patches-9.tar.xz 86380 BLAKE2B ecc9869d2e3c5e33170c05dc02c47e033450e19f590e4eeb63a5735773fc81b907038a22a990412596505b0040b4378ecffef0eec1db43602d335408b15fcc4b SHA512 92a207e8de80914437e05d59ae070331afc5fe8f48459c0608961277150208f7e4eb73838b1cfdcb737ce9d7fb2b7b96711c33f134d213288316e10430a89fc9 DIST glibc-2.42.tar.xz 19930508 BLAKE2B 6ffabfe7942034a5a4fb5097679cb47bc3431eb2a3864af07cea0cb6aa5db63fbaf6f026b3c9299e00268058a6762eb21e92499f012d552ed87d65c7ffbd0bbe SHA512 73a617db8e0f0958c0575f7a1c5a35b72b7e070b6cbdd02a9bb134995ca7ca0909f1e50d7362c53d2572d72f1879bb201a61d5275bac16136895d9a34ef0c068 DIST glibc-2.42.tar.xz.sig 981 BLAKE2B 890e637c444982b2b07fac4607ce3e9f416c9c7688267ebd135e53878d93db95c609facfa1f347c59f23776cafb4b5df8ffb60235c89be451276202dd676dab2 SHA512 d868220778e98d24aead10a585e6a903892e4d043cd96a404634c8aa03d001d624a46a5c0fe13c86f83f66396a1f360a10990966fe377e98a722914b5087575d DIST glibc-2.43-patches-1.tar.xz 23328 BLAKE2B 4d7d719d234af725861b06eee6b86c269c88386efbd6dc411fa52c196b00541c07247ef8d0e2eea02d0369da0f09c440c8ccef4a03881aad568a84978eecb17e SHA512 33d260fcfe96e5b9bf85bd12cc8f83915b197b1bf512f6c06f8542df01803b1b5152dd2e60723b193ad26885fb1473f750d556a1abfe213d39d6df30ad19b9a1 +DIST glibc-2.43-patches-2.tar.xz 90172 BLAKE2B 9927b0bfc836597047e2c268a1d5c7b593f0be1e89f5ed5156c8bb34298f13bdd4d80fd813b4535442ce6d1c535753b6f3cbca4f3f0e9bdda890029e1e3d2de3 SHA512 363f815b41e9ffe809e1db61864efa4c61666e7033df95191d58da44582a64555cedb9197e6d6a8fb2a6c6f0609cf07ca5cab2ab2f840f723bbbc4a099d3d00e +DIST glibc-2.43-patches-3.tar.xz 99856 BLAKE2B 4bc4b2fc9b23e7e2d295b8f87919ed676147d3520b27e773db48200768c3f6647a4383fcf8962881611d622ddbc71fe1bc3732fbb7df5c1968ea78ab047226a6 SHA512 0070d0b8552f8385e3133f522dfb563b9fa5f5663e1cce3c4b99a4e1d9da57a4c0305e3908f1c739f4e17113f4775b253af83fc8ee3885a0305aebc970314edf DIST glibc-2.43.tar.xz 20297012 BLAKE2B a764edf3d0d52809aa94cf1a8f73341159d226ecc2a595aa3c9e1d1fd4b2d4eb9a599d70bda8812b73d8ef58b39746efdd34026772e38c0f091fe071d461ea98 SHA512 25765f86bf54a22fc69dd13023ec9be59bd7e1f9d6ea1630cf21851898df2043bb8a01538c4b5fdd06495d0163289362b0768b391b0617f709b89a777168291c DIST glibc-2.43.tar.xz.sig 1018 BLAKE2B 99fb3f296795498f6de8090d537e32d8af0bfa75c7d8145ba4c35ca1b54c281fd2b9cb121886aef1800c0a6e508244914a2de67339d113561a9fc2c515110924 SHA512 6e26f0edee146710bcb73c3890c455e8b479009f99d284c43ea695b73bfe45e4ba47d1460300ce8c7496689b0c21a1c77e6359e005957973648b86755160c8f5 DIST glibc-systemd-20210729.tar.gz 1480 BLAKE2B 37722c7579df782d890e44dbab99c3de52ab466eb9de80d82405e9bb5620bf39ffc8c5f466a435bdb86ef6d36dd7019c0736573916bda6c67d02a2581e0ec979 SHA512 efd75af58b50522c28cdac7abd1fc56555bc1bb042512c90d8340c1ec09c5791b3872a305bf83723252bbde5855b75d958c041083457765c4cfd170732d09238 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/glibc-2.43-hurd-CLOCK_MONOTONIC.patch b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/glibc-2.43-hurd-CLOCK_MONOTONIC.patch new file mode 100644 index 00000000000..0e318b7b450 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/glibc-2.43-hurd-CLOCK_MONOTONIC.patch @@ -0,0 +1,100 @@ +From 9fdd7c3b7c89ea240f24ad8d900639904c3064e5 Mon Sep 17 00:00:00 2001 +Message-ID: <9fdd7c3b7c89ea240f24ad8d900639904c3064e5.1774310363.git.sam@gentoo.org> +From: Samuel Thibault +Date: Sat, 12 Nov 2011 14:03:09 +0000 +Subject: [PATCH 1/2] hurd: use normal clocks for raw & coarse clock + +Use the normal clocks for the raw & coarse clock for now. + +vlc doesn't build when _POSIX_CLOCK_SELECTION is enabled but _POSIX_TIMERS is +not, and they refuse to fix that (see #765578), so disable the former. + +Imported-from: https://salsa.debian.org/glibc-team/glibc/-/blob/c2bff774aba6fc93eb9c3baef4746db56a2be24c/debian/patches/hurd-i386/local-clock_gettime_MONOTONIC.diff +--- + rt/timer_create.c | 2 +- + sysdeps/mach/clock_gettime.c | 3 +++ + sysdeps/mach/clock_nanosleep.c | 2 +- + sysdeps/mach/hurd/bits/posix_opt.h | 4 ++-- + sysdeps/posix/clock_getres.c | 4 ++++ + 5 files changed, 11 insertions(+), 4 deletions(-) + +diff --git a/rt/timer_create.c b/rt/timer_create.c +index 4f03dcb867..f8c57e1b50 100644 +--- a/rt/timer_create.c ++++ b/rt/timer_create.c +@@ -47,7 +47,7 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid) + return -1; + } + +- if (clock_id != CLOCK_REALTIME) ++ if (clock_id != CLOCK_REALTIME && clock_id != CLOCK_MONOTONIC && clock_id != CLOCK_MONOTONIC_RAW && clock_id != CLOCK_REALTIME_COARSE && clock_id != CLOCK_MONOTONIC_COARSE) + { + __set_errno (EINVAL); + return -1; +diff --git a/sysdeps/mach/clock_gettime.c b/sysdeps/mach/clock_gettime.c +index 2e8b92b1e0..a04d85d1d7 100644 +--- a/sysdeps/mach/clock_gettime.c ++++ b/sysdeps/mach/clock_gettime.c +@@ -33,6 +33,8 @@ __clock_gettime (clockid_t clock_id, struct timespec *ts) + switch (clock_id) { + + case CLOCK_MONOTONIC: ++ case CLOCK_MONOTONIC_RAW: ++ case CLOCK_MONOTONIC_COARSE: + /* If HAVE_HOST_GET_UPTIME64 is not defined or not available, + CLOCK_MONOTONIC will be equivalent to CLOCK_REALTIME. */ + #ifdef HAVE_HOST_GET_UPTIME64 +@@ -56,6 +58,7 @@ __clock_gettime (clockid_t clock_id, struct timespec *ts) + /* FALLTHROUGH */ + + case CLOCK_REALTIME: ++ case CLOCK_REALTIME_COARSE: + { + #ifdef HAVE_HOST_GET_TIME64 + time_value64_t tv_64; +diff --git a/sysdeps/mach/clock_nanosleep.c b/sysdeps/mach/clock_nanosleep.c +index 65b488d952..b8de6d40f6 100644 +--- a/sysdeps/mach/clock_nanosleep.c ++++ b/sysdeps/mach/clock_nanosleep.c +@@ -67,7 +67,7 @@ int + __clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req, + struct timespec *rem) + { +- if ((clock_id != CLOCK_REALTIME && clock_id != CLOCK_MONOTONIC) ++ if ((clock_id != CLOCK_REALTIME && clock_id != CLOCK_MONOTONIC && clock_id != CLOCK_MONOTONIC_RAW && clock_id != CLOCK_REALTIME_COARSE && clock_id != CLOCK_MONOTONIC_COARSE) + || req->tv_sec < 0 + || !valid_nanoseconds (req->tv_nsec) + || (flags != 0 && flags != TIMER_ABSTIME)) +diff --git a/sysdeps/mach/hurd/bits/posix_opt.h b/sysdeps/mach/hurd/bits/posix_opt.h +index a1a0707d25..c9f9d3ae5a 100644 +--- a/sysdeps/mach/hurd/bits/posix_opt.h ++++ b/sysdeps/mach/hurd/bits/posix_opt.h +@@ -165,8 +165,8 @@ + /* The monotonic clock might be available. */ + #define _POSIX_MONOTONIC_CLOCK 200809L + +-/* The clock selection interfaces are available. */ +-#define _POSIX_CLOCK_SELECTION 200809L ++/* The clock selection interfaces are not really available yet. */ ++#define _POSIX_CLOCK_SELECTION -1 + + /* Advisory information interfaces could be available in future. */ + #define _POSIX_ADVISORY_INFO 0 +diff --git a/sysdeps/posix/clock_getres.c b/sysdeps/posix/clock_getres.c +index 2c5adcd0e9..4d171aa5ad 100644 +--- a/sysdeps/posix/clock_getres.c ++++ b/sysdeps/posix/clock_getres.c +@@ -55,6 +55,10 @@ __clock_getres (clockid_t clock_id, struct timespec *res) + switch (clock_id) + { + case CLOCK_REALTIME: ++ case CLOCK_MONOTONIC: ++ case CLOCK_MONOTONIC_RAW: ++ case CLOCK_REALTIME_COARSE: ++ case CLOCK_MONOTONIC_COARSE: + retval = realtime_getres (res); + break; + +-- +2.53.0 + diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/glibc-2.43-hurd-ldconfig.patch b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/glibc-2.43-hurd-ldconfig.patch new file mode 100644 index 00000000000..252fc6b7af8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/glibc-2.43-hurd-ldconfig.patch @@ -0,0 +1,45 @@ +From c4d83b933e688fabc0ef24c770ac04df88cebb9d Mon Sep 17 00:00:00 2001 +Message-ID: +In-Reply-To: <9fdd7c3b7c89ea240f24ad8d900639904c3064e5.1774310363.git.sam@gentoo.org> +References: <9fdd7c3b7c89ea240f24ad8d900639904c3064e5.1774310363.git.sam@gentoo.org> +From: Jeff Bailey +Date: Fri, 25 Apr 2003 03:40:46 +0000 +Subject: [PATCH 2/2] hurd: enable ldconfig + +DP: Description: Enable ldconfig and such on hurd-i386 +DP: Author: Jeff Bailey +DP: Upstream status: Not submitted +DP: Status Details: Upstream disagrees with this patch, but I'm +DP: putting it in so that we have expected Debian behaviour on the +DP: Hurd. We should review this when the ELF standard supports runpath. +DP: Date: 08 Apr 2003 +Imported-from: https://salsa.debian.org/glibc-team/glibc/-/blob/93d5069240943c4dcc950f6255028f7d1fcc2df0/debian/patches/hurd-i386/local-enable-ldconfig.diff +--- + sysdeps/mach/hurd/configure | 3 ++- + sysdeps/mach/hurd/configure.ac | 2 ++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/sysdeps/mach/hurd/configure b/sysdeps/mach/hurd/configure +index 743bad5fcb..44ba9ff0f5 100644 +--- a/sysdeps/mach/hurd/configure ++++ b/sysdeps/mach/hurd/configure +@@ -222,4 +222,5 @@ fi + pthread_in_libc=no + # Hurd already provides abort implementation for the loader + abort_in_ld=yes +- ++# We want ldconfig ++use_ldconfig=yes +diff --git a/sysdeps/mach/hurd/configure.ac b/sysdeps/mach/hurd/configure.ac +index 6d33feed0e..30fef74bed 100644 +--- a/sysdeps/mach/hurd/configure.ac ++++ b/sysdeps/mach/hurd/configure.ac +@@ -50,3 +50,5 @@ fi + pthread_in_libc=no + # Hurd already provides abort implementation for the loader + abort_in_ld=yes ++# We want ldconfig ++use_ldconfig=yes +-- +2.53.0 + diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.19-r3.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.19-r3.ebuild index 0505e5e95dd..fe1c3e5654b 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.19-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.19-r3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -1055,7 +1055,7 @@ run_locale_gen() { # number of processors saved in the environment of a binary package may # differ strongly from the number of processes available during postinst if [[ ${EMERGE_FROM} != binary ]]; then - localegen_args+=( --jobs "$(makeopts_jobs)" ) + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) fi printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.31-r7.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.31-r7.ebuild index 32feab73c91..5c8e1155590 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.31-r7.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.31-r7.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -1193,7 +1193,7 @@ run_locale_gen() { # number of processors saved in the environment of a binary package may # differ strongly from the number of processes available during postinst if [[ ${EMERGE_FROM} != binary ]]; then - localegen_args+=( --jobs "$(makeopts_jobs)" ) + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) fi printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.32-r8.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.32-r8.ebuild index b72b5c28a6f..6732449ae93 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.32-r8.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.32-r8.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -1222,7 +1222,7 @@ run_locale_gen() { # number of processors saved in the environment of a binary package may # differ strongly from the number of processes available during postinst if [[ ${EMERGE_FROM} != binary ]]; then - localegen_args+=( --jobs "$(makeopts_jobs)" ) + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) fi printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.33-r14.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.33-r14.ebuild index 3058c69edc3..6ad3f062de7 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.33-r14.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.33-r14.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -1244,7 +1244,7 @@ run_locale_gen() { # number of processors saved in the environment of a binary package may # differ strongly from the number of processes available during postinst if [[ ${EMERGE_FROM} != binary ]]; then - localegen_args+=( --jobs "$(makeopts_jobs)" ) + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) fi printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.34-r14.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.34-r14.ebuild index 6150ea74e53..83fc40498f7 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.34-r14.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.34-r14.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -1265,7 +1265,7 @@ run_locale_gen() { # number of processors saved in the environment of a binary package may # differ strongly from the number of processes available during postinst if [[ ${EMERGE_FROM} != binary ]]; then - localegen_args+=( --jobs "$(makeopts_jobs)" ) + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) fi printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.35-r11.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.35-r11.ebuild index 2a1af0d4002..c280366ce32 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.35-r11.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.35-r11.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -1273,7 +1273,7 @@ run_locale_gen() { # number of processors saved in the environment of a binary package may # differ strongly from the number of processes available during postinst if [[ ${EMERGE_FROM} != binary ]]; then - localegen_args+=( --jobs "$(makeopts_jobs)" ) + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) fi printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.36-r8.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.36-r8.ebuild index 44c5f8cfafa..8683474125b 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.36-r8.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.36-r8.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -1303,7 +1303,7 @@ run_locale_gen() { # number of processors saved in the environment of a binary package may # differ strongly from the number of processes available during postinst if [[ ${EMERGE_FROM} != binary ]]; then - localegen_args+=( --jobs "$(makeopts_jobs)" ) + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) fi printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.37-r10.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.37-r10.ebuild index 17732643a63..dfb068aad6b 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.37-r10.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.37-r10.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -1320,7 +1320,7 @@ run_locale_gen() { # number of processors saved in the environment of a binary package may # differ strongly from the number of processes available during postinst if [[ ${EMERGE_FROM} != binary ]]; then - localegen_args+=( --jobs "$(makeopts_jobs)" ) + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) fi printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.38-r13.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.38-r13.ebuild index d6987f6fcf9..da413a2f156 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.38-r13.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.38-r13.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -1339,7 +1339,7 @@ run_locale_gen() { # number of processors saved in the environment of a binary package may # differ strongly from the number of processes available during postinst if [[ ${EMERGE_FROM} != binary ]]; then - localegen_args+=( --jobs "$(makeopts_jobs)" ) + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) fi printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.39-r11.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.39-r11.ebuild index 044dde05830..3182b5226e9 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.39-r11.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.39-r11.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -1347,7 +1347,7 @@ run_locale_gen() { # number of processors saved in the environment of a binary package may # differ strongly from the number of processes available during postinst if [[ ${EMERGE_FROM} != binary ]]; then - localegen_args+=( --jobs "$(makeopts_jobs)" ) + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) fi printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.40-r11.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.40-r11.ebuild index dc1490dbcd7..ce8a971458b 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.40-r11.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.40-r11.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -1327,7 +1327,7 @@ run_locale_gen() { # number of processors saved in the environment of a binary package may # differ strongly from the number of processes available during postinst if [[ ${EMERGE_FROM} != binary ]]; then - localegen_args+=( --jobs "$(makeopts_jobs)" ) + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) fi printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.41-r10.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.41-r10.ebuild index d3ed900f280..fbe0b551a7b 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.41-r10.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.41-r10.ebuild @@ -1343,7 +1343,7 @@ run_locale_gen() { # number of processors saved in the environment of a binary package may # differ strongly from the number of processes available during postinst if [[ ${EMERGE_FROM} != binary ]]; then - localegen_args+=( --jobs "$(makeopts_jobs)" ) + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) fi printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42-r5.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42-r5.ebuild index 95b782d7b59..25e5fab9392 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42-r5.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42-r5.ebuild @@ -43,7 +43,7 @@ HOMEPAGE="https://www.gnu.org/software/libc/" if [[ ${PV} == *9999 ]]; then inherit git-r3 else - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" SRC_URI="mirror://gnu/glibc/${P}.tar.xz" SRC_URI+=" verify-sig? ( mirror://gnu/glibc/${P}.tar.xz.sig )" SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" @@ -1377,7 +1377,7 @@ run_locale_gen() { # number of processors saved in the environment of a binary package may # differ strongly from the number of processes available during postinst if [[ ${EMERGE_FROM} != binary ]]; then - localegen_args+=( --jobs "$(makeopts_jobs)" ) + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) fi printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 @@ -1549,14 +1549,25 @@ glibc_do_src_install() { done fi - if is_hurd && has x86 $(get_install_abis) ; then - # On ix86, glibc and (unpatched) gcc disagree about the proper location for the dynamic loader. - # Which is maximally stupid since this one information is hardcoded into every single - # binary... + # On Hurd, glibc and (unpatched) gcc tend to disagree about the proper location for + # the dynamic loader. Which is maximally stupid since this one information is hardcoded + # into every single binary, and even if we were to fix *our* gcc it could still prevent + # us from running binaries prepared anywhere else... + + if is_hurd && has amd64 $(get_install_abis) ; then + # First, let's check for sanity + if [[ -f "$(alt_prefix)/lib/ld-x86-64.so.1" ]] ; then + die "Somehow your amd64 hurd glibc installed /lib/ld-x86-64.so.1 ... this should not happen." + fi + # Then make a compatibility symlink. + dosym ../lib64/ld-x86-64.so.1 "$(alt_prefix)/lib/ld-x86-64.so.1" + fi + + if is_hurd && has x86 $(get_install_abis) ; then # First, let's check for sanity if [[ -f "$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" ]] ; then - die "Somehow your hurd glibc installed a literal ld.so ... this should not happen." + die "Somehow your x86 hurd glibc installed ld.so ... this should not happen." fi # Then make a compatibility symlink. diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42-r6.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42-r6.ebuild new file mode 100644 index 00000000000..9330989caee --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42-r6.ebuild @@ -0,0 +1,1860 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc +# Please read & adapt the page as necessary if obsolete. + +PYTHON_COMPAT=( python3_{11..14} ) +TMPFILES_OPTIONAL=1 + +EMULTILIB_PKG="true" + +# Gentoo patchset (ignored for live ebuilds) +PATCH_VER=8 +PATCH_DEV=dilfridge + +# gcc mulitilib bootstrap files version +GCC_BOOTSTRAP_VER=20201208 + +# systemd integration version +GLIBC_SYSTEMD_VER=20210729 + +# Minimum kernel version that glibc requires +MIN_KERN_VER="3.2.0" + +# Minimum pax-utils version needed (which contains any new syscall changes for +# its seccomp filter!). Please double check this! +MIN_PAX_UTILS_VER="1.3.3" + +# Minimum systemd version needed (which contains any new syscall changes for +# its seccomp filter!). Please double check this! +MIN_SYSTEMD_VER="254.9-r1" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/glibc.asc + +inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ + multilib systemd multiprocessing tmpfiles eapi9-ver verify-sig + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + SRC_URI="mirror://gnu/glibc/${P}.tar.xz" + SRC_URI+=" verify-sig? ( mirror://gnu/glibc/${P}.tar.xz.sig )" + SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" +fi + +SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" +SRC_URI+=" systemd? ( https://gitweb.gentoo.org/proj/toolchain/glibc-systemd.git/snapshot/glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz )" + +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +SLOT="2.2" +IUSE="audit caps cet compile-locales custom-cflags doc gd hash-sysv-compat headers-only +multiarch multilib multilib-bootstrap nscd perl profile selinux sframe +ssp stack-realign +static-libs suid systemd systemtap test vanilla" + +# Here's how the cross-compile logic breaks down ... +# CTARGET - machine that will target the binaries +# CHOST - machine that will host the binaries +# CBUILD - machine that will build the binaries +# If CTARGET != CHOST, it means you want a libc for cross-compiling. +# If CHOST != CBUILD, it means you want to cross-compile the libc. +# CBUILD = CHOST = CTARGET - native build/install +# CBUILD != (CHOST = CTARGET) - cross-compile a native build +# (CBUILD = CHOST) != CTARGET - libc for cross-compiler +# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler +# For install paths: +# CHOST = CTARGET - install into / +# CHOST != CTARGET - install into /usr/CTARGET/ +# +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +# Note [Disable automatic stripping] +# Disabling automatic stripping for a few reasons: +# - portage's attempt to strip breaks non-native binaries at least on +# arm: bug #697428 +# - portage's attempt to strip libpthread.so.0 breaks gdb thread +# enumeration: bug #697910. This is quite subtle: +# * gdb uses glibc's libthread_db-1.0.so to enumerate threads. +# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols +# via 'ps_pglobal_lookup' symbol defined in gdb. +# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all +# known symbols in 'libpthread.so.0'. Specifically 'nptl_version' +# (unexported) is used to sanity check compatibility before enabling +# debugging. +# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint +# * normal 'strip' command trims '.symtab' +# Thus our main goal here is to prevent 'libpthread.so.0' from +# losing it's '.symtab' entries. +# - similarly, valgrind requires knowledge about symbols in ld.so: +# bug #920753 +# As Gentoo's strip does not allow us to pass less aggressive stripping +# options and does not check the machine target we strip selectively. + +# We need a new-enough binutils/gcc to match upstream baseline. +# Also we need to make sure our binutils/gcc supports TLS, +# and that gcc already contains the hardened patches. +# Lastly, let's avoid some openssh nastiness, bug 708224, as +# convenience to our users. + +IDEPEND=" + !compile-locales? ( sys-apps/locale-gen ) +" +BDEPEND=" + ${PYTHON_DEPS} + >=app-misc/pax-utils-${MIN_PAX_UTILS_VER} + sys-devel/bison + compile-locales? ( sys-apps/locale-gen ) + doc? ( + dev-lang/perl + sys-apps/texinfo + ) + sframe? ( >=sys-devel/binutils-2.45 ) + test? ( + dev-lang/perl + >=net-dns/libidn2-2.3.0 + sys-apps/gawk[mpfr] + ) + verify-sig? ( sec-keys/openpgp-keys-glibc ) +" +COMMON_DEPEND=" + gd? ( media-libs/gd:2= ) + nscd? ( selinux? ( + audit? ( sys-process/audit ) + caps? ( sys-libs/libcap ) + ) ) + suid? ( caps? ( sys-libs/libcap ) ) + selinux? ( sys-libs/libselinux ) + systemtap? ( dev-debug/systemtap ) +" +DEPEND="${COMMON_DEPEND} +" +RDEPEND="${COMMON_DEPEND} + !/dev/null + + rm -f glibc-test* + printf '%b' "$*" > glibc-test.c + + # We assume CC is already set up. + nonfatal emake glibc-test + ret=$? + + popd >/dev/null + + CFLAGS=${save_cflags} + return ${ret} +} + +do_run_test() { + local ret + + if [[ ${MERGE_TYPE} == "binary" ]] ; then + # ignore build failures when installing a binary package #324685 + CC="${glibc__ORIG_CC}" CXX="${glibc__ORIG_CXX}" CPP="${glibc__ORIG_CPP}" \ + CFLAGS="-O2" LDFLAGS="" do_compile_test "" "$@" 2>/dev/null || return 0 + else + ebegin "Performing simple compile test for ABI=${ABI}" + if ! do_compile_test "" "$@" ; then + ewarn "Simple build failed ... assuming this is desired #324685" + eend 1 + return 0 + else + eend 0 + fi + fi + + pushd "${T}" >/dev/null + + ./glibc-test + ret=$? + rm -f glibc-test* + + popd >/dev/null + + return ${ret} +} + +setup_target_flags() { + # This largely mucks with compiler flags. None of which should matter + # when building up just the headers. + just_headers && return 0 + + case $(tc-arch) in + x86) + # -march needed for #185404 #199334 + # TODO: When creating the first glibc cross-compile, this test will + # always fail as it does a full link which in turn requires glibc. + # Probably also applies when changing multilib profile settings (e.g. + # enabling x86 when the profile was amd64-only previously). + # We could change main to _start and pass -nostdlib here so that we + # only test the gcc code compilation. Or we could do a compile and + # then look for the symbol via scanelf. + if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + filter-flags '-march=*' + export CFLAGS="-march=${t} ${CFLAGS}" + einfo "Auto adding -march=${t} to CFLAGS #185404" + fi + # For compatibility with older binaries at slight performance cost. + use stack-realign && export CFLAGS+=" -mstackrealign" + ;; + amd64) + # -march needed for #185404 #199334 + # TODO: See cross-compile issues listed above for x86. + if [[ ${ABI} == x86 ]]; then + if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + # Normally the target is x86_64-xxx, so turn that into the -march that + # gcc actually accepts. #528708 + [[ ${t} == "x86_64" ]] && t="x86-64" + filter-flags '-march=*' + # ugly, ugly, ugly. ugly. + CFLAGS_x86=$(CFLAGS=${CFLAGS_x86}; filter-flags '-march=*'; echo "${CFLAGS}") + export CFLAGS_x86="${CFLAGS_x86} -march=${t}" + einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" + fi + # For compatibility with older binaries at slight performance cost. + use stack-realign && export CFLAGS_x86+=" -mstackrealign" + fi + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + ppc|ppc64) + # Many arch-specific implementations do not work on ppc with + # cache-block not equal to 128 bytes. This breaks memset: + # https://sourceware.org/PR26522 + # https://bugs.gentoo.org/737996 + # Use default -mcpu=. For ppc it means non-multiarch setup. + filter-flags '-mcpu=*' + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + local cpu + case ${CTARGET} in + sparc64-*) + cpu="sparc64" + case $(get-flag mcpu) in + v9) + # We need to force at least v9a because the base build doesn't + # work with just v9. + # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 + append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + *) + cpu="sparcv9" + ;; + esac + ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + esac +} + +setup_flags() { + # Make sure host make.conf doesn't pollute us + if is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi + + # Store our CFLAGS because it's changed depending on which CTARGET + # we are building when pulling glibc on a multilib profile + CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} + CFLAGS=${CFLAGS_BASE} + CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} + CXXFLAGS=${CXXFLAGS_BASE} + ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} + ASFLAGS=${ASFLAGS_BASE} + + # Allow users to explicitly avoid flag sanitization via + # USE=custom-cflags. + if ! use custom-cflags; then + # Over-zealous CFLAGS can often cause problems. What may work for one + # person may not work for another. To avoid a large influx of bugs + # relating to failed builds, we strip most CFLAGS out to ensure as few + # problems as possible. + strip-flags + + # Allow -O2 and -O3, but nothing else for now. + # TODO: Test -Os, -Oz. + if ! is-flagq '-O@(2|3)' ; then + # Lock glibc at -O2. We want to be conservative here. + filter-flags '-O?' + append-flags -O2 + fi + fi + + strip-unsupported-flags + filter-lto + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # ld can't use -r & --relax at the same time, bug #788901 + # https://sourceware.org/PR27837 + filter-ldflags '-Wl,--relax' + + # Flag added for cross-prefix, but causes ldconfig to segfault. Not needed + # anyway because glibc already handles this by itself. + filter-ldflags '-Wl,--dynamic-linker=*' + + # Fails to link (bug #940709) in some cases but even if it manages to, + # subtle runtime breakage will occur because the linker scripts need + # adaptation. Mentioned in PR21557#c0. + filter-ldflags '-Wl,--gc-sections' + + # some weird software relies on sysv hashes in glibc, bug 863863, bug 864100 + # we have to do that here already so mips can filter it out again :P + if use hash-sysv-compat ; then + append-ldflags '-Wl,--hash-style=both' + fi + + # #492892 + filter-flags -frecord-gcc-switches + + # #898098 + filter-flags -fno-builtin + + # #798774 + filter-flags -fno-semantic-interposition + + # #829583 + filter-lfs-flags + + unset CBUILD_OPT CTARGET_OPT + if use multilib ; then + CTARGET_OPT=$(get_abi_CTARGET) + [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) + fi + + setup_target_flags + + if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then + CBUILD_OPT=${CTARGET_OPT} + fi + + # glibc's headers disallow -O0 and fail at build time: + # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" + # https://sourceware.org/glibc/wiki/FAQ#Why_do_I_get:.60.23error_.22glibc_cannot_be_compiled_without_optimization.22.27.2C_when_trying_to_compile_GNU_libc_with_GNU_CC.3F + replace-flags -O0 -O1 + + # Similar issues as with SSP. Can't inject yourself that early. + filter-flags '-fsanitize=*' + + # See end of bug #830454; we handle this via USE=cet + filter-flags '-fcf-protection=*' + + # When bootstrapping, we may have a situation where + # CET-enabled gcc from seed is used to build CET-disabled + # glibc. As such, gcc implicitly enables CET if no + # -fcf-protection flag is passed. For a typical package it + # should not be a problem, but for glibc it matters as it is + # dealing with CET in ld.so. So if CET is supposed to be + # disabled for glibc, be explicit about it. + if ! use cet; then + case ${ABI}-${CTARGET} in + amd64-x86_64-*|x32-x86_64-*-*-gnux32) + append-flags '-fcf-protection=none' + ;; + arm64-aarch64*) + append-flags '-mbranch-protection=none' + ;; + esac + fi +} + +use_multiarch() { + # Allow user to disable runtime arch detection in multilib. + use multiarch || return 1 + # Make sure binutils is new enough to support indirect functions, + # #336792. This funky sed supports gold and bfd linkers. + local bver nver + bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') + case $(tc-arch ${CTARGET}) in + amd64|x86) nver="2.20" ;; + arm) nver="2.22" ;; + hppa) nver="2.23" ;; + ppc|ppc64) nver="2.20" ;; + # ifunc support was added in 2.23, but glibc also needs + # machinemode which is in 2.24. + s390) nver="2.24" ;; + sparc) nver="2.21" ;; + *) return 1 ;; + esac + ver_test ${bver} -ge ${nver} +} + +# Setup toolchain variables that had historically been defined in the +# profiles for these archs. +setup_env() { + # silly users + unset LD_RUN_PATH + unset LD_ASSUME_KERNEL + + if is_crosscompile || tc-is-cross-compiler ; then + multilib_env ${CTARGET_OPT:-${CTARGET}} + + if ! use multilib ; then + MULTILIB_ABIS=${DEFAULT_ABI} + else + MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} + fi + + # If the user has CFLAGS_ in their make.conf, use that, + # and fall back on CFLAGS. + local VAR=CFLAGS_${CTARGET//[-.]/_} + CFLAGS=${!VAR-${CFLAGS}} + einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" + fi + + setup_flags + + export ABI=${ABI:-${DEFAULT_ABI:-default}} + + if just_headers ; then + # Avoid mixing host's CC and target's CFLAGS_${ABI}: + # At this bootstrap stage we have only binutils for + # target but not compiler yet. + einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." + return 0 + fi + + # glibc does not work with non-bfd (for various reasons): + # * gold (bug #269274) + # * mold (bug #860900) + tc-ld-force-bfd + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + # Reset CC and CXX to the value at start of emerge + export CC=${glibc__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}} + export CXX=${glibc__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}} + export CPP=${glibc__ORIG_CPP:-${CPP:-$(tc-getCPP ${CTARGET})}} + + # and make sure glibc__ORIG_CC and glibc__ORIG_CXX is defined now. + export glibc__ORIG_CC=${CC} + export glibc__ORIG_CXX=${CXX} + export glibc__ORIG_CPP=${CPP} + + if tc-is-clang && ! use custom-cflags && ! is_crosscompile ; then + export glibc__force_gcc=yes + # once this is toggled on, it needs to stay on, since with CPP manipulated + # tc-is-clang does not work correctly anymore... + fi + + if [[ ${glibc__force_gcc} == "yes" ]] ; then + # If we are running in an otherwise clang/llvm environment, we need to + # recover the proper gcc and binutils settings here, at least until glibc + # is finally building with clang. So let's override everything that is + # set in the clang profiles. + # Want to shoot yourself into the foot? Set USE=custom-cflags, that's always + # a good start into that direction. + # Also, if you're crosscompiling, let's assume you know what you are doing. + # Hopefully. + # Last, we need the settings of the *build* environment, not of the + # target environment... + + local current_binutils_path=$(env CHOST="${CBUILD}" ROOT="${BROOT}" binutils-config -B "${CTARGET}") + local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B) + einfo "Overriding clang configuration, since it won't work here" + + export CC="${current_gcc_path}/${CTARGET}-gcc" + export CPP="${current_gcc_path}/${CTARGET}-cpp" + export CXX="${current_gcc_path}/${CTARGET}-g++" + export LD="${current_binutils_path}/ld.bfd" + export AR="${current_binutils_path}/ar" + export AS="${current_binutils_path}/as" + export NM="${current_binutils_path}/nm" + export STRIP="${current_binutils_path}/strip" + export RANLIB="${current_binutils_path}/ranlib" + export OBJCOPY="${current_binutils_path}/objcopy" + export STRINGS="${current_binutils_path}/strings" + export OBJDUMP="${current_binutils_path}/objdump" + export READELF="${current_binutils_path}/readelf" + export ADDR2LINE="${current_binutils_path}/addr2line" + + # do we need to also do flags munging here? yes! at least... + filter-flags '-fuse-ld=*' + filter-flags '-D_FORTIFY_SOURCE=*' + + else + + # this is the "normal" case + + export CC="$(tc-getCC ${CTARGET})" + export CXX="$(tc-getCXX ${CTARGET})" + export CPP="$(tc-getCPP ${CTARGET})" + + # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure + # can't detect them automatically due to ${CHOST} mismatch and fallbacks + # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup(). + export NM="$(tc-getNM ${CTARGET})" + export READELF="$(tc-getREADELF ${CTARGET})" + + fi + + # We need to export CFLAGS with abi information in them because glibc's + # configure script checks CFLAGS for some targets (like mips). Keep + # around the original clean value to avoid appending multiple ABIs on + # top of each other. (Why does the comment talk about CFLAGS if the code + # acts on CC?) + export glibc__GLIBC_CC=${CC} + export glibc__GLIBC_CXX=${CXX} + export glibc__GLIBC_CPP=${CPP} + + export glibc__abi_CFLAGS="$(get_abi_CFLAGS)" + + # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 + # To build .S (assembly) files with the same ABI-specific flags + # upstream currently recommends adding CFLAGS to CC/CXX: + # https://sourceware.org/PR23273 + # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS + # and breaks multiarch support. See 659030#c3 for an example. + # The glibc configure script doesn't properly use LDFLAGS all the time. + export CC="${glibc__GLIBC_CC} ${glibc__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}" + + # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 + export CXX="${glibc__GLIBC_CXX} ${glibc__abi_CFLAGS} ${CFLAGS}" + + export CPP="${glibc__GLIBC_CPP} ${glibc__abi_CFLAGS} ${CFLAGS}" + + if is_crosscompile; then + # Assume worst-case bootstrap: glibc is built for the first time + # with ${CTARGET}-g++ not available yet. We avoid + # building auxiliary programs that require C++: bug #683074 + # It should not affect final result. + export libc_cv_cxx_link_ok=no + # The line above has the same effect. We set CXX explicitly + # to make build logs less confusing. + export CXX= + fi +} + +foreach_abi() { + setup_env + + local ret=0 + local abilist="" + if use multilib ; then + abilist=$(get_install_abis) + else + abilist=${DEFAULT_ABI} + fi + local -x ABI + for ABI in ${abilist:-default} ; do + setup_env + einfo "Running $1 for ABI ${ABI}" + $1 + : $(( ret |= $? )) + done + return ${ret} +} + +glibc_banner() { + local b="Gentoo ${PVR}" + [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" (patchset ${PATCH_VER})" + echo "${b}" +} + +# The following Kernel version handling functions are mostly copied from portage +# source. It's better not to use linux-info.eclass here since a) it adds too +# much magic, see bug 326693 for some of the arguments, and b) some of the +# functions are just not provided. + +g_get_running_KV() { + uname -r + return $? +} + +g_KV_major() { + [[ -z $1 ]] && return 1 + local KV=$@ + echo "${KV%%.*}" +} + +g_KV_minor() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.} + echo "${KV%%.*}" +} + +g_KV_micro() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.*.} + echo "${KV%%[^[:digit:]]*}" +} + +g_KV_to_int() { + [[ -z $1 ]] && return 1 + local KV_MAJOR=$(g_KV_major "$1") + local KV_MINOR=$(g_KV_minor "$1") + local KV_MICRO=$(g_KV_micro "$1") + local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) + + # We make version 2.2.0 the minimum version we will handle as + # a sanity check ... if its less, we fail ... + if [[ ${KV_int} -ge 131584 ]] ; then + echo "${KV_int}" + return 0 + fi + return 1 +} + +g_int_to_KV() { + local version=$1 major minor micro + major=$((version / 65536)) + minor=$(((version % 65536) / 256)) + micro=$((version % 256)) + echo ${major}.${minor}.${micro} +} + +get_kheader_version() { + printf '#include \nLINUX_VERSION_CODE\n' | \ + $(tc-getCPP ${CTARGET}) -I "${ESYSROOT}$(alt_headers)" - | \ + tail -n 1 +} + +# We collect all sanity checks here. Consistency is not guranteed between +# pkg_ and src_ phases, so we call this function both in pkg_pretend and in +# src_unpack. +sanity_prechecks() { + # Prevent native builds from downgrading + if [[ ${MERGE_TYPE} != "buildonly" ]] && \ + [[ -z ${ROOT} ]] && \ + [[ ${CBUILD} == ${CHOST} ]] && \ + [[ ${CHOST} == ${CTARGET} ]] ; then + + # The high rev # is to allow people to downgrade between -r# + # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 + # should be fine. Hopefully we never actually use a r# this + # high. + if has_version ">${CATEGORY}/${P}-r10000" ; then + eerror "Sanity check to keep you from breaking your system:" + eerror " Downgrading glibc is not supported and a sure way to destruction." + [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." + fi + + if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then + eerror "Your old kernel is broken. You need to update it to a newer" + eerror "version as syscall() will break. See bug 279260." + [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Old and broken kernel." + fi + fi + + if [[ ${CTARGET} == i386-* ]] ; then + eerror "i386 CHOSTs are no longer supported." + eerror "Chances are you don't actually want/need i386." + eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" + die "Please fix your CHOST" + fi + + if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then + ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." + ewarn "This will result in a 50% performance penalty when running with a 32bit" + ewarn "hypervisor, which is probably not what you want." + fi + + # ABI-specific checks follow here. Hey, we have a lot more specific conditions that + # we test for... + if ! is_crosscompile && ! tc-is-cross-compiler ; then + if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking if the system can execute 32-bit binaries" + echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" + local STAT + if ${CC-${CHOST}-gcc} ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then + "${T}/check-ia32-emulation.elf32" + STAT=$? + else + # Don't fail here to allow single->multi ABI switch + # or recover from breakage like bug #646424 + ewarn "Failed to compile the ABI test. Broken host glibc?" + STAT=0 + fi + rm -f "${T}/check-ia32-emulation.elf32" + eend $STAT + if [[ $STAT -ne 0 ]]; then + eerror "Ensure that CONFIG_IA32_EMULATION is enabled in the kernel." + eerror "Seek support otherwise." + die "Unable to execute 32-bit binaries" + fi + fi + + fi + + # When we actually have to compile something... + if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then + if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then + # bug #833620, bug #643302 + eerror "Found ${ESYSROOT}/usr/lib/include directory!" + eerror "This is known to break glibc's build." + eerror "Please backup its contents then remove the directory." + die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" + fi + + if [[ ${CTARGET} == *-linux* ]] ; then + local run_kv build_kv want_kv + + run_kv=$(g_get_running_KV) + build_kv=$(g_int_to_KV $(get_kheader_version)) + want_kv=${MIN_KERN_VER} + + if ! is_crosscompile && ! tc-is-cross-compiler ; then + # Building fails on an non-supporting kernel + ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" + if ! [[ $(g_KV_to_int ${run_kv}) -ge $(g_KV_to_int ${want_kv}) ]] ; then + eend 1 + echo + eerror "You need a kernel of at least ${want_kv}!" + die "Kernel version too low!" + fi + eend 0 + fi + + # Do not run this check for pkg_pretend, just pkg_setup and friends (if we ever get used there). + # It's plausible (seen it in the wild) that Portage will (correctly) schedule a linux-headers + # upgrade before glibc, but because pkg_pretend gets run before any packages are merged at all (not + # just glibc), the whole emerge gets aborted without a good reason. We probably don't + # need to run this check at all given we have a dependency on the right headers, + # but let's leave it as-is for now. + if [[ ${EBUILD_PHASE_FUNC} != pkg_pretend ]] ; then + ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" + if ! [[ $(g_KV_to_int ${build_kv}) -ge $(g_KV_to_int ${want_kv}) ]] ; then + eend 1 + echo + eerror "You need linux-headers of at least ${want_kv}!" + die "linux-headers version too low!" + fi + eend 0 + fi + fi + fi +} + +upgrade_warning() { + is_crosscompile && return + + if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then + if ver_replacing -lt $(ver_cut 1-2 ${PV}); then + ewarn "After upgrading glibc, please restart all running processes." + ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)." + ewarn "Alternatively, reboot your system." + ewarn "(See bug #660556, bug #741116, bug #823756, etc)" + fi + fi +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + upgrade_warning +} + +# pkg_setup + +pkg_setup() { + # see bug 682570 + [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup +} + +# src_unpack + +src_unpack() { + setup_env + + einfo "Checking general environment sanity." + sanity_prechecks + + use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git + https://github.com/gentoo/glibc-patches.git + " + EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git + git-r3_src_unpack + mv patches-git/9999 patches || die + EGIT_REPO_URI=" + https://sourceware.org/git/glibc.git + https://git.sr.ht/~sourceware/glibc + https://gitlab.com/x86-glibc/glibc.git + " + EGIT_CHECKOUT_DIR=${S} + [[ ${PV} == *.*.9999 ]] && EGIT_BRANCH=release/${PV%.*}/master + git-r3_src_unpack + else + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}/${P}.tar.xz" "${DISTDIR}/${P}.tar.xz.sig" + fi + unpack ${P}.tar.xz + + cd "${WORKDIR}" || die + unpack ${P}-patches-${PATCH_VER}.tar.xz + fi + + cd "${WORKDIR}" || die + use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz +} + +# src_prepare + +src_prepare() { + local patchsetname + if ! use vanilla ; then + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${PV}-${PATCH_VER}" + fi + einfo "Applying Gentoo Glibc patchset ${patchsetname}" + eapply "${WORKDIR}"/patches + einfo "Done." + fi + + case ${CTARGET} in + m68*-aligned-*) + einfo "Applying utmp format fix for m68k with -maligned-int" + eapply "${FILESDIR}/glibc-2.41-m68k-malign.patch" + ;; + *) + ;; + esac + + default + + gnuconfig_update + + cd "${WORKDIR}" || die + find . -name configure -exec touch {} + + + # Fix permissions on some of the scripts. + chmod u+x "${S}"/scripts/*.sh + + cd "${S}" || die +} + +# src_configure + +glibc_do_configure() { + dump_build_environment + + local myconf=() + + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + myconf+=( --enable-stack-protector=$(usex ssp strong no) ) + + # Keep a whitelist of targets supporting IFUNC. glibc's ./configure + # is not robust enough to detect proper support: + # https://bugs.gentoo.org/641216 + # https://sourceware.org/PR22634#c0 + case $(tc-arch ${CTARGET}) in + # Keep whitelist of targets where autodetection mostly works. + amd64|x86|sparc|ppc|ppc64|arm|arm64|s390|riscv|loong) ;; + # Blacklist everywhere else + *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; + esac + + case ${ABI}-${CTARGET} in + amd64-x86_64-*|x32-x86_64-*-*-gnux32) myconf+=( $(use_enable cet) ) ;; + *) ;; + esac + + case ${ABI}-${CTARGET} in + amd64-x86_64-*|arm64-aarch64-*) myconf+=( $(use_enable sframe) ) ;; + *) ;; + esac + + [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) + + myconf+=( --enable-kernel=${MIN_KERN_VER} ) + + # Since SELinux support is only required for nscd, only enable it if: + # 1. USE selinux + # 2. only for the primary ABI on multilib systems + # 3. Not a crosscompile + if ! is_crosscompile && use selinux ; then + if use multilib ; then + if is_final_abi ; then + myconf+=( --with-selinux ) + else + myconf+=( --without-selinux ) + fi + else + myconf+=( --with-selinux ) + fi + else + myconf+=( --without-selinux ) + fi + + # Force a few tests where we always know the answer but + # configure is incapable of finding it. + if is_crosscompile ; then + export \ + libc_cv_c_cleanup=yes \ + libc_cv_forced_unwind=yes + fi + + myconf+=( + --disable-werror + --enable-bind-now + --enable-fortify-source + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + $(use_enable profile) + $(use_with gd) + --with-headers="${ESYSROOT}$(alt_headers)" + --prefix="$(host_eprefix)/usr" + --sysconfdir="$(host_eprefix)/etc" + --localstatedir="$(host_eprefix)/var" + --libdir='$(prefix)'/$(get_libdir) + --mandir='$(prefix)'/share/man + --infodir='$(prefix)'/share/info + --libexecdir='$(libdir)'/misc/glibc + --with-bugurl=https://bugs.gentoo.org/ + --with-pkgversion="$(glibc_banner)" + $(use_multiarch || echo --disable-multi-arch) + $(use_enable systemtap) + $(use_enable nscd) + + # /usr/bin/mtrace has a Perl shebang. Gentoo Prefix QA checks fail if + # Perl hasn't been installed inside the prefix yet and configure picks + # up a Perl from outside the prefix instead. configure will fail to + # execute Perl during configure if we're cross-compiling a prefix, but + # it will just disable mtrace in that case. + # Note: mtrace is needed by the test suite. + ac_cv_path_PERL="$(usex perl "${EPREFIX}"/usr/bin/perl $(usex test "${EPREFIX}"/usr/bin/perl $(usex doc "${EPREFIX}"/usr/bin/perl no)))" + + # locale data is arch-independent + # https://bugs.gentoo.org/753740 + libc_cv_complocaledir='${exec_prefix}/lib/locale' + + # On aarch64 there is no way to override -mcpu=native, and if + # the current cpu does not support SVE configure fails. + # Let's boldly assume our toolchain can always build SVE instructions. + libc_cv_aarch64_sve_asm=yes + + ${EXTRA_ECONF} + ) + + # We rely on sys-libs/timezone-data for timezone tools normally. + myconf+=( $(use_enable vanilla timezone-tools) ) + + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) + ac_cv_lib_cap_cap_init=$(usex caps || echo no) + + # There is no configure option for this and we need to export it + # since the glibc build will re-run configure on itself + export libc_cv_rootsbindir="$(host_eprefix)/sbin" + export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" + + local builddir=$(builddir nptl) + mkdir -p "${builddir}" + cd "${builddir}" + set -- "${S}"/configure "${myconf[@]}" + echo "$@" + "$@" || die "failed to configure glibc" + + # If we're trying to migrate between ABI sets, we need + # to lie and use a local copy of gcc. Like if the system + # is built with MULTILIB_ABIS="amd64 x86" but we want to + # add x32 to it, gcc/glibc don't yet support x32. + # + if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib-bootstrap ; then + echo 'int main(void){}' > "${T}"/test.c || die + if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then + sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die + fi + fi +} + +glibc_headers_configure() { + export ABI=default + + local builddir=$(builddir "headers") + mkdir -p "${builddir}" + cd "${builddir}" + + # if we don't have a compiler yet, we can't really test it now ... + # hopefully they don't affect header generation, so let's hope for + # the best here ... + local v vars=( + ac_cv_header_cpuid_h=yes + libc_cv_{386,390,alpha,arm,hppa,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes + libc_cv_asm_cfi_directives=yes + libc_cv_broken_visibility_attribute=no + libc_cv_c_cleanup=yes + libc_cv_compiler_powerpc64le_binary128_ok=yes + libc_cv_forced_unwind=yes + libc_cv_gcc___thread=yes + libc_cv_mlong_double_128=yes + libc_cv_mlong_double_128ibm=yes + libc_cv_ppc_machine=yes + libc_cv_ppc_rel16=yes + libc_cv_predef_fortify_source=no + libc_cv_target_power8_ok=yes + libc_cv_visibility_attribute=yes + libc_cv_z_combreloc=yes + libc_cv_z_execstack=yes + libc_cv_z_initfirst=yes + libc_cv_z_nodelete=yes + libc_cv_z_nodlopen=yes + libc_cv_z_relro=yes + libc_mips_abi=${ABI} + libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=no + ac_cv_lib_cap_cap_init=no + ) + + einfo "Forcing cached settings:" + for v in "${vars[@]}" ; do + einfo " ${v}" + export ${v} + done + + local headers_only_arch_CPPFLAGS=() + + # Blow away some random CC settings that screw things up. #550192 + if [[ -d ${S}/sysdeps/mips ]]; then + pushd "${S}"/sysdeps/mips >/dev/null + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die + + # Force the mips ABI to the default. This is OK because the set of + # installed headers in this phase is the same between the 3 ABIs. + # If this ever changes, this hack will break, but that's unlikely + # as glibc discourages that behavior. + # https://crbug.com/647033 + sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die + + popd >/dev/null + fi + + local myconf=() + + case ${CTARGET} in + aarch64*) + # The configure checks fail during cross-build, so disable here + # for headers-only + myconf+=( + --disable-mathvec + ) ;; + riscv*) + # RISC-V interrogates the compiler to determine which target to + # build. If building the headers then we don't strictly need a + # RISC-V compiler, so the built-in definitions that are provided + # along with all RISC-V compiler might not exist. This causes + # glibc's RISC-V preconfigure script to blow up. Since we're just + # building the headers any value will actually work here, so just + # pick the standard one (rv64g/lp64d) to make the build scripts + # happy for now -- the headers are all the same anyway so it + # doesn't matter. + headers_only_arch_CPPFLAGS+=( + -D__riscv_xlen=64 + -D__riscv_flen=64 + -D__riscv_float_abi_double=1 + -D__riscv_atomic=1 + ) ;; + esac + + myconf+=( + --disable-sanity-checks + --enable-hacker-mode + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + --with-headers="${ESYSROOT}$(alt_headers)" + --prefix="$(host_eprefix)/usr" + ${EXTRA_ECONF} + ) + + # Nothing is compiled here which would affect the headers for the target. + # So forcing CC/CFLAGS is sane. + local headers_only_CC=$(tc-getBUILD_CC) + local headers_only_CFLAGS="-O1 -pipe" + local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" + local headers_only_LDFLAGS="" + set -- "${S}"/configure "${myconf[@]}" + echo \ + "CC=${headers_only_CC}" \ + "CFLAGS=${headers_only_CFLAGS}" \ + "CPPFLAGS=${headers_only_CPPFLAGS}" \ + "LDFLAGS=${headers_only_LDFLAGS}" \ + "$@" + CC=${headers_only_CC} \ + CFLAGS=${headers_only_CFLAGS} \ + CPPFLAGS=${headers_only_CPPFLAGS} \ + LDFLAGS="" \ + "$@" || die "failed to configure glibc" +} + +do_src_configure() { + if just_headers ; then + glibc_headers_configure + else + glibc_do_configure nptl + fi +} + +src_configure() { + foreach_abi do_src_configure +} + +# src_compile + +do_src_compile() { + emake -C "$(builddir nptl)" +} + +src_compile() { + if just_headers ; then + return + fi + + foreach_abi do_src_compile +} + +# src_test + +glibc_src_test() { + cd "$(builddir nptl)" + + local myxfailparams="" + if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then + local virt=$(systemd-detect-virt 2>/dev/null) + if [[ ${virt} == systemd-nspawn ]] ; then + ewarn "Skipping extra tests because in systemd-nspawn container" + XFAIL_TEST_LIST+=( "${XFAIL_NSPAWN_TEST_LIST[@]}" ) + fi + if [[ "$(nice)" == "19" ]] ; then + # Expects to be able to increase niceness, which it can't do if + # already at the highest nice value + XFAIL_TEST_LIST+=( "tst-nice" ) + fi + + for myt in ${XFAIL_TEST_LIST[@]} ; do + myxfailparams+="test-xfail-${myt}=yes " + done + fi + + # sandbox does not understand unshare() and prevents + # writes to /proc/, which makes many tests fail + + # we give the tests a bit more time to avoid spurious + # bug reports on slow arches + + SANDBOX_ON=0 LD_PRELOAD= TIMEOUTFACTOR=16 nonfatal emake ${myxfailparams} check +} + +src_test() { + if just_headers ; then + return + fi + + # glibc_src_test uses nonfatal so that we can run tests for all ABIs + # and fail at the end instead. + foreach_abi glibc_src_test || die "tests failed" +} + +# src_install + +run_locale_gen() { + local fatal=$1 prefix=$2 + local user_config action config stderr noun ret + local -a hasversion_opts localegen_args + + if [[ ${EBUILD_PHASE_FUNC} == src_install ]]; then + hasversion_opts=( -b ) + fi + + if has_version "${hasversion_opts[@]}" '>=sys-apps/locale-gen-3'; then + localegen_args=( --prefix "${prefix}" ) + else + config="${prefix}/usr/share/i18n/SUPPORTED" + user_config="${prefix}/etc/locale.gen" + if [[ ${EBUILD_PHASE_FUNC} == src_install ]]; then + # For USE=compile-locales, all locales should be built. + mkdir -p -- "${prefix}/usr/lib/locale" || die + elif locale-gen --list --config "${user_config}" | read -r; then + config=${user_config} + fi + localegen_args=( --config "${config}" --destdir "${prefix}" ) + fi + + # bug 736794: we need to be careful with the parallelization... the + # number of processors saved in the environment of a binary package may + # differ strongly from the number of processes available during postinst + if [[ ${EMERGE_FROM} != binary ]]; then + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) + fi + + printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 + { stderr=$(locale-gen "${localegen_args[@]}" 2>&1 >&3); } 3>&1 + ret=$? + action="ewarn" + if (( ret == 0 )); then + noun="warning" + else + noun="error" + if (( fatal )); then + action="die" + fi + fi + # Convey warnings/errors so that they can be reseen upon emerge exiting. + if [[ ${stderr} ]]; then + ewarn "locale-gen(8) issued the following ${noun}s:" + while read -r; do + ewarn "$REPLY" + done <<<"${stderr}" + fi + if (( ret != 0 )); then + "${action}" "locale-gen(8) unexpectedly failed during the ${EBUILD_PHASE_FUNC} phase" + fi +} + +glibc_do_src_install() { + local builddir=$(builddir nptl) + cd "${builddir}" + + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install + + # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support + # which come without headers etc. Only needed for binary packages since the + # external net-libs/libnsl has increased soversion. Keep only versioned libraries. + find "${D}" -name "libnsl.a" -delete + find "${D}" -name "libnsl.so" -delete + + # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need + # to infer upstream version: + # '#define VERSION "2.26.90"' -> '2.26.90' + local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) + + # Avoid stripping binaries not targeted by ${CHOST}. Or else + # ${CHOST}-strip would break binaries build for ${CTARGET}. + is_crosscompile && dostrip -x / + + # gdb thread introspection relies on local libpthreads symbols. stripping breaks it + # See Note [Disable automatic stripping] + dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so + # valgrind requires knowledge about ld.so symbols. + dostrip -x $(alt_libdir)/ld-*.so* + + if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then + # Move versioned .a file out of libdir to evade portage QA checks + # instead of using gen_usr_ldscript(). We fix ldscript as: + # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." + sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" \ + "${ED}"/$(alt_usrlibdir)/libm.a || die + dodir $(alt_usrlibdir)/${P} + mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a \ + "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die + fi + + # We configure toolchains for standalone prefix systems with a sysroot, + # which is prepended to paths in ld scripts, so strip the prefix from these. + # Before: GROUP ( /foo/lib64/libc.so.6 /foo/usr/lib64/libc_nonshared.a AS_NEEDED ( /foo/lib64/ld-linux-x86-64.so.2 ) ) + # After: GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-x86-64.so.2 ) ) + if [[ -n $(host_eprefix) ]] ; then + local file + grep -lZIF "ld script" "${ED}/$(alt_usrlibdir)"/lib*.{a,so} 2>/dev/null | while read -rd '' file ; do + sed -i "s|$(host_eprefix)/|/|g" "${file}" || die + done + fi + + # We'll take care of the cache ourselves + rm -f "${ED}"/etc/ld.so.cache + + # Everything past this point just needs to be done once ... + is_final_abi || return 0 + + # Make sure the non-native interp can be found on multilib systems even + # if the main library set isn't installed into the right place. Maybe + # we should query the active gcc for info instead of hardcoding it ? + local i ldso_abi ldso_name + if is_linux ; then + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-linux-x86-64.so.2 + x32 /libx32/ld-linux-x32.so.2 + x86 /lib/ld-linux.so.2 + # mips + o32 /lib/ld.so.1 + n32 /lib32/ld.so.1 + n64 /lib64/ld.so.1 + # powerpc + ppc /lib/ld.so.1 + # riscv + ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 + ilp32 /lib/ld-linux-riscv32-ilp32.so.1 + lp64d /lib/ld-linux-riscv64-lp64d.so.1 + lp64 /lib/ld-linux-riscv64-lp64.so.1 + # s390 + s390 /lib/ld.so.1 + s390x /lib/ld64.so.1 + # sparc + sparc32 /lib/ld-linux.so.2 + sparc64 /lib64/ld-linux.so.2 + ) + case $(tc-endian) in + little) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64.so.1 + # ELFv2 (glibc does not support ELFv1 on LE) + ppc64 /lib64/ld64.so.2 + ) + ;; + big) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64_be.so.1 + # ELFv1 (glibc does not support ELFv2 on BE) + ppc64 /lib64/ld64.so.1 + ) + ;; + esac + else + # we must be using hurd then + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-x86-64.so.1 + x86 /lib/ld.so.1 + ) + fi + if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib + fi + for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do + ldso_abi=${ldso_abi_list[i]} + has ${ldso_abi} $(get_install_abis) || continue + + ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" + if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then + dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} + fi + done + + if is_linux ; then + # In the LSB 5.0 definition, someone had the excellent idea to "standardize" + # the runtime loader name, see also https://xkcd.com/927/ + # Normally, in Gentoo one should never come across executables that require this. + # However, binary commercial packages are known to adhere to weird practices. + # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB + local lsb_ldso_name native_ldso_name lsb_ldso_abi + local lsb_ldso_abi_list=( + # x86 + amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 + ) + for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do + lsb_ldso_abi=${lsb_ldso_abi_list[i]} + native_ldso_name=${lsb_ldso_abi_list[i+1]} + lsb_ldso_name=${lsb_ldso_abi_list[i+2]} + has ${lsb_ldso_abi} $(get_install_abis) || continue + + if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then + dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}" + fi + done + fi + + # On Hurd, glibc and (unpatched) gcc tend to disagree about the proper location for + # the dynamic loader. Which is maximally stupid since this one information is hardcoded + # into every single binary, and even if we were to fix *our* gcc it could still prevent + # us from running binaries prepared anywhere else... + + if is_hurd && has amd64 $(get_install_abis) ; then + # First, let's check for sanity + if [[ -f "${D}/$(alt_prefix)/lib/ld-x86-64.so.1" ]] ; then + die "Somehow your amd64 hurd glibc installed /lib/ld-x86-64.so.1 ... this should not happen." + fi + + # Then make a compatibility symlink. + dosym ../lib64/ld-x86-64.so.1 "$(alt_prefix)/lib/ld-x86-64.so.1" + fi + + if is_hurd && has x86 $(get_install_abis) ; then + # First, let's check for sanity + if [[ -f "${D}/$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" ]] ; then + die "Somehow your x86 hurd glibc installed ld.so ... this should not happen." + fi + + # Then make a compatibility symlink. + dosym ld.so.1 "$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" + fi + + # With devpts under Linux mounted properly, we do not need the pt_chown + # binary to be setuid. This is because the default owners/perms will be + # exactly what we want. + if ! use suid ; then + find "${ED}" -name pt_chown -exec chmod -s {} + + fi + + ################################################################# + # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # + ################################################################# + + # Make sure we install some symlink hacks so that when we build + # a 2nd stage cross-compiler, gcc finds the target system + # headers correctly. See gcc/doc/gccinstall.info + if is_crosscompile ; then + # We need to make sure that /lib and /usr/lib always exists. + # gcc likes to use relative paths to get to its multilibs like + # /usr/lib/../lib64/. So while we don't install any files into + # /usr/lib/, we do need it to exist. + keepdir $(alt_prefix)/lib + keepdir $(alt_prefix)/usr/lib + + dosym usr/include $(alt_prefix)/sys-include + return 0 + fi + + # Files for Debian-style locale updating + dodir /usr/share/i18n + sed \ + -e "/^#/d" \ + -e "/SUPPORTED-LOCALES=/d" \ + -e "s: \\\\::g" -e "s:/: :g" \ + "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ + || die "generating /usr/share/i18n/SUPPORTED failed" + + cd "${S}" || die + + # Install misc network config files + insinto /etc + doins posix/gai.conf + + if use systemd ; then + doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf" + else + doins nss/nsswitch.conf + fi + + # Gentoo-specific + newins "${FILESDIR}"/host.conf-1 host.conf + + if use nscd ; then + doins nscd/nscd.conf + + newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + use systemd && systemd_dounit nscd/nscd.service + newtmpfiles nscd/nscd.tmpfiles nscd.conf + fi + + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc + doenvd "${T}"/00glibc + + for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do + [[ -s ${d} ]] && dodoc ${d} + done + dodoc -r ChangeLog.old + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f "${ED}"/etc/localtime + + # Generate all locales if this is a native build as locale generation + if use compile-locales && ! is_crosscompile; then + run_locale_gen 1 "${ED}" + fi +} + +glibc_headers_install() { + local builddir=$(builddir "headers") + cd "${builddir}" + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers + + insinto $(alt_headers)/gnu + doins "${S}"/include/gnu/stubs.h + + # Make sure we install the sys-include symlink so that when + # we build a 2nd stage cross-compiler, gcc finds the target + # system headers correctly. See gcc/doc/gccinstall.info + dosym usr/include $(alt_prefix)/sys-include +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install + + if ! use static-libs ; then + einfo "Not installing static glibc libraries" + find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete + fi +} + +# Simple test to make sure our new glibc isn't completely broken. +# Make sure we don't test with statically built binaries since +# they will fail. Also, skip if this glibc is a cross compiler. +# +# If coreutils is built with USE=multicall, some of these files +# will just be wrapper scripts, not actual ELFs we can test. +glibc_sanity_check() { + cd / #228809 + + # We enter ${ED} so to avoid trouble if the path contains + # special characters; for instance if the path contains the + # colon character (:), then the linker will try to split it + # and look for the libraries in an unexpected place. This can + # lead to unsafe code execution if the generated prefix is + # within a world-writable directory. + # (e.g. /var/tmp/portage:${HOSTNAME}) + pushd "${ED}"/$(get_libdir) >/dev/null + + # first let's find the actual dynamic linker here + # symlinks may point to the wrong abi + local newldso=$(find . -maxdepth 1 -name 'ld*so.?' -type f -print -quit) + + einfo Last-minute run tests with ${newldso} in /$(get_libdir) ... + + local x striptest + for x in cal date env free ls true uname uptime ; do + x=$(type -p ${x}) + [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue + striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue + case ${striptest} in + *"statically linked"*) continue;; + *"ASCII text"*) continue;; + esac + # We need to clear the locale settings as the upgrade might want + # incompatible locale data. This test is not for verifying that. + LC_ALL=C \ + ${newldso} --library-path . ${x} > /dev/null \ + || die "simple run test (${x}) failed" + done + + popd >/dev/null +} + +pkg_preinst() { + # nothing to do if just installing headers + just_headers && return + + einfo "Checking general environment sanity." + sanity_prechecks + + # prepare /etc/ld.so.conf.d/ for files + mkdir -p "${EROOT}"/etc/ld.so.conf.d + + # Default /etc/hosts.conf:multi to on for systems with small dbs. + if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then + sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf + einfo "Defaulting /etc/host.conf:multi to on" + fi + + [[ -n ${ROOT} ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check + + if [[ -L ${EROOT}/usr/lib/locale ]]; then + # Help portage migrate this to a directory + # https://bugs.gentoo.org/753740 + rm "${EROOT}"/usr/lib/locale || die + fi + + # Keep around libcrypt so that Perl doesn't break when merging libxcrypt + # (libxcrypt is the new provider for now of libcrypt.so.{1,2}). + # bug #802207 + if has_version "${CATEGORY}/${PN}[crypt]" && ! has preserve-libs ${FEATURES}; then + PRESERVED_OLD_LIBCRYPT=1 + cp -p "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" \ + "${T}/libcrypt$(get_libname 1)" || die + else + PRESERVED_OLD_LIBCRYPT=0 + fi +} + +glibc_refresh_ldconfig() { + if [[ ${MERGE_TYPE} == buildonly ]]; then + return + fi + + # Version check could be added to avoid unnecessary work, but ldconfig + # should finish quickly enough to not matter. + ebegin "Refreshing ld.so.cache" + ldconfig -i + if ! eend $?; then + ewarn "Failed to refresh the ld.so.cache for you. Some programs may be broken" + ewarn "before you manually do so (ldconfig -i)." + fi +} + +pkg_postinst() { + # nothing to do if just installing headers + just_headers && return + + if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then + # Generate fastloading iconv module configuration file. + "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" + fi + + if ! is_crosscompile && [[ -z ${ROOT} ]] ; then + # glibc-2.38+ on loong has ldconfig support added, but the ELF e_flags + # handling has changed as well, which means stale ldconfig auxiliary + # cache entries and failure to lookup libgcc_s / libstdc++ (breaking + # every C++ application) / libgomp etc., among other breakages. + # + # To fix this, simply refresh the ld.so.cache without using the + # auxiliary cache if we're natively installing on loong. This should + # be done relatively soon because we want to minimize the breakage + # window for the affected programs. + use loong && glibc_refresh_ldconfig + + if ! use compile-locales; then + run_locale_gen 0 "${EROOT}" + fi + + # If fixincludes was/is active for a particular GCC slot, we + # must refresh it. See bug #933282 and GCC's documentation: + # https://gcc.gnu.org/onlinedocs/gcc/Fixed-Headers.html + # + # TODO: Could this be done for cross? Some care would be needed + # to pass the right arguments. + while IFS= read -r -d $'\0' slot ; do + local mkheaders_path="${BROOT}"/usr/libexec/gcc/${CBUILD}/${slot##*/}/install-tools/mkheaders + local pthread_h="${BROOT}"/usr/lib/gcc/${CBUILD}/${slot##*/}/include-fixed/pthread.h + if [[ -x ${mkheaders_path} ]] ; then + ebegin "Refreshing fixincludes for ${CBUILD} with gcc-${slot##*/}" + ${mkheaders_path} -v + eend $? + elif [[ -f ${pthread_h} ]] ; then + # fixincludes might have been enabled in the past for this + # GCC slot but not since we fixed toolchain.eclass to install + # mkheaders, so we need to manually delete pthread.h at least. + ebegin "Deleting stale fixincludes'd pthread.h for ${CBUILD} with gcc-${slot##*/}" + mv -v "${pthread_h}" "${pthread_h}.bak" + eend $? + fi + done < <(find "${BROOT}"/usr/libexec/gcc/${CBUILD}/ -mindepth 1 -maxdepth 1 -type d -print0) + fi + + upgrade_warning + + # Check for sanity of /etc/nsswitch.conf, take 2 + if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then + local entry + for entry in passwd group shadow; do + if grep -E -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then + ewarn "" + ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" + ewarn "removed from glibc and is now provided by the package" + ewarn " sys-auth/libnss-nis" + ewarn "Install it now to keep your NIS setup working." + ewarn "" + fi + done + fi + + if [[ ${PRESERVED_OLD_LIBCRYPT} -eq 1 ]] ; then + cp -p "${T}/libcrypt$(get_libname 1)" "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" || die + preserve_old_lib_notify /$(get_libdir)/libcrypt$(get_libname 1) + + elog "Please ignore a possible later error message about a file collision involving" + elog "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1). We need to preserve this file for the moment to keep" + elog "the upgrade working, but it also needs to be overwritten when" + elog "sys-libs/libxcrypt is installed. See bug 802210 for more details." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42-r7.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42-r7.ebuild new file mode 100644 index 00000000000..45930e159c8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42-r7.ebuild @@ -0,0 +1,1865 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc +# Please read & adapt the page as necessary if obsolete. + +PYTHON_COMPAT=( python3_{11..14} ) +TMPFILES_OPTIONAL=1 + +EMULTILIB_PKG="true" + +# Gentoo patchset (ignored for live ebuilds) +PATCH_VER=9 +PATCH_DEV=dilfridge + +# gcc mulitilib bootstrap files version +GCC_BOOTSTRAP_VER=20201208 + +# systemd integration version +GLIBC_SYSTEMD_VER=20210729 + +# Minimum kernel version that glibc requires +MIN_KERN_VER="3.2.0" + +# Minimum pax-utils version needed (which contains any new syscall changes for +# its seccomp filter!). Please double check this! +MIN_PAX_UTILS_VER="1.3.3" + +# Minimum systemd version needed (which contains any new syscall changes for +# its seccomp filter!). Please double check this! +MIN_SYSTEMD_VER="254.9-r1" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/glibc.asc + +inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ + multilib systemd multiprocessing tmpfiles eapi9-ver verify-sig + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 +else + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86" + SRC_URI="mirror://gnu/glibc/${P}.tar.xz" + SRC_URI+=" https://distfiles.gentoo.org/pub/proj/toolchain/glibc/patches/${P}-patches-${PATCH_VER}.tar.xz" + SRC_URI+=" verify-sig? ( mirror://gnu/glibc/${P}.tar.xz.sig )" +fi + +SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" +SRC_URI+=" systemd? ( https://gitweb.gentoo.org/proj/toolchain/glibc-systemd.git/snapshot/glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz )" + +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +SLOT="2.2" +IUSE="audit caps cet compile-locales custom-cflags doc gd hash-sysv-compat headers-only +multiarch multilib multilib-bootstrap nscd perl profile selinux sframe +ssp stack-realign +static-libs suid systemd systemtap test vanilla" + +# Here's how the cross-compile logic breaks down ... +# CTARGET - machine that will target the binaries +# CHOST - machine that will host the binaries +# CBUILD - machine that will build the binaries +# If CTARGET != CHOST, it means you want a libc for cross-compiling. +# If CHOST != CBUILD, it means you want to cross-compile the libc. +# CBUILD = CHOST = CTARGET - native build/install +# CBUILD != (CHOST = CTARGET) - cross-compile a native build +# (CBUILD = CHOST) != CTARGET - libc for cross-compiler +# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler +# For install paths: +# CHOST = CTARGET - install into / +# CHOST != CTARGET - install into /usr/CTARGET/ +# +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +# Note [Disable automatic stripping] +# Disabling automatic stripping for a few reasons: +# - portage's attempt to strip breaks non-native binaries at least on +# arm: bug #697428 +# - portage's attempt to strip libpthread.so.0 breaks gdb thread +# enumeration: bug #697910. This is quite subtle: +# * gdb uses glibc's libthread_db-1.0.so to enumerate threads. +# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols +# via 'ps_pglobal_lookup' symbol defined in gdb. +# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all +# known symbols in 'libpthread.so.0'. Specifically 'nptl_version' +# (unexported) is used to sanity check compatibility before enabling +# debugging. +# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint +# * normal 'strip' command trims '.symtab' +# Thus our main goal here is to prevent 'libpthread.so.0' from +# losing it's '.symtab' entries. +# - similarly, valgrind requires knowledge about symbols in ld.so: +# bug #920753 +# As Gentoo's strip does not allow us to pass less aggressive stripping +# options and does not check the machine target we strip selectively. + +# We need a new-enough binutils/gcc to match upstream baseline. +# Also we need to make sure our binutils/gcc supports TLS, +# and that gcc already contains the hardened patches. +# Lastly, let's avoid some openssh nastiness, bug 708224, as +# convenience to our users. + +IDEPEND=" + !compile-locales? ( sys-apps/locale-gen ) +" +BDEPEND=" + ${PYTHON_DEPS} + >=app-misc/pax-utils-${MIN_PAX_UTILS_VER} + sys-devel/bison + compile-locales? ( sys-apps/locale-gen ) + doc? ( + dev-lang/perl + sys-apps/texinfo + ) + sframe? ( >=sys-devel/binutils-2.45 ) + test? ( + dev-lang/perl + >=net-dns/libidn2-2.3.0 + sys-apps/gawk[mpfr] + ) + verify-sig? ( sec-keys/openpgp-keys-glibc ) +" +COMMON_DEPEND=" + gd? ( media-libs/gd:2= ) + nscd? ( selinux? ( + audit? ( sys-process/audit ) + caps? ( sys-libs/libcap ) + ) ) + suid? ( caps? ( sys-libs/libcap ) ) + selinux? ( sys-libs/libselinux ) + systemtap? ( dev-debug/systemtap ) +" +DEPEND="${COMMON_DEPEND} +" +RDEPEND="${COMMON_DEPEND} + !/dev/null + + rm -f glibc-test* + printf '%b' "$*" > glibc-test.c + + # We assume CC is already set up. + nonfatal emake glibc-test + ret=$? + + popd >/dev/null + + CFLAGS=${save_cflags} + return ${ret} +} + +do_run_test() { + local ret + + if [[ ${MERGE_TYPE} == "binary" ]] ; then + # ignore build failures when installing a binary package #324685 + CC="${glibc__ORIG_CC}" CXX="${glibc__ORIG_CXX}" CPP="${glibc__ORIG_CPP}" \ + CFLAGS="-O2" LDFLAGS="" do_compile_test "" "$@" 2>/dev/null || return 0 + else + ebegin "Performing simple compile test for ABI=${ABI}" + if ! do_compile_test "" "$@" ; then + ewarn "Simple build failed ... assuming this is desired #324685" + eend 1 + return 0 + else + eend 0 + fi + fi + + pushd "${T}" >/dev/null + + ./glibc-test + ret=$? + rm -f glibc-test* + + popd >/dev/null + + return ${ret} +} + +setup_target_flags() { + # This largely mucks with compiler flags. None of which should matter + # when building up just the headers. + just_headers && return 0 + + case $(tc-arch) in + x86) + # -march needed for #185404 #199334 + # TODO: When creating the first glibc cross-compile, this test will + # always fail as it does a full link which in turn requires glibc. + # Probably also applies when changing multilib profile settings (e.g. + # enabling x86 when the profile was amd64-only previously). + # We could change main to _start and pass -nostdlib here so that we + # only test the gcc code compilation. Or we could do a compile and + # then look for the symbol via scanelf. + if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + filter-flags '-march=*' + export CFLAGS="-march=${t} ${CFLAGS}" + einfo "Auto adding -march=${t} to CFLAGS #185404" + fi + # For compatibility with older binaries at slight performance cost. + use stack-realign && export CFLAGS+=" -mstackrealign" + ;; + amd64) + # -march needed for #185404 #199334 + # TODO: See cross-compile issues listed above for x86. + if [[ ${ABI} == x86 ]]; then + if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + # Normally the target is x86_64-xxx, so turn that into the -march that + # gcc actually accepts. #528708 + [[ ${t} == "x86_64" ]] && t="x86-64" + filter-flags '-march=*' + # ugly, ugly, ugly. ugly. + CFLAGS_x86=$( + CFLAGS=${CFLAGS_x86} + filter-flags '-march=*' + is-flagq '-mfpmath=sse' && append-cflags -msse + echo "${CFLAGS}" + ) + export CFLAGS_x86="${CFLAGS_x86} -march=${t}" + einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" + fi + # For compatibility with older binaries at slight performance cost. + use stack-realign && export CFLAGS_x86+=" -mstackrealign" + fi + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + ppc|ppc64) + # Many arch-specific implementations do not work on ppc with + # cache-block not equal to 128 bytes. This breaks memset: + # https://sourceware.org/PR26522 + # https://bugs.gentoo.org/737996 + # Use default -mcpu=. For ppc it means non-multiarch setup. + filter-flags '-mcpu=*' + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + local cpu + case ${CTARGET} in + sparc64-*) + cpu="sparc64" + case $(get-flag mcpu) in + v9) + # We need to force at least v9a because the base build doesn't + # work with just v9. + # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 + append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + *) + cpu="sparcv9" + ;; + esac + ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + esac +} + +setup_flags() { + # Make sure host make.conf doesn't pollute us + if is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi + + # Store our CFLAGS because it's changed depending on which CTARGET + # we are building when pulling glibc on a multilib profile + CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} + CFLAGS=${CFLAGS_BASE} + CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} + CXXFLAGS=${CXXFLAGS_BASE} + ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} + ASFLAGS=${ASFLAGS_BASE} + + # Allow users to explicitly avoid flag sanitization via + # USE=custom-cflags. + if ! use custom-cflags; then + # Over-zealous CFLAGS can often cause problems. What may work for one + # person may not work for another. To avoid a large influx of bugs + # relating to failed builds, we strip most CFLAGS out to ensure as few + # problems as possible. + strip-flags + + # Allow -O2 and -O3, but nothing else for now. + # TODO: Test -Os, -Oz. + if ! is-flagq '-O@(2|3)' ; then + # Lock glibc at -O2. We want to be conservative here. + filter-flags '-O?' + append-flags -O2 + fi + fi + + strip-unsupported-flags + filter-lto + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # ld can't use -r & --relax at the same time, bug #788901 + # https://sourceware.org/PR27837 + filter-ldflags '-Wl,--relax' + + # Flag added for cross-prefix, but causes ldconfig to segfault. Not needed + # anyway because glibc already handles this by itself. + filter-ldflags '-Wl,--dynamic-linker=*' + + # Fails to link (bug #940709) in some cases but even if it manages to, + # subtle runtime breakage will occur because the linker scripts need + # adaptation. Mentioned in PR21557#c0. + filter-ldflags '-Wl,--gc-sections' + + # some weird software relies on sysv hashes in glibc, bug 863863, bug 864100 + # we have to do that here already so mips can filter it out again :P + if use hash-sysv-compat ; then + append-ldflags '-Wl,--hash-style=both' + fi + + # #492892 + filter-flags -frecord-gcc-switches + + # #898098 + filter-flags -fno-builtin + + # #798774 + filter-flags -fno-semantic-interposition + + # #829583 + filter-lfs-flags + + unset CBUILD_OPT CTARGET_OPT + if use multilib ; then + CTARGET_OPT=$(get_abi_CTARGET) + [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) + fi + + setup_target_flags + + if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then + CBUILD_OPT=${CTARGET_OPT} + fi + + # glibc's headers disallow -O0 and fail at build time: + # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" + # https://sourceware.org/glibc/wiki/FAQ#Why_do_I_get:.60.23error_.22glibc_cannot_be_compiled_without_optimization.22.27.2C_when_trying_to_compile_GNU_libc_with_GNU_CC.3F + replace-flags -O0 -O1 + + # Similar issues as with SSP. Can't inject yourself that early. + filter-flags '-fsanitize=*' + + # See end of bug #830454; we handle this via USE=cet + filter-flags '-fcf-protection=*' + + # When bootstrapping, we may have a situation where + # CET-enabled gcc from seed is used to build CET-disabled + # glibc. As such, gcc implicitly enables CET if no + # -fcf-protection flag is passed. For a typical package it + # should not be a problem, but for glibc it matters as it is + # dealing with CET in ld.so. So if CET is supposed to be + # disabled for glibc, be explicit about it. + if ! use cet; then + case ${ABI}-${CTARGET} in + amd64-x86_64-*|x32-x86_64-*-*-gnux32) + append-flags '-fcf-protection=none' + ;; + arm64-aarch64*) + append-flags '-mbranch-protection=none' + ;; + esac + fi +} + +use_multiarch() { + # Allow user to disable runtime arch detection in multilib. + use multiarch || return 1 + # Make sure binutils is new enough to support indirect functions, + # #336792. This funky sed supports gold and bfd linkers. + local bver nver + bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') + case $(tc-arch ${CTARGET}) in + amd64|x86) nver="2.20" ;; + arm) nver="2.22" ;; + hppa) nver="2.23" ;; + ppc|ppc64) nver="2.20" ;; + # ifunc support was added in 2.23, but glibc also needs + # machinemode which is in 2.24. + s390) nver="2.24" ;; + sparc) nver="2.21" ;; + *) return 1 ;; + esac + ver_test ${bver} -ge ${nver} +} + +# Setup toolchain variables that had historically been defined in the +# profiles for these archs. +setup_env() { + # silly users + unset LD_RUN_PATH + unset LD_ASSUME_KERNEL + + if is_crosscompile || tc-is-cross-compiler ; then + multilib_env ${CTARGET_OPT:-${CTARGET}} + + if ! use multilib ; then + MULTILIB_ABIS=${DEFAULT_ABI} + else + MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} + fi + + # If the user has CFLAGS_ in their make.conf, use that, + # and fall back on CFLAGS. + local VAR=CFLAGS_${CTARGET//[-.]/_} + CFLAGS=${!VAR-${CFLAGS}} + einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" + fi + + setup_flags + + export ABI=${ABI:-${DEFAULT_ABI:-default}} + + if just_headers ; then + # Avoid mixing host's CC and target's CFLAGS_${ABI}: + # At this bootstrap stage we have only binutils for + # target but not compiler yet. + einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." + return 0 + fi + + # glibc does not work with non-bfd (for various reasons): + # * gold (bug #269274) + # * mold (bug #860900) + tc-ld-force-bfd + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + # Reset CC and CXX to the value at start of emerge + export CC=${glibc__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}} + export CXX=${glibc__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}} + export CPP=${glibc__ORIG_CPP:-${CPP:-$(tc-getCPP ${CTARGET})}} + + # and make sure glibc__ORIG_CC and glibc__ORIG_CXX is defined now. + export glibc__ORIG_CC=${CC} + export glibc__ORIG_CXX=${CXX} + export glibc__ORIG_CPP=${CPP} + + if tc-is-clang && ! use custom-cflags && ! is_crosscompile ; then + export glibc__force_gcc=yes + # once this is toggled on, it needs to stay on, since with CPP manipulated + # tc-is-clang does not work correctly anymore... + fi + + if [[ ${glibc__force_gcc} == "yes" ]] ; then + # If we are running in an otherwise clang/llvm environment, we need to + # recover the proper gcc and binutils settings here, at least until glibc + # is finally building with clang. So let's override everything that is + # set in the clang profiles. + # Want to shoot yourself into the foot? Set USE=custom-cflags, that's always + # a good start into that direction. + # Also, if you're crosscompiling, let's assume you know what you are doing. + # Hopefully. + # Last, we need the settings of the *build* environment, not of the + # target environment... + + local current_binutils_path=$(env CHOST="${CBUILD}" ROOT="${BROOT}" binutils-config -B "${CTARGET}") + local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B) + einfo "Overriding clang configuration, since it won't work here" + + export CC="${current_gcc_path}/${CTARGET}-gcc" + export CPP="${current_gcc_path}/${CTARGET}-cpp" + export CXX="${current_gcc_path}/${CTARGET}-g++" + export LD="${current_binutils_path}/ld.bfd" + export AR="${current_binutils_path}/ar" + export AS="${current_binutils_path}/as" + export NM="${current_binutils_path}/nm" + export STRIP="${current_binutils_path}/strip" + export RANLIB="${current_binutils_path}/ranlib" + export OBJCOPY="${current_binutils_path}/objcopy" + export STRINGS="${current_binutils_path}/strings" + export OBJDUMP="${current_binutils_path}/objdump" + export READELF="${current_binutils_path}/readelf" + export ADDR2LINE="${current_binutils_path}/addr2line" + + # do we need to also do flags munging here? yes! at least... + filter-flags '-fuse-ld=*' + filter-flags '-D_FORTIFY_SOURCE=*' + + else + + # this is the "normal" case + + export CC="$(tc-getCC ${CTARGET})" + export CXX="$(tc-getCXX ${CTARGET})" + export CPP="$(tc-getCPP ${CTARGET})" + + # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure + # can't detect them automatically due to ${CHOST} mismatch and fallbacks + # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup(). + export NM="$(tc-getNM ${CTARGET})" + export READELF="$(tc-getREADELF ${CTARGET})" + + fi + + # We need to export CFLAGS with abi information in them because glibc's + # configure script checks CFLAGS for some targets (like mips). Keep + # around the original clean value to avoid appending multiple ABIs on + # top of each other. (Why does the comment talk about CFLAGS if the code + # acts on CC?) + export glibc__GLIBC_CC=${CC} + export glibc__GLIBC_CXX=${CXX} + export glibc__GLIBC_CPP=${CPP} + + export glibc__abi_CFLAGS="$(get_abi_CFLAGS)" + + # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 + # To build .S (assembly) files with the same ABI-specific flags + # upstream currently recommends adding CFLAGS to CC/CXX: + # https://sourceware.org/PR23273 + # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS + # and breaks multiarch support. See 659030#c3 for an example. + # The glibc configure script doesn't properly use LDFLAGS all the time. + export CC="${glibc__GLIBC_CC} ${glibc__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}" + + # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 + export CXX="${glibc__GLIBC_CXX} ${glibc__abi_CFLAGS} ${CFLAGS}" + + export CPP="${glibc__GLIBC_CPP} ${glibc__abi_CFLAGS} ${CFLAGS}" + + if is_crosscompile; then + # Assume worst-case bootstrap: glibc is built for the first time + # with ${CTARGET}-g++ not available yet. We avoid + # building auxiliary programs that require C++: bug #683074 + # It should not affect final result. + export libc_cv_cxx_link_ok=no + # The line above has the same effect. We set CXX explicitly + # to make build logs less confusing. + export CXX= + fi +} + +foreach_abi() { + setup_env + + local ret=0 + local abilist="" + if use multilib ; then + abilist=$(get_install_abis) + else + abilist=${DEFAULT_ABI} + fi + local -x ABI + for ABI in ${abilist:-default} ; do + setup_env + einfo "Running $1 for ABI ${ABI}" + $1 + : $(( ret |= $? )) + done + return ${ret} +} + +glibc_banner() { + local b="Gentoo ${PVR}" + [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" (patchset ${PATCH_VER})" + echo "${b}" +} + +# The following Kernel version handling functions are mostly copied from portage +# source. It's better not to use linux-info.eclass here since a) it adds too +# much magic, see bug 326693 for some of the arguments, and b) some of the +# functions are just not provided. + +g_get_running_KV() { + uname -r + return $? +} + +g_KV_major() { + [[ -z $1 ]] && return 1 + local KV=$@ + echo "${KV%%.*}" +} + +g_KV_minor() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.} + echo "${KV%%.*}" +} + +g_KV_micro() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.*.} + echo "${KV%%[^[:digit:]]*}" +} + +g_KV_to_int() { + [[ -z $1 ]] && return 1 + local KV_MAJOR=$(g_KV_major "$1") + local KV_MINOR=$(g_KV_minor "$1") + local KV_MICRO=$(g_KV_micro "$1") + local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) + + # We make version 2.2.0 the minimum version we will handle as + # a sanity check ... if its less, we fail ... + if [[ ${KV_int} -ge 131584 ]] ; then + echo "${KV_int}" + return 0 + fi + return 1 +} + +g_int_to_KV() { + local version=$1 major minor micro + major=$((version / 65536)) + minor=$(((version % 65536) / 256)) + micro=$((version % 256)) + echo ${major}.${minor}.${micro} +} + +get_kheader_version() { + printf '#include \nLINUX_VERSION_CODE\n' | \ + $(tc-getCPP ${CTARGET}) -I "${ESYSROOT}$(alt_headers)" - | \ + tail -n 1 +} + +# We collect all sanity checks here. Consistency is not guranteed between +# pkg_ and src_ phases, so we call this function both in pkg_pretend and in +# src_unpack. +sanity_prechecks() { + # Prevent native builds from downgrading + if [[ ${MERGE_TYPE} != "buildonly" ]] && \ + [[ -z ${ROOT} ]] && \ + [[ ${CBUILD} == ${CHOST} ]] && \ + [[ ${CHOST} == ${CTARGET} ]] ; then + + # The high rev # is to allow people to downgrade between -r# + # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 + # should be fine. Hopefully we never actually use a r# this + # high. + if has_version ">${CATEGORY}/${P}-r10000" ; then + eerror "Sanity check to keep you from breaking your system:" + eerror " Downgrading glibc is not supported and a sure way to destruction." + [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." + fi + + if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then + eerror "Your old kernel is broken. You need to update it to a newer" + eerror "version as syscall() will break. See bug 279260." + [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Old and broken kernel." + fi + fi + + if [[ ${CTARGET} == i386-* ]] ; then + eerror "i386 CHOSTs are no longer supported." + eerror "Chances are you don't actually want/need i386." + eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" + die "Please fix your CHOST" + fi + + if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then + ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." + ewarn "This will result in a 50% performance penalty when running with a 32bit" + ewarn "hypervisor, which is probably not what you want." + fi + + # ABI-specific checks follow here. Hey, we have a lot more specific conditions that + # we test for... + if ! is_crosscompile && ! tc-is-cross-compiler ; then + if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking if the system can execute 32-bit binaries" + echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" + local STAT + if ${CC-${CHOST}-gcc} ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then + "${T}/check-ia32-emulation.elf32" + STAT=$? + else + # Don't fail here to allow single->multi ABI switch + # or recover from breakage like bug #646424 + ewarn "Failed to compile the ABI test. Broken host glibc?" + STAT=0 + fi + rm -f "${T}/check-ia32-emulation.elf32" + eend $STAT + if [[ $STAT -ne 0 ]]; then + eerror "Ensure that CONFIG_IA32_EMULATION is enabled in the kernel." + eerror "Seek support otherwise." + die "Unable to execute 32-bit binaries" + fi + fi + + fi + + # When we actually have to compile something... + if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then + if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then + # bug #833620, bug #643302 + eerror "Found ${ESYSROOT}/usr/lib/include directory!" + eerror "This is known to break glibc's build." + eerror "Please backup its contents then remove the directory." + die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" + fi + + if [[ ${CTARGET} == *-linux* ]] ; then + local run_kv build_kv want_kv + + run_kv=$(g_get_running_KV) + build_kv=$(g_int_to_KV $(get_kheader_version)) + want_kv=${MIN_KERN_VER} + + if ! is_crosscompile && ! tc-is-cross-compiler ; then + # Building fails on an non-supporting kernel + ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" + if ! [[ $(g_KV_to_int ${run_kv}) -ge $(g_KV_to_int ${want_kv}) ]] ; then + eend 1 + echo + eerror "You need a kernel of at least ${want_kv}!" + die "Kernel version too low!" + fi + eend 0 + fi + + # Do not run this check for pkg_pretend, just pkg_setup and friends (if we ever get used there). + # It's plausible (seen it in the wild) that Portage will (correctly) schedule a linux-headers + # upgrade before glibc, but because pkg_pretend gets run before any packages are merged at all (not + # just glibc), the whole emerge gets aborted without a good reason. We probably don't + # need to run this check at all given we have a dependency on the right headers, + # but let's leave it as-is for now. + if [[ ${EBUILD_PHASE_FUNC} != pkg_pretend ]] ; then + ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" + if ! [[ $(g_KV_to_int ${build_kv}) -ge $(g_KV_to_int ${want_kv}) ]] ; then + eend 1 + echo + eerror "You need linux-headers of at least ${want_kv}!" + die "linux-headers version too low!" + fi + eend 0 + fi + fi + fi +} + +upgrade_warning() { + is_crosscompile && return + + if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then + if ver_replacing -lt $(ver_cut 1-2 ${PV}); then + ewarn "After upgrading glibc, please restart all running processes." + ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)." + ewarn "Alternatively, reboot your system." + ewarn "(See bug #660556, bug #741116, bug #823756, etc)" + fi + fi +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + upgrade_warning +} + +# pkg_setup + +pkg_setup() { + # see bug 682570 + [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup +} + +# src_unpack + +src_unpack() { + setup_env + + einfo "Checking general environment sanity." + sanity_prechecks + + use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git + https://github.com/gentoo/glibc-patches.git + " + EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git + git-r3_src_unpack + mv patches-git/9999 patches || die + EGIT_REPO_URI=" + https://sourceware.org/git/glibc.git + https://git.sr.ht/~sourceware/glibc + https://gitlab.com/x86-glibc/glibc.git + " + EGIT_CHECKOUT_DIR=${S} + [[ ${PV} == *.*.9999 ]] && EGIT_BRANCH=release/${PV%.*}/master + git-r3_src_unpack + else + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}/${P}.tar.xz" "${DISTDIR}/${P}.tar.xz.sig" + fi + unpack ${P}.tar.xz + + cd "${WORKDIR}" || die + unpack ${P}-patches-${PATCH_VER}.tar.xz + fi + + cd "${WORKDIR}" || die + use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz +} + +# src_prepare + +src_prepare() { + local patchsetname + if ! use vanilla ; then + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${PV}-${PATCH_VER}" + fi + einfo "Applying Gentoo Glibc patchset ${patchsetname}" + eapply "${WORKDIR}"/patches + einfo "Done." + fi + + case ${CTARGET} in + m68*-aligned-*) + einfo "Applying utmp format fix for m68k with -maligned-int" + eapply "${FILESDIR}/glibc-2.41-m68k-malign.patch" + ;; + *) + ;; + esac + + default + + gnuconfig_update + + cd "${WORKDIR}" || die + find . -name configure -exec touch {} + + + # Fix permissions on some of the scripts. + chmod u+x "${S}"/scripts/*.sh + + cd "${S}" || die +} + +# src_configure + +glibc_do_configure() { + dump_build_environment + + local myconf=() + + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + myconf+=( --enable-stack-protector=$(usex ssp strong no) ) + + # Keep a whitelist of targets supporting IFUNC. glibc's ./configure + # is not robust enough to detect proper support: + # https://bugs.gentoo.org/641216 + # https://sourceware.org/PR22634#c0 + case $(tc-arch ${CTARGET}) in + # Keep whitelist of targets where autodetection mostly works. + amd64|x86|sparc|ppc|ppc64|arm|arm64|s390|riscv|loong) ;; + # Blacklist everywhere else + *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; + esac + + case ${ABI}-${CTARGET} in + amd64-x86_64-*|x32-x86_64-*-*-gnux32) myconf+=( $(use_enable cet) ) ;; + *) ;; + esac + + case ${ABI}-${CTARGET} in + amd64-x86_64-*|arm64-aarch64-*) myconf+=( $(use_enable sframe) ) ;; + *) ;; + esac + + [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) + + myconf+=( --enable-kernel=${MIN_KERN_VER} ) + + # Since SELinux support is only required for nscd, only enable it if: + # 1. USE selinux + # 2. only for the primary ABI on multilib systems + # 3. Not a crosscompile + if ! is_crosscompile && use selinux ; then + if use multilib ; then + if is_final_abi ; then + myconf+=( --with-selinux ) + else + myconf+=( --without-selinux ) + fi + else + myconf+=( --with-selinux ) + fi + else + myconf+=( --without-selinux ) + fi + + # Force a few tests where we always know the answer but + # configure is incapable of finding it. + if is_crosscompile ; then + export \ + libc_cv_c_cleanup=yes \ + libc_cv_forced_unwind=yes + fi + + myconf+=( + --disable-werror + --enable-bind-now + --enable-fortify-source + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + $(use_enable profile) + $(use_with gd) + --with-headers="${ESYSROOT}$(alt_headers)" + --prefix="$(host_eprefix)/usr" + --sysconfdir="$(host_eprefix)/etc" + --localstatedir="$(host_eprefix)/var" + --libdir='$(prefix)'/$(get_libdir) + --mandir='$(prefix)'/share/man + --infodir='$(prefix)'/share/info + --libexecdir='$(libdir)'/misc/glibc + --with-bugurl=https://bugs.gentoo.org/ + --with-pkgversion="$(glibc_banner)" + $(use_multiarch || echo --disable-multi-arch) + $(use_enable systemtap) + $(use_enable nscd) + + # /usr/bin/mtrace has a Perl shebang. Gentoo Prefix QA checks fail if + # Perl hasn't been installed inside the prefix yet and configure picks + # up a Perl from outside the prefix instead. configure will fail to + # execute Perl during configure if we're cross-compiling a prefix, but + # it will just disable mtrace in that case. + # Note: mtrace is needed by the test suite. + ac_cv_path_PERL="$(usex perl "${EPREFIX}"/usr/bin/perl $(usex test "${EPREFIX}"/usr/bin/perl $(usex doc "${EPREFIX}"/usr/bin/perl no)))" + + # locale data is arch-independent + # https://bugs.gentoo.org/753740 + libc_cv_complocaledir='${exec_prefix}/lib/locale' + + # On aarch64 there is no way to override -mcpu=native, and if + # the current cpu does not support SVE configure fails. + # Let's boldly assume our toolchain can always build SVE instructions. + libc_cv_aarch64_sve_asm=yes + + ${EXTRA_ECONF} + ) + + # We rely on sys-libs/timezone-data for timezone tools normally. + myconf+=( $(use_enable vanilla timezone-tools) ) + + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) + ac_cv_lib_cap_cap_init=$(usex caps || echo no) + + # There is no configure option for this and we need to export it + # since the glibc build will re-run configure on itself + export libc_cv_rootsbindir="$(host_eprefix)/sbin" + export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" + + local builddir=$(builddir nptl) + mkdir -p "${builddir}" + cd "${builddir}" + set -- "${S}"/configure "${myconf[@]}" + echo "$@" + "$@" || die "failed to configure glibc" + + # If we're trying to migrate between ABI sets, we need + # to lie and use a local copy of gcc. Like if the system + # is built with MULTILIB_ABIS="amd64 x86" but we want to + # add x32 to it, gcc/glibc don't yet support x32. + # + if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib-bootstrap ; then + echo 'int main(void){}' > "${T}"/test.c || die + if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then + sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die + fi + fi +} + +glibc_headers_configure() { + export ABI=default + + local builddir=$(builddir "headers") + mkdir -p "${builddir}" + cd "${builddir}" + + # if we don't have a compiler yet, we can't really test it now ... + # hopefully they don't affect header generation, so let's hope for + # the best here ... + local v vars=( + ac_cv_header_cpuid_h=yes + libc_cv_{386,390,alpha,arm,hppa,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes + libc_cv_asm_cfi_directives=yes + libc_cv_broken_visibility_attribute=no + libc_cv_c_cleanup=yes + libc_cv_compiler_powerpc64le_binary128_ok=yes + libc_cv_forced_unwind=yes + libc_cv_gcc___thread=yes + libc_cv_mlong_double_128=yes + libc_cv_mlong_double_128ibm=yes + libc_cv_ppc_machine=yes + libc_cv_ppc_rel16=yes + libc_cv_predef_fortify_source=no + libc_cv_target_power8_ok=yes + libc_cv_visibility_attribute=yes + libc_cv_z_combreloc=yes + libc_cv_z_execstack=yes + libc_cv_z_initfirst=yes + libc_cv_z_nodelete=yes + libc_cv_z_nodlopen=yes + libc_cv_z_relro=yes + libc_mips_abi=${ABI} + libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=no + ac_cv_lib_cap_cap_init=no + ) + + einfo "Forcing cached settings:" + for v in "${vars[@]}" ; do + einfo " ${v}" + export ${v} + done + + local headers_only_arch_CPPFLAGS=() + + # Blow away some random CC settings that screw things up. #550192 + if [[ -d ${S}/sysdeps/mips ]]; then + pushd "${S}"/sysdeps/mips >/dev/null + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die + + # Force the mips ABI to the default. This is OK because the set of + # installed headers in this phase is the same between the 3 ABIs. + # If this ever changes, this hack will break, but that's unlikely + # as glibc discourages that behavior. + # https://crbug.com/647033 + sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die + + popd >/dev/null + fi + + local myconf=() + + case ${CTARGET} in + aarch64*) + # The configure checks fail during cross-build, so disable here + # for headers-only + myconf+=( + --disable-mathvec + ) ;; + riscv*) + # RISC-V interrogates the compiler to determine which target to + # build. If building the headers then we don't strictly need a + # RISC-V compiler, so the built-in definitions that are provided + # along with all RISC-V compiler might not exist. This causes + # glibc's RISC-V preconfigure script to blow up. Since we're just + # building the headers any value will actually work here, so just + # pick the standard one (rv64g/lp64d) to make the build scripts + # happy for now -- the headers are all the same anyway so it + # doesn't matter. + headers_only_arch_CPPFLAGS+=( + -D__riscv_xlen=64 + -D__riscv_flen=64 + -D__riscv_float_abi_double=1 + -D__riscv_atomic=1 + ) ;; + esac + + myconf+=( + --disable-sanity-checks + --enable-hacker-mode + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + --with-headers="${ESYSROOT}$(alt_headers)" + --prefix="$(host_eprefix)/usr" + ${EXTRA_ECONF} + ) + + # Nothing is compiled here which would affect the headers for the target. + # So forcing CC/CFLAGS is sane. + local headers_only_CC=$(tc-getBUILD_CC) + local headers_only_CFLAGS="-O1 -pipe" + local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" + local headers_only_LDFLAGS="" + set -- "${S}"/configure "${myconf[@]}" + echo \ + "CC=${headers_only_CC}" \ + "CFLAGS=${headers_only_CFLAGS}" \ + "CPPFLAGS=${headers_only_CPPFLAGS}" \ + "LDFLAGS=${headers_only_LDFLAGS}" \ + "$@" + CC=${headers_only_CC} \ + CFLAGS=${headers_only_CFLAGS} \ + CPPFLAGS=${headers_only_CPPFLAGS} \ + LDFLAGS="" \ + "$@" || die "failed to configure glibc" +} + +do_src_configure() { + if just_headers ; then + glibc_headers_configure + else + glibc_do_configure nptl + fi +} + +src_configure() { + foreach_abi do_src_configure +} + +# src_compile + +do_src_compile() { + emake -C "$(builddir nptl)" +} + +src_compile() { + if just_headers ; then + return + fi + + foreach_abi do_src_compile +} + +# src_test + +glibc_src_test() { + cd "$(builddir nptl)" + + local myxfailparams="" + if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then + local virt=$(systemd-detect-virt 2>/dev/null) + if [[ ${virt} == systemd-nspawn ]] ; then + ewarn "Skipping extra tests because in systemd-nspawn container" + XFAIL_TEST_LIST+=( "${XFAIL_NSPAWN_TEST_LIST[@]}" ) + fi + if [[ "$(nice)" == "19" ]] ; then + # Expects to be able to increase niceness, which it can't do if + # already at the highest nice value + XFAIL_TEST_LIST+=( "tst-nice" ) + fi + + for myt in ${XFAIL_TEST_LIST[@]} ; do + myxfailparams+="test-xfail-${myt}=yes " + done + fi + + # sandbox does not understand unshare() and prevents + # writes to /proc/, which makes many tests fail + + # we give the tests a bit more time to avoid spurious + # bug reports on slow arches + + SANDBOX_ON=0 LD_PRELOAD= TIMEOUTFACTOR=16 nonfatal emake ${myxfailparams} check +} + +src_test() { + if just_headers ; then + return + fi + + # glibc_src_test uses nonfatal so that we can run tests for all ABIs + # and fail at the end instead. + foreach_abi glibc_src_test || die "tests failed" +} + +# src_install + +run_locale_gen() { + local fatal=$1 prefix=$2 + local user_config action config stderr noun ret + local -a hasversion_opts localegen_args + + if [[ ${EBUILD_PHASE_FUNC} == src_install ]]; then + hasversion_opts=( -b ) + fi + + if has_version "${hasversion_opts[@]}" '>=sys-apps/locale-gen-3'; then + localegen_args=( --prefix "${prefix}" ) + else + config="${prefix}/usr/share/i18n/SUPPORTED" + user_config="${prefix}/etc/locale.gen" + if [[ ${EBUILD_PHASE_FUNC} == src_install ]]; then + # For USE=compile-locales, all locales should be built. + mkdir -p -- "${prefix}/usr/lib/locale" || die + elif locale-gen --list --config "${user_config}" | read -r; then + config=${user_config} + fi + localegen_args=( --config "${config}" --destdir "${prefix}" ) + fi + + # bug 736794: we need to be careful with the parallelization... the + # number of processors saved in the environment of a binary package may + # differ strongly from the number of processes available during postinst + if [[ ${EMERGE_FROM} != binary ]]; then + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) + fi + + printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 + { stderr=$(locale-gen "${localegen_args[@]}" 2>&1 >&3); } 3>&1 + ret=$? + action="ewarn" + if (( ret == 0 )); then + noun="warning" + else + noun="error" + if (( fatal )); then + action="die" + fi + fi + # Convey warnings/errors so that they can be reseen upon emerge exiting. + if [[ ${stderr} ]]; then + ewarn "locale-gen(8) issued the following ${noun}s:" + while read -r; do + ewarn "$REPLY" + done <<<"${stderr}" + fi + if (( ret != 0 )); then + "${action}" "locale-gen(8) unexpectedly failed during the ${EBUILD_PHASE_FUNC} phase" + fi +} + +glibc_do_src_install() { + local builddir=$(builddir nptl) + cd "${builddir}" + + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install + + # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support + # which come without headers etc. Only needed for binary packages since the + # external net-libs/libnsl has increased soversion. Keep only versioned libraries. + find "${D}" -name "libnsl.a" -delete + find "${D}" -name "libnsl.so" -delete + + # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need + # to infer upstream version: + # '#define VERSION "2.26.90"' -> '2.26.90' + local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) + + # Avoid stripping binaries not targeted by ${CHOST}. Or else + # ${CHOST}-strip would break binaries build for ${CTARGET}. + is_crosscompile && dostrip -x / + + # gdb thread introspection relies on local libpthreads symbols. stripping breaks it + # See Note [Disable automatic stripping] + dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so + # valgrind requires knowledge about ld.so symbols. + dostrip -x $(alt_libdir)/ld-*.so* + + if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then + # Move versioned .a file out of libdir to evade portage QA checks + # instead of using gen_usr_ldscript(). We fix ldscript as: + # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." + sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" \ + "${ED}"/$(alt_usrlibdir)/libm.a || die + dodir $(alt_usrlibdir)/${P} + mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a \ + "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die + fi + + # We configure toolchains for standalone prefix systems with a sysroot, + # which is prepended to paths in ld scripts, so strip the prefix from these. + # Before: GROUP ( /foo/lib64/libc.so.6 /foo/usr/lib64/libc_nonshared.a AS_NEEDED ( /foo/lib64/ld-linux-x86-64.so.2 ) ) + # After: GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-x86-64.so.2 ) ) + if [[ -n $(host_eprefix) ]] ; then + local file + grep -lZIF "ld script" "${ED}/$(alt_usrlibdir)"/lib*.{a,so} 2>/dev/null | while read -rd '' file ; do + sed -i "s|$(host_eprefix)/|/|g" "${file}" || die + done + fi + + # We'll take care of the cache ourselves + rm -f "${ED}"/etc/ld.so.cache + + # Everything past this point just needs to be done once ... + is_final_abi || return 0 + + # Make sure the non-native interp can be found on multilib systems even + # if the main library set isn't installed into the right place. Maybe + # we should query the active gcc for info instead of hardcoding it ? + local i ldso_abi ldso_name + if is_linux ; then + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-linux-x86-64.so.2 + x32 /libx32/ld-linux-x32.so.2 + x86 /lib/ld-linux.so.2 + # mips + o32 /lib/ld.so.1 + n32 /lib32/ld.so.1 + n64 /lib64/ld.so.1 + # powerpc + ppc /lib/ld.so.1 + # riscv + ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 + ilp32 /lib/ld-linux-riscv32-ilp32.so.1 + lp64d /lib/ld-linux-riscv64-lp64d.so.1 + lp64 /lib/ld-linux-riscv64-lp64.so.1 + # s390 + s390 /lib/ld.so.1 + s390x /lib/ld64.so.1 + # sparc + sparc32 /lib/ld-linux.so.2 + sparc64 /lib64/ld-linux.so.2 + ) + case $(tc-endian) in + little) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64.so.1 + # ELFv2 (glibc does not support ELFv1 on LE) + ppc64 /lib64/ld64.so.2 + ) + ;; + big) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64_be.so.1 + # ELFv1 (glibc does not support ELFv2 on BE) + ppc64 /lib64/ld64.so.1 + ) + ;; + esac + else + # we must be using hurd then + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-x86-64.so.1 + x86 /lib/ld.so.1 + ) + fi + if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib + fi + for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do + ldso_abi=${ldso_abi_list[i]} + has ${ldso_abi} $(get_install_abis) || continue + + ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" + if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then + dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} + fi + done + + if is_linux ; then + # In the LSB 5.0 definition, someone had the excellent idea to "standardize" + # the runtime loader name, see also https://xkcd.com/927/ + # Normally, in Gentoo one should never come across executables that require this. + # However, binary commercial packages are known to adhere to weird practices. + # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB + local lsb_ldso_name native_ldso_name lsb_ldso_abi + local lsb_ldso_abi_list=( + # x86 + amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 + ) + for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do + lsb_ldso_abi=${lsb_ldso_abi_list[i]} + native_ldso_name=${lsb_ldso_abi_list[i+1]} + lsb_ldso_name=${lsb_ldso_abi_list[i+2]} + has ${lsb_ldso_abi} $(get_install_abis) || continue + + if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then + dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}" + fi + done + fi + + # On Hurd, glibc and (unpatched) gcc tend to disagree about the proper location for + # the dynamic loader. Which is maximally stupid since this one information is hardcoded + # into every single binary, and even if we were to fix *our* gcc it could still prevent + # us from running binaries prepared anywhere else... + + if is_hurd && has amd64 $(get_install_abis) ; then + # First, let's check for sanity + if [[ -f "${D}/$(alt_prefix)/lib/ld-x86-64.so.1" ]] ; then + die "Somehow your amd64 hurd glibc installed /lib/ld-x86-64.so.1 ... this should not happen." + fi + + # Then make a compatibility symlink. + dosym ../lib64/ld-x86-64.so.1 "$(alt_prefix)/lib/ld-x86-64.so.1" + fi + + if is_hurd && has x86 $(get_install_abis) ; then + # First, let's check for sanity + if [[ -f "${D}/$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" ]] ; then + die "Somehow your x86 hurd glibc installed ld.so ... this should not happen." + fi + + # Then make a compatibility symlink. + dosym ld.so.1 "$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" + fi + + # With devpts under Linux mounted properly, we do not need the pt_chown + # binary to be setuid. This is because the default owners/perms will be + # exactly what we want. + if ! use suid ; then + find "${ED}" -name pt_chown -exec chmod -s {} + + fi + + ################################################################# + # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # + ################################################################# + + # Make sure we install some symlink hacks so that when we build + # a 2nd stage cross-compiler, gcc finds the target system + # headers correctly. See gcc/doc/gccinstall.info + if is_crosscompile ; then + # We need to make sure that /lib and /usr/lib always exists. + # gcc likes to use relative paths to get to its multilibs like + # /usr/lib/../lib64/. So while we don't install any files into + # /usr/lib/, we do need it to exist. + keepdir $(alt_prefix)/lib + keepdir $(alt_prefix)/usr/lib + + dosym usr/include $(alt_prefix)/sys-include + return 0 + fi + + # Files for Debian-style locale updating + dodir /usr/share/i18n + sed \ + -e "/^#/d" \ + -e "/SUPPORTED-LOCALES=/d" \ + -e "s: \\\\::g" -e "s:/: :g" \ + "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ + || die "generating /usr/share/i18n/SUPPORTED failed" + + cd "${S}" || die + + # Install misc network config files + insinto /etc + doins posix/gai.conf + + if use systemd ; then + doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf" + else + doins nss/nsswitch.conf + fi + + # Gentoo-specific + newins "${FILESDIR}"/host.conf-1 host.conf + + if use nscd ; then + doins nscd/nscd.conf + + newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + use systemd && systemd_dounit nscd/nscd.service + newtmpfiles nscd/nscd.tmpfiles nscd.conf + fi + + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc + doenvd "${T}"/00glibc + + for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do + [[ -s ${d} ]] && dodoc ${d} + done + dodoc -r ChangeLog.old + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f "${ED}"/etc/localtime + + # Generate all locales if this is a native build as locale generation + if use compile-locales && ! is_crosscompile; then + run_locale_gen 1 "${ED}" + fi +} + +glibc_headers_install() { + local builddir=$(builddir "headers") + cd "${builddir}" + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers + + insinto $(alt_headers)/gnu + doins "${S}"/include/gnu/stubs.h + + # Make sure we install the sys-include symlink so that when + # we build a 2nd stage cross-compiler, gcc finds the target + # system headers correctly. See gcc/doc/gccinstall.info + dosym usr/include $(alt_prefix)/sys-include +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install + + if ! use static-libs ; then + einfo "Not installing static glibc libraries" + find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete + fi +} + +# Simple test to make sure our new glibc isn't completely broken. +# Make sure we don't test with statically built binaries since +# they will fail. Also, skip if this glibc is a cross compiler. +# +# If coreutils is built with USE=multicall, some of these files +# will just be wrapper scripts, not actual ELFs we can test. +glibc_sanity_check() { + cd / #228809 + + # We enter ${ED} so to avoid trouble if the path contains + # special characters; for instance if the path contains the + # colon character (:), then the linker will try to split it + # and look for the libraries in an unexpected place. This can + # lead to unsafe code execution if the generated prefix is + # within a world-writable directory. + # (e.g. /var/tmp/portage:${HOSTNAME}) + pushd "${ED}"/$(get_libdir) >/dev/null + + # first let's find the actual dynamic linker here + # symlinks may point to the wrong abi + local newldso=$(find . -maxdepth 1 -name 'ld*so.?' -type f -print -quit) + + einfo Last-minute run tests with ${newldso} in /$(get_libdir) ... + + local x striptest + for x in cal date env free ls true uname uptime ; do + x=$(type -p ${x}) + [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue + striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue + case ${striptest} in + *"statically linked"*) continue;; + *"ASCII text"*) continue;; + esac + # We need to clear the locale settings as the upgrade might want + # incompatible locale data. This test is not for verifying that. + LC_ALL=C \ + ${newldso} --library-path . ${x} > /dev/null \ + || die "simple run test (${x}) failed" + done + + popd >/dev/null +} + +pkg_preinst() { + # nothing to do if just installing headers + just_headers && return + + einfo "Checking general environment sanity." + sanity_prechecks + + # prepare /etc/ld.so.conf.d/ for files + mkdir -p "${EROOT}"/etc/ld.so.conf.d + + # Default /etc/hosts.conf:multi to on for systems with small dbs. + if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then + sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf + einfo "Defaulting /etc/host.conf:multi to on" + fi + + [[ -n ${ROOT} ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check + + if [[ -L ${EROOT}/usr/lib/locale ]]; then + # Help portage migrate this to a directory + # https://bugs.gentoo.org/753740 + rm "${EROOT}"/usr/lib/locale || die + fi + + # Keep around libcrypt so that Perl doesn't break when merging libxcrypt + # (libxcrypt is the new provider for now of libcrypt.so.{1,2}). + # bug #802207 + if has_version "${CATEGORY}/${PN}[crypt]" && ! has preserve-libs ${FEATURES}; then + PRESERVED_OLD_LIBCRYPT=1 + cp -p "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" \ + "${T}/libcrypt$(get_libname 1)" || die + else + PRESERVED_OLD_LIBCRYPT=0 + fi +} + +glibc_refresh_ldconfig() { + if [[ ${MERGE_TYPE} == buildonly ]]; then + return + fi + + # Version check could be added to avoid unnecessary work, but ldconfig + # should finish quickly enough to not matter. + ebegin "Refreshing ld.so.cache" + ldconfig -i + if ! eend $?; then + ewarn "Failed to refresh the ld.so.cache for you. Some programs may be broken" + ewarn "before you manually do so (ldconfig -i)." + fi +} + +pkg_postinst() { + # nothing to do if just installing headers + just_headers && return + + if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then + # Generate fastloading iconv module configuration file. + "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" + fi + + if ! is_crosscompile && [[ -z ${ROOT} ]] ; then + # glibc-2.38+ on loong has ldconfig support added, but the ELF e_flags + # handling has changed as well, which means stale ldconfig auxiliary + # cache entries and failure to lookup libgcc_s / libstdc++ (breaking + # every C++ application) / libgomp etc., among other breakages. + # + # To fix this, simply refresh the ld.so.cache without using the + # auxiliary cache if we're natively installing on loong. This should + # be done relatively soon because we want to minimize the breakage + # window for the affected programs. + use loong && glibc_refresh_ldconfig + + if ! use compile-locales; then + run_locale_gen 0 "${EROOT}" + fi + + # If fixincludes was/is active for a particular GCC slot, we + # must refresh it. See bug #933282 and GCC's documentation: + # https://gcc.gnu.org/onlinedocs/gcc/Fixed-Headers.html + # + # TODO: Could this be done for cross? Some care would be needed + # to pass the right arguments. + while IFS= read -r -d $'\0' slot ; do + local mkheaders_path="${BROOT}"/usr/libexec/gcc/${CBUILD}/${slot##*/}/install-tools/mkheaders + local pthread_h="${BROOT}"/usr/lib/gcc/${CBUILD}/${slot##*/}/include-fixed/pthread.h + if [[ -x ${mkheaders_path} ]] ; then + ebegin "Refreshing fixincludes for ${CBUILD} with gcc-${slot##*/}" + ${mkheaders_path} -v + eend $? + elif [[ -f ${pthread_h} ]] ; then + # fixincludes might have been enabled in the past for this + # GCC slot but not since we fixed toolchain.eclass to install + # mkheaders, so we need to manually delete pthread.h at least. + ebegin "Deleting stale fixincludes'd pthread.h for ${CBUILD} with gcc-${slot##*/}" + mv -v "${pthread_h}" "${pthread_h}.bak" + eend $? + fi + done < <(find "${BROOT}"/usr/libexec/gcc/${CBUILD}/ -mindepth 1 -maxdepth 1 -type d -print0) + fi + + upgrade_warning + + # Check for sanity of /etc/nsswitch.conf, take 2 + if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then + local entry + for entry in passwd group shadow; do + if grep -E -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then + ewarn "" + ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" + ewarn "removed from glibc and is now provided by the package" + ewarn " sys-auth/libnss-nis" + ewarn "Install it now to keep your NIS setup working." + ewarn "" + fi + done + fi + + if [[ ${PRESERVED_OLD_LIBCRYPT} -eq 1 ]] ; then + cp -p "${T}/libcrypt$(get_libname 1)" "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" || die + preserve_old_lib_notify /$(get_libdir)/libcrypt$(get_libname 1) + + elog "Please ignore a possible later error message about a file collision involving" + elog "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1). We need to preserve this file for the moment to keep" + elog "the upgrade working, but it also needs to be overwritten when" + elog "sys-libs/libxcrypt is installed. See bug 802210 for more details." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.43-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.43-r1.ebuild new file mode 100644 index 00000000000..644f936b169 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.43-r1.ebuild @@ -0,0 +1,1896 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc +# Please read & adapt the page as necessary if obsolete. + +PYTHON_COMPAT=( python3_{11..14} ) +TMPFILES_OPTIONAL=1 + +EMULTILIB_PKG="true" + +# Gentoo patchset (ignored for live ebuilds) +PATCH_VER=2 +PATCH_DEV=dilfridge + +# gcc mulitilib bootstrap files version +GCC_BOOTSTRAP_VER=20201208 + +# systemd integration version +GLIBC_SYSTEMD_VER=20210729 + +# Minimum kernel version that glibc requires +MIN_KERN_VER="3.2.0" + +# Minimum pax-utils version needed (which contains any new syscall changes for +# its seccomp filter!). Please double check this! +MIN_PAX_UTILS_VER="1.3.3" + +# Minimum systemd version needed (which contains any new syscall changes for +# its seccomp filter!). Please double check this! +MIN_SYSTEMD_VER="254.9-r1" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/glibc.asc + +inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ + multilib systemd multiprocessing tmpfiles eapi9-ver verify-sig + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + SRC_URI="mirror://gnu/glibc/${P}.tar.xz" + SRC_URI+=" verify-sig? ( mirror://gnu/glibc/${P}.tar.xz.sig )" + SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" +fi + +SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" +SRC_URI+=" systemd? ( https://gitweb.gentoo.org/proj/toolchain/glibc-systemd.git/snapshot/glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz )" + +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +SLOT="2.2" +IUSE="audit caps cet clang compile-locales custom-cflags doc gd hash-sysv-compat headers-only +multiarch multilib multilib-bootstrap nscd perl profile selinux sframe +ssp stack-realign +static-libs suid systemd systemtap test vanilla" + +# Here's how the cross-compile logic breaks down ... +# CTARGET - machine that will target the binaries +# CHOST - machine that will host the binaries +# CBUILD - machine that will build the binaries +# If CTARGET != CHOST, it means you want a libc for cross-compiling. +# If CHOST != CBUILD, it means you want to cross-compile the libc. +# CBUILD = CHOST = CTARGET - native build/install +# CBUILD != (CHOST = CTARGET) - cross-compile a native build +# (CBUILD = CHOST) != CTARGET - libc for cross-compiler +# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler +# For install paths: +# CHOST = CTARGET - install into / +# CHOST != CTARGET - install into /usr/CTARGET/ +# +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +# Note [Disable automatic stripping] +# Disabling automatic stripping for a few reasons: +# - portage's attempt to strip breaks non-native binaries at least on +# arm: bug #697428 +# - portage's attempt to strip libpthread.so.0 breaks gdb thread +# enumeration: bug #697910. This is quite subtle: +# * gdb uses glibc's libthread_db-1.0.so to enumerate threads. +# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols +# via 'ps_pglobal_lookup' symbol defined in gdb. +# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all +# known symbols in 'libpthread.so.0'. Specifically 'nptl_version' +# (unexported) is used to sanity check compatibility before enabling +# debugging. +# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint +# * normal 'strip' command trims '.symtab' +# Thus our main goal here is to prevent 'libpthread.so.0' from +# losing it's '.symtab' entries. +# - similarly, valgrind requires knowledge about symbols in ld.so: +# bug #920753 +# As Gentoo's strip does not allow us to pass less aggressive stripping +# options and does not check the machine target we strip selectively. + +# We need a new-enough binutils/gcc to match upstream baseline. +# Also we need to make sure our binutils/gcc supports TLS, +# and that gcc already contains the hardened patches. +# Lastly, let's avoid some openssh nastiness, bug 708224, as +# convenience to our users. + +IDEPEND=" + !compile-locales? ( sys-apps/locale-gen ) +" +BDEPEND=" + ${PYTHON_DEPS} + >=app-misc/pax-utils-${MIN_PAX_UTILS_VER} + sys-devel/bison + compile-locales? ( sys-apps/locale-gen ) + doc? ( + dev-lang/perl + sys-apps/texinfo + ) + sframe? ( >=sys-devel/binutils-2.45 ) + test? ( + dev-lang/perl + >=net-dns/libidn2-2.3.0 + sys-apps/gawk[mpfr] + ) + verify-sig? ( sec-keys/openpgp-keys-glibc ) +" +COMMON_DEPEND=" + gd? ( media-libs/gd:2= ) + nscd? ( selinux? ( + audit? ( sys-process/audit ) + caps? ( sys-libs/libcap ) + ) ) + suid? ( caps? ( sys-libs/libcap ) ) + selinux? ( sys-libs/libselinux ) + systemtap? ( dev-debug/systemtap ) +" +DEPEND="${COMMON_DEPEND} +" +RDEPEND="${COMMON_DEPEND} + !/dev/null + + rm -f glibc-test* + printf '%b' "$*" > glibc-test.c + + # We assume CC is already set up. + nonfatal emake glibc-test + ret=$? + + popd >/dev/null + + CFLAGS=${save_cflags} + return ${ret} +} + +do_run_test() { + local ret + + if [[ ${MERGE_TYPE} == "binary" ]] ; then + # ignore build failures when installing a binary package #324685 + CC="${glibc__ORIG_CC}" CXX="${glibc__ORIG_CXX}" CPP="${glibc__ORIG_CPP}" \ + CFLAGS="-O2" LDFLAGS="" do_compile_test "" "$@" 2>/dev/null || return 0 + else + ebegin "Performing simple compile test for ABI=${ABI}" + if ! do_compile_test "" "$@" ; then + ewarn "Simple build failed ... assuming this is desired #324685" + eend 1 + return 0 + else + eend 0 + fi + fi + + pushd "${T}" >/dev/null + + ./glibc-test + ret=$? + rm -f glibc-test* + + popd >/dev/null + + return ${ret} +} + +setup_target_flags() { + # This largely mucks with compiler flags. None of which should matter + # when building up just the headers. + just_headers && return 0 + + case $(tc-arch) in + x86) + # -march needed for #185404 #199334 + # TODO: When creating the first glibc cross-compile, this test will + # always fail as it does a full link which in turn requires glibc. + # Probably also applies when changing multilib profile settings (e.g. + # enabling x86 when the profile was amd64-only previously). + # We could change main to _start and pass -nostdlib here so that we + # only test the gcc code compilation. Or we could do a compile and + # then look for the symbol via scanelf. + if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + filter-flags '-march=*' + export CFLAGS="-march=${t} ${CFLAGS}" + einfo "Auto adding -march=${t} to CFLAGS #185404" + fi + # For compatibility with older binaries at slight performance cost. + use stack-realign && export CFLAGS+=" -mstackrealign" + ;; + amd64) + # -march needed for #185404 #199334 + # TODO: See cross-compile issues listed above for x86. + if [[ ${ABI} == x86 ]]; then + if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + # Normally the target is x86_64-xxx, so turn that into the -march that + # gcc actually accepts. #528708 + [[ ${t} == "x86_64" ]] && t="x86-64" + filter-flags '-march=*' + # ugly, ugly, ugly. ugly. + CFLAGS_x86=$(CFLAGS=${CFLAGS_x86}; filter-flags '-march=*'; echo "${CFLAGS}") + export CFLAGS_x86="${CFLAGS_x86} -march=${t}" + einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" + fi + # For compatibility with older binaries at slight performance cost. + use stack-realign && export CFLAGS_x86+=" -mstackrealign" + fi + + if is_hurd ; then + # doesnt build with -march=native and probably other values, debugging required + filter-flags '-march=*' + fi + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + ppc|ppc64) + # Many arch-specific implementations do not work on ppc with + # cache-block not equal to 128 bytes. This breaks memset: + # https://sourceware.org/PR26522 + # https://bugs.gentoo.org/737996 + # Use default -mcpu=. For ppc it means non-multiarch setup. + filter-flags '-mcpu=*' + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + local cpu + case ${CTARGET} in + sparc64-*) + cpu="sparc64" + case $(get-flag mcpu) in + v9) + # We need to force at least v9a because the base build doesn't + # work with just v9. + # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 + append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + *) + cpu="sparcv9" + ;; + esac + ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + esac +} + +setup_flags() { + # Make sure host make.conf doesn't pollute us + if is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi + + # Store our CFLAGS because it's changed depending on which CTARGET + # we are building when pulling glibc on a multilib profile + CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} + CFLAGS=${CFLAGS_BASE} + CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} + CXXFLAGS=${CXXFLAGS_BASE} + ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} + ASFLAGS=${ASFLAGS_BASE} + + # Allow users to explicitly avoid flag sanitization via + # USE=custom-cflags. + if ! use custom-cflags; then + # Over-zealous CFLAGS can often cause problems. What may work for one + # person may not work for another. To avoid a large influx of bugs + # relating to failed builds, we strip most CFLAGS out to ensure as few + # problems as possible. + strip-flags + + # Allow -O2 and -O3, but nothing else for now. + # TODO: Test -Os, -Oz. + if ! is-flagq '-O@(2|3)' ; then + # Lock glibc at -O2. We want to be conservative here. + filter-flags '-O?' + append-flags -O2 + fi + fi + + strip-unsupported-flags + filter-lto + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # ld can't use -r & --relax at the same time, bug #788901 + # https://sourceware.org/PR27837 + filter-ldflags '-Wl,--relax' + + # Flag added for cross-prefix, but causes ldconfig to segfault. Not needed + # anyway because glibc already handles this by itself. + filter-ldflags '-Wl,--dynamic-linker=*' + + # Fails to link (bug #940709) in some cases but even if it manages to, + # subtle runtime breakage will occur because the linker scripts need + # adaptation. Mentioned in PR21557#c0. + filter-ldflags '-Wl,--gc-sections' + + # some weird software relies on sysv hashes in glibc, bug 863863, bug 864100 + # we have to do that here already so mips can filter it out again :P + if use hash-sysv-compat ; then + append-ldflags '-Wl,--hash-style=both' + fi + + # clang warns about linker flags unused during compilation, but we don't + # want that to turn into errors! + # Let's turn the warning off entirely since it spams. + append-flags -Wno-unused-command-line-argument + + # #492892 + filter-flags -frecord-gcc-switches + + # #898098 + filter-flags -fno-builtin + + # #798774 + filter-flags -fno-semantic-interposition + + # #829583 + filter-lfs-flags + + case ${CTARGET} in + *-linux*) + ;; + *-gnu) + # -g3 confuses MIG which relies on preprocessed input + replace-flags -ggdb[3-9] -ggdb2 + replace-flags -g3 -g + ;; + esac + + unset CBUILD_OPT CTARGET_OPT + if use multilib ; then + CTARGET_OPT=$(get_abi_CTARGET) + [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) + fi + + setup_target_flags + + if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then + CBUILD_OPT=${CTARGET_OPT} + fi + + # glibc's headers disallow -O0 and fail at build time: + # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" + # https://sourceware.org/glibc/wiki/FAQ#Why_do_I_get:.60.23error_.22glibc_cannot_be_compiled_without_optimization.22.27.2C_when_trying_to_compile_GNU_libc_with_GNU_CC.3F + replace-flags -O0 -O1 + + # Similar issues as with SSP. Can't inject yourself that early. + filter-flags '-fsanitize=*' + + # See end of bug #830454; we handle this via USE=cet + filter-flags '-fcf-protection=*' + + # When bootstrapping, we may have a situation where + # CET-enabled gcc from seed is used to build CET-disabled + # glibc. As such, gcc implicitly enables CET if no + # -fcf-protection flag is passed. For a typical package it + # should not be a problem, but for glibc it matters as it is + # dealing with CET in ld.so. So if CET is supposed to be + # disabled for glibc, be explicit about it. + if ! use cet; then + case ${ABI}-${CTARGET} in + amd64-x86_64-*|x32-x86_64-*-*-gnux32) + append-flags '-fcf-protection=none' + ;; + arm64-aarch64*) + append-flags '-mbranch-protection=none' + ;; + esac + fi +} + +use_multiarch() { + # Allow user to disable runtime arch detection in multilib. + use multiarch || return 1 + # Make sure binutils is new enough to support indirect functions, + # #336792. This funky sed supports gold and bfd linkers. + local bver nver + bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') + case $(tc-arch ${CTARGET}) in + amd64|x86) nver="2.20" ;; + arm) nver="2.22" ;; + hppa) nver="2.23" ;; + ppc|ppc64) nver="2.20" ;; + # ifunc support was added in 2.23, but glibc also needs + # machinemode which is in 2.24. + s390) nver="2.24" ;; + sparc) nver="2.21" ;; + *) return 1 ;; + esac + ver_test ${bver} -ge ${nver} +} + +# Setup toolchain variables that had historically been defined in the +# profiles for these archs. +setup_env() { + # silly users + unset LD_RUN_PATH + unset LD_ASSUME_KERNEL + + if is_crosscompile || tc-is-cross-compiler ; then + multilib_env ${CTARGET_OPT:-${CTARGET}} + + if ! use multilib ; then + MULTILIB_ABIS=${DEFAULT_ABI} + else + MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} + fi + + # If the user has CFLAGS_ in their make.conf, use that, + # and fall back on CFLAGS. + local VAR=CFLAGS_${CTARGET//[-.]/_} + CFLAGS=${!VAR-${CFLAGS}} + einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" + fi + + setup_flags + + export ABI=${ABI:-${DEFAULT_ABI:-default}} + + if just_headers ; then + # Avoid mixing host's CC and target's CFLAGS_${ABI}: + # At this bootstrap stage we have only binutils for + # target but not compiler yet. + einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." + return 0 + fi + + # glibc does not work with non-bfd (for various reasons): + # * gold (bug #269274) + # * mold (bug #860900) + tc-ld-force-bfd + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + # Reset CC and CXX to the value at start of emerge + export CC=${glibc__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}} + export CXX=${glibc__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}} + export CPP=${glibc__ORIG_CPP:-${CPP:-$(tc-getCPP ${CTARGET})}} + + # and make sure glibc__ORIG_CC and glibc__ORIG_CXX is defined now. + export glibc__ORIG_CC=${CC} + export glibc__ORIG_CXX=${CXX} + export glibc__ORIG_CPP=${CPP} + + if tc-is-clang && ! ( use clang || use custom-cflags ) && ! is_crosscompile ; then + export glibc__force_gcc=yes + # once this is toggled on, it needs to stay on, since with CPP manipulated + # tc-is-clang does not work correctly anymore... + fi + + if [[ ${glibc__force_gcc} == "yes" ]] ; then + # If we are running in an otherwise clang/llvm environment, we need to + # recover the proper gcc and binutils settings here, at least until glibc + # is finally building with clang. So let's override everything that is + # set in the clang profiles. + # Want to shoot yourself into the foot? Set USE="clang" or USE="custom-cflags". + # Also, if you are crosscompiling, let's assume you know what you are doing. + # Hopefully. + # Last, we need the settings of the *build* environment, not of the + # target environment... + + local current_binutils_path=$(env CHOST="${CBUILD}" ROOT="${BROOT}" binutils-config -B "${CTARGET}") + local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B) + einfo "Overriding clang configuration, since it won't work here" + + export CC="${current_gcc_path}/${CTARGET}-gcc" + export CPP="${current_gcc_path}/${CTARGET}-cpp" + export CXX="${current_gcc_path}/${CTARGET}-g++" + export LD="${current_binutils_path}/ld.bfd" + export AR="${current_binutils_path}/ar" + export AS="${current_binutils_path}/as" + export NM="${current_binutils_path}/nm" + export STRIP="${current_binutils_path}/strip" + export RANLIB="${current_binutils_path}/ranlib" + export OBJCOPY="${current_binutils_path}/objcopy" + export STRINGS="${current_binutils_path}/strings" + export OBJDUMP="${current_binutils_path}/objdump" + export READELF="${current_binutils_path}/readelf" + export ADDR2LINE="${current_binutils_path}/addr2line" + + # do we need to also do flags munging here? yes! at least... + filter-flags '-fuse-ld=*' + filter-flags '-D_FORTIFY_SOURCE=*' + + else + # this is the "normal" case + + # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure + # can't detect them automatically due to ${CHOST} mismatch and fallbacks + # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup(). + export CC="$(tc-getCC ${CTARGET})" + export CXX="$(tc-getCXX ${CTARGET})" + export CPP="$(tc-getCPP ${CTARGET})" + export NM="$(tc-getNM ${CTARGET})" + export READELF="$(tc-getREADELF ${CTARGET})" + + fi + + # We need to move CFLAGS with abi information into CC etc per glibc upstream + # requirement. Keep around the original clean value to avoid appending + # multiple ABIs on top of each other. + export glibc__GLIBC_CC=${CC} + export glibc__GLIBC_CXX=${CXX} + export glibc__GLIBC_CPP=${CPP} + + export glibc__abi_CFLAGS="$(get_abi_CFLAGS)" + + # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 + # To build .S (assembly) files with the same ABI-specific flags + # upstream currently recommends adding CFLAGS to CC/CXX: + # https://sourceware.org/PR23273 + # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS + # and breaks multiarch support. See 659030#c3 for an example. + # The glibc configure script doesn't properly use LDFLAGS all the time. + export CC="${glibc__GLIBC_CC} ${glibc__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}" + + # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 + export CXX="${glibc__GLIBC_CXX} ${glibc__abi_CFLAGS} ${CFLAGS}" + + export CPP="${glibc__GLIBC_CPP} ${glibc__abi_CFLAGS} ${CFLAGS}" + + if is_crosscompile; then + # Assume worst-case bootstrap: glibc is built for the first time + # with ${CTARGET}-g++ not available yet. We avoid + # building auxiliary programs that require C++: bug #683074 + # It should not affect final result. + export libc_cv_cxx_link_ok=no + # The line above has the same effect. We set CXX explicitly + # to make build logs less confusing. + export CXX= + fi +} + +foreach_abi() { + setup_env + + local ret=0 + local abilist="" + if use multilib ; then + abilist=$(get_install_abis) + else + abilist=${DEFAULT_ABI} + fi + local -x ABI + for ABI in ${abilist:-default} ; do + setup_env + einfo "Running $1 for ABI ${ABI}" + $1 + : $(( ret |= $? )) + done + return ${ret} +} + +glibc_banner() { + local b="Gentoo ${PVR}" + [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" (patchset ${PATCH_VER})" + echo "${b}" +} + +# The following Kernel version handling functions are mostly copied from portage +# source. It's better not to use linux-info.eclass here since a) it adds too +# much magic, see bug 326693 for some of the arguments, and b) some of the +# functions are just not provided. + +g_get_running_KV() { + uname -r + return $? +} + +g_KV_major() { + [[ -z $1 ]] && return 1 + local KV=$@ + echo "${KV%%.*}" +} + +g_KV_minor() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.} + echo "${KV%%.*}" +} + +g_KV_micro() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.*.} + echo "${KV%%[^[:digit:]]*}" +} + +g_KV_to_int() { + [[ -z $1 ]] && return 1 + local KV_MAJOR=$(g_KV_major "$1") + local KV_MINOR=$(g_KV_minor "$1") + local KV_MICRO=$(g_KV_micro "$1") + local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) + + # We make version 2.2.0 the minimum version we will handle as + # a sanity check ... if its less, we fail ... + if [[ ${KV_int} -ge 131584 ]] ; then + echo "${KV_int}" + return 0 + fi + return 1 +} + +g_int_to_KV() { + local version=$1 major minor micro + major=$((version / 65536)) + minor=$(((version % 65536) / 256)) + micro=$((version % 256)) + echo ${major}.${minor}.${micro} +} + +get_kheader_version() { + printf '#include \nLINUX_VERSION_CODE\n' | \ + $(tc-getCPP ${CTARGET}) -I "${ESYSROOT}$(alt_headers)" - | \ + tail -n 1 +} + +# We collect all sanity checks here. Consistency is not guranteed between +# pkg_ and src_ phases, so we call this function both in pkg_pretend and in +# src_unpack. +sanity_prechecks() { + # Prevent native builds from downgrading + if [[ ${MERGE_TYPE} != "buildonly" ]] && \ + [[ -z ${ROOT} ]] && \ + [[ ${CBUILD} == ${CHOST} ]] && \ + [[ ${CHOST} == ${CTARGET} ]] ; then + + # The high rev # is to allow people to downgrade between -r# + # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 + # should be fine. Hopefully we never actually use a r# this + # high. + if has_version ">${CATEGORY}/${P}-r10000" ; then + eerror "Sanity check to keep you from breaking your system:" + eerror " Downgrading glibc is not supported and a sure way to destruction." + [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." + fi + + if is_linux && ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then + eerror "Your old kernel is broken. You need to update it to a newer" + eerror "version as syscall() will break. See bug 279260." + [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Old and broken kernel." + fi + fi + + if [[ ${CTARGET} == i386-* ]] ; then + eerror "i386 CHOSTs are no longer supported." + eerror "Chances are you don't actually want/need i386." + eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" + die "Please fix your CHOST" + fi + + if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then + ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." + ewarn "This will result in a 50% performance penalty when running with a 32bit" + ewarn "hypervisor, which is probably not what you want." + fi + + # ABI-specific checks follow here. Hey, we have a lot more specific conditions that + # we test for... + if ! is_crosscompile && ! tc-is-cross-compiler ; then + if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking if the system can execute 32-bit binaries" + echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" + local STAT + if ${CC-${CHOST}-gcc} ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then + "${T}/check-ia32-emulation.elf32" + STAT=$? + else + # Don't fail here to allow single->multi ABI switch + # or recover from breakage like bug #646424 + ewarn "Failed to compile the ABI test. Broken host glibc?" + STAT=0 + fi + rm -f "${T}/check-ia32-emulation.elf32" + eend $STAT + if [[ $STAT -ne 0 ]]; then + eerror "Ensure that CONFIG_IA32_EMULATION is enabled in the kernel." + eerror "Seek support otherwise." + die "Unable to execute 32-bit binaries" + fi + fi + + fi + + # When we actually have to compile something... + if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then + if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then + # bug #833620, bug #643302 + eerror "Found ${ESYSROOT}/usr/lib/include directory!" + eerror "This is known to break glibc's build." + eerror "Please backup its contents then remove the directory." + die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" + fi + + if [[ ${CTARGET} == *-linux* ]] ; then + local run_kv build_kv want_kv + + run_kv=$(g_get_running_KV) + build_kv=$(g_int_to_KV $(get_kheader_version)) + want_kv=${MIN_KERN_VER} + + if ! is_crosscompile && ! tc-is-cross-compiler ; then + # Building fails on an non-supporting kernel + ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" + if ! [[ $(g_KV_to_int ${run_kv}) -ge $(g_KV_to_int ${want_kv}) ]] ; then + eend 1 + echo + eerror "You need a kernel of at least ${want_kv}!" + die "Kernel version too low!" + fi + eend 0 + fi + + # Do not run this check for pkg_pretend, just pkg_setup and friends (if we ever get used there). + # It's plausible (seen it in the wild) that Portage will (correctly) schedule a linux-headers + # upgrade before glibc, but because pkg_pretend gets run before any packages are merged at all (not + # just glibc), the whole emerge gets aborted without a good reason. We probably don't + # need to run this check at all given we have a dependency on the right headers, + # but let's leave it as-is for now. + if [[ ${EBUILD_PHASE_FUNC} != pkg_pretend ]] ; then + ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" + if ! [[ $(g_KV_to_int ${build_kv}) -ge $(g_KV_to_int ${want_kv}) ]] ; then + eend 1 + echo + eerror "You need linux-headers of at least ${want_kv}!" + die "linux-headers version too low!" + fi + eend 0 + fi + fi + fi +} + +upgrade_warning() { + is_crosscompile && return + + if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then + if ver_replacing -lt $(ver_cut 1-2 ${PV}); then + ewarn "After upgrading glibc, please restart all running processes." + ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)." + ewarn "Alternatively, reboot your system." + ewarn "(See bug #660556, bug #741116, bug #823756, etc)" + fi + fi +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + upgrade_warning +} + +# pkg_setup + +pkg_setup() { + # see bug 682570 + [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup +} + +# src_unpack + +src_unpack() { + setup_env + + einfo "Checking general environment sanity." + sanity_prechecks + + use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git + https://github.com/gentoo/glibc-patches.git + " + EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git + git-r3_src_unpack + mv patches-git/9999 patches || die + EGIT_REPO_URI=" + https://sourceware.org/git/glibc.git + https://git.sr.ht/~sourceware/glibc + https://gitlab.com/x86-glibc/glibc.git + " + EGIT_CHECKOUT_DIR=${S} + [[ ${PV} == *.*.9999 ]] && EGIT_BRANCH=release/${PV%.*}/master + git-r3_src_unpack + else + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}/${P}.tar.xz" "${DISTDIR}/${P}.tar.xz.sig" + fi + unpack ${P}.tar.xz + + cd "${WORKDIR}" || die + unpack ${P}-patches-${PATCH_VER}.tar.xz + fi + + cd "${WORKDIR}" || die + use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz +} + +# src_prepare + +src_prepare() { + local patchsetname + if ! use vanilla ; then + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${PV}-${PATCH_VER}" + fi + einfo "Applying Gentoo Glibc patchset ${patchsetname}" + eapply "${WORKDIR}"/patches + einfo "Done." + + # Patches we should apply only for Hurd to be conservative + if is_hurd ; then + eapply "${FILESDIR}"/glibc-2.43-hurd-CLOCK_MONOTONIC.patch + fi + fi + + case ${CTARGET} in + m68*-aligned-*) + einfo "Applying utmp format fix for m68k with -maligned-int" + eapply "${FILESDIR}/glibc-2.41-m68k-malign.patch" + ;; + *) + ;; + esac + + default + + gnuconfig_update + + cd "${WORKDIR}" || die + find . -name configure -exec touch {} + + + # Fix permissions on some of the scripts. + chmod u+x "${S}"/scripts/*.sh + + cd "${S}" || die +} + +# src_configure + +glibc_do_configure() { + dump_build_environment + + local myconf=() + + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + myconf+=( --enable-stack-protector=$(usex ssp strong no) ) + + # Keep a whitelist of targets supporting IFUNC. glibc's ./configure + # is not robust enough to detect proper support: + # https://bugs.gentoo.org/641216 + # https://sourceware.org/PR22634#c0 + case $(tc-arch ${CTARGET}) in + # Keep whitelist of targets where autodetection mostly works. + amd64|x86|sparc|ppc|ppc64|arm|arm64|s390|riscv|loong) ;; + # Blacklist everywhere else + *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; + esac + + case ${ABI}-${CTARGET} in + amd64-x86_64-*|x32-x86_64-*-*-gnux32) myconf+=( $(use_enable cet) ) ;; + *) ;; + esac + + case ${ABI}-${CTARGET} in + amd64-x86_64-*|arm64-aarch64-*) myconf+=( $(use_enable sframe) ) ;; + *) ;; + esac + + [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) + + myconf+=( --enable-kernel=${MIN_KERN_VER} ) + + # Since SELinux support is only required for nscd, only enable it if: + # 1. USE selinux + # 2. only for the primary ABI on multilib systems + # 3. Not a crosscompile + if ! is_crosscompile && use selinux ; then + if use multilib ; then + if is_final_abi ; then + myconf+=( --with-selinux ) + else + myconf+=( --without-selinux ) + fi + else + myconf+=( --with-selinux ) + fi + else + myconf+=( --without-selinux ) + fi + + # Force a few tests where we always know the answer but + # configure is incapable of finding it. + if is_crosscompile ; then + export \ + libc_cv_c_cleanup=yes \ + libc_cv_forced_unwind=yes + fi + + myconf+=( + --disable-werror + --enable-bind-now + --enable-fortify-source + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + $(use_enable profile) + $(use_with gd) + --with-headers="${ESYSROOT}$(alt_headers)" + --prefix="$(host_eprefix)/usr" + --sysconfdir="$(host_eprefix)/etc" + --localstatedir="$(host_eprefix)/var" + --libdir='$(prefix)'/$(get_libdir) + --mandir='$(prefix)'/share/man + --infodir='$(prefix)'/share/info + --libexecdir='$(libdir)'/misc/glibc + --with-bugurl=https://bugs.gentoo.org/ + --with-pkgversion="$(glibc_banner)" + $(use_multiarch || echo --disable-multi-arch) + $(use_enable nscd) + + # /usr/bin/mtrace has a Perl shebang. Gentoo Prefix QA checks fail if + # Perl hasn't been installed inside the prefix yet and configure picks + # up a Perl from outside the prefix instead. configure will fail to + # execute Perl during configure if we're cross-compiling a prefix, but + # it will just disable mtrace in that case. + # Note: mtrace is needed by the test suite. + ac_cv_path_PERL="$(usex perl "${EPREFIX}"/usr/bin/perl $(usex test "${EPREFIX}"/usr/bin/perl $(usex doc "${EPREFIX}"/usr/bin/perl no)))" + + # locale data is arch-independent + # https://bugs.gentoo.org/753740 + libc_cv_complocaledir='${exec_prefix}/lib/locale' + + # On aarch64 there is no way to override -mcpu=native, and if + # the current cpu does not support SVE configure fails. + # Let's boldly assume our toolchain can always build SVE instructions. + libc_cv_aarch64_sve_asm=yes + + ${EXTRA_ECONF} + ) + + # We rely on sys-libs/timezone-data for timezone tools normally. + myconf+=( $(use_enable vanilla timezone-tools) ) + + if is_crosscompile ; then + myconf+=( --disable-systemtap ) + else + myconf+=( $(use_enable systemtap) ) + fi + + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) + ac_cv_lib_cap_cap_init=$(usex caps || echo no) + + # There is no configure option for this and we need to export it + # since the glibc build will re-run configure on itself + export libc_cv_rootsbindir="$(host_eprefix)/sbin" + export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" + + local builddir=$(builddir nptl) + mkdir -p "${builddir}" + cd "${builddir}" + set -- "${S}"/configure "${myconf[@]}" + echo "$@" + "$@" || die "failed to configure glibc" + + # If we're trying to migrate between ABI sets, we need + # to lie and use a local copy of gcc. Like if the system + # is built with MULTILIB_ABIS="amd64 x86" but we want to + # add x32 to it, gcc/glibc don't yet support x32. + # + if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib-bootstrap ; then + echo 'int main(void){}' > "${T}"/test.c || die + if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then + sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die + fi + fi +} + +glibc_headers_configure() { + export ABI=default + + local builddir=$(builddir "headers") + mkdir -p "${builddir}" + cd "${builddir}" + + # if we don't have a compiler yet, we can't really test it now ... + # hopefully they don't affect header generation, so let's hope for + # the best here ... + local v vars=( + ac_cv_header_cpuid_h=yes + libc_cv_{386,390,alpha,arm,hppa,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes + libc_cv_asm_cfi_directives=yes + libc_cv_broken_visibility_attribute=no + libc_cv_c_cleanup=yes + libc_cv_compiler_powerpc64le_binary128_ok=yes + libc_cv_forced_unwind=yes + libc_cv_gcc___thread=yes + libc_cv_mlong_double_128=yes + libc_cv_mlong_double_128ibm=yes + libc_cv_ppc_machine=yes + libc_cv_ppc_rel16=yes + libc_cv_predef_fortify_source=no + libc_cv_target_power8_ok=yes + libc_cv_visibility_attribute=yes + libc_cv_z_combreloc=yes + libc_cv_z_execstack=yes + libc_cv_z_initfirst=yes + libc_cv_z_nodelete=yes + libc_cv_z_nodlopen=yes + libc_cv_z_relro=yes + libc_mips_abi=${ABI} + libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=no + ac_cv_lib_cap_cap_init=no + ) + + einfo "Forcing cached settings:" + for v in "${vars[@]}" ; do + einfo " ${v}" + export ${v} + done + + local headers_only_arch_CPPFLAGS=() + + # Blow away some random CC settings that screw things up. #550192 + if [[ -d ${S}/sysdeps/mips ]]; then + pushd "${S}"/sysdeps/mips >/dev/null + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die + + # Force the mips ABI to the default. This is OK because the set of + # installed headers in this phase is the same between the 3 ABIs. + # If this ever changes, this hack will break, but that's unlikely + # as glibc discourages that behavior. + # https://crbug.com/647033 + sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die + + popd >/dev/null + fi + + local myconf=() + + case ${CTARGET} in + aarch64*) + # The configure checks fail during cross-build, so disable here + # for headers-only + myconf+=( + --disable-mathvec + ) ;; + riscv*) + # RISC-V interrogates the compiler to determine which target to + # build. If building the headers then we don't strictly need a + # RISC-V compiler, so the built-in definitions that are provided + # along with all RISC-V compiler might not exist. This causes + # glibc's RISC-V preconfigure script to blow up. Since we're just + # building the headers any value will actually work here, so just + # pick the standard one (rv64g/lp64d) to make the build scripts + # happy for now -- the headers are all the same anyway so it + # doesn't matter. + headers_only_arch_CPPFLAGS+=( + -D__riscv_xlen=64 + -D__riscv_flen=64 + -D__riscv_float_abi_double=1 + -D__riscv_atomic=1 + ) ;; + esac + + myconf+=( + --disable-sanity-checks + --enable-hacker-mode + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + --with-headers="${ESYSROOT}$(alt_headers)" + --prefix="$(host_eprefix)/usr" + ${EXTRA_ECONF} + ) + + # Nothing is compiled here which would affect the headers for the target. + # So forcing CC/CFLAGS is sane. + local headers_only_CC=$(tc-getBUILD_CC) + local headers_only_CFLAGS="-O1 -pipe" + local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" + local headers_only_LDFLAGS="" + set -- "${S}"/configure "${myconf[@]}" + echo \ + "CC=${headers_only_CC}" \ + "CFLAGS=${headers_only_CFLAGS}" \ + "CPPFLAGS=${headers_only_CPPFLAGS}" \ + "LDFLAGS=${headers_only_LDFLAGS}" \ + "$@" + CC=${headers_only_CC} \ + CFLAGS=${headers_only_CFLAGS} \ + CPPFLAGS=${headers_only_CPPFLAGS} \ + LDFLAGS="" \ + "$@" || die "failed to configure glibc" +} + +do_src_configure() { + if just_headers ; then + glibc_headers_configure + else + glibc_do_configure nptl + fi +} + +src_configure() { + foreach_abi do_src_configure +} + +# src_compile + +do_src_compile() { + emake -C "$(builddir nptl)" +} + +src_compile() { + if just_headers ; then + return + fi + + foreach_abi do_src_compile +} + +# src_test + +glibc_src_test() { + cd "$(builddir nptl)" + + local myxfailparams="" + if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then + local virt=$(systemd-detect-virt 2>/dev/null) + if [[ ${virt} == systemd-nspawn ]] ; then + ewarn "Skipping extra tests because in systemd-nspawn container" + XFAIL_TEST_LIST+=( "${XFAIL_NSPAWN_TEST_LIST[@]}" ) + fi + if [[ "$(nice)" == "19" ]] ; then + # Expects to be able to increase niceness, which it can't do if + # already at the highest nice value + XFAIL_TEST_LIST+=( "tst-nice" ) + fi + + for myt in ${XFAIL_TEST_LIST[@]} ; do + myxfailparams+="test-xfail-${myt}=yes " + done + fi + + # sandbox does not understand unshare() and prevents + # writes to /proc/, which makes many tests fail + + # we give the tests a bit more time to avoid spurious + # bug reports on slow arches + + SANDBOX_ON=0 LD_PRELOAD= TIMEOUTFACTOR=16 nonfatal emake ${myxfailparams} check +} + +src_test() { + if just_headers ; then + return + fi + + # glibc_src_test uses nonfatal so that we can run tests for all ABIs + # and fail at the end instead. + foreach_abi glibc_src_test || die "tests failed" +} + +# src_install + +run_locale_gen() { + local fatal=$1 prefix=$2 + local user_config action config stderr noun ret + local -a hasversion_opts localegen_args + + if [[ ${EBUILD_PHASE_FUNC} == src_install ]]; then + hasversion_opts=( -b ) + fi + + if has_version "${hasversion_opts[@]}" '>=sys-apps/locale-gen-3'; then + localegen_args=( --prefix "${prefix}" ) + else + config="${prefix}/usr/share/i18n/SUPPORTED" + user_config="${prefix}/etc/locale.gen" + if [[ ${EBUILD_PHASE_FUNC} == src_install ]]; then + # For USE=compile-locales, all locales should be built. + mkdir -p -- "${prefix}/usr/lib/locale" || die + elif locale-gen --list --config "${user_config}" | read -r; then + config=${user_config} + fi + localegen_args=( --config "${config}" --destdir "${prefix}" ) + fi + + # bug 736794: we need to be careful with the parallelization... the + # number of processors saved in the environment of a binary package may + # differ strongly from the number of processes available during postinst + if [[ ${EMERGE_FROM} != binary ]]; then + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) + fi + + printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 + { stderr=$(locale-gen "${localegen_args[@]}" 2>&1 >&3); } 3>&1 + ret=$? + action="ewarn" + if (( ret == 0 )); then + noun="warning" + else + noun="error" + if (( fatal )); then + action="die" + fi + fi + # Convey warnings/errors so that they can be reseen upon emerge exiting. + if [[ ${stderr} ]]; then + ewarn "locale-gen(8) issued the following ${noun}s:" + while read -r; do + ewarn "$REPLY" + done <<<"${stderr}" + fi + if (( ret != 0 )); then + "${action}" "locale-gen(8) unexpectedly failed during the ${EBUILD_PHASE_FUNC} phase" + fi +} + +glibc_do_src_install() { + local builddir=$(builddir nptl) + cd "${builddir}" + + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install + + # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support + # which come without headers etc. Only needed for binary packages since the + # external net-libs/libnsl has increased soversion. Keep only versioned libraries. + find "${D}" -name "libnsl.a" -delete + find "${D}" -name "libnsl.so" -delete + + # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need + # to infer upstream version: + # '#define VERSION "2.26.90"' -> '2.26.90' + local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) + + # Avoid stripping binaries not targeted by ${CHOST}. Or else + # ${CHOST}-strip would break binaries build for ${CTARGET}. + is_crosscompile && dostrip -x / + + # gdb thread introspection relies on local libpthreads symbols. stripping breaks it + # See Note [Disable automatic stripping] + dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so + # valgrind requires knowledge about ld.so symbols. + dostrip -x $(alt_libdir)/ld-*.so* + + if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then + # Move versioned .a file out of libdir to evade portage QA checks + # instead of using gen_usr_ldscript(). We fix ldscript as: + # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." + sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" \ + "${ED}"/$(alt_usrlibdir)/libm.a || die + dodir $(alt_usrlibdir)/${P} + mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a \ + "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die + fi + + # We configure toolchains for standalone prefix systems with a sysroot, + # which is prepended to paths in ld scripts, so strip the prefix from these. + # Before: GROUP ( /foo/lib64/libc.so.6 /foo/usr/lib64/libc_nonshared.a AS_NEEDED ( /foo/lib64/ld-linux-x86-64.so.2 ) ) + # After: GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-x86-64.so.2 ) ) + if [[ -n $(host_eprefix) ]] ; then + local file + grep -lZIF "ld script" "${ED}/$(alt_usrlibdir)"/lib*.{a,so} 2>/dev/null | while read -rd '' file ; do + sed -i "s|$(host_eprefix)/|/|g" "${file}" || die + done + fi + + # We'll take care of the cache ourselves + rm -f "${ED}"/etc/ld.so.cache + + # Everything past this point just needs to be done once ... + is_final_abi || return 0 + + # Make sure the non-native interp can be found on multilib systems even + # if the main library set isn't installed into the right place. Maybe + # we should query the active gcc for info instead of hardcoding it ? + local i ldso_abi ldso_name + if is_linux ; then + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-linux-x86-64.so.2 + x32 /libx32/ld-linux-x32.so.2 + x86 /lib/ld-linux.so.2 + # mips + o32 /lib/ld.so.1 + n32 /lib32/ld.so.1 + n64 /lib64/ld.so.1 + # powerpc + ppc /lib/ld.so.1 + # riscv + ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 + ilp32 /lib/ld-linux-riscv32-ilp32.so.1 + lp64d /lib/ld-linux-riscv64-lp64d.so.1 + lp64 /lib/ld-linux-riscv64-lp64.so.1 + # s390 + s390 /lib/ld.so.1 + s390x /lib/ld64.so.1 + # sparc + sparc32 /lib/ld-linux.so.2 + sparc64 /lib64/ld-linux.so.2 + ) + case $(tc-endian) in + little) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64.so.1 + # ELFv2 (glibc does not support ELFv1 on LE) + ppc64 /lib64/ld64.so.2 + ) + ;; + big) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64_be.so.1 + # ELFv1 (glibc does not support ELFv2 on BE) + ppc64 /lib64/ld64.so.1 + ) + ;; + esac + else + # we must be using hurd then + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-x86-64.so.1 + x86 /lib/ld.so.1 + ) + fi + if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib + fi + for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do + ldso_abi=${ldso_abi_list[i]} + has ${ldso_abi} $(get_install_abis) || continue + + ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" + if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then + dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} + fi + done + + if is_linux ; then + # In the LSB 5.0 definition, someone had the excellent idea to "standardize" + # the runtime loader name, see also https://xkcd.com/927/ + # Normally, in Gentoo one should never come across executables that require this. + # However, binary commercial packages are known to adhere to weird practices. + # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB + local lsb_ldso_name native_ldso_name lsb_ldso_abi + local lsb_ldso_abi_list=( + # x86 + amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 + ) + for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do + lsb_ldso_abi=${lsb_ldso_abi_list[i]} + native_ldso_name=${lsb_ldso_abi_list[i+1]} + lsb_ldso_name=${lsb_ldso_abi_list[i+2]} + has ${lsb_ldso_abi} $(get_install_abis) || continue + + if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then + dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}" + fi + done + fi + + # On Hurd, glibc and (unpatched) gcc tend to disagree about the proper location for + # the dynamic loader. Which is maximally stupid since this one information is hardcoded + # into every single binary, and even if we were to fix *our* gcc it could still prevent + # us from running binaries prepared anywhere else... + + if is_hurd && has amd64 $(get_install_abis) ; then + # First, let's check for sanity + if [[ -f "${D}$(alt_prefix)/lib/ld-x86-64.so.1" ]] ; then + die "Somehow your amd64 hurd glibc installed /lib/ld-x86-64.so.1 ... this should not happen." + fi + + # Then make a compatibility symlink. + dosym ../lib64/ld-x86-64.so.1 "$(alt_prefix)/lib/ld-x86-64.so.1" + fi + + if is_hurd && has x86 $(get_install_abis) ; then + # First, let's check for sanity + if [[ -f "${D}$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" ]] ; then + die "Somehow your x86 hurd glibc installed ld.so ... this should not happen." + fi + + # Then make a compatibility symlink. + dosym ld.so.1 "$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" + fi + + # With devpts under Linux mounted properly, we do not need the pt_chown + # binary to be setuid. This is because the default owners/perms will be + # exactly what we want. + if ! use suid ; then + find "${ED}" -name pt_chown -exec chmod -s {} + + fi + + ################################################################# + # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # + ################################################################# + + # Make sure we install some symlink hacks so that when we build + # a 2nd stage cross-compiler, gcc finds the target system + # headers correctly. See gcc/doc/gccinstall.info + if is_crosscompile ; then + # We need to make sure that /lib and /usr/lib always exists. + # gcc likes to use relative paths to get to its multilibs like + # /usr/lib/../lib64/. So while we don't install any files into + # /usr/lib/, we do need it to exist. + keepdir $(alt_prefix)/lib + keepdir $(alt_prefix)/usr/lib + + dosym usr/include $(alt_prefix)/sys-include + return 0 + fi + + # Files for Debian-style locale updating + dodir /usr/share/i18n + sed \ + -e "/^#/d" \ + -e "/SUPPORTED-LOCALES=/d" \ + -e "s: \\\\::g" -e "s:/: :g" \ + "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ + || die "generating /usr/share/i18n/SUPPORTED failed" + + cd "${S}" || die + + # Install misc network config files + insinto /etc + doins posix/gai.conf + + if use systemd ; then + doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf" + else + doins nss/nsswitch.conf + fi + + # Gentoo-specific + newins "${FILESDIR}"/host.conf-1 host.conf + + if use nscd ; then + doins nscd/nscd.conf + + newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + use systemd && systemd_dounit nscd/nscd.service + newtmpfiles nscd/nscd.tmpfiles nscd.conf + fi + + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc + doenvd "${T}"/00glibc + + for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do + [[ -s ${d} ]] && dodoc ${d} + done + dodoc -r ChangeLog.old + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f "${ED}"/etc/localtime + + # Generate all locales if this is a native build as locale generation + if use compile-locales && ! is_crosscompile; then + run_locale_gen 1 "${ED}" + fi +} + +glibc_headers_install() { + local builddir=$(builddir "headers") + cd "${builddir}" + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers + + insinto $(alt_headers)/gnu + doins "${S}"/include/gnu/stubs.h + + # Make sure we install the sys-include symlink so that when + # we build a 2nd stage cross-compiler, gcc finds the target + # system headers correctly. See gcc/doc/gccinstall.info + dosym usr/include $(alt_prefix)/sys-include +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install + + if ! use static-libs ; then + einfo "Not installing static glibc libraries" + find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete + fi +} + +# Simple test to make sure our new glibc isn't completely broken. +# Make sure we don't test with statically built binaries since +# they will fail. Also, skip if this glibc is a cross compiler. +# +# If coreutils is built with USE=multicall, some of these files +# will just be wrapper scripts, not actual ELFs we can test. +glibc_sanity_check() { + cd / #228809 + + # We enter ${ED} so to avoid trouble if the path contains + # special characters; for instance if the path contains the + # colon character (:), then the linker will try to split it + # and look for the libraries in an unexpected place. This can + # lead to unsafe code execution if the generated prefix is + # within a world-writable directory. + # (e.g. /var/tmp/portage:${HOSTNAME}) + pushd "${ED}"/$(get_libdir) >/dev/null + + # first let's find the actual dynamic linker here + # symlinks may point to the wrong abi + local newldso=$(find . -maxdepth 1 -name 'ld*so.?' -type f -print -quit) + + einfo Last-minute run tests with ${newldso} in /$(get_libdir) ... + + local x striptest + for x in cal date env free ls true uname uptime ; do + x=$(type -p ${x}) + [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue + striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue + case ${striptest} in + *"statically linked"*) continue;; + *"ASCII text"*) continue;; + esac + # We need to clear the locale settings as the upgrade might want + # incompatible locale data. This test is not for verifying that. + LC_ALL=C \ + ${newldso} --library-path . ${x} > /dev/null \ + || die "simple run test (${x}) failed" + done + + popd >/dev/null +} + +pkg_preinst() { + # nothing to do if just installing headers + just_headers && return + + einfo "Checking general environment sanity." + sanity_prechecks + + # prepare /etc/ld.so.conf.d/ for files + mkdir -p "${EROOT}"/etc/ld.so.conf.d + + # Default /etc/hosts.conf:multi to on for systems with small dbs. + if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then + sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf + einfo "Defaulting /etc/host.conf:multi to on" + fi + + [[ -n ${ROOT} ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check + + if [[ -L ${EROOT}/usr/lib/locale ]]; then + # Help portage migrate this to a directory + # https://bugs.gentoo.org/753740 + rm "${EROOT}"/usr/lib/locale || die + fi + + # Keep around libcrypt so that Perl doesn't break when merging libxcrypt + # (libxcrypt is the new provider for now of libcrypt.so.{1,2}). + # bug #802207 + if has_version "${CATEGORY}/${PN}[crypt]" && ! has preserve-libs ${FEATURES}; then + PRESERVED_OLD_LIBCRYPT=1 + cp -p "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" \ + "${T}/libcrypt$(get_libname 1)" || die + else + PRESERVED_OLD_LIBCRYPT=0 + fi +} + +glibc_refresh_ldconfig() { + if [[ ${MERGE_TYPE} == buildonly ]]; then + return + fi + + # Version check could be added to avoid unnecessary work, but ldconfig + # should finish quickly enough to not matter. + ebegin "Refreshing ld.so.cache" + ldconfig -i + if ! eend $?; then + ewarn "Failed to refresh the ld.so.cache for you. Some programs may be broken" + ewarn "before you manually do so (ldconfig -i)." + fi +} + +pkg_postinst() { + # nothing to do if just installing headers + just_headers && return + + if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then + # Generate fastloading iconv module configuration file. + "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" + fi + + if ! is_crosscompile && [[ -z ${ROOT} ]] ; then + # glibc-2.38+ on loong has ldconfig support added, but the ELF e_flags + # handling has changed as well, which means stale ldconfig auxiliary + # cache entries and failure to lookup libgcc_s / libstdc++ (breaking + # every C++ application) / libgomp etc., among other breakages. + # + # To fix this, simply refresh the ld.so.cache without using the + # auxiliary cache if we're natively installing on loong. This should + # be done relatively soon because we want to minimize the breakage + # window for the affected programs. + use loong && glibc_refresh_ldconfig + + if ! use compile-locales; then + run_locale_gen 0 "${EROOT}" + fi + + # If fixincludes was/is active for a particular GCC slot, we + # must refresh it. See bug #933282 and GCC's documentation: + # https://gcc.gnu.org/onlinedocs/gcc/Fixed-Headers.html + # + # TODO: Could this be done for cross? Some care would be needed + # to pass the right arguments. + while IFS= read -r -d $'\0' slot ; do + local mkheaders_path="${BROOT}"/usr/libexec/gcc/${CBUILD}/${slot##*/}/install-tools/mkheaders + local pthread_h="${BROOT}"/usr/lib/gcc/${CBUILD}/${slot##*/}/include-fixed/pthread.h + if [[ -x ${mkheaders_path} ]] ; then + ebegin "Refreshing fixincludes for ${CBUILD} with gcc-${slot##*/}" + ${mkheaders_path} -v + eend $? + elif [[ -f ${pthread_h} ]] ; then + # fixincludes might have been enabled in the past for this + # GCC slot but not since we fixed toolchain.eclass to install + # mkheaders, so we need to manually delete pthread.h at least. + ebegin "Deleting stale fixincludes'd pthread.h for ${CBUILD} with gcc-${slot##*/}" + mv -v "${pthread_h}" "${pthread_h}.bak" + eend $? + fi + done < <(find "${BROOT}"/usr/libexec/gcc/${CBUILD}/ -mindepth 1 -maxdepth 1 -type d -print0) + fi + + upgrade_warning + + # Check for sanity of /etc/nsswitch.conf, take 2 + if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then + local entry + for entry in passwd group shadow; do + if grep -E -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then + ewarn "" + ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" + ewarn "removed from glibc and is now provided by the package" + ewarn " sys-auth/libnss-nis" + ewarn "Install it now to keep your NIS setup working." + ewarn "" + fi + done + fi + + if [[ ${PRESERVED_OLD_LIBCRYPT} -eq 1 ]] ; then + cp -p "${T}/libcrypt$(get_libname 1)" "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" || die + preserve_old_lib_notify /$(get_libdir)/libcrypt$(get_libname 1) + + elog "Please ignore a possible later error message about a file collision involving" + elog "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1). We need to preserve this file for the moment to keep" + elog "the upgrade working, but it also needs to be overwritten when" + elog "sys-libs/libxcrypt is installed. See bug 802210 for more details." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.43-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.43-r2.ebuild new file mode 100644 index 00000000000..ee1e20f9b41 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.43-r2.ebuild @@ -0,0 +1,1901 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc +# Please read & adapt the page as necessary if obsolete. + +PYTHON_COMPAT=( python3_{11..14} ) +TMPFILES_OPTIONAL=1 + +EMULTILIB_PKG="true" + +# Gentoo patchset (ignored for live ebuilds) +PATCH_VER=3 +PATCH_DEV=dilfridge + +# gcc mulitilib bootstrap files version +GCC_BOOTSTRAP_VER=20201208 + +# systemd integration version +GLIBC_SYSTEMD_VER=20210729 + +# Minimum kernel version that glibc requires +MIN_KERN_VER="3.2.0" + +# Minimum pax-utils version needed (which contains any new syscall changes for +# its seccomp filter!). Please double check this! +MIN_PAX_UTILS_VER="1.3.3" + +# Minimum systemd version needed (which contains any new syscall changes for +# its seccomp filter!). Please double check this! +MIN_SYSTEMD_VER="254.9-r1" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/glibc.asc + +inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ + multilib systemd multiprocessing tmpfiles eapi9-ver verify-sig + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + SRC_URI="mirror://gnu/glibc/${P}.tar.xz" + SRC_URI+=" https://distfiles.gentoo.org/pub/proj/toolchain/glibc/patches/${P}-patches-${PATCH_VER}.tar.xz" + SRC_URI+=" verify-sig? ( mirror://gnu/glibc/${P}.tar.xz.sig )" +fi + +SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" +SRC_URI+=" systemd? ( https://gitweb.gentoo.org/proj/toolchain/glibc-systemd.git/snapshot/glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz )" + +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +SLOT="2.2" +IUSE="audit caps cet clang compile-locales custom-cflags doc gd hash-sysv-compat headers-only +multiarch multilib multilib-bootstrap nscd perl profile selinux sframe +ssp stack-realign +static-libs suid systemd systemtap test vanilla" + +# Here's how the cross-compile logic breaks down ... +# CTARGET - machine that will target the binaries +# CHOST - machine that will host the binaries +# CBUILD - machine that will build the binaries +# If CTARGET != CHOST, it means you want a libc for cross-compiling. +# If CHOST != CBUILD, it means you want to cross-compile the libc. +# CBUILD = CHOST = CTARGET - native build/install +# CBUILD != (CHOST = CTARGET) - cross-compile a native build +# (CBUILD = CHOST) != CTARGET - libc for cross-compiler +# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler +# For install paths: +# CHOST = CTARGET - install into / +# CHOST != CTARGET - install into /usr/CTARGET/ +# +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +# Note [Disable automatic stripping] +# Disabling automatic stripping for a few reasons: +# - portage's attempt to strip breaks non-native binaries at least on +# arm: bug #697428 +# - portage's attempt to strip libpthread.so.0 breaks gdb thread +# enumeration: bug #697910. This is quite subtle: +# * gdb uses glibc's libthread_db-1.0.so to enumerate threads. +# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols +# via 'ps_pglobal_lookup' symbol defined in gdb. +# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all +# known symbols in 'libpthread.so.0'. Specifically 'nptl_version' +# (unexported) is used to sanity check compatibility before enabling +# debugging. +# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint +# * normal 'strip' command trims '.symtab' +# Thus our main goal here is to prevent 'libpthread.so.0' from +# losing it's '.symtab' entries. +# - similarly, valgrind requires knowledge about symbols in ld.so: +# bug #920753 +# As Gentoo's strip does not allow us to pass less aggressive stripping +# options and does not check the machine target we strip selectively. + +# We need a new-enough binutils/gcc to match upstream baseline. +# Also we need to make sure our binutils/gcc supports TLS, +# and that gcc already contains the hardened patches. +# Lastly, let's avoid some openssh nastiness, bug 708224, as +# convenience to our users. + +IDEPEND=" + !compile-locales? ( sys-apps/locale-gen ) +" +BDEPEND=" + ${PYTHON_DEPS} + >=app-misc/pax-utils-${MIN_PAX_UTILS_VER} + sys-devel/bison + compile-locales? ( sys-apps/locale-gen ) + doc? ( + dev-lang/perl + sys-apps/texinfo + ) + sframe? ( >=sys-devel/binutils-2.45 ) + test? ( + dev-lang/perl + >=net-dns/libidn2-2.3.0 + sys-apps/gawk[mpfr] + ) + verify-sig? ( sec-keys/openpgp-keys-glibc ) +" +COMMON_DEPEND=" + gd? ( media-libs/gd:2= ) + nscd? ( selinux? ( + audit? ( sys-process/audit ) + caps? ( sys-libs/libcap ) + ) ) + suid? ( caps? ( sys-libs/libcap ) ) + selinux? ( sys-libs/libselinux ) + systemtap? ( dev-debug/systemtap ) +" +DEPEND="${COMMON_DEPEND} +" +RDEPEND="${COMMON_DEPEND} + !/dev/null + + rm -f glibc-test* + printf '%b' "$*" > glibc-test.c + + # We assume CC is already set up. + nonfatal emake glibc-test + ret=$? + + popd >/dev/null + + CFLAGS=${save_cflags} + return ${ret} +} + +do_run_test() { + local ret + + if [[ ${MERGE_TYPE} == "binary" ]] ; then + # ignore build failures when installing a binary package #324685 + CC="${glibc__ORIG_CC}" CXX="${glibc__ORIG_CXX}" CPP="${glibc__ORIG_CPP}" \ + CFLAGS="-O2" LDFLAGS="" do_compile_test "" "$@" 2>/dev/null || return 0 + else + ebegin "Performing simple compile test for ABI=${ABI}" + if ! do_compile_test "" "$@" ; then + ewarn "Simple build failed ... assuming this is desired #324685" + eend 1 + return 0 + else + eend 0 + fi + fi + + pushd "${T}" >/dev/null + + ./glibc-test + ret=$? + rm -f glibc-test* + + popd >/dev/null + + return ${ret} +} + +setup_target_flags() { + # This largely mucks with compiler flags. None of which should matter + # when building up just the headers. + just_headers && return 0 + + case $(tc-arch) in + x86) + # -march needed for #185404 #199334 + # TODO: When creating the first glibc cross-compile, this test will + # always fail as it does a full link which in turn requires glibc. + # Probably also applies when changing multilib profile settings (e.g. + # enabling x86 when the profile was amd64-only previously). + # We could change main to _start and pass -nostdlib here so that we + # only test the gcc code compilation. Or we could do a compile and + # then look for the symbol via scanelf. + if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + filter-flags '-march=*' + export CFLAGS="-march=${t} ${CFLAGS}" + einfo "Auto adding -march=${t} to CFLAGS #185404" + fi + # For compatibility with older binaries at slight performance cost. + use stack-realign && export CFLAGS+=" -mstackrealign" + ;; + amd64) + # -march needed for #185404 #199334 + # TODO: See cross-compile issues listed above for x86. + if [[ ${ABI} == x86 ]]; then + if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + # Normally the target is x86_64-xxx, so turn that into the -march that + # gcc actually accepts. #528708 + [[ ${t} == "x86_64" ]] && t="x86-64" + filter-flags '-march=*' + # ugly, ugly, ugly. ugly. + CFLAGS_x86=$( + CFLAGS=${CFLAGS_x86} + filter-flags '-march=*' + is-flagq '-mfpmath=sse' && append-cflags -msse + echo "${CFLAGS}" + ) + export CFLAGS_x86="${CFLAGS_x86} -march=${t}" + einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" + fi + # For compatibility with older binaries at slight performance cost. + use stack-realign && export CFLAGS_x86+=" -mstackrealign" + fi + + if is_hurd ; then + # doesnt build with -march=native and probably other values, debugging required + filter-flags '-march=*' + fi + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + ppc|ppc64) + # Many arch-specific implementations do not work on ppc with + # cache-block not equal to 128 bytes. This breaks memset: + # https://sourceware.org/PR26522 + # https://bugs.gentoo.org/737996 + # Use default -mcpu=. For ppc it means non-multiarch setup. + filter-flags '-mcpu=*' + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + local cpu + case ${CTARGET} in + sparc64-*) + cpu="sparc64" + case $(get-flag mcpu) in + v9) + # We need to force at least v9a because the base build doesn't + # work with just v9. + # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 + append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + *) + cpu="sparcv9" + ;; + esac + ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + esac +} + +setup_flags() { + # Make sure host make.conf doesn't pollute us + if is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi + + # Store our CFLAGS because it's changed depending on which CTARGET + # we are building when pulling glibc on a multilib profile + CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} + CFLAGS=${CFLAGS_BASE} + CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} + CXXFLAGS=${CXXFLAGS_BASE} + ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} + ASFLAGS=${ASFLAGS_BASE} + + # Allow users to explicitly avoid flag sanitization via + # USE=custom-cflags. + if ! use custom-cflags; then + # Over-zealous CFLAGS can often cause problems. What may work for one + # person may not work for another. To avoid a large influx of bugs + # relating to failed builds, we strip most CFLAGS out to ensure as few + # problems as possible. + strip-flags + + # Allow -O2 and -O3, but nothing else for now. + # TODO: Test -Os, -Oz. + if ! is-flagq '-O@(2|3)' ; then + # Lock glibc at -O2. We want to be conservative here. + filter-flags '-O?' + append-flags -O2 + fi + fi + + strip-unsupported-flags + filter-lto + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # ld can't use -r & --relax at the same time, bug #788901 + # https://sourceware.org/PR27837 + filter-ldflags '-Wl,--relax' + + # Flag added for cross-prefix, but causes ldconfig to segfault. Not needed + # anyway because glibc already handles this by itself. + filter-ldflags '-Wl,--dynamic-linker=*' + + # Fails to link (bug #940709) in some cases but even if it manages to, + # subtle runtime breakage will occur because the linker scripts need + # adaptation. Mentioned in PR21557#c0. + filter-ldflags '-Wl,--gc-sections' + + # some weird software relies on sysv hashes in glibc, bug 863863, bug 864100 + # we have to do that here already so mips can filter it out again :P + if use hash-sysv-compat ; then + append-ldflags '-Wl,--hash-style=both' + fi + + # clang warns about linker flags unused during compilation, but we don't + # want that to turn into errors! + # Let's turn the warning off entirely since it spams. + append-flags -Wno-unused-command-line-argument + + # #492892 + filter-flags -frecord-gcc-switches + + # #898098 + filter-flags -fno-builtin + + # #798774 + filter-flags -fno-semantic-interposition + + # #829583 + filter-lfs-flags + + case ${CTARGET} in + *-linux*) + ;; + *-gnu) + # -g3 confuses MIG which relies on preprocessed input + replace-flags -ggdb[3-9] -ggdb2 + replace-flags -g3 -g + ;; + esac + + unset CBUILD_OPT CTARGET_OPT + if use multilib ; then + CTARGET_OPT=$(get_abi_CTARGET) + [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) + fi + + setup_target_flags + + if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then + CBUILD_OPT=${CTARGET_OPT} + fi + + # glibc's headers disallow -O0 and fail at build time: + # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" + # https://sourceware.org/glibc/wiki/FAQ#Why_do_I_get:.60.23error_.22glibc_cannot_be_compiled_without_optimization.22.27.2C_when_trying_to_compile_GNU_libc_with_GNU_CC.3F + replace-flags -O0 -O1 + + # Similar issues as with SSP. Can't inject yourself that early. + filter-flags '-fsanitize=*' + + # See end of bug #830454; we handle this via USE=cet + filter-flags '-fcf-protection=*' + + # When bootstrapping, we may have a situation where + # CET-enabled gcc from seed is used to build CET-disabled + # glibc. As such, gcc implicitly enables CET if no + # -fcf-protection flag is passed. For a typical package it + # should not be a problem, but for glibc it matters as it is + # dealing with CET in ld.so. So if CET is supposed to be + # disabled for glibc, be explicit about it. + if ! use cet; then + case ${ABI}-${CTARGET} in + amd64-x86_64-*|x32-x86_64-*-*-gnux32) + append-flags '-fcf-protection=none' + ;; + arm64-aarch64*) + append-flags '-mbranch-protection=none' + ;; + esac + fi +} + +use_multiarch() { + # Allow user to disable runtime arch detection in multilib. + use multiarch || return 1 + # Make sure binutils is new enough to support indirect functions, + # #336792. This funky sed supports gold and bfd linkers. + local bver nver + bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') + case $(tc-arch ${CTARGET}) in + amd64|x86) nver="2.20" ;; + arm) nver="2.22" ;; + hppa) nver="2.23" ;; + ppc|ppc64) nver="2.20" ;; + # ifunc support was added in 2.23, but glibc also needs + # machinemode which is in 2.24. + s390) nver="2.24" ;; + sparc) nver="2.21" ;; + *) return 1 ;; + esac + ver_test ${bver} -ge ${nver} +} + +# Setup toolchain variables that had historically been defined in the +# profiles for these archs. +setup_env() { + # silly users + unset LD_RUN_PATH + unset LD_ASSUME_KERNEL + + if is_crosscompile || tc-is-cross-compiler ; then + multilib_env ${CTARGET_OPT:-${CTARGET}} + + if ! use multilib ; then + MULTILIB_ABIS=${DEFAULT_ABI} + else + MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} + fi + + # If the user has CFLAGS_ in their make.conf, use that, + # and fall back on CFLAGS. + local VAR=CFLAGS_${CTARGET//[-.]/_} + CFLAGS=${!VAR-${CFLAGS}} + einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" + fi + + setup_flags + + export ABI=${ABI:-${DEFAULT_ABI:-default}} + + if just_headers ; then + # Avoid mixing host's CC and target's CFLAGS_${ABI}: + # At this bootstrap stage we have only binutils for + # target but not compiler yet. + einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." + return 0 + fi + + # glibc does not work with non-bfd (for various reasons): + # * gold (bug #269274) + # * mold (bug #860900) + tc-ld-force-bfd + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + # Reset CC and CXX to the value at start of emerge + export CC=${glibc__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}} + export CXX=${glibc__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}} + export CPP=${glibc__ORIG_CPP:-${CPP:-$(tc-getCPP ${CTARGET})}} + + # and make sure glibc__ORIG_CC and glibc__ORIG_CXX is defined now. + export glibc__ORIG_CC=${CC} + export glibc__ORIG_CXX=${CXX} + export glibc__ORIG_CPP=${CPP} + + if tc-is-clang && ! ( use clang || use custom-cflags ) && ! is_crosscompile ; then + export glibc__force_gcc=yes + # once this is toggled on, it needs to stay on, since with CPP manipulated + # tc-is-clang does not work correctly anymore... + fi + + if [[ ${glibc__force_gcc} == "yes" ]] ; then + # If we are running in an otherwise clang/llvm environment, we need to + # recover the proper gcc and binutils settings here, at least until glibc + # is finally building with clang. So let's override everything that is + # set in the clang profiles. + # Want to shoot yourself into the foot? Set USE="clang" or USE="custom-cflags". + # Also, if you are crosscompiling, let's assume you know what you are doing. + # Hopefully. + # Last, we need the settings of the *build* environment, not of the + # target environment... + + local current_binutils_path=$(env CHOST="${CBUILD}" ROOT="${BROOT}" binutils-config -B "${CTARGET}") + local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B) + einfo "Overriding clang configuration, since it won't work here" + + export CC="${current_gcc_path}/${CTARGET}-gcc" + export CPP="${current_gcc_path}/${CTARGET}-cpp" + export CXX="${current_gcc_path}/${CTARGET}-g++" + export LD="${current_binutils_path}/ld.bfd" + export AR="${current_binutils_path}/ar" + export AS="${current_binutils_path}/as" + export NM="${current_binutils_path}/nm" + export STRIP="${current_binutils_path}/strip" + export RANLIB="${current_binutils_path}/ranlib" + export OBJCOPY="${current_binutils_path}/objcopy" + export STRINGS="${current_binutils_path}/strings" + export OBJDUMP="${current_binutils_path}/objdump" + export READELF="${current_binutils_path}/readelf" + export ADDR2LINE="${current_binutils_path}/addr2line" + + # do we need to also do flags munging here? yes! at least... + filter-flags '-fuse-ld=*' + filter-flags '-D_FORTIFY_SOURCE=*' + + else + # this is the "normal" case + + # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure + # can't detect them automatically due to ${CHOST} mismatch and fallbacks + # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup(). + export CC="$(tc-getCC ${CTARGET})" + export CXX="$(tc-getCXX ${CTARGET})" + export CPP="$(tc-getCPP ${CTARGET})" + export NM="$(tc-getNM ${CTARGET})" + export READELF="$(tc-getREADELF ${CTARGET})" + + fi + + # We need to move CFLAGS with abi information into CC etc per glibc upstream + # requirement. Keep around the original clean value to avoid appending + # multiple ABIs on top of each other. + export glibc__GLIBC_CC=${CC} + export glibc__GLIBC_CXX=${CXX} + export glibc__GLIBC_CPP=${CPP} + + export glibc__abi_CFLAGS="$(get_abi_CFLAGS)" + + # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 + # To build .S (assembly) files with the same ABI-specific flags + # upstream currently recommends adding CFLAGS to CC/CXX: + # https://sourceware.org/PR23273 + # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS + # and breaks multiarch support. See 659030#c3 for an example. + # The glibc configure script doesn't properly use LDFLAGS all the time. + export CC="${glibc__GLIBC_CC} ${glibc__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}" + + # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 + export CXX="${glibc__GLIBC_CXX} ${glibc__abi_CFLAGS} ${CFLAGS}" + + export CPP="${glibc__GLIBC_CPP} ${glibc__abi_CFLAGS} ${CFLAGS}" + + if is_crosscompile; then + # Assume worst-case bootstrap: glibc is built for the first time + # with ${CTARGET}-g++ not available yet. We avoid + # building auxiliary programs that require C++: bug #683074 + # It should not affect final result. + export libc_cv_cxx_link_ok=no + # The line above has the same effect. We set CXX explicitly + # to make build logs less confusing. + export CXX= + fi +} + +foreach_abi() { + setup_env + + local ret=0 + local abilist="" + if use multilib ; then + abilist=$(get_install_abis) + else + abilist=${DEFAULT_ABI} + fi + local -x ABI + for ABI in ${abilist:-default} ; do + setup_env + einfo "Running $1 for ABI ${ABI}" + $1 + : $(( ret |= $? )) + done + return ${ret} +} + +glibc_banner() { + local b="Gentoo ${PVR}" + [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" (patchset ${PATCH_VER})" + echo "${b}" +} + +# The following Kernel version handling functions are mostly copied from portage +# source. It's better not to use linux-info.eclass here since a) it adds too +# much magic, see bug 326693 for some of the arguments, and b) some of the +# functions are just not provided. + +g_get_running_KV() { + uname -r + return $? +} + +g_KV_major() { + [[ -z $1 ]] && return 1 + local KV=$@ + echo "${KV%%.*}" +} + +g_KV_minor() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.} + echo "${KV%%.*}" +} + +g_KV_micro() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.*.} + echo "${KV%%[^[:digit:]]*}" +} + +g_KV_to_int() { + [[ -z $1 ]] && return 1 + local KV_MAJOR=$(g_KV_major "$1") + local KV_MINOR=$(g_KV_minor "$1") + local KV_MICRO=$(g_KV_micro "$1") + local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) + + # We make version 2.2.0 the minimum version we will handle as + # a sanity check ... if its less, we fail ... + if [[ ${KV_int} -ge 131584 ]] ; then + echo "${KV_int}" + return 0 + fi + return 1 +} + +g_int_to_KV() { + local version=$1 major minor micro + major=$((version / 65536)) + minor=$(((version % 65536) / 256)) + micro=$((version % 256)) + echo ${major}.${minor}.${micro} +} + +get_kheader_version() { + printf '#include \nLINUX_VERSION_CODE\n' | \ + $(tc-getCPP ${CTARGET}) -I "${ESYSROOT}$(alt_headers)" - | \ + tail -n 1 +} + +# We collect all sanity checks here. Consistency is not guranteed between +# pkg_ and src_ phases, so we call this function both in pkg_pretend and in +# src_unpack. +sanity_prechecks() { + # Prevent native builds from downgrading + if [[ ${MERGE_TYPE} != "buildonly" ]] && \ + [[ -z ${ROOT} ]] && \ + [[ ${CBUILD} == ${CHOST} ]] && \ + [[ ${CHOST} == ${CTARGET} ]] ; then + + # The high rev # is to allow people to downgrade between -r# + # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 + # should be fine. Hopefully we never actually use a r# this + # high. + if has_version ">${CATEGORY}/${P}-r10000" ; then + eerror "Sanity check to keep you from breaking your system:" + eerror " Downgrading glibc is not supported and a sure way to destruction." + [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." + fi + + if is_linux && ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then + eerror "Your old kernel is broken. You need to update it to a newer" + eerror "version as syscall() will break. See bug 279260." + [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Old and broken kernel." + fi + fi + + if [[ ${CTARGET} == i386-* ]] ; then + eerror "i386 CHOSTs are no longer supported." + eerror "Chances are you don't actually want/need i386." + eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" + die "Please fix your CHOST" + fi + + if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then + ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." + ewarn "This will result in a 50% performance penalty when running with a 32bit" + ewarn "hypervisor, which is probably not what you want." + fi + + # ABI-specific checks follow here. Hey, we have a lot more specific conditions that + # we test for... + if ! is_crosscompile && ! tc-is-cross-compiler ; then + if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking if the system can execute 32-bit binaries" + echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" + local STAT + if ${CC-${CHOST}-gcc} ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then + "${T}/check-ia32-emulation.elf32" + STAT=$? + else + # Don't fail here to allow single->multi ABI switch + # or recover from breakage like bug #646424 + ewarn "Failed to compile the ABI test. Broken host glibc?" + STAT=0 + fi + rm -f "${T}/check-ia32-emulation.elf32" + eend $STAT + if [[ $STAT -ne 0 ]]; then + eerror "Ensure that CONFIG_IA32_EMULATION is enabled in the kernel." + eerror "Seek support otherwise." + die "Unable to execute 32-bit binaries" + fi + fi + + fi + + # When we actually have to compile something... + if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then + if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then + # bug #833620, bug #643302 + eerror "Found ${ESYSROOT}/usr/lib/include directory!" + eerror "This is known to break glibc's build." + eerror "Please backup its contents then remove the directory." + die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" + fi + + if [[ ${CTARGET} == *-linux* ]] ; then + local run_kv build_kv want_kv + + run_kv=$(g_get_running_KV) + build_kv=$(g_int_to_KV $(get_kheader_version)) + want_kv=${MIN_KERN_VER} + + if ! is_crosscompile && ! tc-is-cross-compiler ; then + # Building fails on an non-supporting kernel + ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" + if ! [[ $(g_KV_to_int ${run_kv}) -ge $(g_KV_to_int ${want_kv}) ]] ; then + eend 1 + echo + eerror "You need a kernel of at least ${want_kv}!" + die "Kernel version too low!" + fi + eend 0 + fi + + # Do not run this check for pkg_pretend, just pkg_setup and friends (if we ever get used there). + # It's plausible (seen it in the wild) that Portage will (correctly) schedule a linux-headers + # upgrade before glibc, but because pkg_pretend gets run before any packages are merged at all (not + # just glibc), the whole emerge gets aborted without a good reason. We probably don't + # need to run this check at all given we have a dependency on the right headers, + # but let's leave it as-is for now. + if [[ ${EBUILD_PHASE_FUNC} != pkg_pretend ]] ; then + ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" + if ! [[ $(g_KV_to_int ${build_kv}) -ge $(g_KV_to_int ${want_kv}) ]] ; then + eend 1 + echo + eerror "You need linux-headers of at least ${want_kv}!" + die "linux-headers version too low!" + fi + eend 0 + fi + fi + fi +} + +upgrade_warning() { + is_crosscompile && return + + if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then + if ver_replacing -lt $(ver_cut 1-2 ${PV}); then + ewarn "After upgrading glibc, please restart all running processes." + ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)." + ewarn "Alternatively, reboot your system." + ewarn "(See bug #660556, bug #741116, bug #823756, etc)" + fi + fi +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + upgrade_warning +} + +# pkg_setup + +pkg_setup() { + # see bug 682570 + [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup +} + +# src_unpack + +src_unpack() { + setup_env + + einfo "Checking general environment sanity." + sanity_prechecks + + use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git + https://github.com/gentoo/glibc-patches.git + " + EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git + git-r3_src_unpack + mv patches-git/9999 patches || die + EGIT_REPO_URI=" + https://sourceware.org/git/glibc.git + https://git.sr.ht/~sourceware/glibc + https://gitlab.com/x86-glibc/glibc.git + " + EGIT_CHECKOUT_DIR=${S} + [[ ${PV} == *.*.9999 ]] && EGIT_BRANCH=release/${PV%.*}/master + git-r3_src_unpack + else + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}/${P}.tar.xz" "${DISTDIR}/${P}.tar.xz.sig" + fi + unpack ${P}.tar.xz + + cd "${WORKDIR}" || die + unpack ${P}-patches-${PATCH_VER}.tar.xz + fi + + cd "${WORKDIR}" || die + use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz +} + +# src_prepare + +src_prepare() { + local patchsetname + if ! use vanilla ; then + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${PV}-${PATCH_VER}" + fi + einfo "Applying Gentoo Glibc patchset ${patchsetname}" + eapply "${WORKDIR}"/patches + einfo "Done." + + # Patches we should apply only for Hurd to be conservative + if is_hurd ; then + eapply "${FILESDIR}"/glibc-2.43-hurd-CLOCK_MONOTONIC.patch + fi + fi + + case ${CTARGET} in + m68*-aligned-*) + einfo "Applying utmp format fix for m68k with -maligned-int" + eapply "${FILESDIR}/glibc-2.41-m68k-malign.patch" + ;; + *) + ;; + esac + + default + + gnuconfig_update + + cd "${WORKDIR}" || die + find . -name configure -exec touch {} + + + # Fix permissions on some of the scripts. + chmod u+x "${S}"/scripts/*.sh + + cd "${S}" || die +} + +# src_configure + +glibc_do_configure() { + dump_build_environment + + local myconf=() + + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + myconf+=( --enable-stack-protector=$(usex ssp strong no) ) + + # Keep a whitelist of targets supporting IFUNC. glibc's ./configure + # is not robust enough to detect proper support: + # https://bugs.gentoo.org/641216 + # https://sourceware.org/PR22634#c0 + case $(tc-arch ${CTARGET}) in + # Keep whitelist of targets where autodetection mostly works. + amd64|x86|sparc|ppc|ppc64|arm|arm64|s390|riscv|loong) ;; + # Blacklist everywhere else + *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; + esac + + case ${ABI}-${CTARGET} in + amd64-x86_64-*|x32-x86_64-*-*-gnux32) myconf+=( $(use_enable cet) ) ;; + *) ;; + esac + + case ${ABI}-${CTARGET} in + amd64-x86_64-*|arm64-aarch64-*) myconf+=( $(use_enable sframe) ) ;; + *) ;; + esac + + [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) + + myconf+=( --enable-kernel=${MIN_KERN_VER} ) + + # Since SELinux support is only required for nscd, only enable it if: + # 1. USE selinux + # 2. only for the primary ABI on multilib systems + # 3. Not a crosscompile + if ! is_crosscompile && use selinux ; then + if use multilib ; then + if is_final_abi ; then + myconf+=( --with-selinux ) + else + myconf+=( --without-selinux ) + fi + else + myconf+=( --with-selinux ) + fi + else + myconf+=( --without-selinux ) + fi + + # Force a few tests where we always know the answer but + # configure is incapable of finding it. + if is_crosscompile ; then + export \ + libc_cv_c_cleanup=yes \ + libc_cv_forced_unwind=yes + fi + + myconf+=( + --disable-werror + --enable-bind-now + --enable-fortify-source + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + $(use_enable profile) + $(use_with gd) + --with-headers="${ESYSROOT}$(alt_headers)" + --prefix="$(host_eprefix)/usr" + --sysconfdir="$(host_eprefix)/etc" + --localstatedir="$(host_eprefix)/var" + --libdir='$(prefix)'/$(get_libdir) + --mandir='$(prefix)'/share/man + --infodir='$(prefix)'/share/info + --libexecdir='$(libdir)'/misc/glibc + --with-bugurl=https://bugs.gentoo.org/ + --with-pkgversion="$(glibc_banner)" + $(use_multiarch || echo --disable-multi-arch) + $(use_enable nscd) + + # /usr/bin/mtrace has a Perl shebang. Gentoo Prefix QA checks fail if + # Perl hasn't been installed inside the prefix yet and configure picks + # up a Perl from outside the prefix instead. configure will fail to + # execute Perl during configure if we're cross-compiling a prefix, but + # it will just disable mtrace in that case. + # Note: mtrace is needed by the test suite. + ac_cv_path_PERL="$(usex perl "${EPREFIX}"/usr/bin/perl $(usex test "${EPREFIX}"/usr/bin/perl $(usex doc "${EPREFIX}"/usr/bin/perl no)))" + + # locale data is arch-independent + # https://bugs.gentoo.org/753740 + libc_cv_complocaledir='${exec_prefix}/lib/locale' + + # On aarch64 there is no way to override -mcpu=native, and if + # the current cpu does not support SVE configure fails. + # Let's boldly assume our toolchain can always build SVE instructions. + libc_cv_aarch64_sve_asm=yes + + ${EXTRA_ECONF} + ) + + # We rely on sys-libs/timezone-data for timezone tools normally. + myconf+=( $(use_enable vanilla timezone-tools) ) + + if is_crosscompile ; then + myconf+=( --disable-systemtap ) + else + myconf+=( $(use_enable systemtap) ) + fi + + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) + ac_cv_lib_cap_cap_init=$(usex caps || echo no) + + # There is no configure option for this and we need to export it + # since the glibc build will re-run configure on itself + export libc_cv_rootsbindir="$(host_eprefix)/sbin" + export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" + + local builddir=$(builddir nptl) + mkdir -p "${builddir}" + cd "${builddir}" + set -- "${S}"/configure "${myconf[@]}" + echo "$@" + "$@" || die "failed to configure glibc" + + # If we're trying to migrate between ABI sets, we need + # to lie and use a local copy of gcc. Like if the system + # is built with MULTILIB_ABIS="amd64 x86" but we want to + # add x32 to it, gcc/glibc don't yet support x32. + # + if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib-bootstrap ; then + echo 'int main(void){}' > "${T}"/test.c || die + if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then + sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die + fi + fi +} + +glibc_headers_configure() { + export ABI=default + + local builddir=$(builddir "headers") + mkdir -p "${builddir}" + cd "${builddir}" + + # if we don't have a compiler yet, we can't really test it now ... + # hopefully they don't affect header generation, so let's hope for + # the best here ... + local v vars=( + ac_cv_header_cpuid_h=yes + libc_cv_{386,390,alpha,arm,hppa,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes + libc_cv_asm_cfi_directives=yes + libc_cv_broken_visibility_attribute=no + libc_cv_c_cleanup=yes + libc_cv_compiler_powerpc64le_binary128_ok=yes + libc_cv_forced_unwind=yes + libc_cv_gcc___thread=yes + libc_cv_mlong_double_128=yes + libc_cv_mlong_double_128ibm=yes + libc_cv_ppc_machine=yes + libc_cv_ppc_rel16=yes + libc_cv_predef_fortify_source=no + libc_cv_target_power8_ok=yes + libc_cv_visibility_attribute=yes + libc_cv_z_combreloc=yes + libc_cv_z_execstack=yes + libc_cv_z_initfirst=yes + libc_cv_z_nodelete=yes + libc_cv_z_nodlopen=yes + libc_cv_z_relro=yes + libc_mips_abi=${ABI} + libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=no + ac_cv_lib_cap_cap_init=no + ) + + einfo "Forcing cached settings:" + for v in "${vars[@]}" ; do + einfo " ${v}" + export ${v} + done + + local headers_only_arch_CPPFLAGS=() + + # Blow away some random CC settings that screw things up. #550192 + if [[ -d ${S}/sysdeps/mips ]]; then + pushd "${S}"/sysdeps/mips >/dev/null + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die + + # Force the mips ABI to the default. This is OK because the set of + # installed headers in this phase is the same between the 3 ABIs. + # If this ever changes, this hack will break, but that's unlikely + # as glibc discourages that behavior. + # https://crbug.com/647033 + sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die + + popd >/dev/null + fi + + local myconf=() + + case ${CTARGET} in + aarch64*) + # The configure checks fail during cross-build, so disable here + # for headers-only + myconf+=( + --disable-mathvec + ) ;; + riscv*) + # RISC-V interrogates the compiler to determine which target to + # build. If building the headers then we don't strictly need a + # RISC-V compiler, so the built-in definitions that are provided + # along with all RISC-V compiler might not exist. This causes + # glibc's RISC-V preconfigure script to blow up. Since we're just + # building the headers any value will actually work here, so just + # pick the standard one (rv64g/lp64d) to make the build scripts + # happy for now -- the headers are all the same anyway so it + # doesn't matter. + headers_only_arch_CPPFLAGS+=( + -D__riscv_xlen=64 + -D__riscv_flen=64 + -D__riscv_float_abi_double=1 + -D__riscv_atomic=1 + ) ;; + esac + + myconf+=( + --disable-sanity-checks + --enable-hacker-mode + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + --with-headers="${ESYSROOT}$(alt_headers)" + --prefix="$(host_eprefix)/usr" + ${EXTRA_ECONF} + ) + + # Nothing is compiled here which would affect the headers for the target. + # So forcing CC/CFLAGS is sane. + local headers_only_CC=$(tc-getBUILD_CC) + local headers_only_CFLAGS="-O1 -pipe" + local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" + local headers_only_LDFLAGS="" + set -- "${S}"/configure "${myconf[@]}" + echo \ + "CC=${headers_only_CC}" \ + "CFLAGS=${headers_only_CFLAGS}" \ + "CPPFLAGS=${headers_only_CPPFLAGS}" \ + "LDFLAGS=${headers_only_LDFLAGS}" \ + "$@" + CC=${headers_only_CC} \ + CFLAGS=${headers_only_CFLAGS} \ + CPPFLAGS=${headers_only_CPPFLAGS} \ + LDFLAGS="" \ + "$@" || die "failed to configure glibc" +} + +do_src_configure() { + if just_headers ; then + glibc_headers_configure + else + glibc_do_configure nptl + fi +} + +src_configure() { + foreach_abi do_src_configure +} + +# src_compile + +do_src_compile() { + emake -C "$(builddir nptl)" +} + +src_compile() { + if just_headers ; then + return + fi + + foreach_abi do_src_compile +} + +# src_test + +glibc_src_test() { + cd "$(builddir nptl)" + + local myxfailparams="" + if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then + local virt=$(systemd-detect-virt 2>/dev/null) + if [[ ${virt} == systemd-nspawn ]] ; then + ewarn "Skipping extra tests because in systemd-nspawn container" + XFAIL_TEST_LIST+=( "${XFAIL_NSPAWN_TEST_LIST[@]}" ) + fi + if [[ "$(nice)" == "19" ]] ; then + # Expects to be able to increase niceness, which it can't do if + # already at the highest nice value + XFAIL_TEST_LIST+=( "tst-nice" ) + fi + + for myt in ${XFAIL_TEST_LIST[@]} ; do + myxfailparams+="test-xfail-${myt}=yes " + done + fi + + # sandbox does not understand unshare() and prevents + # writes to /proc/, which makes many tests fail + + # we give the tests a bit more time to avoid spurious + # bug reports on slow arches + + SANDBOX_ON=0 LD_PRELOAD= TIMEOUTFACTOR=16 nonfatal emake ${myxfailparams} check +} + +src_test() { + if just_headers ; then + return + fi + + # glibc_src_test uses nonfatal so that we can run tests for all ABIs + # and fail at the end instead. + foreach_abi glibc_src_test || die "tests failed" +} + +# src_install + +run_locale_gen() { + local fatal=$1 prefix=$2 + local user_config action config stderr noun ret + local -a hasversion_opts localegen_args + + if [[ ${EBUILD_PHASE_FUNC} == src_install ]]; then + hasversion_opts=( -b ) + fi + + if has_version "${hasversion_opts[@]}" '>=sys-apps/locale-gen-3'; then + localegen_args=( --prefix "${prefix}" ) + else + config="${prefix}/usr/share/i18n/SUPPORTED" + user_config="${prefix}/etc/locale.gen" + if [[ ${EBUILD_PHASE_FUNC} == src_install ]]; then + # For USE=compile-locales, all locales should be built. + mkdir -p -- "${prefix}/usr/lib/locale" || die + elif locale-gen --list --config "${user_config}" | read -r; then + config=${user_config} + fi + localegen_args=( --config "${config}" --destdir "${prefix}" ) + fi + + # bug 736794: we need to be careful with the parallelization... the + # number of processors saved in the environment of a binary package may + # differ strongly from the number of processes available during postinst + if [[ ${EMERGE_FROM} != binary ]]; then + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) + fi + + printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 + { stderr=$(locale-gen "${localegen_args[@]}" 2>&1 >&3); } 3>&1 + ret=$? + action="ewarn" + if (( ret == 0 )); then + noun="warning" + else + noun="error" + if (( fatal )); then + action="die" + fi + fi + # Convey warnings/errors so that they can be reseen upon emerge exiting. + if [[ ${stderr} ]]; then + ewarn "locale-gen(8) issued the following ${noun}s:" + while read -r; do + ewarn "$REPLY" + done <<<"${stderr}" + fi + if (( ret != 0 )); then + "${action}" "locale-gen(8) unexpectedly failed during the ${EBUILD_PHASE_FUNC} phase" + fi +} + +glibc_do_src_install() { + local builddir=$(builddir nptl) + cd "${builddir}" + + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install + + # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support + # which come without headers etc. Only needed for binary packages since the + # external net-libs/libnsl has increased soversion. Keep only versioned libraries. + find "${D}" -name "libnsl.a" -delete + find "${D}" -name "libnsl.so" -delete + + # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need + # to infer upstream version: + # '#define VERSION "2.26.90"' -> '2.26.90' + local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) + + # Avoid stripping binaries not targeted by ${CHOST}. Or else + # ${CHOST}-strip would break binaries build for ${CTARGET}. + is_crosscompile && dostrip -x / + + # gdb thread introspection relies on local libpthreads symbols. stripping breaks it + # See Note [Disable automatic stripping] + dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so + # valgrind requires knowledge about ld.so symbols. + dostrip -x $(alt_libdir)/ld-*.so* + + if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then + # Move versioned .a file out of libdir to evade portage QA checks + # instead of using gen_usr_ldscript(). We fix ldscript as: + # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." + sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" \ + "${ED}"/$(alt_usrlibdir)/libm.a || die + dodir $(alt_usrlibdir)/${P} + mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a \ + "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die + fi + + # We configure toolchains for standalone prefix systems with a sysroot, + # which is prepended to paths in ld scripts, so strip the prefix from these. + # Before: GROUP ( /foo/lib64/libc.so.6 /foo/usr/lib64/libc_nonshared.a AS_NEEDED ( /foo/lib64/ld-linux-x86-64.so.2 ) ) + # After: GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-x86-64.so.2 ) ) + if [[ -n $(host_eprefix) ]] ; then + local file + grep -lZIF "ld script" "${ED}/$(alt_usrlibdir)"/lib*.{a,so} 2>/dev/null | while read -rd '' file ; do + sed -i "s|$(host_eprefix)/|/|g" "${file}" || die + done + fi + + # We'll take care of the cache ourselves + rm -f "${ED}"/etc/ld.so.cache + + # Everything past this point just needs to be done once ... + is_final_abi || return 0 + + # Make sure the non-native interp can be found on multilib systems even + # if the main library set isn't installed into the right place. Maybe + # we should query the active gcc for info instead of hardcoding it ? + local i ldso_abi ldso_name + if is_linux ; then + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-linux-x86-64.so.2 + x32 /libx32/ld-linux-x32.so.2 + x86 /lib/ld-linux.so.2 + # mips + o32 /lib/ld.so.1 + n32 /lib32/ld.so.1 + n64 /lib64/ld.so.1 + # powerpc + ppc /lib/ld.so.1 + # riscv + ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 + ilp32 /lib/ld-linux-riscv32-ilp32.so.1 + lp64d /lib/ld-linux-riscv64-lp64d.so.1 + lp64 /lib/ld-linux-riscv64-lp64.so.1 + # s390 + s390 /lib/ld.so.1 + s390x /lib/ld64.so.1 + # sparc + sparc32 /lib/ld-linux.so.2 + sparc64 /lib64/ld-linux.so.2 + ) + case $(tc-endian) in + little) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64.so.1 + # ELFv2 (glibc does not support ELFv1 on LE) + ppc64 /lib64/ld64.so.2 + ) + ;; + big) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64_be.so.1 + # ELFv1 (glibc does not support ELFv2 on BE) + ppc64 /lib64/ld64.so.1 + ) + ;; + esac + else + # we must be using hurd then + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-x86-64.so.1 + x86 /lib/ld.so.1 + ) + fi + if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib + fi + for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do + ldso_abi=${ldso_abi_list[i]} + has ${ldso_abi} $(get_install_abis) || continue + + ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" + if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then + dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} + fi + done + + if is_linux ; then + # In the LSB 5.0 definition, someone had the excellent idea to "standardize" + # the runtime loader name, see also https://xkcd.com/927/ + # Normally, in Gentoo one should never come across executables that require this. + # However, binary commercial packages are known to adhere to weird practices. + # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB + local lsb_ldso_name native_ldso_name lsb_ldso_abi + local lsb_ldso_abi_list=( + # x86 + amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 + ) + for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do + lsb_ldso_abi=${lsb_ldso_abi_list[i]} + native_ldso_name=${lsb_ldso_abi_list[i+1]} + lsb_ldso_name=${lsb_ldso_abi_list[i+2]} + has ${lsb_ldso_abi} $(get_install_abis) || continue + + if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then + dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}" + fi + done + fi + + # On Hurd, glibc and (unpatched) gcc tend to disagree about the proper location for + # the dynamic loader. Which is maximally stupid since this one information is hardcoded + # into every single binary, and even if we were to fix *our* gcc it could still prevent + # us from running binaries prepared anywhere else... + + if is_hurd && has amd64 $(get_install_abis) ; then + # First, let's check for sanity + if [[ -f "${D}$(alt_prefix)/lib/ld-x86-64.so.1" ]] ; then + die "Somehow your amd64 hurd glibc installed /lib/ld-x86-64.so.1 ... this should not happen." + fi + + # Then make a compatibility symlink. + dosym ../lib64/ld-x86-64.so.1 "$(alt_prefix)/lib/ld-x86-64.so.1" + fi + + if is_hurd && has x86 $(get_install_abis) ; then + # First, let's check for sanity + if [[ -f "${D}$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" ]] ; then + die "Somehow your x86 hurd glibc installed ld.so ... this should not happen." + fi + + # Then make a compatibility symlink. + dosym ld.so.1 "$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" + fi + + # With devpts under Linux mounted properly, we do not need the pt_chown + # binary to be setuid. This is because the default owners/perms will be + # exactly what we want. + if ! use suid ; then + find "${ED}" -name pt_chown -exec chmod -s {} + + fi + + ################################################################# + # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # + ################################################################# + + # Make sure we install some symlink hacks so that when we build + # a 2nd stage cross-compiler, gcc finds the target system + # headers correctly. See gcc/doc/gccinstall.info + if is_crosscompile ; then + # We need to make sure that /lib and /usr/lib always exists. + # gcc likes to use relative paths to get to its multilibs like + # /usr/lib/../lib64/. So while we don't install any files into + # /usr/lib/, we do need it to exist. + keepdir $(alt_prefix)/lib + keepdir $(alt_prefix)/usr/lib + + dosym usr/include $(alt_prefix)/sys-include + return 0 + fi + + # Files for Debian-style locale updating + dodir /usr/share/i18n + sed \ + -e "/^#/d" \ + -e "/SUPPORTED-LOCALES=/d" \ + -e "s: \\\\::g" -e "s:/: :g" \ + "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ + || die "generating /usr/share/i18n/SUPPORTED failed" + + cd "${S}" || die + + # Install misc network config files + insinto /etc + doins posix/gai.conf + + if use systemd ; then + doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf" + else + doins nss/nsswitch.conf + fi + + # Gentoo-specific + newins "${FILESDIR}"/host.conf-1 host.conf + + if use nscd ; then + doins nscd/nscd.conf + + newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + use systemd && systemd_dounit nscd/nscd.service + newtmpfiles nscd/nscd.tmpfiles nscd.conf + fi + + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc + doenvd "${T}"/00glibc + + for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do + [[ -s ${d} ]] && dodoc ${d} + done + dodoc -r ChangeLog.old + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f "${ED}"/etc/localtime + + # Generate all locales if this is a native build as locale generation + if use compile-locales && ! is_crosscompile; then + run_locale_gen 1 "${ED}" + fi +} + +glibc_headers_install() { + local builddir=$(builddir "headers") + cd "${builddir}" + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers + + insinto $(alt_headers)/gnu + doins "${S}"/include/gnu/stubs.h + + # Make sure we install the sys-include symlink so that when + # we build a 2nd stage cross-compiler, gcc finds the target + # system headers correctly. See gcc/doc/gccinstall.info + dosym usr/include $(alt_prefix)/sys-include +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install + + if ! use static-libs ; then + einfo "Not installing static glibc libraries" + find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete + fi +} + +# Simple test to make sure our new glibc isn't completely broken. +# Make sure we don't test with statically built binaries since +# they will fail. Also, skip if this glibc is a cross compiler. +# +# If coreutils is built with USE=multicall, some of these files +# will just be wrapper scripts, not actual ELFs we can test. +glibc_sanity_check() { + cd / #228809 + + # We enter ${ED} so to avoid trouble if the path contains + # special characters; for instance if the path contains the + # colon character (:), then the linker will try to split it + # and look for the libraries in an unexpected place. This can + # lead to unsafe code execution if the generated prefix is + # within a world-writable directory. + # (e.g. /var/tmp/portage:${HOSTNAME}) + pushd "${ED}"/$(get_libdir) >/dev/null + + # first let's find the actual dynamic linker here + # symlinks may point to the wrong abi + local newldso=$(find . -maxdepth 1 -name 'ld*so.?' -type f -print -quit) + + einfo Last-minute run tests with ${newldso} in /$(get_libdir) ... + + local x striptest + for x in cal date env free ls true uname uptime ; do + x=$(type -p ${x}) + [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue + striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue + case ${striptest} in + *"statically linked"*) continue;; + *"ASCII text"*) continue;; + esac + # We need to clear the locale settings as the upgrade might want + # incompatible locale data. This test is not for verifying that. + LC_ALL=C \ + ${newldso} --library-path . ${x} > /dev/null \ + || die "simple run test (${x}) failed" + done + + popd >/dev/null +} + +pkg_preinst() { + # nothing to do if just installing headers + just_headers && return + + einfo "Checking general environment sanity." + sanity_prechecks + + # prepare /etc/ld.so.conf.d/ for files + mkdir -p "${EROOT}"/etc/ld.so.conf.d + + # Default /etc/hosts.conf:multi to on for systems with small dbs. + if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then + sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf + einfo "Defaulting /etc/host.conf:multi to on" + fi + + [[ -n ${ROOT} ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check + + if [[ -L ${EROOT}/usr/lib/locale ]]; then + # Help portage migrate this to a directory + # https://bugs.gentoo.org/753740 + rm "${EROOT}"/usr/lib/locale || die + fi + + # Keep around libcrypt so that Perl doesn't break when merging libxcrypt + # (libxcrypt is the new provider for now of libcrypt.so.{1,2}). + # bug #802207 + if has_version "${CATEGORY}/${PN}[crypt]" && ! has preserve-libs ${FEATURES}; then + PRESERVED_OLD_LIBCRYPT=1 + cp -p "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" \ + "${T}/libcrypt$(get_libname 1)" || die + else + PRESERVED_OLD_LIBCRYPT=0 + fi +} + +glibc_refresh_ldconfig() { + if [[ ${MERGE_TYPE} == buildonly ]]; then + return + fi + + # Version check could be added to avoid unnecessary work, but ldconfig + # should finish quickly enough to not matter. + ebegin "Refreshing ld.so.cache" + ldconfig -i + if ! eend $?; then + ewarn "Failed to refresh the ld.so.cache for you. Some programs may be broken" + ewarn "before you manually do so (ldconfig -i)." + fi +} + +pkg_postinst() { + # nothing to do if just installing headers + just_headers && return + + if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then + # Generate fastloading iconv module configuration file. + "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" + fi + + if ! is_crosscompile && [[ -z ${ROOT} ]] ; then + # glibc-2.38+ on loong has ldconfig support added, but the ELF e_flags + # handling has changed as well, which means stale ldconfig auxiliary + # cache entries and failure to lookup libgcc_s / libstdc++ (breaking + # every C++ application) / libgomp etc., among other breakages. + # + # To fix this, simply refresh the ld.so.cache without using the + # auxiliary cache if we're natively installing on loong. This should + # be done relatively soon because we want to minimize the breakage + # window for the affected programs. + use loong && glibc_refresh_ldconfig + + if ! use compile-locales; then + run_locale_gen 0 "${EROOT}" + fi + + # If fixincludes was/is active for a particular GCC slot, we + # must refresh it. See bug #933282 and GCC's documentation: + # https://gcc.gnu.org/onlinedocs/gcc/Fixed-Headers.html + # + # TODO: Could this be done for cross? Some care would be needed + # to pass the right arguments. + while IFS= read -r -d $'\0' slot ; do + local mkheaders_path="${BROOT}"/usr/libexec/gcc/${CBUILD}/${slot##*/}/install-tools/mkheaders + local pthread_h="${BROOT}"/usr/lib/gcc/${CBUILD}/${slot##*/}/include-fixed/pthread.h + if [[ -x ${mkheaders_path} ]] ; then + ebegin "Refreshing fixincludes for ${CBUILD} with gcc-${slot##*/}" + ${mkheaders_path} -v + eend $? + elif [[ -f ${pthread_h} ]] ; then + # fixincludes might have been enabled in the past for this + # GCC slot but not since we fixed toolchain.eclass to install + # mkheaders, so we need to manually delete pthread.h at least. + ebegin "Deleting stale fixincludes'd pthread.h for ${CBUILD} with gcc-${slot##*/}" + mv -v "${pthread_h}" "${pthread_h}.bak" + eend $? + fi + done < <(find "${BROOT}"/usr/libexec/gcc/${CBUILD}/ -mindepth 1 -maxdepth 1 -type d -print0) + fi + + upgrade_warning + + # Check for sanity of /etc/nsswitch.conf, take 2 + if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then + local entry + for entry in passwd group shadow; do + if grep -E -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then + ewarn "" + ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" + ewarn "removed from glibc and is now provided by the package" + ewarn " sys-auth/libnss-nis" + ewarn "Install it now to keep your NIS setup working." + ewarn "" + fi + done + fi + + if [[ ${PRESERVED_OLD_LIBCRYPT} -eq 1 ]] ; then + cp -p "${T}/libcrypt$(get_libname 1)" "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" || die + preserve_old_lib_notify /$(get_libdir)/libcrypt$(get_libname 1) + + elog "Please ignore a possible later error message about a file collision involving" + elog "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1). We need to preserve this file for the moment to keep" + elog "the upgrade working, but it also needs to be overwritten when" + elog "sys-libs/libxcrypt is installed. See bug 802210 for more details." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.43.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.43.ebuild index 43c6ac5e29a..bf4c22c9eff 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.43.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.43.ebuild @@ -393,6 +393,11 @@ setup_target_flags() { # For compatibility with older binaries at slight performance cost. use stack-realign && export CFLAGS_x86+=" -mstackrealign" fi + + if is_hurd ; then + # doesnt build with -march=native and probably other values, debugging required + filter-flags '-march=*' + fi ;; mips) # The mips abi cannot support the GNU style hashes. #233233 @@ -1020,8 +1025,12 @@ src_prepare() { eapply "${WORKDIR}"/patches einfo "Done." - # TODO: Put into our patchset - eapply "${FILESDIR}"/glibc-2.43-hurd-link-helpers.patch + # Patches we should apply only for Hurd to be conservative + if is_hurd ; then + eapply "${FILESDIR}"/glibc-2.43-hurd-link-helpers.patch + eapply "${FILESDIR}"/glibc-2.43-hurd-CLOCK_MONOTONIC.patch + eapply "${FILESDIR}"/glibc-2.43-hurd-ldconfig.patch + fi fi case ${CTARGET} in @@ -1406,7 +1415,7 @@ run_locale_gen() { # number of processors saved in the environment of a binary package may # differ strongly from the number of processes available during postinst if [[ ${EMERGE_FROM} != binary ]]; then - localegen_args+=( --jobs "$(makeopts_jobs)" ) + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) fi printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 @@ -1578,14 +1587,25 @@ glibc_do_src_install() { done fi - if is_hurd && has x86 $(get_install_abis) ; then - # On ix86, glibc and (unpatched) gcc disagree about the proper location for the dynamic loader. - # Which is maximally stupid since this one information is hardcoded into every single - # binary... + # On Hurd, glibc and (unpatched) gcc tend to disagree about the proper location for + # the dynamic loader. Which is maximally stupid since this one information is hardcoded + # into every single binary, and even if we were to fix *our* gcc it could still prevent + # us from running binaries prepared anywhere else... + + if is_hurd && has amd64 $(get_install_abis) ; then + # First, let's check for sanity + if [[ -f "$(alt_prefix)/lib/ld-x86-64.so.1" ]] ; then + die "Somehow your amd64 hurd glibc installed /lib/ld-x86-64.so.1 ... this should not happen." + fi + + # Then make a compatibility symlink. + dosym ../lib64/ld-x86-64.so.1 "$(alt_prefix)/lib/ld-x86-64.so.1" + fi + if is_hurd && has x86 $(get_install_abis) ; then # First, let's check for sanity if [[ -f "$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" ]] ; then - die "Somehow your hurd glibc installed a literal ld.so ... this should not happen." + die "Somehow your x86 hurd glibc installed ld.so ... this should not happen." fi # Then make a compatibility symlink. diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-9999.ebuild index 2a072bed250..c7c394439e3 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-9999.ebuild @@ -6,14 +6,13 @@ EAPI=8 # Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc # Please read & adapt the page as necessary if obsolete. -PYTHON_COMPAT=( python3_{10..14} ) +PYTHON_COMPAT=( python3_{11..14} ) TMPFILES_OPTIONAL=1 EMULTILIB_PKG="true" # Gentoo patchset (ignored for live ebuilds) PATCH_VER=1 -PATCH_DEV=dilfridge # gcc mulitilib bootstrap files version GCC_BOOTSTRAP_VER=20201208 @@ -45,8 +44,8 @@ if [[ ${PV} == *9999 ]]; then else #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" SRC_URI="mirror://gnu/glibc/${P}.tar.xz" + SRC_URI+=" https://distfiles.gentoo.org/pub/proj/toolchain/glibc/patches/${P}-patches-${PATCH_VER}.tar.xz" SRC_URI+=" verify-sig? ( mirror://gnu/glibc/${P}.tar.xz.sig )" - SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" fi SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" @@ -386,13 +385,23 @@ setup_target_flags() { [[ ${t} == "x86_64" ]] && t="x86-64" filter-flags '-march=*' # ugly, ugly, ugly. ugly. - CFLAGS_x86=$(CFLAGS=${CFLAGS_x86}; filter-flags '-march=*'; echo "${CFLAGS}") + CFLAGS_x86=$( + CFLAGS=${CFLAGS_x86} + filter-flags '-march=*' + is-flagq '-mfpmath=sse' && append-cflags -msse + echo "${CFLAGS}" + ) export CFLAGS_x86="${CFLAGS_x86} -march=${t}" einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" fi # For compatibility with older binaries at slight performance cost. use stack-realign && export CFLAGS_x86+=" -mstackrealign" fi + + if is_hurd ; then + # doesnt build with -march=native and probably other values, debugging required + filter-flags '-march=*' + fi ;; mips) # The mips abi cannot support the GNU style hashes. #233233 @@ -840,7 +849,7 @@ sanity_prechecks() { [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." fi - if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then + if is_linux && ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then eerror "Your old kernel is broken. You need to update it to a newer" eerror "version as syscall() will break. See bug 279260." [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Old and broken kernel." @@ -897,7 +906,7 @@ sanity_prechecks() { die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" fi - if [[ ${CTARGET} == *-linux* ]] ; then + if is_linux ; then local run_kv build_kv want_kv run_kv=$(g_get_running_KV) @@ -1020,8 +1029,10 @@ src_prepare() { eapply "${WORKDIR}"/patches einfo "Done." - # TODO: Put into our patchset - eapply "${FILESDIR}"/glibc-2.43-hurd-link-helpers.patch + # Patches we should apply only for Hurd to be conservative + if is_hurd ; then + eapply "${FILESDIR}"/glibc-2.43-hurd-CLOCK_MONOTONIC.patch + fi fi case ${CTARGET} in @@ -1406,7 +1417,7 @@ run_locale_gen() { # number of processors saved in the environment of a binary package may # differ strongly from the number of processes available during postinst if [[ ${EMERGE_FROM} != binary ]]; then - localegen_args+=( --jobs "$(makeopts_jobs)" ) + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) fi printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 @@ -1578,14 +1589,25 @@ glibc_do_src_install() { done fi - if is_hurd && has x86 $(get_install_abis) ; then - # On ix86, glibc and (unpatched) gcc disagree about the proper location for the dynamic loader. - # Which is maximally stupid since this one information is hardcoded into every single - # binary... + # On Hurd, glibc and (unpatched) gcc tend to disagree about the proper location for + # the dynamic loader. Which is maximally stupid since this one information is hardcoded + # into every single binary, and even if we were to fix *our* gcc it could still prevent + # us from running binaries prepared anywhere else... + + if is_hurd && has amd64 $(get_install_abis) ; then + # First, let's check for sanity + if [[ -f "${D}/$(alt_prefix)/lib/ld-x86-64.so.1" ]] ; then + die "Somehow your amd64 hurd glibc installed /lib/ld-x86-64.so.1 ... this should not happen." + fi + + # Then make a compatibility symlink. + dosym ../lib64/ld-x86-64.so.1 "$(alt_prefix)/lib/ld-x86-64.so.1" + fi + if is_hurd && has x86 $(get_install_abis) ; then # First, let's check for sanity - if [[ -f "$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" ]] ; then - die "Somehow your hurd glibc installed a literal ld.so ... this should not happen." + if [[ -f "${D}/$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" ]] ; then + die "Somehow your x86 hurd glibc installed ld.so ... this should not happen." fi # Then make a compatibility symlink. diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/Manifest index f16d6aed051..9ca1185fb6c 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/Manifest @@ -1 +1,2 @@ DIST libcap-ng-0.8.5.tar.gz 460149 BLAKE2B ce0fc4ebceaa66d6f888f8b752e501bed7513d45231425054340016a6215ce52f0cd81b3a4a54c7c9ec0b623965002d66316c6c37844f0bd132b186ff7c6a41f SHA512 89fb86454847f354c012411ecdc7e17f07bb40d7e9719ca0b93ea81c436113685bbbb5c1b9cb1b7ac92d216c105c687285304135beb156aedd55ab1c61e4f269 +DIST libcap-ng-0.9.3.tar.gz 126257 BLAKE2B 8050f69c91a8c5214d718d3ad750cf50db25690b9b8d59f37db32d33d5a0fe864afe8064ca4261f27f49f65064926c816a627a9c1c7a28e268a1a459409c59d8 SHA512 cbe6e322a6349dcd2b23833c4f66a173d5d8d36ccded782e79fa8b83a1a700da293e0a79a31408814f19cf788fd56726beb587f51314a92c135e05eb2e5a47e2 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/files/libcap-ng-0.9.3-audit-out-of-source-build.patch b/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/files/libcap-ng-0.9.3-audit-out-of-source-build.patch new file mode 100644 index 00000000000..a5eb90d3105 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/files/libcap-ng-0.9.3-audit-out-of-source-build.patch @@ -0,0 +1,31 @@ +https://github.com/stevegrubb/libcap-ng/pull/73 + +From 704a4d311ccc8e34446e25bcb6afbd1541879d2c Mon Sep 17 00:00:00 2001 +Message-ID: <704a4d311ccc8e34446e25bcb6afbd1541879d2c.1775906446.git.sam@gentoo.org> +From: Sam James +Date: Sat, 11 Apr 2026 12:18:39 +0100 +Subject: [PATCH] cap-audit: fix out-of-source builds + +With an out-of-source build, bpftool puts the generated vmlinux.h in +the build directory, not the source directory, so we need to tell +Clang where to find it. +--- + utils/cap-audit/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/utils/cap-audit/Makefile.am b/utils/cap-audit/Makefile.am +index dd2e403..3c04493 100644 +--- a/utils/cap-audit/Makefile.am ++++ b/utils/cap-audit/Makefile.am +@@ -20,7 +20,7 @@ + SUBDIRS = test + DIST_SUBDIRS = test + +-AM_CPPFLAGS = -I${top_srcdir} -I${top_srcdir}/src ${LIBBPF_CFLAGS} ${LIBAUDIT_CFLAGS} ++AM_CPPFLAGS = -I${top_srcdir} -I${top_srcdir}/src -I$(top_builddir)/utils/cap-audit ${LIBBPF_CFLAGS} ${LIBAUDIT_CFLAGS} + AM_CFLAGS = -W -Wall -Wshadow ${WFLAGS} -Wundef -D_GNU_SOURCE + + if BUILD_CAP_AUDIT +-- +2.53.0 + diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/libcap-ng-0.8.5.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/libcap-ng-0.8.5.ebuild index 450f6fdf1c3..9efcbdc2f90 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/libcap-ng-0.8.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/libcap-ng-0.8.5.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 # Keep an eye on Fedora's packaging (https://src.fedoraproject.org/rpms/libcap-ng/tree/rawhide) for patches # Same maintainer in Fedora as upstream PYTHON_COMPAT=( python3_{11..14} ) -inherit autotools flag-o-matic out-of-source-utils python-r1 +inherit autotools dot-a flag-o-matic out-of-source-utils python-r1 DESCRIPTION="POSIX 1003.1e capabilities" HOMEPAGE="https://people.redhat.com/sgrubb/libcap-ng/" @@ -38,6 +38,9 @@ src_prepare() { src_configure() { use sparc && replace-flags -O? -O0 + # bug #960469 + use static-libs && lto-guarantee-fat + local ECONF_SOURCE="${S}" local myconf=( @@ -97,5 +100,8 @@ src_install() { emake -C "${BUILD_DIR}" DESTDIR="${D}" install fi + # bug #960469 + use static-libs && strip-lto-bytecode + find "${ED}" -name '*.la' -delete || die } diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/libcap-ng-0.9.3.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/libcap-ng-0.9.3.ebuild new file mode 100644 index 00000000000..9399d1d526f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/libcap-ng-0.9.3.ebuild @@ -0,0 +1,134 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Keep an eye on Fedora's packaging (https://src.fedoraproject.org/rpms/libcap-ng/tree/rawhide) for patches +# Same maintainer in Fedora as upstream +PYTHON_COMPAT=( python3_{11..14} ) +inherit autotools dot-a flag-o-matic out-of-source-utils python-r1 + +DESCRIPTION="POSIX 1003.1e capabilities" +HOMEPAGE="https://people.redhat.com/sgrubb/libcap-ng/" +SRC_URI="https://github.com/stevegrubb/libcap-ng/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2+ LGPL-2.1+" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +IUSE="bpf deprecated python static-libs" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND=" + bpf? ( + dev-libs/libbpf:= + sys-process/audit + ) + python? ( ${PYTHON_DEPS} ) +" +DEPEND=" + ${RDEPEND} + sys-kernel/linux-headers + bpf? ( dev-util/bpftool ) +" +BDEPEND=" + bpf? ( + llvm-core/clang[llvm_targets_BPF(-)] + virtual/pkgconfig + ) + python? ( >=dev-lang/swig-2 ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-0.9.3-audit-out-of-source-build.patch +) + +pkg_pretend() { + # bug 972898 + if use bpf && [[ ${MERGE_TYPE} != binary ]] ; then + if [[ ! -f /sys/kernel/btf/vmlinux ]] ; then + local err="Cannot read /sys/kernel/btf/vmlinux, which is required by bpftool.\n" + err+=" Typically this means that your kernel is missing the DEBUG_INFO_BTF option,\n" + err+=" without which BPF cannot work. Please build with USE=-bpf or reconfigure your kernel." + die "${err}" + fi + fi +} + +src_prepare() { + default + + eautoreconf +} + +src_configure() { + use sparc && replace-flags -O? -O0 + + # bug #960469 + use static-libs && lto-guarantee-fat + + local ECONF_SOURCE="${S}" + + local myconf=( + $(use_enable bpf cap-audit) + $(use_enable deprecated) + $(use_enable static-libs static) + --with-capability_header="${ESYSROOT}"/usr/include/linux/capability.h + ) + + local pythonconf=( + --without-python3 + ) + + # Set up python bindings build(s) + if use python ; then + setup_python_flags_configure() { + pythonconf=( + --with-python3 + ) + + run_in_build_dir econf "${pythonconf[@]}" "${myconf[@]}" + } + + python_foreach_impl setup_python_flags_configure + else + local BUILD_DIR="${WORKDIR}"/build + run_in_build_dir econf "${pythonconf[@]}" "${myconf[@]}" + fi +} + +src_compile() { + if use python ; then + python_foreach_impl run_in_build_dir emake + else + local BUILD_DIR="${WORKDIR}"/build + emake -C "${BUILD_DIR}" + fi +} + +src_test() { + if [[ "${EUID}" -eq 0 ]] ; then + ewarn "Skipping tests due to root permissions." + return + fi + + if use python ; then + python_foreach_impl run_in_build_dir emake check + else + local BUILD_DIR="${WORKDIR}"/build + emake -C "${BUILD_DIR}" check + fi +} + +src_install() { + if use python ; then + python_foreach_impl run_in_build_dir emake DESTDIR="${D}" install + else + local BUILD_DIR="${WORKDIR}"/build + emake -C "${BUILD_DIR}" DESTDIR="${D}" install + fi + + # bug #960469 + use static-libs && strip-lto-bytecode + + find "${ED}" -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/metadata.xml index d321b5cf888..872220c1010 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/metadata.xml @@ -11,6 +11,15 @@ utilities that can analyse all currently running applications and print out any capabilities and whether or not it has an open ended bounding set. + + + Install cap-audit utility which uses the extended Berkeley + Packet Filter (eBPF). + + + Install deprecated captest utility. + + cpe:/a:libcap-ng_project:libcap-ng stevegrubb/libcap-ng diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libcap/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/libcap/Manifest index f3aa0575c5e..9fba8e77bbe 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libcap/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libcap/Manifest @@ -1 +1,2 @@ DIST libcap-2.77.tar.xz 199688 BLAKE2B 9725a5f886907f718a7149841003ac04aced8d322ae190b7035873dc823098c58311f15b9fe7e2a3fec683de6e2eeea108cd008f5f79e8dba24bb20595351812 SHA512 c783cb43ffb40eb005fb880efe18e72667c743af79d647f67ee3201d5ff1e64446f9c850cced935a04b63a8ee3380bbf28dd91e2dfbcbddb561c8d096da610d0 +DIST libcap-2.78.tar.xz 201040 BLAKE2B 60b1afed4df471e9bbb631deca850920408710fb166335d5640feadf5e2feced0bccae10ba4010eca0dfb0cbb5cd41e255c2e4ac232dc3d18b7d269df9f1e72a SHA512 a156a8708dd59f13400f701f4e1ddc81f915fe4e7b32f93a328f7d6f030b7a004fb985fa9ac60812dfffeb8ad860d2e1f59895485497350250efd9378682626b diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libcap/libcap-2.78.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libcap/libcap-2.78.ebuild new file mode 100644 index 00000000000..a318175acba --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libcap/libcap-2.78.ebuild @@ -0,0 +1,96 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a multilib-minimal toolchain-funcs pam + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://git.kernel.org/pub/scm/libs/libcap/libcap.git" +else + SRC_URI="https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${P}.tar.xz" + + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +fi + +DESCRIPTION="POSIX 1003.1e capabilities" +HOMEPAGE="https://sites.google.com/site/fullycapable/" + +LICENSE="|| ( GPL-2 BSD ) pam? ( || ( LGPL-2+ BSD ) )" +SLOT="0" +IUSE="pam static-libs tools" + +# While the build system optionally uses gperf, we don't DEPEND on it because +# the build automatically falls back when it's unavailable. #604802 +PDEPEND="pam? ( sys-libs/pam[${MULTILIB_USEDEP}] )" +DEPEND="${PDEPEND} + sys-kernel/linux-headers" +BDEPEND=" + sys-apps/diffutils + tools? ( dev-lang/go )" + +QA_FLAGS_IGNORED="sbin/captree" # go binaries don't use LDFLAGS + +PATCHES=( + "${FILESDIR}"/${PN}-2.62-ignore-RAISE_SETFCAP-install-failures.patch +) + +src_prepare() { + default + multilib_copy_sources +} + +run_emake() { + local args=( + AR="$(tc-getAR)" + CC="$(tc-getCC)" + OBJCOPY="$(tc-getOBJCOPY)" + RANLIB="$(tc-getRANLIB)" + exec_prefix="${EPREFIX}" + lib_prefix="${EPREFIX}/usr" + lib="$(get_libdir)" + prefix="${EPREFIX}/usr" + PAM_CAP="$(usex pam yes no)" + DYNAMIC=yes + GOLANG="$(multilib_native_usex tools yes no)" + ) + emake "${args[@]}" "$@" +} + +src_configure() { + use static-libs && lto-guarantee-fat + tc-export_build_env BUILD_CC + multilib-minimal_src_configure +} + +multilib_src_compile() { + run_emake +} + +multilib_src_test() { + run_emake test +} + +multilib_src_install() { + # no configure, needs explicit install line #444724#c3 + run_emake DESTDIR="${D}" install + + if use static-libs ; then + strip-lto-bytecode + else + rm "${ED}"/usr/$(get_libdir)/lib{cap,psx}.a || die + fi + + # install pam plugins ourselves + rm -rf "${ED}"/usr/$(get_libdir)/security || die + + if use pam ; then + dopammod pam_cap/pam_cap.so + dopamsecurity '' pam_cap/capability.conf + fi +} + +multilib_src_install_all() { + dodoc CHANGELOG README doc/capability.md +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libseccomp/libseccomp-2.6.0-r3.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libseccomp/libseccomp-2.6.0-r3.ebuild index 184b1f109d9..1e6da225b83 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libseccomp/libseccomp-2.6.0-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libseccomp/libseccomp-2.6.0-r3.ebuild @@ -6,7 +6,7 @@ EAPI=8 DISTUTILS_EXT=1 DISTUTILS_OPTIONAL=1 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 multilib-minimal multiprocessing @@ -117,7 +117,7 @@ multilib_src_compile() { } multilib_src_test() { - local -x LIBSECCOMP_TSTCFG_JOBS="$(makeopts_jobs)" + local -x LIBSECCOMP_TSTCFG_JOBS="$(get_makeopts_jobs)" emake -Onone check if multilib_is_native_abi && use python ; then diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libseccomp/libseccomp-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libseccomp/libseccomp-9999.ebuild index 2c33eca85c2..18774689a01 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libseccomp/libseccomp-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libseccomp/libseccomp-9999.ebuild @@ -6,7 +6,7 @@ EAPI=8 DISTUTILS_EXT=1 DISTUTILS_OPTIONAL=1 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 multilib-minimal multiprocessing @@ -114,7 +114,7 @@ multilib_src_compile() { } multilib_src_test() { - local -x LIBSECCOMP_TSTCFG_JOBS="$(makeopts_jobs)" + local -x LIBSECCOMP_TSTCFG_JOBS="$(get_makeopts_jobs)" emake -Onone check if multilib_is_native_abi && use python ; then diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/Manifest index 0e9339f38b2..566ca4d7647 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/Manifest @@ -1 +1,3 @@ +DIST libselinux-3.10.tar.gz 205800 BLAKE2B 81cba6d7266141719021c3bc9fc4a6f76c304c7b175430a208c4b3cffacf6131ddeea821263410478160146433ea9438b4c321e3c3e3e4c06afaa66cb4e8d589 SHA512 5783f737675eb94e0bdff082013589e5bddfa0669a357df185eb89f4f88cec8b90779e86c4b17b58f5c248175da0208c80cc2642046e348c7384dd799f1ba4c1 DIST libselinux-3.8.1.tar.gz 204411 BLAKE2B f0508b3cf9c0fa2c315cab7b8048980a5a40188411ffd7790c5272e643742de073f0a8da44086e558c1b65ccb55e65cd559aad95e8da3cbfefd6adc9a5e09214 SHA512 646a31dff3b670a530adb9fc2fdc3ca9fe34a58e67e0fac52cc33bc7a01fa63c175987ef254c6c3bc7299cef137bc6f258dc378f4d70ae5c0fa0ece3bef42ab4 +DIST libselinux-3.9.tar.gz 205334 BLAKE2B 01ed24734ce72f7c1bbe866ef0482ca05d7ef6c7702764706c12ea76ca2eef575f4d7cab11c91f7a5ec9c56bc563edc7c5a171f3ae7ff8e5091b3697bcf82bf4 SHA512 a91942e7d16673396610d969f2471173989995a048edacf6076f6df3200a0d541a1c9932a7632d70aa7c728de7e7d3c62712e5aab6c0b763826e7ffef808cadb diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.10-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.10-r1.ebuild new file mode 100644 index 00000000000..8facd61db7f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.10-r1.ebuild @@ -0,0 +1,208 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_EXT=1 +DISTUTILS_OPTIONAL=1 +PYTHON_COMPAT=( python3_{11..14} ) +USE_RUBY="ruby32 ruby33" + +# No, I am not calling ruby-ng +inherit distutils-r1 dot-a flag-o-matic toolchain-funcs multilib-minimal + +MY_PV="${PV//_/-}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="SELinux userland library" +HOMEPAGE="https://github.com/SELinuxProject/selinux/wiki" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/SELinuxProject/selinux.git" + S="${WORKDIR}/${P}/${PN}" +else + SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~mips ~riscv ~x86" + S="${WORKDIR}/${MY_P}" +fi + +LICENSE="public-domain" +SLOT="0" +IUSE="python ruby static-libs ruby_targets_ruby32 ruby_targets_ruby33" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND="dev-libs/libpcre2:=[static-libs?,${MULTILIB_USEDEP}] + >=sys-libs/libsepol-${PV}:=[${MULTILIB_USEDEP},static-libs(+)] + python? ( ${PYTHON_DEPS} ) + ruby? ( + ruby_targets_ruby32? ( dev-lang/ruby:3.2 ) + ruby_targets_ruby33? ( dev-lang/ruby:3.3 ) + ) + elibc_musl? ( sys-libs/fts-standalone )" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig + python? ( + >=dev-lang/swig-2.0.9 + dev-python/pip[${PYTHON_USEDEP}] + ${PYTHON_DEPS} + ${DISTUTILS_DEPS} + ) + ruby? ( >=dev-lang/swig-2.0.9 )" + +src_prepare() { + eapply_user + + if use python; then + distutils-r1_src_prepare + fi + + multilib_copy_sources +} + +src_configure() { + # bug #926520 + # https://github.com/SELinuxProject/selinux/issues/461 + # https://github.com/SELinuxProject/selinux/issues/512 + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + + use static-libs && lto-guarantee-fat + + multilib-minimal_src_configure +} + +multilib_src_configure() { + default + if multilib_is_native_abi; then + if use python; then + distutils-r1_src_configure + fi + fi +} + +multilib_src_compile() { + tc-export AR CC PKG_CONFIG RANLIB + + local -x CFLAGS="${CFLAGS} -fno-semantic-interposition" + + emake \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + LDFLAGS="-fPIC ${LDFLAGS} -pthread" \ + USE_PCRE2=y \ + USE_LFS=y \ + FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ + all + + if multilib_is_native_abi; then + if use python; then + pushd src >/dev/null || die + distutils-r1_src_compile + popd >/dev/null || die + fi + if use ruby; then + building() { + einfo "Calling rubywrap for ${1}" + # Clean up .lo file to force rebuild + rm -f src/selinuxswig_ruby_wrap.lo || die + emake \ + RUBY=${1} \ + LDFLAGS="-fPIC ${LDFLAGS} -lpthread" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + USE_LFS=y \ + USE_PCRE2=y \ + FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ + rubywrap + } + for RUBYTARGET in ${USE_RUBY}; do + use ruby_targets_${RUBYTARGET} || continue + + building ${RUBYTARGET} + done + fi + fi +} + +multilib_src_test() { + default + + if multilib_is_native_abi; then + if use python; then + distutils-r1_src_test + fi + fi +} + +multilib_src_install() { + emake DESTDIR="${D}" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + USE_LFS=y \ + USE_PCRE2=y \ + install + + if multilib_is_native_abi; then + if use python; then + pushd src >/dev/null || die + mv selinux.py __init__.py || die + distutils-r1_src_install + popd >/dev/null || die + fi + if use ruby; then + installation() { + einfo "Calling install-rubywrap for ${1}" + # Forcing (re)build here as otherwise the resulting SO file is used for all ruby versions + rm src/selinuxswig_ruby_wrap.lo + emake DESTDIR="${D}" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + RUBY=${1} \ + USE_LFS=y \ + USE_PCRE2=y \ + install-rubywrap + } + for RUBYTARGET in ${USE_RUBY}; do + use ruby_targets_${RUBYTARGET} || continue + + installation ${RUBYTARGET} + done + fi + fi + + if use static-libs; then + strip-lto-bytecode + else + rm "${ED}"/usr/$(get_libdir)/*.a || die + fi +} + +python_install() { + # this installs the C extensions only + distutils-r1_python_install + + # now explicitly install the python package + python_moduleinto selinux + python_domodule __init__.py + + # install the C extension symlink + local pycext="$(python -c 'import importlib.machinery;print(importlib.machinery.EXTENSION_SUFFIXES[0])' || die)" + dosym -r "$(python_get_sitedir)/selinux/_selinux${pycext}" "$(python_get_sitedir)/_selinux${pycext}" +} + +pkg_postinst() { + # Fix bug 473502 + for POLTYPE in ${POLICY_TYPES}; + do + mkdir -p "${ROOT}/etc/selinux/${POLTYPE}/contexts/files" || die + touch "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/file_contexts.local" || die + # Fix bug 516608 + for EXPRFILE in file_contexts file_contexts.homedirs file_contexts.local ; do + if [[ -f "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/${EXPRFILE}" ]]; then + sefcontext_compile "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/${EXPRFILE}" \ + || die "Failed to recompile contexts" + fi + done + done +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.10.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.10.ebuild new file mode 100644 index 00000000000..6d01961913d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.10.ebuild @@ -0,0 +1,176 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_EXT=1 +PYTHON_COMPAT=( python3_{11..14} ) +USE_RUBY="ruby32 ruby33" + +# No, I am not calling ruby-ng +inherit distutils-r1 flag-o-matic toolchain-funcs multilib-minimal + +MY_PV="${PV//_/-}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="SELinux userland library" +HOMEPAGE="https://github.com/SELinuxProject/selinux/wiki" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/SELinuxProject/selinux.git" + S="${WORKDIR}/${P}/${PN}" +else + SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~mips ~riscv ~x86" + S="${WORKDIR}/${MY_P}" +fi + +LICENSE="public-domain" +SLOT="0" +IUSE="python ruby static-libs ruby_targets_ruby32 ruby_targets_ruby33" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND="dev-libs/libpcre2:=[static-libs?,${MULTILIB_USEDEP}] + >=sys-libs/libsepol-${PV}:=[${MULTILIB_USEDEP},static-libs(+)] + python? ( ${PYTHON_DEPS} ) + ruby? ( + ruby_targets_ruby32? ( dev-lang/ruby:3.2 ) + ruby_targets_ruby33? ( dev-lang/ruby:3.3 ) + ) + elibc_musl? ( sys-libs/fts-standalone )" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig + python? ( + >=dev-lang/swig-2.0.9 + dev-python/pip[${PYTHON_USEDEP}] +) + ruby? ( >=dev-lang/swig-2.0.9 )" + +src_prepare() { + eapply_user + + multilib_copy_sources +} + +src_configure() { + # bug #926520 + # https://github.com/SELinuxProject/selinux/issues/461 + # https://github.com/SELinuxProject/selinux/issues/512 + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + + multilib-minimal_src_configure +} + +multilib_src_compile() { + tc-export AR CC PKG_CONFIG RANLIB + + local -x CFLAGS="${CFLAGS} -fno-semantic-interposition" + + emake \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + LDFLAGS="-fPIC ${LDFLAGS} -pthread" \ + USE_PCRE2=y \ + USE_LFS=y \ + FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ + all + + if multilib_is_native_abi; then + if use python; then + pushd src >/dev/null || die + distutils-r1_src_compile + popd >/dev/null || die + fi + if use ruby; then + building() { + einfo "Calling rubywrap for ${1}" + # Clean up .lo file to force rebuild + rm -f src/selinuxswig_ruby_wrap.lo || die + emake \ + RUBY=${1} \ + LDFLAGS="-fPIC ${LDFLAGS} -lpthread" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + USE_LFS=y \ + USE_PCRE2=y \ + FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ + rubywrap + } + for RUBYTARGET in ${USE_RUBY}; do + use ruby_targets_${RUBYTARGET} || continue + + building ${RUBYTARGET} + done + fi + fi +} + +multilib_src_install() { + emake DESTDIR="${D}" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + USE_LFS=y \ + USE_PCRE2=y \ + install + + if multilib_is_native_abi; then + if use python; then + pushd src >/dev/null || die + mv selinux.py __init__.py || die + distutils-r1_src_install + popd >/dev/null || die + fi + if use ruby; then + installation() { + einfo "Calling install-rubywrap for ${1}" + # Forcing (re)build here as otherwise the resulting SO file is used for all ruby versions + rm src/selinuxswig_ruby_wrap.lo + emake DESTDIR="${D}" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + RUBY=${1} \ + USE_LFS=y \ + USE_PCRE2=y \ + install-rubywrap + } + for RUBYTARGET in ${USE_RUBY}; do + use ruby_targets_${RUBYTARGET} || continue + + installation ${RUBYTARGET} + done + fi + fi + + use static-libs || rm "${ED}"/usr/$(get_libdir)/*.a || die +} + +python_install() { + # this installs the C extensions only + distutils-r1_python_install + + # now explicitly install the python package + python_moduleinto selinux + python_domodule __init__.py + + # install the C extension symlink + local pycext="$(python -c 'import importlib.machinery;print(importlib.machinery.EXTENSION_SUFFIXES[0])' || die)" + dosym -r "$(python_get_sitedir)/selinux/_selinux${pycext}" "$(python_get_sitedir)/_selinux${pycext}" +} + +pkg_postinst() { + # Fix bug 473502 + for POLTYPE in ${POLICY_TYPES}; + do + mkdir -p "${ROOT}/etc/selinux/${POLTYPE}/contexts/files" || die + touch "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/file_contexts.local" || die + # Fix bug 516608 + for EXPRFILE in file_contexts file_contexts.homedirs file_contexts.local ; do + if [[ -f "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/${EXPRFILE}" ]]; then + sefcontext_compile "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/${EXPRFILE}" \ + || die "Failed to recompile contexts" + fi + done + done +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.9.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.9.ebuild new file mode 100644 index 00000000000..aea0eec53da --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.9.ebuild @@ -0,0 +1,208 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_EXT=1 +DISTUTILS_OPTIONAL=1 +PYTHON_COMPAT=( python3_{11..14} ) +USE_RUBY="ruby32 ruby33" + +# No, I am not calling ruby-ng +inherit distutils-r1 dot-a flag-o-matic toolchain-funcs multilib-minimal + +MY_PV="${PV//_/-}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="SELinux userland library" +HOMEPAGE="https://github.com/SELinuxProject/selinux/wiki" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/SELinuxProject/selinux.git" + S="${WORKDIR}/${P}/${PN}" +else + SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" + KEYWORDS="amd64 arm arm64 ~mips ~riscv x86" + S="${WORKDIR}/${MY_P}" +fi + +LICENSE="public-domain" +SLOT="0" +IUSE="python ruby static-libs ruby_targets_ruby32 ruby_targets_ruby33" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND="dev-libs/libpcre2:=[static-libs?,${MULTILIB_USEDEP}] + >=sys-libs/libsepol-${PV}:=[${MULTILIB_USEDEP},static-libs(+)] + python? ( ${PYTHON_DEPS} ) + ruby? ( + ruby_targets_ruby32? ( dev-lang/ruby:3.2 ) + ruby_targets_ruby33? ( dev-lang/ruby:3.3 ) + ) + elibc_musl? ( sys-libs/fts-standalone )" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig + python? ( + >=dev-lang/swig-2.0.9 + dev-python/pip[${PYTHON_USEDEP}] + ${PYTHON_DEPS} + ${DISTUTILS_DEPS} + ) + ruby? ( >=dev-lang/swig-2.0.9 )" + +src_prepare() { + eapply_user + + if use python; then + distutils-r1_src_prepare + fi + + multilib_copy_sources +} + +src_configure() { + # bug #926520 + # https://github.com/SELinuxProject/selinux/issues/461 + # https://github.com/SELinuxProject/selinux/issues/512 + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + + use static-libs && lto-guarantee-fat + + multilib-minimal_src_configure +} + +multilib_src_configure() { + default + if multilib_is_native_abi; then + if use python; then + distutils-r1_src_configure + fi + fi +} + +multilib_src_compile() { + tc-export AR CC PKG_CONFIG RANLIB + + local -x CFLAGS="${CFLAGS} -fno-semantic-interposition" + + emake \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + LDFLAGS="-fPIC ${LDFLAGS} -pthread" \ + USE_PCRE2=y \ + USE_LFS=y \ + FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ + all + + if multilib_is_native_abi; then + if use python; then + pushd src >/dev/null || die + distutils-r1_src_compile + popd >/dev/null || die + fi + if use ruby; then + building() { + einfo "Calling rubywrap for ${1}" + # Clean up .lo file to force rebuild + rm -f src/selinuxswig_ruby_wrap.lo || die + emake \ + RUBY=${1} \ + LDFLAGS="-fPIC ${LDFLAGS} -lpthread" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + USE_LFS=y \ + USE_PCRE2=y \ + FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ + rubywrap + } + for RUBYTARGET in ${USE_RUBY}; do + use ruby_targets_${RUBYTARGET} || continue + + building ${RUBYTARGET} + done + fi + fi +} + +multilib_src_test() { + default + + if multilib_is_native_abi; then + if use python; then + distutils-r1_src_test + fi + fi +} + +multilib_src_install() { + emake DESTDIR="${D}" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + USE_LFS=y \ + USE_PCRE2=y \ + install + + if multilib_is_native_abi; then + if use python; then + pushd src >/dev/null || die + mv selinux.py __init__.py || die + distutils-r1_src_install + popd >/dev/null || die + fi + if use ruby; then + installation() { + einfo "Calling install-rubywrap for ${1}" + # Forcing (re)build here as otherwise the resulting SO file is used for all ruby versions + rm src/selinuxswig_ruby_wrap.lo + emake DESTDIR="${D}" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + RUBY=${1} \ + USE_LFS=y \ + USE_PCRE2=y \ + install-rubywrap + } + for RUBYTARGET in ${USE_RUBY}; do + use ruby_targets_${RUBYTARGET} || continue + + installation ${RUBYTARGET} + done + fi + fi + + if use static-libs; then + strip-lto-bytecode + else + rm "${ED}"/usr/$(get_libdir)/*.a || die + fi +} + +python_install() { + # this installs the C extensions only + distutils-r1_python_install + + # now explicitly install the python package + python_moduleinto selinux + python_domodule __init__.py + + # install the C extension symlink + local pycext="$(python -c 'import importlib.machinery;print(importlib.machinery.EXTENSION_SUFFIXES[0])' || die)" + dosym -r "$(python_get_sitedir)/selinux/_selinux${pycext}" "$(python_get_sitedir)/_selinux${pycext}" +} + +pkg_postinst() { + # Fix bug 473502 + for POLTYPE in ${POLICY_TYPES}; + do + mkdir -p "${ROOT}/etc/selinux/${POLTYPE}/contexts/files" || die + touch "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/file_contexts.local" || die + # Fix bug 516608 + for EXPRFILE in file_contexts file_contexts.homedirs file_contexts.local ; do + if [[ -f "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/${EXPRFILE}" ]]; then + sefcontext_compile "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/${EXPRFILE}" \ + || die "Failed to recompile contexts" + fi + done + done +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-9999.ebuild index cc8d0992621..8facd61db7f 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-9999.ebuild @@ -10,7 +10,7 @@ PYTHON_COMPAT=( python3_{11..14} ) USE_RUBY="ruby32 ruby33" # No, I am not calling ruby-ng -inherit distutils-r1 toolchain-funcs multilib-minimal +inherit distutils-r1 dot-a flag-o-matic toolchain-funcs multilib-minimal MY_PV="${PV//_/-}" MY_P="${PN}-${MY_PV}" @@ -61,6 +61,17 @@ src_prepare() { multilib_copy_sources } +src_configure() { + # bug #926520 + # https://github.com/SELinuxProject/selinux/issues/461 + # https://github.com/SELinuxProject/selinux/issues/512 + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + + use static-libs && lto-guarantee-fat + + multilib-minimal_src_configure +} + multilib_src_configure() { default if multilib_is_native_abi; then @@ -114,6 +125,16 @@ multilib_src_compile() { fi } +multilib_src_test() { + default + + if multilib_is_native_abi; then + if use python; then + distutils-r1_src_test + fi + fi +} + multilib_src_install() { emake DESTDIR="${D}" \ LIBDIR="\$(PREFIX)/$(get_libdir)" \ @@ -150,7 +171,11 @@ multilib_src_install() { fi fi - use static-libs || rm "${ED}"/usr/$(get_libdir)/*.a || die + if use static-libs; then + strip-lto-bytecode + else + rm "${ED}"/usr/$(get_libdir)/*.a || die + fi } python_install() { @@ -166,13 +191,6 @@ python_install() { dosym -r "$(python_get_sitedir)/selinux/_selinux${pycext}" "$(python_get_sitedir)/_selinux${pycext}" } -multilib_src_test() { - default - if use python; then - distutils-r1_src_test - fi -} - pkg_postinst() { # Fix bug 473502 for POLTYPE in ${POLICY_TYPES}; diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/Manifest index e86d0df4221..3372e501915 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/Manifest @@ -1 +1,3 @@ +DIST libsepol-3.10.tar.gz 514545 BLAKE2B 4c9b416a1cb0fcadc831b517444c2d60bc647d5f19c15d33885ce70653c274d51d6d31d504d23e5f75e367da9cb58e916078e142599c1a83d8cdec5e9da0f97e SHA512 95a12779a41577d02a13922d1a484954a6b041b3be9a76836e179ab3a4e4b83b90df63e3a3f32b0862466ed8748280fa9b820f8dc96a3887bcdde081947e7450 DIST libsepol-3.8.1.tar.gz 513830 BLAKE2B f1877499a31289af941e36b80c1c25ca2b32205684d958c4a8b04e05006346138046e3f263e73db3889f918e2ff93818f4d6176de5d17669b863c853d04928e0 SHA512 6a66fbbc25f4ca5f58b07d19a70f3f6c233594ea5bc5a9f5d9f008eb03a83cea84ae0f03329f340b95e4f7135981d06cb9e66a7b3ca2f1494a71bbdcb5a01665 +DIST libsepol-3.9.tar.gz 515726 BLAKE2B 646bdb23fa249660208201c1a286eb42da0877cf38c3422afe7dab60d48b05a4db806bc54eb8a5c7f3a5f23eb75b448bac16a76a3c0c9d6368ec1fbcc1e5118b SHA512 9a198fb0b7f4981939e6556ba690892bda77446785c2015cdf4178fa303095186f255dfbebe04e6749a139379718a012349aa7a70fac94a860a3745c0536afe9 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/libsepol-3.10.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/libsepol-3.10.ebuild new file mode 100644 index 00000000000..bf077cd2cb0 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/libsepol-3.10.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit dot-a toolchain-funcs multilib-minimal + +MY_PV="${PV//_/-}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="SELinux binary policy representation library" +HOMEPAGE="https://github.com/SELinuxProject/selinux/wiki" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/SELinuxProject/selinux.git" + S="${WORKDIR}/${P}/${PN}" +else + SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~mips ~riscv ~x86" + S="${WORKDIR}/${MY_P}" +fi + +LICENSE="GPL-2" +SLOT="0/2" +IUSE="+static-libs" + +# tests are not meant to be run outside of the full SELinux userland repo +RESTRICT="test" + +src_prepare() { + eapply_user + multilib_copy_sources +} + +my_make() { + use static-libs && lto-guarantee-fat + emake \ + PREFIX="${EPREFIX}/usr" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="${EPREFIX}/$(get_libdir)" \ + "${@}" +} + +multilib_src_compile() { + tc-export CC AR RANLIB + + local -x CFLAGS="${CFLAGS} -fno-semantic-interposition" + + my_make +} + +multilib_src_install() { + my_make DESTDIR="${D}" install + if use static-libs; then + strip-lto-bytecode + else + rm "${ED}"/usr/$(get_libdir)/*.a || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/libsepol-3.9.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/libsepol-3.9.ebuild new file mode 100644 index 00000000000..f6ecda156ad --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/libsepol-3.9.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit dot-a toolchain-funcs multilib-minimal + +MY_PV="${PV//_/-}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="SELinux binary policy representation library" +HOMEPAGE="https://github.com/SELinuxProject/selinux/wiki" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/SELinuxProject/selinux.git" + S="${WORKDIR}/${P}/${PN}" +else + SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" + KEYWORDS="amd64 arm arm64 ~mips ~riscv x86" + S="${WORKDIR}/${MY_P}" +fi + +LICENSE="GPL-2" +SLOT="0/2" +IUSE="+static-libs" + +# tests are not meant to be run outside of the full SELinux userland repo +RESTRICT="test" + +src_prepare() { + eapply_user + multilib_copy_sources +} + +my_make() { + use static-libs && lto-guarantee-fat + emake \ + PREFIX="${EPREFIX}/usr" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="${EPREFIX}/$(get_libdir)" \ + "${@}" +} + +multilib_src_compile() { + tc-export CC AR RANLIB + + local -x CFLAGS="${CFLAGS} -fno-semantic-interposition" + + my_make +} + +multilib_src_install() { + my_make DESTDIR="${D}" install + if use static-libs; then + strip-lto-bytecode + else + rm "${ED}"/usr/$(get_libdir)/*.a || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libunwind/libunwind-1.8.3.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libunwind/libunwind-1.8.3.ebuild index 40582d50bf3..e867a578c73 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libunwind/libunwind-1.8.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libunwind/libunwind-1.8.3.ebuild @@ -31,7 +31,7 @@ else S="${WORKDIR}"/${P/_rc/-rc} if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 -sparc ~x86" + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ppc ~ppc64 ~riscv ~s390 -sparc ~x86" fi fi diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libxcrypt/libxcrypt-4.4.38-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libxcrypt/libxcrypt-4.4.38-r1.ebuild index 052def405d2..bc5a4a4029c 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libxcrypt/libxcrypt-4.4.38-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libxcrypt/libxcrypt-4.4.38-r1.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{11..14} ) # NEED_BOOTSTRAP is for developers to quickly generate a tarball # for publishing to the tree. NEED_BOOTSTRAP="no" @@ -20,7 +20,7 @@ fi LICENSE="LGPL-2.1+ public-domain BSD BSD-2" SLOT="0/1" -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="+compat static-libs +system test headers-only" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libxcrypt/libxcrypt-4.4.38.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libxcrypt/libxcrypt-4.4.38.ebuild index e2309315901..6f5efded7e8 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libxcrypt/libxcrypt-4.4.38.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libxcrypt/libxcrypt-4.4.38.ebuild @@ -1,9 +1,9 @@ -# Copyright 2004-2025 Gentoo Authors +# Copyright 2004-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{11..14} ) # NEED_BOOTSTRAP is for developers to quickly generate a tarball # for publishing to the tree. NEED_BOOTSTRAP="no" diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/Manifest index a283ed682e1..6254367ad56 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/Manifest @@ -164,7 +164,37 @@ DIST ncurses-6.5-20251220.patch.gz 46642 BLAKE2B 4b0f3edd124ffbaba3d20fb1594ecc2 DIST ncurses-6.5-20251220.patch.gz.asc 729 BLAKE2B d208a0969f99afd55454fbcaca2d8cb6e784008b0c1b10a4272d3ebb16128245774d88341c9ec8f08d5f64280cae89978b9ba215a4168ebb96ecb768b0ff1c03 SHA512 fb8714e858c60fbc7b33b162d681f6f261daeeb6bd6e376c058c12624e976db520dbd0b7a0a87394e81b9b6ef46cd9a127b51a15c334f0da4239e2a49405295f DIST ncurses-6.5.tar.gz 3688489 BLAKE2B d0a05c218b5f320ba9abe2f322787baef1d15d764e503c81d49772b54b2927d28ecbeb500c8e514996226b41f69445b4de44ff423cec25b61847307fe61682ec SHA512 fc5a13409d2a530a1325776dcce3a99127ddc2c03999cfeb0065d0eee2d68456274fb1c7b3cc99c1937bc657d0e7fca97016e147f93c7821b5a4a6837db821e8 DIST ncurses-6.5.tar.gz.sig 438 BLAKE2B 5789b47932ec97d3863c7a65306369f0a36cb5b1a35c1e009b5174f50941edceafc22e6f07db3843a096773663a0ca602c0ecb9465e6042d9a78d76ae5008215 SHA512 96ce61a3d529e48e249acecbf4bb9eae2d9f2f67506e92ffa3182f5e98040c38babf0c2c15d92fc5d96e1181e72be1b29fdbff7bee859dfe2ae387f9b8883092 -DIST ncurses-6.5_p20250301-patches.tar.xz 65224 BLAKE2B 9db65c728cc6d79e21b7673bb7700069cbf09287acfb65b23a65d607c3172835a9bf7df9a705d3a05b6197684bc7935e1cbed91bf18343c4fb8ebacf17e61dc1 SHA512 f5808f0c2fc1f6027678d8980a0cf598a64c9e85e1d72459dd712090c2dd24eb45261f35b025fd543aed56e903c658942c163b8fe8bace24a56fb8e9238da29e -DIST ncurses-6.5_p20250531-patches.tar.xz 65304 BLAKE2B b696a473c34df2aa1fe8b03fcbd6dd4bffdc8620917c0651994037bf902526a0c0b2be843beee2dec543677a0289aea35dd7e9ba7161eaef2c5663b4f1e356a8 SHA512 cb638cd2fd7128a7245b95a686df0725cbe133b42d26bdebabe62f070eacc25545845ea09c44d6d73183776a0ad094ae7857e2079b6561f05d94b86730f355db -DIST ncurses-6.5_p20250802-patches.tar.xz 64208 BLAKE2B a4e721225ac68590f6d5b492d5ec0a90b2637fe34bbe6bc3bf7eebfd6e295f430f71e63f36bb81db5864868e29d4acb62698dc01511048d929c745b752a95352 SHA512 40d9db23bc9b3baa0fac6bc380c47bc13bf2928796b6a0ab706f952dd6c39cba939e772f13b0323656b661f9006cd4d5dbde705db79a2bf28980c6f423ded374 DIST ncurses-6.5_p20251220-patches.tar.xz 64532 BLAKE2B 2e15dcdff309cdfae21bb122a57a34088bed9c85658de938e50fee1fd28b73549eff0bf8f1656a0e86a0a53bf1539cc369ef9a0c9daef8d8cf4e8874dac7eb5d SHA512 394323278b59cac96fec01f2b2cf81f134b644e0887f187e9a6b0b3411a18f17252430bbcd7bab08ab578a69d7217a31e482b498e96ff991d4d9da4ec37c8a7a +DIST ncurses-6.6-20251231.patch.gz 3999 BLAKE2B 54e6e9bf63bcac51d657535b6bd30a92267d3d1dc23ebb490aa1aee257b7dbcdf73c486c1f275f7d1b4024a20291b1ebf83473062366a7ecb39010ef2c3a4628 SHA512 f3fa46fd0666aeb238069a37f5d9d7a6236cbd2a07a9f20829346212d1933b318bfd84bdfda8a1d1dffa676bc10d9efdea6358d452ad2ebd77665e57d7bc2ade +DIST ncurses-6.6-20251231.patch.gz.asc 729 BLAKE2B 37e472c5318f28d858a7138df8da6728c167a7654e24f0e0667b463880b6854f44509e233230ca07201becb8ed93f868bf721a5809e49316b9d6b8b44892985f SHA512 edd14b41c2d18e240b94f4e4a2b8bd4e49ba36c01afc9327fb54b890975cb89c641158cc34d26d74e3114e719ab9195f61a574e78f49a81d22e8c2ca50812bb1 +DIST ncurses-6.6-20260103.patch.gz 15365 BLAKE2B 2ad88b6d8089310aca9fc9c7bb0f5a66b526f3b8788d5ae5ef49e7f33ab782f1692bc9a57bc770b2582491e17fb83ac4add6b3d947b447ea48b99ce4f63a5a7f SHA512 0d2bbab30a412ded339bffed89208530bf4f2be410f866ec7a93dc9e9a6e3b5e3c88e1ff8583188daa4331f1cd34ff79eed23fe4753ae3221f439f899f1bd1d4 +DIST ncurses-6.6-20260103.patch.gz.asc 729 BLAKE2B 841eb4d74e49ce4c626c33b40407792c53256f316e3af5c0b6fa13bd1c13abdaa9e05a4a99825e42d01f5e219efc618dae9b8b59a2114de0ca3ca2f0856fd9e0 SHA512 9e1055c7eceee0fa3b8aef0a578731901d8dcd9f33a9e943f974130463a0f459cc3e392e4db6e0976ff2a45cfc57dc9c9cfa40ddf0971d6f84f4efb758be1aea +DIST ncurses-6.6-20260117.patch.gz 20569 BLAKE2B 9534579a348694e394e188ddb80608121a4530f0e887c3cab3b6dd5c8143f0ce0ff7b04f459a681f2ff2658a82a9ec575e8bb83de5921f6da4d57be86c5e7325 SHA512 75473fa4281d6d3e0d4c8473ec37fa7a5163117785d0f7099ff7c744988903705d9378702b26e51e835a41325a33e8ba0cfa788602e243c2cc79d0a7308452ba +DIST ncurses-6.6-20260117.patch.gz.asc 729 BLAKE2B 79d83208232bc11dd13909b92f2a581a53d945d23535b0e046d08c0c0e14fe4fc3917fed083416870c8b1f89808c10b1503aceb17db47fe4d0cde2869cb11549 SHA512 7f8881b2fd071d304737ecc0d9f5fc2cbcfaa47cd69d1943566538ba2508d33cdb0e26cfbff88f590e461476f2440e2453bd0d2854d8fb07c6b136fb39cd30af +DIST ncurses-6.6-20260124.patch.gz 13387 BLAKE2B 70b5888f109550fb77286d2e0a0c54fa445cc4c9eb89f7b1dc2e11f81203a3c11f43febe55b78b714486b5a7c3a153290b7c81303f01c3d129f453ba945a2e37 SHA512 2bbe858498afacfd20fb8b2c03f13ab3de66ab8e02c241e03ea11352b560745c7383b0cae3881cafc38ea5604a2c262eab8d8e36731f55aa4e21adb3218fc8a3 +DIST ncurses-6.6-20260124.patch.gz.asc 729 BLAKE2B d812b7ea5466ffedbf80c24087e475fc066ae0c5135a0d3232b3799fc846dc1110681e94ae84365f01fdc159426d5614b571024810264d7c8cbbdf767addccc7 SHA512 6360de6e7088f8ece6a708ae85474e1a157f43a6d52aa8f743641b3b15311947581125ce86b20a57125a776f0bc32ca5f5f0e514b76102afc8a495b00359c9d4 +DIST ncurses-6.6-20260131.patch.gz 5027 BLAKE2B 8d790996694170bfb754c8a5331b3ecbe234cde61fb35b7fd067cea04c3e6a115ba3a47654f06b3b662dd5ddd59b5cb551443f75047caea598253ea465110174 SHA512 d49c24b98a0e1dca3ffd63a2450561f4a1bbf96baa661b06fa36c0e03c330f0298cdc5e19ea1a38b94ad6348df990468a56c3125678b67da4afc0bbbef7d7515 +DIST ncurses-6.6-20260131.patch.gz.asc 729 BLAKE2B 0defcdf8190ce4b2b814ac7845b1af128ad36d580bf0a2026d801ef9b31a578fc5868bda7af6ce9f7f07120ac855461fe4eb2d323b8f5a6913e21c196888a15a SHA512 e4589ffc61225937541cb65ffe5b1fbe2ae373c951d7b1648ce7ce093dada61b318d6eca10e5a383ff9b22892278e74e5efab2473d62968df2fe86306b281985 +DIST ncurses-6.6-20260207.patch.gz 14538 BLAKE2B 98b007beceb6d27224e50fb16e0eae5145a52595f12f3286dbe185ff84df098af516e236e7784faad082e55fb0d026256e6effc9729f5901dcdf4b12729e5cde SHA512 35eb68d1f518ec2fb023d94bb0cf77f7070b0d366695f51b3d049d47aa593ba43fdac6eea47798c9de411c3af2eef9bca3ac54710da1a86fe337e62de743bdbf +DIST ncurses-6.6-20260207.patch.gz.asc 729 BLAKE2B 7d31ccc8ad8efe3f6b5e48932636774f0af2bd5a534beed03dd8a7c29fce2db113627b4a55fded42546838e7a342bdcd92ff92ade356d133862b23327469fb07 SHA512 f7e4b8b6892ebe362762b5090ce9a55a4f597e15e623fc46c7104c206e3672e91c211f1d7b46a77c2fdece883e7d6162ab3d49e789baa3e19bd55b6b9e81549a +DIST ncurses-6.6-20260214.patch.gz 3687 BLAKE2B 967a2bae990db34b2faec9b94511a567a17f18ff5bfed9932b2eebbe815a1ec21355ff871457a25d2c7401da9813a49d3608f1a4f0bc63f4ca052fde81ff89b0 SHA512 56f775a9aa429ac42bee04f7014a9c636edebc6c31cfdf674b050b193eeda0a9aa1016442304ed04154bad11d0a827109875a347dbb6a89adfc6b19096bd9557 +DIST ncurses-6.6-20260214.patch.gz.asc 729 BLAKE2B 1bef7638085c14e24c284d791be6bcada99f31c721129525dad0811cd102c5227a7f737164928a5fb164bad49dc534c76d59f9c904a0d854f04a8e10def348a9 SHA512 ff391e5fc228eef564d45d18d6cd372a09a04d9d8563a468e410445b292e47ee8f2f8c1e57f34d698ddd548b99214592693ef37ffd922d11ee41dc62ecb99e42 +DIST ncurses-6.6-20260221.patch.gz 72474 BLAKE2B 43a10f3af30538697206d97300dafa2dabd5001e2a33b82445a958576318e6f278dbb75717f4a6d58b1a23493ac0407f989347953a66d563fa71a5414870ecbc SHA512 5eb4dadbd174bf7480a9e1d1048c306fd6b00e54cedf04aeb46a8706d1e4a5cec2e61d5fd51c29ac0f08412070ef1e8b22ed40d0ddc3e8858cf4f0e66a4d405a +DIST ncurses-6.6-20260221.patch.gz.asc 729 BLAKE2B c22ce89472c5e159984de2ef503e4e7c4a4d00a9a98b71e1e6e2b89fd609e10b156e8b7d7233ea4771c7cc19f5ee784260215ed16ca1b8cb13c7ee0061be62e2 SHA512 609ab532d0df9484fc89bdeec4cf55ff74ba225d901240d22d900ec5c11af75f8cc74c772ff3a8efc3fac9f26d6a3977b432e38faee62c8665beed7f6d7596e1 +DIST ncurses-6.6-20260301.patch.gz 4802 BLAKE2B 671012ecb3be634099427ed959c41790096885fe727d18f635842575aa8a28ab3fce2eb442dffc899a3a74f09f54aefa39f40ae054735ae773d4a31164beb0df SHA512 b450deff0e689c211b12108f96275013238ddf32554af3d39c51d1301d0ace50bfdb405249e61db46eb28b4fdfa05501ddd0bc31d05dededf2f3af963be5c1ca +DIST ncurses-6.6-20260301.patch.gz.asc 729 BLAKE2B 33407b9d70cd295faa1457fa7518f06331a508e946ef94e044984a15c0f7ee6239e31e73b453b19d5274367b6795d3402a8eac0ace522abd586e7fca268f3553 SHA512 d051dcf06716fbeaf2da9f3819d3fef064ed56de32bf380aa216d55796359a30e6109f59678003dc2491c560e62a2b885a1ee5e1e556aa663b2045c723fbefba +DIST ncurses-6.6-20260307.patch.gz 6274 BLAKE2B d356f55711e057d9f95e461635a9ee05c0a1b4561ea83555dd53ea34d60cf5f4dcc02d748c7046a48acf05ba8b841362bc9fdb47f792072bf423c9c9aaa46601 SHA512 1dfbd57726898f874b4561638e5be5bce229ff27ebf20756d235aad076c3835d48e388daefa61d01653fae068c3e86a8cc80485f1ce2e70d5b67e065a8ae5b40 +DIST ncurses-6.6-20260307.patch.gz.asc 729 BLAKE2B b3671e9a9c111d08c552c78dd209777afbda5cf2b0cb05b383140e08ce21abd114e9899897f2205328ac3873802425e9ecd32869479b99456daa5d3a47d04c02 SHA512 014809a87c1297484795fb5e70c85bd543249a11295e3f4e640df13053f9242aa8cdc4972a19f11504d3951fcb3d77f37d290c7eb6cdadd3eefc9c00e1b6d58e +DIST ncurses-6.6-20260314.patch.gz 99661 BLAKE2B 5c0a6c893a0713a66b10582bfbabb50d162d3567ebb4e78482da2c7eef7f04f7d0188dfdf8b5272596cf6fe21302d24ae642bd7efcd574fa629b78a0c4ea3657 SHA512 c46addc2b5006cc4f2d1681a50ac3ee6a275091d654a5fe27015714c9c5a0f04005a0fcddea25f01163815125a4e979681cd32f58a7189aadceb78251dcd19b3 +DIST ncurses-6.6-20260314.patch.gz.asc 729 BLAKE2B ff6a9f38d5b9e68d499f36645a47db1ac9aafbdd4a87d21569b06a5dd1f94a8c1e24e64af1ce060f7256f46ff6692fe26f6bc4b02261f35b8a1b4d72a0c029dc SHA512 c00ec69c3a4177d7ab8538ab13db48b6e659058e410a59f9240b074e7edd548bee77584797f1f3da7a30b0048843c8ca12a91933898a07a6e34fd5d64fcd0428 +DIST ncurses-6.6-20260321.patch.gz 74370 BLAKE2B c4520faabdfd42e82d3acf2e89e98ce2c8cfb298bc4df5c4574cd279f292cb6a523f50916b9e900aa9c99dfd25f7e540fe865eb805db6d94a374ef68ea709a43 SHA512 7d8a9bcaba1abb12fc020a485369cdffca69f2a4e4939b4b79f4da13185cb48afa181f20e3db042e664d8bd5d7bf0fc9268dfaf28260ea5e46d1f33ce6cc20ac +DIST ncurses-6.6-20260321.patch.gz.asc 729 BLAKE2B 9be85a6acba6bb3241476e21d1e5d7ed9241193a72732f024742ec507929b773dfac1f9318ed3edecba6f46b020335a2571a1fe3577340b358a87bb9eb9c4032 SHA512 0c53e5dcab15a53764a13d807157173824e266f9f24511670670d4519fd290eeb09cc8649271bb1dbc76f99519bab5b29afdce7eccbe9e52ebca8e5e2b7f9d7c +DIST ncurses-6.6-20260328.patch.gz 7345 BLAKE2B 6bf25718bd9db23ad115d5619b3e4a2fb78bc606d2c88859d9259707438f682cc55d578375a7cbede7c3d04ccb91c096edc6407be2fd45f2bc7a23f15ee77df2 SHA512 7dc0cce7c2204601796c7897b4401b8a9fa47c456aae9f76a18a0bd0120cfd22e16107711f81a1d20c4bab893a19b42b01355106c83530490faa8586b6078105 +DIST ncurses-6.6-20260328.patch.gz.asc 729 BLAKE2B 32681aceb16a416dbf7d165db4df60f536f6fb4b1faa0f01509879b45162ef59324ffbed95273f0e0db790ed88d1462007f454bb24249012a8582f0633f5f184 SHA512 60aa7cb5eb4b49c714b7d31f2bae9a41c12691354fdf249414c179173d5fda2797cd7b1ebd21b1e30d23e21fd46920b6021104194ee7df218526277aa8e5c9d4 +DIST ncurses-6.6-20260404.patch.gz 5546 BLAKE2B 30b4c0973e9cea1296cc3f60c4140225c76d3afbc14c9ef42870319d8c4112eb55ca92c2b43c3ae704334dabfbd3a2f8221da359211c25fcfd23acf766e04c66 SHA512 0088f8b24041ba8072fdd8c29291eb815fec7cb9de41df5a81903d8d8f29ab859468181430ce5b1224a05e4ee174b0b709f83f08e0128c8a86fbce44f5dda602 +DIST ncurses-6.6-20260404.patch.gz.asc 729 BLAKE2B 353528c751e141cc78c1fe281ad6629280efdaa0e8faecd409681b91bd5e53db6321bf4030d1f8f53b35c1647fc7005da9a12e9c47c9ca066d9878a9f7ec4273 SHA512 01d0f8709d592b6d979c670627dddc2ea4120d0ad1bf679932199cbec322d6d83dd029a365b8df9cfd0a75a446a44015231cdf64d7b0aed3c578437861e2ae81 +DIST ncurses-6.6-20260411.patch.gz 3662 BLAKE2B 9e2ca4d0c1222a14461d9a01e5d67dfe6c8281d084413dda50c06935cb7b41bcff1d9d74a40b2d47b003475ccceda4417c193553e34d5c8d845694bbca1536a5 SHA512 dc4fa7682ad91056e8bbad942991344216a418a88505e468a38b60d06fd25abcc5d9b047474ea43d4e097e97ad2b4e8cf91c5e28f5b716a0a8a651548f7eba94 +DIST ncurses-6.6-20260411.patch.gz.asc 729 BLAKE2B 45bacf4a9ac503271c25c39e6f74f536f1dd2e6464b194a3525ef6134acb8543c6a4e1a4e293d5617c2c0680e86ee6a7c9151710c68244f3278fdc81a314d2be SHA512 b5d7a0e245d98943cada86996268817cf9722bfc1c2addfbf20dc63da3de5d4cbd92aaa6609f79f862ac5ecc2c86c55b139e00f3a5820e27adddb1695e954ebd +DIST ncurses-6.6.tar.gz 3791150 BLAKE2B 8863ce3091fc72f23d12fe5913ea07c783e907cd8454b1c2b782f3e6bb91110cbfc4c52b8f0404eabd0d2041211183614e9d7f125ef8deeb23237b031f61fca0 SHA512 02647baae53abc844fbadee5b0a2187ad073125c4e8950df6d1c4feb781cb74ba64fb838cedfee2c246c39932187f6775b1df124f18b99a4233f0d98c72191de +DIST ncurses-6.6.tar.gz.sig 438 BLAKE2B 0c687ae08bc40642479eeefc3f40f6993646566bd6fc2c6ff8f0f5c5bb930a3c9dfa4d85916eb9ce42ca17cec4ecccbbb532ac3bc6fdf16f5fc406171706c4b8 SHA512 73c6ca454e15d20d544e1220c62dcc265f69b42a76f29cd2068f06d874ed05d7567fdce8afe342fa5bb62d0f1c650927a88255f71b1b386a5d54d41738167eed +DIST ncurses-6.6_p20260411-patches.tar.xz 81820 BLAKE2B 1f5496b2a77a876b96d8b1b9ffc3d6a0d7452d3b7f3f8e5e96643756b9a5c97b7aff5758f1e9e5e574875c5dc6cd9d517556c96e5d967ef6f7e2c2fc3668d543 SHA512 11bb25b97d7377ac06d78e5c1026077ba1f1a45521473d2173532e9dbb4f938cc400faf140e3ed28963c49a3561b4bc4ab45c21c24ca223d41e43ee69ba33723 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 deleted file mode 100644 index fa53d43ecd5..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20250329.ebuild +++ /dev/null @@ -1,484 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# sys-libs/ncurses-compat can be bumped with sys-libs/ncurses as upstream -# provide a configure option for the ABI version. - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/thomasdickey.asc -inherit flag-o-matic toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript verify-sig - -MY_PV="${PV:0:3}" -MY_P="${PN}-${MY_PV}" -DESCRIPTION="Console display library" -HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/" -# Keep invisible-mirror.net here as some users reported 403 forbidden with invisible-island.net -SRC_URI=" - mirror://gnu/ncurses/${MY_P}.tar.gz - https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz - https://invisible-mirror.net/archives/${PN}/${MY_P}.tar.gz - verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig ) -" - -GENTOO_PATCH_DEV=sam -GENTOO_PATCH_PV=6.5_p20250301 -GENTOO_PATCH_NAME=${PN}-${GENTOO_PATCH_PV}-patches - -# Populated below in a loop. Do not add patches manually here. -UPSTREAM_PATCHES=() - -if [[ ${PV} == *_p* ]] ; then - # Sometimes, after releases, there's no megapatch available yet. - # - # From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/: - # - # "At times (generally to mark a relatively stable point), I create a rollup - # patch, which consists of all changes from the release through the current date." - # - # Also, from https://lists.gnu.org/archive/html/bug-ncurses/2019-08/msg00039.html, - # the patches are considered to be acceptable to use after some testing. They - # are both for development but also bug fixes. - # - # This array should contain a list of all the snapshots since the last - # release if there's no megapatch available yet. - PATCH_DATES=( - 20240504 - 20240511 - 20240518 - 20240519 - 20240525 - 20240601 - 20240608 - 20240615 - 20240622 - 20240629 - 20240706 - 20240713 - 20240720 - 20240727 - 20240810 - 20240817 - 20240824 - 20240831 - 20240914 - 20240922 - 20240928 - 20241006 - 20241019 - 20241026 - 20241102 - 20241109 - 20241123 - 20241130 - 20241207 - 20241214 - 20241221 - 20241228 - 20250104 - 20250111 - 20250118 - 20250125 - 20250201 - 20250208 - 20250215 - 20250216 - 20250222 - 20250301 - 20250308 - 20250315 - 20250322 - - # Latest patch is just _pN = $(ver_cut 4) - $(ver_cut 4) - ) - - if [[ -z ${PATCH_DATES[@]} ]] ; then - SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz" - SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz.asc" - - # If we have a rollup patch, use that instead of the individual ones. - UPSTREAM_PATCHES+=( patch.sh ) - else - # We use a mirror as well because we've had reports of 403 forbidden for some users. - upstream_url_base="https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-" - upstream_m_url_base="https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-" - - # Prefix each date with the upstream location (https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}) - mangled_patches=( "${PATCH_DATES[@]/#/${upstream_url_base}}" ) - # Suffix each with .patch.gz - mangled_patches=( "${mangled_patches[@]/%/.patch.gz}" ) - mangled_patches_sig=( "${mangled_patches[@]/%/.asc}" ) - # Repeat for .patch.gz.asc for verify-sig - SRC_URI+=" ${mangled_patches[@]}" - SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]} )" - - # For all of the URLs, chuck in invisible-island.net too: - SRC_URI+=" ${mangled_patches[@]/${upstream_url_base}/${upstream_m_url_base}}" - SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]/${upstream_url_base}/${upstream_m_url_base}} )" - - UPSTREAM_PATCHES=( "${PATCH_DATES[@]/%/.patch}" ) - - unset upstream_url_base upstream_m_url_base mangled_patches mangled_patches_sig - fi -fi - -SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${GENTOO_PATCH_NAME}.tar.xz" -S="${WORKDIR}/${MY_P}" - -LICENSE="MIT" -# The subslot reflects the SONAME. -SLOT="0/6" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="ada +cxx debug doc gpm minimal profile split-usr +stack-realign static-libs test tinfo trace" -# In 6.5_p20250118, the C++ examples fail to link, but there's no automated -# testsuite anyway. Controlling building examples isn't really what USE=test -# is for. Just restrict them. -RESTRICT="!test? ( test ) test" - -# TODO: ncurses allows (and we take advantage of this, even) passing -# the SONAME for dlopen() use, so only the header is needed at build time. -# Maybe we should bundle a copy of gpm.h so we can move gpm to PDEPEND -# which would be far nicer UX-wise. -DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )" -# Block the older ncurses that installed all files w/SLOT=5, bug #557472 -RDEPEND=" - ${DEPEND} - !<=sys-libs/ncurses-5.9-r4:5 - !& /dev/null \ - || lbuildflags="${dbuildflags}" - - # We can't re-use the multilib BUILD_DIR because we run outside of it. - BUILD_DIR="${WORKDIR}" \ - CC=${BUILD_CC} \ - CXX=${BUILD_CXX} \ - CPP=${BUILD_CPP} \ - CHOST=${CBUILD} \ - CFLAGS=${BUILD_CFLAGS} \ - CXXFLAGS=${BUILD_CXXFLAGS} \ - CPPFLAGS=${BUILD_CPPFLAGS} \ - LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \ - do_configure cross --without-shared --with-normal --with-progs --without-ada - fi - multilib-minimal_src_configure -} - -multilib_src_configure() { - if [[ ${ABI} == x86 ]] ; then - # For compatibility with older binaries at slight performance cost. - # bug #616402 - use stack-realign && append-flags -mstackrealign - fi - - local t - for t in "${NCURSES_TARGETS[@]}" ; do - do_configure "${t}" - done -} - -do_configure() { - local target=$1 - shift - - mkdir "${BUILD_DIR}/${target}" || die - cd "${BUILD_DIR}/${target}" || die - - local conf=( - # We need the basic terminfo files in /etc, bug #37026. We will - # add '--with-terminfo-dirs' and then populate /etc/terminfo in - # src_install() ... - --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo" - - # Enable installation of .pc files. - --enable-pc-files - # This path is used to control where the .pc files are installed. - --with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig" - - # Now the rest of the various standard flags. - --with-shared - --enable-fvisibility - # (Originally disabled until bug #245417 is sorted out, but now - # just keeping it off for good, given nobody needed it until now - # (2022) and we're trying to phase out bdb.) - --without-hashed-db - $(use_with ada) - $(use_with cxx) - $(use_with cxx cxx-binding) - --with-cxx-shared - $(use_with debug) - $(use_with profile) - # The configure script uses ldd to parse the linked output which - # is flaky for cross-compiling/multilib/ldd versions/etc... - $(use_with gpm gpm libgpm.so.1) - - # bug #930806 - --disable-setuid-environ - # TODO: Maybe do these for USE=hardened - #--disable-root-access - #--disable-root-environ - - --disable-termcap - --enable-symlinks - --with-manpage-format=normal - --enable-const - --enable-colorfgbg - --enable-hard-tabs - --enable-echo - $(use_enable !ada warnings) - $(use_with debug assertions) - $(use_enable !debug leaks) - $(use_with debug expanded) - $(use_with !debug macros) - $(multilib_native_with progs) - $(use_with test tests) - $(use_with trace) - $(use_with tinfo termlib) - --disable-stripping - --disable-pkg-ldflags - ) - - case ${CHOST} in - *-mingw32*) - conf+=( --enable-term-driver ) - ;; - *) - conf+=( --disable-term-driver ) - ;; - esac - - if [[ ${target} == ncurses*w ]] ; then - conf+=( --enable-widec ) - else - conf+=( --disable-widec ) - fi - if [[ ${target} == ncursest* ]] ; then - conf+=( --with-{pthread,reentrant} ) - else - conf+=( --without-{pthread,reentrant} ) - fi - - # Make sure each variant goes in a unique location. - if [[ ${target} == "ncurses" ]] ; then - # "ncurses" variant goes into "${EPREFIX}"/usr/include - # It is needed on Prefix because the configure script appends - # "ncurses" to "${prefix}/include" if "${prefix}" is not /usr. - conf+=( --enable-overwrite ) - else - conf+=( --includedir="${EPREFIX}"/usr/include/${target} ) - fi - # See comments in src_configure. - if [[ ${target} != "cross" ]] ; then - local cross_path="${WORKDIR}/cross" - [[ -d ${cross_path} ]] && export TIC="${cross_path}/progs/tic" - fi - - ECONF_SOURCE="${S}" econf "${conf[@]}" "$@" -} - -src_compile() { - # See comments in src_configure. - if ! has_version -b "~sys-libs/${P}:0" ; then - BUILD_DIR="${WORKDIR}" do_compile cross -C progs tic$(get_exeext) - fi - - multilib-minimal_src_compile -} - -multilib_src_compile() { - local t - for t in "${NCURSES_TARGETS[@]}" ; do - do_compile "${t}" - done -} - -do_compile() { - local target=$1 - shift - - cd "${BUILD_DIR}/${target}" || die - - # A little hack to fix parallel builds ... they break when - # generating sources so if we generate the sources first (in - # non-parallel), we can then build the rest of the package - # in parallel. This is not really a perf hit since the source - # generation is quite small. - emake -j1 sources - - # For some reason, sources depends on pc-files which depends on - # compiled libraries which depends on sources which ... - # Manually delete the pc-files file so the install step will - # create the .pc files we want. - rm -f misc/pc-files || die - emake "$@" -} - -multilib_src_install() { - local target - for target in "${NCURSES_TARGETS[@]}" ; do - emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install - done - - # Move main libraries into /. - if multilib_is_native_abi ; then - gen_usr_ldscript -a \ - "${NCURSES_TARGETS[@]}" \ - $(usex tinfo 'tinfow tinfo' '') - fi - - # Don't delete '*.dll.a', needed for linking, bug #631468 - if ! use static-libs; then - find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die - fi - - # Build fails to create this ... - # -FIXME- - # Ugly hackaround for riscv having two parts libdir (bug #689240) - # Replace this hack with an official solution once we have one... - # -FIXME- - dosym $(sed 's@[^/]\+@..@g' <<< $(get_libdir))/share/terminfo \ - /usr/$(get_libdir)/terminfo - - # Remove obsolete libcurses symlink that is created by the build - # system. Technically, this could be also achieved - # via --disable-overwrite but it also moves headers implicitly, - # and we do not want to do this yet. - # bug #836696 - rm "${ED}"/usr/$(get_libdir)/libcurses* || die -} - -multilib_src_install_all() { - local terms=( - # Dumb/simple values that show up when using the in-kernel VT. - ansi console dumb linux - vt{52,100,102,200,220} - # [u]rxvt users used to be pretty common. Probably should drop this - # since upstream is dead and people are moving away from it. - rxvt{,-unicode}{,-256color} - # xterm users are common, as is terminals re-using/spoofing it. - xterm xterm-{,256}color - # screen is common (and reused by tmux). - screen{,-256color} - screen.xterm-256color - ) - if use split-usr ; then - local x - # We need the basic terminfo files in /etc for embedded/recovery, bug #37026 - einfo "Installing basic terminfo files in /etc..." - for x in "${terms[@]}"; do - local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null) - local basedir=$(basename "$(dirname "${termfile}")") - - if [[ -n ${termfile} ]] ; then - dodir "/etc/terminfo/${basedir}" - mv "${termfile}" "${ED}/etc/terminfo/${basedir}/" || die - dosym "../../../../etc/terminfo/${basedir}/${x}" \ - "/usr/share/terminfo/${basedir}/${x}" - fi - done - - echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" | newenvd - 50ncurses - - use minimal && rm -r "${ED}"/usr/share/terminfo* - # Because ncurses5-config --terminfo returns the directory we keep it - # bug #245374 - keepdir /usr/share/terminfo - elif use minimal ; then - # Keep only the basic terminfo files - find "${ED}"/usr/share/terminfo/ \ - \( -type f -o -type l \) ${terms[*]/#/! -name } -delete , \ - -type d -empty -delete || die - fi - - cd "${S}" || die - dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc - if use doc ; then - docinto html - dodoc -r doc/html/ - fi -} - -pkg_preinst() { - preserve_old_lib /$(get_libdir)/libncurses.so.5 - preserve_old_lib /$(get_libdir)/libncursesw.so.5 -} - -pkg_postinst() { - preserve_old_lib_notify /$(get_libdir)/libncurses.so.5 - preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5 -} 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 deleted file mode 100644 index 76f6f5cf00a..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20250531-r1.ebuild +++ /dev/null @@ -1,490 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# sys-libs/ncurses-compat can be bumped with sys-libs/ncurses as upstream -# provide a configure option for the ABI version. - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/thomasdickey.asc -inherit flag-o-matic toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript verify-sig - -MY_PV="${PV:0:3}" -MY_P="${PN}-${MY_PV}" -DESCRIPTION="Console display library" -HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/" -# Keep invisible-mirror.net here as some users reported 403 forbidden with invisible-island.net -SRC_URI=" - mirror://gnu/ncurses/${MY_P}.tar.gz - https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz - https://invisible-mirror.net/archives/${PN}/${MY_P}.tar.gz - verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig ) -" - -GENTOO_PATCH_DEV=sam -GENTOO_PATCH_PV=6.5_p20250531 -GENTOO_PATCH_NAME=${PN}-${GENTOO_PATCH_PV}-patches - -# Populated below in a loop. Do not add patches manually here. -UPSTREAM_PATCHES=() - -if [[ ${PV} == *_p* ]] ; then - # Sometimes, after releases, there's no megapatch available yet. - # - # From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/: - # - # "At times (generally to mark a relatively stable point), I create a rollup - # patch, which consists of all changes from the release through the current date." - # - # Also, from https://lists.gnu.org/archive/html/bug-ncurses/2019-08/msg00039.html, - # the patches are considered to be acceptable to use after some testing. They - # are both for development but also bug fixes. - # - # This array should contain a list of all the snapshots since the last - # release if there's no megapatch available yet. - PATCH_DATES=( - 20240504 - 20240511 - 20240518 - 20240519 - 20240525 - 20240601 - 20240608 - 20240615 - 20240622 - 20240629 - 20240706 - 20240713 - 20240720 - 20240727 - 20240810 - 20240817 - 20240824 - 20240831 - 20240914 - 20240922 - 20240928 - 20241006 - 20241019 - 20241026 - 20241102 - 20241109 - 20241123 - 20241130 - 20241207 - 20241214 - 20241221 - 20241228 - 20250104 - 20250111 - 20250118 - 20250125 - 20250201 - 20250208 - 20250215 - 20250216 - 20250222 - 20250301 - 20250308 - 20250315 - 20250322 - 20250329 - 20250405 - 20250412 - 20250419 - 20250426 - 20250503 - 20250510 - 20250517 - 20250524 - - # Latest patch is just _pN = $(ver_cut 4) - $(ver_cut 4) - ) - - if [[ -z ${PATCH_DATES[@]} ]] ; then - SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz" - SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz.asc" - - # If we have a rollup patch, use that instead of the individual ones. - UPSTREAM_PATCHES+=( patch.sh ) - else - # We use a mirror as well because we've had reports of 403 forbidden for some users. - upstream_url_base="https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-" - upstream_m_url_base="https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-" - - # Prefix each date with the upstream location (https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}) - mangled_patches=( "${PATCH_DATES[@]/#/${upstream_url_base}}" ) - # Suffix each with .patch.gz - mangled_patches=( "${mangled_patches[@]/%/.patch.gz}" ) - mangled_patches_sig=( "${mangled_patches[@]/%/.asc}" ) - # Repeat for .patch.gz.asc for verify-sig - SRC_URI+=" ${mangled_patches[@]}" - SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]} )" - - # For all of the URLs, chuck in invisible-island.net too: - SRC_URI+=" ${mangled_patches[@]/${upstream_url_base}/${upstream_m_url_base}}" - SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]/${upstream_url_base}/${upstream_m_url_base}} )" - - UPSTREAM_PATCHES=( "${PATCH_DATES[@]/%/.patch}" ) - - unset upstream_url_base upstream_m_url_base mangled_patches mangled_patches_sig - fi -fi - -SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${GENTOO_PATCH_NAME}.tar.xz" -S="${WORKDIR}/${MY_P}" - -LICENSE="MIT" -# The subslot reflects the SONAME. -SLOT="0/6" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="ada +cxx debug doc gpm minimal profile split-usr +stack-realign static-libs test tinfo trace" -# In 6.5_p20250118, the C++ examples fail to link, but there's no automated -# testsuite anyway. Controlling building examples isn't really what USE=test -# is for. Just restrict them. -RESTRICT="!test? ( test ) test" - -# TODO: ncurses allows (and we take advantage of this, even) passing -# the SONAME for dlopen() use, so only the header is needed at build time. -# Maybe we should bundle a copy of gpm.h so we can move gpm to PDEPEND -# which would be far nicer UX-wise. -DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )" -# Block the older ncurses that installed all files w/SLOT=5, bug #557472 -RDEPEND=" - ${DEPEND} - !<=sys-libs/ncurses-5.9-r4:5 - !& /dev/null \ - || lbuildflags="${dbuildflags}" - - # We can't re-use the multilib BUILD_DIR because we run outside of it. - BUILD_DIR="${WORKDIR}" \ - CC=${BUILD_CC} \ - CXX=${BUILD_CXX} \ - CPP=${BUILD_CPP} \ - CHOST=${CBUILD} \ - CFLAGS=${BUILD_CFLAGS} \ - CXXFLAGS=${BUILD_CXXFLAGS} \ - CPPFLAGS=${BUILD_CPPFLAGS} \ - LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \ - do_configure cross --without-shared --with-normal --with-progs --without-ada - fi - multilib-minimal_src_configure -} - -multilib_src_configure() { - if [[ ${ABI} == x86 ]] ; then - # For compatibility with older binaries at slight performance cost. - # bug #616402 - use stack-realign && append-flags -mstackrealign - fi - - local t - for t in "${NCURSES_TARGETS[@]}" ; do - do_configure "${t}" - done -} - -do_configure() { - local target=$1 - shift - - mkdir "${BUILD_DIR}/${target}" || die - cd "${BUILD_DIR}/${target}" || die - - local conf=( - # We need the basic terminfo files in /etc, bug #37026. We will - # add '--with-terminfo-dirs' and then populate /etc/terminfo in - # src_install() ... - --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo" - - # Enable installation of .pc files. - --enable-pc-files - # This path is used to control where the .pc files are installed. - --with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig" - - # Now the rest of the various standard flags. - --with-shared - --enable-fvisibility - # (Originally disabled until bug #245417 is sorted out, but now - # just keeping it off for good, given nobody needed it until now - # (2022) and we're trying to phase out bdb.) - --without-hashed-db - $(use_with ada) - $(use_with cxx) - $(use_with cxx cxx-binding) - --with-cxx-shared - $(use_with debug) - $(use_with profile) - # The configure script uses ldd to parse the linked output which - # is flaky for cross-compiling/multilib/ldd versions/etc... - $(use_with gpm gpm libgpm.so.1) - - # bug #930806 - --disable-setuid-environ - # TODO: Maybe do these for USE=hardened - #--disable-root-access - #--disable-root-environ - - --disable-termcap - --enable-symlinks - --with-manpage-format=normal - --enable-const - --enable-colorfgbg - --enable-hard-tabs - --enable-echo - $(use_enable !ada warnings) - $(use_enable debug assertions) - $(use_enable !debug leaks) - $(use_enable debug expanded) - $(use_enable !debug macros) - $(multilib_native_with progs) - $(use_with test tests) - $(use_with trace) - $(use_with tinfo termlib) - --disable-stripping - --disable-pkg-ldflags - ) - - case ${CHOST} in - *-mingw32*) - conf+=( --enable-term-driver ) - ;; - *) - conf+=( --disable-term-driver ) - ;; - esac - - if [[ ${target} == ncurses*w ]] ; then - conf+=( --enable-widec ) - else - conf+=( --disable-widec ) - fi - if [[ ${target} == ncursest* ]] ; then - conf+=( --with-{pthread,reentrant} ) - else - conf+=( --without-{pthread,reentrant} ) - fi - - # Make sure each variant goes in a unique location. - if [[ ${target} == "ncurses" ]] ; then - # "ncurses" variant goes into "${EPREFIX}"/usr/include - # It is needed on Prefix because the configure script appends - # "ncurses" to "${prefix}/include" if "${prefix}" is not /usr. - conf+=( --enable-overwrite ) - else - conf+=( --includedir="${EPREFIX}"/usr/include/${target} ) - fi - # See comments in src_configure. - if [[ ${target} != "cross" ]] ; then - local cross_path="${WORKDIR}/cross" - [[ -d ${cross_path} ]] && export TIC="${cross_path}/progs/tic" - fi - - ECONF_SOURCE="${S}" econf "${conf[@]}" "$@" -} - -src_compile() { - # See comments in src_configure. - if ! has_version -b "~sys-libs/${P}:0" ; then - BUILD_DIR="${WORKDIR}" do_compile cross -C progs tic$(get_exeext) - fi - - multilib-minimal_src_compile -} - -multilib_src_compile() { - local t - for t in "${NCURSES_TARGETS[@]}" ; do - do_compile "${t}" - done -} - -do_compile() { - local target=$1 - shift - - cd "${BUILD_DIR}/${target}" || die - - # A little hack to fix parallel builds ... they break when - # generating sources so if we generate the sources first (in - # non-parallel), we can then build the rest of the package - # in parallel. This is not really a perf hit since the source - # generation is quite small. - emake -j1 sources - - # For some reason, sources depends on pc-files which depends on - # compiled libraries which depends on sources which ... - # Manually delete the pc-files file so the install step will - # create the .pc files we want. - rm -f misc/pc-files || die - emake "$@" -} - -multilib_src_install() { - local target - for target in "${NCURSES_TARGETS[@]}" ; do - emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install - done - - # Move main libraries into /. - if multilib_is_native_abi ; then - gen_usr_ldscript -a \ - "${NCURSES_TARGETS[@]}" \ - $(usex tinfo 'tinfow tinfo' '') - fi - - # Don't delete '*.dll.a', needed for linking, bug #631468 - if ! use static-libs; then - find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die - fi - - # Build fails to create this ... - # -FIXME- - # Ugly hackaround for riscv having two parts libdir (bug #689240) - # Replace this hack with an official solution once we have one... - # -FIXME- - dosym $(sed 's@[^/]\+@..@g' <<< $(get_libdir))/share/terminfo \ - /usr/$(get_libdir)/terminfo - - # Remove obsolete libcurses symlink that is created by the build - # system. Technically, this could be also achieved - # via --disable-overwrite but it also moves headers implicitly, - # and we do not want to do this yet. - # bug #836696 - rm "${ED}"/usr/$(get_libdir)/libcurses* || die -} - -multilib_src_install_all() { - local terms=( - # Dumb/simple values that show up when using the in-kernel VT. - ansi console dumb linux - vt{52,100,102,200,220} - # [u]rxvt users used to be pretty common. Probably should drop this - # since upstream is dead and people are moving away from it. - rxvt{,-unicode}{,-256color} - # xterm users are common, as is terminals re-using/spoofing it. - xterm xterm-{,256}color - # screen is common (and reused by tmux). - screen{,-256color} - screen.xterm-256color - ) - if use split-usr ; then - local x - # We need the basic terminfo files in /etc for embedded/recovery, bug #37026 - einfo "Installing basic terminfo files in /etc..." - for x in "${terms[@]}"; do - local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null) - local basedir=$(basename "$(dirname "${termfile}")") - - if [[ -n ${termfile} ]] ; then - dodir "/etc/terminfo/${basedir}" - mv "${termfile}" "${ED}/etc/terminfo/${basedir}/" || die - dosym "../../../../etc/terminfo/${basedir}/${x}" \ - "/usr/share/terminfo/${basedir}/${x}" - fi - done - - echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" | newenvd - 50ncurses - - use minimal && rm -r "${ED}"/usr/share/terminfo* - # Because ncurses5-config --terminfo returns the directory we keep it - # bug #245374 - keepdir /usr/share/terminfo - elif use minimal ; then - # Keep only the basic terminfo files - find "${ED}"/usr/share/terminfo/ \ - \( -type f -o -type l \) ${terms[*]/#/! -name } -delete , \ - -type d -empty -delete || die - fi - - cd "${S}" || die - dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc - if use doc ; then - docinto html - dodoc -r doc/html/ - fi -} - -pkg_preinst() { - preserve_old_lib /$(get_libdir)/libncurses.so.5 - preserve_old_lib /$(get_libdir)/libncursesw.so.5 -} - -pkg_postinst() { - preserve_old_lib_notify /$(get_libdir)/libncurses.so.5 - preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5 -} 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 deleted file mode 100644 index 69f9dae5d0c..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20250802.ebuild +++ /dev/null @@ -1,498 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# sys-libs/ncurses-compat can be bumped with sys-libs/ncurses as upstream -# provide a configure option for the ABI version. - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/thomasdickey.asc -inherit flag-o-matic toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript verify-sig - -MY_PV="${PV:0:3}" -MY_P="${PN}-${MY_PV}" -DESCRIPTION="Console display library" -HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/" -# Keep invisible-mirror.net here as some users reported 403 forbidden with invisible-island.net -SRC_URI=" - mirror://gnu/ncurses/${MY_P}.tar.gz - https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz - https://invisible-mirror.net/archives/${PN}/${MY_P}.tar.gz - verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig ) -" - -GENTOO_PATCH_DEV=sam -GENTOO_PATCH_PV=6.5_p20250802 -GENTOO_PATCH_NAME=${PN}-${GENTOO_PATCH_PV}-patches - -# Populated below in a loop. Do not add patches manually here. -UPSTREAM_PATCHES=() - -if [[ ${PV} == *_p* ]] ; then - # Sometimes, after releases, there's no megapatch available yet. - # - # From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/: - # - # "At times (generally to mark a relatively stable point), I create a rollup - # patch, which consists of all changes from the release through the current date." - # - # Also, from https://lists.gnu.org/archive/html/bug-ncurses/2019-08/msg00039.html, - # the patches are considered to be acceptable to use after some testing. They - # are both for development but also bug fixes. - # - # This array should contain a list of all the snapshots since the last - # release if there's no megapatch available yet. - PATCH_DATES=( - 20240504 - 20240511 - 20240518 - 20240519 - 20240525 - 20240601 - 20240608 - 20240615 - 20240622 - 20240629 - 20240706 - 20240713 - 20240720 - 20240727 - 20240810 - 20240817 - 20240824 - 20240831 - 20240914 - 20240922 - 20240928 - 20241006 - 20241019 - 20241026 - 20241102 - 20241109 - 20241123 - 20241130 - 20241207 - 20241214 - 20241221 - 20241228 - 20250104 - 20250111 - 20250118 - 20250125 - 20250201 - 20250208 - 20250215 - 20250216 - 20250222 - 20250301 - 20250308 - 20250315 - 20250322 - 20250329 - 20250405 - 20250412 - 20250419 - 20250426 - 20250503 - 20250510 - 20250517 - 20250524 - 20250531 - 20250614 - 20250621 - 20250628 - 20250705 - 20250712 - 20250720 - 20250726 - - # Latest patch is just _pN = $(ver_cut 4) - $(ver_cut 4) - ) - - if [[ -z ${PATCH_DATES[@]} ]] ; then - SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz" - SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz.asc" - - # If we have a rollup patch, use that instead of the individual ones. - UPSTREAM_PATCHES+=( patch.sh ) - else - # We use a mirror as well because we've had reports of 403 forbidden for some users. - upstream_url_base="https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-" - upstream_m_url_base="https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-" - - # Prefix each date with the upstream location (https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}) - mangled_patches=( "${PATCH_DATES[@]/#/${upstream_url_base}}" ) - # Suffix each with .patch.gz - mangled_patches=( "${mangled_patches[@]/%/.patch.gz}" ) - mangled_patches_sig=( "${mangled_patches[@]/%/.asc}" ) - # Repeat for .patch.gz.asc for verify-sig - SRC_URI+=" ${mangled_patches[@]}" - SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]} )" - - # For all of the URLs, chuck in invisible-island.net too: - SRC_URI+=" ${mangled_patches[@]/${upstream_url_base}/${upstream_m_url_base}}" - SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]/${upstream_url_base}/${upstream_m_url_base}} )" - - UPSTREAM_PATCHES=( "${PATCH_DATES[@]/%/.patch}" ) - - unset upstream_url_base upstream_m_url_base mangled_patches mangled_patches_sig - fi -fi - -SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${GENTOO_PATCH_NAME}.tar.xz" -S="${WORKDIR}/${MY_P}" - -LICENSE="MIT" -# The subslot reflects the SONAME. -SLOT="0/6" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="ada +cxx debug doc gpm minimal profile split-usr +stack-realign static-libs test tinfo trace" -# In 6.5_p20250118, the C++ examples fail to link, but there's no automated -# testsuite anyway. Controlling building examples isn't really what USE=test -# is for. Just restrict them. -RESTRICT="!test? ( test ) test" - -# TODO: ncurses allows (and we take advantage of this, even) passing -# the SONAME for dlopen() use, so only the header is needed at build time. -# Maybe we should bundle a copy of gpm.h so we can move gpm to PDEPEND -# which would be far nicer UX-wise. -DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )" -# Block the older ncurses that installed all files w/SLOT=5, bug #557472 -RDEPEND=" - ${DEPEND} - !<=sys-libs/ncurses-5.9-r4:5 - !& /dev/null \ - || lbuildflags="${dbuildflags}" - - # We can't re-use the multilib BUILD_DIR because we run outside of it. - BUILD_DIR="${WORKDIR}" \ - CC=${BUILD_CC} \ - CXX=${BUILD_CXX} \ - CPP=${BUILD_CPP} \ - CHOST=${CBUILD} \ - CFLAGS=${BUILD_CFLAGS} \ - CXXFLAGS=${BUILD_CXXFLAGS} \ - CPPFLAGS=${BUILD_CPPFLAGS} \ - LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \ - do_configure cross --without-shared --with-normal --with-progs --without-ada - fi - multilib-minimal_src_configure -} - -multilib_src_configure() { - if [[ ${ABI} == x86 ]] ; then - # For compatibility with older binaries at slight performance cost. - # bug #616402 - use stack-realign && append-flags -mstackrealign - fi - - local t - for t in "${NCURSES_TARGETS[@]}" ; do - do_configure "${t}" - done -} - -do_configure() { - local target=$1 - shift - - mkdir "${BUILD_DIR}/${target}" || die - cd "${BUILD_DIR}/${target}" || die - - local conf=( - # We need the basic terminfo files in /etc, bug #37026. We will - # add '--with-terminfo-dirs' and then populate /etc/terminfo in - # src_install() ... - --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo" - - # Enable installation of .pc files. - --enable-pc-files - # This path is used to control where the .pc files are installed. - --with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig" - - # Now the rest of the various standard flags. - --with-shared - --enable-fvisibility - # (Originally disabled until bug #245417 is sorted out, but now - # just keeping it off for good, given nobody needed it until now - # (2022) and we're trying to phase out bdb.) - --without-hashed-db - $(use_with ada) - $(use_with cxx) - $(use_with cxx cxx-binding) - --with-cxx-shared - $(use_with debug) - $(use_with profile) - # The configure script uses ldd to parse the linked output which - # is flaky for cross-compiling/multilib/ldd versions/etc... - $(use_with gpm gpm libgpm.so.1) - - # bug #930806 - --disable-setuid-environ - # TODO: Maybe do these for USE=hardened - #--disable-root-access - #--disable-root-environ - - --disable-termcap - --enable-symlinks - --with-manpage-format=normal - --enable-const - --enable-colorfgbg - --enable-hard-tabs - --enable-echo - $(use_enable !ada warnings) - $(use_enable debug assertions) - $(use_enable !debug leaks) - $(use_enable debug expanded) - $(use_enable !debug macros) - $(multilib_native_with progs) - $(use_with test tests) - $(use_with trace) - $(use_with tinfo termlib) - --disable-stripping - --disable-pkg-ldflags - ) - - case ${CHOST} in - *-mingw32*) - conf+=( --enable-term-driver ) - ;; - *) - conf+=( --disable-term-driver ) - ;; - esac - - if [[ ${target} == ncurses*w ]] ; then - conf+=( --enable-widec ) - else - conf+=( --disable-widec ) - fi - if [[ ${target} == ncursest* ]] ; then - conf+=( --with-{pthread,reentrant} ) - else - conf+=( --without-{pthread,reentrant} ) - fi - - # Make sure each variant goes in a unique location. - if [[ ${target} == "ncurses" ]] ; then - # "ncurses" variant goes into "${EPREFIX}"/usr/include - # It is needed on Prefix because the configure script appends - # "ncurses" to "${prefix}/include" if "${prefix}" is not /usr. - conf+=( --enable-overwrite ) - else - conf+=( --includedir="${EPREFIX}"/usr/include/${target} ) - fi - # See comments in src_configure. - if [[ ${target} != "cross" ]] ; then - local cross_path="${WORKDIR}/cross" - [[ -d ${cross_path} ]] && export TIC="${cross_path}/progs/tic" - fi - - ECONF_SOURCE="${S}" econf "${conf[@]}" "$@" -} - -src_compile() { - # See comments in src_configure. - if ! has_version -b "~sys-libs/${P}:0" ; then - BUILD_DIR="${WORKDIR}" do_compile cross -C progs tic$(get_exeext) - fi - - multilib-minimal_src_compile -} - -multilib_src_compile() { - local t - for t in "${NCURSES_TARGETS[@]}" ; do - do_compile "${t}" - done -} - -do_compile() { - local target=$1 - shift - - cd "${BUILD_DIR}/${target}" || die - - # A little hack to fix parallel builds ... they break when - # generating sources so if we generate the sources first (in - # non-parallel), we can then build the rest of the package - # in parallel. This is not really a perf hit since the source - # generation is quite small. - emake -j1 sources - - # For some reason, sources depends on pc-files which depends on - # compiled libraries which depends on sources which ... - # Manually delete the pc-files file so the install step will - # create the .pc files we want. - rm -f misc/pc-files || die - emake "$@" -} - -multilib_src_install() { - local target - for target in "${NCURSES_TARGETS[@]}" ; do - emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install - done - - # Move main libraries into /. - if multilib_is_native_abi ; then - gen_usr_ldscript -a \ - "${NCURSES_TARGETS[@]}" \ - $(usex tinfo 'tinfow tinfo' '') - fi - - # Don't delete '*.dll.a', needed for linking, bug #631468 - if ! use static-libs; then - find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die - fi - - # Build fails to create this ... - # -FIXME- - # Ugly hackaround for riscv having two parts libdir (bug #689240) - # Replace this hack with an official solution once we have one... - # -FIXME- - dosym $(sed 's@[^/]\+@..@g' <<< $(get_libdir))/share/terminfo \ - /usr/$(get_libdir)/terminfo - - # Remove obsolete libcurses symlink that is created by the build - # system. Technically, this could be also achieved - # via --disable-overwrite but it also moves headers implicitly, - # and we do not want to do this yet. - # bug #836696 - rm "${ED}"/usr/$(get_libdir)/libcurses* || die -} - -multilib_src_install_all() { - local terms=( - # Dumb/simple values that show up when using the in-kernel VT. - ansi console dumb linux - vt{52,100,102,200,220} - # [u]rxvt users used to be pretty common. Probably should drop this - # since upstream is dead and people are moving away from it. - rxvt{,-unicode}{,-256color} - # xterm users are common, as is terminals re-using/spoofing it. - xterm xterm-{,256}color - # screen is common (and reused by tmux). - screen{,-256color} - screen.xterm-256color - ) - if use split-usr ; then - local x - # We need the basic terminfo files in /etc for embedded/recovery, bug #37026 - einfo "Installing basic terminfo files in /etc..." - for x in "${terms[@]}"; do - local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null) - local basedir=$(basename "$(dirname "${termfile}")") - - if [[ -n ${termfile} ]] ; then - dodir "/etc/terminfo/${basedir}" - mv "${termfile}" "${ED}/etc/terminfo/${basedir}/" || die - dosym "../../../../etc/terminfo/${basedir}/${x}" \ - "/usr/share/terminfo/${basedir}/${x}" - fi - done - - echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" | newenvd - 50ncurses - - use minimal && rm -r "${ED}"/usr/share/terminfo* - # Because ncurses5-config --terminfo returns the directory we keep it - # bug #245374 - keepdir /usr/share/terminfo - elif use minimal ; then - # Keep only the basic terminfo files - find "${ED}"/usr/share/terminfo/ \ - \( -type f -o -type l \) ${terms[*]/#/! -name } -delete , \ - -type d -empty -delete || die - fi - - cd "${S}" || die - dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc - if use doc ; then - docinto html - dodoc -r doc/html/ - fi -} - -pkg_preinst() { - preserve_old_lib /$(get_libdir)/libncurses.so.5 - preserve_old_lib /$(get_libdir)/libncursesw.so.5 -} - -pkg_postinst() { - preserve_old_lib_notify /$(get_libdir)/libncurses.so.5 - preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5 -} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20251220.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20251220.ebuild index 975b4996025..1ed1962ff72 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20251220.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20251220.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -165,7 +165,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="MIT" # The subslot reflects the SONAME. SLOT="0/6" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="ada +cxx debug doc gpm minimal profile split-usr +stack-realign static-libs test tinfo trace" # In 6.5_p20250118, the C++ examples fail to link, but there's no automated # testsuite anyway. Controlling building examples isn't really what USE=test diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.6_p20260411.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.6_p20260411.ebuild new file mode 100644 index 00000000000..a5b83840c44 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.6_p20260411.ebuild @@ -0,0 +1,451 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# sys-libs/ncurses-compat can be bumped with sys-libs/ncurses as upstream +# provide a configure option for the ABI version. + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/thomasdickey.asc +inherit flag-o-matic toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript verify-sig + +MY_PV="${PV:0:3}" +MY_P="${PN}-${MY_PV}" +DESCRIPTION="Console display library" +HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/" +# Keep invisible-mirror.net here as some users reported 403 forbidden with invisible-island.net +SRC_URI=" + mirror://gnu/ncurses/${MY_P}.tar.gz + https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz + https://invisible-mirror.net/archives/${PN}/${MY_P}.tar.gz + verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig ) +" + +GENTOO_PATCH_DEV=sam +GENTOO_PATCH_PV=6.6_p20260411 +GENTOO_PATCH_NAME=${PN}-${GENTOO_PATCH_PV}-patches + +# Populated below in a loop. Do not add patches manually here. +UPSTREAM_PATCHES=() + +if [[ ${PV} == *_p* ]] ; then + # Sometimes, after releases, there's no megapatch available yet. + # + # From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/: + # + # "At times (generally to mark a relatively stable point), I create a rollup + # patch, which consists of all changes from the release through the current date." + # + # Also, from https://lists.gnu.org/archive/html/bug-ncurses/2019-08/msg00039.html, + # the patches are considered to be acceptable to use after some testing. They + # are both for development but also bug fixes. + # + # This array should contain a list of all the snapshots since the last + # release if there's no megapatch available yet. + PATCH_DATES=( + 20251231 + 20260103 + 20260117 + 20260124 + 20260131 + 20260207 + 20260214 + 20260221 + 20260301 + 20260307 + 20260314 + 20260321 + 20260328 + 20260404 + + # Latest patch is just _pN = $(ver_cut 4) + $(ver_cut 4) + ) + + if [[ -z ${PATCH_DATES[@]} ]] ; then + SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz" + SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz.asc" + + # If we have a rollup patch, use that instead of the individual ones. + UPSTREAM_PATCHES+=( patch.sh ) + else + # We use a mirror as well because we've had reports of 403 forbidden for some users. + upstream_url_base="https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-" + upstream_m_url_base="https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-" + + # Prefix each date with the upstream location (https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}) + mangled_patches=( "${PATCH_DATES[@]/#/${upstream_url_base}}" ) + # Suffix each with .patch.gz + mangled_patches=( "${mangled_patches[@]/%/.patch.gz}" ) + mangled_patches_sig=( "${mangled_patches[@]/%/.asc}" ) + # Repeat for .patch.gz.asc for verify-sig + SRC_URI+=" ${mangled_patches[@]}" + SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]} )" + + # For all of the URLs, chuck in invisible-island.net too: + SRC_URI+=" ${mangled_patches[@]/${upstream_url_base}/${upstream_m_url_base}}" + SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]/${upstream_url_base}/${upstream_m_url_base}} )" + + UPSTREAM_PATCHES=( "${PATCH_DATES[@]/%/.patch}" ) + + unset upstream_url_base upstream_m_url_base mangled_patches mangled_patches_sig + fi +fi + +SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${GENTOO_PATCH_NAME}.tar.xz" +S="${WORKDIR}/${MY_P}" + +LICENSE="MIT" +# The subslot reflects the SONAME. +SLOT="0/6" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="ada +cxx debug doc gpm minimal profile split-usr +stack-realign static-libs test tinfo trace" +# In 6.5_p20250118, the C++ examples fail to link, but there's no automated +# testsuite anyway. Controlling building examples isn't really what USE=test +# is for. Just restrict them. Still seems to fail after +# https://lists.gnu.org/archive/html/bug-ncurses/2026-03/msg00013.html too. +RESTRICT="!test? ( test ) test" + +# TODO: ncurses allows (and we take advantage of this, even) passing +# the SONAME for dlopen() use, so only the header is needed at build time. +# Maybe we should bundle a copy of gpm.h so we can move gpm to PDEPEND +# which would be far nicer UX-wise. +DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )" +# Block the older ncurses that installed all files w/SLOT=5, bug #557472 +RDEPEND=" + ${DEPEND} + !<=sys-libs/ncurses-5.9-r4:5 + !& /dev/null \ + || lbuildflags="${dbuildflags}" + + # We can't re-use the multilib BUILD_DIR because we run outside of it. + BUILD_DIR="${WORKDIR}" \ + CC=${BUILD_CC} \ + CXX=${BUILD_CXX} \ + CPP=${BUILD_CPP} \ + CHOST=${CBUILD} \ + CFLAGS=${BUILD_CFLAGS} \ + CXXFLAGS=${BUILD_CXXFLAGS} \ + CPPFLAGS=${BUILD_CPPFLAGS} \ + LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \ + do_configure cross --without-shared --with-normal --with-progs --without-ada + fi + multilib-minimal_src_configure +} + +multilib_src_configure() { + if [[ ${ABI} == x86 ]] ; then + # For compatibility with older binaries at slight performance cost. + # bug #616402 + use stack-realign && append-flags -mstackrealign + fi + + local t + for t in "${NCURSES_TARGETS[@]}" ; do + do_configure "${t}" + done +} + +do_configure() { + local target=$1 + shift + + mkdir "${BUILD_DIR}/${target}" || die + cd "${BUILD_DIR}/${target}" || die + + local conf=( + # We need the basic terminfo files in /etc, bug #37026. We will + # add '--with-terminfo-dirs' and then populate /etc/terminfo in + # src_install() ... + --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo" + + # Enable installation of .pc files. + --enable-pc-files + # This path is used to control where the .pc files are installed. + --with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig" + + # Now the rest of the various standard flags. + --with-shared + --enable-fvisibility + # (Originally disabled until bug #245417 is sorted out, but now + # just keeping it off for good, given nobody needed it until now + # (2022) and we're trying to phase out bdb.) + --without-hashed-db + $(use_with ada) + $(use_with cxx) + $(use_with cxx cxx-binding) + --with-cxx-shared + $(use_with debug) + $(use_with profile) + # The configure script uses ldd to parse the linked output which + # is flaky for cross-compiling/multilib/ldd versions/etc... + $(use_with gpm gpm libgpm.so.1) + + # bug #930806 + --disable-setuid-environ + # TODO: Maybe do these for USE=hardened + #--disable-root-access + #--disable-root-environ + + --disable-termcap + --enable-symlinks + --with-manpage-format=normal + --enable-const + --enable-colorfgbg + --enable-hard-tabs + --enable-echo + $(use_enable !ada warnings) + $(use_enable debug assertions) + $(use_enable !debug leaks) + $(use_enable debug expanded) + $(use_enable !debug macros) + $(multilib_native_with progs) + $(use_with test tests) + $(use_with trace) + $(use_with tinfo termlib) + --disable-stripping + --disable-pkg-ldflags + ) + + case ${CHOST} in + *-mingw32*) + conf+=( --enable-term-driver ) + ;; + *) + conf+=( --disable-term-driver ) + ;; + esac + + if [[ ${target} == ncurses*w ]] ; then + conf+=( --enable-widec ) + else + conf+=( --disable-widec ) + fi + if [[ ${target} == ncursest* ]] ; then + conf+=( --with-{pthread,reentrant} ) + else + conf+=( --without-{pthread,reentrant} ) + fi + + # Make sure each variant goes in a unique location. + if [[ ${target} == "ncurses" ]] ; then + # "ncurses" variant goes into "${EPREFIX}"/usr/include + # It is needed on Prefix because the configure script appends + # "ncurses" to "${prefix}/include" if "${prefix}" is not /usr. + conf+=( --enable-overwrite ) + else + conf+=( --includedir="${EPREFIX}"/usr/include/${target} ) + fi + # See comments in src_configure. + if [[ ${target} != "cross" ]] ; then + local cross_path="${WORKDIR}/cross" + [[ -d ${cross_path} ]] && export TIC="${cross_path}/progs/tic" + fi + + ECONF_SOURCE="${S}" econf "${conf[@]}" "$@" +} + +src_compile() { + # See comments in src_configure. + if ! has_version -b "~sys-libs/${P}:0" ; then + BUILD_DIR="${WORKDIR}" do_compile cross -C progs tic$(get_exeext) + fi + + multilib-minimal_src_compile +} + +multilib_src_compile() { + local t + for t in "${NCURSES_TARGETS[@]}" ; do + do_compile "${t}" + done +} + +do_compile() { + local target=$1 + shift + + cd "${BUILD_DIR}/${target}" || die + + # A little hack to fix parallel builds ... they break when + # generating sources so if we generate the sources first (in + # non-parallel), we can then build the rest of the package + # in parallel. This is not really a perf hit since the source + # generation is quite small. + emake -j1 sources + + # For some reason, sources depends on pc-files which depends on + # compiled libraries which depends on sources which ... + # Manually delete the pc-files file so the install step will + # create the .pc files we want. + rm -f misc/pc-files || die + emake "$@" +} + +multilib_src_install() { + local target + for target in "${NCURSES_TARGETS[@]}" ; do + emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install + done + + # Move main libraries into /. + if multilib_is_native_abi ; then + gen_usr_ldscript -a \ + "${NCURSES_TARGETS[@]}" \ + $(usex tinfo 'tinfow tinfo' '') + fi + + # Don't delete '*.dll.a', needed for linking, bug #631468 + if ! use static-libs; then + find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die + fi + + # Build fails to create this ... + # -FIXME- + # Ugly hackaround for riscv having two parts libdir (bug #689240) + # Replace this hack with an official solution once we have one... + # -FIXME- + dosym $(sed 's@[^/]\+@..@g' <<< $(get_libdir))/share/terminfo \ + /usr/$(get_libdir)/terminfo + + # Remove obsolete libcurses symlink that is created by the build + # system. Technically, this could be also achieved + # via --disable-overwrite but it also moves headers implicitly, + # and we do not want to do this yet. + # bug #836696 + rm "${ED}"/usr/$(get_libdir)/libcurses* || die +} + +multilib_src_install_all() { + local terms=( + # Dumb/simple values that show up when using the in-kernel VT. + ansi console dumb linux + vt{52,100,102,200,220} + # [u]rxvt users used to be pretty common. Probably should drop this + # since upstream is dead and people are moving away from it. + rxvt{,-unicode}{,-256color} + # xterm users are common, as is terminals re-using/spoofing it. + xterm xterm-{,256}color + # screen is common (and reused by tmux). + screen{,-256color} + screen.xterm-256color + ) + if use split-usr ; then + local x + # We need the basic terminfo files in /etc for embedded/recovery, bug #37026 + einfo "Installing basic terminfo files in /etc..." + for x in "${terms[@]}"; do + local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null) + local basedir=$(basename "$(dirname "${termfile}")") + + if [[ -n ${termfile} ]] ; then + dodir "/etc/terminfo/${basedir}" + mv "${termfile}" "${ED}/etc/terminfo/${basedir}/" || die + dosym "../../../../etc/terminfo/${basedir}/${x}" \ + "/usr/share/terminfo/${basedir}/${x}" + fi + done + + echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" | newenvd - 50ncurses + + use minimal && rm -r "${ED}"/usr/share/terminfo* + # Because ncurses5-config --terminfo returns the directory we keep it + # bug #245374 + keepdir /usr/share/terminfo + elif use minimal ; then + # Keep only the basic terminfo files + find "${ED}"/usr/share/terminfo/ \ + \( -type f -o -type l \) ${terms[*]/#/! -name } -delete , \ + -type d -empty -delete || die + fi + + cd "${S}" || die + dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc + if use doc ; then + docinto html + dodoc -r doc/html/ + fi +} + +pkg_preinst() { + preserve_old_lib /$(get_libdir)/libncurses.so.5 + preserve_old_lib /$(get_libdir)/libncursesw.so.5 +} + +pkg_postinst() { + preserve_old_lib_notify /$(get_libdir)/libncurses.so.5 + preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5 +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/Manifest index dc5bb175a11..c44605ec910 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/Manifest @@ -1,4 +1,2 @@ -DIST tzdb-2025a.tar.lz 548434 BLAKE2B cccd37ca71bfde7e56ed5138be5a610ec9d5ca59658b90e5e2a10af9221ed6d09b24b106bef46b04bbc97bff74b6e97a1f800c078a523aa32c13416a33264df2 SHA512 1e8c4e141158d63ca5c39babc9d18c32df14e2e59bc7649a7fed8c3e577f7b175bafa43883cf351139ff198515f5f8c22b1418e2ac7efb7f837faa8f61d2574d -DIST tzdb-2025b.tar.lz 549879 BLAKE2B 6930d475e7fa2c29d7c6c9a1d3c8a8e4ec80745d3f8d7be6b74ae1fc1ba06fbe362e5ff96f6e3b6faa4e15240973ec4162a7f764cddf451029776f443966824c SHA512 4f4afca86645ca5564a9d7d3ddc36e6b07c15c1b87cd4edbbcae72c6be4e6154e4ad1966407a7081237550301f1093af53dd8a486effb95f7cf3e5721db47c8f -DIST tzdb-2025c.tar.lz 556440 BLAKE2B 21524cbbde446b7ea2a4536765795f4eb0f180f88fe1e1857168ae0d59ccd1c0e459b1853ba6ff9c6444514dfa22c04d367c1b3039e1bbd40779a80d3e1bb955 SHA512 6fa233d6a884acd24b52c44b2eecf683f9403f44b39dcbe85b1ec92fc11f4daf6ee5143f05332faf9258b8bd8f7ca7d4882e19b1e3d892b4761be43fd4f39d51 DIST tzdb-2026a.tar.lz 559308 BLAKE2B aaa57fb5301dc661d39d3614493d156f9da2066bb6544c0c58e3e267d21658fdcb70412fe10bf14c3d92bdf01deee490fb2a86b6aaf902f7fec9690f863e0860 SHA512 1824fc2e198a449ebaa41e6c679a494c486b848f13fe8f18f948fde0533e99f5f01e7e7298e257c565838d24ec743e824f402887abdf525d1ce578a714c71414 +DIST tzdb-2026b.tar.lz 561562 BLAKE2B d349cf4978a4b027556e6061c51f2120c2e08d31c68418b675bc973ad86a4c6b1ff885784aad6067bbc22b676f489d620f24e6abf8daf68ffa553be271bf6e85 SHA512 5ec7f74f14cd2c70a0730e3690e82bd0ba889ac26c96397c16aa08005473c2c86feb47958b52e0301810c8eb908e6d8faf998ffae75b2337a912cc9e52c0f9e9 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/timezone-data-2025a-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/timezone-data-2025a-r1.ebuild deleted file mode 100644 index 2cd1931e4ef..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/timezone-data-2025a-r1.ebuild +++ /dev/null @@ -1,169 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit toolchain-funcs flag-o-matic unpacker - -DESCRIPTION="Timezone data (/usr/share/zoneinfo) and utilities (tzselect/zic/zdump)" -HOMEPAGE="https://www.iana.org/time-zones" -SRC_URI=" - https://data.iana.org/time-zones/releases/tzdb-${PV}.tar.lz -" -S="${WORKDIR}"/tzdb-${PV} - -LICENSE="BSD public-domain" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="nls leaps-timezone zic-slim" - -DEPEND="nls? ( virtual/libintl )" -RDEPEND=" - ${DEPEND} - !sys-libs/glibc[vanilla(+)] -" -BDEPEND="$(unpacker_src_uri_depends)" - -src_prepare() { - default - - if tc-is-cross-compiler ; then - cp -pR "${S}" "${S}"-native || die - fi -} - -src_configure() { - tc-export CC - - # bug #471102 - append-lfs-flags - - if use elibc_Darwin ; then - # bug #138251 - append-cppflags -DSTD_INSPIRED - fi - - append-cppflags -DHAVE_GETTEXT=$(usex nls 1 0) -DTZ_DOMAIN='\"libc\"' - - # Upstream default is 'slim', but it breaks quite a few programs - # that parse /etc/localtime directly: bug #747538. - append-cppflags -DZIC_BLOAT_DEFAULT='\"'$(usex zic-slim slim fat)'\"' - - LDLIBS="" - if use nls ; then - # See if an external libintl is available. bug #154181, bug #578424 - local c="${T}/test" - echo 'int main(){}' > "${c}.c" || die - if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} "${c}.c" -o "${c}" -lintl 2>/dev/null ; then - LDLIBS+=" -lintl" - fi - fi -} - -_emake() { - emake \ - REDO=$(usex leaps-timezone posix_right posix_only) \ - TOPDIR="${EPREFIX}" \ - ZICDIR='$(TOPDIR)/usr/bin' \ - "$@" -} - -src_compile() { - tc-export AR CC RANLIB - - _emake \ - CFLAGS="${CFLAGS} -std=gnu99 ${CPPFLAGS}" \ - LDFLAGS="${LDFLAGS}" \ - LDLIBS="${LDLIBS}" - - if tc-is-cross-compiler ; then - _emake -C "${S}"-native \ - AR="$(tc-getBUILD_AR)" \ - CC="$(tc-getBUILD_CC)" \ - RANLIB="$(tc-getBUILD_RANLIB)" \ - CFLAGS="${BUILD_CFLAGS} ${BUILD_CPPFLAGS}" \ - LDFLAGS="${BUILD_LDFLAGS}" \ - LDLIBS="${LDLIBS}" \ - zic - fi -} - -src_test() { - # CURL is used for extended/web based tests. Punt on them. - emake check CURL=: -} - -src_install() { - local zic="" - tc-is-cross-compiler && zic="zic=${S}-native/zic" - _emake install ${zic} DESTDIR="${D}" LIBDIR="/nukeit" - rm -rf "${D}/nukeit" "${ED}/etc" || die - - insinto /usr/share/zoneinfo - doins "${S}"/leap-seconds.list - - # Delete man pages installed by man-pages package. - rm "${ED}"/usr/share/man/man5/tzfile.5* "${ED}"/usr/share/man/man8/{tzselect,zdump,zic}.8 || die - dodoc CONTRIBUTING README NEWS *.html -} - -configure_tz_data() { - # Make sure the /etc/localtime file does not get stale, bug #127899 - local tz src="${EROOT}/etc/timezone" etc_lt="${EROOT}/etc/localtime" - - # If it's a symlink, assume the user knows what they're doing and - # they're managing it themselves, bug #511474 - if [[ -L "${etc_lt}" ]] ; then - einfo "Skipping update: ${etc_lt} is a symlink." - if [[ -e ${src} ]]; then - einfo "Removing ${src}." - rm "${src}" - fi - return 0 - fi - - if [[ ! -e ${src} ]] ; then - einfo "Skipping update: ${src} does not exist." - return 0 - fi - - tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}") - - if [[ -z ${tz} ]]; then - einfo "Skipping update: ${src} is empty." - return 0 - fi - - local tzpath="${EROOT}/usr/share/zoneinfo/${tz}" - - if [[ ! -e ${tzpath} ]]; then - ewarn "The timezone specified in ${src} is not valid!" - return 1 - fi - - if [[ -f ${etc_lt} ]]; then - # If a regular file already exists, copy over it. - ewarn "Found a regular file at ${etc_lt}." - ewarn "Some software may expect a symlink instead." - ewarn "Convert it to a symlink by removing the file and running:" - ewarn " emerge --config sys-libs/timezone-data" - einfo "Copying ${tzpath} to ${etc_lt}." - cp -f "${tzpath}" "${etc_lt}" - else - # Otherwise, create a symlink and remove the timezone file. - tzpath="../usr/share/zoneinfo/${tz}" - einfo "Linking ${tzpath} at ${etc_lt}." - if ln -snf "${tzpath}" "${etc_lt}"; then - einfo "Removing ${src}." - rm -f "${src}" - fi - fi -} - -pkg_config() { - configure_tz_data -} - -pkg_postinst() { - configure_tz_data -} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/timezone-data-2025b.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/timezone-data-2025b.ebuild deleted file mode 100644 index 3315c169fce..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/timezone-data-2025b.ebuild +++ /dev/null @@ -1,169 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit toolchain-funcs flag-o-matic unpacker - -DESCRIPTION="Timezone data (/usr/share/zoneinfo) and utilities (tzselect/zic/zdump)" -HOMEPAGE="https://www.iana.org/time-zones" -SRC_URI=" - https://data.iana.org/time-zones/releases/tzdb-${PV}.tar.lz -" -S="${WORKDIR}"/tzdb-${PV} - -LICENSE="BSD public-domain" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="nls leaps-timezone zic-slim" - -DEPEND="nls? ( virtual/libintl )" -RDEPEND=" - ${DEPEND} - !sys-libs/glibc[vanilla(+)] -" -BDEPEND="$(unpacker_src_uri_depends)" - -src_prepare() { - default - - if tc-is-cross-compiler ; then - cp -pR "${S}" "${S}"-native || die - fi -} - -src_configure() { - tc-export CC - - # bug #471102 - append-lfs-flags - - if use elibc_Darwin ; then - # bug #138251 - append-cppflags -DSTD_INSPIRED - fi - - append-cppflags -DHAVE_GETTEXT=$(usex nls 1 0) -DTZ_DOMAIN='\"libc\"' - - # Upstream default is 'slim', but it breaks quite a few programs, - # that parse /etc/localtime directly: bug #747538. - append-cppflags -DZIC_BLOAT_DEFAULT='\"'$(usex zic-slim slim fat)'\"' - - LDLIBS="" - if use nls ; then - # See if an external libintl is available. bug #154181, bug #578424 - local c="${T}/test" - echo 'int main(){}' > "${c}.c" || die - if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} "${c}.c" -o "${c}" -lintl 2>/dev/null ; then - LDLIBS+=" -lintl" - fi - fi -} - -_emake() { - emake \ - REDO=$(usex leaps-timezone posix_right posix_only) \ - TOPDIR="${EPREFIX}" \ - ZICDIR='$(TOPDIR)/usr/bin' \ - "$@" -} - -src_compile() { - tc-export AR CC RANLIB - - _emake \ - CFLAGS="${CFLAGS} -std=gnu99 ${CPPFLAGS}" \ - LDFLAGS="${LDFLAGS}" \ - LDLIBS="${LDLIBS}" - - if tc-is-cross-compiler ; then - _emake -C "${S}"-native \ - AR="$(tc-getBUILD_AR)" \ - CC="$(tc-getBUILD_CC)" \ - RANLIB="$(tc-getBUILD_RANLIB)" \ - CFLAGS="${BUILD_CFLAGS} ${BUILD_CPPFLAGS}" \ - LDFLAGS="${BUILD_LDFLAGS}" \ - LDLIBS="${LDLIBS}" \ - zic - fi -} - -src_test() { - # CURL is used for extended/web based tests. Punt on them. - emake check CURL=: -} - -src_install() { - local zic="" - tc-is-cross-compiler && zic="zic=${S}-native/zic" - _emake install ${zic} DESTDIR="${D}" LIBDIR="/nukeit" - rm -rf "${D}/nukeit" "${ED}/etc" || die - - insinto /usr/share/zoneinfo - doins "${S}"/leap-seconds.list - - # Delete man pages installed by man-pages package. - rm "${ED}"/usr/share/man/man5/tzfile.5* "${ED}"/usr/share/man/man8/{tzselect,zdump,zic}.8 || die - dodoc CONTRIBUTING README NEWS *.html -} - -configure_tz_data() { - # Make sure the /etc/localtime file does not get stale, bug #127899 - local tz src="${EROOT}/etc/timezone" etc_lt="${EROOT}/etc/localtime" - - # If it's a symlink, assume the user knows what they're doing and - # they're managing it themselves, bug #511474 - if [[ -L "${etc_lt}" ]] ; then - einfo "Skipping update: ${etc_lt} is a symlink." - if [[ -e ${src} ]]; then - einfo "Removing ${src}." - rm "${src}" - fi - return 0 - fi - - if [[ ! -e ${src} ]] ; then - einfo "Skipping update: ${src} does not exist." - return 0 - fi - - tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}") - - if [[ -z ${tz} ]]; then - einfo "Skipping update: ${src} is empty." - return 0 - fi - - local tzpath="${EROOT}/usr/share/zoneinfo/${tz}" - - if [[ ! -e ${tzpath} ]]; then - ewarn "The timezone specified in ${src} is not valid!" - return 1 - fi - - if [[ -f ${etc_lt} ]]; then - # If a regular file already exists, copy over it. - ewarn "Found a regular file at ${etc_lt}." - ewarn "Some software may expect a symlink instead." - ewarn "Convert it to a symlink by removing the file and running:" - ewarn " emerge --config sys-libs/timezone-data" - einfo "Copying ${tzpath} to ${etc_lt}." - cp -f "${tzpath}" "${etc_lt}" - else - # Otherwise, create a symlink and remove the timezone file. - tzpath="../usr/share/zoneinfo/${tz}" - einfo "Linking ${tzpath} at ${etc_lt}." - if ln -snf "${tzpath}" "${etc_lt}"; then - einfo "Removing ${src}." - rm -f "${src}" - fi - fi -} - -pkg_config() { - configure_tz_data -} - -pkg_postinst() { - configure_tz_data -} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/timezone-data-2025c.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/timezone-data-2025c.ebuild deleted file mode 100644 index 92ec75a9da5..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/timezone-data-2025c.ebuild +++ /dev/null @@ -1,169 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit toolchain-funcs flag-o-matic unpacker - -DESCRIPTION="Timezone data (/usr/share/zoneinfo) and utilities (tzselect/zic/zdump)" -HOMEPAGE="https://www.iana.org/time-zones" -SRC_URI=" - https://data.iana.org/time-zones/releases/tzdb-${PV}.tar.lz -" -S="${WORKDIR}"/tzdb-${PV} - -LICENSE="BSD public-domain" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="nls leaps-timezone zic-slim" - -DEPEND="nls? ( virtual/libintl )" -RDEPEND=" - ${DEPEND} - !sys-libs/glibc[vanilla(+)] -" -BDEPEND="$(unpacker_src_uri_depends)" - -src_prepare() { - default - - if tc-is-cross-compiler ; then - cp -pR "${S}" "${S}"-native || die - fi -} - -src_configure() { - tc-export CC - - # bug #471102 - append-lfs-flags - - if use elibc_Darwin ; then - # bug #138251 - append-cppflags -DSTD_INSPIRED - fi - - append-cppflags -DHAVE_GETTEXT=$(usex nls 1 0) -DTZ_DOMAIN='\"libc\"' - - # Upstream default is 'slim', but it breaks quite a few programs, - # that parse /etc/localtime directly: bug #747538. - append-cppflags -DZIC_BLOAT_DEFAULT='\"'$(usex zic-slim slim fat)'\"' - - LDLIBS="" - if use nls ; then - # See if an external libintl is available. bug #154181, bug #578424 - local c="${T}/test" - echo 'int main(){}' > "${c}.c" || die - if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} "${c}.c" -o "${c}" -lintl 2>/dev/null ; then - LDLIBS+=" -lintl" - fi - fi -} - -_emake() { - emake \ - REDO=$(usex leaps-timezone posix_right posix_only) \ - TOPDIR="${EPREFIX}" \ - ZICDIR='$(TOPDIR)/usr/bin' \ - "$@" -} - -src_compile() { - tc-export AR CC RANLIB - - _emake \ - CFLAGS="${CFLAGS} -std=gnu99 ${CPPFLAGS}" \ - LDFLAGS="${LDFLAGS}" \ - LDLIBS="${LDLIBS}" - - if tc-is-cross-compiler ; then - _emake -C "${S}"-native \ - AR="$(tc-getBUILD_AR)" \ - CC="$(tc-getBUILD_CC)" \ - RANLIB="$(tc-getBUILD_RANLIB)" \ - CFLAGS="${BUILD_CFLAGS} ${BUILD_CPPFLAGS}" \ - LDFLAGS="${BUILD_LDFLAGS}" \ - LDLIBS="${LDLIBS}" \ - zic - fi -} - -src_test() { - # CURL is used for extended/web based tests. Punt on them. - emake check CURL=: -} - -src_install() { - local zic="" - tc-is-cross-compiler && zic="zic=${S}-native/zic" - _emake install ${zic} DESTDIR="${D}" LIBDIR="/nukeit" - rm -rf "${D}/nukeit" "${ED}/etc" || die - - insinto /usr/share/zoneinfo - doins "${S}"/leap-seconds.list - - # Delete man pages installed by man-pages package. - rm "${ED}"/usr/share/man/man5/tzfile.5* "${ED}"/usr/share/man/man8/{tzselect,zdump,zic}.8 || die - dodoc CONTRIBUTING README NEWS *.html -} - -configure_tz_data() { - # Make sure the /etc/localtime file does not get stale, bug #127899 - local tz src="${EROOT}/etc/timezone" etc_lt="${EROOT}/etc/localtime" - - # If it's a symlink, assume the user knows what they're doing and - # they're managing it themselves, bug #511474 - if [[ -L "${etc_lt}" ]] ; then - einfo "Skipping update: ${etc_lt} is a symlink." - if [[ -e ${src} ]]; then - einfo "Removing ${src}." - rm "${src}" - fi - return 0 - fi - - if [[ ! -e ${src} ]] ; then - einfo "Skipping update: ${src} does not exist." - return 0 - fi - - tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}") - - if [[ -z ${tz} ]]; then - einfo "Skipping update: ${src} is empty." - return 0 - fi - - local tzpath="${EROOT}/usr/share/zoneinfo/${tz}" - - if [[ ! -e ${tzpath} ]]; then - ewarn "The timezone specified in ${src} is not valid!" - return 1 - fi - - if [[ -f ${etc_lt} ]]; then - # If a regular file already exists, copy over it. - ewarn "Found a regular file at ${etc_lt}." - ewarn "Some software may expect a symlink instead." - ewarn "Convert it to a symlink by removing the file and running:" - ewarn " emerge --config sys-libs/timezone-data" - einfo "Copying ${tzpath} to ${etc_lt}." - cp -f "${tzpath}" "${etc_lt}" - else - # Otherwise, create a symlink and remove the timezone file. - tzpath="../usr/share/zoneinfo/${tz}" - einfo "Linking ${tzpath} at ${etc_lt}." - if ln -snf "${tzpath}" "${etc_lt}"; then - einfo "Removing ${src}." - rm -f "${src}" - fi - fi -} - -pkg_config() { - configure_tz_data -} - -pkg_postinst() { - configure_tz_data -} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/timezone-data-2026a.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/timezone-data-2026a.ebuild index 782a7c56448..92ec75a9da5 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/timezone-data-2026a.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/timezone-data-2026a.ebuild @@ -14,7 +14,7 @@ S="${WORKDIR}"/tzdb-${PV} LICENSE="BSD public-domain" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="nls leaps-timezone zic-slim" DEPEND="nls? ( virtual/libintl )" diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/timezone-data-2026b.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/timezone-data-2026b.ebuild new file mode 100644 index 00000000000..782a7c56448 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/timezone-data/timezone-data-2026b.ebuild @@ -0,0 +1,169 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs flag-o-matic unpacker + +DESCRIPTION="Timezone data (/usr/share/zoneinfo) and utilities (tzselect/zic/zdump)" +HOMEPAGE="https://www.iana.org/time-zones" +SRC_URI=" + https://data.iana.org/time-zones/releases/tzdb-${PV}.tar.lz +" +S="${WORKDIR}"/tzdb-${PV} + +LICENSE="BSD public-domain" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="nls leaps-timezone zic-slim" + +DEPEND="nls? ( virtual/libintl )" +RDEPEND=" + ${DEPEND} + !sys-libs/glibc[vanilla(+)] +" +BDEPEND="$(unpacker_src_uri_depends)" + +src_prepare() { + default + + if tc-is-cross-compiler ; then + cp -pR "${S}" "${S}"-native || die + fi +} + +src_configure() { + tc-export CC + + # bug #471102 + append-lfs-flags + + if use elibc_Darwin ; then + # bug #138251 + append-cppflags -DSTD_INSPIRED + fi + + append-cppflags -DHAVE_GETTEXT=$(usex nls 1 0) -DTZ_DOMAIN='\"libc\"' + + # Upstream default is 'slim', but it breaks quite a few programs, + # that parse /etc/localtime directly: bug #747538. + append-cppflags -DZIC_BLOAT_DEFAULT='\"'$(usex zic-slim slim fat)'\"' + + LDLIBS="" + if use nls ; then + # See if an external libintl is available. bug #154181, bug #578424 + local c="${T}/test" + echo 'int main(){}' > "${c}.c" || die + if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} "${c}.c" -o "${c}" -lintl 2>/dev/null ; then + LDLIBS+=" -lintl" + fi + fi +} + +_emake() { + emake \ + REDO=$(usex leaps-timezone posix_right posix_only) \ + TOPDIR="${EPREFIX}" \ + ZICDIR='$(TOPDIR)/usr/bin' \ + "$@" +} + +src_compile() { + tc-export AR CC RANLIB + + _emake \ + CFLAGS="${CFLAGS} -std=gnu99 ${CPPFLAGS}" \ + LDFLAGS="${LDFLAGS}" \ + LDLIBS="${LDLIBS}" + + if tc-is-cross-compiler ; then + _emake -C "${S}"-native \ + AR="$(tc-getBUILD_AR)" \ + CC="$(tc-getBUILD_CC)" \ + RANLIB="$(tc-getBUILD_RANLIB)" \ + CFLAGS="${BUILD_CFLAGS} ${BUILD_CPPFLAGS}" \ + LDFLAGS="${BUILD_LDFLAGS}" \ + LDLIBS="${LDLIBS}" \ + zic + fi +} + +src_test() { + # CURL is used for extended/web based tests. Punt on them. + emake check CURL=: +} + +src_install() { + local zic="" + tc-is-cross-compiler && zic="zic=${S}-native/zic" + _emake install ${zic} DESTDIR="${D}" LIBDIR="/nukeit" + rm -rf "${D}/nukeit" "${ED}/etc" || die + + insinto /usr/share/zoneinfo + doins "${S}"/leap-seconds.list + + # Delete man pages installed by man-pages package. + rm "${ED}"/usr/share/man/man5/tzfile.5* "${ED}"/usr/share/man/man8/{tzselect,zdump,zic}.8 || die + dodoc CONTRIBUTING README NEWS *.html +} + +configure_tz_data() { + # Make sure the /etc/localtime file does not get stale, bug #127899 + local tz src="${EROOT}/etc/timezone" etc_lt="${EROOT}/etc/localtime" + + # If it's a symlink, assume the user knows what they're doing and + # they're managing it themselves, bug #511474 + if [[ -L "${etc_lt}" ]] ; then + einfo "Skipping update: ${etc_lt} is a symlink." + if [[ -e ${src} ]]; then + einfo "Removing ${src}." + rm "${src}" + fi + return 0 + fi + + if [[ ! -e ${src} ]] ; then + einfo "Skipping update: ${src} does not exist." + return 0 + fi + + tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}") + + if [[ -z ${tz} ]]; then + einfo "Skipping update: ${src} is empty." + return 0 + fi + + local tzpath="${EROOT}/usr/share/zoneinfo/${tz}" + + if [[ ! -e ${tzpath} ]]; then + ewarn "The timezone specified in ${src} is not valid!" + return 1 + fi + + if [[ -f ${etc_lt} ]]; then + # If a regular file already exists, copy over it. + ewarn "Found a regular file at ${etc_lt}." + ewarn "Some software may expect a symlink instead." + ewarn "Convert it to a symlink by removing the file and running:" + ewarn " emerge --config sys-libs/timezone-data" + einfo "Copying ${tzpath} to ${etc_lt}." + cp -f "${tzpath}" "${etc_lt}" + else + # Otherwise, create a symlink and remove the timezone file. + tzpath="../usr/share/zoneinfo/${tz}" + einfo "Linking ${tzpath} at ${etc_lt}." + if ln -snf "${tzpath}" "${etc_lt}"; then + einfo "Removing ${src}." + rm -f "${src}" + fi + fi +} + +pkg_config() { + configure_tz_data +} + +pkg_postinst() { + configure_tz_data +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/zlib/files/zlib-1.3.2-s390.patch b/sdk_container/src/third_party/portage-stable/sys-libs/zlib/files/zlib-1.3.2-s390.patch new file mode 100644 index 00000000000..a33af41e040 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/zlib/files/zlib-1.3.2-s390.patch @@ -0,0 +1,29 @@ +From 3625bc4c8e2015bbd0d902c75d9ef8bb5a8a3c17 Mon Sep 17 00:00:00 2001 +From: Robert Wolke +Date: Wed, 18 Feb 2026 14:33:27 +0100 +Subject: [PATCH] fix: Add missing replacment of VGFMAFLAG + +--- + configure | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/configure b/configure +index bc723443e..4e6c8d85b 100755 +--- a/configure ++++ b/configure +@@ -1024,6 +1024,7 @@ sed < ${SRCDIR}Makefile.in " + /^LDFLAGS *=/s#=.*#=$LDFLAGS# + /^LDSHARED *=/s#=.*#=$LDSHARED# + /^CPP *=/s#=.*#=$CPP# ++/^VGFMAFLAG *=/s#=.*#=$VGFMAFLAG# + /^STATICLIB *=/s#=.*#=$STATICLIB# + /^SHAREDLIB *=/s#=.*#=$SHAREDLIB# + /^SHAREDLIBV *=/s#=.*#=$SHAREDLIBV# +@@ -1054,6 +1055,7 @@ sed < ${SRCDIR}zlib.pc.in " + /^CC *=/s#=.*#=$CC# + /^CFLAGS *=/s#=.*#=$CFLAGS# + /^CPP *=/s#=.*#=$CPP# ++/^VGFMAFLAG *=/s#=.*#=$VGFMAFLAG# + /^LDSHARED *=/s#=.*#=$LDSHARED# + /^STATICLIB *=/s#=.*#=$STATICLIB# + /^SHAREDLIB *=/s#=.*#=$SHAREDLIB# diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/zlib/zlib-1.3.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/zlib/zlib-1.3.2-r1.ebuild index 678ee160ec0..28ae16f2d6f 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/zlib/zlib-1.3.2-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/zlib/zlib-1.3.2-r1.ebuild @@ -23,7 +23,7 @@ SRC_URI=" LICENSE="ZLIB" SLOT="0/1" # subslot = SONAME -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="minizip static-libs" RDEPEND="!sys-libs/zlib-ng[compat]" @@ -45,6 +45,9 @@ PATCHES=( "${FILESDIR}"/${PN}-1.3.1-configure-fix-AR-libtool-on-darwin.patch "${FILESDIR}"/${PN}-1.3.2-minizip-install.patch + + # https://github.com/madler/zlib/issues/1200 + "${FILESDIR}"/${PN}-1.3.2-s390.patch ) src_prepare() { diff --git a/sdk_container/src/third_party/portage-stable/sys-process/audit/Manifest b/sdk_container/src/third_party/portage-stable/sys-process/audit/Manifest index 9031bd69612..f3ed195cf54 100644 --- a/sdk_container/src/third_party/portage-stable/sys-process/audit/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-process/audit/Manifest @@ -1,2 +1 @@ -DIST audit-4.0.1.tar.gz 1194961 BLAKE2B 590abf58e672921a432348f48936cfbff0b6ddfa47e77b3b20eaa00e5d1c4ce2fc8d10c1fc1cbc19d44c09a9f7dfbca76778c94d8d340485c2bb1bb3b5a3c95a SHA512 7fbc426d0ddea340a36ceab52ac090e8e3dfb3450ebf50b478324a097f19ab4bb2cf78a2532644acb17e6114b59b8fda718affda9da62fb84181e3abf76039df -DIST audit-4.0.2.tar.gz 1198769 BLAKE2B f34fed7eebbc72d82d1051bbaf5ec29ebb8e1b9fe85dc0a0f8c71a94ede86578d58d16be9d91e643368fabe20e69c208fb7f374e19a70bf6dc7c0ab2448fb30a SHA512 13d4d07b316fc1380d75baefbb1345b34286015d52e758c14b2f82781cf4cffc16b6eb29d999563ff40caa6d005630a5dfc44741e49b71291c9beb84ddc452a4 +DIST audit-4.1.4.tar.gz 665162 BLAKE2B 709bba8f66fc16dfc8eb9e26767ae41df9f9c6a9e9769b02c0ab1379627e3e6d148b716f8a97c60995844306a74bb4c089606d0eb08300beef17f6678bee6237 SHA512 e5493f434dddbded65f33bfd56981036af6975c192289a05378d773ce914ab3ffe6b7071cae03e8f69da4e33246a38608d848f64d01647f2572a7eb6651f3ba0 diff --git a/sdk_container/src/third_party/portage-stable/sys-process/audit/audit-4.0.1-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-process/audit/audit-4.0.1-r1.ebuild deleted file mode 100644 index c55ad704984..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-process/audit/audit-4.0.1-r1.ebuild +++ /dev/null @@ -1,198 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# As with sys-libs/libcap-ng, same maintainer in Fedora as upstream, so -# check Fedora's packaging (https://src.fedoraproject.org/rpms/audit/tree/rawhide) -# on bumps (or if hitting a bug) to see what they've done there. - -PYTHON_COMPAT=( python3_{10..13} ) - -inherit autotools multilib-minimal toolchain-funcs python-r1 linux-info systemd usr-ldscript - -DESCRIPTION="Userspace utilities for storing and processing auditing records" -HOMEPAGE="https://people.redhat.com/sgrubb/audit/" -SRC_URI="https://people.redhat.com/sgrubb/audit/${P}.tar.gz" - -LICENSE="GPL-2+ LGPL-2.1+" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="gssapi io-uring ldap python static-libs test" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" -RESTRICT="!test? ( test )" - -RDEPEND=" - sys-libs/libcap-ng - gssapi? ( virtual/krb5 ) - ldap? ( net-nds/openldap:= ) - python? ( ${PYTHON_DEPS} ) -" -DEPEND=" - ${RDEPEND} - >=sys-kernel/linux-headers-2.6.34 - test? ( dev-libs/check ) -" -BDEPEND=" - python? ( - dev-lang/swig - $(python_gen_cond_dep ' - dev-python/setuptools[${PYTHON_USEDEP}] - ' python3_12) - ) -" - -CONFIG_CHECK="~AUDIT" - -QA_CONFIG_IMPL_DECL_SKIP=( - # missing on musl. Uses handrolled AC_LINK_IFELSE but fails at link time - # for older compilers regardless. bug #898828 - strndupa -) - -PATCHES=( - "${FILESDIR}/${P}-implicit-builtin-functions.patch" - "${FILESDIR}/${P}-null-deref.patch" -) - -src_prepare() { - # audisp-remote moved in multilib_src_install_all - sed -i \ - -e "s,/sbin/audisp-remote,${EPREFIX}/usr/sbin/audisp-remote," \ - audisp/plugins/remote/au-remote.conf || die - - # Disable installing sample rules so they can be installed as docs. - echo -e '%:\n\t:' | tee rules/Makefile.{am,in} >/dev/null || die - - default - eautoreconf -} - -multilib_src_configure() { - local myeconfargs=( - --sbindir="${EPREFIX}"/sbin - --localstatedir="${EPREFIX}"/var - --runstatedir="${EPREFIX}"/run - $(use_enable gssapi gssapi-krb5) - $(use_enable ldap zos-remote) - $(use_enable static-libs static) - $(use_with arm) - $(use_with arm64 aarch64) - $(use_with io-uring io_uring) - --without-golang - --without-libwrap - --without-python3 - ) - - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" - - if multilib_is_native_abi && use python; then - python_configure() { - mkdir -p "${BUILD_DIR}" || die - pushd "${BUILD_DIR}" &>/dev/null || die - - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" --with-python3 - find . -type f -name 'Makefile' -exec sed -i "s;-I/usr/include/python;-I${SYSROOT}/usr/include/python;g" {} + - - popd &>/dev/null || die - } - - python_foreach_impl python_configure - fi -} - -src_configure() { - tc-export_build_env BUILD_{CC,CPP} - - local -x CC_FOR_BUILD="${BUILD_CC}" - local -x CPP_FOR_BUILD="${BUILD_CPP}" - - multilib-minimal_src_configure -} - -multilib_src_compile() { - if multilib_is_native_abi; then - default - - local native_build="${BUILD_DIR}" - - python_compile() { - emake -C "${BUILD_DIR}"/bindings/swig top_builddir="${native_build}" - emake -C "${BUILD_DIR}"/bindings/python/python3 top_builddir="${native_build}" - } - - use python && python_foreach_impl python_compile - else - emake -C common - emake -C lib - emake -C auparse - fi -} - -multilib_src_install() { - if multilib_is_native_abi; then - emake DESTDIR="${D}" initdir="$(systemd_get_systemunitdir)" install - - local native_build="${BUILD_DIR}" - - python_install() { - emake -C "${BUILD_DIR}"/bindings/swig DESTDIR="${D}" top_builddir="${native_build}" install - emake -C "${BUILD_DIR}"/bindings/python/python3 DESTDIR="${D}" top_builddir="${native_build}" install - python_optimize - } - - use python && python_foreach_impl python_install - - # Things like shadow use this so we need to be in / - gen_usr_ldscript -a audit auparse - else - emake -C lib DESTDIR="${D}" install - emake -C auparse DESTDIR="${D}" install - fi -} - -multilib_src_install_all() { - dodoc AUTHORS ChangeLog README* THANKS - docinto contrib - dodoc contrib/avc_snap - docinto contrib/plugin - dodoc contrib/plugin/* - docinto rules - dodoc rules/*rules - - newinitd "${FILESDIR}"/auditd-init.d-2.4.3 auditd - newconfd "${FILESDIR}"/auditd-conf.d-2.1.3 auditd - - if [[ -f "${ED}"/sbin/audisp-remote ]] ; then - dodir /usr/sbin - mv "${ED}"/{sbin,usr/sbin}/audisp-remote || die - fi - - # Gentoo rules - insinto /etc/audit - newins "${FILESDIR}"/audit.rules-2.1.3 audit.rules - doins "${FILESDIR}"/audit.rules.stop* - keepdir /etc/audit/rules.d - - # audit logs go here - keepdir /var/log/audit - - find "${ED}" -type f -name '*.la' -delete || die - - # Security - lockdown_perms "${ED}" -} - -pkg_postinst() { - lockdown_perms "${EROOT}" -} - -lockdown_perms() { - # Upstream wants these to have restrictive perms. - # Should not || die as not all paths may exist. - local basedir="${1}" - chmod 0750 "${basedir}"/sbin/au{ditctl,ditd,report,search,trace} 2>/dev/null - chmod 0750 "${basedir}"/var/log/audit 2>/dev/null - chmod 0640 "${basedir}"/etc/audit/{auditd.conf,audit*.rules*} 2>/dev/null -} diff --git a/sdk_container/src/third_party/portage-stable/sys-process/audit/audit-4.0.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-process/audit/audit-4.0.2-r1.ebuild deleted file mode 100644 index eac40645a95..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-process/audit/audit-4.0.2-r1.ebuild +++ /dev/null @@ -1,200 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# As with sys-libs/libcap-ng, same maintainer in Fedora as upstream, so -# check Fedora's packaging (https://src.fedoraproject.org/rpms/audit/tree/rawhide) -# on bumps (or if hitting a bug) to see what they've done there. - -PYTHON_COMPAT=( python3_{10..13} ) - -inherit autotools multilib-minimal toolchain-funcs python-r1 linux-info systemd usr-ldscript - -DESCRIPTION="Userspace utilities for storing and processing auditing records" -HOMEPAGE="https://people.redhat.com/sgrubb/audit/" -SRC_URI="https://people.redhat.com/sgrubb/audit/${P}.tar.gz" - -LICENSE="GPL-2+ LGPL-2.1+" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="gssapi io-uring ldap python static-libs test" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" -RESTRICT="!test? ( test )" - -RDEPEND=" - sys-libs/libcap-ng - gssapi? ( virtual/krb5 ) - ldap? ( net-nds/openldap:= ) - python? ( ${PYTHON_DEPS} ) -" -DEPEND=" - ${RDEPEND} - >=sys-kernel/linux-headers-5 - test? ( dev-libs/check ) -" -BDEPEND=" - python? ( - dev-lang/swig - $(python_gen_cond_dep ' - dev-python/setuptools[${PYTHON_USEDEP}] - ' python3_12) - ) -" - -CONFIG_CHECK="~AUDIT" - -QA_CONFIG_IMPL_DECL_SKIP=( - # missing on musl. Uses handrolled AC_LINK_IFELSE but fails at link time - # for older compilers regardless. bug #898828 - strndupa -) - -PATCHES=( - "${FILESDIR}/${PN}-4.0.1-musl-basename.patch" -) - -src_prepare() { - # audisp-remote moved in multilib_src_install_all - sed -i \ - -e "s,/sbin/audisp-remote,${EPREFIX}/usr/sbin/audisp-remote," \ - audisp/plugins/remote/au-remote.conf || die - - # Disable installing sample rules so they can be installed as docs. - echo -e '%:\n\t:' | tee rules/Makefile.{am,in} >/dev/null || die - - default - eautoreconf -} - -multilib_src_configure() { - local myeconfargs=( - --sbindir="${EPREFIX}"/sbin - --localstatedir="${EPREFIX}"/var - --runstatedir="${EPREFIX}"/run - $(use_enable gssapi gssapi-krb5) - $(use_enable ldap zos-remote) - $(use_enable static-libs static) - $(use_with arm) - $(use_with arm64 aarch64) - $(use_with io-uring io_uring) - --without-golang - --without-libwrap - --without-python3 - ) - - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" - - if multilib_is_native_abi && use python; then - python_configure() { - mkdir -p "${BUILD_DIR}" || die - pushd "${BUILD_DIR}" &>/dev/null || die - - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" --with-python3 - find . -type f -name 'Makefile' -exec sed -i "s;-I/usr/include/python;-I${SYSROOT}/usr/include/python;g" {} + - - popd &>/dev/null || die - } - - python_foreach_impl python_configure - fi - - # Make target bindings/python/auparse_python.c doesn't get copied to ${BUILD_DIR}. bug #944338 - ln -s "${S}/bindings/python/auparse_python.c" "${BUILD_DIR}/bindings/python/auparse_python.c" || die -} - -src_configure() { - tc-export_build_env BUILD_{CC,CPP} - - local -x CC_FOR_BUILD="${BUILD_CC}" - local -x CPP_FOR_BUILD="${BUILD_CPP}" - - multilib-minimal_src_configure -} - -multilib_src_compile() { - if multilib_is_native_abi; then - default - - local native_build="${BUILD_DIR}" - - python_compile() { - emake -C "${BUILD_DIR}"/bindings/swig top_builddir="${native_build}" - emake -C "${BUILD_DIR}"/bindings/python/python3 top_builddir="${native_build}" - } - - use python && python_foreach_impl python_compile - else - emake -C common - emake -C lib - emake -C auparse - fi -} - -multilib_src_install() { - if multilib_is_native_abi; then - emake DESTDIR="${D}" initdir="$(systemd_get_systemunitdir)" install - - local native_build="${BUILD_DIR}" - - python_install() { - emake -C "${BUILD_DIR}"/bindings/swig DESTDIR="${D}" top_builddir="${native_build}" install - emake -C "${BUILD_DIR}"/bindings/python/python3 DESTDIR="${D}" top_builddir="${native_build}" install - python_optimize - } - - use python && python_foreach_impl python_install - - # Things like shadow use this so we need to be in / - gen_usr_ldscript -a audit auparse - else - emake -C lib DESTDIR="${D}" install - emake -C auparse DESTDIR="${D}" install - fi -} - -multilib_src_install_all() { - dodoc AUTHORS ChangeLog README* THANKS - docinto contrib - dodoc contrib/avc_snap - docinto contrib/plugin - dodoc contrib/plugin/* - docinto rules - dodoc rules/*rules - - newinitd "${FILESDIR}"/auditd-init.d-2.4.3 auditd - newconfd "${FILESDIR}"/auditd-conf.d-2.1.3 auditd - - if [[ -f "${ED}"/sbin/audisp-remote ]] ; then - dodir /usr/sbin - mv "${ED}"/{sbin,usr/sbin}/audisp-remote || die - fi - - # Gentoo rules - insinto /etc/audit - newins "${FILESDIR}"/audit.rules-2.1.3 audit.rules - doins "${FILESDIR}"/audit.rules.stop* - keepdir /etc/audit/rules.d - - # audit logs go here - keepdir /var/log/audit - - find "${ED}" -type f -name '*.la' -delete || die - - # Security - lockdown_perms "${ED}" -} - -pkg_postinst() { - lockdown_perms "${EROOT}" -} - -lockdown_perms() { - # Upstream wants these to have restrictive perms. - # Should not || die as not all paths may exist. - local basedir="${1}" - chmod 0750 "${basedir}"/sbin/au{ditctl,ditd,report,search,trace} 2>/dev/null - chmod 0750 "${basedir}"/var/log/audit 2>/dev/null - chmod 0640 "${basedir}"/etc/audit/{auditd.conf,audit*.rules*} 2>/dev/null -} diff --git a/sdk_container/src/third_party/portage-stable/sys-process/audit/audit-4.1.4-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-process/audit/audit-4.1.4-r1.ebuild new file mode 100644 index 00000000000..d90ce74e888 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-process/audit/audit-4.1.4-r1.ebuild @@ -0,0 +1,194 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# As with sys-libs/libcap-ng, same maintainer in Fedora as upstream, so +# check Fedora's packaging (https://src.fedoraproject.org/rpms/audit/tree/rawhide) +# on bumps (or if hitting a bug) to see what they've done there. + +PYTHON_COMPAT=( python3_{11..14} ) + +inherit autotools multilib-minimal toolchain-funcs python-r1 linux-info systemd tmpfiles usr-ldscript + +DESCRIPTION="Userspace utilities for storing and processing auditing records" +HOMEPAGE="https://people.redhat.com/sgrubb/audit/" +SRC_URI="https://github.com/linux-audit/audit-userspace/archive/refs/tags/v${PV}.tar.gz + -> ${P}.tar.gz" + +S="${WORKDIR}/audit-userspace-${PV}" +LICENSE="GPL-2+ LGPL-2.1+" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +IUSE="gssapi io-uring ldap python static-libs" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND=" + sys-libs/libcap-ng + gssapi? ( virtual/krb5 ) + ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) + python? ( ${PYTHON_DEPS} ) +" +DEPEND=" + ${RDEPEND} + >=sys-kernel/linux-headers-5 +" +BDEPEND=" + python? ( + dev-lang/swig + $(python_gen_cond_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ' python3_12) + ) +" + +CONFIG_CHECK="~AUDIT" + +QA_CONFIG_IMPL_DECL_SKIP=( + # missing on musl. Uses handrolled AC_LINK_IFELSE but fails at link time + # for older compilers regardless. bug #898828 + strndupa +) + +PATCHES=( + "${FILESDIR}/${PN}-4.0.1-musl-basename.patch" +) + +src_prepare() { + # audisp-remote moved in multilib_src_install_all + sed -i \ + -e "s,/sbin/audisp-remote,${EPREFIX}/usr/sbin/audisp-remote," \ + audisp/plugins/remote/au-remote.conf || die + + # Disable installing sample rules so they can be installed as docs. + echo -e '%:\n\t:' | tee rules/Makefile.{am,in} >/dev/null || die + + default + eautoreconf +} + +multilib_src_configure() { + local myeconfargs=( + --sbindir="${EPREFIX}"/sbin + --localstatedir="${EPREFIX}"/var + --runstatedir="${EPREFIX}"/run + $(use_enable gssapi gssapi-krb5) + $(use_enable ldap zos-remote) + $(use_enable static-libs static) + $(use_with arm) + $(use_with arm64 aarch64) + $(use_with io-uring io_uring) + --without-golang + --without-libwrap + --without-python3 + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + + if multilib_is_native_abi && use python; then + python_configure() { + mkdir -p "${BUILD_DIR}" || die + pushd "${BUILD_DIR}" &>/dev/null || die + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" --with-python3 + find . -type f -name 'Makefile' -exec sed -i "s;-I/usr/include/python;-I${SYSROOT}/usr/include/python;g" {} + + + popd &>/dev/null || die + } + + python_foreach_impl python_configure + fi + + # Make target bindings/python/auparse_python.c doesn't get copied to ${BUILD_DIR}. bug #944338 + ln -s "${S}/bindings/python/auparse_python.c" "${BUILD_DIR}/bindings/python/auparse_python.c" || die +} + +src_configure() { + tc-export_build_env BUILD_{CC,CPP} + + local -x CC_FOR_BUILD="${BUILD_CC}" + local -x CPP_FOR_BUILD="${BUILD_CPP}" + + multilib-minimal_src_configure +} + +multilib_src_compile() { + default + + if multilib_is_native_abi; then + local native_build="${BUILD_DIR}" + + python_compile() { + emake -C "${BUILD_DIR}"/bindings/swig top_builddir="${native_build}" + emake -C "${BUILD_DIR}"/bindings/python/python3 top_builddir="${native_build}" + } + + use python && python_foreach_impl python_compile + fi +} + +multilib_src_install() { + emake DESTDIR="${D}" initdir="$(systemd_get_systemunitdir)" install + + if multilib_is_native_abi; then + local native_build="${BUILD_DIR}" + + python_install() { + emake -C "${BUILD_DIR}"/bindings/swig DESTDIR="${D}" top_builddir="${native_build}" install + emake -C "${BUILD_DIR}"/bindings/python/python3 DESTDIR="${D}" top_builddir="${native_build}" install + python_optimize + } + + use python && python_foreach_impl python_install + + # Things like shadow use this so we need to be in / + gen_usr_ldscript -a audit auparse + fi +} + +multilib_src_install_all() { + dodoc AUTHORS ChangeLog README* THANKS + docinto contrib + dodoc contrib/avc_snap + docinto contrib/plugin + dodoc contrib/plugin/* + docinto rules + dodoc rules/*rules + + newinitd "${FILESDIR}"/auditd-init.d-2.4.3 auditd + newconfd "${FILESDIR}"/auditd-conf.d-2.1.3 auditd + + if [[ -f "${ED}"/sbin/audisp-remote ]] ; then + dodir /usr/sbin + mv "${ED}"/{sbin,usr/sbin}/audisp-remote || die + fi + + # Gentoo rules + insinto /etc/audit + newins "${FILESDIR}"/audit.rules-2.1.3 audit.rules + doins "${FILESDIR}"/audit.rules.stop* + keepdir /etc/audit/rules.d + + # audit logs go here + keepdir /var/log/audit + + find "${ED}" -type f -name '*.la' -delete || die + + # Security + lockdown_perms "${ED}" +} + +pkg_postinst() { + lockdown_perms "${EROOT}" + tmpfiles_process audit.conf +} + +lockdown_perms() { + # Upstream wants these to have restrictive perms. + # Should not || die as not all paths may exist. + local basedir="${1}" + chmod 0750 "${basedir}"/sbin/au{ditctl,ditd,report,search,trace} 2>/dev/null + chmod 0750 "${basedir}"/var/log/audit 2>/dev/null + chmod 0640 "${basedir}"/etc/audit/{auditd.conf,audit*.rules*} 2>/dev/null +} diff --git a/sdk_container/src/third_party/portage-stable/sys-process/audit/audit-4.1.4-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-process/audit/audit-4.1.4-r2.ebuild new file mode 100644 index 00000000000..5564faa73a6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-process/audit/audit-4.1.4-r2.ebuild @@ -0,0 +1,194 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# As with sys-libs/libcap-ng, same maintainer in Fedora as upstream, so +# check Fedora's packaging (https://src.fedoraproject.org/rpms/audit/tree/rawhide) +# on bumps (or if hitting a bug) to see what they've done there. + +PYTHON_COMPAT=( python3_{11..14} ) + +inherit autotools multilib-minimal toolchain-funcs python-r1 linux-info systemd tmpfiles usr-ldscript + +DESCRIPTION="Userspace utilities for storing and processing auditing records" +HOMEPAGE="https://people.redhat.com/sgrubb/audit/" +SRC_URI="https://github.com/linux-audit/audit-userspace/archive/refs/tags/v${PV}.tar.gz + -> ${P}.tar.gz" + +S="${WORKDIR}/audit-userspace-${PV}" +LICENSE="GPL-2+ LGPL-2.1+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="gssapi io-uring ldap python static-libs" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND=" + sys-libs/libcap-ng + gssapi? ( virtual/krb5 ) + ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) + python? ( ${PYTHON_DEPS} ) +" +DEPEND=" + ${RDEPEND} + >=sys-kernel/linux-headers-5 +" +BDEPEND=" + python? ( + dev-lang/swig + $(python_gen_cond_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ' python3_12) + ) +" + +CONFIG_CHECK="~AUDIT" + +QA_CONFIG_IMPL_DECL_SKIP=( + # missing on musl. Uses handrolled AC_LINK_IFELSE but fails at link time + # for older compilers regardless. bug #898828 + strndupa +) + +PATCHES=( + "${FILESDIR}/${PN}-4.0.1-musl-basename.patch" +) + +src_prepare() { + # audisp-remote moved in multilib_src_install_all + sed -i \ + -e "s,/sbin/audisp-remote,${EPREFIX}/usr/sbin/audisp-remote," \ + audisp/plugins/remote/au-remote.conf || die + + # Disable installing sample rules so they can be installed as docs. + echo -e '%:\n\t:' | tee rules/Makefile.{am,in} >/dev/null || die + + default + eautoreconf +} + +multilib_src_configure() { + local myeconfargs=( + --sbindir="${EPREFIX}"/sbin + --localstatedir="${EPREFIX}"/var + --runstatedir="${EPREFIX}"/run + $(use_enable gssapi gssapi-krb5) + $(use_enable ldap zos-remote) + $(use_enable static-libs static) + $(use_with arm) + $(use_with arm64 aarch64) + $(use_with io-uring io_uring) + --without-golang + --without-libwrap + --without-python3 + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + + if multilib_is_native_abi && use python; then + python_configure() { + mkdir -p "${BUILD_DIR}" || die + pushd "${BUILD_DIR}" &>/dev/null || die + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" --with-python3 + find . -type f -name 'Makefile' -exec sed -i "s;-I/usr/include/python;-I${SYSROOT}/usr/include/python;g" {} + + + popd &>/dev/null || die + } + + python_foreach_impl python_configure + fi + + # Make target bindings/python/auparse_python.c doesn't get copied to ${BUILD_DIR}. bug #944338 + ln -s "${S}/bindings/python/auparse_python.c" "${BUILD_DIR}/bindings/python/auparse_python.c" || die +} + +src_configure() { + tc-export_build_env BUILD_{CC,CPP} + + local -x CC_FOR_BUILD="${BUILD_CC}" + local -x CPP_FOR_BUILD="${BUILD_CPP}" + + multilib-minimal_src_configure +} + +multilib_src_compile() { + default + + if multilib_is_native_abi; then + local native_build="${BUILD_DIR}" + + python_compile() { + emake -C "${BUILD_DIR}"/bindings/swig top_builddir="${native_build}" + emake -C "${BUILD_DIR}"/bindings/python/python3 top_builddir="${native_build}" + } + + use python && python_foreach_impl python_compile + fi +} + +multilib_src_install() { + emake DESTDIR="${D}" initdir="$(systemd_get_systemunitdir)" install + + if multilib_is_native_abi; then + local native_build="${BUILD_DIR}" + + python_install() { + emake -C "${BUILD_DIR}"/bindings/swig DESTDIR="${D}" top_builddir="${native_build}" install + emake -C "${BUILD_DIR}"/bindings/python/python3 DESTDIR="${D}" top_builddir="${native_build}" install + python_optimize + } + + use python && python_foreach_impl python_install + + # Things like shadow use this so we need to be in / + gen_usr_ldscript -a audit auparse + fi +} + +multilib_src_install_all() { + dodoc AUTHORS ChangeLog README* THANKS + docinto contrib + dodoc contrib/avc_snap + docinto contrib/plugin + dodoc contrib/plugin/* + docinto rules + dodoc rules/*rules + + newinitd "${FILESDIR}"/auditd-init.d-4.1.4 auditd + newconfd "${FILESDIR}"/auditd-conf.d-2.1.3 auditd + + if [[ -f "${ED}"/sbin/audisp-remote ]] ; then + dodir /usr/sbin + mv "${ED}"/{sbin,usr/sbin}/audisp-remote || die + fi + + # Gentoo rules + insinto /etc/audit + newins "${FILESDIR}"/audit.rules-2.1.3 audit.rules + doins "${FILESDIR}"/audit.rules.stop* + keepdir /etc/audit/rules.d + + # audit logs go here + keepdir /var/log/audit + + find "${ED}" -type f -name '*.la' -delete || die + + # Security + lockdown_perms "${ED}" +} + +pkg_postinst() { + lockdown_perms "${EROOT}" + tmpfiles_process audit.conf +} + +lockdown_perms() { + # Upstream wants these to have restrictive perms. + # Should not || die as not all paths may exist. + local basedir="${1}" + chmod 0750 "${basedir}"/sbin/au{ditctl,ditd,report,search,trace} 2>/dev/null + chmod 0750 "${basedir}"/var/log/audit 2>/dev/null + chmod 0640 "${basedir}"/etc/audit/{auditd.conf,audit*.rules*} 2>/dev/null +} diff --git a/sdk_container/src/third_party/portage-stable/sys-process/audit/files/audit-4.0.1-implicit-builtin-functions.patch b/sdk_container/src/third_party/portage-stable/sys-process/audit/files/audit-4.0.1-implicit-builtin-functions.patch deleted file mode 100644 index cd0f0f7e727..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-process/audit/files/audit-4.0.1-implicit-builtin-functions.patch +++ /dev/null @@ -1,563 +0,0 @@ -Backport of https://github.com/linux-audit/audit-userspace/commit/8c7eaa7ead6c70486623674c19d649f3831578ad - -diff -ur audit-4.0.1.orig/audisp/audispd-llist.c audit-4.0.1/audisp/audispd-llist.c ---- audit-4.0.1.orig/audisp/audispd-llist.c -+++ audit-4.0.1/audisp/audispd-llist.c -@@ -69,11 +69,13 @@ unsigned int plist_count_active(const co - return cnt; - } - --void plist_append(conf_llist *l, plugin_conf_t *p) -+int plist_append(conf_llist *l, plugin_conf_t *p) - { - lnode* newnode; - - newnode = malloc(sizeof(lnode)); -+ if (newnode == NULL) -+ return 1; - - if (p) { - void *pp = malloc(sizeof(struct plugin_conf)); -@@ -94,6 +96,8 @@ void plist_append(conf_llist *l, plugin_ - // make newnode current - l->cur = newnode; - l->cnt++; -+ -+ return 0; - } - - void plist_clear(conf_llist* l) -diff -ur audit-4.0.1.orig/audisp/audispd-llist.h audit-4.0.1/audisp/audispd-llist.h ---- audit-4.0.1.orig/audisp/audispd-llist.h -+++ audit-4.0.1/audisp/audispd-llist.h -@@ -1,6 +1,6 @@ - /* - * audispd-llist.h - Header file for ausearch-conf_llist.c --* Copyright (c) 2007,2013 Red Hat Inc., Durham, North Carolina. -+* Copyright (c) 2007,2013 Red Hat Inc. - * All Rights Reserved. - * - * This software may be freely redistributed and/or modified under the -@@ -51,7 +51,7 @@ unsigned int plist_count_active(const co - void plist_last(conf_llist *l); - lnode *plist_next(conf_llist *l); - static inline lnode *plist_get_cur(conf_llist *l) { return l->cur; } --void plist_append(conf_llist *l, plugin_conf_t *p); -+int plist_append(conf_llist *l, plugin_conf_t *p); - void plist_clear(conf_llist* l); - void plist_mark_all_unchecked(conf_llist* l); - lnode *plist_find_unchecked(conf_llist* l); -diff -ur audit-4.0.1.orig/auparse/normalize-llist.c audit-4.0.1/auparse/normalize-llist.c ---- audit-4.0.1.orig/auparse/normalize-llist.c -+++ audit-4.0.1/auparse/normalize-llist.c -@@ -1,6 +1,6 @@ - /* - * normalize-llist.c - Minimal linked list library -- * Copyright (c) 2016-17 Red Hat Inc., Durham, North Carolina. -+ * Copyright (c) 2016-17 Red Hat Inc. - * All Rights Reserved. - * - * This library is free software; you can redistribute it and/or -@@ -61,11 +61,14 @@ data_node *cllist_next(cllist *l) - return l->cur; - } - --void cllist_append(cllist *l, uint32_t num, void *data) -+// Returns 0 on success and 1 on error -+int cllist_append(cllist *l, uint32_t num, void *data) - { - data_node *newnode; - - newnode = malloc(sizeof(data_node)); -+ if (newnode == NULL) -+ return 1; - - newnode->num = num; - newnode->data = data; -@@ -80,5 +83,6 @@ void cllist_append(cllist *l, uint32_t n - // make newnode current - l->cur = newnode; - l->cnt++; -+ return 0; - } - -diff -ur audit-4.0.1.orig/auparse/normalize-llist.h audit-4.0.1/auparse/normalize-llist.h ---- audit-4.0.1.orig/auparse/normalize-llist.h -+++ audit-4.0.1/auparse/normalize-llist.h -@@ -1,6 +1,6 @@ - /* - * normalize-llist.h - Header file for normalize-llist.c -- * Copyright (c) 2016-17 Red Hat Inc., Durham, North Carolina. -+ * Copyright (c) 2016-17 Red Hat Inc. - * All Rights Reserved. - * - * This library is free software; you can redistribute it and/or -@@ -53,7 +53,7 @@ AUDIT_HIDDEN_START - void cllist_create(cllist *l, void (*cleanup)(void *)); - void cllist_clear(cllist* l); - data_node *cllist_next(cllist *l); --void cllist_append(cllist *l, uint32_t num, void *data); -+int cllist_append(cllist *l, uint32_t num, void *data); - - AUDIT_HIDDEN_END - -diff -ur audit-4.0.1.orig/auparse/normalize.c audit-4.0.1/auparse/normalize.c ---- audit-4.0.1.orig/auparse/normalize.c -+++ audit-4.0.1/auparse/normalize.c -@@ -179,7 +179,8 @@ static unsigned int add_subj_attr(aupars - if ((auparse_find_field(au, str))) { - attr = set_record(0, rnum); - attr = set_field(attr, auparse_get_field_num(au)); -- cllist_append(&D.actor.attr, attr, NULL); -+ if (cllist_append(&D.actor.attr, attr, NULL)) -+ return 1; - return 0; - } else - auparse_goto_record_num(au, rnum); -@@ -224,7 +225,8 @@ static unsigned int add_obj_attr(auparse - if ((auparse_find_field(au, str))) { - attr = set_record(0, rnum); - attr = set_field(attr, auparse_get_field_num(au)); -- cllist_append(&D.thing.attr, attr, NULL); -+ if (cllist_append(&D.thing.attr, attr, NULL)) -+ return 1; - return 0; - } else - auparse_goto_record_num(au, rnum); -@@ -360,21 +362,23 @@ static void collect_id_obj2(auparse_stat - } - } - --static void collect_path_attrs(auparse_state_t *au) -+static int collect_path_attrs(auparse_state_t *au) - { - value_t attr; - unsigned int rnum = auparse_get_record_num(au); - - auparse_first_field(au); - if (add_obj_attr(au, "mode", rnum)) -- return; // Failed opens don't have anything else -+ return 1; // Failed opens don't have anything else - - // All the rest of the fields matter - while ((auparse_next_field(au))) { - attr = set_record(0, rnum); - attr = set_field(attr, auparse_get_field_num(au)); -- cllist_append(&D.thing.attr, attr, NULL); -+ if (cllist_append(&D.thing.attr, attr, NULL)) -+ return 1; - } -+ return 0; - } - - static void collect_cwd_attrs(auparse_state_t *au) -diff -ur audit-4.0.1.orig/src/auditctl-llist.c audit-4.0.1/src/auditctl-llist.c ---- audit-4.0.1.orig/src/auditctl-llist.c -+++ audit-4.0.1/src/auditctl-llist.c -@@ -1,7 +1,7 @@ - /* - * ausearch-llist.c - Minimal linked list library --* Copyright (c) 2005 Red Hat Inc., Durham, North Carolina. --* All Rights Reserved. -+* Copyright (c) 2005 Red Hat Inc. -+* All Rights Reserved. - * - * This software may be freely redistributed and/or modified under the - * terms of the GNU General Public License as published by the Free -@@ -15,7 +15,7 @@ - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to the --* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor -+* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor - * Boston, MA 02110-1335, USA. - * - * Authors: -@@ -59,11 +59,13 @@ lnode *list_next(llist *l) - return l->cur; - } - --void list_append(llist *l, const struct audit_rule_data *r, size_t sz) -+int list_append(llist *l, const struct audit_rule_data *r, size_t sz) - { - lnode* newnode; - - newnode = malloc(sizeof(lnode)); -+ if (newnode == NULL) -+ return 1; - - if (r) { - void *rr = malloc(sz); -@@ -85,6 +87,8 @@ void list_append(llist *l, const struct - // make newnode current - l->cur = newnode; - l->cnt++; -+ -+ return 0; - } - - void list_clear(llist* l) -diff -ur audit-4.0.1.orig/src/auditctl-llist.h audit-4.0.1/src/auditctl-llist.h ---- audit-4.0.1.orig/src/auditctl-llist.h -+++ audit-4.0.1/src/auditctl-llist.h -@@ -1,6 +1,6 @@ - /* - * auditctl-llist.h - Header file for ausearch-llist.c --* Copyright (c) 2005 Red Hat Inc., Durham, North Carolina. -+* Copyright (c) 2005 Red Hat Inc. - * All Rights Reserved. - * - * This software may be freely redistributed and/or modified under the -@@ -50,7 +50,7 @@ void list_first(llist *l); - void list_last(llist *l); - lnode *list_next(llist *l); - static inline lnode *list_get_cur(const llist *l) { return l->cur; } --void list_append(llist *l, const struct audit_rule_data *r, size_t sz); -+int list_append(llist *l, const struct audit_rule_data *r, size_t sz); - void list_clear(llist* l); - - #endif -diff -ur audit-4.0.1.orig/src/ausearch-avc.c audit-4.0.1/src/ausearch-avc.c ---- audit-4.0.1.orig/src/ausearch-avc.c -+++ audit-4.0.1/src/ausearch-avc.c -@@ -1,7 +1,7 @@ - /* - * ausearch-avc.c - Minimal linked list library for avcs --* Copyright (c) 2006,2008,2014 Red Hat Inc., Durham, North Carolina. --* All Rights Reserved. -+* Copyright (c) 2006,2008,2014 Red Hat Inc. -+* All Rights Reserved. - * - * This software may be freely redistributed and/or modified under the - * terms of the GNU General Public License as published by the Free -@@ -15,7 +15,7 @@ - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to the --* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor -+* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor - * Boston, MA 02110-1335, USA. - * - * Authors: -@@ -62,11 +62,13 @@ static void alist_last(alist *l) - l->cur = cur; - } - --void alist_append(alist *l, anode *node) -+int alist_append(alist *l, anode *node) - { - anode* newnode; - - newnode = malloc(sizeof(anode)); -+ if (newnode == NULL) -+ return 1; - - if (node->scontext) - newnode->scontext = node->scontext; -@@ -104,6 +106,8 @@ void alist_append(alist *l, anode *node) - // make newnode current - l->cur = newnode; - l->cnt++; -+ -+ return 0; - } - - int alist_find_subj(alist *l) -diff -ur audit-4.0.1.orig/src/ausearch-avc.h audit-4.0.1/src/ausearch-avc.h ---- audit-4.0.1.orig/src/ausearch-avc.h -+++ audit-4.0.1/src/ausearch-avc.h -@@ -1,6 +1,6 @@ - /* - * ausearch-avc.h - Header file for ausearch-string.c --* Copyright (c) 2006,2008 Red Hat Inc., Durham, North Carolina. -+* Copyright (c) 2006,2008 Red Hat Inc. - * All Rights Reserved. - * - * This software may be freely redistributed and/or modified under the -@@ -54,7 +54,7 @@ void alist_create(alist *l); - static inline void alist_first(alist *l) { l->cur = l->head; } - anode *alist_next(alist *l); - static inline anode *alist_get_cur(const alist *l) { return l->cur; } --void alist_append(alist *l, anode *node); -+int alist_append(alist *l, anode *node); - void anode_init(anode *an); - void anode_clear(anode *an); - void alist_clear(alist* l); -diff -ur audit-4.0.1.orig/src/ausearch-int.c audit-4.0.1/src/ausearch-int.c ---- audit-4.0.1.orig/src/ausearch-int.c -+++ audit-4.0.1/src/ausearch-int.c -@@ -1,6 +1,6 @@ - /* - * ausearch-int.c - Minimal linked list library for integers --* Copyright (c) 2005,2008 Red Hat Inc., Durham, North Carolina. -+* Copyright (c) 2005,2008 Red Hat Inc. - * All Rights Reserved. - * - * This software may be freely redistributed and/or modified under the -@@ -41,11 +41,13 @@ int_node *ilist_next(ilist *l) - return l->cur; - } - --void ilist_append(ilist *l, int num, unsigned int hits, int aux) -+int ilist_append(ilist *l, int num, unsigned int hits, int aux) - { - int_node* newnode; - - newnode = malloc(sizeof(int_node)); -+ if (newnode == NULL) -+ return 1; - - newnode->num = num; - newnode->hits = hits; -@@ -61,6 +63,8 @@ void ilist_append(ilist *l, int num, uns - // make newnode current - l->cur = newnode; - l->cnt++; -+ -+ return 0; - } - - void ilist_clear(ilist* l) -diff -ur audit-4.0.1.orig/src/ausearch-int.h audit-4.0.1/src/ausearch-int.h ---- audit-4.0.1.orig/src/ausearch-int.h -+++ audit-4.0.1/src/ausearch-int.h -@@ -1,6 +1,6 @@ - /* - * ausearch-int.h - Header file for ausearch-int.c --* Copyright (c) 2005,2008 Red Hat Inc., Durham, North Carolina. -+* Copyright (c) 2005,2008 Red Hat Inc. - * All Rights Reserved. - * - * This software may be freely redistributed and/or modified under the -@@ -48,7 +48,7 @@ void ilist_create(ilist *l); - static inline void ilist_first(ilist *l) { l->cur = l->head; } - int_node *ilist_next(ilist *l); - static inline int_node *ilist_get_cur(const ilist *l) { return l->cur; } --void ilist_append(ilist *l, int num, unsigned int hits, int aux); -+int ilist_append(ilist *l, int num, unsigned int hits, int aux); - void ilist_clear(ilist* l); - - /* append a number if its not already on the list */ -diff -ur audit-4.0.1.orig/src/ausearch-llist.c audit-4.0.1/src/ausearch-llist.c ---- audit-4.0.1.orig/src/ausearch-llist.c -+++ audit-4.0.1/src/ausearch-llist.c -@@ -1,6 +1,6 @@ - /* - * ausearch-llist.c - Minimal linked list library --* Copyright (c) 2005-2008,2011,2016 Red Hat Inc., Durham, North Carolina. -+* Copyright (c) 2005-2008,2011,2016 Red Hat Inc. - * Copyright (c) 2011 IBM Corp. - * All Rights Reserved. - * -@@ -102,11 +102,13 @@ lnode *list_prev(llist *l) - return l->cur; - } - --void list_append(llist *l, lnode *node) -+int list_append(llist *l, lnode *node) - { - lnode* newnode; - - newnode = malloc(sizeof(lnode)); -+ if (newnode == NULL) -+ return 1; - - if (node->message) - newnode->message = node->message; -@@ -119,7 +121,7 @@ void list_append(llist *l, lnode *node) - newnode->type = node->type; - newnode->a0 = node->a0; - newnode->a1 = node->a1; -- newnode->item = l->cnt; -+ newnode->item = l->cnt; - newnode->next = NULL; - - // if we are at top, fix this up -@@ -131,6 +133,8 @@ void list_append(llist *l, lnode *node) - // make newnode current - l->cur = newnode; - l->cnt++; -+ -+ return 0; - } - - int list_find_item(llist *l, unsigned int i) -diff -ur audit-4.0.1.orig/src/ausearch-llist.h audit-4.0.1/src/ausearch-llist.h ---- audit-4.0.1.orig/src/ausearch-llist.h -+++ audit-4.0.1/src/ausearch-llist.h -@@ -107,7 +107,7 @@ void list_last(llist *l); - lnode *list_next(llist *l); - lnode *list_prev(llist *l); - static inline lnode *list_get_cur(llist *l) { return l->cur; } --void list_append(llist *l, lnode *node); -+int list_append(llist *l, lnode *node); - void list_clear(llist* l); - int list_get_event(llist* l, event *e); - -diff -ur audit-4.0.1.orig/src/ausearch-nvpair.c audit-4.0.1/src/ausearch-nvpair.c ---- audit-4.0.1.orig/src/ausearch-nvpair.c -+++ audit-4.0.1/src/ausearch-nvpair.c -@@ -1,6 +1,6 @@ - /* - * ausearch-nvpair.c - Minimal linked list library for name-value pairs --* Copyright (c) 2006-08 Red Hat Inc., Durham, North Carolina. -+* Copyright (c) 2006-08 Red Hat Inc. - * All Rights Reserved. - * - * This software may be freely redistributed and/or modified under the -@@ -34,9 +34,11 @@ void search_list_create(nvlist *l) - l->cnt = 0; - } - --void search_list_append(nvlist *l, nvnode *node) -+int search_list_append(nvlist *l, nvnode *node) - { - nvnode* newnode = malloc(sizeof(nvnode)); -+ if (newnode == NULL) -+ return 1; - - newnode->name = node->name; - newnode->val = node->val; -@@ -54,6 +56,8 @@ void search_list_append(nvlist *l, nvnod - // make newnode current - l->cur = newnode; - l->cnt++; -+ -+ return 0; - } - - int search_list_find_val(nvlist *l, long val) -diff -ur audit-4.0.1.orig/src/ausearch-nvpair.h audit-4.0.1/src/ausearch-nvpair.h ---- audit-4.0.1.orig/src/ausearch-nvpair.h -+++ audit-4.0.1/src/ausearch-nvpair.h -@@ -1,6 +1,6 @@ - /* - * ausearch-nvpair.h - Header file for ausearch-nvpair.c --* Copyright (c) 2006-08 Red Hat Inc., Durham, North Carolina. -+* Copyright (c) 2006-08 Red Hat Inc. - * All Rights Reserved. - * - * This software may be freely redistributed and/or modified under the -@@ -46,7 +46,7 @@ typedef struct { - - void search_list_create(nvlist *l); - static inline nvnode *search_list_get_cur(nvlist *l) { return l->cur; } --void search_list_append(nvlist *l, nvnode *node); -+int search_list_append(nvlist *l, nvnode *node); - void search_list_clear(nvlist* l); - - /* Given a numeric index, find that record. */ -diff -ur audit-4.0.1.orig/src/ausearch-string.c audit-4.0.1/src/ausearch-string.c ---- audit-4.0.1.orig/src/ausearch-string.c -+++ audit-4.0.1/src/ausearch-string.c -@@ -44,11 +44,13 @@ snode *slist_next(slist *l) - return l->cur; - } - --void slist_append(slist *l, const snode *node) -+int slist_append(slist *l, const snode *node) - { - snode* newnode; - - newnode = malloc(sizeof(snode)); -+ if (newnode == NULL) -+ return 1; - - if (node->str) - newnode->str = node->str; -@@ -75,6 +77,8 @@ void slist_append(slist *l, const snode - // make newnode current - l->cur = newnode; - l->cnt++; -+ -+ return 0; - } - - void slist_clear(slist* l) -diff -ur audit-4.0.1.orig/src/ausearch-string.h audit-4.0.1/src/ausearch-string.h ---- audit-4.0.1.orig/src/ausearch-string.h -+++ audit-4.0.1/src/ausearch-string.h -@@ -49,7 +49,7 @@ void slist_create(slist *l); - static inline void slist_first(slist *l) { l->cur = l->head; } - snode *slist_next(slist *l); - static inline snode *slist_get_cur(const slist *l) { return l->cur; } --void slist_append(slist *l, const snode *node); -+int slist_append(slist *l, const snode *node); - void slist_clear(slist* l); - - /* append a string if its not already on the list */ -diff -ur audit-4.0.1.orig/tools/aulastlog/aulastlog-llist.c audit-4.0.1/tools/aulastlog/aulastlog-llist.c ---- audit-4.0.1.orig/tools/aulastlog/aulastlog-llist.c -+++ audit-4.0.1/tools/aulastlog/aulastlog-llist.c -@@ -1,7 +1,7 @@ - /* - * aulastlog-llist.c - Minimal linked list library --* Copyright (c) 2008 Red Hat Inc., Durham, North Carolina. --* All Rights Reserved. -+* Copyright (c) 2008 Red Hat Inc.. -+* All Rights Reserved. - * - * This software may be freely redistributed and/or modified under the - * terms of the GNU General Public License as published by the Free -@@ -15,7 +15,7 @@ - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to the --* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor -+* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor - * Boston, MA 02110-1335, USA. - * - * Authors: -@@ -41,11 +41,13 @@ lnode *list_next(llist *l) - return l->cur; - } - --void list_append(llist *l, lnode *node) -+int list_append(llist *l, lnode *node) - { - lnode* newnode; - - newnode = malloc(sizeof(lnode)); -+ if (newnode == NULL) -+ return 1; - - newnode->sec = node->sec; - newnode->uid = node->uid; -@@ -58,7 +60,7 @@ void list_append(llist *l, lnode *node) - newnode->term = strdup(node->term); - else - newnode->term = NULL; -- newnode->item = l->cnt; -+ newnode->item = l->cnt; - newnode->next = NULL; - - // if we are at top, fix this up -@@ -70,6 +72,8 @@ void list_append(llist *l, lnode *node) - // make newnode current - l->cur = newnode; - l->cnt++; -+ -+ return 0; - } - - void list_clear(llist* l) -diff -ur audit-4.0.1.orig/tools/aulastlog/aulastlog-llist.h audit-4.0.1/tools/aulastlog/aulastlog-llist.h ---- audit-4.0.1.orig/tools/aulastlog/aulastlog-llist.h -+++ audit-4.0.1/tools/aulastlog/aulastlog-llist.h -@@ -1,6 +1,6 @@ - /* - * aulastlog-llist.h - Header file for aulastlog-llist.c --* Copyright (c) 2008 Red Hat Inc., Durham, North Carolina. -+* Copyright (c) 2008 Red Hat Inc. - * All Rights Reserved. - * - * This software may be freely redistributed and/or modified under the -@@ -53,7 +53,7 @@ static inline void list_first(llist *l) - lnode *list_next(llist *l); - static inline lnode *list_get_cur(llist *l) { return l->cur; } - static inline unsigned int list_get_cnt(llist *l) { return l->cnt; } --void list_append(llist *l, lnode *node); -+int list_append(llist *l, lnode *node); - void list_clear(llist* l); - int list_update_login(llist* l, time_t t); - int list_update_host(llist* l, const char *h); diff --git a/sdk_container/src/third_party/portage-stable/sys-process/audit/files/audit-4.0.1-null-deref.patch b/sdk_container/src/third_party/portage-stable/sys-process/audit/files/audit-4.0.1-null-deref.patch deleted file mode 100644 index c18322ad279..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-process/audit/files/audit-4.0.1-null-deref.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 4780cd1a790286213dda646f782fa7128fb092a9 Mon Sep 17 00:00:00 2001 -From: Yugend <77495782+Yugend@users.noreply.github.com> -Date: Sat, 4 May 2024 00:39:36 +0300 -Subject: [PATCH] avoiding of NULL pointers dereference (#366) - ---- - src/ausearch-parse.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/ausearch-parse.c b/src/ausearch-parse.c -index 1a5b047f3..be57606bd 100644 ---- a/src/ausearch-parse.c -+++ b/src/ausearch-parse.c -@@ -719,6 +719,10 @@ static int common_path_parser(search_items *s, char *path) - // append - snode sn; - sn.str = strdup(path); -+ if (sn.str == NULL) { -+ fprintf(stderr, "Out of memory. Check %s file, %d line\n", __FILE__, __LINE__); -+ return 8; -+ } - sn.key = NULL; - sn.hits = 1; - // Attempt to rebuild path if relative -@@ -1217,6 +1221,10 @@ static int parse_user(const lnode *n, search_items *s, anode *avc) - saved = *term; - *term = 0; - s->hostname = strdup(str); -+ if (s->hostname == NULL) { -+ fprintf(stderr, "Out of memory. Check %s file, %d line\n", __FILE__, __LINE__); -+ return 33; -+ } - *term = saved; - - // Lets see if there is something more diff --git a/sdk_container/src/third_party/portage-stable/sys-process/audit/files/auditd-init.d-4.1.4 b/sdk_container/src/third_party/portage-stable/sys-process/audit/files/auditd-init.d-4.1.4 new file mode 100644 index 00000000000..c313a477ebd --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-process/audit/files/auditd-init.d-4.1.4 @@ -0,0 +1,90 @@ +#!/sbin/openrc-run +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +extra_started_commands='reload reload_auditd reload_rules' +description='Linux Auditing System' +description_reload='Reload daemon configuration and rules' +description_reload_rules='Reload daemon rules' +description_reload_auditd='Reload daemon configuration' + +name='auditd' +pidfile='/run/audit/auditd.pid' +command='/sbin/auditd' + +start_auditd() { + # Env handling taken from the upstream init script + if [ -z "$AUDITD_LANG" -o "$AUDITD_LANG" = "none" -o "$AUDITD_LANG" = "NONE" ]; then + unset LANG LC_TIME LC_ALL LC_MESSAGES LC_NUMERIC LC_MONETARY LC_COLLATE + else + LANG="$AUDITD_LANG" + LC_TIME="$AUDITD_LANG" + LC_ALL="$AUDITD_LANG" + LC_MESSAGES="$AUDITD_LANG" + LC_NUMERIC="$AUDITD_LANG" + LC_MONETARY="$AUDITD_LANG" + LC_COLLATE="$AUDITD_LANG" + export LANG LC_TIME LC_ALL LC_MESSAGES LC_NUMERIC LC_MONETARY LC_COLLATE + fi + unset HOME MAIL USER USERNAME + + ebegin "Starting ${name}" + start-stop-daemon \ + --start --quiet --pidfile ${pidfile} \ + --exec ${command} -- ${EXTRAOPTIONS} + local ret=$? + eend $ret + return $ret +} + +stop_auditd() { + ebegin "Stopping ${name}" + start-stop-daemon --stop --quiet --pidfile ${pidfile} + local ret=$? + eend $ret + return $ret +} + +loadfile() { + local rules="$1" + if [ -n "${rules}" -a -f "${rules}" ]; then + einfo "Loading audit rules from ${rules}" + /sbin/auditctl -R "${rules}" >/dev/null + return $? + else + return 0 + fi +} + +start() { + start_auditd + local ret=$? + if [ $ret -eq 0 -a "${RC_CMD}" != "restart" ]; then + loadfile "${RULEFILE_STARTUP}" + fi + return $ret +} + +reload_rules() { + loadfile "${RULEFILE_STARTUP}" +} + +reload_auditd() { + ebegin "Reloading ${SVCNAME}" + start-stop-daemon --signal HUP \ + --exec "${command}" --pidfile "${pidfile}" + eend $? +} + +reload() { + reload_auditd + reload_rules +} + +stop() { + [ "${RC_CMD}" != "restart" ] && loadfile "${RULEFILE_STOP_PRE}" + stop_auditd + local ret=$? + [ "${RC_CMD}" != "restart" ] && loadfile "${RULEFILE_STOP_POST}" + return $ret +} diff --git a/sdk_container/src/third_party/portage-stable/sys-process/lsof/Manifest b/sdk_container/src/third_party/portage-stable/sys-process/lsof/Manifest index 54ceebd6520..04b3fee5447 100644 --- a/sdk_container/src/third_party/portage-stable/sys-process/lsof/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-process/lsof/Manifest @@ -1 +1,2 @@ DIST lsof-4.99.5.tar.gz 1139280 BLAKE2B 2f11990956b64b5777721f669b231e8f2a520f4535cd3d6023a3d8563c65c83598a4b52c887a2c1c742d12b2f92f724a33873bf460a5fb52255d1622436b1d44 SHA512 1584804fd98f6d416dd1b334832a306abb8e557185523ba255032c3e33fdc472ce4912c50ef70a0ed5e33194ebc4d4853ed7a9baa40c327223614de209c60f13 +DIST lsof-4.99.6.tar.gz 1145434 BLAKE2B 42fbf8ed7dfed8c8570cf830ce8778d9cbbecbd3c0f33800dd7ebfc36e07c7f86075b97bc25c33b70d73b6dde248969bcd7814a792d54cff77f10124f00afd35 SHA512 025317f98b585f266e8cbd02cf7e17dcbd5c630bf927fd710e1700f393464eeebd54de8277955ad6e2d849ebc67ebd7e0ed9bbbc53d4b3754e13cecb29a1f28e diff --git a/sdk_container/src/third_party/portage-stable/sys-process/lsof/lsof-4.99.6.ebuild b/sdk_container/src/third_party/portage-stable/sys-process/lsof/lsof-4.99.6.ebuild new file mode 100644 index 00000000000..3b3e4d9f0ad --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-process/lsof/lsof-4.99.6.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit libtool + +MY_P="${P/-/_}" +DESCRIPTION="Lists open files for running Unix processes" +HOMEPAGE="https://github.com/lsof-org/lsof" +SRC_URI="https://github.com/lsof-org/lsof/releases/download/${PV}/${P}.tar.gz" + +LICENSE="lsof" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +IUSE="rpc selinux" + +RDEPEND=" + rpc? ( net-libs/libtirpc ) + selinux? ( sys-libs/libselinux ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + sys-apps/groff + rpc? ( virtual/pkgconfig ) +" + +# Needs fixing first for sandbox +RESTRICT="test" + +src_prepare() { + default + elibtoolize +} + +src_configure() { + local myeconfargs=( + $(use_with rpc libtirpc) + $(use_with selinux) + ) + + econf "${myeconfargs[@]}" +} + +src_compile() { + emake DEBUG="" all +} + +src_install() { + default + find "${ED}" -name '*.la' -delete || die +} + +pkg_postinst() { + if [[ ${CHOST} == *-solaris* ]] ; then + einfo "Note: to use lsof on Solaris you need read permissions on" + einfo "/dev/kmem, i.e. you need to be root, or to be in the group sys" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-process/procps/procps-4.0.6.ebuild b/sdk_container/src/third_party/portage-stable/sys-process/procps/procps-4.0.6.ebuild index 4e1dd012308..c4a4b3e3ead 100644 --- a/sdk_container/src/third_party/portage-stable/sys-process/procps/procps-4.0.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-process/procps/procps-4.0.6.ebuild @@ -19,7 +19,7 @@ S="${WORKDIR}"/${PN}-ng-${PV} # See bug #913210 LICENSE="GPL-2+ LGPL-2+ LGPL-2.1+" SLOT="0/1-ng" -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="elogind +kill modern-top +ncurses nls selinux static-libs skill systemd test unicode" RESTRICT="!test? ( test )" 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 e699c5b525e..0756c9acf43 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,65 +1,47 @@ -DIST NVIDIA-Linux-aarch64-535.288.01.run 269886661 BLAKE2B 9f9e994fcefd81e75db9a9c280668ad55423085e34eb9083043bad3f1317379ba14ffc9442fe94ee26b600f1ecf2e19f83708dae1c599b6a9df69d94ac3e116f SHA512 e8df9e97500a87d68e8c8d1f9601a8b37f2dd93773928a96b605a515d37e9382782cbdc0900cd6151923ae385045c644af3e37cc006771830ac0b0a532afb09c -DIST NVIDIA-Linux-aarch64-570.211.01.run 290912556 BLAKE2B 4335d6a6b7a55bc7d2717071c6be968b63c90932592534be8eff28290a8bf98614b37bb52b4ee0f9563a6f0fdacf6b0e8a04b8eedbe8081587962f3599209a88 SHA512 22816d8f798d6ce141ff2ce750b5df1ca4fef9b1ba79762157fd7f93c1ea905c74f421dc6ac2b7bf5b383192d2baa735d7a7d240523be815defb68be54c4a6be -DIST NVIDIA-Linux-aarch64-580.126.18.run 313585073 BLAKE2B 9cf8680392434126ae60cc4260f6a3ee44a74c8a5c5623e9990feb6b73cd4fc4661c2111214b192957ccc0c0e2623c3649685e739bc7440e36cbcbf4949bfc3f SHA512 b453b8aa9fa4fdaa1ce532f69a52317606d41728958a49f05e9725c093ebe8e90c65b5e5ad095ebcf5febdcd2d712bf0246ce06746078d8333c75bb7559b4245 -DIST NVIDIA-Linux-aarch64-580.142.run 314153601 BLAKE2B 6eb7db2f8ad7eba611a0591dc2aeb914a071d1edb08a601963c911f7c1a9c737bab0938e2ef1000503b39acfef418e58b4d8b94e0d14eab31ca8d75769cf7a48 SHA512 b5ed762d1acc884093a3fc233ea48008138c70483b5b551c406a473f3920e73bbb79fc76fc5539e5fb2921aa2e2983214ddd013de30aa20e9e77af3e5163d071 -DIST NVIDIA-Linux-aarch64-590.48.01.run 319634379 BLAKE2B ff1b0641f8d4dfc834d9627fa934c5491bddcb9e6f5396a07d6d7831c15e2ab396614ff1ab6b5af4a69b42b8c6a022215cc1e3531eca7ca177c9d940f52281ea SHA512 ec81da1a11dd9609427e40434cba69d7c0426e4d60cb5c078c66ec992b6dd44483df2c9dfe02deb4db3a815a4c801b3c42f6ac2b08f0506327f1cdfe5446211d -DIST NVIDIA-Linux-aarch64-595.45.04.run 316623169 BLAKE2B 0596a7896b895d9f96545e30231056885d8688ce0cf144d56c87a2cf91877d7e8573a821dd522968da09c4aad72565861a2f6c27065b9457a8d4df536b336327 SHA512 a75b927d660f22fd353a500ed4732fd7bdfe12b30d8c7aeb00d7a6d770d9df080d441aa070f302a5d0e386eeeae3fb82a7629108d31c8cc77a142e7de9d352dd +DIST NVIDIA-Linux-aarch64-535.309.01.run 270033799 BLAKE2B 3f5ce5f024d0bb35707034f41211d0c60a3711643dbae8d8f29830c9029c9c66a1e232651c9a5b9c1fb699078ab6aef0c3f2df476a14eee7cd1258e0c8141971 SHA512 ee2f59716d06652dc9083376d758a1f1ba60a11139534d67c39d8b6a4abd2290017d97cc2c8b1ed8bf5ef659e075ccd1a546125a3ce57b6ddd61ada5ba7e6cf2 +DIST NVIDIA-Linux-aarch64-580.159.03.run 314175977 BLAKE2B 20b0446d8870c2a667f25d9d68c906bbe159bd5f2095c975fba468e1407448052467c32a9b6eb96e9073d3f2121420be4e3ff1173d26816d862dd026249baf2e SHA512 0213dff7afc53733ef0ec9d8d24b20f8f577aa3225470fa2b86bf74939075683eefa9cd12aef94b8239ba8366aacdec605ee13b8259da9a1393761d853c3e453 +DIST NVIDIA-Linux-aarch64-580.159.04.run 313659746 BLAKE2B be22824e065d565301435cdb8d22139ae1a52654830c1350cf9bb43d1bb14294cf3e37e05fb4cc2c8e121cfd860b0221943b85ae4a96cff293803c0ec4c6b214 SHA512 2c23269305b59563924dfae85d4eb49a88bf391b77d5edf05026d33f4ff1b504b51847cae0404c6885dc543303889ae665e1c08258fc52737b7b610ec5135521 +DIST NVIDIA-Linux-aarch64-595.71.05.run 316744636 BLAKE2B 8a3c0179701342ef649cc9d247688cd6ae3a6be88920830ca8f81dd7b2e1862e497164698acf484bb145b04002e3903b1aa8116abd4530c7200f0d9ae525159c SHA512 a2d4ee2c260e34c16b7e04e9dbbe3a8ca486279e7743fb2b95ffa02cedb5e42ad7c5dc4c26fead86cd3a7d7ccf7467439d93691e0e0ce66e8425e622a07bf050 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.288.01.run 341968325 BLAKE2B e37428855b41c295e5c6df66a029f4a1f6916af932a159587002c6b20b58c8280faee1a4fd6edf4791439df4da6bd21d18b3c9bdf300b3923f5dd30666f44d90 SHA512 8ccd90cc37cef6591412c9c0d3a48af9fe08bf5d715a2e8a9c0adab1fb8e72b716ec75c8b81bc0ac9d09d6f82fa8e01af144bfba5d58cfe7a524c47aa97ae6e1 -DIST NVIDIA-Linux-x86_64-570.211.01.run 376192072 BLAKE2B 56a135681eba576377106b5ee4bad4e0ec7e41e512db8e32297fbafe03455ee4e9e0dafe782588dd3832fde74ecfd9ee5858ec662f3dc2ef3f1e1dab7a9c909d SHA512 3e751d90a8f126e369c5167e2d5ba8b218dd306ccf00907290ae70fb1c3f752f0ad0b973ce356a1a24cd0f19c31a07169cfd5705613a6bbb5918881635650839 -DIST NVIDIA-Linux-x86_64-580.126.18.run 396862844 BLAKE2B fa2d992d4f23beac7a10bc5d17695ee0c211e3afcb6fb9135f09b8eebed86db226b1cb4b9646917ab28f6127136b349fbc02deeecef2c5625f2be6a178cd268e SHA512 3007896838256c5534d7a04958f38f2837314b09d05e595966ba68789b0166fd8c1a574b29c8dd9ee5414822c9aebad9f9c7e5db777b811701fcac2b92245f0f -DIST NVIDIA-Linux-x86_64-580.142.run 398046590 BLAKE2B 35334970e7d233113a989436f71eb1ce6f374f8071e4c1933779d23c3d54511b49b9a5709989863d50095cc858aae839e47d9020b6d010b7eab201eed1362b20 SHA512 1091bb1ee4e603b48b6122d226c7406b5aed001d631dca7562723b641a2915bf41cc2578c21e89e6dcc41c571bc65fc9df206acba72ff26ea83ba500de422ec3 -DIST NVIDIA-Linux-x86_64-580.94.18.run 397082112 BLAKE2B c8ca38518debb4ed7bc26114aeb375acfe7da7f63056f08a9422f8e785f8488b1bfb9a66410985e8f883266f0befcd5bcd08e6bd4e0489c31bdf6374abe42bd1 SHA512 b1141f13cf2160e25004c9147328e60afb48b17866c907adfe1db6730ed50163fe5b8ff641d180c4b0420c0f47c0928585e52bf23c196d43a375d7a9466f8fe7 -DIST NVIDIA-Linux-x86_64-590.48.01.run 416273526 BLAKE2B 57bc232f3d5cc52b3ba7c097e5c04b0e128947b34f75c8c7a75135ebbdda565dd9ae829f3707cfef35a9b8b554f2b46a50756f6b256a0f0280c22cf9ecefb2e1 SHA512 31fd82af707dbe9a6d3848766925386f5e91c5fae0a605819450eb8e5a5a52eaab3ae5cff50b4dd36bc5c32fe1aabc29a6a79438d6614988c7b08f509ef0da6d -DIST NVIDIA-Linux-x86_64-595.44.03.run 423207579 BLAKE2B 34620488400b7be01746c90500f9418ac58d73b95866591ebcf18da98a9b25d5ff5bd3941c135380e499a1b71f4eb7081dec3db3438dcee569f7fb6234cc2c3e SHA512 d1e0189c480faf19a75ca7a1f6d31a7ba147d4d9d056c64823bf9ddb950e9754c3ae66914e921e8dddc447309d39e7009f5cc2c04fc04114784f36a2cfd27609 -DIST NVIDIA-Linux-x86_64-595.45.04.run 423188245 BLAKE2B 262bad2e9caf54c54968a5bdd3385d4ce725a4fe97537d92be20cf20c692c2d6fbaf875e8af5d62685158db6cafc22c656f33b08bfd0353cc137822211e90c2c SHA512 36907e0329564787e42eb598eff48e04c4058856bc95115cd5448eb4dfd351ac3d0df95b0fe5d2ef68e7ce9e848689955f40b3a9302d5231366efa89cfb21f7d -DIST NVIDIA-kernel-module-source-535.288.01.tar.xz 12538144 BLAKE2B 597c58a62591e82b77fb29527d240bd2043b37439a1e7089ce5ab7ecb514ca3cae5be415aa4324f1156c08ddc1138c02e58337df5f38eaf7f19294773e4bcebc SHA512 b70d95af6737c36f8573d877a3473d38ecf3d7a4a35b899c38c1682888b455dcc60f6738ccee60a584477856b79dd25e6a10ffd1a4503c1d78a88902ba8329b4 -DIST NVIDIA-kernel-module-source-570.211.01.tar.xz 17951900 BLAKE2B d40d2c1b4a92dfe8da95e1000413dfb484c9c96ad232dd5db14246378f6df8e73f04706592a536025c3d5512d5e663e7841de8bda782e3611b4b594b9b107ad4 SHA512 c988270d3aaa707310c3924de83eb5f5bdc4d022d1666eb3f41ed46eff35e98a765d4d6d34c22c02ac507016bed3c34af1da2e1befc285ec9158031a4a1447e4 -DIST NVIDIA-kernel-module-source-580.126.18.tar.xz 22192576 BLAKE2B ed2b39aaed517a3a55633c6e0fc5605641bf85fcf370b1c8e7eb3950d3cf9112b6c3656ef3aff3fedbbbb769bb7f975a87f218b91c4131a9930cc04c8df27bf0 SHA512 810c596cdb40666b5dbccf9c1d358ef155e9171a489513f78fee73f48d73798fee0f655d8a9c994144d933ff9a9e0fc362f7c4918f87c8dfa9f00d30beee102e -DIST NVIDIA-kernel-module-source-580.142.tar.xz 22252916 BLAKE2B d062d17d4f06d8299dfdf1aa10da9c90945a41602d439751f8b2366bece701828d2bee4d544aea2266b6ba149532bb718b2b7e3602ad603c501222730fa19058 SHA512 fd1276f64114dcd2fea13800d01e810adc0b4ff3d17e46a5b32e6778907426b35c71dddf48343c8141be97a035d7b277a2d1f72a2c9f249c2ad0aae30d541850 -DIST NVIDIA-kernel-module-source-590.48.01.tar.xz 22530000 BLAKE2B eae57ceccc78f0730fc4962b20f08f270bd21960e84ad5985433590e5229403a74bfc2518540f9e2ef07d319d9cb2288edfbe0d5f7a27cc7e0903aa61fed388c SHA512 6fe32d5d1a84df0baeaaecd4a847ba73a89bcd1b51d5f9c7525efd2af891f6d5512c1ac97c8b766ba1d1103312c53e5406653589e22684df9260fd75977591a6 -DIST NVIDIA-kernel-module-source-595.45.04.tar.xz 23778508 BLAKE2B 604dbf06c03ac2002efbebb0581711f2a4e698353bde84a3fc78b5fbb5b0b1bd358a6c0bd418ca91b0d7e7d4d44f23ec7e47844b357675584b31e47c8b96b05c SHA512 c1179c9ea356d41b29ca9cc9f9771294575667dd72ba5dba208679a2197119ddd82f8345797661ef064b07dbfcbe123e964d52cd3516e3b9555833c3b964635d +DIST NVIDIA-Linux-x86_64-535.309.01.run 341945818 BLAKE2B dc7bca19eee348648ed6ded096ed9eedc953d7e5be84bb812baf98230096c9f3a92421abb9adfcd0c257dc63a31d9f4fe4a02c7bdc4be65975229941fc39fa5a SHA512 16a505fb053d514b98bed816559279cbe2962eef8a3d64cce7aaf859b2d27602ac9018bb099a56ab4223532f70e00984e5468a4ba9c2914dc68dcbe0d8b2d64d +DIST NVIDIA-Linux-x86_64-580.159.03.run 398016015 BLAKE2B 6ac3bb48c17bdd9a143fd3483913784d14cc7fb7120b20c0d74de7aebb9569c945d693af4e7c2e2f50fca97e67c26ac91e4943d21ff636a30e372888cff02d94 SHA512 658c7bee6289f9e3d4d04fabc9fee5692ec2a61242d05dddbad61d5d667fbc47ea2cb57802079b6f139c240d9119da4b462548a79a03483dfac53de797ffb5cf +DIST NVIDIA-Linux-x86_64-580.159.04.run 397162548 BLAKE2B ee0dd051341955d8eab23a12b4a1b81a4977346b2324db175522c07e252ac6c9cea179810ba1535095796ad89ccd92826506dc73954496130249b1c355cb4288 SHA512 50cc5f58ef733f8f196c71dd7b7756fc1e2f163533d9333af4341aa1379b4b68fe5a4afc5698494b2e0928fc970e902d32e6e3f8f6795d03657842c1c6434fe4 +DIST NVIDIA-Linux-x86_64-595.44.09.run 423549686 BLAKE2B eb3f959b4103895db808743f6986036a275689fabadeb16be5f9e496ccc7a963447568c8d8b248ca9bd2e8843e32c676a4e63d360dcfbde5df7a32405284b59b SHA512 835f22e562d0ac362473cd6425a9065a05a360d6c9d85e4973d34e2005468b75e177283cac8140c725f5146db3e748065eb9b93787936692fd54a8ab80939f9b +DIST NVIDIA-Linux-x86_64-595.71.05.run 423133031 BLAKE2B 770af0e6228c300de069b2e87467d030d199dcd9f9c6e32c583291eaac7196974f72f1e25902b8e38056897cff99f845adf73e3eab6dedfce8339b21b76b1042 SHA512 75d22994ba963223300d3c57fdc05803ddf7d8630fb5aee3ba92017d6f614e4a7019dc09f0f02b02ec28d6d5607e284d4e6de2cd506eeda604f75a2d4177028a +DIST NVIDIA-kernel-module-source-535.309.01.tar.xz 12537052 BLAKE2B 2bff6a129c7c407de95d140fefefd50c266c7c8dcf938a71690545cff65b3502872645e79d47f9091deac54b7e140bd93a321b18af0b9cb24ca958f033461c53 SHA512 5bd08038823f3f9c39307b441cadc6231d71195adf1835f33e5af794df24be8abed83d3b246edbf5cbaae2379b52ecdd5c975c722001e19fc96054528bada773 +DIST NVIDIA-kernel-module-source-580.159.03.tar.xz 22253960 BLAKE2B 31245291564c734c5facc49e866b345f92d4fc08baabda4a9d49ea2073e62fbcbae9f4a39dfb430533ed0bef2acbf36d4546d9cce3a3da582b2cfbaed0ddfbce SHA512 8deb20e9d5b65cc9d701cacf1470187dd72765a291ff6c7ed3b6c6dda32287271befbb88d0bb6cab736958eca96b4e093182848274ca2cfd901ae65bcac06abf +DIST NVIDIA-kernel-module-source-580.159.04.tar.xz 22255440 BLAKE2B b293f941ead331674b235a6d75961b13eb488c306e22a2afb50cfaa965e65fc0768cb9642fc82a16ce1b6383ccf7c252b729ec305a39db3dec38284e4fb7191b SHA512 f0ef07705510aad25344b51129c2a62d6a36a0eac02e5a60b36dc47c88cfb91d875e0298369c3bca97208deccd3f2f0d1a595abf9e01b6433bf194c778f134e9 +DIST NVIDIA-kernel-module-source-595.71.05.tar.xz 23778996 BLAKE2B 45361ac9830c16c748688545501124647859c247c5cf7dc6ab4508fe614425715c7299cf88728a3da4111c7fbf6f9eab8a1c77b039ebd868dc7a6367b5e97ff8 SHA512 dc417fd79ac6fa388e8c66ecb55e8207ddf19f4f98b5a04a574aad9a100753e9930e29cae08c4d36721cf56863b107ace4695207c6c91f4a831ebc3f0108e1cf 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.288.01.tar.bz2 148906 BLAKE2B c559bfaeddd1af6c72647fb2e5c46638817339bd59ced80bcc6acfa14304f5ab07123aa0e43d18feff5d2582f08ceb0f84d2b97eef783bcd833c12f751e4c945 SHA512 b5d92a68b39a11709dae83ded0d9b860f9ff4cef514a1eb957305daf80d4354a272a88e4a58db61547b0073e57c2913f2dc038c2d51b2eb649fc9ae25eb42954 -DIST nvidia-installer-570.211.01.tar.bz2 169330 BLAKE2B 100cdb3e0cccb19e3bbf69d4289d079a64cbca95fc20f4d48179190b5e61cfdcbfeb5b95c381c70824c185975356a70af4c89efb53ca0cbc5c61fc95d974ca77 SHA512 90efcd442feacd7f9d9bf25fddb77c521b2e7c79063703c320ce2bbd50a5cce950b0937ec926e89081634c6606c18861efda0e6288e24fab5ee31cd5d52d211f -DIST nvidia-installer-580.126.18.tar.bz2 169283 BLAKE2B 87e64a32358d5547dee98293b7a507465d1375bc1262f011d181112aa4d3f2103b2820587d688f92cf3cc8f6bf0e120e695998d47ca98de9c950c16f0428b0a9 SHA512 54bb99cd8b17004f7ed0ab87ef781104410d6eb57be2789c15550fbb2215473cc1180410c8dd2b2f75af3132c1047eeb5e906f45fcd7d6931dec3b1bb1db9d9c -DIST nvidia-installer-580.142.tar.bz2 169744 BLAKE2B ff718da9c9e04dc216a5fc7f17440215ce2e130bcd3d3a5caff283d0b8f922f2905baa7fdc419a44068f88cbd68a7db1d1a3b1d14ec3e1e72cbfd77c8c6941d7 SHA512 6587195ad86ca966107fc8c00e5c5c980e7612be128c9083fbd6ae2038139913e0fa240771c8ada5ddcb68ffc6ef654acca938a458738f093f4c289ee537d1f5 -DIST nvidia-installer-590.48.01.tar.bz2 170826 BLAKE2B 450bd298e6c574ae6dc085714c130984058f6e606c3de628c5adeefddbfde3bf2e025b1e422948311e9e028cfbc6e8d4c68a22a10d30a9a28466f3105aa7c13c SHA512 4c776ad602594a5d2ced2570fd26b51e5fdf5b7613c43263a7f647a5d3d550c6c35960a6cd8884766a71f0b34c397e7d8bd0507b84043cbbc1c04a82ec067932 -DIST nvidia-installer-595.45.04.tar.bz2 171588 BLAKE2B ec9ac1711672be755e03aabbb83fc35d108dd524304798f7c893f57d93ef47337f61103a7a853262776d5577b679660f5129e1784eec7b9283aee4ced47015f4 SHA512 13769efd203b29dfb36f2e1a77b96dd868322d0674fc9b2e6fc7e147e043cd8280fc4ff41cc1e5356a0078dd5c88dedce657bcb00ac0642ba24172e104500df9 +DIST nvidia-installer-535.309.01.tar.bz2 149086 BLAKE2B 14ed4eed4d3f998bf3c93d7cdcca8748bad9fa4751b81d193ce00dbd9694b9ae38fa865a2e82c5ec78ba58f10a73c0d5120b5aa2069cd418b9d423c3da592aab SHA512 e4a362fc0980e34c984be811570fac7b2b0ace3a7105643f8b3d15122cbc6fb9988d017e22a72659dba40588638b60eaf243bd228a386e8d2d12db0f50f42f0a +DIST nvidia-installer-580.159.03.tar.bz2 169966 BLAKE2B 9f723b18796de0c34eef130e5bd854f55d310351fc13891041d01a55a0b79d2a69e4b36be9dc9d8216442819399b93ab7f4f2581a66ded2de2994b1a4e132018 SHA512 3da64f9039466b95910bc165473d5f6e39bd48ac5c8aef6ab3b196f6054cc177e2182aebc532a285f076b2d277982346cedcd952c3a5487a617bc85db2b351f5 +DIST nvidia-installer-580.159.04.tar.bz2 169644 BLAKE2B f01f9da4e7e3ed6524f586706a7167746c88e7033d61d7ee459408748c0eaf75b236667e7177baae282c1e4ac0896abe9ab2e6796ba2638b2db6ad074646eff0 SHA512 00d11f80b8f410d8110a8450ea56a653a5a223bb1e728382e63312121d3926985c815019dc9cd0659ed97ce824f0c29d67d1188b41f1a3120e25881f1403ddce +DIST nvidia-installer-595.71.05.tar.bz2 172399 BLAKE2B fda7ec136805aa7e481162af171206c3e6dd8c641fc60910f1336895b87ec1e4ab7469456d3fe96ec18f763df3ab158e7c707edb89833a628fe24e69ad97080a SHA512 08ebd56a639cad608db8a82cccfc386cad4f2dadb7a01a7318f5cd70b0428e0d62fc51cf6c8fef16d567c226f5cc83c8905fb3bc36404abbc5a6bf36c0b26403 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.288.01.tar.bz2 40729 BLAKE2B 60a8a22bcbaefb4d7ab1bbddba814939078b88a0ffb3f3fafece04910b476370f5e1f38878b1c0f109abe4449193dcbfcd308efadd03d28786b78dd2eaeac75b SHA512 0acb8e676fbc230978b97302df98450ee11fc7d59927c46643a8f92d5aec99a5d1d1bca861203a013cfbc61cadf89ed74e2fa999932264b833e3b5a53d42836e -DIST nvidia-modprobe-570.211.01.tar.bz2 41631 BLAKE2B 953113337b742ea246bf24a47cbe679f03d89ecfa48a655f179b0913dd7d9c1742f4b1bd765c4d4263c9d45c352de87bff9f0a5a2c3aa48c86f221177cd5d1fb SHA512 c1bbba303b587f18e824cd2dd9a74341d5a03ee56c6adff67bb33c4f65ed16742f094dca9457a04d68b676c3671756e47d996090523827f42c8780329988e3fb -DIST nvidia-modprobe-580.126.18.tar.bz2 41651 BLAKE2B f2b8c639e50841f844e32ec4e41381af034c99ec81250fec68d7a79af5e61b005fd43c802d2dc9983f74b9816b8f6996b2580d21aca21ba3dcf4097fdb6dc11c SHA512 a179eb37f9513f962976d58c16417f90e6b51d43dacbed720d05727f1d6404dff1f81b4206dc913161198776028636187fab6812c2ec96fa9cca70d9e63c0652 -DIST nvidia-modprobe-580.142.tar.bz2 41674 BLAKE2B 7d6d0282bbb1492825216f370fcfe605012f6e65c1c731e0a4bde58f8129b19abc40804c80691c50ede66298894fd0590057f80952c179fa908b82d872d1a5b3 SHA512 f6305dc71dc31219202262f94ec17f747da267aaf1e89a5bf8aa4096e52eb5ea6bee3a1653a525157b188f35763fc4420b78f658b13c530e42ba9a9c67cbf125 -DIST nvidia-modprobe-590.48.01.tar.bz2 41660 BLAKE2B 0780a1aa529d95323b37115efa529dab030cbea589a03ddc70460f4176e7aa88388401ce8508a093a2e9a0ad406589e9e94ff0391021307e879cbcacec8b6759 SHA512 805a70d5012fbc26af3787104e39b3626b2ed7d53a4989365d2fbf6926daf817eec1dc6b7cd50dfbfe29bbd71569ac3095f0a37cad2199994dbdaa76720d8fb0 -DIST nvidia-modprobe-595.45.04.tar.bz2 41723 BLAKE2B 1dfd5c71de90f7522d7a33e90597706f407fc68c60d2c9e2f2827803b4b41b6431a7e00ef64382c2e0760b3f09c2d0b4227e75bdde64080d736d9c5b380b214a SHA512 9c3d77077cc53ab41047ca8ebc838d1345fd14a039a118fca04a88de832ebfde241d3714eb7720431021f3ea521202f2a88b0d66a9c1273429515a0c919c3463 +DIST nvidia-modprobe-535.309.01.tar.bz2 40756 BLAKE2B 4c8d41c3f8d811155aad952e7120bed92e44d50e6af3551396f4be73f733f64b72d76d670676adc957efcf4c0e05df6473ca50a7cd378e56a0da52f8dfb2246e SHA512 b39f282034320836cc4424901d0230b5bdeb72050f18e0d024715a89b0085fe5a420ca82425ded4218a25ee3f7e8f6fa1abb37ac37843eb1b9e35aa8a2657a66 +DIST nvidia-modprobe-580.159.03.tar.bz2 41685 BLAKE2B b8df703c509987538e979ed1d65131004dfd2eea3b4d4a9a98c2784a13523f8ea55fda24fb9d3f04a1bcad04d8726ffceb4f5abe9eb19f50fee5c91f8f1db99c SHA512 09d4d1b0474bb35a0e64f6a6b550096b7e5c18bc1746300211d829bc6ef503b301b2ca8909057cbfcd8585a9969ea807ab746bc253ccf2f5f2cc5ec263a989d6 +DIST nvidia-modprobe-580.159.04.tar.bz2 41688 BLAKE2B 4600a5ec3428d0340e4268c7b191c5cc872680e3b7cfb2d3886c05b3d9706295b276cea6a957bc5263a21d7e9a60a18f8986efa1f88a9b13d9f22c3b2534bcff SHA512 9577d291a23e8044a1d8caedd5c9a7d900698b7d53f9a2373c9e38a313be0846d7e4965fdecb081d18144f01216159c4bcae7c0741d3210c7e9d8b0f42d91099 +DIST nvidia-modprobe-595.71.05.tar.bz2 41724 BLAKE2B 23a0fd55e50106341a4196af7bca568c96555c6b0583ae41b860ac73ed4cd6d5222709a88768662fd18a2e4f7686ff092e5603497af71ea7dcbebaf50235c54e SHA512 97fa81a96884f4c2fa6ecdb86d513121b00e8bc955b9bea0947c8ab34271a016458e405df451fb6340e4b8243572980b5e7a4f24af2775310d3cae35a1bcee0b 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.288.01.tar.bz2 48600 BLAKE2B 025d2d28a078354898a501eef857d496e504279e45ab2b167a4abd5345d50e8effa1432a46da7ffc0276faed5698fb02afec21eee810335daac638e4656d7ce8 SHA512 b92c96b12346d8e26321679ae51532e8d28eff6c2998b6e781ea840eecf022823e47b48ac0c918c1069eb04a601833c4e70c88f66eb4891bdea2a85666597d90 -DIST nvidia-persistenced-570.211.01.tar.bz2 61779 BLAKE2B 02ac6f53eb4c053ca894f79b49d2a4b1b1f8e9f1a349053794542e72112bf0fab87aa2ee317d486758aaf77811c929d0aa8fbbcef9de8cc59836445ef845cb7d SHA512 5cb8feb56bf245e8e51e65d3d6d31f2b588e7b84ca29330e564d3c27ab37ceb67df0f80f8b37dfafb49a9fe8d7fef6b26d6334c6403902737298e8f3b23d1cb3 -DIST nvidia-persistenced-580.126.18.tar.bz2 62246 BLAKE2B 2dd91f79713631afebd574bd3eed8fe2867083bece0ba9f57ffc3d41221729e39b2e04a2514b137c7a9407b0cb9569de3dc0c8f5ae78f9a15c78600c6feb8198 SHA512 32394ef4922b466a56f666ecea913831338af02a9768b85275ad1bbd9a7f75379e17597828412a4080a0dcfafb7e9bd5510d6244539594ca60a22a541de8458e -DIST nvidia-persistenced-580.142.tar.bz2 62217 BLAKE2B aacca7d951bba2a47c5e8daf816b304c122e89a8adb4a80c693883d619a263e99acd4013874cb843f1b9b5b02affd91dad32334c766f66cef51ad654e23e9fe2 SHA512 92266c22ff1e37c4a1f92b1ae27eff41a3db56a3568646e6e4662572b2aa61b8338df34b7864343a7557e5dab1380fc9b37ed1038730b35123d88e7bc7ce4117 -DIST nvidia-persistenced-590.48.01.tar.bz2 62193 BLAKE2B e6f03ce2f24f1ddc6b1dc9b7a8dd22de4541d5ec82f85c58943cf48f295e7f77555765b01edcce1c7f5ba67580c51273de8b8200d522c49e2321cffcfc8aeb6b SHA512 960f37355e58da20af92f0f0df091709623e32d9ef4eaba34d1f6b52f71227ac7c3a7f84aec64460952fa32986672f9373774ab1e65149ed426c59be47d7f2d8 -DIST nvidia-persistenced-595.45.04.tar.bz2 62427 BLAKE2B 9e637fd80a7ee75a7ec8f28d62aef2b3c544b00f53b37ddd218a2cbe74715e6880f7edf4662e5662a859ebad2690e901bee369c372c6aa761ef1c4b0704d45a8 SHA512 53816fceeaa47753ca4ae733dab276b9c808283a4fb91c9377c101e9a7b1ea87e8e48a9226f3f05dc6b8343325ea0f6581404f1919c752bf7f7c484a1ca8d820 +DIST nvidia-persistenced-535.309.01.tar.bz2 48569 BLAKE2B 5756b1335d6a1932529babcc401de4f544ea18dd6da271fde258ba046c98584fc736f211e4c5ac485eab70a6d1717b5aac3cb15f818cbf9eda29a64151fbcdf1 SHA512 e49631fbbc1466820c87fe9a7538b7dfaed512690d1b14e4482bfb471c4e144c62d0f2df5bc8dd3aae443475278b0aa1ab9cbe27059a38fce9b82212477b87b1 +DIST nvidia-persistenced-580.159.03.tar.bz2 62211 BLAKE2B be8d6afa3cc3439ce1ff84b4f9100c81247e75572e15f12882f65763497628427b0ccc7b460b95b5c287d9b5170f1917989450277b5d33b1f221745806d4d3e4 SHA512 e81b6eeea182fea9b041d6e7e205332801926c810efd0c32cacbdb23a1d949ac127cb6646e9ac6119fde0a270a882ad3937b79fe0cf5e1cecb342d02e3ffd016 +DIST nvidia-persistenced-580.159.04.tar.bz2 62225 BLAKE2B 2d3b4585c9fa0a9b367c73c204f5350088971690fe98019840405645fc90020c6c1a6e985049b191df796f07784604e97337ef9c39311554cfb05353c1429204 SHA512 057537c1641ef3a4d9f594371ee01c4a0fe821561969cd5c1557bdd8c6b4319aaee02cf6bc583f20e47102ecb8fed99666269c5398e31d17024aa0a299505830 +DIST nvidia-persistenced-595.71.05.tar.bz2 62538 BLAKE2B ebf86357c81689d553d0f1f8a602932ec466781f81402a9bcfd1d4155de6ceaa795dec0ae0b9937b3e02ba2605cc11849bad36847df30aae673fbccb52bc2e3a SHA512 a3fa79468d7b3e8eccfab4f52a6e9240e3d65dec9454a10d350f45e5c27781922bc7ceffcbe6d40d9cf63694d84b4a7678c1f1268b72b821f08d22bbd05f7a78 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.288.01.tar.bz2 1094513 BLAKE2B 8b7112b44bbe3445b63ddc245edbdb717436432482e9f87398863ffd08c520b6ac3527d3d47a75cc7e0ddec3931302e3029ccd7050db1abcc317ebf697284e01 SHA512 f1a817d9463a928fe47fed14da5d1bc0b9cbe0a910cbf01fca0d4edbee0effa989ec1cbf34e0aba6cc8516cf7bdadbc60ee6f0e4178e3c6cfb78301a1ef5aa8b -DIST nvidia-settings-570.211.01.tar.bz2 1123957 BLAKE2B 7355319d29f96aeeada3cd1ffd08b053fa76a5f2f0dd35fac383ff5c1ffd4abba95d0a7f0f421fc4b74a11f2c94352c9e2db363034e5361a0d18017a321261f2 SHA512 8f29c02597eedd934531e703c617aaa7504effe836257de07c664145e07690b0b34b8c893c01e9e561bf90cb3c15b1b6c116e2a7a88ea1a733f2872490c10441 -DIST nvidia-settings-580.126.18.tar.bz2 1132578 BLAKE2B d903f91d84de3f98fcb6c32601c77297ad8cb34e74dc5719a36e5777a4f2003207f7ec3c41defaea4b26af739099a84648f994720db700090b81f7980d3e7cdb SHA512 6980829ba2e4517f0765b3a0321e408182627ed4f08601b9a44cbb7fd35bac46ba6eedc890e585ac9d1feb971fc0a0f3ae6992f3ee30bfe496cdec97ef4d6f30 -DIST nvidia-settings-580.142.tar.bz2 1132719 BLAKE2B 1ec635ad85070570c544a8fa8df6e28625132bbeb09864e6ec30871b38f99f26dc35068aef33f2a2d9a2ed4584c9e54ab54aa2843a77474a21ceba127f54386e SHA512 23b9a3b67f4fe1c697b6093facf26ad25cca38022620725e3f0104ec184ee2cdae9fe7b2b258564335328937dc97b635055345a095c263ff090431f58f4e9ce7 -DIST nvidia-settings-590.48.01.tar.bz2 1134292 BLAKE2B 901a3bad03d4eaca3f78afc154539f72aa882ae19052b43b6bfb267a3be1ded4af607fbc05d1a379a8038a22fa5a9c19dd6c393f3436cda97cc7049820f1ec57 SHA512 c82737dc8894a35b7e87afd99fb98c0a4093ec8fd48590cc8e09154d55f948ceaf48fff31c7d015adcceab31a00c5ec4334fe1e90aec94c4bb076118b789dd4c -DIST nvidia-settings-595.45.04.tar.bz2 1135962 BLAKE2B 4df308484ffc82b81acc7f19af778f8b2fb98efec7750a1293f57cf894589589a2bbd5791bb042fe9618674c4e112033ddf199b7915d3a229f222f56078c0a5d SHA512 aaab0cfa803e635adb855fdf7874d8b0da90fe8e5d192a99d24e0f810dba3afd13b476427c1ef171daf03feb82a35c0d215f0c2d205d90ab4716cd66461eaec2 +DIST nvidia-settings-535.309.01.tar.bz2 1094768 BLAKE2B 6a951e7e8e1ccd968a0727d2c8aa5008044d789dac5002f148930ba7ceb07cd3caa59f265c818392a7fd996bf0418729be349bbc1ea0b8870b1a38f5fa9470f1 SHA512 d0d62c3abffe52ad65585f6e88b894efa07cfb9918d2cb628b771d4d8a40149d9097ad7cb66b01a9bc0b4067e63540f2bd67412fe52105348bcca60955f228c8 +DIST nvidia-settings-580.159.03.tar.bz2 1133196 BLAKE2B c36b3e8333eb325b74152a6fbb3f5e5d001b306ea1c6cf9ed9b8c61479f4d0d72b8fca4b7372cef1b66f06b94e7d20e5b69da61a2e0b16f918df504607a3e7dd SHA512 e50ff8850e4405ea7ad8f5725b4787b3c6166b90585b098270e277c45625f4540ae7ef00a460f1eb6da694fbfdd29fb9ec9ad82c797931106db5dfee40a3edd0 +DIST nvidia-settings-580.159.04.tar.bz2 1133196 BLAKE2B ebe947f523301a612f3bc87c9d38659052158d6e421339e12a879b6e854f0778a6166b91e71d0e4638961d63eb983e0bd899b9cecc45433b51bd04d010c38319 SHA512 edb4def04272bc663a47ad117e67a91f0b6719bb3a8b6d0c85758275767b945bf430ea025828c9fd121550546f65d253b5c54792c2151090b6ad0e7ae9d02c75 +DIST nvidia-settings-595.71.05.tar.bz2 1136100 BLAKE2B 8b0af1e7a81b63042c762794c2f8f3094b40c4a9fc845dae9c39b63c02c613ce6893cb2451806ba775df8128b498259435ad49dd4ea27dafccf0c6c7bfcfda6c SHA512 8f7286863e1306cb50860f83aca046bf4743d3c8c72ddb9e6461e240bb741aa7c03e795081d821808832923ba0e736a4676cf137c84adc8ea770c6d0a28d8dc5 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.288.01.tar.bz2 110671 BLAKE2B 94f8f5c651df7d43de308938312b2c97e8a0292a2575914250e22dc62e139cba36be038453d6f1688e8ebb90883ce0806424eee7ca6fd3a5cee5e9884cfc8d60 SHA512 4368625df5eec5ec8296b9f561a8dc32fda958fd4ea37a4bc9da42303529d6366b41a028d2d9614ba0dcd029a3a5740c15e4fa1febec31da7df51b0b276a831c -DIST nvidia-xconfig-570.211.01.tar.bz2 111263 BLAKE2B 9d6e7e973156d91ce1a213a95aa31269d811024ebf358dfad42c0771cafc6c4f2d4257994d67e67ac637a1107527511d8f8219446e9a57560bab8ba7d4d2684c SHA512 8e8be1e95998fde590bdb5c0246764a426d623c8bf9e705e7bff649f1daebb86726cead4add570622e34aea9a38b697d31d11d7a2fc741dd91af2ccaaa024cd1 -DIST nvidia-xconfig-580.126.18.tar.bz2 111880 BLAKE2B 669b02a4dd3d3b08937f67f7812ac6b4f715d471526b3c5178623699fff2b89c596c199d1b8fa1837bb2a5c784f8adf68d1977686da8c586c5abd3f8b49d71f9 SHA512 769cff278522fd3a5435d0b2c31c627f4091be996f2e13ede2df064e025a32cdbe6818e5a81e86a0338a6e7b9c96b9aa4bd7d8a9ff737f738a46f0be63c9b90a -DIST nvidia-xconfig-580.142.tar.bz2 111478 BLAKE2B cb972f8bcc4c24998671fc50a6946825ee7e25b4175e9fdc6646e0b49946a0172607d8525cf7e5e4f9211aee93014867a9fcfa06e0dba81caab2aac24ff19f5c SHA512 1431131b9c74be5a46c56bdac2d92dcc9f12d7003fd9667565828a6e92f636e251d6d4b98c4e82d67754ba2be61b56f44c881dc3ce10eff00a6bc83930345ad7 -DIST nvidia-xconfig-590.48.01.tar.bz2 110986 BLAKE2B 6ec7f5eee2ca4c4a96f0607ac94ec3d491137a0e8750a6ae4c46feddced61f7a8b1eb77aa333008a69ceab7ad071671b7449bb2ed9ba285359fd1cb991a9c9b2 SHA512 e85dbd9ba5e056fb6f8a4618df35fa1692d0037e50122a5659ebda043a9b380fdf72aaa56f82b64e5525c36f429ed9bbd7f0e319c608f7c50355d47ab3b24077 -DIST nvidia-xconfig-595.45.04.tar.bz2 111057 BLAKE2B 89cab70e2ed1aaf6af883966eed8597010497485ab6b019e8f237ab03c4a4a1bc37aab8ea24f67e96118f7315c21bf4b5056f97b188ce622b390919761e8b3d0 SHA512 85a64cf414f6a2ebf07466c7ecb9ca838810031f59c9fecfff3325fa4db0b37edeae7f6cf94a1127be074fe34af44e9ade06ea36d5c3764a0907d1706b49e8e4 -DIST open-gpu-kernel-modules-580.94.18.tar.gz 23301123 BLAKE2B d05530e8dd763a5305a20fd7a47a99f5bb9088cee68fc023f00c94c48f6477b0db504fa95f3ff1262d21cd57b05af529341bebfc69ec3ce904ac0315d424b0f7 SHA512 71fb699c57061d226ddfc1e8974c9c3f50d68af651e0d56afb425482b35c8892c67f60f9a41bde86e3f6d93b15bb8661d1f57b55b0fc18c84a6b8775ca5328c4 -DIST open-gpu-kernel-modules-595.44.03.tar.gz 24797855 BLAKE2B bd058596f70f6c57a35ca0d2681eb12a7c194cba44fd90bb63fab51e293bf6e42a2b315bd60de1847e89f87850aa38968a8bfab3aa76039d6be2437de3b87726 SHA512 61e4155e176e41e2ce69edcf2bea1e5c43dfed10f259e130b7d390a880677fcb6a332ba45a87b6a685ca748693958b0afca97220e9ecd7bc999abe52d1c7bfc5 +DIST nvidia-xconfig-535.309.01.tar.bz2 111085 BLAKE2B 7a2f55989f93bbfecef0ae0c76113b42cc79c3fefce12f3becb2c3722978115b2408efefa63845ef2f9ef7563f9ce79c5a9cafcc3de4f70605f34aae44d485f5 SHA512 710f279b6e4ac143c39344c44cda5950777c613f193170a76fa948def5a13b5b9177b44651e3b46a2630e7f420a9189671042f76b88c14a31ba6f6dcd78fdb7d +DIST nvidia-xconfig-580.159.03.tar.bz2 111535 BLAKE2B 5ae167c6aae8596e89f1b254ed8cc4c21d20ca4d1ac4d238c79d64458324d5910e9d66b29d8079d9eaa771b2cdc15af3685ac224cf9d1f69dd471838edff783c SHA512 2d34928a5b5f419090742a6592e8c07bbcfc05b037af125c0f20d1267b8685e5a0d4bd8a039192c158579c39c08ac2c49e362d170009db02ba11835f1d8268d1 +DIST nvidia-xconfig-580.159.04.tar.bz2 111540 BLAKE2B 95cfd0c4af5e2d171e39c1e53e225ec92cf5ac9ce3c9953c9e558f08a67e314030f5a2b4618706ffd6e598f314eab45b4d3087a8896222dcbf6c1a4b73a2debb SHA512 878a37240de42baf2f9a453cb3f5aaf0a6029cb1f00b3b1567c9e25175a2e1118b5266965163296eba0b39a9e01137b9d815ed29d4dd67f1ee43d5905b373d98 +DIST nvidia-xconfig-595.71.05.tar.bz2 111096 BLAKE2B 8b6f7e043319577f0b21780cc88ce189b99123ee079a4e5188e7c12d7d2859776f5d47efc1625ba70542df300ba88bf555e8d4638816322966d04c9a316b5a56 SHA512 bf705b1916633d8dfd4742d94358607901bc843f1280954391d9ee7be98da36f0f895811057b8666f59ab3b850bc6e5bb2bf80a88923827497cf0b5a852db6fa +DIST open-gpu-kernel-modules-595.44.09.tar.gz 24805417 BLAKE2B 0281e825fb55982971499bc4a5284115fd0fdd24eb033bbff17010d1e7ace7c041dac56f98123cfbd5009f1f75b25332e3dfa68acc684c3f59ff740769cd291c SHA512 57a43e94740d31b84671cddb061825d954d1039fbdf82572875f8ca3f94309d7480ac19718e96cf062c9a78e8b2ef3598766928f03e9420fed90ab6f3ab65b7a diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-570.conf b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-570.conf deleted file mode 100644 index ffd9d33334e..00000000000 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-570.conf +++ /dev/null @@ -1,48 +0,0 @@ -# NVIDIA drivers options -# See /usr/share/doc/nvidia-drivers-*/README.txt* for more information. - -# nvidia-drivers and nouveau / nova cannot be used at same time. -# Comment out the following lines if you wish to allow either. -blacklist nouveau -blacklist nova_core - -# Kernel Mode Setting (notably needed for fbdev and wayland). -# Enabling may possibly cause issues with SLI and Reverse PRIME. -#options nvidia-drm modeset=1 - -# If modeset=1 ^, NVIDIA will handle the console/tty display and -# allow overriding DRM devices such as simpledrm. This is a default -# since 570.x drivers but has been known to cause a variety of -# problems. Given efifb is more typically used on Gentoo at the moment, -# it is not *required* here and is safer to be disabled for now. -# Comment out the line if you need it. https://bugs.gentoo.org/949097 -options nvidia-drm fbdev=0 - -# Disable use of the GSP firmware which has newly been enabled by default -# for GPUs that support it (Turing/Ampere+ GPUs, aka GTX 1650+). Not -# recommended unless experience regressions for which disabling helps. -# Cannot be disabled if using USE="kernel-open". -#options nvidia NVreg_EnableGpuFirmware=0 - -# Suspend options. Note that Allocations=1 requires suspend hooks currently -# only used when either systemd or elogind is used to suspend. If using -# neither or have issues, try Allocations=0 (revert if it does not help -# as =0 is not recommended). -options nvidia \ - NVreg_PreserveVideoMemoryAllocations=1 \ - NVreg_TemporaryFilePath=/var/tmp - -# !!! Security Warning !!! -# Do not change the DeviceFile options unless you know what you are doing. -# Only add trusted users to the 'video' group, these users may be able to -# crash, compromise, or irreparably damage the machine. -options nvidia \ - NVreg_DeviceFileGID=@VIDEOGID@ \ - NVreg_DeviceFileMode=432 \ - NVreg_DeviceFileUID=0 \ - NVreg_ModifyDeviceFiles=1 - -# Should be no need to touch anything below. -alias char-major-195 nvidia -alias /dev/nvidiactl char-major-195 -remove nvidia modprobe -r --ignore-remove nvidia-drm nvidia-modeset nvidia-uvm nvidia diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-drivers-580.159.03-null-deref.patch b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-drivers-580.159.03-null-deref.patch new file mode 100644 index 00000000000..1e1edfe3356 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-drivers-580.159.03-null-deref.patch @@ -0,0 +1,57 @@ +This reverts the contents of nvidia-drm-fb.c back to the one used +by nvidia-drivers-580.126.18 as a temporary fix to avoid a NULL +dereference sometimes seen when using kwin. + +NVIDIA is aware of the issue but no fix have been deployed as of +the writing of this. Unclear if reverting can cause different +issues but it is believed to be better than doing nothing. + +USE=kernel-open is not known to be affected at the moment, so not +changing anything for the open variant. + +https://bugs.gentoo.org/971109 +https://forums.developer.nvidia.com/t/363409 +--- a/kernel/nvidia-drm/nvidia-drm-fb.c ++++ b/kernel/nvidia-drm/nvidia-drm-fb.c +@@ -64,7 +64,5 @@ + /* Free NvKmsKapiSurface associated with this framebuffer object */ + +- if (nv_fb->pSurface != NULL) { +- nvKms->destroySurface(nv_dev->pDevice, nv_fb->pSurface); +- } ++ nvKms->destroySurface(nv_dev->pDevice, nv_fb->pSurface); + + __nv_drm_framebuffer_free(nv_fb); +@@ -142,5 +140,4 @@ + struct nv_drm_gem_object *nv_gem; + struct drm_framebuffer *fb = &nv_fb->base; +- bool non_scanout_mem_backed = false; + uint32_t i; + int ret; +@@ -164,8 +161,4 @@ + params.planes[i].offset = fb->offsets[i]; + params.planes[i].pitch = fb->pitches[i]; +- +- if (!nvKms->isVidmem(nv_gem->pMemory) && nv_dev->hasVideoMemory) { +- non_scanout_mem_backed = true; +- } + } + } +@@ -234,13 +227,8 @@ + /* Create NvKmsKapiSurface */ + +- if (non_scanout_mem_backed) { +- /* Do not register drm_framebuffer against nvkms */ +- nv_fb->pSurface = NULL; +- } else { +- nv_fb->pSurface = nvKms->createSurface(nv_dev->pDevice, ¶ms); +- if (nv_fb->pSurface == NULL) { +- NV_DRM_DEV_DEBUG_DRIVER(nv_dev, "Failed to create NvKmsKapiSurface"); +- goto fail; +- } ++ nv_fb->pSurface = nvKms->createSurface(nv_dev->pDevice, ¶ms); ++ if (nv_fb->pSurface == NULL) { ++ NV_DRM_DEV_DEBUG_DRIVER(nv_dev, "Failed to create NvKmsKapiSurface"); ++ goto fail; + } + diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-580.126.09-kernel6.19.patch b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-580.126.09-kernel6.19.patch deleted file mode 100644 index bab13eac328..00000000000 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-580.126.09-kernel6.19.patch +++ /dev/null @@ -1,18 +0,0 @@ -https://bugs.gentoo.org/970010 ---- a/kernel-module-source/kernel-open/nvidia-uvm/uvm_hmm.c -+++ b/kernel-module-source/kernel-open/nvidia-uvm/uvm_hmm.c -@@ -22,4 +22,5 @@ - *******************************************************************************/ - -+#include - #include "uvm_hmm.h" - -@@ -79,5 +80,7 @@ - // function will need to be revisited - // --#if defined(NV_ZONE_DEVICE_PAGE_INIT_HAS_ORDER_ARG) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) -+#define ZONE_DEVICE_PAGE_INIT(page) zone_device_page_init(page, page_pgmap(page), 0); -+#elif defined(NV_ZONE_DEVICE_PAGE_INIT_HAS_ORDER_ARG) - #define ZONE_DEVICE_PAGE_INIT(page) zone_device_page_init(page, 0) - #else diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-580.95.05-kernel6.18.patch b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-580.95.05-kernel6.18.patch deleted file mode 100644 index c0e061b6f4d..00000000000 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-580.95.05-kernel6.18.patch +++ /dev/null @@ -1,21 +0,0 @@ -get_dev_pagemap() is only used with CONFIG_ZONE_DEVICE and -USE=kernel-open, and in kernel 6.18 takes one argument in less that -NVIDIA seemingly did not need. - -This is a simplified version of 590.44.01's fix which skips the -conftest.sh changes for easier backporting (at worst the simple version -check may break if the kernel backports this to older kernels). - -[1] https://github.com/NVIDIA/open-gpu-kernel-modules/pull/951 ---- a/kernel-module-source/kernel-open/nvidia-uvm/uvm_va_range_device_p2p.c -+++ b/kernel-module-source/kernel-open/nvidia-uvm/uvm_va_range_device_p2p.c -@@ -361,5 +361,9 @@ - if (gpu->parent->cdmm_enabled) { - get_page(page); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,18,0) -+ get_dev_pagemap(page_to_pfn(page)); -+#else - get_dev_pagemap(page_to_pfn(page), NULL); -+#endif - } - #else diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-590.48.01-kernel6.19.patch b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-590.48.01-kernel6.19.patch deleted file mode 100644 index 0b48d877323..00000000000 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-590.48.01-kernel6.19.patch +++ /dev/null @@ -1,99 +0,0 @@ -https://bugs.gentoo.org/970010 ---- a/kernel-module-source/kernel-open/nvidia-uvm/uvm_hmm.c -+++ b/kernel-module-source/kernel-open/nvidia-uvm/uvm_hmm.c -@@ -57,4 +57,5 @@ - #include - #include -+#include - - #include "uvm_common.h" -@@ -2141,5 +2142,9 @@ - UVM_ASSERT(!page_count(dpage)); - UVM_ASSERT(!dpage->zone_device_data); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) -+ zone_device_page_init(dpage, page_pgmap(dpage), 0); -+#else - zone_device_page_init(dpage); -+#endif - dpage->zone_device_data = gpu_chunk; - atomic64_inc(&va_block->hmm.va_space->hmm.allocated_page_count); ---- a/kernel-module-source/kernel-open/nvidia-uvm/uvm_pmm_gpu.c -+++ b/kernel-module-source/kernel-open/nvidia-uvm/uvm_pmm_gpu.c -@@ -178,4 +178,6 @@ - #include "uvm_linux.h" - -+#include -+ - #if defined(CONFIG_PCI_P2PDMA) && defined(NV_STRUCT_PAGE_HAS_ZONE_DEVICE_DATA) - #include -@@ -3000,6 +3002,12 @@ - } - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) -+static void devmem_folio_free(struct folio *folio) -+{ -+ struct page *page = &folio->page; -+#else - static void devmem_page_free(struct page *page) - { -+#endif - uvm_gpu_chunk_t *chunk = uvm_pmm_devmem_page_to_chunk(page); - uvm_gpu_t *gpu = uvm_gpu_chunk_get_gpu(chunk); -@@ -3061,5 +3069,9 @@ - static const struct dev_pagemap_ops uvm_pmm_devmem_ops = - { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) -+ .folio_free = devmem_folio_free, -+#else - .page_free = devmem_page_free, -+#endif - .migrate_to_ram = devmem_fault_entry, - }; -@@ -3149,6 +3161,12 @@ - } - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) -+static void device_p2p_folio_free(struct folio *folio) -+{ -+ struct page *page = &folio->page; -+#else - static void device_p2p_page_free(struct page *page) - { -+#endif - uvm_device_p2p_mem_t *p2p_mem = page->zone_device_data; - -@@ -3159,12 +3177,24 @@ - - #if UVM_CDMM_PAGES_SUPPORTED() -+ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) -+static void device_coherent_folio_free(struct folio *folio) -+{ -+ device_p2p_folio_free(folio); -+} -+#else - static void device_coherent_page_free(struct page *page) - { - device_p2p_page_free(page); - } -+#endif - - static const struct dev_pagemap_ops uvm_device_coherent_pgmap_ops = - { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) -+ .folio_free = device_coherent_folio_free, -+#else - .page_free = device_coherent_page_free, -+#endif - }; - -@@ -3303,5 +3333,9 @@ - static const struct dev_pagemap_ops uvm_device_p2p_pgmap_ops = - { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) -+ .folio_free = device_p2p_folio_free, -+#else - .page_free = device_p2p_page_free, -+#endif - }; - diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild index ad7489e7d9f..3c7dd26989b 100644 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -447,5 +447,6 @@ pkg_postinst() { ewarn "replace hardware. Will be kept in-tree while possible, but expect it" ewarn "to be removed likely in late 2027 or earlier if major issues arise." ewarn "\nNote that there is no plans to patch in support for kernels branches" - ewarn "newer than 6.1.x which will be supported upstream until December 2026." + ewarn "newer than 6.1.x which will be supported upstream until December 2027" + ewarn "albeit its support *could* end earlier in Gentoo." } diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-470.256.02-r2.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-470.256.02-r2.ebuild index 08c47fd84c7..b707d0ca7be 100644 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-470.256.02-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-470.256.02-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -481,5 +481,6 @@ pkg_postinst() { ewarn "replace hardware. Will be kept in-tree while possible, but expect it" ewarn "to be removed likely in late 2027 or earlier if major issues arise." ewarn "\nNote that there is no plans to patch in support for kernels branches" - ewarn "newer than 6.6.x which will be supported upstream until December 2026." + ewarn "newer than 6.6.x which will be supported upstream until December 2027" + ewarn "albeit its support *could* end earlier in Gentoo." } diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.288.01.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.288.01.ebuild deleted file mode 100644 index 55126f020b2..00000000000 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.288.01.ebuild +++ /dev/null @@ -1,580 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MODULES_OPTIONAL_IUSE=+modules -inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1 multilib -inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info - -MODULES_KERNEL_MAX=6.18 -NV_URI="https://download.nvidia.com/XFree86/" - -DESCRIPTION="NVIDIA Accelerated Graphics Driver" -HOMEPAGE="https://www.nvidia.com/" -SRC_URI=" - amd64? ( ${NV_URI}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-2023 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" - -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 - >=gui-libs/egl-wayland-1.1.10 - media-libs/libglvnd - ) -" -DEPEND=" - ${COMMON_DEPEND} - static-libs? ( - x11-base/xorg-proto - x11-libs/libX11 - x11-libs/libXext - ) - tools? ( - 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-kernel-module-source-515.86.01-raw-ldflags.patch - "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch - "${FILESDIR}"/nvidia-settings-390.144-raw-ldflags.patch - "${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch -) - -pkg_setup() { - use modules && [[ ${MERGE_TYPE} != binary ]] || return - - local CONFIG_CHECK=" - PROC_FS - ~DRM_KMS_HELPER - ~SYSVIPC - ~!LOCKDEP - ~!PREEMPT_RT - ~!SLUB_DEBUG_ON - !DEBUG_MUTEXES - $(usev powerd '~CPU_FREQ') - " - - 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. - Cannot be directly selected in the kernel's menuconfig, and may need - selection of a DRM device even if unused, e.g. CONFIG_DRM_AMDGPU=m or - DRM_I915=y, DRM_NOUVEAU=m also acceptable if a module and not built-in." - - local ERROR_X86_KERNEL_IBT="CONFIG_X86_KERNEL_IBT: is set and, if the CPU supports the feature, - this *could* lead to modules load failure with ENDBR errors, or to - broken CUDA/NVENC. Please ignore if not having issues, but otherwise - try to unset or pass ibt=off to the kernel's command line." #911142 - use kernel-open || CONFIG_CHECK+=" ~!X86_KERNEL_IBT" - - use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764 - - use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827 - 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_AMD_IOMMU=y, - or DRM_I915=m (among others, consult the kernel config's help)." - - 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-470.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 - - # temporary option, nvidia will remove in the future - use !kernel-open || - sed -i '/blacklist/a\ -\ -# Enable using kernel-open with workstation GPUs (experimental)\ -options nvidia NVreg_OpenRmEnableUnsupportedGpus=1' "${T}"/nvidia.conf || die -} - -src_compile() { - tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG - local -x RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" # raw-ldflags.patch - - # extra flags for the libXNVCtrl.a static library - local xnvflags=-fPIC #840389 - tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" - - # Same as uname -m. - local target_arch - case ${ARCH} in - amd64) target_arch=x86_64 ;; - arm64) target_arch=aarch64 ;; - *) die "Unrecognised architecture: ${ARCH}" ;; - esac - - NV_ARGS=( - PREFIX="${EPREFIX}"/usr - HOST_CC="$(tc-getBUILD_CC)" - HOST_LD="$(tc-getBUILD_LD)" - BUILD_GTK2LIB= - NV_USE_BUNDLED_LIBJANSSON=0 - NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out - TARGET_ARCH="${target_arch}" - WAYLAND_AVAILABLE=$(usex wayland 1 0) - XNVCTRL_CFLAGS="${xnvflags}" - ) - - if use modules; then - local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} - - # 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 - 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}" - TARGET_ARCH="${target_arch}" - - # kernel takes "x86" and "x86_64" as meaning the same, but nvidia - # makes the distinction (since 550.135) and is not happy with "x86" - # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 - $(usev amd64 ARCH=x86_64) - ) - - # temporary workaround for bug #914468 - addpredict "${KV_OUT_DIR}" - - linux-mod-r1_src_compile - CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe - use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig - - if use tools; then - # avoid noisy *very* noisy logs with deprecation warnings - CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ - emake "${NV_ARGS[@]}" -C nvidia-settings - elif use static-libs; then - # pretend GTK+3 is available, not actually used (bug #880879) - emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ - -C nvidia-settings/src out/libXNVCtrl.a - fi -} - -src_install() { - local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) - - NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) - - local -A paths=( - [APPLICATION_PROFILE]=/usr/share/nvidia - [CUDA_ICD]=/etc/OpenCL/vendors - [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d - [FIRMWARE]=/lib/firmware/nvidia/${PV} - [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm - [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d - [OPENGL_DATA]=/usr/share/nvidia - [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") - $(usev !wayland libnvidia-vulkan-producer) - 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-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.") - -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 - [[ ${m[0]} =~ ^libnvidia-ngx.so|^libnvidia-egl-gbm.so ]] && - dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 # soname not in .manifest - - 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}.service - - dobin nvidia-bug-report.sh - - # 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 - # 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 /dev/char wrt bug #904292) - # 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/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}[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 && use modules; then - ewarn "\nOpen source variant of ${PN} was selected, be warned it is experimental" - ewarn "and only for modern GPUs (e.g. GTX 1650+). Try to disable if run into issues." - ewarn "Please also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html" - fi - - if use wayland && use modules && [[ ! -v NV_HAD_WAYLAND ]]; then - elog "\nWith 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 "\nIf you experience issues, either disable wayland or edit nvidia.conf." - elog "Of note, may possibly cause issues with SLI and Reverse PRIME." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.309.01.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.309.01.ebuild new file mode 100644 index 00000000000..4ff4047198e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.309.01.ebuild @@ -0,0 +1,574 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODULES_OPTIONAL_IUSE=+modules +inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1 multilib +inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info + +MODULES_KERNEL_MAX=6.18 +NV_URI="https://download.nvidia.com/XFree86/" + +DESCRIPTION="NVIDIA Accelerated Graphics Driver" +HOMEPAGE="https://www.nvidia.com/" +SRC_URI=" + amd64? ( ${NV_URI}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-2023 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" + +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-compat:3 + dev-libs/openssl:0/3 + ) + sys-libs/glibc + X? ( + media-libs/libglvnd[X,abi_x86_32(-)?] + x11-libs/libX11[abi_x86_32(-)?] + x11-libs/libXext[abi_x86_32(-)?] + ) + powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) + wayland? ( + gui-libs/egl-gbm + >=gui-libs/egl-wayland-1.1.10 + media-libs/libglvnd + ) +" +DEPEND=" + ${COMMON_DEPEND} + static-libs? ( + x11-base/xorg-proto + x11-libs/libX11 + x11-libs/libXext + ) + tools? ( + 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-kernel-module-source-515.86.01-raw-ldflags.patch + "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch + "${FILESDIR}"/nvidia-settings-390.144-raw-ldflags.patch + "${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch +) + +pkg_setup() { + use modules && [[ ${MERGE_TYPE} != binary ]] || return + + local CONFIG_CHECK=" + PROC_FS + ~DRM_KMS_HELPER + ~SYSVIPC + ~!LOCKDEP + ~!PREEMPT_RT + ~!SLUB_DEBUG_ON + !DEBUG_MUTEXES + $(usev amd64 'X86_PAT') + $(usev powerd '~CPU_FREQ') + " + + 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. + Cannot be directly selected in the kernel's menuconfig, and may need + selection of a DRM device even if unused, e.g. CONFIG_DRM_AMDGPU=m or + DRM_I915=y, DRM_NOUVEAU=m also acceptable if a module and not built-in." + + use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827 + 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_AMD_IOMMU=y, + or DRM_I915=m (among others, consult the kernel config's help)." + + 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-470.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 + + # temporary option, nvidia will remove in the future + use !kernel-open || + sed -i '/blacklist/a\ +\ +# Enable using kernel-open with workstation GPUs (experimental)\ +options nvidia NVreg_OpenRmEnableUnsupportedGpus=1' "${T}"/nvidia.conf || die +} + +src_compile() { + tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG + local -x RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" # raw-ldflags.patch + + # extra flags for the libXNVCtrl.a static library + local xnvflags=-fPIC #840389 + tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" + + # same as uname -m + local target_arch + case ${ARCH} in + amd64) target_arch=x86_64;; + arm64) target_arch=aarch64;; + *) die "Unrecognised architecture: ${ARCH}";; + esac + + NV_ARGS=( + PREFIX="${EPREFIX}"/usr + HOST_CC="$(tc-getBUILD_CC)" + HOST_LD="$(tc-getBUILD_LD)" + BUILD_GTK2LIB= + NV_USE_BUNDLED_LIBJANSSON=0 + NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + TARGET_ARCH="${target_arch}" + WAYLAND_AVAILABLE=$(usex wayland 1 0) + XNVCTRL_CFLAGS="${xnvflags}" + ) + + if use modules; then + local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} + + 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 + + # the "blob" uses C++ which is an issue if there is debug symbols + # when running pahole + linux_chkconfig_present DEBUG_INFO_BTF_MODULES && append-flags -g0 + 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}" + TARGET_ARCH="${target_arch}" + + # kernel takes "x86" and "x86_64" as meaning the same, but nvidia + # makes the distinction (since 550.135) and is not happy with "x86" + # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 + $(usev amd64 ARCH=x86_64) + ) + + # temporary workaround for bug #914468 + addpredict "${KV_OUT_DIR}" + + linux-mod-r1_src_compile + CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} + fi + + emake "${NV_ARGS[@]}" -C nvidia-modprobe + use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced + use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig + + if use tools; then + # avoid noisy *very* noisy logs with deprecation warnings + CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ + emake "${NV_ARGS[@]}" -C nvidia-settings + elif use static-libs; then + # pretend GTK+3 is available, not actually used (bug #880879) + emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ + -C nvidia-settings/src out/libXNVCtrl.a + fi +} + +src_install() { + local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) + + NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) + + local -A paths=( + [APPLICATION_PROFILE]=/usr/share/nvidia + [CUDA_ICD]=/etc/OpenCL/vendors + [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d + [FIRMWARE]=/lib/firmware/nvidia/${PV} + [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm + [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d + [OPENGL_DATA]=/usr/share/nvidia + [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") + $(usev !wayland libnvidia-vulkan-producer) + 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-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.") + +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 + [[ ${m[0]} =~ ^libnvidia-ngx.so|^libnvidia-egl-gbm.so ]] && + dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 # soname not in .manifest + + 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}.service + + dobin nvidia-bug-report.sh + + # 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 + # 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 /dev/char wrt bug #904292) + # 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/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}[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 && use modules; then + ewarn "\nOpen source variant of ${PN} was selected, be warned it is experimental" + ewarn "and only for modern GPUs (e.g. GTX 1650+). Try to disable if run into issues." + ewarn "Please also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html" + fi + + if use wayland && use modules && [[ ! -v NV_HAD_WAYLAND ]]; then + elog "\nWith 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 "\nIf you experience issues, either disable wayland or edit nvidia.conf." + elog "Of note, may possibly cause issues with SLI and Reverse PRIME." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.211.01.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.211.01.ebuild deleted file mode 100644 index 4d3677fc847..00000000000 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.211.01.ebuild +++ /dev/null @@ -1,589 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MODULES_OPTIONAL_IUSE=+modules -inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1 -inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info - -MODULES_KERNEL_MAX=6.18 -NV_URI="https://download.nvidia.com/XFree86/" - -DESCRIPTION="NVIDIA Accelerated Graphics Driver" -HOMEPAGE="https://www.nvidia.com/" -SRC_URI=" - amd64? ( ${NV_URI}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" - -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_AMD_IOMMU=y, - or DRM_I915=m (among others, consult the kernel config's help)." - 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)" - - # Same as uname -m. - local target_arch - case ${ARCH} in - amd64) target_arch=x86_64 ;; - arm64) target_arch=aarch64 ;; - *) die "Unrecognised architecture: ${ARCH}" ;; - esac - - NV_ARGS=( - PREFIX="${EPREFIX}"/usr - HOST_CC="$(tc-getBUILD_CC)" - HOST_LD="$(tc-getBUILD_LD)" - BUILD_GTK2LIB= - NV_USE_BUNDLED_LIBJANSSON=0 - NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out - TARGET_ARCH="${target_arch}" - WAYLAND_AVAILABLE=$(usex wayland 1 0) - XNVCTRL_CFLAGS="${xnvflags}" - ) - - if use modules; then - local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} - - 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}" - TARGET_ARCH="${target_arch}" - - # kernel takes "x86" and "x86_64" as meaning the same, but nvidia - # makes the distinction (since 550.135) and is not happy with "x86" - # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 - $(usev amd64 ARCH=x86_64) - ) - - # temporary workaround for bug #914468 - addpredict "${KV_OUT_DIR}" - - linux-mod-r1_src_compile - CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe - use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig - - if use tools; then - # avoid noisy *very* noisy logs with deprecation warnings - CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ - emake "${NV_ARGS[@]}" -C nvidia-settings - elif use static-libs; then - # pretend GTK+3 is available, not actually used (bug #880879) - emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ - -C nvidia-settings/src out/libXNVCtrl.a - fi -} - -src_install() { - local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) - - NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) - - local -A paths=( - [APPLICATION_PROFILE]=/usr/share/nvidia - [CUDA_ICD]=/etc/OpenCL/vendors - [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d - [FIRMWARE]=/lib/firmware/nvidia/${PV} - [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm - [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d - [OPENGL_DATA]=/usr/share/nvidia - [VULKANSC_ICD_JSON]=/usr/share/vulkansc - [VULKAN_ICD_JSON]=/usr/share/vulkan - [WINE_LIB]=/usr/${libdir}/nvidia/wine - [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d - - [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions - [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules - [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules - ) - - local skip_files=( - $(usev !X "libGLX_nvidia libglxserver_nvidia") - libGLX_indirect # non-glvnd unused fallback - libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source - libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm - libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland - libnvidia-egl-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 && use modules && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then - ewarn "\nOpen 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 "\nNote 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.126.18.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.18.ebuild deleted file mode 100644 index d2e30cb0cb6..00000000000 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.18.ebuild +++ /dev/null @@ -1,604 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MODULES_OPTIONAL_IUSE=+modules -inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 -inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info - -MODULES_KERNEL_MAX=6.19 -NV_URI="https://download.nvidia.com/XFree86/" - -DESCRIPTION="NVIDIA Accelerated Graphics Driver" -HOMEPAGE="https://www.nvidia.com/" -SRC_URI=" - amd64? ( ${NV_URI}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 -" - -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 - ~!RANDSTRUCT_FULL - ~!RANDSTRUCT_PERFORMANCE - ~!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 is needed for nvidia-drm.modeset=1 - support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf) which is needed for wayland - and for config-less Xorg auto-detection. - ${drm_helper_msg}" - local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using - kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. - ${drm_helper_msg}" - local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for - nvidia-drm.fbdev=1 support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf), may - result in a blank console/tty." - 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_AMD_IOMMU=y, - or DRM_I915=m (among others, consult the kernel config's help)." - 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." - local randstruct_msg="is set but NVIDIA may be unstable with - it such as causing a kernel panic on shutdown, it is recommended to - disable with CONFIG_RANDSTRUCT_NONE=y (https://bugs.gentoo.org/969413 - -- please report if this appears fixed on NVIDIA's side so can remove - this warning)." - local ERROR_RANDSTRUCT_FULL="CONFIG_RANDSTRUCT_FULL: ${randstruct_msg}" - local ERROR_RANDSTRUCT_PERFORMANCE="CONFIG_RANDSTRUCT_PERFORMANCE: ${randstruct_msg}" - - 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 - - # makefile attempts to install wayland library even if not built - use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ - nvidia-settings/src/Makefile || die -} - -src_compile() { - tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG - - # extra flags for the libXNVCtrl.a static library - local xnvflags=-fPIC #840389 - tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" - - # Same as uname -m. - local target_arch - case ${ARCH} in - amd64) target_arch=x86_64 ;; - arm64) target_arch=aarch64 ;; - *) die "Unrecognised architecture: ${ARCH}" ;; - esac - - NV_ARGS=( - PREFIX="${EPREFIX}"/usr - HOST_CC="$(tc-getBUILD_CC)" - HOST_LD="$(tc-getBUILD_LD)" - BUILD_GTK2LIB= - NV_USE_BUNDLED_LIBJANSSON=0 - NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out - TARGET_ARCH="${target_arch}" - WAYLAND_AVAILABLE=$(usex wayland 1 0) - XNVCTRL_CFLAGS="${xnvflags}" - ) - - if use modules; then - local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} - - 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}" - TARGET_ARCH="${target_arch}" - - # kernel takes "x86" and "x86_64" as meaning the same, but nvidia - # makes the distinction (since 550.135) and is not happy with "x86" - # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 - $(usev amd64 ARCH=x86_64) - ) - - # temporary workaround for bug #914468 - addpredict "${KV_OUT_DIR}" - - linux-mod-r1_src_compile - CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe - use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig - - if use tools; then - # avoid noisy *very* noisy logs with deprecation warnings - CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ - emake "${NV_ARGS[@]}" -C nvidia-settings - elif use static-libs; then - # pretend GTK+3 is available, not actually used (bug #880879) - emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ - -C nvidia-settings/src out/libXNVCtrl.a - fi -} - -src_install() { - local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) - - NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) - - local -A paths=( - [APPLICATION_PROFILE]=/usr/share/nvidia - [CUDA_ICD]=/etc/OpenCL/vendors - [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d - [FIRMWARE]=/lib/firmware/nvidia/${PV} - [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm - [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d - [OPENGL_DATA]=/usr/share/nvidia - [VULKANSC_ICD_JSON]=/usr/share/vulkansc - [VULKAN_ICD_JSON]=/usr/share/vulkan - [WINE_LIB]=/usr/${libdir}/nvidia/wine - [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d - - [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions - [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules - [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules - ) - - local skip_files=( - $(usev !X "libGLX_nvidia libglxserver_nvidia") - libGLX_indirect # non-glvnd unused fallback - libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source - libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm - libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland - libnvidia-egl-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 - newins "${FILESDIR}"/nvidia-580.conf nvidia.conf - - # used for gpu verification with binpkgs (not kept, see pkg_preinst) - insinto /usr/share/nvidia - doins supported-gpus/supported-gpus.json - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe install - fowners :video /usr/bin/nvidia-modprobe #505092 - fperms 4710 /usr/bin/nvidia-modprobe - - if use persistenced; then - emake "${NV_ARGS[@]}" -C nvidia-persistenced install - newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced - newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced - systemd_dounit "${T}"/nvidia-persistenced.service - fi - - if use tools; then - emake "${NV_ARGS[@]}" -C nvidia-settings install - - doicon nvidia-settings/doc/nvidia-settings.png - domenu nvidia-settings/doc/nvidia-settings.desktop - - exeinto /etc/X11/xinit/xinitrc.d - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings - fi - - if use static-libs; then - dolib.a nvidia-settings/src/out/libXNVCtrl.a - strip-lto-bytecode - - insinto /usr/include/NVCtrl - doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h - fi - - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install - - # mimic nvidia-installer by reading .manifest to install files - # 0:file 1:perms 2:type 3+:subtype/arguments -:module - local m into - while IFS=' ' read -ra m; do - ! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] || - [[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] || - [[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] || - has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue - - case ${m[2]} in - MANPAGE) - gzip -dc ${m[0]} | newman - ${m[0]%.gz} - pipestatus || die - continue - ;; - GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../ - VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/ - esac - - if [[ -v 'paths[${m[2]}]' ]]; then - into=${paths[${m[2]}]} - elif [[ ${m[2]} == EXPLICIT_PATH ]]; then - into=${m[3]} - elif [[ ${m[2]} == *_BINARY ]]; then - into=/usr/bin - elif [[ ${m[3]} == COMPAT32 ]]; then - use abi_x86_32 || continue - into=/usr/${libdir32} - elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then - into=/usr/${libdir} - else - die "No known installation path for ${m[0]}" - fi - [[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/} - [[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/} - - if [[ ${m[2]} =~ _SYMLINK$ ]]; then - [[ ${m[4]: -1} == / ]] && m[4]=${m[5]} - dosym ${m[4]} ${into}/${m[0]} - continue - fi - # avoid portage warning due to missing soname links in manifest - [[ ${m[0]} =~ ^libnvidia-ngx.so ]] && - dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 - - printf -v m[1] %o $((m[1] | 0200)) # 444->644 - insopts -m${m[1]} - insinto ${into} - doins ${m[0]} - done < .manifest || die - insopts -m0644 # reset - - # MODULE:installer non-skipped extras - : "$(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= - - 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 && use modules && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then - ewarn "\nOpen 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 ver_replacing -lt 580.126.09-r1; then - elog "\n>=nvidia-drivers-580.126.09-r1 changes some defaults that may or may" - elog "not need attention:" - elog "1. nvidia-drm.modeset=1 is now default regardless of USE=wayland" - elog "2. nvidia-drm.fbdev=1 is now also tentatively default to match upstream" - elog "See ${EROOT}/etc/modprobe.d/nvidia.conf to modify settings if needed," - elog "fbdev=1 *could* cause issues for the console display with some setups." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.142.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.142.ebuild deleted file mode 100644 index 8adc84cff92..00000000000 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.142.ebuild +++ /dev/null @@ -1,595 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MODULES_OPTIONAL_IUSE=+modules -inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 -inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info - -MODULES_KERNEL_MAX=6.19 -NV_URI="https://download.nvidia.com/XFree86/" - -DESCRIPTION="NVIDIA Accelerated Graphics Driver" -HOMEPAGE="https://www.nvidia.com/" -SRC_URI=" - amd64? ( ${NV_URI}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 -" - -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 is needed for nvidia-drm.modeset=1 - support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf) which is needed for wayland - and for config-less Xorg auto-detection. - ${drm_helper_msg}" - local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using - kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. - ${drm_helper_msg}" - local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for - nvidia-drm.fbdev=1 support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf), may - result in a blank console/tty." - 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_AMD_IOMMU=y, - or DRM_I915=m (among others, consult the kernel config's help)." - 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 - - # makefile attempts to install wayland library even if not built - use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ - nvidia-settings/src/Makefile || die -} - -src_compile() { - tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG - - # extra flags for the libXNVCtrl.a static library - local xnvflags=-fPIC #840389 - tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" - - # Same as uname -m. - local target_arch - case ${ARCH} in - amd64) target_arch=x86_64 ;; - arm64) target_arch=aarch64 ;; - *) die "Unrecognised architecture: ${ARCH}" ;; - esac - - NV_ARGS=( - PREFIX="${EPREFIX}"/usr - HOST_CC="$(tc-getBUILD_CC)" - HOST_LD="$(tc-getBUILD_LD)" - BUILD_GTK2LIB= - NV_USE_BUNDLED_LIBJANSSON=0 - NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out - TARGET_ARCH="${target_arch}" - WAYLAND_AVAILABLE=$(usex wayland 1 0) - XNVCTRL_CFLAGS="${xnvflags}" - ) - - if use modules; then - local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} - - 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}" - TARGET_ARCH="${target_arch}" - - # kernel takes "x86" and "x86_64" as meaning the same, but nvidia - # makes the distinction (since 550.135) and is not happy with "x86" - # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 - $(usev amd64 ARCH=x86_64) - ) - - # temporary workaround for bug #914468 - addpredict "${KV_OUT_DIR}" - - linux-mod-r1_src_compile - CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe - use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig - - if use tools; then - # avoid noisy *very* noisy logs with deprecation warnings - CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ - emake "${NV_ARGS[@]}" -C nvidia-settings - elif use static-libs; then - # pretend GTK+3 is available, not actually used (bug #880879) - emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ - -C nvidia-settings/src out/libXNVCtrl.a - fi -} - -src_install() { - local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) - - NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) - - local -A paths=( - [APPLICATION_PROFILE]=/usr/share/nvidia - [CUDA_ICD]=/etc/OpenCL/vendors - [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d - [FIRMWARE]=/lib/firmware/nvidia/${PV} - [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm - [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d - [OPENGL_DATA]=/usr/share/nvidia - [VULKANSC_ICD_JSON]=/usr/share/vulkansc - [VULKAN_ICD_JSON]=/usr/share/vulkan - [WINE_LIB]=/usr/${libdir}/nvidia/wine - [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d - - [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions - [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules - [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules - ) - - local skip_files=( - $(usev !X "libGLX_nvidia libglxserver_nvidia") - libGLX_indirect # non-glvnd unused fallback - libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source - libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm - libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland - libnvidia-egl-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 - newins "${FILESDIR}"/nvidia-580.conf nvidia.conf - - # used for gpu verification with binpkgs (not kept, see pkg_preinst) - insinto /usr/share/nvidia - doins supported-gpus/supported-gpus.json - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe install - fowners :video /usr/bin/nvidia-modprobe #505092 - fperms 4710 /usr/bin/nvidia-modprobe - - if use persistenced; then - emake "${NV_ARGS[@]}" -C nvidia-persistenced install - newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced - newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced - systemd_dounit "${T}"/nvidia-persistenced.service - fi - - if use tools; then - emake "${NV_ARGS[@]}" -C nvidia-settings install - - doicon nvidia-settings/doc/nvidia-settings.png - domenu nvidia-settings/doc/nvidia-settings.desktop - - exeinto /etc/X11/xinit/xinitrc.d - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings - fi - - if use static-libs; then - dolib.a nvidia-settings/src/out/libXNVCtrl.a - strip-lto-bytecode - - insinto /usr/include/NVCtrl - doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h - fi - - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install - - # mimic nvidia-installer by reading .manifest to install files - # 0:file 1:perms 2:type 3+:subtype/arguments -:module - local m into - while IFS=' ' read -ra m; do - ! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] || - [[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] || - [[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] || - has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue - - case ${m[2]} in - MANPAGE) - gzip -dc ${m[0]} | newman - ${m[0]%.gz} - pipestatus || die - continue - ;; - GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../ - VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/ - esac - - if [[ -v 'paths[${m[2]}]' ]]; then - into=${paths[${m[2]}]} - elif [[ ${m[2]} == EXPLICIT_PATH ]]; then - into=${m[3]} - elif [[ ${m[2]} == *_BINARY ]]; then - into=/usr/bin - elif [[ ${m[3]} == COMPAT32 ]]; then - use abi_x86_32 || continue - into=/usr/${libdir32} - elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then - into=/usr/${libdir} - else - die "No known installation path for ${m[0]}" - fi - [[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/} - [[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/} - - if [[ ${m[2]} =~ _SYMLINK$ ]]; then - [[ ${m[4]: -1} == / ]] && m[4]=${m[5]} - dosym ${m[4]} ${into}/${m[0]} - continue - fi - # avoid portage warning due to missing soname links in manifest - [[ ${m[0]} =~ ^libnvidia-ngx.so ]] && - dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 - - printf -v m[1] %o $((m[1] | 0200)) # 444->644 - insopts -m${m[1]} - insinto ${into} - doins ${m[0]} - done < .manifest || die - insopts -m0644 # reset - - # MODULE:installer non-skipped extras - : "$(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= - - 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 && use modules && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then - ewarn "\nOpen 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 ver_replacing -lt 580.126.09-r1; then - elog "\n>=nvidia-drivers-580.126.09-r1 changes some defaults that may or may" - elog "not need attention:" - elog "1. nvidia-drm.modeset=1 is now default regardless of USE=wayland" - elog "2. nvidia-drm.fbdev=1 is now also tentatively default to match upstream" - elog "See ${EROOT}/etc/modprobe.d/nvidia.conf to modify settings if needed," - elog "fbdev=1 *could* cause issues for the console display with some setups." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.159.03-r1.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.159.03-r1.ebuild new file mode 100644 index 00000000000..e9139138152 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.159.03-r1.ebuild @@ -0,0 +1,602 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODULES_OPTIONAL_IUSE=+modules +inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 +inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info + +MODULES_KERNEL_MAX=7.0 +NV_URI="https://download.nvidia.com/XFree86/" + +DESCRIPTION="NVIDIA Accelerated Graphics Driver" +HOMEPAGE="https://www.nvidia.com/" +SRC_URI=" + amd64? ( ${NV_URI}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 +" + +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-compat:3 + dev-libs/openssl:0/3 + ) + sys-libs/glibc + X? ( + media-libs/libglvnd[X,abi_x86_32(-)?] + x11-libs/libX11[abi_x86_32(-)?] + x11-libs/libXext[abi_x86_32(-)?] + ) + powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) + wayland? ( + >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] + >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] + 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 + "${FILESDIR}"/nvidia-drivers-580.159.03-null-deref.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 amd64 'X86_PAT') + $(usev powerd '~CPU_FREQ') + " + + kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION && + CONFIG_CHECK+=" DRM_TTM_HELPER" + + 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 is needed for nvidia-drm.modeset=1 + support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf) which is needed for wayland + and for config-less Xorg auto-detection. + ${drm_helper_msg}" + local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using + kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. + ${drm_helper_msg}" + local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for + nvidia-drm.fbdev=1 support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf), may + result in a blank console/tty." + 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_AMD_IOMMU=y, + or DRM_I915=m (among others, consult the kernel config's help)." + 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 + + # makefile attempts to install wayland library even if not built + use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ + nvidia-settings/src/Makefile || die +} + +src_compile() { + tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG + + # extra flags for the libXNVCtrl.a static library + local xnvflags=-fPIC #840389 + tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" + + # same as uname -m + local target_arch + case ${ARCH} in + amd64) target_arch=x86_64;; + arm64) target_arch=aarch64;; + *) die "Unrecognised architecture: ${ARCH}";; + esac + + NV_ARGS=( + PREFIX="${EPREFIX}"/usr + HOST_CC="$(tc-getBUILD_CC)" + HOST_LD="$(tc-getBUILD_LD)" + BUILD_GTK2LIB= + NV_USE_BUNDLED_LIBJANSSON=0 + NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + TARGET_ARCH="${target_arch}" + WAYLAND_AVAILABLE=$(usex wayland 1 0) + XNVCTRL_CFLAGS="${xnvflags}" + ) + + if use modules; then + local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} + + 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) + + # the "blob" uses C++ which is an issue if there is debug symbols + # when running pahole, there is a pahole.sh wrapper that tries to + # exclude C++ but it did not seem to be enough last time tried + linux_chkconfig_present DEBUG_INFO_BTF_MODULES && append-flags -g0 + 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}" + TARGET_ARCH="${target_arch}" + + # kernel takes "x86" and "x86_64" as meaning the same, but nvidia + # makes the distinction (since 550.135) and is not happy with "x86" + # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 + $(usev amd64 ARCH=x86_64) + ) + + # temporary workaround for bug #914468 + addpredict "${KV_OUT_DIR}" + + linux-mod-r1_src_compile + CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} + fi + + emake "${NV_ARGS[@]}" -C nvidia-modprobe + use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced + use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig + + if use tools; then + # avoid noisy *very* noisy logs with deprecation warnings + CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ + emake "${NV_ARGS[@]}" -C nvidia-settings + elif use static-libs; then + # pretend GTK+3 is available, not actually used (bug #880879) + emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ + -C nvidia-settings/src out/libXNVCtrl.a + fi +} + +src_install() { + local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) + + NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) + + local -A paths=( + [APPLICATION_PROFILE]=/usr/share/nvidia + [CUDA_ICD]=/etc/OpenCL/vendors + [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d + [FIRMWARE]=/lib/firmware/nvidia/${PV} + [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm + [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d + [OPENGL_DATA]=/usr/share/nvidia + [VULKANSC_ICD_JSON]=/usr/share/vulkansc + [VULKAN_ICD_JSON]=/usr/share/vulkan + [WINE_LIB]=/usr/${libdir}/nvidia/wine + [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d + + [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions + [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules + [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules + ) + + local skip_files=( + $(usev !X "libGLX_nvidia libglxserver_nvidia") + libGLX_indirect # non-glvnd unused fallback + libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source + libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm + libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland + libnvidia-egl-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 + newins "${FILESDIR}"/nvidia-580.conf nvidia.conf + + # used for gpu verification with binpkgs (not kept, see pkg_preinst) + insinto /usr/share/nvidia + doins supported-gpus/supported-gpus.json + fi + + emake "${NV_ARGS[@]}" -C nvidia-modprobe install + fowners :video /usr/bin/nvidia-modprobe #505092 + fperms 4710 /usr/bin/nvidia-modprobe + + if use persistenced; then + emake "${NV_ARGS[@]}" -C nvidia-persistenced install + newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced + newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced + systemd_dounit "${T}"/nvidia-persistenced.service + fi + + if use tools; then + emake "${NV_ARGS[@]}" -C nvidia-settings install + + doicon nvidia-settings/doc/nvidia-settings.png + domenu nvidia-settings/doc/nvidia-settings.desktop + + exeinto /etc/X11/xinit/xinitrc.d + newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings + fi + + if use static-libs; then + dolib.a nvidia-settings/src/out/libXNVCtrl.a + strip-lto-bytecode + + insinto /usr/include/NVCtrl + doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h + fi + + use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install + + # mimic nvidia-installer by reading .manifest to install files + # 0:file 1:perms 2:type 3+:subtype/arguments -:module + local m into + while IFS=' ' read -ra m; do + ! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] || + [[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] || + [[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] || + has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue + + case ${m[2]} in + MANPAGE) + gzip -dc ${m[0]} | newman - ${m[0]%.gz} + pipestatus || die + continue + ;; + GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../ + VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/ + esac + + if [[ -v 'paths[${m[2]}]' ]]; then + into=${paths[${m[2]}]} + elif [[ ${m[2]} == EXPLICIT_PATH ]]; then + into=${m[3]} + elif [[ ${m[2]} == *_BINARY ]]; then + into=/usr/bin + elif [[ ${m[3]} == COMPAT32 ]]; then + use abi_x86_32 || continue + into=/usr/${libdir32} + elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then + into=/usr/${libdir} + else + die "No known installation path for ${m[0]}" + fi + [[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/} + [[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/} + + if [[ ${m[2]} =~ _SYMLINK$ ]]; then + [[ ${m[4]: -1} == / ]] && m[4]=${m[5]} + dosym ${m[4]} ${into}/${m[0]} + continue + fi + # avoid portage warning due to missing soname links in manifest + [[ ${m[0]} =~ ^libnvidia-ngx.so ]] && + dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 + + printf -v m[1] %o $((m[1] | 0200)) # 444->644 + insopts -m${m[1]} + insinto ${into} + doins ${m[0]} + done < .manifest || die + insopts -m0644 # reset + + # MODULE:installer non-skipped extras + : "$(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= + + 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 && use modules && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then + ewarn "\nOpen 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 ver_replacing -lt 580.126.09-r1; then + elog "\n>=nvidia-drivers-580.126.09-r1 changes some defaults that may or may" + elog "not need attention:" + elog "1. nvidia-drm.modeset=1 is now default regardless of USE=wayland" + elog "2. nvidia-drm.fbdev=1 is now also tentatively default to match upstream" + elog "See ${EROOT}/etc/modprobe.d/nvidia.conf to modify settings if needed," + elog "fbdev=1 *could* cause issues for the console display with some setups." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.159.04.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.159.04.ebuild new file mode 100644 index 00000000000..312c04d4e01 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.159.04.ebuild @@ -0,0 +1,602 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODULES_OPTIONAL_IUSE=+modules +inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 +inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info + +MODULES_KERNEL_MAX=7.0 +NV_URI="https://download.nvidia.com/XFree86/" + +DESCRIPTION="NVIDIA Accelerated Graphics Driver" +HOMEPAGE="https://www.nvidia.com/" +SRC_URI=" + amd64? ( ${NV_URI}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 +" + +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-compat:3 + dev-libs/openssl:0/3 + ) + sys-libs/glibc + X? ( + media-libs/libglvnd[X,abi_x86_32(-)?] + x11-libs/libX11[abi_x86_32(-)?] + x11-libs/libXext[abi_x86_32(-)?] + ) + powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) + wayland? ( + >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] + >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] + 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 + "${FILESDIR}"/nvidia-drivers-580.159.03-null-deref.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 amd64 'X86_PAT') + $(usev powerd '~CPU_FREQ') + " + + kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION && + CONFIG_CHECK+=" DRM_TTM_HELPER" + + 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 is needed for nvidia-drm.modeset=1 + support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf) which is needed for wayland + and for config-less Xorg auto-detection. + ${drm_helper_msg}" + local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using + kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. + ${drm_helper_msg}" + local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for + nvidia-drm.fbdev=1 support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf), may + result in a blank console/tty." + 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_AMD_IOMMU=y, + or DRM_I915=m (among others, consult the kernel config's help)." + 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 + + # makefile attempts to install wayland library even if not built + use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ + nvidia-settings/src/Makefile || die +} + +src_compile() { + tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG + + # extra flags for the libXNVCtrl.a static library + local xnvflags=-fPIC #840389 + tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" + + # same as uname -m + local target_arch + case ${ARCH} in + amd64) target_arch=x86_64;; + arm64) target_arch=aarch64;; + *) die "Unrecognised architecture: ${ARCH}";; + esac + + NV_ARGS=( + PREFIX="${EPREFIX}"/usr + HOST_CC="$(tc-getBUILD_CC)" + HOST_LD="$(tc-getBUILD_LD)" + BUILD_GTK2LIB= + NV_USE_BUNDLED_LIBJANSSON=0 + NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + TARGET_ARCH="${target_arch}" + WAYLAND_AVAILABLE=$(usex wayland 1 0) + XNVCTRL_CFLAGS="${xnvflags}" + ) + + if use modules; then + local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} + + 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) + + # the "blob" uses C++ which is an issue if there is debug symbols + # when running pahole, there is a pahole.sh wrapper that tries to + # exclude C++ but it did not seem to be enough last time tried + linux_chkconfig_present DEBUG_INFO_BTF_MODULES && append-flags -g0 + 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}" + TARGET_ARCH="${target_arch}" + + # kernel takes "x86" and "x86_64" as meaning the same, but nvidia + # makes the distinction (since 550.135) and is not happy with "x86" + # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 + $(usev amd64 ARCH=x86_64) + ) + + # temporary workaround for bug #914468 + addpredict "${KV_OUT_DIR}" + + linux-mod-r1_src_compile + CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} + fi + + emake "${NV_ARGS[@]}" -C nvidia-modprobe + use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced + use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig + + if use tools; then + # avoid noisy *very* noisy logs with deprecation warnings + CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ + emake "${NV_ARGS[@]}" -C nvidia-settings + elif use static-libs; then + # pretend GTK+3 is available, not actually used (bug #880879) + emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ + -C nvidia-settings/src out/libXNVCtrl.a + fi +} + +src_install() { + local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) + + NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) + + local -A paths=( + [APPLICATION_PROFILE]=/usr/share/nvidia + [CUDA_ICD]=/etc/OpenCL/vendors + [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d + [FIRMWARE]=/lib/firmware/nvidia/${PV} + [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm + [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d + [OPENGL_DATA]=/usr/share/nvidia + [VULKANSC_ICD_JSON]=/usr/share/vulkansc + [VULKAN_ICD_JSON]=/usr/share/vulkan + [WINE_LIB]=/usr/${libdir}/nvidia/wine + [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d + + [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions + [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules + [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules + ) + + local skip_files=( + $(usev !X "libGLX_nvidia libglxserver_nvidia") + libGLX_indirect # non-glvnd unused fallback + libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source + libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm + libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland + libnvidia-egl-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 + newins "${FILESDIR}"/nvidia-580.conf nvidia.conf + + # used for gpu verification with binpkgs (not kept, see pkg_preinst) + insinto /usr/share/nvidia + doins supported-gpus/supported-gpus.json + fi + + emake "${NV_ARGS[@]}" -C nvidia-modprobe install + fowners :video /usr/bin/nvidia-modprobe #505092 + fperms 4710 /usr/bin/nvidia-modprobe + + if use persistenced; then + emake "${NV_ARGS[@]}" -C nvidia-persistenced install + newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced + newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced + systemd_dounit "${T}"/nvidia-persistenced.service + fi + + if use tools; then + emake "${NV_ARGS[@]}" -C nvidia-settings install + + doicon nvidia-settings/doc/nvidia-settings.png + domenu nvidia-settings/doc/nvidia-settings.desktop + + exeinto /etc/X11/xinit/xinitrc.d + newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings + fi + + if use static-libs; then + dolib.a nvidia-settings/src/out/libXNVCtrl.a + strip-lto-bytecode + + insinto /usr/include/NVCtrl + doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h + fi + + use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install + + # mimic nvidia-installer by reading .manifest to install files + # 0:file 1:perms 2:type 3+:subtype/arguments -:module + local m into + while IFS=' ' read -ra m; do + ! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] || + [[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] || + [[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] || + has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue + + case ${m[2]} in + MANPAGE) + gzip -dc ${m[0]} | newman - ${m[0]%.gz} + pipestatus || die + continue + ;; + GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../ + VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/ + esac + + if [[ -v 'paths[${m[2]}]' ]]; then + into=${paths[${m[2]}]} + elif [[ ${m[2]} == EXPLICIT_PATH ]]; then + into=${m[3]} + elif [[ ${m[2]} == *_BINARY ]]; then + into=/usr/bin + elif [[ ${m[3]} == COMPAT32 ]]; then + use abi_x86_32 || continue + into=/usr/${libdir32} + elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then + into=/usr/${libdir} + else + die "No known installation path for ${m[0]}" + fi + [[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/} + [[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/} + + if [[ ${m[2]} =~ _SYMLINK$ ]]; then + [[ ${m[4]: -1} == / ]] && m[4]=${m[5]} + dosym ${m[4]} ${into}/${m[0]} + continue + fi + # avoid portage warning due to missing soname links in manifest + [[ ${m[0]} =~ ^libnvidia-ngx.so ]] && + dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 + + printf -v m[1] %o $((m[1] | 0200)) # 444->644 + insopts -m${m[1]} + insinto ${into} + doins ${m[0]} + done < .manifest || die + insopts -m0644 # reset + + # MODULE:installer non-skipped extras + : "$(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= + + 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 && use modules && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then + ewarn "\nOpen 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 ver_replacing -lt 580.126.09-r1; then + elog "\n>=nvidia-drivers-580.126.09-r1 changes some defaults that may or may" + elog "not need attention:" + elog "1. nvidia-drm.modeset=1 is now default regardless of USE=wayland" + elog "2. nvidia-drm.fbdev=1 is now also tentatively default to match upstream" + elog "See ${EROOT}/etc/modprobe.d/nvidia.conf to modify settings if needed," + elog "fbdev=1 *could* cause issues for the console display with some setups." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.18.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.18.ebuild deleted file mode 100644 index 3af5a212985..00000000000 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.18.ebuild +++ /dev/null @@ -1,596 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MODULES_OPTIONAL_IUSE=+modules -inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 -inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info - -MODULES_KERNEL_MAX=6.18 -NV_PIN=580.126.18 - -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-2025 Apache-2.0 Boost-1.0 BSD BSD-2 GPL-2 MIT ZLIB - curl openssl public-domain -" -SLOT="0/vulkan" -KEYWORDS="-* ~amd64" -IUSE=" - +X abi_x86_32 abi_x86_64 kernel-open persistenced powerd - +static-libs +tools wayland -" - -COMMON_DEPEND=" - acct-group/video - X? ( x11-libs/libpciaccess ) - persistenced? ( - acct-user/nvpd - net-libs/libtirpc:= - ) - tools? ( - >=app-accessibility/at-spi2-core-2.46:2 - dev-libs/glib:2 - dev-libs/jansson:= - media-libs/harfbuzz:= - x11-libs/cairo - x11-libs/gdk-pixbuf:2 - x11-libs/gtk+:3[X] - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXxf86vm - x11-libs/pango - ) -" -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 is needed for nvidia-drm.modeset=1 - support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf) which is needed for wayland - and for config-less Xorg auto-detection. - ${drm_helper_msg}" - local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using - kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. - ${drm_helper_msg}" - local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for - nvidia-drm.fbdev=1 support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf), may - result in a blank console/tty." - 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_AMD_IOMMU=y, - or DRM_I915=m (among others, consult the kernel config's help)." - 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 - - # makefile attempts to install wayland library even if not built - use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ - nvidia-settings/src/Makefile || die -} - -src_compile() { - tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG - - # extra flags for the libXNVCtrl.a static library - local xnvflags=-fPIC #840389 - tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" - - # Same as uname -m. - local target_arch - case ${ARCH} in - amd64) target_arch=x86_64 ;; - arm64) target_arch=aarch64 ;; - *) die "Unrecognised architecture: ${ARCH}" ;; - esac - - NV_ARGS=( - PREFIX="${EPREFIX}"/usr - HOST_CC="$(tc-getBUILD_CC)" - HOST_LD="$(tc-getBUILD_LD)" - BUILD_GTK2LIB= - NV_USE_BUNDLED_LIBJANSSON=0 - NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out - TARGET_ARCH="${target_arch}" - WAYLAND_AVAILABLE=$(usex wayland 1 0) - XNVCTRL_CFLAGS="${xnvflags}" - ) - - if use modules; then - local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} - - 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}" - TARGET_ARCH="${target_arch}" - - # kernel takes "x86" and "x86_64" as meaning the same, but nvidia - # makes the distinction (since 550.135) and is not happy with "x86" - # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 - $(usev amd64 ARCH=x86_64) - ) - - # temporary workaround for bug #914468 - addpredict "${KV_OUT_DIR}" - - linux-mod-r1_src_compile - CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe - use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig - - if use tools; then - # avoid noisy *very* noisy logs with deprecation warnings - CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ - emake "${NV_ARGS[@]}" -C nvidia-settings - elif use static-libs; then - # pretend GTK+3 is available, not actually used (bug #880879) - emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ - -C nvidia-settings/src out/libXNVCtrl.a - fi -} - -src_install() { - local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) - - NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) - - local -A paths=( - [APPLICATION_PROFILE]=/usr/share/nvidia - [CUDA_ICD]=/etc/OpenCL/vendors - [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d - [FIRMWARE]=/lib/firmware/nvidia/${PV} - [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm - [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d - [OPENGL_DATA]=/usr/share/nvidia - [VULKANSC_ICD_JSON]=/usr/share/vulkansc - [VULKAN_ICD_JSON]=/usr/share/vulkan - [WINE_LIB]=/usr/${libdir}/nvidia/wine - [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d - - [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions - [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules - [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules - ) - - local skip_files=( - $(usev !X "libGLX_nvidia libglxserver_nvidia") - libGLX_indirect # non-glvnd unused fallback - libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source - libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm - libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland - libnvidia-egl-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 - newins "${FILESDIR}"/nvidia-580.conf nvidia.conf - - # used for gpu verification with binpkgs (not kept, see pkg_preinst) - insinto /usr/share/nvidia - doins supported-gpus/supported-gpus.json - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe install - fowners :video /usr/bin/nvidia-modprobe #505092 - fperms 4710 /usr/bin/nvidia-modprobe - - if use persistenced; then - emake "${NV_ARGS[@]}" -C nvidia-persistenced install - newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced - newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced - systemd_dounit "${T}"/nvidia-persistenced.service - fi - - if use tools; then - emake "${NV_ARGS[@]}" -C nvidia-settings install - - doicon nvidia-settings/doc/nvidia-settings.png - domenu nvidia-settings/doc/nvidia-settings.desktop - - exeinto /etc/X11/xinit/xinitrc.d - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings - fi - - if use static-libs; then - dolib.a nvidia-settings/src/out/libXNVCtrl.a - strip-lto-bytecode - - insinto /usr/include/NVCtrl - doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h - fi - - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install - - # mimic nvidia-installer by reading .manifest to install files - # 0:file 1:perms 2:type 3+:subtype/arguments -:module - local m into - while IFS=' ' read -ra m; do - ! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] || - [[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] || - [[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] || - has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue - - case ${m[2]} in - MANPAGE) - gzip -dc ${m[0]} | newman - ${m[0]%.gz} - pipestatus || die - continue - ;; - GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../ - VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/ - esac - - if [[ -v 'paths[${m[2]}]' ]]; then - into=${paths[${m[2]}]} - elif [[ ${m[2]} == EXPLICIT_PATH ]]; then - into=${m[3]} - elif [[ ${m[2]} == *_BINARY ]]; then - into=/usr/bin - elif [[ ${m[3]} == COMPAT32 ]]; then - use abi_x86_32 || continue - into=/usr/${libdir32} - elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then - into=/usr/${libdir} - else - die "No known installation path for ${m[0]}" - fi - [[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/} - [[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/} - - if [[ ${m[2]} =~ _SYMLINK$ ]]; then - [[ ${m[4]: -1} == / ]] && m[4]=${m[5]} - dosym ${m[4]} ${into}/${m[0]} - continue - fi - # avoid portage warning due to missing soname links in manifest - [[ ${m[0]} =~ ^libnvidia-ngx.so ]] && - dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 - - printf -v m[1] %o $((m[1] | 0200)) # 444->644 - insopts -m${m[1]} - insinto ${into} - doins ${m[0]} - done < .manifest || die - insopts -m0644 # reset - - # MODULE:installer non-skipped extras - : "$(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= - - 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 && use modules && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then - ewarn "\nOpen 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 ver_replacing -lt 580.94.18; then - elog "\n>=nvidia-drivers-580.94.18:0/vulkan changes some defaults that may or may" - elog "not need attention:" - elog "1. nvidia-drm.modeset=1 is now default regardless of USE=wayland" - elog "2. nvidia-drm.fbdev=1 is now also tentatively default to match upstream" - elog "See ${EROOT}/etc/modprobe.d/nvidia.conf to modify settings if needed," - elog "fbdev=1 *could* cause issues for the console display with some setups." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01-r1.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01-r1.ebuild deleted file mode 100644 index de8dcd9a226..00000000000 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01-r1.ebuild +++ /dev/null @@ -1,596 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MODULES_OPTIONAL_IUSE=+modules -inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 -inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info - -MODULES_KERNEL_MAX=6.19 -NV_URI="https://download.nvidia.com/XFree86/" - -DESCRIPTION="NVIDIA Accelerated Graphics Driver" -HOMEPAGE="https://www.nvidia.com/" -SRC_URI=" - amd64? ( ${NV_URI}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 -" - -COMMON_DEPEND=" - acct-group/video - X? ( x11-libs/libpciaccess ) - persistenced? ( - acct-user/nvpd - net-libs/libtirpc:= - ) - tools? ( - >=app-accessibility/at-spi2-core-2.46:2 - dev-libs/glib:2 - dev-libs/jansson:= - media-libs/harfbuzz:= - x11-libs/cairo - x11-libs/gdk-pixbuf:2 - x11-libs/gtk+:3[X] - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXxf86vm - x11-libs/pango - ) -" -# egl-wayland2: nvidia currently ships both versions so, to ensure -# everything works properly, depend on both at same time for now -# (may use one or the other depending on setup) -RDEPEND=" - ${COMMON_DEPEND} - dev-libs/openssl:0/3 - sys-libs/glibc - X? ( - media-libs/libglvnd[X,abi_x86_32(-)?] - x11-libs/libX11[abi_x86_32(-)?] - x11-libs/libXext[abi_x86_32(-)?] - ) - powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) - wayland? ( - >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] - >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] - gui-libs/egl-wayland2[abi_x86_32(-)?] - X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) - ) -" -DEPEND=" - ${COMMON_DEPEND} - static-libs? ( - x11-base/xorg-proto - x11-libs/libX11 - x11-libs/libXext - ) - tools? ( - dev-util/vulkan-headers - media-libs/libglvnd - sys-apps/dbus - x11-base/xorg-proto - x11-libs/libXrandr - x11-libs/libXv - x11-libs/libvdpau - ) -" -BDEPEND=" - 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 - "${FILESDIR}"/nvidia-kernel-module-source-${PV}-kernel6.19.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 - ~!RANDSTRUCT_FULL - ~!RANDSTRUCT_PERFORMANCE - ~!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 is needed for nvidia-drm.modeset=1 - support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf) which is needed for wayland - and for config-less Xorg auto-detection. - ${drm_helper_msg}" - local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using - kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. - ${drm_helper_msg}" - local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for - nvidia-drm.fbdev=1 support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf), may - result in a blank console/tty." - 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_AMD_IOMMU=y, - or DRM_I915=m (among others, consult the kernel config's help)." - 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." - local randstruct_msg="is set but NVIDIA may be unstable with - it such as causing a kernel panic on shutdown, it is recommended to - disable with CONFIG_RANDSTRUCT_NONE=y (https://bugs.gentoo.org/969413 - -- please report if this appears fixed on NVIDIA's side so can remove - this warning)." - local ERROR_RANDSTRUCT_FULL="CONFIG_RANDSTRUCT_FULL: ${randstruct_msg}" - local ERROR_RANDSTRUCT_PERFORMANCE="CONFIG_RANDSTRUCT_PERFORMANCE: ${randstruct_msg}" - - 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 - - sed 's/__USER__/nvpd/' \ - nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ - > "${T}"/nvidia-persistenced.service || die - - # use alternative vulkan icd option if USE=-X (bug #909181) - use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die - - # makefile attempts to install wayland library even if not built - use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ - nvidia-settings/src/Makefile || die -} - -src_compile() { - tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG - - # extra flags for the libXNVCtrl.a static library - local xnvflags=-fPIC #840389 - tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" - - # Same as uname -m. - local target_arch - case ${ARCH} in - amd64) target_arch=x86_64 ;; - arm64) target_arch=aarch64 ;; - *) die "Unrecognised architecture: ${ARCH}" ;; - esac - - NV_ARGS=( - PREFIX="${EPREFIX}"/usr - HOST_CC="$(tc-getBUILD_CC)" - HOST_LD="$(tc-getBUILD_LD)" - BUILD_GTK2LIB= - NV_USE_BUNDLED_LIBJANSSON=0 - NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out - TARGET_ARCH="${target_arch}" - WAYLAND_AVAILABLE=$(usex wayland 1 0) - XNVCTRL_CFLAGS="${xnvflags}" - ) - - if use modules; then - local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} - - 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}" - TARGET_ARCH="${target_arch}" - - # kernel takes "x86" and "x86_64" as meaning the same, but nvidia - # makes the distinction (since 550.135) and is not happy with "x86" - # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 - $(usev amd64 ARCH=x86_64) - ) - - # temporary workaround for bug #914468 - addpredict "${KV_OUT_DIR}" - - linux-mod-r1_src_compile - CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe - use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig - - if use tools; then - # avoid noisy *very* noisy logs with deprecation warnings - CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ - emake "${NV_ARGS[@]}" -C nvidia-settings - elif use static-libs; then - # pretend GTK+3 is available, not actually used (bug #880879) - emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ - -C nvidia-settings/src out/libXNVCtrl.a - fi -} - -src_install() { - local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) - - NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) - - local -A paths=( - [APPLICATION_PROFILE]=/usr/share/nvidia - [CUDA_ICD]=/etc/OpenCL/vendors - [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d - [FIRMWARE]=/lib/firmware/nvidia/${PV} - [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm - [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d - [OPENGL_DATA]=/usr/share/nvidia - [VULKANSC_ICD_JSON]=/usr/share/vulkansc - [VULKAN_ICD_JSON]=/usr/share/vulkan - [WINE_LIB]=/usr/${libdir}/nvidia/wine - [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d - - [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions - [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules - [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules - ) - - local skip_files=( - $(usev !X "libGLX_nvidia libglxserver_nvidia") - libGLX_indirect # non-glvnd unused fallback - libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source - libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm - libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland - libnvidia-egl-wayland2 99_nvidia_wayland2 # gui-libs/egl-wayland2 - libnvidia-egl-xcb 20_nvidia_xcb.json # gui-libs/egl-x11 - libnvidia-egl-xlib 20_nvidia_xlib.json # gui-libs/egl-x11 - libnvidia-pkcs11.so # using the openssl3 version instead - ) - local skip_modules=( - $(usev !X "nvfbc vdpau xdriver") - $(usev !modules gsp) - $(usev !powerd nvtopps) - installer nvpd # handled separately / built from source - ) - local skip_types=( - GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd - OPENCL_WRAPPER.\* # virtual/opencl - DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused - ) - - local DOCS=( - README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json - nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt - ) - local HTML_DOCS=( html/. ) - einstalldocs - - local DISABLE_AUTOFORMATTING=yes - local DOC_CONTENTS="\ -Trusted users should be in the 'video' group to use NVIDIA devices. -You can add yourself by using: gpasswd -a my-user video\ -$(usev modules " - -Like all out-of-tree kernel modules, it is necessary to rebuild -${PN} after upgrading or rebuilding the Linux kernel -by for example running \`emerge @module-rebuild\`. Alternatively, -if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}), -this can be automated by setting USE=dist-kernel globally. - -Loaded kernel modules also must not mismatch with the installed -${PN} version (excluding -r revision), meaning should -ensure \`eselect kernel list\` points to the kernel that will be -booted before building and preferably reboot after upgrading -${PN} (the ebuild will emit a warning if mismatching). - -See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\ -$(use amd64 && usev !abi_x86_32 " - -Note that without USE=abi_x86_32 on ${PN}, 32bit applications -(typically using wine / steam) will not be able to use GPU acceleration.") - -For additional information or for troubleshooting issues, please see -https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own -documentation that is installed alongside this README." - readme.gentoo_create_doc - - if use modules; then - linux-mod-r1_src_install - - insinto /etc/modprobe.d - newins "${FILESDIR}"/nvidia-580.conf nvidia.conf - - # used for gpu verification with binpkgs (not kept, see pkg_preinst) - insinto /usr/share/nvidia - doins supported-gpus/supported-gpus.json - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe install - fowners :video /usr/bin/nvidia-modprobe #505092 - fperms 4710 /usr/bin/nvidia-modprobe - - if use persistenced; then - emake "${NV_ARGS[@]}" -C nvidia-persistenced install - newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced - newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced - systemd_dounit "${T}"/nvidia-persistenced.service - fi - - if use tools; then - emake "${NV_ARGS[@]}" -C nvidia-settings install - - doicon nvidia-settings/doc/nvidia-settings.png - domenu nvidia-settings/doc/nvidia-settings.desktop - - exeinto /etc/X11/xinit/xinitrc.d - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings - fi - - if use static-libs; then - dolib.a nvidia-settings/src/out/libXNVCtrl.a - strip-lto-bytecode - - insinto /usr/include/NVCtrl - doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h - fi - - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install - - # mimic nvidia-installer by reading .manifest to install files - # 0:file 1:perms 2:type 3+:subtype/arguments -:module - local m into - while IFS=' ' read -ra m; do - ! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] || - [[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] || - [[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] || - has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue - - case ${m[2]} in - MANPAGE) - gzip -dc ${m[0]} | newman - ${m[0]%.gz} - pipestatus || die - continue - ;; - GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../ - VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/ - esac - - if [[ -v 'paths[${m[2]}]' ]]; then - into=${paths[${m[2]}]} - elif [[ ${m[2]} == EXPLICIT_PATH ]]; then - into=${m[3]} - elif [[ ${m[2]} == *_BINARY ]]; then - into=/usr/bin - elif [[ ${m[3]} == COMPAT32 ]]; then - use abi_x86_32 || continue - into=/usr/${libdir32} - elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then - into=/usr/${libdir} - else - die "No known installation path for ${m[0]}" - fi - [[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/} - [[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/} - - if [[ ${m[2]} =~ _SYMLINK$ ]]; then - [[ ${m[4]: -1} == / ]] && m[4]=${m[5]} - dosym ${m[4]} ${into}/${m[0]} - continue - fi - # avoid portage warning due to missing soname links in manifest - [[ ${m[0]} =~ ^libnvidia-ngx.so ]] && - dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 - - printf -v m[1] %o $((m[1] | 0200)) # 444->644 - insopts -m${m[1]} - insinto ${into} - doins ${m[0]} - done < .manifest || die - insopts -m0644 # reset - - # MODULE:installer non-skipped extras - : "$(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() { - 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 ver_replacing -lt 590; then - elog "\n>=${PN}-590 has changes that may or may not need attention:" - elog "1. support for Pascal, Maxwell, and Volta cards has been dropped" - elog " (if affected, there should be a another message about this above)" - elog "2. USE=kernel-open is now enabled by default" - elog " (generally safe and recommended, but some setups may hit regressions)" - elog "3. nvidia-drm.modeset=1 is now default regardless of USE=wayland" - elog "4. nvidia-drm.fbdev=1 is now also tentatively default to match upstream" - elog "(3+4 were also later changed in >=580.126.09-r1, may already be in-use)" - elog "See ${EROOT}/etc/modprobe.d/nvidia.conf to modify settings if needed," - elog "fbdev=1 *could* cause issues for the console display with some setups." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.44.03.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.44.03.ebuild deleted file mode 100644 index 4ccfee54896..00000000000 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.44.03.ebuild +++ /dev/null @@ -1,571 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MODULES_OPTIONAL_IUSE=+modules -inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 -inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info - -MODULES_KERNEL_MAX=6.19 -NV_PIN=595.45.04 - -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-2025 Apache-2.0 Boost-1.0 BSD BSD-2 GPL-2 MIT ZLIB - curl openssl public-domain -" -SLOT="0/vulkan" -KEYWORDS="-* ~amd64" -IUSE="+X abi_x86_32 abi_x86_64 persistenced powerd +static-libs +tools wayland" - -COMMON_DEPEND=" - acct-group/video - X? ( x11-libs/libpciaccess ) - persistenced? ( - acct-user/nvpd - net-libs/libtirpc:= - ) - tools? ( - >=app-accessibility/at-spi2-core-2.46:2 - dev-libs/glib:2 - dev-libs/jansson:= - media-libs/harfbuzz:= - x11-libs/cairo - x11-libs/gdk-pixbuf:2 - x11-libs/gtk+:3[X] - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXxf86vm - x11-libs/pango - ) -" -# egl-wayland2: nvidia currently ships both versions so, to ensure -# everything works properly, depend on both at same time for now -# (may use one or the other depending on setup) -RDEPEND=" - ${COMMON_DEPEND} - dev-libs/openssl:0/3 - sys-libs/glibc - X? ( - media-libs/libglvnd[X,abi_x86_32(-)?] - x11-libs/libX11[abi_x86_32(-)?] - x11-libs/libXext[abi_x86_32(-)?] - ) - powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) - wayland? ( - >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] - >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] - gui-libs/egl-wayland2[abi_x86_32(-)?] - X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) - ) -" -DEPEND=" - ${COMMON_DEPEND} - static-libs? ( - x11-base/xorg-proto - x11-libs/libX11 - x11-libs/libXext - ) - tools? ( - dev-util/vulkan-headers - media-libs/libglvnd - sys-apps/dbus - x11-base/xorg-proto - x11-libs/libXrandr - x11-libs/libXv - x11-libs/libvdpau - ) -" -BDEPEND=" - 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 - ~!RANDSTRUCT_FULL - ~!RANDSTRUCT_PERFORMANCE - ~!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 - - local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need - selection of a DRM device even if unused, e.g. CONFIG_DRM_QXL=m or - DRM_AMDGPU=m (among others, consult the kernel config's help), can - also use DRM_NOUVEAU=m as long as built as module *not* built-in." - local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but is needed for wayland support, - tty takeover (e.g. for simpledrm), and config-less Xorg auto-detection. - ${drm_helper_msg}" - local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using - kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. - ${drm_helper_msg}" - local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for - nvidia-drm.fbdev=1 support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf), may - result in a blank console/tty." - 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." - local randstruct_msg="is set but NVIDIA may be unstable with - it such as causing a kernel panic on shutdown, it is recommended to - disable with CONFIG_RANDSTRUCT_NONE=y (https://bugs.gentoo.org/969413 - -- please report if this appears fixed on NVIDIA's side so can remove - this warning)." - local ERROR_RANDSTRUCT_FULL="CONFIG_RANDSTRUCT_FULL: ${randstruct_msg}" - local ERROR_RANDSTRUCT_PERFORMANCE="CONFIG_RANDSTRUCT_PERFORMANCE: ${randstruct_msg}" - - 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 - - sed 's/__USER__/nvpd/' \ - nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ - > "${T}"/nvidia-persistenced.service || die - - # use alternative vulkan icd option if USE=-X (bug #909181) - use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die - - # makefile attempts to install wayland library even if not built - use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ - nvidia-settings/src/Makefile || die -} - -src_compile() { - tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG - - # extra flags for the libXNVCtrl.a static library - local xnvflags=-fPIC #840389 - tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" - - # Same as uname -m. - local target_arch - case ${ARCH} in - amd64) target_arch=x86_64 ;; - arm64) target_arch=aarch64 ;; - *) die "Unrecognised architecture: ${ARCH}" ;; - esac - - NV_ARGS=( - PREFIX="${EPREFIX}"/usr - HOST_CC="$(tc-getBUILD_CC)" - HOST_LD="$(tc-getBUILD_LD)" - BUILD_GTK2LIB= - NV_USE_BUNDLED_LIBJANSSON=0 - NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out - TARGET_ARCH="${target_arch}" - WAYLAND_AVAILABLE=$(usex wayland 1 0) - XNVCTRL_CFLAGS="${xnvflags}" - ) - - if use modules; then - local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} - - # environment flags are normally unused for modules, but nvidia uses - # them for building the formerly closed "blob" and it is a bit fragile - filter-flags -fno-plt #912949 - filter-lto - CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags - LDFLAGS=$(raw-ldflags) - - : video:kernel-module-source:kernel-module-source/kernel-open - local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${_} ) - local modargs=( - IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 - SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" - TARGET_ARCH="${target_arch}" - - # kernel takes "x86" and "x86_64" as meaning the same, but nvidia - # makes the distinction (since 550.135) and is not happy with "x86" - # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 - $(usev amd64 ARCH=x86_64) - ) - - # temporary workaround for bug #914468 - addpredict "${KV_OUT_DIR}" - - linux-mod-r1_src_compile - CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe - use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig - - if use tools; then - # avoid noisy *very* noisy logs with deprecation warnings - CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ - emake "${NV_ARGS[@]}" -C nvidia-settings - elif use static-libs; then - # pretend GTK+3 is available, not actually used (bug #880879) - emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ - -C nvidia-settings/src out/libXNVCtrl.a - fi -} - -src_install() { - local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) - - NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) - - local -A paths=( - [APPLICATION_PROFILE]=/usr/share/nvidia - [CUDA_ICD]=/etc/OpenCL/vendors - [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d - [FIRMWARE]=/lib/firmware/nvidia/${PV} - [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm - [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d - [OPENGL_DATA]=/usr/share/nvidia - [VULKANSC_ICD_JSON]=/usr/share/vulkansc - [VULKAN_ICD_JSON]=/usr/share/vulkan - [WINE_LIB]=/usr/${libdir}/nvidia/wine - [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d - - [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions - [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules - [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules - ) - - local skip_files=( - $(usev !X "libGLX_nvidia libglxserver_nvidia") - libGLX_indirect # non-glvnd unused fallback - libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source - libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm - libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland - libnvidia-egl-wayland2 09_nvidia_wayland2 # gui-libs/egl-wayland2 - libnvidia-egl-xcb 20_nvidia_xcb.json # gui-libs/egl-x11 - libnvidia-egl-xlib 20_nvidia_xlib.json # gui-libs/egl-x11 - libnvidia-pkcs11.so # using the openssl3 version instead - ) - local skip_modules=( - $(usev !X "nvfbc vdpau xdriver") - $(usev !modules gsp) - $(usev !powerd nvtopps) - installer nvpd # handled separately / built from source - ) - local skip_types=( - GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd - OPENCL_WRAPPER.\* # virtual/opencl - DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused - ) - - local DOCS=( - README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json - nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt - ) - local HTML_DOCS=( html/. ) - einstalldocs - - local DISABLE_AUTOFORMATTING=yes - local DOC_CONTENTS="\ -Trusted users should be in the 'video' group to use NVIDIA devices. -You can add yourself by using: gpasswd -a my-user video\ -$(usev modules " - -Like all out-of-tree kernel modules, it is necessary to rebuild -${PN} after upgrading or rebuilding the Linux kernel -by for example running \`emerge @module-rebuild\`. Alternatively, -if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}), -this can be automated by setting USE=dist-kernel globally. - -Loaded kernel modules also must not mismatch with the installed -${PN} version (excluding -r revision), meaning should -ensure \`eselect kernel list\` points to the kernel that will be -booted before building and preferably reboot after upgrading -${PN} (the ebuild will emit a warning if mismatching). - -See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\ -$(use amd64 && usev !abi_x86_32 " - -Note that without USE=abi_x86_32 on ${PN}, 32bit applications -(typically using wine / steam) will not be able to use GPU acceleration.") - -For additional information or for troubleshooting issues, please see -https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own -documentation that is installed alongside this README." - readme.gentoo_create_doc - - if use modules; then - linux-mod-r1_src_install - - insinto /etc/modprobe.d - newins "${FILESDIR}"/nvidia-595.conf nvidia.conf - - # used for gpu verification with binpkgs (not kept, see pkg_preinst) - insinto /usr/share/nvidia - doins supported-gpus/supported-gpus.json - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe install - fowners :video /usr/bin/nvidia-modprobe #505092 - fperms 4710 /usr/bin/nvidia-modprobe - - if use persistenced; then - emake "${NV_ARGS[@]}" -C nvidia-persistenced install - newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced - newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced - systemd_dounit "${T}"/nvidia-persistenced.service - fi - - if use tools; then - emake "${NV_ARGS[@]}" -C nvidia-settings install - - doicon nvidia-settings/doc/nvidia-settings.png - domenu nvidia-settings/doc/nvidia-settings.desktop - - exeinto /etc/X11/xinit/xinitrc.d - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings - fi - - if use static-libs; then - dolib.a nvidia-settings/src/out/libXNVCtrl.a - strip-lto-bytecode - - insinto /usr/include/NVCtrl - doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h - fi - - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install - - # mimic nvidia-installer by reading .manifest to install files - # 0:file 1:perms 2:type 3+:subtype/arguments -:module - local m into - while IFS=' ' read -ra m; do - ! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] || - [[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] || - [[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] || - has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue - - case ${m[2]} in - MANPAGE) - gzip -dc ${m[0]} | newman - ${m[0]%.gz} - pipestatus || die - continue - ;; - GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../ - VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/ - esac - - if [[ -v 'paths[${m[2]}]' ]]; then - into=${paths[${m[2]}]} - elif [[ ${m[2]} == EXPLICIT_PATH ]]; then - into=${m[3]} - elif [[ ${m[2]} == *_BINARY ]]; then - into=/usr/bin - elif [[ ${m[3]} == COMPAT32 ]]; then - use abi_x86_32 || continue - into=/usr/${libdir32} - elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then - into=/usr/${libdir} - else - die "No known installation path for ${m[0]}" - fi - [[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/} - [[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/} - - if [[ ${m[2]} =~ _SYMLINK$ ]]; then - [[ ${m[4]: -1} == / ]] && m[4]=${m[5]} - dosym ${m[4]} ${into}/${m[0]} - continue - fi - # avoid portage warning due to missing soname links in manifest - [[ ${m[0]} =~ ^libnvidia-ngx.so ]] && - dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 - - printf -v m[1] %o $((m[1] | 0200)) # 444->644 - insopts -m${m[1]} - insinto ${into} - doins ${m[0]} - done < .manifest || die - insopts -m0644 # reset - - # MODULE:installer non-skipped extras - # (sleep services skipped, obsoleted by NVreg_UseKernelSuspendNotifiers=1) - dobin nvidia-bug-report.sh - - insinto /usr/share/nvidia/files.d - doins sandboxutils-filelist.json - - # needed with >=systemd-256 or may fail to resume with some setups - # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1072722 - : "$(systemd_get_systemunitdir)" - local unitdir=${_#"${EPREFIX}"} - insinto "${unitdir}"/systemd-homed.service.d - newins - 10-nvidia.conf <<-EOF - [Service] - Environment=SYSTEMD_HOME_LOCK_FREEZE_SESSION=false - EOF - insinto "${unitdir}"/systemd-suspend.service.d - newins systemd/system/systemd-suspend.service.d/nvidia-suspend-nofreeze.conf 10-nvidia.conf - dosym -r "${unitdir}"/systemd-{suspend,hibernate}.service.d/10-nvidia.conf - dosym -r "${unitdir}"/systemd-{suspend,hybrid-sleep}.service.d/10-nvidia.conf - dosym -r "${unitdir}"/systemd-{suspend,suspend-then-hibernate}.service.d/10-nvidia.conf - - # MODULE:powerd extras - if use powerd; then - newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 - systemd_dounit systemd/system/nvidia-powerd.service - - insinto /usr/share/dbus-1/system.d - doins nvidia-dbus.conf - fi - - # symlink non-versioned so nvidia-settings can use it even if misdetected - dosym nvidia-application-profiles-${PV}-key-documentation \ - ${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation - - # don't attempt to strip firmware files (silences errors) - dostrip -x ${paths[FIRMWARE]} - - # sandbox issues with /dev/nvidiactl and others (bug #904292,#921578) - # are widespread and sometime affect revdeps of packages built with - # USE=opencl/cuda making it hard to manage in ebuilds (minimal set, - # ebuilds should handle manually if need others or addwrite) - insinto /etc/sandbox.d - newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/nvidia-caps:/dev/char"' - - # dracut does not use /etc/modprobe.d if hostonly=no, but want to make sure - # our settings are used for bug 932781#c8 and nouveau blacklist if either - # modules are included (however, just best-effort without initramfs regen) - if use modules; then - echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \ - "${ED}"/usr/lib/dracut/dracut.conf.d/10-${PN}.conf || die - fi -} - -pkg_preinst() { - use modules || return - - # set video group id based on live system (bug #491414) - local g=$(egetent group video | cut -d: -f3) - [[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got '${g}')" - sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die - - # try to find driver mismatches using temporary supported-gpus.json - for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do - g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \ - "${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null) - if [[ ${g} ]]; then - g=$((${g##*\"}+1)) - if ver_test -ge ${g}; then - NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}" - break - fi - fi - done - rm "${ED}"/usr/share/nvidia/supported-gpus.json || die -} - -pkg_postinst() { - linux-mod-r1_pkg_postinst - - readme.gentoo_print_elog - - if [[ -r /proc/driver/nvidia/version && - $( ${EROOT}/etc/portage/package.mask/${PN}" - else - ewarn " 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 ver_replacing -lt 590; then - elog "\n>=${PN}-590 has changes that may or may not need attention:" - elog "1. support for Pascal, Maxwell, and Volta cards has been dropped" - elog " (if affected, there should be a another message about this above)" - elog "2. nvidia-drm.modeset=1 is now default regardless of USE=wayland" - elog "3. nvidia-drm.fbdev=1 is now also tentatively default to match upstream" - elog "(2+3 were also later changed in >=580.126.09-r1, may already be in-use)" - elog "See ${EROOT}/etc/modprobe.d/nvidia.conf to modify settings if needed," - elog "fbdev=1 *could* cause issues for the console display with some setups." - fi - - if ver_replacing -lt 595; then - elog "\n>=${PN}-595 has changes that may or may not need attention:" - elog "1. USE=kernel-open was removed and is now always enabled. If for some" - elog " reason you really need the closed variant (e.g. Runtime D3 on Turing" - elog " GPUs), please use LTS 580.xx instead as Gentoo has no intention to" - elog " support both variants anymore going forward" - elog "2. systemd/elogind sleep services (nvidia-sleep.sh) were tentatively" - elog " removed and replaced by setting NVreg_UseKernelSuspendNotifiers=1 in" - elog " ${EROOT}/etc/modprobe.d/nvidia.conf. If using a non-default custom" - elog " nvidia.conf, please ensure the option is set. Also, systemd users" - elog " may want to ensure that they do not have old sleep/suspend/resume" - elog " *nvidia* files in ${EROOT}/etc/systemd to avoid potential issues." - elog "3. nvidia-drm.modeset=1 was removed from nvidia.conf because it is now" - elog " default enabled regardless (new NVIDIA default)" - fi -} diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.44.09.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.44.09.ebuild new file mode 100644 index 00000000000..d17b4651e82 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.44.09.ebuild @@ -0,0 +1,557 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODULES_OPTIONAL_IUSE=+modules +inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 +inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info + +MODULES_KERNEL_MAX=7.0 +NV_PIN=595.71.05 + +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-2025 Apache-2.0 Boost-1.0 BSD BSD-2 GPL-2 MIT ZLIB + curl openssl public-domain +" +SLOT="0/vulkan" +KEYWORDS="-* ~amd64" +IUSE="+X abi_x86_32 abi_x86_64 persistenced powerd +static-libs +tools wayland" + +COMMON_DEPEND=" + acct-group/video + X? ( x11-libs/libpciaccess ) + persistenced? ( + acct-user/nvpd + net-libs/libtirpc:= + ) + tools? ( + >=app-accessibility/at-spi2-core-2.46:2 + dev-libs/glib:2 + dev-libs/jansson:= + media-libs/harfbuzz:= + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXxf86vm + x11-libs/pango + ) +" +# egl-wayland2: nvidia currently ships both versions so, to ensure +# everything works properly, depend on both at same time for now +# (may use one or the other depending on setup) +RDEPEND=" + ${COMMON_DEPEND} + || ( + dev-libs/openssl-compat:3 + dev-libs/openssl:0/3 + ) + sys-libs/glibc + X? ( + media-libs/libglvnd[X,abi_x86_32(-)?] + x11-libs/libX11[abi_x86_32(-)?] + x11-libs/libXext[abi_x86_32(-)?] + ) + powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) + wayland? ( + >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] + >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] + gui-libs/egl-wayland2[abi_x86_32(-)?] + X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) + ) +" +DEPEND=" + ${COMMON_DEPEND} + static-libs? ( + x11-base/xorg-proto + x11-libs/libX11 + x11-libs/libXext + ) + tools? ( + dev-util/vulkan-headers + media-libs/libglvnd + sys-apps/dbus + x11-base/xorg-proto + x11-libs/libXrandr + x11-libs/libXv + x11-libs/libvdpau + ) +" +BDEPEND=" + sys-devel/m4 + virtual/pkgconfig +" + +# there is some non-prebuilt exceptions but rather not maintain a list +QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*" + +PATCHES=( + "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch + "${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch +) + +pkg_setup() { + use modules && [[ ${MERGE_TYPE} != binary ]] || return + + # do early before linux-mod-r1 so can use chkconfig to setup CONFIG_CHECK + get_version + require_configured_kernel + + local CONFIG_CHECK=" + PROC_FS + ~DRM_KMS_HELPER + ~DRM_FBDEV_EMULATION + ~SYSVIPC + ~!LOCKDEP + ~!PREEMPT_RT + ~!SLUB_DEBUG_ON + !DEBUG_MUTEXES + $(usev amd64 'X86_PAT') + $(usev powerd '~CPU_FREQ') + " + + kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION && + CONFIG_CHECK+=" DRM_TTM_HELPER" + + local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need + selection of a DRM device even if unused, e.g. CONFIG_DRM_QXL=m or + DRM_AMDGPU=m (among others, consult the kernel config's help), can + also use DRM_NOUVEAU=m as long as built as module *not* built-in." + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but is needed for wayland support, + tty takeover (e.g. for simpledrm), and config-less Xorg auto-detection. + ${drm_helper_msg}" + local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using + kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. + ${drm_helper_msg}" + local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for + nvidia-drm.fbdev=1 support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf), may + result in a blank console/tty." + 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 + + sed 's/__USER__/nvpd/' \ + nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ + > "${T}"/nvidia-persistenced.service || die + + # use alternative vulkan icd option if USE=-X (bug #909181) + use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die + + # makefile attempts to install wayland library even if not built + use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ + nvidia-settings/src/Makefile || die +} + +src_compile() { + tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG + + # extra flags for the libXNVCtrl.a static library + local xnvflags=-fPIC #840389 + tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" + + # same as uname -m + local target_arch + case ${ARCH} in + amd64) target_arch=x86_64;; + arm64) target_arch=aarch64;; + *) die "Unrecognised architecture: ${ARCH}";; + esac + + NV_ARGS=( + PREFIX="${EPREFIX}"/usr + HOST_CC="$(tc-getBUILD_CC)" + HOST_LD="$(tc-getBUILD_LD)" + BUILD_GTK2LIB= + NV_USE_BUNDLED_LIBJANSSON=0 + NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + TARGET_ARCH="${target_arch}" + WAYLAND_AVAILABLE=$(usex wayland 1 0) + XNVCTRL_CFLAGS="${xnvflags}" + ) + + if use modules; then + local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} + + # environment flags are normally unused for modules, but nvidia uses + # them for building the formerly closed "blob" and it is a bit fragile + filter-flags -fno-plt #912949 + filter-lto + CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags + LDFLAGS=$(raw-ldflags) + + # the "blob" uses C++ which is an issue if there is debug symbols + # when running pahole, there is a pahole.sh wrapper that tries to + # exclude C++ but it did not seem to be enough last time tried + linux_chkconfig_present DEBUG_INFO_BTF_MODULES && append-flags -g0 + + : video:kernel-module-source:kernel-module-source/kernel-open + local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${_} ) + local modargs=( + IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 + SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" + TARGET_ARCH="${target_arch}" + + # kernel takes "x86" and "x86_64" as meaning the same, but nvidia + # makes the distinction (since 550.135) and is not happy with "x86" + # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 + $(usev amd64 ARCH=x86_64) + ) + + # temporary workaround for bug #914468 + addpredict "${KV_OUT_DIR}" + + linux-mod-r1_src_compile + CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} + fi + + emake "${NV_ARGS[@]}" -C nvidia-modprobe + use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced + use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig + + if use tools; then + # avoid noisy *very* noisy logs with deprecation warnings + CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ + emake "${NV_ARGS[@]}" -C nvidia-settings + elif use static-libs; then + # pretend GTK+3 is available, not actually used (bug #880879) + emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ + -C nvidia-settings/src out/libXNVCtrl.a + fi +} + +src_install() { + local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) + + NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) + + local -A paths=( + [APPLICATION_PROFILE]=/usr/share/nvidia + [CUDA_ICD]=/etc/OpenCL/vendors + [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d + [FIRMWARE]=/lib/firmware/nvidia/${PV} + [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm + [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d + [OPENGL_DATA]=/usr/share/nvidia + [VULKANSC_ICD_JSON]=/usr/share/vulkansc + [VULKAN_ICD_JSON]=/usr/share/vulkan + [WINE_LIB]=/usr/${libdir}/nvidia/wine + [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d + + [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions + [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules + [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules + ) + + local skip_files=( + $(usev !X "libGLX_nvidia libglxserver_nvidia") + libGLX_indirect # non-glvnd unused fallback + libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source + libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm + libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland + libnvidia-egl-wayland2 09_nvidia_wayland2 # gui-libs/egl-wayland2 + libnvidia-egl-xcb 20_nvidia_xcb.json # gui-libs/egl-x11 + libnvidia-egl-xlib 20_nvidia_xlib.json # gui-libs/egl-x11 + libnvidia-pkcs11.so # using the openssl3 version instead + ) + local skip_modules=( + $(usev !X "nvfbc vdpau xdriver") + $(usev !modules gsp) + $(usev !powerd nvtopps) + installer nvpd # handled separately / built from source + ) + local skip_types=( + GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd + OPENCL_WRAPPER.\* # virtual/opencl + DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused + ) + + local DOCS=( + README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json + nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt + ) + local HTML_DOCS=( html/. ) + einstalldocs + + local DISABLE_AUTOFORMATTING=yes + local DOC_CONTENTS="\ +Trusted users should be in the 'video' group to use NVIDIA devices. +You can add yourself by using: gpasswd -a my-user video\ +$(usev modules " + +Like all out-of-tree kernel modules, it is necessary to rebuild +${PN} after upgrading or rebuilding the Linux kernel +by for example running \`emerge @module-rebuild\`. Alternatively, +if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}), +this can be automated by setting USE=dist-kernel globally. + +Loaded kernel modules also must not mismatch with the installed +${PN} version (excluding -r revision), meaning should +ensure \`eselect kernel list\` points to the kernel that will be +booted before building and preferably reboot after upgrading +${PN} (the ebuild will emit a warning if mismatching). + +See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\ +$(use amd64 && usev !abi_x86_32 " + +Note that without USE=abi_x86_32 on ${PN}, 32bit applications +(typically using wine / steam) will not be able to use GPU acceleration.") + +For additional information or for troubleshooting issues, please see +https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own +documentation that is installed alongside this README." + readme.gentoo_create_doc + + if use modules; then + linux-mod-r1_src_install + + insinto /etc/modprobe.d + newins "${FILESDIR}"/nvidia-595.conf nvidia.conf + + # used for gpu verification with binpkgs (not kept, see pkg_preinst) + insinto /usr/share/nvidia + doins supported-gpus/supported-gpus.json + fi + + emake "${NV_ARGS[@]}" -C nvidia-modprobe install + fowners :video /usr/bin/nvidia-modprobe #505092 + fperms 4710 /usr/bin/nvidia-modprobe + + if use persistenced; then + emake "${NV_ARGS[@]}" -C nvidia-persistenced install + newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced + newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced + systemd_dounit "${T}"/nvidia-persistenced.service + fi + + if use tools; then + emake "${NV_ARGS[@]}" -C nvidia-settings install + + doicon nvidia-settings/doc/nvidia-settings.png + domenu nvidia-settings/doc/nvidia-settings.desktop + + exeinto /etc/X11/xinit/xinitrc.d + newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings + fi + + if use static-libs; then + dolib.a nvidia-settings/src/out/libXNVCtrl.a + strip-lto-bytecode + + insinto /usr/include/NVCtrl + doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h + fi + + use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install + + # mimic nvidia-installer by reading .manifest to install files + # 0:file 1:perms 2:type 3+:subtype/arguments -:module + local m into + while IFS=' ' read -ra m; do + ! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] || + [[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] || + [[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] || + has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue + + case ${m[2]} in + MANPAGE) + gzip -dc ${m[0]} | newman - ${m[0]%.gz} + pipestatus || die + continue + ;; + GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../ + VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/ + esac + + if [[ -v 'paths[${m[2]}]' ]]; then + into=${paths[${m[2]}]} + elif [[ ${m[2]} == EXPLICIT_PATH ]]; then + into=${m[3]} + elif [[ ${m[2]} == *_BINARY ]]; then + into=/usr/bin + elif [[ ${m[3]} == COMPAT32 ]]; then + use abi_x86_32 || continue + into=/usr/${libdir32} + elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then + into=/usr/${libdir} + else + die "No known installation path for ${m[0]}" + fi + [[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/} + [[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/} + + if [[ ${m[2]} =~ _SYMLINK$ ]]; then + [[ ${m[4]: -1} == / ]] && m[4]=${m[5]} + dosym ${m[4]} ${into}/${m[0]} + continue + fi + # avoid portage warning due to missing soname links in manifest + [[ ${m[0]} =~ ^libnvidia-ngx.so ]] && + dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 + + printf -v m[1] %o $((m[1] | 0200)) # 444->644 + insopts -m${m[1]} + insinto ${into} + doins ${m[0]} + done < .manifest || die + insopts -m0644 # reset + + # MODULE:installer non-skipped extras + # (sleep services skipped, obsoleted by NVreg_UseKernelSuspendNotifiers=1) + dobin nvidia-bug-report.sh + + insinto /usr/share/nvidia/files.d + doins sandboxutils-filelist.json + + # needed with >=systemd-256 or may fail to resume with some setups + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1072722 + : "$(systemd_get_systemunitdir)" + local unitdir=${_#"${EPREFIX}"} + insinto "${unitdir}"/systemd-homed.service.d + newins - 10-nvidia.conf <<-EOF + [Service] + Environment=SYSTEMD_HOME_LOCK_FREEZE_SESSION=false + EOF + insinto "${unitdir}"/systemd-suspend.service.d + newins systemd/system/systemd-suspend.service.d/nvidia-suspend-nofreeze.conf 10-nvidia.conf + dosym -r "${unitdir}"/systemd-{suspend,hibernate}.service.d/10-nvidia.conf + dosym -r "${unitdir}"/systemd-{suspend,hybrid-sleep}.service.d/10-nvidia.conf + dosym -r "${unitdir}"/systemd-{suspend,suspend-then-hibernate}.service.d/10-nvidia.conf + + # MODULE:powerd extras + if use powerd; then + newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 + systemd_dounit systemd/system/nvidia-powerd.service + + insinto /usr/share/dbus-1/system.d + doins nvidia-dbus.conf + fi + + # symlink non-versioned so nvidia-settings can use it even if misdetected + dosym nvidia-application-profiles-${PV}-key-documentation \ + ${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation + + # don't attempt to strip firmware files (silences errors) + dostrip -x ${paths[FIRMWARE]} + + # sandbox issues with /dev/nvidiactl and others (bug #904292,#921578) + # are widespread and sometime affect revdeps of packages built with + # USE=opencl/cuda making it hard to manage in ebuilds (minimal set, + # ebuilds should handle manually if need others or addwrite) + insinto /etc/sandbox.d + newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/nvidia-caps:/dev/char"' + + # dracut does not use /etc/modprobe.d if hostonly=no, but want to make sure + # our settings are used for bug 932781#c8 and nouveau blacklist if either + # modules are included (however, just best-effort without initramfs regen) + if use modules; then + echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \ + "${ED}"/usr/lib/dracut/dracut.conf.d/10-${PN}.conf || die + fi +} + +pkg_preinst() { + use modules || return + + # set video group id based on live system (bug #491414) + local g=$(egetent group video | cut -d: -f3) + [[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got '${g}')" + sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die + + # try to find driver mismatches using temporary supported-gpus.json + for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do + g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \ + "${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null) + if [[ ${g} ]]; then + g=$((${g##*\"}+1)) + if ver_test -ge ${g}; then + NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}" + break + fi + fi + done + rm "${ED}"/usr/share/nvidia/supported-gpus.json || die +} + +pkg_postinst() { + linux-mod-r1_pkg_postinst + + readme.gentoo_print_elog + + if [[ -r /proc/driver/nvidia/version && + $( ${EROOT}/etc/portage/package.mask/${PN}" + else + ewarn " 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 ver_replacing -lt 595; then + elog "\n>=${PN}-595 has changes that may or may not need attention:" + elog "1. USE=kernel-open was removed and is now always enabled. If for some" + elog " reason you really need the closed variant (e.g. Runtime D3 on Turing" + elog " GPUs), please use LTS 580.xx instead as Gentoo has no intention to" + elog " support both variants anymore going forward" + elog "2. systemd/elogind sleep services (nvidia-sleep.sh) were tentatively" + elog " removed and replaced by setting NVreg_UseKernelSuspendNotifiers=1 in" + elog " ${EROOT}/etc/modprobe.d/nvidia.conf. If using a non-default custom" + elog " nvidia.conf, please ensure the option is set. Also, systemd users" + elog " may want to ensure that they do not have old sleep/suspend/resume" + elog " *nvidia* files in ${EROOT}/etc/systemd to avoid potential issues." + elog "3. nvidia-drm.modeset=1 was removed from nvidia.conf because it is now" + elog " default enabled regardless (new NVIDIA default)" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.45.04.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.45.04.ebuild deleted file mode 100644 index ee97ba9fadf..00000000000 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.45.04.ebuild +++ /dev/null @@ -1,571 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MODULES_OPTIONAL_IUSE=+modules -inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 -inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info - -MODULES_KERNEL_MAX=6.19 -NV_URI="https://download.nvidia.com/XFree86/" - -DESCRIPTION="NVIDIA Accelerated Graphics Driver" -HOMEPAGE="https://www.nvidia.com/" -SRC_URI=" - amd64? ( ${NV_URI}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%%.*}" -# unkeyworded due to being a beta, feel free to opt-in if want to test -#KEYWORDS="-* ~amd64 ~arm64" -IUSE="+X abi_x86_32 abi_x86_64 persistenced powerd +static-libs +tools wayland" - -COMMON_DEPEND=" - acct-group/video - X? ( x11-libs/libpciaccess ) - persistenced? ( - acct-user/nvpd - net-libs/libtirpc:= - ) - tools? ( - >=app-accessibility/at-spi2-core-2.46:2 - dev-libs/glib:2 - dev-libs/jansson:= - media-libs/harfbuzz:= - x11-libs/cairo - x11-libs/gdk-pixbuf:2 - x11-libs/gtk+:3[X] - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXxf86vm - x11-libs/pango - ) -" -# egl-wayland2: nvidia currently ships both versions so, to ensure -# everything works properly, depend on both at same time for now -# (may use one or the other depending on setup) -RDEPEND=" - ${COMMON_DEPEND} - dev-libs/openssl:0/3 - sys-libs/glibc - X? ( - media-libs/libglvnd[X,abi_x86_32(-)?] - x11-libs/libX11[abi_x86_32(-)?] - x11-libs/libXext[abi_x86_32(-)?] - ) - powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) - wayland? ( - >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] - >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] - gui-libs/egl-wayland2[abi_x86_32(-)?] - X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) - ) -" -DEPEND=" - ${COMMON_DEPEND} - static-libs? ( - x11-base/xorg-proto - x11-libs/libX11 - x11-libs/libXext - ) - tools? ( - dev-util/vulkan-headers - media-libs/libglvnd - sys-apps/dbus - x11-base/xorg-proto - x11-libs/libXrandr - x11-libs/libXv - x11-libs/libvdpau - ) -" -BDEPEND=" - 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 - ~!RANDSTRUCT_FULL - ~!RANDSTRUCT_PERFORMANCE - ~!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 - - local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need - selection of a DRM device even if unused, e.g. CONFIG_DRM_QXL=m or - DRM_AMDGPU=m (among others, consult the kernel config's help), can - also use DRM_NOUVEAU=m as long as built as module *not* built-in." - local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but is needed for wayland support, - tty takeover (e.g. for simpledrm), and config-less Xorg auto-detection. - ${drm_helper_msg}" - local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using - kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. - ${drm_helper_msg}" - local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for - nvidia-drm.fbdev=1 support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf), may - result in a blank console/tty." - 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." - local randstruct_msg="is set but NVIDIA may be unstable with - it such as causing a kernel panic on shutdown, it is recommended to - disable with CONFIG_RANDSTRUCT_NONE=y (https://bugs.gentoo.org/969413 - -- please report if this appears fixed on NVIDIA's side so can remove - this warning)." - local ERROR_RANDSTRUCT_FULL="CONFIG_RANDSTRUCT_FULL: ${randstruct_msg}" - local ERROR_RANDSTRUCT_PERFORMANCE="CONFIG_RANDSTRUCT_PERFORMANCE: ${randstruct_msg}" - - 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 - - sed 's/__USER__/nvpd/' \ - nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ - > "${T}"/nvidia-persistenced.service || die - - # use alternative vulkan icd option if USE=-X (bug #909181) - use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die - - # makefile attempts to install wayland library even if not built - use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ - nvidia-settings/src/Makefile || die -} - -src_compile() { - tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG - - # extra flags for the libXNVCtrl.a static library - local xnvflags=-fPIC #840389 - tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" - - # Same as uname -m. - local target_arch - case ${ARCH} in - amd64) target_arch=x86_64 ;; - arm64) target_arch=aarch64 ;; - *) die "Unrecognised architecture: ${ARCH}" ;; - esac - - NV_ARGS=( - PREFIX="${EPREFIX}"/usr - HOST_CC="$(tc-getBUILD_CC)" - HOST_LD="$(tc-getBUILD_LD)" - BUILD_GTK2LIB= - NV_USE_BUNDLED_LIBJANSSON=0 - NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out - TARGET_ARCH="${target_arch}" - WAYLAND_AVAILABLE=$(usex wayland 1 0) - XNVCTRL_CFLAGS="${xnvflags}" - ) - - if use modules; then - local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} - - # environment flags are normally unused for modules, but nvidia uses - # them for building the formerly closed "blob" and it is a bit fragile - filter-flags -fno-plt #912949 - filter-lto - CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags - LDFLAGS=$(raw-ldflags) - - : video:kernel-module-source:kernel-module-source/kernel-open - local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${_} ) - local modargs=( - IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 - SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" - TARGET_ARCH="${target_arch}" - - # kernel takes "x86" and "x86_64" as meaning the same, but nvidia - # makes the distinction (since 550.135) and is not happy with "x86" - # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 - $(usev amd64 ARCH=x86_64) - ) - - # temporary workaround for bug #914468 - addpredict "${KV_OUT_DIR}" - - linux-mod-r1_src_compile - CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe - use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig - - if use tools; then - # avoid noisy *very* noisy logs with deprecation warnings - CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ - emake "${NV_ARGS[@]}" -C nvidia-settings - elif use static-libs; then - # pretend GTK+3 is available, not actually used (bug #880879) - emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ - -C nvidia-settings/src out/libXNVCtrl.a - fi -} - -src_install() { - local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) - - NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) - - local -A paths=( - [APPLICATION_PROFILE]=/usr/share/nvidia - [CUDA_ICD]=/etc/OpenCL/vendors - [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d - [FIRMWARE]=/lib/firmware/nvidia/${PV} - [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm - [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d - [OPENGL_DATA]=/usr/share/nvidia - [VULKANSC_ICD_JSON]=/usr/share/vulkansc - [VULKAN_ICD_JSON]=/usr/share/vulkan - [WINE_LIB]=/usr/${libdir}/nvidia/wine - [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d - - [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions - [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules - [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules - ) - - local skip_files=( - $(usev !X "libGLX_nvidia libglxserver_nvidia") - libGLX_indirect # non-glvnd unused fallback - libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source - libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm - libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland - libnvidia-egl-wayland2 09_nvidia_wayland2 # gui-libs/egl-wayland2 - libnvidia-egl-xcb 20_nvidia_xcb.json # gui-libs/egl-x11 - libnvidia-egl-xlib 20_nvidia_xlib.json # gui-libs/egl-x11 - libnvidia-pkcs11.so # using the openssl3 version instead - ) - local skip_modules=( - $(usev !X "nvfbc vdpau xdriver") - $(usev !modules gsp) - $(usev !powerd nvtopps) - installer nvpd # handled separately / built from source - ) - local skip_types=( - GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd - OPENCL_WRAPPER.\* # virtual/opencl - DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused - ) - - local DOCS=( - README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json - nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt - ) - local HTML_DOCS=( html/. ) - einstalldocs - - local DISABLE_AUTOFORMATTING=yes - local DOC_CONTENTS="\ -Trusted users should be in the 'video' group to use NVIDIA devices. -You can add yourself by using: gpasswd -a my-user video\ -$(usev modules " - -Like all out-of-tree kernel modules, it is necessary to rebuild -${PN} after upgrading or rebuilding the Linux kernel -by for example running \`emerge @module-rebuild\`. Alternatively, -if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}), -this can be automated by setting USE=dist-kernel globally. - -Loaded kernel modules also must not mismatch with the installed -${PN} version (excluding -r revision), meaning should -ensure \`eselect kernel list\` points to the kernel that will be -booted before building and preferably reboot after upgrading -${PN} (the ebuild will emit a warning if mismatching). - -See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\ -$(use amd64 && usev !abi_x86_32 " - -Note that without USE=abi_x86_32 on ${PN}, 32bit applications -(typically using wine / steam) will not be able to use GPU acceleration.") - -For additional information or for troubleshooting issues, please see -https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own -documentation that is installed alongside this README." - readme.gentoo_create_doc - - if use modules; then - linux-mod-r1_src_install - - insinto /etc/modprobe.d - newins "${FILESDIR}"/nvidia-595.conf nvidia.conf - - # used for gpu verification with binpkgs (not kept, see pkg_preinst) - insinto /usr/share/nvidia - doins supported-gpus/supported-gpus.json - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe install - fowners :video /usr/bin/nvidia-modprobe #505092 - fperms 4710 /usr/bin/nvidia-modprobe - - if use persistenced; then - emake "${NV_ARGS[@]}" -C nvidia-persistenced install - newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced - newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced - systemd_dounit "${T}"/nvidia-persistenced.service - fi - - if use tools; then - emake "${NV_ARGS[@]}" -C nvidia-settings install - - doicon nvidia-settings/doc/nvidia-settings.png - domenu nvidia-settings/doc/nvidia-settings.desktop - - exeinto /etc/X11/xinit/xinitrc.d - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings - fi - - if use static-libs; then - dolib.a nvidia-settings/src/out/libXNVCtrl.a - strip-lto-bytecode - - insinto /usr/include/NVCtrl - doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h - fi - - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install - - # mimic nvidia-installer by reading .manifest to install files - # 0:file 1:perms 2:type 3+:subtype/arguments -:module - local m into - while IFS=' ' read -ra m; do - ! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] || - [[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] || - [[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] || - has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue - - case ${m[2]} in - MANPAGE) - gzip -dc ${m[0]} | newman - ${m[0]%.gz} - pipestatus || die - continue - ;; - GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../ - VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/ - esac - - if [[ -v 'paths[${m[2]}]' ]]; then - into=${paths[${m[2]}]} - elif [[ ${m[2]} == EXPLICIT_PATH ]]; then - into=${m[3]} - elif [[ ${m[2]} == *_BINARY ]]; then - into=/usr/bin - elif [[ ${m[3]} == COMPAT32 ]]; then - use abi_x86_32 || continue - into=/usr/${libdir32} - elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then - into=/usr/${libdir} - else - die "No known installation path for ${m[0]}" - fi - [[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/} - [[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/} - - if [[ ${m[2]} =~ _SYMLINK$ ]]; then - [[ ${m[4]: -1} == / ]] && m[4]=${m[5]} - dosym ${m[4]} ${into}/${m[0]} - continue - fi - # avoid portage warning due to missing soname links in manifest - [[ ${m[0]} =~ ^libnvidia-ngx.so ]] && - dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 - - printf -v m[1] %o $((m[1] | 0200)) # 444->644 - insopts -m${m[1]} - insinto ${into} - doins ${m[0]} - done < .manifest || die - insopts -m0644 # reset - - # MODULE:installer non-skipped extras - # (sleep services skipped, obsoleted by NVreg_UseKernelSuspendNotifiers=1) - dobin nvidia-bug-report.sh - - insinto /usr/share/nvidia/files.d - doins sandboxutils-filelist.json - - # needed with >=systemd-256 or may fail to resume with some setups - # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1072722 - : "$(systemd_get_systemunitdir)" - local unitdir=${_#"${EPREFIX}"} - insinto "${unitdir}"/systemd-homed.service.d - newins - 10-nvidia.conf <<-EOF - [Service] - Environment=SYSTEMD_HOME_LOCK_FREEZE_SESSION=false - EOF - insinto "${unitdir}"/systemd-suspend.service.d - newins systemd/system/systemd-suspend.service.d/nvidia-suspend-nofreeze.conf 10-nvidia.conf - dosym -r "${unitdir}"/systemd-{suspend,hibernate}.service.d/10-nvidia.conf - dosym -r "${unitdir}"/systemd-{suspend,hybrid-sleep}.service.d/10-nvidia.conf - dosym -r "${unitdir}"/systemd-{suspend,suspend-then-hibernate}.service.d/10-nvidia.conf - - # MODULE:powerd extras - if use powerd; then - newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 - systemd_dounit systemd/system/nvidia-powerd.service - - insinto /usr/share/dbus-1/system.d - doins nvidia-dbus.conf - fi - - # symlink non-versioned so nvidia-settings can use it even if misdetected - dosym nvidia-application-profiles-${PV}-key-documentation \ - ${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation - - # don't attempt to strip firmware files (silences errors) - dostrip -x ${paths[FIRMWARE]} - - # sandbox issues with /dev/nvidiactl and others (bug #904292,#921578) - # are widespread and sometime affect revdeps of packages built with - # USE=opencl/cuda making it hard to manage in ebuilds (minimal set, - # ebuilds should handle manually if need others or addwrite) - insinto /etc/sandbox.d - newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/nvidia-caps:/dev/char"' - - # dracut does not use /etc/modprobe.d if hostonly=no, but want to make sure - # our settings are used for bug 932781#c8 and nouveau blacklist if either - # modules are included (however, just best-effort without initramfs regen) - if use modules; then - echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \ - "${ED}"/usr/lib/dracut/dracut.conf.d/10-${PN}.conf || die - fi -} - -pkg_preinst() { - use modules || return - - # set video group id based on live system (bug #491414) - local g=$(egetent group video | cut -d: -f3) - [[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got '${g}')" - sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die - - # try to find driver mismatches using temporary supported-gpus.json - for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do - g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \ - "${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null) - if [[ ${g} ]]; then - g=$((${g##*\"}+1)) - if ver_test -ge ${g}; then - NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}" - break - fi - fi - done - rm "${ED}"/usr/share/nvidia/supported-gpus.json || die -} - -pkg_postinst() { - linux-mod-r1_pkg_postinst - - readme.gentoo_print_elog - - if [[ -r /proc/driver/nvidia/version && - $( ${EROOT}/etc/portage/package.mask/${PN}" - else - ewarn " 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 ver_replacing -lt 590; then - elog "\n>=${PN}-590 has changes that may or may not need attention:" - elog "1. support for Pascal, Maxwell, and Volta cards has been dropped" - elog " (if affected, there should be a another message about this above)" - elog "2. nvidia-drm.modeset=1 is now default regardless of USE=wayland" - elog "3. nvidia-drm.fbdev=1 is now also tentatively default to match upstream" - elog "(2+3 were also later changed in >=580.126.09-r1, may already be in-use)" - elog "See ${EROOT}/etc/modprobe.d/nvidia.conf to modify settings if needed," - elog "fbdev=1 *could* cause issues for the console display with some setups." - fi - - if ver_replacing -lt 595; then - elog "\n>=${PN}-595 has changes that may or may not need attention:" - elog "1. USE=kernel-open was removed and is now always enabled. If for some" - elog " reason you really need the closed variant (e.g. Runtime D3 on Turing" - elog " GPUs), please use LTS 580.xx instead as Gentoo has no intention to" - elog " support both variants anymore going forward" - elog "2. systemd/elogind sleep services (nvidia-sleep.sh) were tentatively" - elog " removed and replaced by setting NVreg_UseKernelSuspendNotifiers=1 in" - elog " ${EROOT}/etc/modprobe.d/nvidia.conf. If using a non-default custom" - elog " nvidia.conf, please ensure the option is set. Also, systemd users" - elog " may want to ensure that they do not have old sleep/suspend/resume" - elog " *nvidia* files in ${EROOT}/etc/systemd to avoid potential issues." - elog "3. nvidia-drm.modeset=1 was removed from nvidia.conf because it is now" - elog " default enabled regardless (new NVIDIA default)" - fi -} diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.71.05.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.71.05.ebuild new file mode 100644 index 00000000000..6d5cdf9a9fd --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.71.05.ebuild @@ -0,0 +1,556 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODULES_OPTIONAL_IUSE=+modules +inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 +inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info + +MODULES_KERNEL_MAX=7.0 +NV_URI="https://download.nvidia.com/XFree86/" + +DESCRIPTION="NVIDIA Accelerated Graphics Driver" +HOMEPAGE="https://www.nvidia.com/" +SRC_URI=" + amd64? ( ${NV_URI}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 persistenced powerd +static-libs +tools wayland" + +COMMON_DEPEND=" + acct-group/video + X? ( x11-libs/libpciaccess ) + persistenced? ( + acct-user/nvpd + net-libs/libtirpc:= + ) + tools? ( + >=app-accessibility/at-spi2-core-2.46:2 + dev-libs/glib:2 + dev-libs/jansson:= + media-libs/harfbuzz:= + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXxf86vm + x11-libs/pango + ) +" +# egl-wayland2: nvidia currently ships both versions so, to ensure +# everything works properly, depend on both at same time for now +# (may use one or the other depending on setup) +RDEPEND=" + ${COMMON_DEPEND} + || ( + dev-libs/openssl-compat:3 + dev-libs/openssl:0/3 + ) + sys-libs/glibc + X? ( + media-libs/libglvnd[X,abi_x86_32(-)?] + x11-libs/libX11[abi_x86_32(-)?] + x11-libs/libXext[abi_x86_32(-)?] + ) + powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) + wayland? ( + >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] + >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] + gui-libs/egl-wayland2[abi_x86_32(-)?] + X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) + ) +" +DEPEND=" + ${COMMON_DEPEND} + static-libs? ( + x11-base/xorg-proto + x11-libs/libX11 + x11-libs/libXext + ) + tools? ( + dev-util/vulkan-headers + media-libs/libglvnd + sys-apps/dbus + x11-base/xorg-proto + x11-libs/libXrandr + x11-libs/libXv + x11-libs/libvdpau + ) +" +BDEPEND=" + sys-devel/m4 + virtual/pkgconfig +" + +# there is some non-prebuilt exceptions but rather not maintain a list +QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*" + +PATCHES=( + "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch + "${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch +) + +pkg_setup() { + use modules && [[ ${MERGE_TYPE} != binary ]] || return + + # do early before linux-mod-r1 so can use chkconfig to setup CONFIG_CHECK + get_version + require_configured_kernel + + local CONFIG_CHECK=" + PROC_FS + ~DRM_KMS_HELPER + ~DRM_FBDEV_EMULATION + ~SYSVIPC + ~!LOCKDEP + ~!PREEMPT_RT + ~!SLUB_DEBUG_ON + !DEBUG_MUTEXES + $(usev amd64 'X86_PAT') + $(usev powerd '~CPU_FREQ') + " + + kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION && + CONFIG_CHECK+=" DRM_TTM_HELPER" + + local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need + selection of a DRM device even if unused, e.g. CONFIG_DRM_QXL=m or + DRM_AMDGPU=m (among others, consult the kernel config's help), can + also use DRM_NOUVEAU=m as long as built as module *not* built-in." + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but is needed for wayland support, + tty takeover (e.g. for simpledrm), and config-less Xorg auto-detection. + ${drm_helper_msg}" + local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using + kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. + ${drm_helper_msg}" + local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for + nvidia-drm.fbdev=1 support (see ${EPREFIX}/etc/modprobe.d/nvidia.conf), may + result in a blank console/tty." + 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 + + sed 's/__USER__/nvpd/' \ + nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ + > "${T}"/nvidia-persistenced.service || die + + # use alternative vulkan icd option if USE=-X (bug #909181) + use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die + + # makefile attempts to install wayland library even if not built + use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ + nvidia-settings/src/Makefile || die +} + +src_compile() { + tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG + + # extra flags for the libXNVCtrl.a static library + local xnvflags=-fPIC #840389 + tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" + + # same as uname -m + local target_arch + case ${ARCH} in + amd64) target_arch=x86_64;; + arm64) target_arch=aarch64;; + *) die "Unrecognised architecture: ${ARCH}";; + esac + + NV_ARGS=( + PREFIX="${EPREFIX}"/usr + HOST_CC="$(tc-getBUILD_CC)" + HOST_LD="$(tc-getBUILD_LD)" + BUILD_GTK2LIB= + NV_USE_BUNDLED_LIBJANSSON=0 + NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + TARGET_ARCH="${target_arch}" + WAYLAND_AVAILABLE=$(usex wayland 1 0) + XNVCTRL_CFLAGS="${xnvflags}" + ) + + if use modules; then + local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} + + # environment flags are normally unused for modules, but nvidia uses + # them for building the formerly closed "blob" and it is a bit fragile + filter-flags -fno-plt #912949 + filter-lto + CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags + LDFLAGS=$(raw-ldflags) + + # the "blob" uses C++ which is an issue if there is debug symbols + # when running pahole, there is a pahole.sh wrapper that tries to + # exclude C++ but it did not seem to be enough last time tried + linux_chkconfig_present DEBUG_INFO_BTF_MODULES && append-flags -g0 + + : video:kernel-module-source:kernel-module-source/kernel-open + local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${_} ) + local modargs=( + IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 + SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" + TARGET_ARCH="${target_arch}" + + # kernel takes "x86" and "x86_64" as meaning the same, but nvidia + # makes the distinction (since 550.135) and is not happy with "x86" + # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 + $(usev amd64 ARCH=x86_64) + ) + + # temporary workaround for bug #914468 + addpredict "${KV_OUT_DIR}" + + linux-mod-r1_src_compile + CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} + fi + + emake "${NV_ARGS[@]}" -C nvidia-modprobe + use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced + use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig + + if use tools; then + # avoid noisy *very* noisy logs with deprecation warnings + CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ + emake "${NV_ARGS[@]}" -C nvidia-settings + elif use static-libs; then + # pretend GTK+3 is available, not actually used (bug #880879) + emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ + -C nvidia-settings/src out/libXNVCtrl.a + fi +} + +src_install() { + local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) + + NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) + + local -A paths=( + [APPLICATION_PROFILE]=/usr/share/nvidia + [CUDA_ICD]=/etc/OpenCL/vendors + [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d + [FIRMWARE]=/lib/firmware/nvidia/${PV} + [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm + [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d + [OPENGL_DATA]=/usr/share/nvidia + [VULKANSC_ICD_JSON]=/usr/share/vulkansc + [VULKAN_ICD_JSON]=/usr/share/vulkan + [WINE_LIB]=/usr/${libdir}/nvidia/wine + [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d + + [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions + [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules + [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules + ) + + local skip_files=( + $(usev !X "libGLX_nvidia libglxserver_nvidia") + libGLX_indirect # non-glvnd unused fallback + libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source + libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm + libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland + libnvidia-egl-wayland2 09_nvidia_wayland2 # gui-libs/egl-wayland2 + libnvidia-egl-xcb 20_nvidia_xcb.json # gui-libs/egl-x11 + libnvidia-egl-xlib 20_nvidia_xlib.json # gui-libs/egl-x11 + libnvidia-pkcs11.so # using the openssl3 version instead + ) + local skip_modules=( + $(usev !X "nvfbc vdpau xdriver") + $(usev !modules gsp) + $(usev !powerd nvtopps) + installer nvpd # handled separately / built from source + ) + local skip_types=( + GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd + OPENCL_WRAPPER.\* # virtual/opencl + DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused + ) + + local DOCS=( + README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json + nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt + ) + local HTML_DOCS=( html/. ) + einstalldocs + + local DISABLE_AUTOFORMATTING=yes + local DOC_CONTENTS="\ +Trusted users should be in the 'video' group to use NVIDIA devices. +You can add yourself by using: gpasswd -a my-user video\ +$(usev modules " + +Like all out-of-tree kernel modules, it is necessary to rebuild +${PN} after upgrading or rebuilding the Linux kernel +by for example running \`emerge @module-rebuild\`. Alternatively, +if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}), +this can be automated by setting USE=dist-kernel globally. + +Loaded kernel modules also must not mismatch with the installed +${PN} version (excluding -r revision), meaning should +ensure \`eselect kernel list\` points to the kernel that will be +booted before building and preferably reboot after upgrading +${PN} (the ebuild will emit a warning if mismatching). + +See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\ +$(use amd64 && usev !abi_x86_32 " + +Note that without USE=abi_x86_32 on ${PN}, 32bit applications +(typically using wine / steam) will not be able to use GPU acceleration.") + +For additional information or for troubleshooting issues, please see +https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own +documentation that is installed alongside this README." + readme.gentoo_create_doc + + if use modules; then + linux-mod-r1_src_install + + insinto /etc/modprobe.d + newins "${FILESDIR}"/nvidia-595.conf nvidia.conf + + # used for gpu verification with binpkgs (not kept, see pkg_preinst) + insinto /usr/share/nvidia + doins supported-gpus/supported-gpus.json + fi + + emake "${NV_ARGS[@]}" -C nvidia-modprobe install + fowners :video /usr/bin/nvidia-modprobe #505092 + fperms 4710 /usr/bin/nvidia-modprobe + + if use persistenced; then + emake "${NV_ARGS[@]}" -C nvidia-persistenced install + newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced + newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced + systemd_dounit "${T}"/nvidia-persistenced.service + fi + + if use tools; then + emake "${NV_ARGS[@]}" -C nvidia-settings install + + doicon nvidia-settings/doc/nvidia-settings.png + domenu nvidia-settings/doc/nvidia-settings.desktop + + exeinto /etc/X11/xinit/xinitrc.d + newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings + fi + + if use static-libs; then + dolib.a nvidia-settings/src/out/libXNVCtrl.a + strip-lto-bytecode + + insinto /usr/include/NVCtrl + doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h + fi + + use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install + + # mimic nvidia-installer by reading .manifest to install files + # 0:file 1:perms 2:type 3+:subtype/arguments -:module + local m into + while IFS=' ' read -ra m; do + ! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] || + [[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] || + [[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] || + has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue + + case ${m[2]} in + MANPAGE) + gzip -dc ${m[0]} | newman - ${m[0]%.gz} + pipestatus || die + continue + ;; + GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../ + VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/ + esac + + if [[ -v 'paths[${m[2]}]' ]]; then + into=${paths[${m[2]}]} + elif [[ ${m[2]} == EXPLICIT_PATH ]]; then + into=${m[3]} + elif [[ ${m[2]} == *_BINARY ]]; then + into=/usr/bin + elif [[ ${m[3]} == COMPAT32 ]]; then + use abi_x86_32 || continue + into=/usr/${libdir32} + elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then + into=/usr/${libdir} + else + die "No known installation path for ${m[0]}" + fi + [[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/} + [[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/} + + if [[ ${m[2]} =~ _SYMLINK$ ]]; then + [[ ${m[4]: -1} == / ]] && m[4]=${m[5]} + dosym ${m[4]} ${into}/${m[0]} + continue + fi + # avoid portage warning due to missing soname links in manifest + [[ ${m[0]} =~ ^libnvidia-ngx.so ]] && + dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 + + printf -v m[1] %o $((m[1] | 0200)) # 444->644 + insopts -m${m[1]} + insinto ${into} + doins ${m[0]} + done < .manifest || die + insopts -m0644 # reset + + # MODULE:installer non-skipped extras + # (sleep services skipped, obsoleted by NVreg_UseKernelSuspendNotifiers=1) + dobin nvidia-bug-report.sh + + insinto /usr/share/nvidia/files.d + doins sandboxutils-filelist.json + + # needed with >=systemd-256 or may fail to resume with some setups + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1072722 + : "$(systemd_get_systemunitdir)" + local unitdir=${_#"${EPREFIX}"} + insinto "${unitdir}"/systemd-homed.service.d + newins - 10-nvidia.conf <<-EOF + [Service] + Environment=SYSTEMD_HOME_LOCK_FREEZE_SESSION=false + EOF + insinto "${unitdir}"/systemd-suspend.service.d + newins systemd/system/systemd-suspend.service.d/nvidia-suspend-nofreeze.conf 10-nvidia.conf + dosym -r "${unitdir}"/systemd-{suspend,hibernate}.service.d/10-nvidia.conf + dosym -r "${unitdir}"/systemd-{suspend,hybrid-sleep}.service.d/10-nvidia.conf + dosym -r "${unitdir}"/systemd-{suspend,suspend-then-hibernate}.service.d/10-nvidia.conf + + # MODULE:powerd extras + if use powerd; then + newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 + systemd_dounit systemd/system/nvidia-powerd.service + + insinto /usr/share/dbus-1/system.d + doins nvidia-dbus.conf + fi + + # symlink non-versioned so nvidia-settings can use it even if misdetected + dosym nvidia-application-profiles-${PV}-key-documentation \ + ${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation + + # don't attempt to strip firmware files (silences errors) + dostrip -x ${paths[FIRMWARE]} + + # sandbox issues with /dev/nvidiactl and others (bug #904292,#921578) + # are widespread and sometime affect revdeps of packages built with + # USE=opencl/cuda making it hard to manage in ebuilds (minimal set, + # ebuilds should handle manually if need others or addwrite) + insinto /etc/sandbox.d + newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/nvidia-caps:/dev/char"' + + # dracut does not use /etc/modprobe.d if hostonly=no, but want to make sure + # our settings are used for bug 932781#c8 and nouveau blacklist if either + # modules are included (however, just best-effort without initramfs regen) + if use modules; then + echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \ + "${ED}"/usr/lib/dracut/dracut.conf.d/10-${PN}.conf || die + fi +} + +pkg_preinst() { + use modules || return + + # set video group id based on live system (bug #491414) + local g=$(egetent group video | cut -d: -f3) + [[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got '${g}')" + sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die + + # try to find driver mismatches using temporary supported-gpus.json + for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do + g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \ + "${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null) + if [[ ${g} ]]; then + g=$((${g##*\"}+1)) + if ver_test -ge ${g}; then + NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}" + break + fi + fi + done + rm "${ED}"/usr/share/nvidia/supported-gpus.json || die +} + +pkg_postinst() { + linux-mod-r1_pkg_postinst + + readme.gentoo_print_elog + + if [[ -r /proc/driver/nvidia/version && + $( ${EROOT}/etc/portage/package.mask/${PN}" + else + ewarn " 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 ver_replacing -lt 595; then + elog "\n>=${PN}-595 has changes that may or may not need attention:" + elog "1. USE=kernel-open was removed and is now always enabled. If for some" + elog " reason you really need the closed variant (e.g. Runtime D3 on Turing" + elog " GPUs), please use LTS 580.xx instead as Gentoo has no intention to" + elog " support both variants anymore going forward" + elog "2. systemd/elogind sleep services (nvidia-sleep.sh) were tentatively" + elog " removed and replaced by setting NVreg_UseKernelSuspendNotifiers=1 in" + elog " ${EROOT}/etc/modprobe.d/nvidia.conf. If using a non-default custom" + elog " nvidia.conf, please ensure the option is set. Also, systemd users" + elog " may want to ensure that they do not have old sleep/suspend/resume" + elog " *nvidia* files in ${EROOT}/etc/systemd to avoid potential issues." + elog "3. nvidia-drm.modeset=1 was removed from nvidia.conf because it is now" + elog " default enabled regardless (new NVIDIA default)" + fi +}