diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index 1a6950ea2f1..cdb169b9843 100644 --- a/build_library/vm_image_util.sh +++ b/build_library/vm_image_util.sh @@ -714,13 +714,23 @@ _write_cpio_common() { echo "/.noupdate f 444 root root echo -n" >"${VM_TMP_DIR}/extra" # Set correct group for PXE/ISO, which has no writeable /etc - echo /usr/share/flatcar/update.conf f 644 root root \ + echo /share/flatcar/update.conf f 644 root root \ "sed -e 's/GROUP=.*$/GROUP=${VM_GROUP}/' ${base_dir}/share/flatcar/update.conf" \ >> "${VM_TMP_DIR}/extra" + local -a mksquashfs_opts=( + -pf "${VM_TMP_DIR}/extra" + -xattrs-exclude '^btrfs.' + # mksquashfs doesn't like overwriting existing files with + # pseudo-files, so tell it to ignore the existing file instead + # + # also, this must be the last option + -e share/flatcar/update.conf + ) + # Build the squashfs, embed squashfs into a gzipped cpio pushd "${cpio_target}" >/dev/null - sudo mksquashfs "${base_dir}" "./usr.squashfs" -pf "${VM_TMP_DIR}/extra" -xattrs-exclude '^btrfs.' + sudo mksquashfs "${base_dir}" "./usr.squashfs" "${mksquashfs_opts[@]}" find . | cpio -o -H newc | gzip > "$2" popd >/dev/null diff --git a/changelog/updates/2025-06-30-weekly-updates.md b/changelog/updates/2025-06-30-weekly-updates.md new file mode 100644 index 00000000000..6f852b124ac --- /dev/null +++ b/changelog/updates/2025-06-30-weekly-updates.md @@ -0,0 +1,20 @@ +- SDK: pkgcheck ([0.10.36](https://github.com/pkgcore/pkgcheck/blob/v0.10.36/NEWS.rst)) +- azure, dev, gce, sysext-python: python ([3.11.13](https://www.python.org/downloads/release/python-31113/)) +- base, dev: elfutils ([0.193](https://inbox.sourceware.org/elfutils-devel/CAJDtP-RjuT13zehLgSvz9TnwQZ1VYPOS=q_kuut5a2g+KLamgw@mail.gmail.com/T/#u)) +- base, dev: gnupg ([2.4.8](https://dev.gnupg.org/T7428)) +- base, dev: ipset ([7.24](https://lwn.net/Articles/1021623/)) +- base, dev: jansson ([2.14.1](https://jansson.readthedocs.io/en/latest/changes.html#version-2-14-1)) +- base, dev: libarchive ([3.8.1](https://github.com/libarchive/libarchive/releases/tag/v3.8.1) (includes [3.8.0](https://github.com/libarchive/libarchive/releases/tag/v3.8.0))) +- base, dev: libcap ([2.76](https://sites.google.com/site/fullycapable/release-notes-for-libcap#h.wqnp1zp1o8bm) (includes [2.75](https://sites.google.com/site/fullycapable/release-notes-for-libcap#h.7xqcoecpcnn8), [2.74](https://sites.google.com/site/fullycapable/release-notes-for-libcap#h.ccbrq82zh7n9), [2.73](https://sites.google.com/site/fullycapable/release-notes-for-libcap#h.7yd7ab9ppagk), [2.72](https://sites.google.com/site/fullycapable/release-notes-for-libcap#h.ulglddlojmy0))) +- base, dev: libgcrypt ([1.11.1](https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=blob;f=NEWS;h=84bc61a49f3a09302b3438cb529baf67576ad859;hb=81ce5321b1b79bde6dfdc3c164efb40c13cf656b)) +- base, dev: libnftnl ([1.2.9](https://lwn.net/Articles/1017463/)) +- base, dev: libunistring ([1.3](https://lists.gnu.org/archive/html/info-gnu/2024-10/msg00000.html)) +- base, dev: libunwind ([1.8.2](https://github.com/libunwind/libunwind/releases/tag/v1.8.2)) +- base, dev: openssl ([3.4.1](https://github.com/openssl/openssl/releases/tag/openssl-3.4.1) (includes [3.4.0](https://github.com/openssl/openssl/blob/openssl-3.4.0/NEWS.md#openssl-34))) +- dev, sysext-incus: squashfs-tools ([4.7](https://lkml.org/lkml/2025/6/3/1214)) +- dev: portage ([3.0.68](https://gitweb.gentoo.org/proj/portage.git/tree/NEWS?h=portage-3.0.68)) +- sysext-docker: docker ([28.0.4](https://github.com/moby/moby/releases/tag/v28.0.4) (includes [28.0.3](https://github.com/moby/moby/releases/tag/v28.0.3), [28.0.2](https://github.com/moby/moby/releases/tag/v28.0.2))) +- sysext-podman: containers-common ([0.63.0](https://github.com/containers/common/releases/tag/v0.63.0)) +- sysext-podman: passt ([2025.04.15](https://archives.passt.top/passt-user/20250415233140.35074c4b@elisabeth/T/#u)) +- sysext-python: msgpack ([1.1.1](https://github.com/msgpack/msgpack-python/releases/tag/v1.1.1)) +- sysext-python: typing-extensions ([4.14.0](https://github.com/python/typing_extensions/releases/tag/4.14.0)) diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-libs/libcap/0001-pam-cap-Fix-potential-configuration-parsing-error.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-libs/libcap/0001-pam-cap-Fix-potential-configuration-parsing-error.patch deleted file mode 100644 index 839aed2ccc0..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-libs/libcap/0001-pam-cap-Fix-potential-configuration-parsing-error.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 1ad42b66c3567481cc5fa22fc1ba1556a316d878 Mon Sep 17 00:00:00 2001 -From: Tianjia Zhang -Date: Mon, 17 Feb 2025 10:31:55 +0800 -Subject: pam_cap: Fix potential configuration parsing error - -The current configuration parsing does not actually skip user names -that do not start with @, but instead treats the name as a group -name for further parsing, which can result in matching unexpected -capability sets and may trigger potential security issues. Only -names starting with @ should be parsed as group names. - -Signed-off-by: Tianjia Zhang -Signed-off-by: Andrew G. Morgan ---- - pam_cap/pam_cap.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/pam_cap/pam_cap.c b/pam_cap/pam_cap.c -index 24de329..3ec99bb 100644 ---- a/pam_cap/pam_cap.c -+++ b/pam_cap/pam_cap.c -@@ -166,6 +166,7 @@ static char *read_capabilities_for_user(const char *user, const char *source) - - if (line[0] != '@') { - D(("user [%s] is not [%s] - skipping", user, line)); -+ continue; - } - - int i; --- -cgit 1.2.3-korg - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-libs/libcap/README.md b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-libs/libcap/README.md deleted file mode 100644 index a931f4f4669..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-libs/libcap/README.md +++ /dev/null @@ -1,3 +0,0 @@ -The `0001-pam-cap-Fix-potential-configuration-parsing-error.patch` -patch addresses CVE-2025-1390. It can be dropped when updating to -2.74. 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 f801bcea5b9..679beb69c4c 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 @@ -8,20 +8,21 @@ # (the following packages are "unstable" upstream; we're stabilising these) # Needed to address CVE-2024-40635, CVE-2025-47291 -=app-containers/containerd-2.0.5 ~amd64 ~arm64 +=app-containers/containerd-2.0.5 ~arm64 # Keep versions on both arches in sync. +=app-containers/containers-common-0.63.0 ~arm64 =app-containers/cri-tools-1.32.0 ~arm64 # Needed to address CVE-2025-24965. -=app-containers/crun-1.20 ~amd64 ~arm64 +=app-containers/crun-1.20 ~arm64 # Keep versions on both arches in sync. -=app-containers/lxc-6.0.4-r1 ~amd64 ~arm64 -=app-containers/incus-6.0.4-r1 ~amd64 ~arm64 - -# Needed by app-containers/containerd-2.0.5 -=app-containers/runc-1.2.6 ~amd64 ~arm64 +=app-containers/docker-28.0.4 ~arm64 +=app-containers/docker-cli-28.0.4 ~arm64 +=app-containers/incus-6.0.4-r1 ~arm64 +=app-containers/lxc-6.0.4-r1 ~arm64 +=app-containers/runc-1.2.6 ~arm64 # No stable keywords. =app-containers/syft-1.18.1 ~amd64 ~arm64 @@ -29,12 +30,20 @@ # Seems to be the only available ebuild in portage-stable right now. =app-crypt/adcli-0.9.2 ~arm64 +# Packages are in Gentoo but not expected to be used outside Flatcar, so they +# are generally never stabilised. Thus an unusual form is used to pick up the +# latest version of the package with the unstable keywords. +app-crypt/azure-keyvault-pkcs11 + # Needed by arm64-native SDK =app-crypt/ccid-1.6.1 ~arm64 # The only available ebuild (from GURU) has ~amd64 and no keyword for arm64 yet. =app-crypt/clevis-19-r1 ** +# Keep versions on both arches in sync. +=app-crypt/gnupg-2.4.8 ~arm64 + # Needed to address CVE-2025-1215, CVE-2025-22134, CVE-2025-24014, GHSA-63p5-mwg2-787v, CVE-2025-27423, CVE-2025-29768 =app-editors/vim-9.1.1436 ~amd64 ~arm64 =app-editors/vim-core-9.1.1436 ~amd64 ~arm64 @@ -50,24 +59,46 @@ # Keep versions on both arches in sync. =dev-build/meson-1.7.2 ~arm64 -=dev-db/sqlite-3.49.2 ~arm64 -=dev-lang/go-1.24.4 ~arm64 + +# Packages are in Gentoo but not expected to be used outside Flatcar, so they +# are generally never stabilised. Thus an unusual form is used to pick up the +# latest version of the package with the unstable keywords. +dev-cpp/azure-core +dev-cpp/azure-identity +dev-cpp/azure-security-keyvault-certificates +dev-cpp/azure-security-keyvault-keys # Keep versions on both arches in sync. +=dev-db/sqlite-3.49.2 ~arm64 +=dev-lang/go-1.24.4 ~arm64 +=dev-lang/python-3.11.13 ~arm64 =dev-lang/yasm-1.3.0-r1 ~arm64 -=dev-libs/ding-libs-0.6.2-r1 ~arm64 =dev-libs/cowsql-1.15.8 ~arm64 +=dev-libs/ding-libs-0.6.2-r1 ~arm64 # Needed to address CVE-2025-4373 -=dev-libs/glib-2.84.3 ~amd64 ~arm64 -=dev-libs/gobject-introspection-common-1.84.0 ~amd64 ~arm64 +=dev-libs/glib-2.84.3 ~arm64 +=dev-libs/gobject-introspection-common-1.84.0 ~arm64 + +# Keep versions on both arches in sync. +=dev-libs/jansson-2.14.1 ~arm64 # The only available ebuild (from GURU) has ~amd64 and no keyword for arm64 yet. =dev-libs/jose-12 ** + +# Keep versions on both arches in sync. +=dev-libs/libgcrypt-1.11.1 ~arm64 +=dev-libs/libtracefs-1.8.2 ~arm64 +=dev-libs/libunistring-1.3 ~arm64 + +# The only available ebuild (from GURU) has ~amd64 and no keyword for arm64 yet. =dev-libs/luksmeta-9-r1 ** # Keep versions on both arches in sync. =dev-libs/raft-0.22.1 ~arm64 +=dev-python/cryptography-45.0.4 ~arm64 +=dev-python/cython-3.1.2 ~arm64 +=dev-python/msgpack-1.1.1 ~arm64 # No arm64 keyword in package. =dev-util/bsdiff-4.3-r4 ** @@ -76,17 +107,18 @@ =dev-util/catalyst-4.0.0 ~amd64 ~arm64 # Needed to address CVE-2025-4373 -=dev-util/glib-utils-2.84.3 ~amd64 ~arm64 -=dev-util/gdbus-codegen-2.84.3 ~amd64 ~arm64 +=dev-util/gdbus-codegen-2.84.3 ~arm64 +=dev-util/glib-utils-2.84.3 ~arm64 # Keep versions on both arches in sync. =dev-util/xdelta-3.0.11-r1 ~arm64 # Needed to address CVE-2024-11187, CVE-2024-12705 -=net-dns/bind-9.18.37-r1 ~amd64 ~arm64 +=net-dns/bind-9.18.37-r1 ~arm64 # Keep versions on both arches in sync. =net-firewall/conntrack-tools-1.4.8-r1 ~arm64 +=net-firewall/ipset-7.24 ~arm64 # Needed to address CVE-2025-2312. =net-fs/cifs-utils-7.3 ~amd64 ~arm64 @@ -94,34 +126,36 @@ # Keep versions on both arches in sync. =net-libs/libnetfilter_cthelper-1.0.1-r1 ~arm64 =net-libs/libnetfilter_cttimeout-1.0.1 ~arm64 +=net-libs/libnftnl-1.2.9 ~arm64 # Needed for addressing CVE-2025-47268 and CVE-2025-48964 =net-misc/iputils-20250605 ~amd64 ~arm64 +# Keep versions on both arches in sync. +=net-misc/passt-2025.04.15 ~arm64 + # Packages are in Gentoo but not expected to be used outside Flatcar, so they # are generally never stabilised. Thus an unusual form is used to pick up the # latest version of the package with the unstable keywords. -app-crypt/azure-keyvault-pkcs11 -dev-cpp/azure-core -dev-cpp/azure-identity -dev-cpp/azure-security-keyvault-certificates -dev-cpp/azure-security-keyvault-keys sys-apps/azure-vm-utils # Keep versions on both arches in sync. +=sys-apps/dtc-1.7.2-r2 ~arm64 +=sys-apps/portage-3.0.68 ~arm64 =sys-apps/zram-generator-1.2.1 ~arm64 -=sys-auth/polkit-126-r1 ~amd64 # Needed to avoid pulling python into production images. =sys-auth/sssd-2.9.6-r3 ~arm64 # Keep versions on both arches in sync. +=sys-boot/gnu-efi-4.0.1 ~arm64 =sys-boot/mokutil-0.7.2 ** # Enable ipvsadm for arm64. =sys-cluster/ipvsadm-1.31-r1 ~arm64 # Keep versions on both arches in sync. -=sys-fs/fuse-3.17.2 ~arm64 =sys-fs/lxcfs-6.0.4 ~arm64 +=sys-libs/libcap-2.76 ~arm64 +=sys-libs/libunwind-1.8.2 ~arm64 =sys-process/audit-4.0.2-r1 ~arm64 diff --git a/sdk_container/src/third_party/portage-stable/app-admin/logrotate/Manifest b/sdk_container/src/third_party/portage-stable/app-admin/logrotate/Manifest index 889283fbcb4..29b542c8f26 100644 --- a/sdk_container/src/third_party/portage-stable/app-admin/logrotate/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-admin/logrotate/Manifest @@ -1,4 +1,2 @@ -DIST logrotate-3.21.0.tar.xz 168532 BLAKE2B f7fa0050bde51e2517eac8456ecf87648bc8423621830894ceb2a3ff6b9dfe32c5b53df6a4ee59aa91bd563ed94376a635159535f4fdc170fbc673354bcef508 SHA512 c576df7d2bc1a1db2f99befdd0ea627aef2d97bdcd4a7cdea76870623ba92fb1f04f1af6d15b75e4a9085f4aef2ae5e9843c4094cdd01e24d89872ccaf9c0d4a -DIST logrotate-3.21.0.tar.xz.asc 833 BLAKE2B b2099a0b8c15d1ea7f7325884027dff08dcc8305113411448797b8089d17026242a3f10bd6d7f3d865e3e339ec6fb5faf4ff48f8fd65bca3af4da8b335c3b5f1 SHA512 8f4c1853cd84f85c796b72b43048f4cf04e3409703e7669ee91e1d1aa5e9e5c04261fac1cdf85ec303508d5b6dbf126a44eb9ec819bcc772c664830d39e1068c DIST logrotate-3.22.0.tar.xz 172108 BLAKE2B c1c9f1ff792905d2917e9ba3cee360c50259e1520e04073cb69abe475499adcf01aeb3cb4c6933af61255fbb5978577c4fdf9d6ab6ebf9568358d2446791c7f3 SHA512 16fd95b4daef779212008c4a968c7a7130be8d550f58531d24fc04599cb9adff6323a745725b3b14d7312ad36cb6646fe33a3defdb5b70cda2cec9646aab066a DIST logrotate-3.22.0.tar.xz.asc 833 BLAKE2B 379d4fd71c6161211234903560770cf14a7ddf769b83e76ef27ad96d1204e2f4dc73d1e44aa69401db87c252c4471d5bdbace0555dfbb66c8751c20131a7751f SHA512 93664c45bfe9ea20aedc54fe216825db38eaf81d43b238cd7bf8ea3e03f7d282f53743fb6d914766a9ed0cb5b33376435d253db5b9ec7039facd66e25d349dd4 diff --git a/sdk_container/src/third_party/portage-stable/app-admin/logrotate/logrotate-3.21.0.ebuild b/sdk_container/src/third_party/portage-stable/app-admin/logrotate/logrotate-3.21.0.ebuild deleted file mode 100644 index 5c8f335a352..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-admin/logrotate/logrotate-3.21.0.ebuild +++ /dev/null @@ -1,99 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/kamildudka.asc -inherit systemd tmpfiles verify-sig - -DESCRIPTION="Rotates, compresses, and mails system logs" -HOMEPAGE="https://github.com/logrotate/logrotate" -SRC_URI="https://github.com/${PN}/${PN}/releases/download/${PV}/${P}.tar.xz" -SRC_URI+=" verify-sig? ( https://github.com/${PN}/${PN}/releases/download/${PV}/${P}.tar.xz.asc )" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" -IUSE="acl +cron selinux" - -DEPEND=" - >=dev-libs/popt-1.5 - selinux? ( sys-libs/libselinux ) - acl? ( virtual/acl ) -" -RDEPEND=" - ${DEPEND} - selinux? ( sec-policy/selinux-logrotate ) - cron? ( virtual/cron ) -" -BDEPEND="verify-sig? ( sec-keys/openpgp-keys-kamildudka )" - -STATEFILE="${EPREFIX}/var/lib/misc/logrotate.status" -OLDSTATEFILE="${EPREFIX}/var/lib/logrotate.status" - -PATCHES=( - "${FILESDIR}"/${PN}-3.15.0-ignore-hidden.patch -) - -move_old_state_file() { - elog "logrotate state file is now located at ${STATEFILE}" - elog "See bug #357275" - if [[ -e "${OLDSTATEFILE}" ]] ; then - elog "Moving your current state file to new location: ${STATEFILE}" - mv -n "${OLDSTATEFILE}" "${STATEFILE}" || die - fi -} - -install_cron_file() { - exeinto /etc/cron.daily - newexe "${S}"/examples/logrotate.cron "${PN}" -} - -src_prepare() { - default - - sed -i -e 's#/usr/sbin/logrotate#/usr/bin/logrotate#' examples/logrotate.{cron,service} || die -} - -src_configure() { - econf \ - $(use_with acl) \ - $(use_with selinux) \ - --with-state-file-path="${STATEFILE}" -} - -src_install() { - dobin logrotate - doman logrotate.8 - dodoc ChangeLog.md - - insinto /etc - doins "${FILESDIR}"/logrotate.conf - - use cron && install_cron_file - - systemd_dounit examples/logrotate.{service,timer} - newtmpfiles "${FILESDIR}"/${PN}.tmpfiles ${PN}.conf - - keepdir /etc/logrotate.d -} - -pkg_postinst() { - elog - elog "The ${PN} binary is now installed under /usr/bin. Please" - elog "update your links" - elog - - move_old_state_file - - tmpfiles_process ${PN}.conf - - if [[ -z ${REPLACING_VERSIONS} ]] ; then - elog "If you wish to have logrotate e-mail you updates, please" - elog "emerge virtual/mailx and configure logrotate in" - elog "/etc/logrotate.conf appropriately" - elog - elog "Additionally, /etc/logrotate.conf may need to be modified" - elog "for your particular needs. See man logrotate for details." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/app-admin/logrotate/logrotate-3.22.0.ebuild b/sdk_container/src/third_party/portage-stable/app-admin/logrotate/logrotate-3.22.0.ebuild index 169818f942b..d3519bf4b53 100644 --- a/sdk_container/src/third_party/portage-stable/app-admin/logrotate/logrotate-3.22.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-admin/logrotate/logrotate-3.22.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -18,13 +18,13 @@ IUSE="acl +cron selinux" DEPEND=" >=dev-libs/popt-1.5 - selinux? ( sys-libs/libselinux ) acl? ( virtual/acl ) + selinux? ( sys-libs/libselinux ) " RDEPEND=" ${DEPEND} - selinux? ( sec-policy/selinux-logrotate ) cron? ( virtual/cron ) + selinux? ( sec-policy/selinux-logrotate ) " BDEPEND="verify-sig? ( sec-keys/openpgp-keys-cgzones )" diff --git a/sdk_container/src/third_party/portage-stable/app-admin/logrotate/metadata.xml b/sdk_container/src/third_party/portage-stable/app-admin/logrotate/metadata.xml index 5fc3fca4708..4f07f36161d 100644 --- a/sdk_container/src/third_party/portage-stable/app-admin/logrotate/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/app-admin/logrotate/metadata.xml @@ -5,7 +5,7 @@ base-system@gentoo.org Gentoo Base System - + Logrotate allows for the automatic rotation compression, removal and mailing of log files. Logrotate can be set to handle a log file daily, weekly, monthly or when the log file gets to a certain @@ -19,11 +19,11 @@ su tamaƱo alcanza cierto valor. - Installs acl support Installs cron file - Installs Security Enhanced Linux support + https://github.com/logrotate/logrotate/issues + https://github.com/logrotate/logrotate/releases logrotate/logrotate cpe:/a:logrotate_project:logrotate 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 9997003e13b..99c69c59b65 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,2 +1,4 @@ DIST sudo-1.9.16p2.tar.gz 5398419 BLAKE2B ef9f1c2cd4044454a808d1dff5f865355e1bd061d1b5c93a005207e28e9b9df7c267cf01358ce60dd2c98f6844b51dab00eac4e7a08bade1d621235c3a4774bf SHA512 1e2ea762671890a03b0ea4b95b3849f2d3a4c301432db8767433e9d80c517efd8b7a68e0bbce1b178aff5857907600f1f5e0d889779cb27e38c2f602395f6f06 DIST sudo-1.9.16p2.tar.gz.sig 566 BLAKE2B 90f90658a7d6ec3b32f6a726a2cd28e156826a65749a88a2a29d970e97804d2d75de856bc85c9a459233b59e35564c5fbf93aff53ffe42d17d0e94dd23724acd SHA512 7f0e3269c9befada535590b2cfc36f96cd70831b5c030df5b3bf8c7cb3eff296d22193429f940db4a0df849b4d8080e4006086c49869b4bbae663836b2632b49 +DIST sudo-1.9.17.tar.gz 5447899 BLAKE2B d9f2e0d8bca5d5dba5f78a9c064454032038fa60dae022ce72dd0d262bc4bd756fcc5a8e5b0ab4e179c3786fc86a401f7f1ba6d45ca4fe02e43d5cacb1e7f022 SHA512 e94df174ca63a828d953d8400d7e68f8cb86119ca1cd845567b7b452d09bef806a6bd0a6cfc232acfdf7c85aa915f2897b29990c7df89b36c92c62aa469cd7a7 +DIST sudo-1.9.17.tar.gz.sig 566 BLAKE2B c7543ab8f3a20a27eb2df6b4b6f0aa69d657cbc5d88ea4377ec28b5ef77ec137b7a88a9f28d7051a0ce95493e4c860a01a1cb7e081563183850f4d704805336e SHA512 c03534cf696f300c4434ad2053267b586d3a01459269206632c3c8f348469d3b40d7b4ace30373203c539e2f69b94402d6d2b96da1427d7e872509e4e8029812 diff --git a/sdk_container/src/third_party/portage-stable/app-admin/sudo/sudo-1.9.17.ebuild b/sdk_container/src/third_party/portage-stable/app-admin/sudo/sudo-1.9.17.ebuild new file mode 100644 index 00000000000..8fff95b78b8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-admin/sudo/sudo-1.9.17.ebuild @@ -0,0 +1,289 @@ +# 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=" + sys-libs/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-arch/libarchive/libarchive-3.8.1.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.8.1.ebuild index b957cea4b43..c8371de4ea7 100644 --- a/sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.8.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.8.1.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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE=" 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/ncompress/ncompress-5.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/ncompress/ncompress-5.0-r1.ebuild deleted file mode 100644 index 59b2c816621..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-arch/ncompress/ncompress-5.0-r1.ebuild +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -inherit toolchain-funcs - -DESCRIPTION="Classic compress & uncompress programs for .Z (LZW) files" -HOMEPAGE="https://vapier.github.io/ncompress/" -SRC_URI="https://github.com/vapier/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="public-domain" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos" -IUSE="" - -src_prepare() { - default - # First sed expression replaces hardlinking with - # symlinking. Second sed expression fixes the symlink target - # to use relative path to a file in the same directory as the - # symlink (so point to compress instead of - # $(DESTDIR)$(BINDIR)/compress). - sed -i \ - -e 's:\bln :ln -s :' \ - -e 's:\(\bln [^$]*\)\$(DESTDIR)\$(BINDIR)/:\1:' \ - Makefile.def || die -} - -src_configure() { - tc-export CC -} - -src_install() { - emake install_core DESTDIR="${ED}" PREFIX="/usr" - dodoc Acknowleds Changes LZW.INFO README.md -} diff --git a/sdk_container/src/third_party/portage-stable/app-containers/containerd/containerd-2.0.5.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/containerd/containerd-2.0.5.ebuild index a17d4116c11..4ccc0a66c9b 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/containerd/containerd-2.0.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/containerd/containerd-2.0.5.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://github.com/containerd/containerd/archive/v${PV}.tar.gz -> ${P}. LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +KEYWORDS="amd64 ~arm ~arm64 ppc64 ~riscv ~x86" IUSE="apparmor btrfs device-mapper +cri hardened +seccomp selinux test" COMMON_DEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/app-containers/containers-common/containers-common-0.63.0.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/containers-common/containers-common-0.63.0.ebuild index d4f8c244621..53718051c4e 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/containers-common/containers-common-0.63.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/containers-common/containers-common-0.63.0.ebuild @@ -14,7 +14,7 @@ if [[ ${PV} == 9999* ]]; then else SRC_URI="https://github.com/containers/common/archive/v${PV}.tar.gz -> ${P}.tar.gz" S="${WORKDIR}/${P#containers-}" - KEYWORDS="~amd64 ~arm64 ~loong ~riscv" + KEYWORDS="amd64 ~arm64 ~loong ~riscv" fi LICENSE="Apache-2.0" diff --git a/sdk_container/src/third_party/portage-stable/app-containers/crun/Manifest b/sdk_container/src/third_party/portage-stable/app-containers/crun/Manifest index dbc943f3d1c..25d0a382abb 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/crun/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-containers/crun/Manifest @@ -1,5 +1,3 @@ -DIST crun-1.14.3.tar.xz 750456 BLAKE2B 5a63b5da2f85ff1a83d4589be224c5b7a1123b6d7714b90a63c1907b78d42392aff25ffe5d9a4127173ac47026d57e9c93a39f5ba4b07de7f9f3722c14e6d203 SHA512 d6645c519ff00dda5def6d58240600d15e76969489918d51c0def2fee7dbad6374f83e5afc14a998d176aa2944765df5cd84c3031b265a1931ab23f2fc965fc1 -DIST crun-1.16.tar.gz 1759549 BLAKE2B 1dfdf9177ae52e627c92e70e48a558bb355c87f629e95f1debaf6b7d8c38802110bd796545d5b2dbe3cac7f8de1f9c94e9b5f046cc618e73afd4c434188d585c SHA512 718e17abdb8c2a9e1fdd39f09e7e3e435d88c5785cc13c1e67f492847d7d938cf399aecc055ecf88720fa8f73b8539f057e3b0e53f10f4e382f5664a2243b959 -DIST crun-1.17.tar.gz 1773153 BLAKE2B 9f75cb6879e0b8cd47bb8939c1cf6f88d5e13e6d8932c652ea20c64501bc69fbda84dd061866a9c08e353848f39d1022bf67fbc0d160d5ef7fdc08c1edec03f9 SHA512 7556467c5e0e93bb7321e2e88de8a2f537340e3e0acaa5501eab8deb0f4bb93c4561f8d063156789d3ee98fdd49069fc52c0ed0c773bd44db476eeeccc16aa1a DIST crun-1.19.1.tar.gz 1786019 BLAKE2B 555f7c917c9e9ed80919b708cd711890d47c395b5b6fa1c2b542d311176941c5ece23bd7ff0cb4c3dcf81be4f46fec21fa8127da57092657157707537771dfe1 SHA512 6cb6148a3b6e18b4dbb0178ea23eaaa57c040781a34b5c5c5dac71be513941717011fe996a7400b9dee0a73f7f0dd2fc36544fe72382a3f2543e4de90589fe6a DIST crun-1.20.tar.gz 1787750 BLAKE2B 4f31c21056c6c764c76021d3121dfaa4dd9b91f17def977238df831af02f27aff267cf22c3f1ade4f332d757ffc50cc98a480aea7cd67b3552f19ba5c810c3f8 SHA512 759326768a9a141ecaec5824e3c30cade0a0c7d848935d434cada4fdc5a59a992f1916515141a84387cdb95ee1307f5bec471679d7ff9b403b0cb2b10c7dfd74 +DIST crun-1.21.tar.gz 1788933 BLAKE2B bc854f8eb24566d608e90b44cb7dd2509b59cf6594eef244839f15beef2d241eab7149aabcf2156694043ab00367e312f58599deb324b85493555958eedaf849 SHA512 dbec4b55645587046a83903822a00b93092b26fdf36d6df9b086674815b53a9a60f907c1611eb9535f3186a03d6e8a98ae6e40e9f4e287855ea17745c3578d4f diff --git a/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.14.3.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.14.3.ebuild deleted file mode 100644 index 14528443dc1..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.14.3.ebuild +++ /dev/null @@ -1,71 +0,0 @@ -# Copyright 2019-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{10..12} ) - -inherit libtool python-any-r1 - -DESCRIPTION="A fast and low-memory footprint OCI Container Runtime fully written in C" -HOMEPAGE="https://github.com/containers/crun" - -if [[ "$PV" == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/containers/${PN}.git" -else - SRC_URI="https://github.com/containers/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm arm64 ppc64 ~riscv" -fi - -LICENSE="GPL-2+ LGPL-2.1+" -SLOT="0" -IUSE="+bpf +caps criu +seccomp selinux systemd static-libs" - -DEPEND=" - dev-libs/yajl:= - sys-kernel/linux-headers - caps? ( sys-libs/libcap ) - criu? ( >=sys-process/criu-3.15 ) - elibc_musl? ( sys-libs/argp-standalone[static-libs] ) - seccomp? ( sys-libs/libseccomp ) - systemd? ( sys-apps/systemd:= ) -" -RDEPEND="${DEPEND} - selinux? ( sec-policy/selinux-container )" -BDEPEND=" - ${PYTHON_DEPS} - virtual/pkgconfig -" - -# the crun test suite is comprehensive to the extent that tests will fail -# within a sandbox environment, due to the nature of the privileges -# required to create linux "containers". -RESTRICT="test" - -src_prepare() { - default - elibtoolize -} - -src_configure() { - local myeconfargs=( - $(use_enable bpf) - $(use_enable caps) - $(use_enable criu) - $(use_enable seccomp) - $(use_enable systemd) - $(usex static-libs '--enable-shared --enable-static' '--enable-shared --disable-static' '' '') - ) - - econf "${myeconfargs[@]}" -} - -src_install() { - emake "DESTDIR=${D}" install-exec - doman crun.1 - einstalldocs - - einfo "Cleaning up .la files" - find "${ED}" -name '*.la' -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.17.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.17.ebuild deleted file mode 100644 index af92ab475fd..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.17.ebuild +++ /dev/null @@ -1,81 +0,0 @@ -# Copyright 2019-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{10..13} ) - -inherit libtool python-any-r1 - -DESCRIPTION="A fast and low-memory footprint OCI Container Runtime fully written in C" -HOMEPAGE="https://github.com/containers/crun" - -if [[ "$PV" == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/containers/${PN}.git" -else - SRC_URI="https://github.com/containers/${PN}/releases/download/${PV}/${P}.tar.gz" - KEYWORDS="amd64 ~arm arm64 ~loong ppc64 ~riscv" -fi - -LICENSE="GPL-2+ LGPL-2.1+" -SLOT="0" -IUSE="+bpf +caps criu +seccomp selinux systemd static-libs" - -DEPEND=" - dev-libs/yajl:= - sys-kernel/linux-headers - caps? ( sys-libs/libcap ) - criu? ( >=sys-process/criu-3.15 ) - seccomp? ( sys-libs/libseccomp ) - systemd? ( sys-apps/systemd:= ) -" -RDEPEND="${DEPEND} - selinux? ( sec-policy/selinux-container )" -BDEPEND=" - ${PYTHON_DEPS} - virtual/pkgconfig -" - -src_prepare() { - default - elibtoolize -} - -src_configure() { - local myeconfargs=( - --cache-file="${S}"/config.cache - $(use_enable bpf) - $(use_enable caps) - $(use_enable criu) - $(use_enable seccomp) - $(use_enable systemd) - $(usex static-libs '--enable-shared --enable-static' '--enable-shared --disable-static' '' '') - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - emake check-TESTS -C ./libocispec - - # the crun test suite is comprehensive to the extent that tests will fail - # within a sandbox environment, due to the nature of the privileges - # required to create linux "containers". - local supported_tests=( - "tests/tests_libcrun_utils" - "tests/tests_libcrun_errors" - "tests/tests_libcrun_intelrdt" - "tests/test_oci_features" - ) - emake check-TESTS TESTS="${supported_tests[*]}" -} - -src_install() { - emake "DESTDIR=${D}" install-exec - doman crun.1 - einstalldocs - - einfo "Cleaning up .la files" - find "${ED}" -name '*.la' -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.20.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.20.ebuild index a54adfa3501..29f34ed3c5b 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.20.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.20.ebuild @@ -15,7 +15,7 @@ if [[ "$PV" == *9999* ]]; then EGIT_REPO_URI="https://github.com/containers/${PN}.git" else SRC_URI="https://github.com/containers/${PN}/releases/download/${PV}/${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv" + KEYWORDS="amd64 ~arm ~arm64 ~loong ppc64 ~riscv" fi LICENSE="GPL-2+ LGPL-2.1+" diff --git a/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.16.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.21.ebuild similarity index 71% rename from sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.16.ebuild rename to sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.21.ebuild index 209c824bb70..5960de0a260 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.16.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.21.ebuild @@ -3,14 +3,14 @@ EAPI=8 -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit libtool python-any-r1 -DESCRIPTION="A fast and low-memory footprint OCI Container Runtime fully written in C" +DESCRIPTION="Fast and low-memory footprint OCI Container Runtime fully written in C" HOMEPAGE="https://github.com/containers/crun" -if [[ "$PV" == *9999* ]]; then +if [[ "${PV}" == *9999* ]]; then inherit git-r3 EGIT_REPO_URI="https://github.com/containers/${PN}.git" else @@ -30,8 +30,10 @@ DEPEND=" seccomp? ( sys-libs/libseccomp ) systemd? ( sys-apps/systemd:= ) " -RDEPEND="${DEPEND} - selinux? ( sec-policy/selinux-container )" +RDEPEND=" + ${DEPEND} + selinux? ( sec-policy/selinux-container ) +" BDEPEND=" ${PYTHON_DEPS} virtual/pkgconfig @@ -44,37 +46,37 @@ src_prepare() { src_configure() { local myeconfargs=( + --cache-file="${S}"/config.cache $(use_enable bpf) $(use_enable caps) $(use_enable criu) $(use_enable seccomp) $(use_enable systemd) - $(usex static-libs '--enable-shared --enable-static' '--enable-shared --disable-static' '' '') + --enable-shared + $(use_enable static-libs static) ) econf "${myeconfargs[@]}" } -src_install() { - emake "DESTDIR=${D}" install-exec - doman crun.1 - einstalldocs - - einfo "Cleaning up .la files" - find "${ED}" -name '*.la' -delete || die -} - src_test() { emake check-TESTS -C ./libocispec - # the crun test suite is comprehensive to the extent that tests will fail + # The crun test suite is comprehensive to the extent that tests will fail # within a sandbox environment, due to the nature of the privileges # required to create linux "containers". local supported_tests=( "tests/tests_libcrun_utils" "tests/tests_libcrun_errors" "tests/tests_libcrun_intelrdt" - "tests/test_oci_features" ) - emake check-TESTS TESTS="${supported_tests[*]}" + emake check-TESTS TESTS="${supported_tests[*]}" CFLAGS="${CFLAGS} -std=gnu17" +} + +src_install() { + emake "DESTDIR=${D}" install-exec + doman crun.1 + einstalldocs + + find "${ED}" -name '*.la' -type f -delete || die } diff --git a/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/docker-cli-28.0.4.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/docker-cli-28.0.4.ebuild index ec5fe43c9a6..9ead91b31e2 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/docker-cli-28.0.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/docker-cli-28.0.4.ebuild @@ -23,7 +23,7 @@ S="${WORKDIR}/cli-${PV}" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" +KEYWORDS="amd64 ~arm ~arm64 ~loong ppc64 ~riscv ~x86" IUSE="hardened selinux" RDEPEND="selinux? ( sec-policy/selinux-docker )" diff --git a/sdk_container/src/third_party/portage-stable/app-containers/docker/docker-28.0.4.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/docker/docker-28.0.4.ebuild index b28b8e31e1c..0bb74bbb787 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/docker/docker-28.0.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/docker/docker-28.0.4.ebuild @@ -15,7 +15,7 @@ S="${WORKDIR}/moby-${PV}" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +KEYWORDS="amd64 ~arm ~arm64 ppc64 ~riscv ~x86" IUSE="apparmor btrfs +container-init cuda +overlay2 seccomp selinux systemd" DEPEND=" 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 ad1e3c5fa34..7e1509f5a94 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 @@ -2,7 +2,5 @@ DIST incus-6.0.3.tar.xz 11916020 BLAKE2B d3d998bd50124604c52ff007eefed586c216ce1 DIST incus-6.0.3.tar.xz.asc 833 BLAKE2B 38835ab036709161150992cb40df4ff1ae1887d4f3e0b037d0415f75d2bb711cb3c5945bffe1b91d289acfb7e19e726964278e5c2ab31731ba9f7534f139dec7 SHA512 7d5360ab91aafe1d047a60e38a07e24c3c7b158e753087a943ec5e59d6a27c19a872080c9007b6cf592040d3408845bc188d76f6e732408d0680a3782cebce47 DIST incus-6.0.4.tar.xz 12000208 BLAKE2B 99a4ba40d2eea48515b88f4534c282adc925fe1b5487dc98901f000894b3781aec89f617d2246314cf9a95a7d65531e486c4092f8939722e1b3c2bf7d33063c8 SHA512 14a5cdad3f9365d58e526c8f451d9e7a57729010073caff31256e0b94d28206adc82ead4820278e7eac17b74d22a76d9f3b9f5f8424ddbfa6b74a5cea13e019f DIST incus-6.0.4.tar.xz.asc 833 BLAKE2B 96c94cde55cd2e9f7f28db7adb098adf4895437d300dfd42aeac540cdab6677fb604831c28f40f8581e60b89b228557d81696cd64950a1c2147b445a5ec58b30 SHA512 1ef2063eab424467c805f8c86b5b0caca848f46d2ef7ebf602049fe32ee15a7e1006d5a2710b355604aef73802b4333cd0428c772e1c5fc4da588c2cd7ee1694 -DIST incus-6.12.tar.xz 12041616 BLAKE2B 25bb157839a6d86f45614f71cb8f61ec2d92ca96322e90dc9d4f47603aee8b246621b941cd223a3c9007bbb4dbb65ffe432a72d2e7af5fefae40bc398406424b SHA512 1234f54965f2b50fa04c286405dd3b7dcbf86f88f91dd38476695a57961dd13fbc8da3c698ce1c254da71239b4af64fda25b9de7c6db017e7728b5bc4db52bf4 -DIST incus-6.12.tar.xz.asc 833 BLAKE2B e74dbefea68db25458da3956e6b5fc99b2cc861d9a20c5d10a9fa2d1803068b2b36a350d35960bfb289e9e1e747baa8bc5d2fdb0a93fcfb8ee7b0ffcd65befe7 SHA512 11f63160366a17d7d2679eb52f318d3c0e2a6d91a76c968d6483db9fb45892006d831f85e30bedfa9237a55d9b517458b01c3d1311e7e5f9ea1c3b3bbc18975a DIST incus-6.13.tar.xz 12416404 BLAKE2B 0eca3b80762e9473be21f29157eb42d655a09db97084f6cccd1317595f96593c866110c19a4a42592ae556e8f2f3e40153a7430730373cdb777261bc4a8f0d5e SHA512 80411e23aa95f021f349463b15146444bba7f5cad42e094ff099ec70df8083d7b54d8374ef659d3f4d01afbcbf4287b7238e973d53fecd9a7af046df85b1b05f DIST incus-6.13.tar.xz.asc 833 BLAKE2B fbdb41110452716aa333f444801152456ec1196cbdb151c5dfdb940d3e82e39cbbc70990ec999b723938ec3986deafff0c1e77376cdd19fb862aa8c59083d363 SHA512 a29978fd9d9f89f7ae6585f150cf78ec7819360e189ce6bbb5559049cecd2b667a46857a852a77d22edba60fce083c2bfccbf89535dad7d415e82c0eec995700 diff --git a/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-6.0.4-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-6.0.4-r1.ebuild index b128d310292..44fa897837d 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-6.0.4-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-6.0.4-r1.ebuild @@ -12,7 +12,7 @@ SRC_URI="https://linuxcontainers.org/downloads/incus/${P}.tar.xz LICENSE="Apache-2.0 BSD LGPL-3 MIT" SLOT="0/lts" -KEYWORDS="~amd64 ~arm64" +KEYWORDS="amd64 ~arm64" IUSE="apparmor fuidshift nls qemu" DEPEND="acct-group/incus diff --git a/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-6.12-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-6.12-r1.ebuild deleted file mode 100644 index f0e16b062e4..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-6.12-r1.ebuild +++ /dev/null @@ -1,228 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit go-env go-module linux-info optfeature systemd toolchain-funcs verify-sig - -DESCRIPTION="Modern, secure and powerful system container and virtual machine manager" -HOMEPAGE="https://linuxcontainers.org/incus/introduction/ https://github.com/lxc/incus" -SRC_URI="https://linuxcontainers.org/downloads/incus/${P}.tar.xz - verify-sig? ( https://linuxcontainers.org/downloads/incus/${P}.tar.xz.asc )" - -LICENSE="Apache-2.0 BSD LGPL-3 MIT" -SLOT="0/stable" -KEYWORDS="~amd64 ~arm64" -IUSE="apparmor fuidshift nls qemu" - -DEPEND="acct-group/incus - acct-group/incus-admin - app-arch/xz-utils - >=app-containers/lxc-5.0.0:=[apparmor?,seccomp(+)] - dev-db/sqlite:3 - >=dev-libs/cowsql-1.15.7 - dev-libs/lzo - >=dev-libs/raft-0.22.1:=[lz4] - >=dev-util/xdelta-3.0[lzma(+)] - net-dns/dnsmasq[dhcp] - sys-libs/libcap - virtual/udev" -RDEPEND="${DEPEND} - || ( - net-firewall/iptables - net-firewall/nftables[json] - ) - fuidshift? ( !app-containers/lxd ) - net-firewall/ebtables - sys-apps/iproute2 - sys-fs/fuse:* - >=sys-fs/lxcfs-5.0.0 - sys-fs/squashfs-tools[lzma] - virtual/acl - apparmor? ( sec-policy/apparmor-profiles ) - qemu? ( - app-cdr/cdrtools - app-emulation/qemu[spice,usbredir,virtfs] - sys-apps/gptfdisk - )" -BDEPEND=">=dev-lang/go-1.21 - 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-0.4.service "${T}"/incus.service || die - if use apparmor; then - sed -i \ - '/^EnvironmentFile=.*/a ExecStartPre=\/usr\/libexec\/lxc\/lxc-apparmor-load' \ - "${T}"/incus.service || die - fi - - # Disable -Werror's from go modules. - find "${S}" -name "cgo.go" -exec sed -i "s/ -Werror / /g" {} + || die -} - -src_configure() { :; } - -src_compile() { - export GOPATH="${S}/_dist" - export CGO_LDFLAGS_ALLOW="-Wl,-z,now" - - for k in incus-benchmark incus-simplestreams incus-user incus lxc-to-incus lxd-to-incus ; do - ego install -v -x "${S}/cmd/${k}" - done - - if use fuidshift ; then - ego install -v -x "${S}/cmd/fuidshift" - fi - - ego install -v -x -tags libsqlite3 "${S}"/cmd/incusd - - # Needs to be built statically - CGO_ENABLED=0 go install -v -tags netgo "${S}"/cmd/incus-migrate - CGO_ENABLED=0 go install -v -tags agent,netgo "${S}"/cmd/incus-agent - - use nls && emake build-mo -} - -src_test() { - emake check -} - -src_install() { - export GOPATH="${S}/_dist" - - export GOHOSTARCH=$(go-env_goarch "${CBUILD}") - if [[ "${GOARCH}" != "${GOHOSTARCH}" ]]; then - local bindir="_dist/bin/linux_${GOARCH}" - else - local bindir="_dist/bin" - fi - - newsbin "${FILESDIR}"/incus-startup-0.4.sh incus-startup - - # Admin tools - for l in incusd incus-user lxd-to-incus ; do - dosbin ${bindir}/${l} - done - - # User tools - for m in incus-agent incus-benchmark incus-migrate incus-simplestreams incus lxc-to-incus ; do - dobin ${bindir}/${m} - done - - # 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 - newenvd - 90incus <<- _EOF_ - INCUS_EDK2_PATH=${EPREFIX}/usr/share/edk2-ovmf - _EOF_ -} - -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/lxc/lxc-6.0.4-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/lxc/lxc-6.0.4-r1.ebuild index 995c5160812..531c8fff35f 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/lxc/lxc-6.0.4-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/lxc/lxc-6.0.4-r1.ebuild @@ -12,7 +12,7 @@ SRC_URI="https://linuxcontainers.org/downloads/lxc/${P}.tar.gz LICENSE="GPL-2 LGPL-2.1 LGPL-3" SLOT="0/1.8" # SONAME liblxc.so.1 + ${PV//./} _if_ breaking ABI change while bumping. -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv x86" IUSE="apparmor +caps examples io-uring man pam seccomp selinux ssl systemd test +tools" RDEPEND="acct-group/lxc 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 index 70f1124cb3d..c8abf753485 100644 --- 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 @@ -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 hardened +kmem +seccomp selinux test" COMMON_DEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.8.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.8.ebuild index e010ff811b9..bc45391f146 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.8.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.8.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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="bzip2 doc ldap nls readline selinux +smartcard ssl test +tofu tpm tools usb user-socket wks-server" RESTRICT="!test? ( test )" REQUIRED_USE="test? ( tofu )" diff --git a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/files/vimrc-r6 b/sdk_container/src/third_party/portage-stable/app-editors/vim-core/files/vimrc-r6 deleted file mode 100644 index 0197f057d23..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-editors/vim-core/files/vimrc-r6 +++ /dev/null @@ -1,217 +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 - - " In text files, limit the width of text to 78 characters, but be careful - " that we don't override the user's setting. - autocmd BufNewFile,BufRead *.txt - \ if &tw == 0 && ! exists("g:leave_my_textwidth_alone") | - \ setlocal textwidth=78 | - \ endif - - " 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/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 new file mode 100644 index 00000000000..d2e02747610 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1436-r1.ebuild @@ -0,0 +1,233 @@ +# 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-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 6884c8d3de7..d9ac9cfb553 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 @@ -116,10 +116,6 @@ src_prepare() { } 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 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 new file mode 100644 index 00000000000..0327597dac1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1436-r1.ebuild @@ -0,0 +1,370 @@ +# 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-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-9999.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9999.ebuild index 9823492d476..37bae70a1c7 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 @@ -172,16 +172,6 @@ src_prepare() { } 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 diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/bash-completion-2.16.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/bash-completion-2.16.0-r1.ebuild index 71dabfc9175..13a70bdaa32 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/bash-completion-2.16.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/bash-completion-2.16.0-r1.ebuild @@ -19,7 +19,7 @@ SRC_URI=" LICENSE="GPL-2+" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" IUSE="+eselect test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/Manifest b/sdk_container/src/third_party/portage-stable/app-shells/bash/Manifest index ed49fe1e2c4..f9396b0c1ee 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/Manifest @@ -25,6 +25,8 @@ DIST bash-5.2.tar.gz.sig 95 BLAKE2B 2991b7c46ef1cdca08062f419be47fca7551f4c5d9aa DIST bash-5.3-rc2.tar.gz 11032468 BLAKE2B 42f3b6b3b675a618c965fbde8e3052ac4e171b0f50848589ab4996f6a8de22aca8bdaa5819eb21d3e3dbd67cddaad17d8c48d5a977ae77373fedfdec67cb4155 SHA512 8dfd16723ea14a5901f3a056d30a0fa7b633e41495bbf071897f6a7794293dec59e4eb8618345aeb9e06a924e87c8b823e3ab1e3888a963421b1e8398cc0c12e DIST bash-5.3-rc2.tar.gz.sig 95 BLAKE2B 2068f4b5e5045f00a389256c8e753253a1f9b7d06970c51516555e463ef3d5e682e28a9052a2fbae0f9ce7bb0f9e31116a0a780ae3dc7d083a71591feee6501d SHA512 2a4cad6d8f5212319045b6139fb8e3c56664efa5ffcf1ef522219f5a100d5385ab627f6c122f9b49178b48e9c2a85da43f72fd70425547c3a71c0ec1ae812e33 DIST bash-5.3_rc2_p20250606-727b8d366390fea446f7a566c4be1be6c0e2a765.tar.gz 16083935 BLAKE2B 05821cd7598a6915651ca5f0f9c601ea4e118406d3db652c0989cebe32d15a03e1c95b517740834564e27be1d1e312aa2433f4456a4a8307249d2cfd9fd471fd SHA512 f9f8b17efd119fb0d82251a5be7ead3af8502461116036ffb22b4318f924d97927f1ec010982a21fb0f6fe39ad78e0ccbedfd66a469bb20ed4006bb39595ae4e +DIST bash-5.3_rc2_p20250616-0f0cea342e32f1f82aa9cc9026038bfc3bb03e92.tar.gz 16112367 BLAKE2B 5b3644b8a931b7c81c2bca36f880f403f758bf4076d8268c0c607ebabd0239d6e453a748726763b39902fa198748d20cc31994b59e54ef770f38549d295bcb81 SHA512 f53108830f660b58c784559a43a6f9fb988f7a5eb53695ca315ba4b6c3b4af139b35f12de041d3bb014ee8b0b730c709ca46873f6a38c5d1af5d2922d7a52cdd +DIST bash-5.3_rc2_p20250627-b35866a2891a9b069e37ca5684d4309c0391e261.tar.gz 16113487 BLAKE2B 3e6af98b369afa1b61bb3f63dd1cf800d3fc109e0af946cf0ddedf0ed15bf602d1bcfef6b31d3ae0441cead3391894e8b3f0ea503ac72e02ecd546ee310ae8ec SHA512 91c7c02aa4077df6fd1151ff949a7063de98b742eae2e1305071e84453ba436a07c62adfc8dceaac7c64ae583c23ae07fa9039277740deaa8981816312e7344f DIST bash205b-001 1132 BLAKE2B 0c5eef29777d54ef05957ea3d63b1556fb380bd20c238dc28993d822b37bc4e78ff4048ad069f6b8cd25da77ccdeb7aecd86c4349cb9d81e5e94c7001eeae5e6 SHA512 5ce4357468821b05e747201f3aa57225ad8f540c9e2c87051720490e039c30b478b9b662a68f14a0800fefe40184e4495e2645665200f9d75e9a115b2ac08071 DIST bash205b-002 755 BLAKE2B 6a6ed5679d451f02f8104b345c1722d11718ce3b4043b581c17786d40d8da69a34786fb56d0c363dba277b8e9dd33f12f70c9cc73a9fc39ba4a8319406f0458d SHA512 46947b0229478d5c2cfeff68b8ebc00e4ef0c8b94e336ca12f72b4490ba3622c0240c01c17c1641c3b07adc2c64ec94d6d780365e8990768ec8888f3a9526883 DIST bash205b-003 2356 BLAKE2B b7887d00d92fd298cd07a15e1c73b516dabd22ecd74c97091636dd97a0cd55024ed698e5cc924c4311d994dd326b1ad074bea35e7650cf9cf4e25c60d2713fa7 SHA512 74528ca5d165b812d299f1c69b47757bd677c0b22ce4217e155cd641708b02364a93c6709fb57b546b376b36da74429a61493921c7c199563da40ddcf1c1f399 diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p37-r3.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p37-r3.ebuild index f844573464e..65cd38ce6ab 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p37-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p37-r3.ebuild @@ -65,7 +65,7 @@ S=${WORKDIR}/${MY_P} LICENSE="GPL-3+" SLOT="0" if (( PLEVEL >= 0 )); then - KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline" diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_rc2_p20250616.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_rc2_p20250616.ebuild new file mode 100644 index 00000000000..022b71dce24 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_rc2_p20250616.ebuild @@ -0,0 +1,412 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chetramey.asc +inherit flag-o-matic toolchain-funcs prefix verify-sig + +# Uncomment if we have a patchset. +#GENTOO_PATCH_DEV="sam" +#GENTOO_PATCH_VER="${PV}" + +MY_PV=${PV/_p*} +MY_PV=${MY_PV/_/-} +MY_P=${PN}-${MY_PV} +MY_PATCHES=() + +# Determine the patchlevel. See ftp://ftp.gnu.org/gnu/bash/bash-5.2-patches/. +case ${PV} in + 9999|*_alpha*|*_beta*|*_rc*) + # Set a negative patchlevel to indicate that it's a pre-release. + PLEVEL=-1 + ;; + *_p*) + PLEVEL=${PV##*_p} + ;; + *) + PLEVEL=0 + ;; +esac + +# The version of readline this bash normally ships with. Note that we only use +# the bundled copy of readline for pre-releases. +READLINE_VER="8.3_rc1" + +DESCRIPTION="The standard GNU Bourne again shell" +HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html https://git.savannah.gnu.org/cgit/bash.git" + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git" + EGIT_BRANCH=devel + inherit git-r3 +elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + # It can be useful to have snapshots in the pre-release period once + # the first alpha is out, as various bugs get reported and fixed from + # the alpha, and the next pre-release is usually quite far away. + # + # i.e. if it's worth packaging the alpha, it's worth packaging a followup. + BASH_COMMIT="0f0cea342e32f1f82aa9cc9026038bfc3bb03e92" + SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.gz -> ${P}-${BASH_COMMIT}.tar.gz" + S=${WORKDIR}/${PN}-${BASH_COMMIT} +else + my_urls=( "mirror://gnu/bash/${MY_P}.tar.gz" ) + + # bash-5.1 -> bash51 + my_p=${PN}$(ver_cut 1-2) my_p=${my_p/.} + + for (( my_patch_idx = 1; my_patch_idx <= PLEVEL; my_patch_idx++ )); do + printf -v my_patch_ver %s-%03d "${my_p}" "${my_patch_idx}" + my_urls+=( "mirror://gnu/bash/${MY_P}-patches/${my_patch_ver}" ) + MY_PATCHES+=( "${DISTDIR}/${my_patch_ver}" ) + done + + SRC_URI="${my_urls[*]} verify-sig? ( ${my_urls[*]/%/.sig} )" + S=${WORKDIR}/${MY_P} + + unset -v my_urls my_p my_patch_idx my_patch_ver +fi + +if [[ ${GENTOO_PATCH_VER} ]]; then + SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV:?}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER:?}-patches.tar.xz" +fi + +LICENSE="GPL-3+" +SLOT="0" +if (( PLEVEL >= 0 )); then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi +IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline" + +DEPEND=" + >=sys-libs/ncurses-5.2-r2:= + nls? ( virtual/libintl ) +" +if (( PLEVEL >= 0 )); then + DEPEND+=" readline? ( >=sys-libs/readline-${READLINE_VER}:= )" +fi +RDEPEND=" + ${DEPEND} +" +# We only need bison (yacc) when the .y files get patched (bash42-005, bash51-011). +BDEPEND=" + pgo? ( dev-util/gperf ) + verify-sig? ( sec-keys/openpgp-keys-chetramey ) +" + +# EAPI 8 tries to append it but it doesn't exist here. +QA_CONFIGURE_OPTIONS="--disable-static" + +PATCHES=( + #"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/ + + # Patches to or from Chet, posted to the bug-bash mailing list. + "${FILESDIR}/${PN}-5.0-syslog-history-extern.patch" +) + +pkg_setup() { + # bug #7332 + if is-flag -malign-double; then + eerror "Detected bad CFLAGS '-malign-double'. Do not use this" + eerror "as it breaks LFS (struct stat64) on x86." + die "remove -malign-double from your CFLAGS mr ricer" + fi + + if use bashlogger; then + ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs." + ewarn "This will log ALL output you enter into the shell, you have been warned." + fi +} + +src_unpack() { + local patch + + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + default + else + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig} + + for patch in "${MY_PATCHES[@]}"; do + verify-sig_verify_detached "${patch}"{,.sig} + done + fi + + unpack "${MY_P}.tar.gz" + + if [[ ${GENTOO_PATCH_VER} ]]; then + unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz" + fi + fi +} + +src_prepare() { + # Include official patches. + (( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}" + + # Clean out local libs so we know we use system ones w/releases. The + # touch utility is invoked for the benefit of config.status. + if (( PLEVEL >= 0 )); then + rm -rf lib/{readline,termcap}/* \ + && touch lib/{readline,termcap}/Makefile.in \ + && sed -i -E 's:\$[{(](RL|HIST)_LIBSRC[)}]/[[:alpha:]_-]*\.h::g' Makefile.in \ + || die + fi + + # Prefixify hardcoded path names. No-op for non-prefix. + hprefixify pathnames.h.in + + # Avoid regenerating docs after patches, bug #407985. + sed -i -E '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in \ + && touch -r . doc/* \ + || die + + # Sometimes hangs (more noticeable w/ pgo), bug #907403. + rm tests/run-jobs || die + + eapply -p0 "${PATCHES[@]}" + eapply_user +} + +src_configure() { + local -a myconf + + # Upstream only test with Bison and require GNUisms like YYEOF and + # YYERRCODE. The former at least may be in POSIX soon: + # https://www.austingroupbugs.net/view.php?id=1269. + # configure warns on use of non-Bison but doesn't abort. The result + # may misbehave at runtime. + unset -v YACC + + if tc-is-cross-compiler; then + export CFLAGS_FOR_BUILD="${BUILD_CFLAGS} -std=gnu17" + fi + + myconf=( + --disable-profiling + + # Force linking with system curses ... the bundled termcap lib + # sucks bad compared to ncurses. For the most part, ncurses + # is here because readline needs it. But bash itself calls + # ncurses in one or two small places :(. + --with-curses + + $(use_enable mem-scramble) + $(use_enable net net-redirections) + $(use_enable readline) + $(use_enable readline bang-history) + $(use_enable readline history) + $(use_with afs) + $(use_with mem-scramble bash-malloc) + ) + + # For descriptions of these, see config-top.h. + # bashrc/#26952 bash_logout/#90488 ssh/#24762 mktemp/#574426 + append-cppflags \ + -DDEFAULT_PATH_VALUE=\'\""${EPREFIX}"/usr/local/sbin:"${EPREFIX}"/usr/local/bin:"${EPREFIX}"/usr/sbin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/bin\"\' \ + -DSTANDARD_UTILS_PATH=\'\""${EPREFIX}"/bin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/usr/sbin\"\' \ + -DSYS_BASHRC=\'\""${EPREFIX}"/etc/bash/bashrc\"\' \ + -DSYS_BASH_LOGOUT=\'\""${EPREFIX}"/etc/bash/bash_logout\"\' \ + -DNON_INTERACTIVE_LOGIN_SHELLS \ + -DSSH_SOURCE_BASHRC \ + $(use bashlogger && echo -DSYSLOG_HISTORY) + + use nls || myconf+=( --disable-nls ) + + if (( PLEVEL >= 0 )); then + # Historically, we always used the builtin readline, but since + # our handling of SONAME upgrades has gotten much more stable + # in the PM (and the readline ebuild itself preserves the old + # libs during upgrades), linking against the system copy should + # be safe. + # Exact cached version here doesn't really matter as long as it + # is at least what's in the DEPEND up above. + export ac_cv_rl_version=${READLINE_VER%%_*} + + # Use system readline only with released versions. + myconf+=( --with-installed-readline=. ) + fi + + if use plugins; then + append-ldflags "-Wl,-rpath,${EPREFIX}/usr/$(get_libdir)/bash" + else + # Disable the plugins logic by hand since bash doesn't provide + # a way of doing it. + export ac_cv_func_dl{close,open,sym}=no \ + ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no + + sed -i -e '/LOCAL_LDFLAGS=/s:-rdynamic::' configure || die + fi + + # bug #444070 + tc-export AR + + econf "${myconf[@]}" +} + +src_compile() { + local -a pgo_generate_flags pgo_use_flags + local flag + + # -fprofile-partial-training because upstream notes the test suite isn't + # super comprehensive. + # https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo + if use pgo; then + pgo_generate_flags=( + -fprofile-update=atomic + -fprofile-dir="${T}"/pgo + -fprofile-generate="${T}"/pgo + ) + pgo_use_flags=( + -fprofile-use="${T}"/pgo + -fprofile-dir="${T}"/pgo + ) + if flag=$(test-flags-CC -fprofile-partial-training); then + pgo_generate_flags+=( "${flag}" ) + pgo_use_flags+=( "${flag}" ) + fi + fi + + emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" + use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" all others + + # Build Bash and run its tests to generate profiles. + if (( ${#pgo_generate_flags[@]} )); then + # Used in test suite. + unset -v A + + emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check + + if tc-is-clang; then + llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die + fi + + # Rebuild Bash using the profiling data we just generated. + emake clean + emake CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" + use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" all others + fi +} + +src_test() { + # Used in test suite. + unset -v A + + default +} + +src_install() { + local d f + + default + + my_prefixify() { + while read -r; do + if [[ $REPLY == *$1* ]]; then + REPLY=${REPLY/"/etc/"/"${EPREFIX}/etc/"} + fi + printf '%s\n' "${REPLY}" || ! break + done < "$2" || die + } + + dodir /bin + mv -- "${ED}"/usr/bin/bash "${ED}"/bin/ || die + dosym bash /bin/rbash + + insinto /etc/bash + doins "${FILESDIR}"/bash_logout + my_prefixify bashrc.d "${FILESDIR}"/bashrc-r1 | newins - bashrc + + insinto /etc/bash/bashrc.d + my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color-r2.bash | newins - 10-gentoo-color.bash + newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r2.bash 10-gentoo-title.bash + if [[ ! ${EPREFIX} ]]; then + doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash + fi + + insinto /etc/skel + for f in bash{_logout,_profile,rc}; do + newins "${FILESDIR}/dot-${f}" ".${f}" + done + + if use plugins; then + exeinto "/usr/$(get_libdir)/bash" + set -- examples/loadables/*.o + doexe "${@%.o}" + + insinto /usr/include/bash-plugins + doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h} + fi + + if use examples; then + for d in examples/{functions,misc,scripts,startup-files}; do + exeinto "/usr/share/doc/${PF}/${d}" + docinto "${d}" + for f in "${d}"/*; do + if [[ ${f##*/} != @(PERMISSION|*README) ]]; then + doexe "${f}" + else + dodoc "${f}" + fi + done + done + fi + + # Install bash_builtins.1 and rbash.1. + emake -C doc DESTDIR="${D}" install_builtins + sed 's:bash\.1:man1/&:' doc/rbash.1 > "${T}"/rbash.1 || die + doman "${T}"/rbash.1 + + newdoc CWRU/changelog ChangeLog + dosym bash.info /usr/share/info/bashref.info +} + +pkg_preinst() { + if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]]; then + mkdir -p -- "${EROOT}"/etc/bash \ + && mv -f -- "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/ \ + || die + fi +} + +pkg_postinst() { + local old_ver + + # If /bin/sh does not exist, provide it. + if [[ ! -e ${EROOT}/bin/sh ]]; then + ln -sf -- bash "${EROOT}"/bin/sh || die + fi + + read -r old_ver <<<"${REPLACING_VERSIONS}" + if [[ ! $old_ver ]]; then + : + elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then + return + fi + + while read -r; do ewarn "${REPLY}"; done <<'EOF' +Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash. + +Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the +characteristics of the operating environment, it may contain a command to set +the terminal's window title. Those who were already choosing to customise the +PROMPT_COMMAND variable are now advised to append their commands like so: + +PROMPT_COMMAND+=('custom command goes here') + +Gentoo no longer defaults to having bash set the window title in the case +that the terminal is controlled by sshd(8), unless screen is launched on the +remote side or the terminal reliably supports saving and restoring the title +(as alacritty, foot and tmux do). Those wanting for the title to be set +regardless may adjust ~/.bashrc - or create a custom /etc/bash/bashrc.d +drop-in - to set PROMPT_COMMMAND like so: + +PROMPT_COMMAND=(genfun_set_win_title) + +Those who would prefer for bash never to interfere with the window title may +now opt out of the default title setting behaviour, either with the "unset -v +PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired. +EOF +} diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_rc2_p20250627.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_rc2_p20250627.ebuild new file mode 100644 index 00000000000..1fa3e6be530 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_rc2_p20250627.ebuild @@ -0,0 +1,412 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chetramey.asc +inherit flag-o-matic toolchain-funcs prefix verify-sig + +# Uncomment if we have a patchset. +#GENTOO_PATCH_DEV="sam" +#GENTOO_PATCH_VER="${PV}" + +MY_PV=${PV/_p*} +MY_PV=${MY_PV/_/-} +MY_P=${PN}-${MY_PV} +MY_PATCHES=() + +# Determine the patchlevel. See ftp://ftp.gnu.org/gnu/bash/bash-5.2-patches/. +case ${PV} in + 9999|*_alpha*|*_beta*|*_rc*) + # Set a negative patchlevel to indicate that it's a pre-release. + PLEVEL=-1 + ;; + *_p*) + PLEVEL=${PV##*_p} + ;; + *) + PLEVEL=0 + ;; +esac + +# The version of readline this bash normally ships with. Note that we only use +# the bundled copy of readline for pre-releases. +READLINE_VER="8.3_rc1" + +DESCRIPTION="The standard GNU Bourne again shell" +HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html https://git.savannah.gnu.org/cgit/bash.git" + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git" + EGIT_BRANCH=devel + inherit git-r3 +elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + # It can be useful to have snapshots in the pre-release period once + # the first alpha is out, as various bugs get reported and fixed from + # the alpha, and the next pre-release is usually quite far away. + # + # i.e. if it's worth packaging the alpha, it's worth packaging a followup. + BASH_COMMIT="b35866a2891a9b069e37ca5684d4309c0391e261" + SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.gz -> ${P}-${BASH_COMMIT}.tar.gz" + S=${WORKDIR}/${PN}-${BASH_COMMIT} +else + my_urls=( "mirror://gnu/bash/${MY_P}.tar.gz" ) + + # bash-5.1 -> bash51 + my_p=${PN}$(ver_cut 1-2) my_p=${my_p/.} + + for (( my_patch_idx = 1; my_patch_idx <= PLEVEL; my_patch_idx++ )); do + printf -v my_patch_ver %s-%03d "${my_p}" "${my_patch_idx}" + my_urls+=( "mirror://gnu/bash/${MY_P}-patches/${my_patch_ver}" ) + MY_PATCHES+=( "${DISTDIR}/${my_patch_ver}" ) + done + + SRC_URI="${my_urls[*]} verify-sig? ( ${my_urls[*]/%/.sig} )" + S=${WORKDIR}/${MY_P} + + unset -v my_urls my_p my_patch_idx my_patch_ver +fi + +if [[ ${GENTOO_PATCH_VER} ]]; then + SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV:?}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER:?}-patches.tar.xz" +fi + +LICENSE="GPL-3+" +SLOT="0" +if (( PLEVEL >= 0 )); then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi +IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline" + +DEPEND=" + >=sys-libs/ncurses-5.2-r2:= + nls? ( virtual/libintl ) +" +if (( PLEVEL >= 0 )); then + DEPEND+=" readline? ( >=sys-libs/readline-${READLINE_VER}:= )" +fi +RDEPEND=" + ${DEPEND} +" +# We only need bison (yacc) when the .y files get patched (bash42-005, bash51-011). +BDEPEND=" + pgo? ( dev-util/gperf ) + verify-sig? ( sec-keys/openpgp-keys-chetramey ) +" + +# EAPI 8 tries to append it but it doesn't exist here. +QA_CONFIGURE_OPTIONS="--disable-static" + +PATCHES=( + #"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/ + + # Patches to or from Chet, posted to the bug-bash mailing list. + "${FILESDIR}/${PN}-5.0-syslog-history-extern.patch" +) + +pkg_setup() { + # bug #7332 + if is-flag -malign-double; then + eerror "Detected bad CFLAGS '-malign-double'. Do not use this" + eerror "as it breaks LFS (struct stat64) on x86." + die "remove -malign-double from your CFLAGS mr ricer" + fi + + if use bashlogger; then + ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs." + ewarn "This will log ALL output you enter into the shell, you have been warned." + fi +} + +src_unpack() { + local patch + + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + default + else + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig} + + for patch in "${MY_PATCHES[@]}"; do + verify-sig_verify_detached "${patch}"{,.sig} + done + fi + + unpack "${MY_P}.tar.gz" + + if [[ ${GENTOO_PATCH_VER} ]]; then + unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz" + fi + fi +} + +src_prepare() { + # Include official patches. + (( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}" + + # Clean out local libs so we know we use system ones w/releases. The + # touch utility is invoked for the benefit of config.status. + if (( PLEVEL >= 0 )); then + rm -rf lib/{readline,termcap}/* \ + && touch lib/{readline,termcap}/Makefile.in \ + && sed -i -E 's:\$[{(](RL|HIST)_LIBSRC[)}]/[[:alpha:]_-]*\.h::g' Makefile.in \ + || die + fi + + # Prefixify hardcoded path names. No-op for non-prefix. + hprefixify pathnames.h.in + + # Avoid regenerating docs after patches, bug #407985. + sed -i -E '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in \ + && touch -r . doc/* \ + || die + + # Sometimes hangs (more noticeable w/ pgo), bug #907403. + rm tests/run-jobs || die + + eapply -p0 "${PATCHES[@]}" + eapply_user +} + +src_configure() { + local -a myconf + + # Upstream only test with Bison and require GNUisms like YYEOF and + # YYERRCODE. The former at least may be in POSIX soon: + # https://www.austingroupbugs.net/view.php?id=1269. + # configure warns on use of non-Bison but doesn't abort. The result + # may misbehave at runtime. + unset -v YACC + + if tc-is-cross-compiler; then + export CFLAGS_FOR_BUILD="${BUILD_CFLAGS} -std=gnu17" + fi + + myconf=( + --disable-profiling + + # Force linking with system curses ... the bundled termcap lib + # sucks bad compared to ncurses. For the most part, ncurses + # is here because readline needs it. But bash itself calls + # ncurses in one or two small places :(. + --with-curses + + $(use_enable mem-scramble) + $(use_enable net net-redirections) + $(use_enable readline) + $(use_enable readline bang-history) + $(use_enable readline history) + $(use_with afs) + $(use_with mem-scramble bash-malloc) + ) + + # For descriptions of these, see config-top.h. + # bashrc/#26952 bash_logout/#90488 ssh/#24762 mktemp/#574426 + append-cppflags \ + -DDEFAULT_PATH_VALUE=\'\""${EPREFIX}"/usr/local/sbin:"${EPREFIX}"/usr/local/bin:"${EPREFIX}"/usr/sbin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/bin\"\' \ + -DSTANDARD_UTILS_PATH=\'\""${EPREFIX}"/bin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/usr/sbin\"\' \ + -DSYS_BASHRC=\'\""${EPREFIX}"/etc/bash/bashrc\"\' \ + -DSYS_BASH_LOGOUT=\'\""${EPREFIX}"/etc/bash/bash_logout\"\' \ + -DNON_INTERACTIVE_LOGIN_SHELLS \ + -DSSH_SOURCE_BASHRC \ + $(use bashlogger && echo -DSYSLOG_HISTORY) + + use nls || myconf+=( --disable-nls ) + + if (( PLEVEL >= 0 )); then + # Historically, we always used the builtin readline, but since + # our handling of SONAME upgrades has gotten much more stable + # in the PM (and the readline ebuild itself preserves the old + # libs during upgrades), linking against the system copy should + # be safe. + # Exact cached version here doesn't really matter as long as it + # is at least what's in the DEPEND up above. + export ac_cv_rl_version=${READLINE_VER%%_*} + + # Use system readline only with released versions. + myconf+=( --with-installed-readline=. ) + fi + + if use plugins; then + append-ldflags "-Wl,-rpath,${EPREFIX}/usr/$(get_libdir)/bash" + else + # Disable the plugins logic by hand since bash doesn't provide + # a way of doing it. + export ac_cv_func_dl{close,open,sym}=no \ + ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no + + sed -i -e '/LOCAL_LDFLAGS=/s:-rdynamic::' configure || die + fi + + # bug #444070 + tc-export AR + + econf "${myconf[@]}" +} + +src_compile() { + local -a pgo_generate_flags pgo_use_flags + local flag + + # -fprofile-partial-training because upstream notes the test suite isn't + # super comprehensive. + # https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo + if use pgo; then + pgo_generate_flags=( + -fprofile-update=atomic + -fprofile-dir="${T}"/pgo + -fprofile-generate="${T}"/pgo + ) + pgo_use_flags=( + -fprofile-use="${T}"/pgo + -fprofile-dir="${T}"/pgo + ) + if flag=$(test-flags-CC -fprofile-partial-training); then + pgo_generate_flags+=( "${flag}" ) + pgo_use_flags+=( "${flag}" ) + fi + fi + + emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" + use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" all others + + # Build Bash and run its tests to generate profiles. + if (( ${#pgo_generate_flags[@]} )); then + # Used in test suite. + unset -v A + + emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check + + if tc-is-clang; then + llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die + fi + + # Rebuild Bash using the profiling data we just generated. + emake clean + emake CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" + use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" all others + fi +} + +src_test() { + # Used in test suite. + unset -v A + + default +} + +src_install() { + local d f + + default + + my_prefixify() { + while read -r; do + if [[ $REPLY == *$1* ]]; then + REPLY=${REPLY/"/etc/"/"${EPREFIX}/etc/"} + fi + printf '%s\n' "${REPLY}" || ! break + done < "$2" || die + } + + dodir /bin + mv -- "${ED}"/usr/bin/bash "${ED}"/bin/ || die + dosym bash /bin/rbash + + insinto /etc/bash + doins "${FILESDIR}"/bash_logout + my_prefixify bashrc.d "${FILESDIR}"/bashrc-r1 | newins - bashrc + + insinto /etc/bash/bashrc.d + my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color-r2.bash | newins - 10-gentoo-color.bash + newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r2.bash 10-gentoo-title.bash + if [[ ! ${EPREFIX} ]]; then + doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash + fi + + insinto /etc/skel + for f in bash{_logout,_profile,rc}; do + newins "${FILESDIR}/dot-${f}" ".${f}" + done + + if use plugins; then + exeinto "/usr/$(get_libdir)/bash" + set -- examples/loadables/*.o + doexe "${@%.o}" + + insinto /usr/include/bash-plugins + doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h} + fi + + if use examples; then + for d in examples/{functions,misc,scripts,startup-files}; do + exeinto "/usr/share/doc/${PF}/${d}" + docinto "${d}" + for f in "${d}"/*; do + if [[ ${f##*/} != @(PERMISSION|*README) ]]; then + doexe "${f}" + else + dodoc "${f}" + fi + done + done + fi + + # Install bash_builtins.1 and rbash.1. + emake -C doc DESTDIR="${D}" install_builtins + sed 's:bash\.1:man1/&:' doc/rbash.1 > "${T}"/rbash.1 || die + doman "${T}"/rbash.1 + + newdoc CWRU/changelog ChangeLog + dosym bash.info /usr/share/info/bashref.info +} + +pkg_preinst() { + if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]]; then + mkdir -p -- "${EROOT}"/etc/bash \ + && mv -f -- "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/ \ + || die + fi +} + +pkg_postinst() { + local old_ver + + # If /bin/sh does not exist, provide it. + if [[ ! -e ${EROOT}/bin/sh ]]; then + ln -sf -- bash "${EROOT}"/bin/sh || die + fi + + read -r old_ver <<<"${REPLACING_VERSIONS}" + if [[ ! $old_ver ]]; then + : + elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then + return + fi + + while read -r; do ewarn "${REPLY}"; done <<'EOF' +Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash. + +Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the +characteristics of the operating environment, it may contain a command to set +the terminal's window title. Those who were already choosing to customise the +PROMPT_COMMAND variable are now advised to append their commands like so: + +PROMPT_COMMAND+=('custom command goes here') + +Gentoo no longer defaults to having bash set the window title in the case +that the terminal is controlled by sshd(8), unless screen is launched on the +remote side or the terminal reliably supports saving and restoring the title +(as alacritty, foot and tmux do). Those wanting for the title to be set +regardless may adjust ~/.bashrc - or create a custom /etc/bash/bashrc.d +drop-in - to set PROMPT_COMMMAND like so: + +PROMPT_COMMAND=(genfun_set_win_title) + +Those who would prefer for bash never to interfere with the window title may +now opt out of the default title setting behaviour, either with the "unset -v +PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired. +EOF +} diff --git a/sdk_container/src/third_party/portage-stable/app-shells/gentoo-bashcomp/Manifest b/sdk_container/src/third_party/portage-stable/app-shells/gentoo-bashcomp/Manifest index d54174a0b07..0abdd1b4721 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/gentoo-bashcomp/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-shells/gentoo-bashcomp/Manifest @@ -1 +1,2 @@ DIST gentoo-bashcomp-20240625.tar.bz2 23794 BLAKE2B 567131238e24744a5083ad8ec484d4342b6891e95b999d11d809da769d8f2ad3536f7da769f0d291663b9c3be46fe67d261cbdcf59a0f846e4f08a66b4106571 SHA512 1b5476ba7cb1b7c2f1d51c03d592245718fb4c2c07ff5171aee1bfa0def2a2f0bbff7a38950d18e3646285e7432cedee0ee75eed1c6348946793f011de4ddcbf +DIST gentoo-bashcomp-20250620.tar.bz2 23780 BLAKE2B dc4d6dd7d0063056a234cfe4aff3d39b4519848f6f3d68d76f63cdcb5d333da159a88984b8607ae2f9b99ab6bd9ed264b0e4c7f4a7edafe002dbec18cb6c2e19 SHA512 222995b060f762d86c486e34d3e8f740b15a947b4392575bb1af29f11e3cec9c2a0fbdd1a8d397f5356db771adc19df39c2e70ac2dd22b2ce4ee188747ef5b6b diff --git a/sdk_container/src/third_party/portage-stable/app-shells/gentoo-bashcomp/gentoo-bashcomp-20250620.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/gentoo-bashcomp/gentoo-bashcomp-20250620.ebuild new file mode 100644 index 00000000000..f39e47a2534 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-shells/gentoo-bashcomp/gentoo-bashcomp-20250620.ebuild @@ -0,0 +1,21 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 + +DESCRIPTION="Gentoo-specific bash command-line completions (emerge, ebuild, equery, etc)" +HOMEPAGE="https://gitweb.gentoo.org/proj/gentoo-bashcomp.git/" +SRC_URI="https://gitweb.gentoo.org/proj/${PN}.git/snapshot/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" + +src_install() { + emake DESTDIR="${D}" install \ + completionsdir="$(get_bashcompdir)" \ + helpersdir="$(get_bashhelpersdir)" \ + compatdir="${EPREFIX}/etc/bash_completion.d" +} diff --git a/sdk_container/src/third_party/portage-stable/app-vim/gentoo-syntax/Manifest b/sdk_container/src/third_party/portage-stable/app-vim/gentoo-syntax/Manifest index 9bf899a4d07..e69e8590143 100644 --- a/sdk_container/src/third_party/portage-stable/app-vim/gentoo-syntax/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-vim/gentoo-syntax/Manifest @@ -1 +1,2 @@ DIST gentoo-syntax-15.tar.bz2 21018 BLAKE2B 2b0ead6d5701f14f321ad02b1cd3fe426b8e98e4d80e66331387f0543d88a2ac6b5d78a1f8c9125dadf24f3508c34d915fa896dc2fb85a8664984d771b48a29e SHA512 69cdcd58933b4f83da81ecc943e205689591748c283005b2e6cd342e623d8e0643979d913ec6a9464ca2b49431ea2317dfb0e6454143d6757f6ba287286d24f1 +DIST gentoo-syntax-16.tar.bz2 21034 BLAKE2B 71f42dcd81e99e688f73e1df8913bc90e97acbcfdb1649348a7550a2c0888cced976f450406c305e4c8326fe4d405e460ea5d545bcd951ef64ba194b1f504820 SHA512 07baa98902b02dc920cb18a2a12877b59a3ae83558987cad956f9910c0b674f9bbe3f0087e512baac08f407e07e75c51f336562f7574b2600812594fa921bb22 diff --git a/sdk_container/src/third_party/portage-stable/app-vim/gentoo-syntax/gentoo-syntax-16.ebuild b/sdk_container/src/third_party/portage-stable/app-vim/gentoo-syntax/gentoo-syntax-16.ebuild new file mode 100644 index 00000000000..2258150d4b4 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-vim/gentoo-syntax/gentoo-syntax-16.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit vim-plugin + +DESCRIPTION="vim plugin: Gentoo and Portage syntax highlighting" +HOMEPAGE="https://github.com/gentoo/gentoo-syntax" +SRC_URI="https://gitweb.gentoo.org/proj/gentoo-syntax.git/snapshot/${P}.tar.bz2" + +LICENSE="vim" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="ignore-glep31" + +VIM_PLUGIN_HELPFILES="gentoo-syntax" +VIM_PLUGIN_MESSAGES="filetype" + +src_prepare() { + default + if use ignore-glep31 ; then + for f in ftplugin/*.vim ; do + ebegin "Removing UTF-8 rules from ${f} ..." + sed -i -e 's~\(setlocal fileencoding=utf-8\)~" \1~' ${f} \ + || die "waah! bad sed voodoo. need more goats." + eend $? + done + fi +} + +pkg_postinst() { + vim-plugin_pkg_postinst + + if [[ -z ${REPLACING_VERSIONS} ]] ; then + if use ignore-glep31 1>/dev/null ; then + ewarn "You have chosen to disable the rules which ensure GLEP 31" + ewarn "compliance. When editing ebuilds, please make sure you get" + ewarn "the character set correct." + fi + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/automake/Manifest b/sdk_container/src/third_party/portage-stable/dev-build/automake/Manifest index 9b545d8211f..057ffb5a559 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/automake/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-build/automake/Manifest @@ -1,5 +1,7 @@ DIST automake-1.11.6.tar.xz 1092908 BLAKE2B 17254d81d6920c32aa877b6c892025de8e4060b8bcbe50fff841ada513dd462ddde8fc6838b4976098a812f8fda047e7186cb62cea8175df615dde75a9959144 SHA512 6e4cdf69f07734954f770fd4a7211a8c9dc69fe25a7746bd3c1e01d3139c94cab2900399e87371548833e99687e0d2b59c5e746ab2fdfbc7d47f2c1d439137ba DIST automake-1.17.tar.xz 1652632 BLAKE2B 53c24c138faf3d2be4e30ababcccd4d157c03e815fc4b7f3e3063b6648cf254dfa63afe6e3285b21309dbf260335c3e67991db3825e7532b158b25ccaead83f5 SHA512 46aba1c9d64a6368b326020803a2999831c1deaf31eaa1c1dfdcfa5138a7f755643294e82a08b6daab3983b31eee725bdb7b9edc4e9a558374c7d1f1b8e854a7 DIST automake-1.17.tar.xz.sig 833 BLAKE2B 4564c7189360c61bde7e16a7c3a52b86084fb16b7f4625969fc588a6aa0da687c7b27acf7247822ec0e09e59336acf0ef69784032f255190a070081f6d9da5cc SHA512 180dde452ec097a9267c334044a9ec16bb65cc6ccbc000b7eca0af81ed7ece6f4ce6f6c2be8a2cabca9d48fd46085c81f0ee5d020967104bc25f37f52927829a +DIST automake-1.18.1.tar.xz 1652392 BLAKE2B 4461062a4d596dd87caec7d388449f5f8fe7a4faede8fd0d77d1fb3bb5d23caabb3b715fbb9f29f33326bec527f3d8da6251d9282d4007cef9af146d28fe96cf SHA512 8baa16831416a953a743f4e3c0f55cea5ebefe0f5a7a0e390581981d4461d02dc9038415124e974b2ec390c40daaa241802cd7d42c6fafb793f87cf355db2a61 +DIST automake-1.18.1.tar.xz.sig 488 BLAKE2B c8efc6847f83d3c1565783ce9d1c22924ca5e409894f7d9f28b2b492b3c2cb6e937fa85f6c36a67fd484fffd0b89cdae0a09239ab71e6da8d01015528a78c9ed SHA512 5a1f0e89a8f3826c766aa98617765f4a576dc278abb7a0a4c0fa04d27d15bf670b79853642914db58731eb4dc737f0b9ad65ba9a07b7bb227e763e90e2e54349 DIST automake-1.18.tar.xz 1652364 BLAKE2B 45456d6d0fdcd1222c79980ede1df16dfbf18fa4d4698289dbef7c9e24ae8877881678974c5defcce0a9f46b72882b4603e457e8142722174ccf0e495f941550 SHA512 3488d9188a9e11a3e7f911f429ef49d2d92c5ea42262e3e288e1d4de39217facd5a7b7c7ccac06e6fd78a661985af1fe5638353575ebadffb36fc22553e5f782 DIST automake-1.18.tar.xz.sig 488 BLAKE2B 5a0e9784f536262ab1015e444a67f827e123da7122730e3c4d8c474de544473b731f876a5e743df15b97571990be7509d9007ea8a1ddf00af9cf1747b528016e SHA512 0c01e85ce08a88809d0205de1250836b2a81bb1c16abb395937f737a1bd37fe8d5612c19dbed7d1afd02ed8a8a321356601e4ae8d32b0859dc50fc3617c33f0c diff --git a/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-1.18.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-1.18.1.ebuild new file mode 100644 index 00000000000..a1260278425 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-1.18.1.ebuild @@ -0,0 +1,148 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Bumping notes: +# * Remember to modify LAST_KNOWN_AUTOMAKE_VER 'upstream' in dev-build/automake-wrapper +# on new automake (major) releases, as well as the dependency in RDEPEND below too. +# * Update _WANT_AUTOMAKE and _automake_atom case statement in autotools.eclass. + +PYTHON_COMPAT=( python3_{11..14} ) + +inherit python-any-r1 verify-sig + +MANGLED_SLOT=${PV:0:4} + +if [[ ${PV} == 9999 ]] ; then + EGIT_MIN_CLONE_TYPE=single + EGIT_REPO_URI="https://git.savannah.gnu.org/r/${PN}.git" + inherit git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/karlberry.asc + if [[ $(ver_cut 3) -ge 90 ]] ; then + MANGLED_SLOT=$(ver_cut 1).$(($(ver_cut 2) + 1)) + SRC_URI=" + https://alpha.gnu.org/pub/gnu/${PN}/${P}.tar.xz + verify-sig? ( + https://alpha.gnu.org/pub/gnu/${PN}/${P}.tar.xz.sig + ) + " + else + SRC_URI=" + mirror://gnu/${PN}/${P}.tar.xz + verify-sig? ( + mirror://gnu/${PN}/${P}.tar.xz.sig + ) + " + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + fi +fi + +DESCRIPTION="Used to generate Makefile.in from Makefile.am" +HOMEPAGE="https://www.gnu.org/software/automake/" + +LICENSE="GPL-2+ FSFAP" +# Use Gentoo versioning for slotting. +SLOT="${MANGLED_SLOT}" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-lang/perl-5.6 + >=dev-build/automake-wrapper-20250528 + >=dev-build/autoconf-2.69:* + sys-devel/gnuconfig +" +BDEPEND=" + app-alternatives/gzip + sys-apps/help2man + dev-build/autoconf-wrapper + dev-build/autoconf + test? ( + ${PYTHON_DEPS} + dev-util/dejagnu + sys-devel/bison + sys-devel/flex + ) + verify-sig? ( sec-keys/openpgp-keys-karlberry ) +" + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +src_prepare() { + default + + export WANT_AUTOCONF=2.5 + # 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 + sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die + + # bug #628912 + if ! has_version -b sys-apps/texinfo ; then + touch doc/{stamp-vti,version.texi,automake.info} || die + fi +} + +src_configure() { + # Also used in install. + infopath="${EPREFIX}/usr/share/automake-${PV}/info" + econf --infodir="${infopath}" +} + +src_test() { + # Fails with byacc/flex + emake YACC="bison -y" LEX="flex" check +} + +src_install() { + default + + rm "${ED}"/usr/share/aclocal/README || die + rmdir "${ED}"/usr/share/aclocal || die + rm \ + "${ED}"/usr/bin/{aclocal,automake} \ + "${ED}"/usr/share/man/man1/{aclocal,automake}.1 || die + + # remove all config.guess and config.sub files replacing them + # w/a symlink to a specific gnuconfig version + local x + for x in guess sub ; do + dosym ../gnuconfig/config.${x} \ + /usr/share/${PN}-${SLOT}/config.${x} + done + + # Avoid QA message about pre-compressed file in docs + local tarfile="${ED}/usr/share/doc/${PF}/amhello-1.0.tar.gz" + if [[ -f "${tarfile}" ]] ; then + gunzip "${tarfile}" || die + fi + + pushd "${D}/${infopath}" >/dev/null || die + for f in *.info*; do + # Install convenience aliases for versioned Automake pages. + ln -s "$f" "${f/./-${PV}.}" || die + done + popd >/dev/null || die + + if [[ ${PV} == 9999 ]]; then + local major="89" + local minor="999" + else + local major="$(ver_cut 1)" + if [[ $(ver_cut 3) -ge 90 ]] ; then + local minor=$(($(ver_cut 2) + 1)) + else + local minor="$(ver_cut 2)" + fi + fi + local idx="$((99999-(major*1000+minor)))" + newenvd - "06automake${idx}" <<-EOF + INFOPATH="${infopath}" + EOF + + docompress "${infopath}" +} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/gtk-doc-am/gtk-doc-am-1.34.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/gtk-doc-am/gtk-doc-am-1.34.0.ebuild index 71fcc524406..b0df65f92c6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/gtk-doc-am/gtk-doc-am-1.34.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/gtk-doc-am/gtk-doc-am-1.34.0.ebuild @@ -11,7 +11,7 @@ HOMEPAGE="https://gitlab.gnome.org/GNOME/gtk-doc" LICENSE="GPL-2+ FDL-1.1" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" RDEPEND="! "${T}"/ninja.vim || die + insinto /usr/share/vim/vimfiles/ftdetect + doins "${T}"/ninja.vim + + insinto /usr/share/zsh/site-functions + newins misc/zsh-completion _ninja +} + +pkg_postinst() { + if ! [[ -e "${EROOT}/usr/bin/ninja" ]]; then + ln -s ninja-reference "${EROOT}/usr/bin/ninja" || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2-r101.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2-r101.ebuild deleted file mode 100644 index 15965abbbcd..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2-r101.ebuild +++ /dev/null @@ -1,349 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# See https://sourceware.org/gdb/wiki/DistroAdvice for general packaging -# tips & notes. - -GUILE_COMPAT=( 2-2 3-0 ) -PYTHON_COMPAT=( python3_{10..13} ) -inherit flag-o-matic guile-single linux-info python-single-r1 strip-linguas toolchain-funcs - -export CTARGET=${CTARGET:-${CHOST}} - -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } - -case ${PV} in - 9999*) - # live git tree - EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git" - inherit git-r3 - SRC_URI="" - ;; - *.*.50_p2???????|*.*.90_p2???????) - # Weekly snapshots - MY_PV="${PV/_p/.}" - SRC_URI=" - https://sourceware.org/pub/gdb/snapshots/branch/gdb-weekly-${MY_PV}.tar.xz - https://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${MY_PV}.tar.xz - https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-weekly-${MY_PV}.tar.xz - " - S="${WORKDIR}/${PN}-${MY_PV}" - - # e.g. 13.1.90_p20230325 is a snapshot on the stable branch, so it's fine - if [[ ${PV} == *.[123456789].9?_p2??????? ]] ; then - REGULAR_RELEASE=1 - fi - ;; - *.*.9?) - # Prereleases - MY_PV="${PV/_p/.}" - SRC_URI=" - https://sourceware.org/pub/gdb/snapshots/branch/gdb-${MY_PV}.tar.xz - https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-${MY_PV}.tar.xz - " - S="${WORKDIR}/${PN}-${MY_PV}" - ;; - *) - # Normal upstream release - SRC_URI=" - mirror://gnu/gdb/${P}.tar.xz - https://sourceware.org/pub/gdb/releases/${P}.tar.xz - " - - REGULAR_RELEASE=1 -esac - -PATCH_DEV="" -PATCH_VER="" -DESCRIPTION="GNU debugger" -HOMEPAGE="https://sourceware.org/gdb/" -SRC_URI=" - ${SRC_URI} - ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${P}-patches-${PATCH_VER}.tar.xz} - ${PATCH_VER:+mirror://gentoo/${P}-patches-${PATCH_VER}.tar.xz} -" - -LICENSE="GPL-3+ LGPL-2.1+" -SLOT="0" -IUSE="cet debuginfod guile lzma multitarget nls +python rocm +server sim source-highlight test vanilla xml xxhash zstd" -if [[ -n ${REGULAR_RELEASE} ]] ; then - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" -fi -REQUIRED_USE=" - guile? ( ${GUILE_REQUIRED_USE} ) - python? ( ${PYTHON_REQUIRED_USE} ) - rocm? ( multitarget ) -" -RESTRICT="!test? ( test )" - -RDEPEND=" - dev-libs/mpfr:= - dev-libs/gmp:= - >=sys-libs/ncurses-5.2-r2:= - >=sys-libs/readline-7:= - sys-libs/zlib - debuginfod? ( - dev-libs/elfutils[debuginfod(-)] - ) - lzma? ( app-arch/xz-utils ) - python? ( ${PYTHON_DEPS} ) - guile? ( ${GUILE_DEPS} ) - xml? ( dev-libs/expat ) - rocm? ( =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.0_rc2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0_rc2.ebuild new file mode 100644 index 00000000000..92c207e7bb9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0_rc2.ebuild @@ -0,0 +1,870 @@ +# 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=1 +CROSS_VER=1.6.2 +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=" + https://drop.perl.fish/${MY_P}.tar.xz + 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-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 + >=sys-libs/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.506.270 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 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 \ + -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 d78923f3203..02511f41104 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 @@ -20,6 +20,8 @@ DIST Python-3.13.5.tar.xz 22856016 BLAKE2B 9caacad8745dcd238b208022cb140a6655ae5 DIST Python-3.13.5.tar.xz.asc 963 BLAKE2B 2db0162d18129ec42b48393108a72c28e7f8f8c3fa40b2e231c87fe0bdc3c166fb6ca4a1c1dfb3fffe1aa0c2618c7ccb245513beb7a0919b4aaca5ec7eb23b36 SHA512 07c1a2ec2d6ba2805680b7f1dc262fdc5dc3eec4503780ecdc08cd570ccbb5f1efa736ee03c83d36bdb33ce87db06be5892cf5a6eaf4018d5fe78fff99e615ae DIST Python-3.14.0b2.tar.xz 23579860 BLAKE2B bf5ebac54531a7c837e7650754264b4be28e28613d488d1c7546db77e2ef3b501ff646d7fb505c6ac0fa1381c3230d1c1899bc82144f369339c89687b5dc7f5c SHA512 cdd37f8a982e6194d5afa80a2eb94c899080809749d59a50a2ce3eed37f720a1fd9a7977f0dd3992650d173a7070b15610077d97cb499bd16a7500c56ef1f8dd DIST Python-3.14.0b2.tar.xz.sigstore 5131 BLAKE2B 04cab57a4da63f5abf28db94e5fd952206124ce37ef5a5d981839a0790881c9c4ea6d186f233eaaf6e82350bdfdbb0048d761b816d81eaba71c707bd9714a9d9 SHA512 a356037824fbde5950f197cf04f0d71ddaf4b68006b2ab9951f9b4c2df508e84bd0bec7d72051e75d22c17eee767e46e5d2c167e853fb941b0831cb26d518fdc +DIST Python-3.14.0b3.tar.xz 23626928 BLAKE2B 354a07abfe838688ca2e02a989864bfd3dfc903b62968125bd0e74c76caa57b1488aace8cf96942f07a29decb89d72c7ca52cb21cdef5948ca79b8f2fdd710e6 SHA512 621bcaf2ae4b6f0ba6c95ef74b5ffb78d8a2a0bb10415fb4c5eab1cad26c63098237944713a7f0812ec3e014ff62cd0f9bd5663e87799fcf1856aa4b937be914 +DIST Python-3.14.0b3.tar.xz.sigstore 5326 BLAKE2B 61bb9e80c2c2149aa43e7f97f472e14b71af1bbbef0641e891bc440e9ddae7b968d525b0d44e152c911a05e5f04ca0a710483dfbf4675d0894f619f0e7190595 SHA512 80feff3997ff99f053ad3d8b8e488e5b952c6e0cdb1fedfcb31a7a72ca67eff60b99d875767df068c8833ec7d40cec53fdc838ce5bb85d330a86283d3057c567 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.22.tar.xz 19652572 BLAKE2B 59f2d2cecde8179064115b52205c2195b26cd0f37aec3e88b0fe2a1a7893a7df8ae38a024814d42064d5e4916e4054a76dddeec0a0dcf29af576d52dbcf65f4c SHA512 c5a76c579455626bf40bb41ee99cab6e444aa5d5085dab7cf622c70ded750e31710c2c30f032917f0d4069350c01a889ed9831d77fcc2d52fcec54055dd07496 @@ -38,6 +40,7 @@ DIST python-gentoo-patches-3.13.4.tar.xz 8912 BLAKE2B e3d9f2a12f801dc75e09c53017 DIST python-gentoo-patches-3.13.5.tar.xz 8916 BLAKE2B 9d985b12af62b8a917cac1dab9576aac099bc81ad954a5de254a14a3c7d2254edcdcfaadc46314b69a1bb76bd30ca8bed7c866c0de3fc3f89aac0f76af344f32 SHA512 5ac92aa3eef82eae5d707ffcb5085ac98bd9bf64f72fc7ac4aa1b12a0c3aa86c57d0f671ca07f46e2250779f4cf4885916e4d175357ad626eca6e41257a027e7 DIST python-gentoo-patches-3.14.0b1.tar.xz 5680 BLAKE2B 514b3edc3025e5bf675d371b5ada17dea426856edf1fb6095c2ee400eae95bd4265ef81fe593ae9338e801e7d0a25b1d5ba2d05ca563fd9dd020114b13575746 SHA512 74289e42cf532b54bb1b66a283ec19156f8a36ba38764209c133842314c9efb2ce2ebcba5aa9213bcf7fc0c8a5ca9b6e7adbd5dbfa4397233136d7cd55f53ee7 DIST python-gentoo-patches-3.14.0b2_p1.tar.xz 23992 BLAKE2B 65346fe06b2f03251882542b90821c28bd16d9f1c81d1e594bf78403689b444688a9cffa1d52faf63dd9c4db301a9b2a1e6729026e73525fe2f0622f896b6a46 SHA512 c98600da507541c0ba3a03dcaa6d344596fd8f5ef8169eff276318ed33a38ba4794ea346b25b9d11f9a277334bdcc1105e6332bb212602c3c993866340aa8482 +DIST python-gentoo-patches-3.14.0b3.tar.xz 5708 BLAKE2B 14706315eeed5b2e3d13d0479443e7b9153bc4be8510620e54453ac1b81d2baf0156d1ac67fd2927a2b389c7dfe18cc67ce14e7e7d6e01f2cb0ebe255baf462a SHA512 45d1d194efcc08f7e4b4b593604f52abb34b5f6a6b81370540d489d362a61894ddf86ab59c2d5aa67a5293613f081bc50586257060929702914851170f1b37a6 DIST python-gentoo-patches-3.8.20_p7.tar.xz 54544 BLAKE2B e31fc9fb5e98b62b0f70165670ec58ed4fa932cfc95d5287c249015a3a372fdbf0d1ba08cb98f63c2dc500700edfd6ffea6db670385d2c86a4fdb92ffb991192 SHA512 a9e7e4976be226931a503af2c986da207d060d4ce436af61f5e8427da513639adbed32bb0061963b83fef275a5de91707ab13b7a9abf3a7472ee0e2c5310eda1 DIST python-gentoo-patches-3.9.22_p2.tar.xz 59416 BLAKE2B 7904d5272c3dfab6eb9ec188802367faf843303b8af18d75aa03f6ad814ca8aefbf495696a5fb4279fa6f3620a00d0c84989bc007b80546041fedcef8555283a SHA512 acd78c422c360bea4c4be84e718072eb8182b1662d1bf94aa72785319a9f35d1f11a05343d4770d50673cd5c2876a5a99c127559badde7cf335070dfa7d81cf6 DIST python-gentoo-patches-3.9.23.tar.xz 37148 BLAKE2B a7c0514037169b9938b2180ec2dd22063621d532367f6febfa47da43f47534559baab992d9c5257271121af755b8445346d4d92582e7e11b6468a1c359f28bf2 SHA512 73ef00a7aa671016de396c9e1c4bb5f5c1a97dc735739f806d809f987e802ec440370bf4c85468097547284a5d2b476cbffcec3cf219b7cb6fc890d5029eb5bd diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.3_p2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.3_p2.ebuild index a600e6a8b9c..f8274cb351f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.3_p2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.3_p2.ebuild @@ -391,7 +391,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.4.ebuild index a600e6a8b9c..f8274cb351f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.4.ebuild @@ -391,7 +391,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions 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 a1df03efb43..6dbe301dac3 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 @@ -378,7 +378,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.0_beta2_p1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.0_beta2_p1.ebuild index c5ef5b138ba..4722ef1c393 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.0_beta2_p1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.0_beta2_p1.ebuild @@ -393,7 +393,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.0_beta3.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.0_beta3.ebuild new file mode 100644 index 00000000000..3a63db6a187 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.0_beta3.ebuild @@ -0,0 +1,635 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +VERIFY_SIG_METHOD=sigstore +WANT_LIBTOOL="none" + +inherit autotools check-reqs eapi9-ver flag-o-matic linux-info +inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs +inherit verify-sig + +REAL_PV=${PV#0.} +MY_PV=${REAL_PV/_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://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 build debug +ensurepip examples gdbm + libedit +ncurses pgo +readline +sqlite +ssl tail-call-interp test tk valgrind +" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + app-arch/zstd:= + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + dev-libs/mpdecimal:= + dev-python/gentoo-common + >=sys-libs/zlib-1.1.3:= + virtual/libintl + ensurepip? ( dev-python/ensurepip-pip ) + 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 +" +RDEPEND+=" + !build? ( app-misc/mime-types ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi + +# 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 + fi +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + # TODO: Makefile has annoying deps on expat headers + #rm -r Modules/expat || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die + + # breaks tests when using --with-wheel-pkg-dir + rm -r Lib/test/wheeldata || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST=${BUILD_LDFLAGS} + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS=${LDFLAGS_NODIST} + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + + # Avoid as many dependencies as possible for the cross build. + mkdir Modules || die + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + _dbm _gdbm + _sqlite3 + _hashlib _ssl + _curses _curses_panel + readline + _tkinter + pyexpat + zlib + # We disabled these for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. This should be rechecked for the pure Makefile approach, + # and uncommented if needed. + #_ctypes + EOF + + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # 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 + ) + ;; + arm*) + COMMON_TEST_SKIPS+=( + -x test_gdb + ) + ;; + hppa*) + COMMON_TEST_SKIPS+=( + -x test_gdb + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + powerpc64-*) # big endian + COMMON_TEST_SKIPS+=( + -x test_gdb + ) + ;; + 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_gdb + # 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 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 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 2989e4a2f70..d3ee27dfcaf 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 @@ -378,7 +378,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions 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 bdac07b3601..45b96897831 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 @@ -372,7 +372,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-2.7.18_p16-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-2.7.18_p16-r2.ebuild index c0e5d15a2c8..c92aee69a0a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-2.7.18_p16-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-2.7.18_p16-r2.ebuild @@ -197,7 +197,6 @@ src_configure() { --enable-unicode=ucs4 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.17_p2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.17_p2.ebuild index dd5e1696bcf..4fde84190db 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.17_p2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.17_p2.ebuild @@ -375,7 +375,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.18.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.18.ebuild index f998bd36897..c3a46736407 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.18.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.18.ebuild @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86" IUSE=" bluetooth build debug +ensurepip examples gdbm libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind @@ -375,7 +375,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions 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 5a75aaee19c..34bb2870930 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 @@ -364,7 +364,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.12_p2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.12_p2.ebuild index 385cd9d6f3a..d1a54799b05 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.12_p2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.12_p2.ebuild @@ -378,7 +378,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.13.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.13.ebuild index 90e7983ca9e..1a6e3325424 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.13.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.13.ebuild @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86" IUSE=" bluetooth build debug +ensurepip examples gdbm libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind @@ -378,7 +378,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions 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 909b71bcab8..224e9c5699b 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 @@ -367,7 +367,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.10_p2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.10_p2.ebuild index c1c5804b332..d73d44638f2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.10_p2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.10_p2.ebuild @@ -379,7 +379,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.11.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.11.ebuild index 3f4440a32db..4824c121385 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.11.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.11.ebuild @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86" IUSE=" bluetooth build debug +ensurepip examples gdbm libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind @@ -379,7 +379,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions 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 99a9a1b3816..09aa0d642de 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 @@ -368,7 +368,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.3_p2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.3_p2.ebuild index 2a02ff9b8ea..08521645920 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.3_p2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.3_p2.ebuild @@ -402,7 +402,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.4.ebuild index d7ba090d387..a31a7b2e3f2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.4.ebuild @@ -402,7 +402,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.5.ebuild index d7ba090d387..4746b4ca830 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.5.ebuild @@ -32,7 +32,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86" IUSE=" bluetooth build debug +ensurepip examples gdbm jit libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind @@ -402,7 +402,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions 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 e845eadc361..37ac8dcf64d 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 @@ -390,7 +390,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_beta2_p1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_beta2_p1.ebuild index 16596b39675..fc54f8a402a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_beta2_p1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_beta2_p1.ebuild @@ -404,7 +404,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_beta3.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_beta3.ebuild new file mode 100644 index 00000000000..4337b2f22ed --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_beta3.ebuild @@ -0,0 +1,646 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +LLVM_COMPAT=( 19 ) +LLVM_OPTIONAL=1 +VERIFY_SIG_METHOD=sigstore +WANT_LIBTOOL="none" + +inherit autotools check-reqs eapi9-ver flag-o-matic linux-info llvm-r1 +inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs +inherit verify-sig + +MY_PV=${PV/_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://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 build debug +ensurepip examples gdbm jit + libedit +ncurses pgo +readline +sqlite +ssl tail-call-interp test tk valgrind +" +REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + app-arch/zstd:= + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + dev-libs/mpdecimal:= + dev-python/gentoo-common + >=sys-libs/zlib-1.1.3:= + virtual/libintl + ensurepip? ( dev-python/ensurepip-pip ) + 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} + ') + ) +" +RDEPEND+=" + !build? ( app-misc/mime-types ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi + +# 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 + fi +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + # TODO: Makefile has annoying deps on expat headers + #rm -r Modules/expat || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die + + # breaks tests when using --with-wheel-pkg-dir + rm -r Lib/test/wheeldata || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST=${BUILD_LDFLAGS} + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS=${LDFLAGS_NODIST} + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + + # Avoid as many dependencies as possible for the cross build. + mkdir Modules || die + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + _dbm _gdbm + _sqlite3 + _hashlib _ssl + _curses _curses_panel + readline + _tkinter + pyexpat + zlib + # We disabled these for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. This should be rechecked for the pure Makefile approach, + # and uncommented if needed. + #_ctypes + EOF + + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # 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 + ) + ;; + arm*) + COMMON_TEST_SKIPS+=( + -x test_gdb + ) + ;; + hppa*) + COMMON_TEST_SKIPS+=( + -x test_gdb + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + powerpc64-*) # big endian + COMMON_TEST_SKIPS+=( + -x test_gdb + ) + ;; + 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_gdb + # 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 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 65194aeb14c..14832e25060 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 @@ -390,7 +390,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions 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 e6af67d55aa..456a4bcd55b 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 @@ -384,7 +384,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.8.20_p7.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.8.20_p7.ebuild index 868acf645bd..fdb933080a1 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.8.20_p7.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.8.20_p7.ebuild @@ -231,7 +231,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.22_p2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.22_p2.ebuild index 573aa3fc38d..951e622dbb5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.22_p2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.22_p2.ebuild @@ -308,7 +308,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.23.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.23.ebuild index d621dcdcefa..f6d68106060 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.23.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.23.ebuild @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86" IUSE=" bluetooth build debug +ensurepip examples gdbm +ncurses pgo +readline +sqlite +ssl test tk valgrind @@ -308,7 +308,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.9999.ebuild index 76faae42f04..4a4effea93f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.9999.ebuild @@ -297,7 +297,6 @@ src_configure() { --enable-ipv6 --infodir='${prefix}/share/info' --mandir='${prefix}/share/man' - --with-computed-gotos --with-dbmliborder="${dbmliborder}" --with-libc= --enable-loadable-sqlite-extensions diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/Manifest b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/Manifest index 5547424f99d..0168870676d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/Manifest @@ -551,62 +551,34 @@ DIST rust-1.87.0-x86_64-unknown-linux-gnu.tar.xz 198639092 BLAKE2B 908c974cc044e DIST rust-1.87.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B edac3e21d9414e774c507a352664f6d73beb78ca3b4f19c95097e073b461d10aeef8d0b2bcf0457b8944c40327f04907c05edcc92070cc10958a9deb1d843bc7 SHA512 1946680287698a07a922c18b74d27c1de374eed86624aeb76167aafcd0acc8ad4bca57fea5a8f8420deadcaf819be6ea0c47b8ca97033cd94578037fbbc86168 DIST rust-1.87.0-x86_64-unknown-linux-musl.tar.xz 292508024 BLAKE2B 2fdf8a2be388bbfeb52211c372b95f42563ef762883d4634f857545a3bdcf9fa6c41c9099df1a26b936f3a3e9e8679d891d3ed80e593e405663f02421fadad6c SHA512 9629d62407eb517e09b21cca83ae1528b60b589df29ee12d99e7f334c234cdd9e24c497c175b4e83b8a993f6117e17a8004b350a28868d7e5247c26dd165d253 DIST rust-1.87.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 9ee89dcd5bca680c4b6c13b85166d4d7d6bf1c685931a6466e8701868840136376ae8980931e5cf91f82da1cec7f9bfc0ec74576d5e57eb14991d7d398524cd7 SHA512 5985a66b9c898f71864c5f18104a92930bfd20acd827efd0d7222c28da25fc96ca72f72c880be0b75ed25ea381f9d7e07e2e1243c4b465eb4903073bb74691bf -DIST rust-1.88.0_beta20250526-aarch64-unknown-linux-gnu.tar.xz 165315676 BLAKE2B 5011d0b4507462cc230696942496342fbc576dc398198b7897aed08985c60d009a96c741ad33bd0ff41eff78b45b05eac737f037f707dc008b4f08930294db6d SHA512 a7edd10983f7de4b6cabafccacb215999391d3c33fa2eee2a425ae0116372e207514254cdba1c798dbdc4faa1b0b4cfa6fe158c4b924d1d95dd49034dd593b22 -DIST rust-1.88.0_beta20250526-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 99e83ee876ecc402d26e0c86f22289038841e4a7cb3554536e1d805fadc6a81a59fb403ab63ccaf885ad815871ab9c6aecbe41afd2059a6cb952c323d60d5bd3 SHA512 38eaa3c4afc5426e1a3a9c6a2cae45f1bb8d20806e66b9fbf678d046cd6636fff8d544db2a5d2aa852deac6fc1ce5bf0a06eacb829748a9c42f491da83751389 -DIST rust-1.88.0_beta20250526-aarch64-unknown-linux-musl.tar.xz 243946068 BLAKE2B a37ff77ffa2964e412dd2eaa2426b65d6e51c610cad38378c1e95fb9c51ace8dc9028cfe96e84eeddd7b450ac30c1684f3febd2d438cb3b92be86a92d6262a0b SHA512 377b2d6c44ea7aeb16a56698105423868d6d81df1fa7412a94b26b3edb1a39af9280e0fcf8baee2e680806f0f0b4d81a2debc8f3ce6e6864ae2602e01391a737 -DIST rust-1.88.0_beta20250526-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B ba903c4d3d2ab4304bfc95632ebec42b76e5f38a176ec1928910751c0b8f05544849d191c8ef660696a4d76ae65d0b5dcb8ed1059b11615227d74fb0f0ddadb8 SHA512 0d72b6d4c4dcee6a0ef6e705b731e90e03f60bed72c7d92ac281e70dc0f87a58344a5c97057117c80a7656f378a6c9a1f3961357fd49128192f0ceaf9827f2ca -DIST rust-1.88.0_beta20250526-arm-unknown-linux-gnueabi.tar.xz 229389328 BLAKE2B 9aa0753d731abcdc493a817247adbad1421c5d61246209805ab5025409b2287c573d1cf8a0c1a91fcc68280524991a578dec6502234ea4a545c8f1176c22dbc0 SHA512 c6189f9939389f3bb3e7fbbcfe56beb3abce395ac42323fa97fce479a3f20431b03d702978f005c9a0df234bdd0654048d5254e9f484f33ac74cc60adad9bea8 -DIST rust-1.88.0_beta20250526-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 07eee2c415503600b5d4299e5f05e884e47e3c353c11dd060100c3108f880a1250506aeaca296675cd33ba2c9741fb2a24000f151ba18e104cd71e1c55316cd4 SHA512 394ec48a653a8b93d0532f2f6df27dc273bbd948d2690f193004b4dbc416717d710cd2c5f3b6da970bba09367176b93a45d6466b552276935572e7f88de9827d -DIST rust-1.88.0_beta20250526-arm-unknown-linux-gnueabihf.tar.xz 229713968 BLAKE2B 6e2b361247abec64200820bf36fa74d5ef43e616ac3eabc5b948f7483f683526683b0c89b5c452f446a958aee989ed8d5fa1f64951389439230910ed13d1f488 SHA512 036ebff25321f4f62189b744857b445a79a34962032c92d35755c0cdac4095c0cdb2ed73d1b136a6f344458a6bd0a51857c122539d5fb5106a7972aa7338ce2a -DIST rust-1.88.0_beta20250526-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 8113dafc49ee2d04975bc510123486ab4b5d3d809ac843557c8404584ffc44b8467d0c915e1c207f2ab1a0e1a02e754f707577b87c4ef241d5f235f60747c732 SHA512 0425892113097b457a06cb260511a67b0107468fc685ff4034d11449f97ac0e2ed9b5ca0dae36f6ce0cbea872c592988c865b1991f22c4c4d68411c7dba8768a -DIST rust-1.88.0_beta20250526-armv7-unknown-linux-gnueabihf.tar.xz 235456424 BLAKE2B 54bec2fe1a8967d541f162fda8530b1a2d847a223b2edc9a37f285ee32bd99fa40cfd36df38055be76e4a1c894cdf54314b28d822228191e533a6550f6590217 SHA512 670975a615c81e0c45d40824aa2bd3a15c745d6e4e896d94882c8036bf98fc392d59f877061fbf8b0885e2ebee0187e98f5533ffaca8d070602800b9026d4076 -DIST rust-1.88.0_beta20250526-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 06e50a4e5c3006c1f85eca5ea35638affee6a6f854ecc40b6ba36a913f634ee9d3649da1fe4bfb64e3d093983eb14568fdbb5b458059837d9fde0103e2fd1222 SHA512 5ee5ecdce8b30354e6094c7cbabfdf942288e53b5aef6e8d36944d30ffef526d4b7c2d7d17c05caf48d6f5a597799fa167f54e216122dcd741fd4af3c7de8172 -DIST rust-1.88.0_beta20250526-i686-unknown-linux-gnu.tar.xz 261911348 BLAKE2B c1d48ad71cb2b8b12cc6c2d3a1a0d620cc74a260416e037d804d3142e055ae8e8a1e7fb40ce89f8935037d5d97357d1255c9f22377028b1a4e4bba3b1a819e80 SHA512 a16188f8459d658301e6d3a85f5ef7f811cc2ceb7181e83d5394c3c26c75fadf2198ec6fa63fe496e94ad0734bd888021eb1a554f612bed01d1aebb87f820eda -DIST rust-1.88.0_beta20250526-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fe93010560fc2e5b888246c1410d8375d1c9eb488caba10ceac4a4f9c12a7e169fd6213e7949392036705e4b8a654dc394e7d3f8252735da9c80892a969d3d20 SHA512 93c5e9f2790a6b4b7d324ab7f4b5385225e049cee423092cf1997a41dffd84327ec32be4decd9a8b790e1c3efdcda4bd0952214ee31ad7ce5e91206ecf9097bf -DIST rust-1.88.0_beta20250526-loongarch64-unknown-linux-gnu.tar.xz 261384104 BLAKE2B 661882ea84aec6dde3cf938ba61229bb38d8a745832dae4025965241f61d8a4879a8e727ba35d0a000694bd4ca560f6b2491a3a4213569004f5bdb310be4de10 SHA512 a5b78599ba01a822b1f59f2ce98f5294d968522ac2263cd6a71b08b6dd74fcfe443ac530332b9d67a9555ba7bb0ffef5375c98b1f8f7e6ba0a95e41145aad899 -DIST rust-1.88.0_beta20250526-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d4807f009edf0b41134ba6a7a1fb78c0b0a4b38c7281c8808fd2bd0c3856820353414ea70eabdbe25064c4f0800b291e89247b64d83477702ace2feac0e8a9ec SHA512 b04d928325c3c70912db1a434c6df49101b8bcc379f60e2f8d85de032f1caba10abe2f073d513c4bdd4878bf6ee46022599f65a3c2a134a8cba2f84cf29fd0e8 -DIST rust-1.88.0_beta20250526-powerpc-unknown-linux-gnu.tar.xz 255492828 BLAKE2B 47c1acdf66909a547e3db24ce75ece26745cf40237c6695276683bddc33192508cba12f9dce100f762979e92648c58531de5293c0f73ff43b4141d5ad0e7ce49 SHA512 7901e970db1780bb10b92610738a22ddb6e0dd89403391ecaa395038971d3b290dcd3b77f1c727eb0ac9f011b4f153ceacc24bb8a5afb78ecd73ab1686c0ee14 -DIST rust-1.88.0_beta20250526-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 00680f8b37b644078d4d4e97ce4075648fef1e1758418623d489032d6f41a194a453328e46d8ca3fa1e451a17bb8687e347b5ae73595c71487adc97c3d1618f3 SHA512 813ca054248bebc85b1f1daa637e1623604f7facf86ed493f12f97dee6f979d738245ddb58b6feb6ac10f24ae06810f3fa460439202f6551ccd303bc94e1f554 -DIST rust-1.88.0_beta20250526-powerpc64-unknown-linux-gnu.tar.xz 255634308 BLAKE2B 8344bc5d3879d8ea1332ae8e3a6740dad295d8f7e5ed37c38f7bf4cc980ce79ca71e9f0ac980594b0664b4d15feaf79f9193b81fba1fc9baa71cab36c6eaa650 SHA512 e41070dab0420c4a86db50df549e8d09417fd224db0f8873ea39d3ced970f4312ca074cf4d5adb6ebd70eae76ac70f8103621da86fc22bb4e64d8fb70bc2f56b -DIST rust-1.88.0_beta20250526-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fff2551661e8ff90a0fdc394c59bd6cd1c56eeb0062b5059b1555febc8ff82c964802a9273ca1f50b189bfd9aecb356fb6d6978421a75cb32de0ee070ad63000 SHA512 282420dd4e850a5bc2659ab1f34e7cbf50e0f3c16967019bba8d679af83d4b66d920ead46223d1f2cd2f0ed31c7db8beeb10d75d1e33bce844aec7d0f35d7e8a -DIST rust-1.88.0_beta20250526-powerpc64le-unknown-linux-gnu.tar.xz 270308004 BLAKE2B 521d954e0a8ddec0be99d17a1dee9918dd093ec87c9b4069f84d56d810916464296e8dc03df8604628c82afe418b26d61b8907c36cad89eff88262fa6156fa0b SHA512 df8926047e649e4a3d7f98fcb609facfec3ed4aad820b401dd028eca84ddaa3cf968b79185dadc37cb16e0a88e4caff09123fd5be7200cd0a019d4cbe95813b9 -DIST rust-1.88.0_beta20250526-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1ec1fa77a2ea0a0917c4ae45d32f656b56d0f287d7aeb8d433987b940f55516707d9b473a7d95f4ef2bb19afe5bbd836ab96594a48500554198877d55ea5c762 SHA512 f3021119ce42f1edde18bcd7be8b177a6f0b288b3bbe6fa497863f29e62ca0407cace6f58760bb1e2ada49e5846404f12a7351da54724f9d86924999ef7e7cf7 -DIST rust-1.88.0_beta20250526-riscv64gc-unknown-linux-gnu.tar.xz 250149844 BLAKE2B 5a560e6c36cdaaf4598d1333e5c24f356df29d412edc3a0158184fef11dc0862f1c86aa3bb13eaea12db701092d2d5c49e598ced045679228a0e9df8ec0000e5 SHA512 c1ee83f099fdb3e548e1bf6237571509930f43e0dc02d889ae79f938a8c577eff939a2952f9c37ac10e14e3aa8067c23f229290c09c87c7af572c670fcbbcc53 -DIST rust-1.88.0_beta20250526-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f68833da766ea88adf9f8a10ccbf7e0fdbe8c5c7e1b8d5e8fe5c43b01b261d92e6dabe086764564c6171b24d54ea7e0259412f9975ba5abb732d525af0ee6071 SHA512 a76cbe0d25f7b1bc7aeb7f4f853399cf3f6fc974aa5aaa8f4d8a2168314ba289df26f045a143d7ff8c8021d69924e6983e174cb142ec5a9ade4c551b0320aee3 -DIST rust-1.88.0_beta20250526-s390x-unknown-linux-gnu.tar.xz 239803292 BLAKE2B fb85011c9d2229c12d684b0efe4427fd88a10adc41558091d1a5d78354f07af22b4e4fffba2ba9213fafe2229a08251e68c8439704c6e5705edead7d158f14c9 SHA512 39f8ee027b5fbf786597f160ff82f8c67ac0fa1992d81fb8176c4c1a3ab38d707b877b679d2ed03bfd577d4f8c60c40c737ff4856f75bf7fb2b8dcda2f78d765 -DIST rust-1.88.0_beta20250526-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ef2d5870840cf3f68b0ff774ecd53e52155ee7d716fa92482b7c1bcddfc986fdc8056ce49f5af03f51a24ce239ba6812d5e87e5b0712f28f8adb18d70d54282d SHA512 8c0c7470170ef0b5111b1acd5044b9ea13f8828f0aaaa3483d808f6853d38d3d9e101dd22740c1ebf658727b409bf0f6c6db967456833a5f2365e4bbf21f971c -DIST rust-1.88.0_beta20250526-x86_64-unknown-linux-gnu.tar.xz 197118828 BLAKE2B 7d7ded5b1db239cffe9b9c2f12e81ad33a9b577782512f4141c4444095f47bfd87e86a971aa3daeb0fe69b28cfb5d9f664e16a87b3c797fcc90700dbe9af533b SHA512 700329288c0295fa3b37c12c1160e46aeb042a5bb9764660f52dcee7012c14ab0454e4941ca9891873e8b918a9b47c969226b1bba058d24f599dcd4f0e397b45 -DIST rust-1.88.0_beta20250526-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B dc34f5079fbcc11b615c8f054b634930145648ce4c0659f1d51bcb8565dfc23dc887ddb5ed40c156f05bbcf32b78c11a212813541eb61b20c20e9aeee0dfebda SHA512 037173417bf760225c6397108f3d139badd8e00145c9b5a7e65177457abe2552001b9cf8bab79fd58a8b40aedf2d224de66c9dfaa9a119bb913713c06ffbea55 -DIST rust-1.88.0_beta20250526-x86_64-unknown-linux-musl.tar.xz 290943744 BLAKE2B 03068177cc6f5252360cbef4616966cbf2042e4e342175c7a8342524729c3f6c5da650b7ba9ea5544a5fe6433bc8ce87e45a814b838eefa8e1149e4306a82f7d SHA512 d579488256b24aec5a487296f1929ca24e1e6f0da6dc5fc8298c0372b9f25dc988525bb9e3f66d79297e80ba792825d4d39f163f310b3f94540dd299c680be3d -DIST rust-1.88.0_beta20250526-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 9b54bb5932d09b34abedf1448cf90cac011d2e7efa73f9f17df7815bd503ec3f992946dffc9309edc53e1b5b17d8a1c10759cc60ca41334734ae17c75e6a5f50 SHA512 22f38ac6bbf6fda213928c09f89ec2683743ad73b89b24cfc903bdc7243ac954a45fa735c125a1915c5d8f19c0761ca9dc41221791688ac343282034af0cdd90 -DIST rust-1.88.0_beta20250603-aarch64-unknown-linux-gnu.tar.xz 165343516 BLAKE2B 9126824f30fe65c1271e5fa254fbed08295f726a347dae6522ee2b5f4b295f0ede2ceb868dbf9745ea933a2d259dfdaffc4569be503d80d4139fc0f58058056e SHA512 80e0dc617f5503440ca6b5094572e0701d8e63f13fd1aa6563d1906f7dde260cf1f769e7f8fdd90ebc3a362bf08943bbaa47bf00805ab2b21be4280557d04de9 -DIST rust-1.88.0_beta20250603-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B db209a446536597c2a491cafa4a4f2375d12b50cb8f72cf13dffcc63a91709ae348a5d38a663b490ea36bb13e014a27ea7864452365c2193a5e93fdcf47002a0 SHA512 1b1c8d5087a7f4b76328a4811060fd1f8b2ea345f198a9989eabbb5b674ff77b359fd2195b57c807cf7b4ce302743ef4ed8f1c9d9964fe95c17259dd57500480 -DIST rust-1.88.0_beta20250603-aarch64-unknown-linux-musl.tar.xz 243929824 BLAKE2B 84dbe26d95c7cc06a65d426415d94d8c3c48a7cc6fd5c89dafdf3fdb2f5973ac6f196c84194a7d6c1731e94c76ec9c2d6888ec0d1c87aa9595f8d7def230e45e SHA512 e77429a4d79924e93d442c7cc11617cdcff11d4dda0a2a67a4bfcb53f40083ac4d7b2695cc75e695ade0ac67ce4342d751e629ebd7bbe746e9e15e741a4af272 -DIST rust-1.88.0_beta20250603-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 3da884a422171d1f49cf1624f53b9b0c6dee72b5ff8b43c85fd0a6242952d8267a43bf02e7b592f70f5f615cb2fb2cb4459ba5be6bf730f8abac57118e5424f6 SHA512 2505e85e633635843fcf755dba91b0a6cb10dc6f53156aef0ea26b7f5b6282abf7cc4bb484a546cbbcd1b4f190d1e4abfbec05740417bbd1c8dd9c0580f44770 -DIST rust-1.88.0_beta20250603-arm-unknown-linux-gnueabi.tar.xz 229380368 BLAKE2B 1925fd5b0d9d89077f1e800319a98534311f21a6204c69d69050e73edb3f3b16c4535c0942dfca4aa707302e42b422a852ea2ba909d3a504345fb6b0c3abe03d SHA512 363df8ec391cc8201ccf13348916e1d82bf915a06615536837ad2dd6c430e2e8520f601c08b2c5bbd5a9b515039a737f119031f15e8eb2ef626c3cfb330389f6 -DIST rust-1.88.0_beta20250603-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B cf474276e83fa87c478efefebfb731a8726b536f6828d6339064f68dd626061af6342292d1a3cacf4e6cf12131929898c055741dc306f21fc10ef80af13ad5e7 SHA512 4a253234cb693e8cda3a87b21fd5c1a6e27a4667f6ddac42a5dc9617448977bd9303d52fcd6fec199118cd84be9901e840e0d35ddec42b5fda6bac01919ee699 -DIST rust-1.88.0_beta20250603-arm-unknown-linux-gnueabihf.tar.xz 229722020 BLAKE2B 41734aa5784cd3929a6f78d6f2cbca717a79e34d4f98679d319f9c94455ac35ef8410b53bae1336849f0577c21f0bf3ac5137111a6268154042beb8f243d308e SHA512 0ed5a3b8c75fc077de643bc7a1fbd273e2e2530dbe3bf94cd88be754a44d45d14befe549aee0422d8981a1bf91748278a1bac2fba20a6cb82c495951bf9b8303 -DIST rust-1.88.0_beta20250603-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 24388e2d3ba6c26711843cd8da326f0a712af5ab40548b2b7c432d8dec4465c5f3c3f578278f4e27dc39585dec5e354d0b0ce5dff4fd0b56343707a525ca1d08 SHA512 57d2671bff55988a61267a2692323176c170db25eb15741e650676d52a9635b14bea466abbc055bf232ef509905cc1acda10746e02845ff865e56917d73cbc1d -DIST rust-1.88.0_beta20250603-armv7-unknown-linux-gnueabihf.tar.xz 235551172 BLAKE2B 4261b529713f4363c081c323a2cf94fad679aabe44af2a91581f9923d40dbc6d9dffe2cb0b565dfb982faa4bd7804e243807fb3c4284da4bcf677c9f97542e96 SHA512 2aba1861bbf859b665151994cdba14b672188d21b34a95b3cd131d71a3e72c5205ee68502e2b8f53ff3bdd5cfcc2fff170b9c40e2feb6a5d569797ce8d7f36ba -DIST rust-1.88.0_beta20250603-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B a2e3439e2f741e56d039f4cf80371590d0f4cd4d64880e4021582ecc98e4bdab874c8e897e06ef66b3a1fba60994b76e35e9bb5e650f21f62629fb7f964bd5c4 SHA512 b99b53c67115b1c6d4a9bb6adb406ca6c0522cab5bbbc2f5df312d1654a3ec1cca739d1e5060d45babfd2e281e9e67e3586132fdaa59adc574fc81b6c7a6c642 -DIST rust-1.88.0_beta20250603-i686-unknown-linux-gnu.tar.xz 261865076 BLAKE2B 287d1d376d42fb715b7a06ed89c002e0dd2d66fc8b942775ef2cdb115ba09780cfd509d20530c346be5b89e5f6ac67d679400784d95f9e0690afcb6653ca2479 SHA512 25339aef2d7658643d3d55f7ad14eb0913c3cdd170365d53d77390ba2061d3f0f62fe7940727c58ee624ba9214357c8b892b993ff53673cbdc79a2993a80fd49 -DIST rust-1.88.0_beta20250603-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5303dca25dcb54d6532a6eebc4e10392048519eeafd3fbc3a6e73fbdf9aba8dfa6bd43b3e5698980320fc72adcba78edddf6b4b53312bc0a2d4c9b6ed5c887ce SHA512 30fced8fa7a1db6cd66db849a20f318a85f3517938a057afcd67e85320d815749ee6112d1f5988bdb605d03139c2d6172396bee2c6e471a37f48983efa10c088 -DIST rust-1.88.0_beta20250603-loongarch64-unknown-linux-gnu.tar.xz 261370924 BLAKE2B 32e9ec0f14c16aec6d8b7aefa61160eed3f68fdc3f138beae48fffc943c6bdb711dfe4e68073df08cd95d4c47943fb0cf0206409b9ee26975e7f32fe8e23d005 SHA512 293cec7705899e0c2de6dcd2aa3978e5ed5f904596ede83476c105fdd39c2dbfc50f8718754f2c09cf3846a3b5daeb65750e05ebf578666be375ce3f427dfa16 -DIST rust-1.88.0_beta20250603-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9eb1bb752993d31f52d8a428b9bd6d3b0466b3e39d53f14cf58022538047f811ae482b9b940e340d8f669ab851303575efcb247fc2435446a6d20391cfa7a9a9 SHA512 dab99b8118d910a71cd21535a04c3e9cc6d0cf5693d7f0def5d873a6158d0396ce20793e51006391fda11bbddcae0a2c8165cd09fec0d2d76e9dd5928374afa4 -DIST rust-1.88.0_beta20250603-powerpc-unknown-linux-gnu.tar.xz 255451956 BLAKE2B 3266dda7d0b58b023dff1acde1c41db071c5884f08383d07a35cc08e998af426ca621e46c1ca9440429665ffa7c548593047dbda09fec05d8531352880b0aaa0 SHA512 85f7183443c2343f6adddd7abca35cf03cfab6c607c74b126f6a2a84bc3686e63cbad90015c693420d8c15a372e31d01a98494e49367a687d10a7dccedaa96b5 -DIST rust-1.88.0_beta20250603-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b5189c0a2877c3bd8e55a250c873958836ac874fadb79dca1710567b57a1d51dc7964f4bcd6feceffed41b3825137abf37aae4789d34f14bd7099f502a5a2886 SHA512 4357462eabb72f2a4c53918cade956241879c2c60e8e6e0209231b74a2fbef50c5a90eebd23e3bbc8a1cb5a0f5f62bd96c0c08eeb79fa9d89bdd113f812c06bd -DIST rust-1.88.0_beta20250603-powerpc64-unknown-linux-gnu.tar.xz 255345868 BLAKE2B 172b1a0022c41be0614de4f9800884cb8c2ef9268cacdbe6837692430a16718fbc6906826d57ce5b6edbda4024d8e9ab78d5ec8c5e95fb0e1aa86ec189e95506 SHA512 b1f7e2760e62eebb6bdffc627f986c8ac4d131a6317ae459fed56eda1495dfc314fe542fd13d52106dc211c79c269a3cac6bf47ee2fd7ba0fb626ad305cc9e9f -DIST rust-1.88.0_beta20250603-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 4167f3eb56755954fcbef7f9021253dd62c32a4c5d4227b7f1aa2a32dd376a74b1ccf455c50040e8dfec28fe3bd16bcb2b725e3ee51d7478e35ec69fe08d0248 SHA512 2f5f74113a10ac7c66db4691d00fd37d8104b66d821a8662a31a5595e4b7506de9bc31ef7fb1d196ab3851fe3782ac266f0072e6fcc579f1459ea9765685f198 -DIST rust-1.88.0_beta20250603-powerpc64le-unknown-linux-gnu.tar.xz 270326636 BLAKE2B c01f9247c88d6e932cc65bdfb9a3493f375732e6e4bd704b4dadd5d0bedce2342244b4ed9dcb85a070fce17b4cbaa6dc84cec4192e9c25b9e0a6387ab84af7f1 SHA512 5f86a5be80f5b1d6e37d37898405feaf653a7e6b66bf6a806daf6f34075bed921e195fb28f94cf8cd61511d63a0ff3c3608ca1ca63d45dc0536660c1e9461f39 -DIST rust-1.88.0_beta20250603-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fd940fd445d12bdd5d4fd798657fb577b8f97d5b53ae5528a907a70d8167719716456260f326ad0391b33f3ba8bdd9ef233e55a381c474239841597100225442 SHA512 9f31ce8e5e420cd1b187b7d06fb5642d3a378b38f860adf5977e636cd1ed2eea707ede170ea04cc886758a22c2ee952e9458b7af79057d366d2cca7d528f3072 -DIST rust-1.88.0_beta20250603-riscv64gc-unknown-linux-gnu.tar.xz 250233700 BLAKE2B 94b9c69560cfe1b4701fbead77a4f4097d746a5cf5450d9d4d778ad20aea68356d35bd009e173e242c1ce128ab6b3088803b979d00ffdbaddd7af9974ab78255 SHA512 17e4841d5c422aeee0e781f915f53fdb662b80c1d5bac8f09dddfb3326014ba40c197cf2bb1fe78e6240971b77c1616eff8ff938139e5a5f666eafe8a2f6ce39 -DIST rust-1.88.0_beta20250603-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b05207a44c2e63a5cd2c2b66838d66f4dfc4c4de01a941e57545c97338f2c398b376b250fcec9f5fe61deee9bceace0799bad9aa23afa45f642d9e108a9eade9 SHA512 4eb7e2f03f49d1402d3374a46a27ca5970a317b7d2852f21db1a6fd2eb61669dbc78afb9a7eaf94334ad7e04c84c2d652295d83a76c0f45c29462815109cf9be -DIST rust-1.88.0_beta20250603-s390x-unknown-linux-gnu.tar.xz 239877008 BLAKE2B 88fe16423db102377051a5ff53a2dba758182f5c4e2376512b3006ee1cca22143f00e6454de006fd6fd59a1228b4cc6d4deb40846dbbfd733982549d50b96c2a SHA512 68fb9c5ada1247f047c2cd2ae42ccff8c66a512fd98fb5c509685a3bf58c5a728945154ecd1f21274515481413df229bfdea5279054e7180f1209f956227ae1c -DIST rust-1.88.0_beta20250603-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 267620d6a8819b9304018800699f06469b56a2f0ac7ff2eb5681c6b1b69342bf7c8f82352c40d5521f105e48322365d1c893537909fa31ea4aa7835d18d549ae SHA512 4e8859af0cb1382c8ee972e0aa5984192c9b11aa300771babc2154b790c2485de0d86623d77384426ac8503859e10d183c30dc2436b98610de0c3e25e5807fc5 -DIST rust-1.88.0_beta20250603-x86_64-unknown-linux-gnu.tar.xz 197138936 BLAKE2B 091052d9d50a8fa10ca8c97d02b52c2dbced7f3e983f57077c833991ebc9a13f001581bc75bb255ef3ee5cac8d7a49369739b05725acfb1b1ef69a0480c3579c SHA512 b01d0abb8cb9f8cc89588383d5b987141e0a4067ead1d373cf6c844f3dfaf043bd7e60ff44eea5f0b28be43a9f84b4348c514268e2e04ee3ae3890d265d0b23c -DIST rust-1.88.0_beta20250603-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 146997de22c3cc525a98474a8d362c7d834428285640cf1297362ebecb6289b2bcb48cf9e7f9bf1f67e690ff4155042047f583e692cc482897bb3ded12db96ee SHA512 5807a50f84d8b14e94b2e03b7b14a63ae12116359495523a8939be907bfcd1d106910a94f34a259edca62e7a1e0eab5454e9fabd617d651e70c109648ef1d7cc -DIST rust-1.88.0_beta20250603-x86_64-unknown-linux-musl.tar.xz 290897768 BLAKE2B 03ec29cfbc09cd4e7932b22818fd63c36b718513d8fa5f235cc2817d70ec1eec7489c6565c4cfe27f6c9758f83330b794094a033fe84850b2a537b0780bfdd31 SHA512 8d56a657f9b9093dedf01768f658d9179521aec9169b302df978795938d3757574237dfb963aa0a92b4cfa95b4406724bd845212199b42810239468eaf1e4daf -DIST rust-1.88.0_beta20250603-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B d73633555a7f696387c975143718c502be47753a617d4a1a9163899dacf804cc965e7e0bafd10f22c7da3bd34f4c704100e3ec1533118cd4bbd52c9ddb6599f4 SHA512 35537f1b005c453357dab4326767bd00cbd38e82d905f5b7dca53355f07f38b408efe8418401587695e36a5ee12e68846b90ba6f06157bb2d8b4297b504a7128 +DIST rust-1.88.0-aarch64-unknown-linux-gnu.tar.xz 165627944 BLAKE2B dc867d2f48c8642ccd5b19e36febbf624cd5c5ce7b64f04a76b1b0a105ea4a2fb8f34ef264295f2536506cb4a69a3499a7faa7f7df74e0eed340aba5abef7bf0 SHA512 c3e4b290c7faee847c9d0ca8c8bc039e0fa534bda4edcf6b285ce3162473171c2f4a39ff2b2180bddca4aac50d6a0e6af2d9ededc407ba38a17d17919dcefbd2 +DIST rust-1.88.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d8bb0addf2f137f2f5bec43aab2a664524eb463317ab4dfc2bbc5b557ca7f3904edd0d84b2c2693629f79a5de1456870d2e9331f0b4a4ef14800b085d0e62f29 SHA512 5c66ba1192bd3368eb0f263761f9e531743e48a4a3e841e6291af8d268e98f5cb525e1401554593f55c95ee5433a7790275e5c68f2d39ece8dce6d74ad60b18d +DIST rust-1.88.0-aarch64-unknown-linux-musl.tar.xz 243952520 BLAKE2B 08e42e767bf87dd1cac6143b6b7657983481155404bc4baad8213d367bc91dd136b463b2d2ac1aeef64a63493e34e13cd486a87200f7485bf1e8209892172feb SHA512 5822300291961965e7b65b0776b2ce04443ebe45363e32bbac840e154b2ba6f0726ccdff819f01fca42c338a4b42d75cea385a2ac402d10396ac92e9864b5fe3 +DIST rust-1.88.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 6677a02a17d831a1376e10ce96a0882645ea99201947b44f8205859d465ac5399eef45c5d1352381c553dddebb15e27466b22a1ae0bc31b5caf9c2482479c94e SHA512 10374492deef414c8f1a83a40114f62706e7cba3a042e83f98f16477fd80c15b2d4a986eb87dc820c6e314a9e775b853cf0d2b0254ac9ce9ef93ed666eaa887b +DIST rust-1.88.0-arm-unknown-linux-gnueabi.tar.xz 228820932 BLAKE2B b1baddba49ecdfb8407f2bd01a67bba1b3daebfd2d81d63eb130a0b28f21bd0800121a2ad2ef0ee55a06193d8f7271127b3026e957f3c9dda955854732631b9a SHA512 219c96cde3b11b24e9f6ab3da7268f512c6fcabae110764c81f8524605a3df164d4c2827dabd16488be861dc44a5870a98109f49bc2360fbc72a7f0d7ee865a1 +DIST rust-1.88.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 864dcd450c9d82f4c49183528cd87cafc8fb1c043736e8a1190cbcab563f8d7c04b9596ad2fff6040e0ba9a3d5eac2f180d3bca517af81ede929164f735ca3fe SHA512 2aaf761ea547f9da71583ca7be8ff17759c81dbabcfd1b24b32dd2962ab37883e881ac3057d7762321e5b25e756e64274e238e6a282b14bafeec7a9a7e25f188 +DIST rust-1.88.0-arm-unknown-linux-gnueabihf.tar.xz 229177148 BLAKE2B f3cf21d0ee57401e4cb1df2e70a6d0427ff4464fa3a686cea0f645247f7e9f9c3472d64dc64603b55056396dd9e208eecb286d6ee8e21fbea9f630c526b27191 SHA512 eca0dd5d36808f439445b0885407108dbc8281447c53343e9ce4aab87c4f9990acc398b22f3c615384417a3b7b6d7dc67cf8659e6c21cc88cf9f4fbf82c88027 +DIST rust-1.88.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 5e1fb7f89afff9efaa6b76311c7dd5faf9d5cfb50bf27825b7a60661d11440eee4330925a6c575a178476b5b7d3b554ca2b21cb6aacdaf2b61b219053cfd1794 SHA512 3c00bdb76f30b6b1341012ce4804c78a95f35d89bb9b4daf095a636639034420504b35ca642d7849647634d9dc36e7bdb6c47c943afb0cc2b065f4538d91c478 +DIST rust-1.88.0-armv7-unknown-linux-gnueabihf.tar.xz 234574328 BLAKE2B a26d5b3014ad6737da6f8541fdf52af08ab2fb8b2274d3d4251b5fb466ee0ca2a5e106a35484e36ea4b5390fae2f00bb9943e64be22f685318e08e9dbd4b5e65 SHA512 68567b6188cedcd05c775624c3ccae5e1ec6db36192dc9adb7d51ea7613b7c3ac9e2a26eff220aaf1aedcd5f6fc06c73d68715add20cd6eda7ce3b772b9e8a47 +DIST rust-1.88.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 45dcc99b29546f7e87b4c87800b467441b34777aa37f2d581ef56c841b5cff2076c164a3a3fe355a32638855efffb0ad2273c5b8fd6ccf7055190611c2c2c4a3 SHA512 0c411f0dee30aed1b99c5c33fcf2f43bfe11dfc0c52968802cd5b3e50127166b85cfc602483ab39456d77bafa35f6de1da88d254f997fc494756f83e0013cacc +DIST rust-1.88.0-i686-unknown-linux-gnu.tar.xz 261235476 BLAKE2B 5ff3f9167158844bc7d16324a282a84b9c2212ab87c794b9432457236cf32133c4c23418e38496d0d69edf6dd87673856690c23e7848ca33cd7e2913630fe4bd SHA512 ccf445c168da1a2fc9b2689632974714b0b609e66e55a8cb412549f08c04ae8d6ae0f2173f8a80cca6a45b76d5ae789dfca5eb2c83066e908442b7ff41a9ecf3 +DIST rust-1.88.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B dbcfa2e32906b07d4d9eb8d62af464f38c626d16b831e5d25fd9517f8f4e22ab60a2d6521f61ac3d36c0d9d6707a702ed3248fa0343462f62e1404574f83af9b SHA512 09f707dbed6f8d46872e4445e49c793a9f9cfedb71f3cc3b115b9447c7c4b86811081400bbf342c5a26b2f929738ffd9fb25f75ed1b13e333683ca6eedde430d +DIST rust-1.88.0-loongarch64-unknown-linux-gnu.tar.xz 261520268 BLAKE2B 23d53eecaa14898537cb3647cbff114870223173f4e50cbdc19a7514f34995196792b0390337ad53387a7bb515ec34330502acdc361826429b8f3985a9341c8a SHA512 6f4a040e22de950e975c29f16563f19030fab9fbe9476f55a4542c3ad9eaa9c34500cdd4344819b5cc27831b32811d25d296845fef01475224a2bfbae7ef9ce7 +DIST rust-1.88.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ad7b0c85d6ec2085e6005f0789b6eaa30af0fefbf6e621b58f470b916320141e78ec6e112a4bb69867417b69ef740bc033db65a2fd3f54e5cfacfae56b58b57f SHA512 0fb6caa3fa06a28fa1f3a3657df6c2c1d4d87db9a94a74b9ccab14418af7057f3be75ff33556507f48bcec2e648324bc1629ef94c8c57e5ca62b8a9fbc49c9c3 +DIST rust-1.88.0-powerpc-unknown-linux-gnu.tar.xz 255291852 BLAKE2B 4ef3d89f38bbbf12ef2ee190457f4ce96b5e60e02cc72a1e312a897c73fc28677277008f322381f7f084ae7d93671a9b3a46dc5e266a1b8c9987c780b26e61ac SHA512 f7100076968cbc4bf529ec2214f2ead865e87fc5e55f0a683ffa3034d3e31db0c9619fbcd9e854a7fba8d2e06732456edc59280bbd8de75e33df9897e65520d4 +DIST rust-1.88.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7bf2a3229c6ae8a718812edd41dd0ffdd61dc792801d365dbeb46d7ae32cf12ecc7210ae67ba19be35349a27d656fa76a887a5d91d8e2dcd12b93600635d67df SHA512 2940a66102c6dc33dab8d410884f7bad88589c8df45f361c4f10a9be8a15d896c91a45c95f4c9b5f23a9d696af343b64d056274816b2454acba3adf1eccc0780 +DIST rust-1.88.0-powerpc64-unknown-linux-gnu.tar.xz 255371956 BLAKE2B 45607ff673bab803e794a3ddb070de237e94eeda43ca5fe52c49d006db2789433dfe324f706bd57d82d14f18bea0bb02372e71593c0251420628f5edba9c0fde SHA512 55889385893cfd957d85376ff68a677dd70886476392bf8f4f8ff671777d0ea168491e4d778c88f40a9a06f68717887b8b0ff3dbb0a65b956a98aa00e6b81dba +DIST rust-1.88.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0625be465cbfdd2b73e73c8adf5ada2d7c0eaa4541f3735eec32d464cae44b475fa860cf126e433aa69a6f2de02d94af31bceae4ac23364ce394f34cf8f65586 SHA512 b25598551b7c0946adbd11ffdeb1761640f6bb255a9925cc734b4c12d82f666fc4344fdba9ab83fa63bdc82129dbc68df7ba125b8851238ca8558ca5de5c7dc5 +DIST rust-1.88.0-powerpc64le-unknown-linux-gnu.tar.xz 270351680 BLAKE2B 0b47e4e756d571232ec07d73fb99a2dd8e5542fa8d7046d565ed0277111ce07e5801815f2391fc0c19681f63b45e781c18d43a3fc818cc0352aee4c0a8da71fe SHA512 0e0d800f02bfebcc10792f71a48a7c70fe197bf965b5a055df07e54408e49a9cdee4dc744f4e06a2e400174265c833fbb4075f5a477508e72deacf48e955fdce +DIST rust-1.88.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fdbf7a59a1a37c8ad09d0568e30487d01513734ae9bed276e3e3ba45cc0d39b14f958a377def77d9505e158d256780a7c1c936eaef40d7541279effa88f8c5e7 SHA512 1ccfe4f582783a80dc8bb0e50f5b782da661940930870c713ffd4a8ffed6df7e760829ee224e368bca583f611bdaad33eb46f3728fbe2b3062107510194671c9 +DIST rust-1.88.0-riscv64gc-unknown-linux-gnu.tar.xz 250151976 BLAKE2B 04b732c4d251af2d8279620a3a7da81a31161ec8f143396fc3cf39a5b6fa8dec5ff569253126b709a0ec147dfe7902a1748b313324173f0ef76ee89f54d1292c SHA512 389d92297915cce0155a8a96c0052df655768987fa1846e1e7f71a2f3da3e29e6b256f85f0d77f816b53cc33ddb7394f472f7ce92b81d40baad4c7fa0d2b2883 +DIST rust-1.88.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f3602574232fe5e0af2e21e2a3178a227070aca5163230ba2a229d7ca63a798f0fa8564d2b16fb912493ef1d8d925cee5a21448c69843411c0df65f4454ad716 SHA512 b3036020032c51e6b739475c4c2c21aaaa742018ee6cad2a0b7f7a6eff193977eb93450cba01a5ef6c436d6b4ba491c79787c980a465306f42c85ed0dcc034ff +DIST rust-1.88.0-s390x-unknown-linux-gnu.tar.xz 239909412 BLAKE2B e92e9f51f2af3c638b82fa8e7ed1c553b7f7537f32a67bd875ade77a04ba646e3b22a7ff88c28bdb3f02b6ddd753efa400962b4dbe36bda58ac5ae8326b9b35b SHA512 01d914bfcbfbe061ee2269445376112ca61fb87fff8acda07c3183aa051a50f270425d2a9761bf036a3d14c7b9cdabf392d3d532bce8a7e0d2ac9b5c22cc212e +DIST rust-1.88.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7a85b49f5e311bd3261ac0f6d967fe5505f73589c1d218481270adf00e72ee6bf57158d0da86f8289da7f4bce1452b3ba7447e1cf116175573eea8c07e58b0bd SHA512 349d119bbc4c12cc005e3ea9780b259413d93e4b052f5f7fc677a2e2bf71e7cbafa5db9770ed8378ec4a3053a2d590562c354c1db924247a74e20d1dcd4abdbe +DIST rust-1.88.0-x86_64-unknown-linux-gnu.tar.xz 197237052 BLAKE2B 5ce55a2b5faa41ccdb365764e1a3a10d46b385b678460de6dbaf3ef816e4f36164040070ef8c56183bdfe90389c1f81017bd7c411906d0a7b39899432f710e8d SHA512 ce97eb4697415bdb1fc33438ad62d9c410b00bfdb7c78c8c80e5887e6a23d3299302694918cbe259851c85b971f0ae3198ab6a89e26c94836a82bbf9e77cd80d +DIST rust-1.88.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d3bd096b1d1c7fce42f60cbd5f3b3a459c0063430366adc78c026a0159f379d2537d74d4f1fd768ea5b666a33cc28aa185a867aeed04ef1ae735a3eb794baa47 SHA512 62a5a9ffac0e95fbb547c504336b3aa160698e20b8ba322769c2233972c6ace48b2afdc42e84559b244099f9d8115cb96ba3c8f0923806559c53f80d3e248d04 +DIST rust-1.88.0-x86_64-unknown-linux-musl.tar.xz 291407088 BLAKE2B 17c8144b9acf12f190ed8bd3367a9602535ecea365a402e1248b26457f263103680b3d55d4b670aa381de816db76d263fa1c3d9715f60a3100c96765dac4d61d SHA512 d4da2f9cfeb50377616a48437ddab836717de94fc0362e6b8f4afcd7b4ca939be1c902db54b7204fb35863189e1f8b8d9b7bd4713e4e4729e42db9db2d249711 +DIST rust-1.88.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 31f344b4f8cb6beb58e2cbd62d7891abe764bb6a8a473b805ad55a7ef2b0952677e32481c22a2ec81146b61f74dafcbd384f629bdb7f7799ee642ce926f80953 SHA512 64824b1f927080e8272d29e4fee56e2237621a48b3178c2b4a5ae580519d1c954a85ce383232d0fcd98468a6530579353ae65f84b4205f90c4fc144188f3adb0 DIST rust-src-1.74.1.tar.xz 2544036 BLAKE2B d95431b69f102782f51878ff73ce8802cac6dab7909497c3231d1c479b95dc2a618cc6efd8bac9c6bd59a2b10dc6be05199f1e1bd74e45cc640ee52352c29268 SHA512 11467d0936193c5a5be8c2eba1aefe2b7028af48494698863de2c4057d68ce33dcee1fc66dc2d68b1d32f0202ce49e9b906727849de8f8d904dd07930e76d5a4 DIST rust-src-1.75.0.tar.xz 2570256 BLAKE2B 9db7ccff07ffe6991233e9f530321fd6ba48c561dcf1226537afa70c7d045421d8e83c5300b0866ec6fccfaae96dd67b9f204e9e0e12108c0c766d467cd78909 SHA512 e7565cea2f1658a05237a698e38880df2544319b41b6d8b0805db5f1f94fd3bb4f986967d0440fcdfe3a135e33246f3c747665b964f57ff5942f56133af78cdd DIST rust-src-1.76.0.tar.xz 2590884 BLAKE2B d1a6215dab34d7b10c3177d2b248f997d3a846388f3442567572880aa5c5bc51b56398f5d4dc32727cee7c9dbef494430d6534a76b66c4ae5ac4fed07266644d SHA512 39d2fe58fae8c8c5a6cb3fb1ef2a1c7548c018fef6ccea531659fdfecd68a4aa77125299d2cbe5b58e500337b4d074928318fa9ebce358af500d0ef27260e3ca @@ -623,5 +595,4 @@ DIST rust-src-1.85.0.tar.xz 3036988 BLAKE2B b7281b23eef60cf052e1641a29915c02c590 DIST rust-src-1.85.1.tar.xz 3036412 BLAKE2B f137ffcebd2d231d8b3dc5c9072f6afe39a071bc9608ac468bca364fafaa9c277b91e40da870a083c802cc13b9b876a548d7fa8ae67ad9552321a7412b7d8cd8 SHA512 d230cbb1daae3e2f5168abef94c5b99fb118c34a980f018d5df3e43f6ead4e0a17d6ea29bcfbcd0fb745e215f7a4d0282a99a714dba77b98a16254bb27c2d2ad DIST rust-src-1.86.0.tar.xz 3053544 BLAKE2B 2d1d8a4be4f9dc9355ce9a2d1599e0a57c5d1cb32f7b2eb413f6009dbce7d63db2533dc038cf50f5277a2d7bf4434f2076632c12a6fd33335ccf3a9f2ab685d1 SHA512 2818d94412bb0766ce53383932cd8ce96275a8e923f916c4bf7116fbcb7c2053cfb9714667add1a9d50b18366c973ba3ab4fe55d49c8abc8cc57656635c59f63 DIST rust-src-1.87.0.tar.xz 3119800 BLAKE2B 6429eb419f17109537a2a5463b0c68f504b3cb0f55766e18f73cf053883b06eedc934ab4598756790cec147ff41c4eb30a807d2ce0b7e6af33310710fdc5a8c1 SHA512 9747c60268d772b7c6e7694260c0808d2b8a42028f5606499c81595d76f5bc32c9acf6b4b9aad168235f8fd77d980c56bc4afc3d40f5d0374b23d3e66e3de390 -DIST rust-src-1.88.0_beta20250526.tar.xz 3154796 BLAKE2B 9c4cfd252edce814ce8621d189f3a4aa16ba7a350ae9d28644bf56daba8422e7e9bde63394d89870b94a021e55eeb1986d16d1b57afb8a8990e67ea7e175502e SHA512 c0e7185791433bf79db118d01476e28201970505adfebb425c86d1fac766c61ef57ae69aed34d538aee235e62cd5b00de882f04b36f1f227d64beb276915d053 -DIST rust-src-1.88.0_beta20250603.tar.xz 3154768 BLAKE2B 11dbb689364a67762299a5dbfd77d69f3d92166d19a3e14b1d411368bd52632da5244856aabc8b09380d9f569e9b0b42dbe140093b982663e70147e642b4f696 SHA512 ee5a73570fce94dd67c32dbed964c0358b26420dd213898cabf9d24e675d50f2cbb325f23c00f2aa0e53e587512f73d48561bfd3c0be8ff9f6cd941533db63ce +DIST rust-src-1.88.0.tar.xz 3155272 BLAKE2B bca923d2264337366b8013c45f3a40cbdfc1e1b746775161eaa66a1db653aa4ccb2a55980368ecf9808d6f4885194e2dfbf1f678d0500a43f7b2fcc0f79d27c8 SHA512 6dfe1fc3565927a9ac2ff9821ef3222cca170ff538833e1969ebe662af2cad5257c1ab3d82f5ca10aeaab40f54916a25dd96fd16449cd59e4d104b631911931b diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.88.0_beta20250603.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.88.0.ebuild similarity index 97% rename from sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.88.0_beta20250603.ebuild rename to sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.88.0.ebuild index ef8fe8615c5..5132ee797ad 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.88.0_beta20250603.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.88.0.ebuild @@ -21,10 +21,10 @@ elif [[ ${PV} == *beta* ]]; then " else # curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src" - SRC_URI="$(rust_all_arch_uris "${PV}") - rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-01-30/rust-src-${PV}.tar.xz ) + SRC_URI="$(rust_all_arch_uris "rust-${PV}") + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-06-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" fi GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash @@ -32,7 +32,7 @@ GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/$ DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" -if [[ ${PV} != *9999* && ${PV} != *beta* ]] ; then +if [[ ${PV} != *9999* && ${PV} != *beta* ]] && 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? ( diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.88.0_beta20250526.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.88.0_beta20250526.ebuild deleted file mode 100644 index ef8fe8615c5..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.88.0_beta20250526.ebuild +++ /dev/null @@ -1,314 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( 20 ) -LLVM_OPTIONAL="yes" - -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature - -if [[ ${PV} == *9999* ]]; then - # We need to fetch a tarball in src_unpack - PROPERTIES+=" live" -elif [[ ${PV} == *beta* ]]; then - # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep "xz_url.*rust-src" - betaver=${PV//*beta} - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" - RUST_TOOLCHAIN_BASEURL=https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/ - SRC_URI="$(rust_all_arch_uris rust-beta rust-${PV}) - rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/rust-src-beta.tar.xz -> rust-src-${PV}.tar.xz ) - " -else - # curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src" - SRC_URI="$(rust_all_arch_uris "${PV}") - rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-01-30/rust-src-${PV}.tar.xz ) - " - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -fi - -GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash - -DESCRIPTION="Systems programming language from Mozilla" -HOMEPAGE="https://www.rust-lang.org/" - -if [[ ${PV} != *9999* && ${PV} != *beta* ]] ; then - # Keep this separate to allow easy commenting out if not yet built - SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-sparc64-unknown-linux-gnu.tar.xz ) " - SRC_URI+=" mips? ( - abi_mips_o32? ( - big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips-unknown-linux-gnu.tar.xz ) - !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mipsel-unknown-linux-gnu.tar.xz ) - ) - abi_mips_n64? ( - big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64-unknown-linux-gnuabi64.tar.xz ) - !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64el-unknown-linux-gnuabi64.tar.xz ) - ) - )" - SRC_URI+=" riscv? ( - elibc_musl? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-riscv64gc-unknown-linux-musl.tar.xz ) - )" - SRC_URI+=" ppc64? ( elibc_musl? ( - big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64-unknown-linux-musl.tar.xz ) - !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" - -RDEPEND=" - >=app-eselect/eselect-rust-20190311 - dev-libs/openssl - sys-apps/lsb-release - || ( - llvm-runtimes/libgcc - sys-devel/gcc:* - ) - !dev-lang/rust:stable - !dev-lang/rust-bin:stable -" -BDEPEND=" - prefix? ( dev-util/patchelf ) - verify-sig? ( sec-keys/openpgp-keys-rust ) -" -[[ ${PV} == *9999* ]] && BDEPEND+=" net-misc/curl" - -REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" - -# stripping rust may break it (at least on x86_64) -# https://github.com/rust-lang/rust/issues/112286 -RESTRICT="strip" - -QA_PREBUILT=" - opt/rust-bin-${SLOT}/bin/.* - opt/rust-bin-${SLOT}/lib/.*.so* - opt/rust-bin-${SLOT}/libexec/.* - opt/rust-bin-${SLOT}/lib/rustlib/.*/bin/.* - opt/rust-bin-${SLOT}/lib/rustlib/.*/lib/.* -" - -# An rmeta file is custom binary format that contains the metadata for the crate. -# rmeta files do not support linking, since they do not contain compiled object files. -# so we can safely silence the warning for this QA check. -QA_EXECSTACK="opt/${PN}-${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta" - -VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" - -src_unpack() { - if [[ ${PV} == *9999* ]]; then - # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch - local rust_bin_url rustc_src_url - # Cut down on webrequests by fetching the nightly toml once - curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > "${WORKDIR}/channel-rust-nightly.toml" || - die "Failed to fetch nightly revision info" - rustc_src_url=$(grep 'xz_url.*rust-src' "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) - rust_bin_url=$(grep "xz_url.*rust-nightly-$(rust_abi)" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) - einfo "Using nightly Rust from: ${rust_bin_url}" - - if use rust-src; then - einfo "Using nightly Rust-src from: ${rustc_src_url}" - # We need to fetch the rust-src tarball - einfo "Fetching nightly rust-src tarball ..." - curl --progress-bar -L "${rustc_src_url}" -o "${WORKDIR}/rust-src-${PV}.tar.xz" || - die "Failed to fetch nightly rust-src tarball." - # no verify-sig here, just unpack it - tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball" - fi - - einfo "Fetching nightly Rust tarball ..." - curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball" - if use verify-sig; then - einfo "Fetching nightly signature ..." - curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature" - verify-sig_verify_detached "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" \ - "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz.asc" - fi - tar -xf "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" || die "Failed to unpack nightly tarball" - else - # sadly rust-src tarball does not have corresponding .asc file - # so do partial verification - if use verify-sig; then - for f in ${A}; do - if [[ -f ${DISTDIR}/${f}.asc ]]; then - verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" - fi - done - fi - - default_src_unpack - - fi - case ${PV} in - *9999*) - mv "${WORKDIR}/rust-nightly-$(rust_abi)" "${S}" || die - ;; - *beta*) - mv "${WORKDIR}/rust-beta-$(rust_abi)" "${S}" || die - ;; - *) - mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die - ;; - esac -} - -patchelf_for_bin() { - local filetype=$(file -b ${1}) - if [[ ${filetype} == *ELF*interpreter* ]]; then - einfo "${1}'s interpreter changed" - patchelf ${1} --set-interpreter ${2} || die - elif [[ ${filetype} == *script* ]]; then - hprefixify ${1} - fi -} - -rust_native_abi_install() { - pushd "${S}" >/dev/null || die - local analysis="$(grep 'analysis' ./components || die "analysis not found in components")" - 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" ) - use rust-analyzer && components+=( "rust-analyzer-preview" "${analysis}" ) - # 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/${SLOT}/bin" - find "${ED}/opt/${SLOT}/bin" -type f -print0 | \ - while IFS= read -r -d '' filename; do - patchelf_for_bin ${filename} ${interpreter} \; || die - done - eend $? - fi - - local symlinks=( - cargo - rustc - rustdoc - rust-gdb - rust-gdbgui - rust-lldb - ) - - use clippy && symlinks+=( clippy-driver cargo-clippy ) - use rustfmt && symlinks+=( rustfmt cargo-fmt ) - use rust-analyzer && symlinks+=( rust-analyzer ) - - einfo "installing eselect-rust symlinks and paths" - local i - for i in "${symlinks[@]}"; do - # we need realpath on /usr/bin/* symlink return version-appended binary path. - # so /usr/bin/rustc should point to /opt/rust-bin-/bin/rustc- - local ver_i="${i}-bin-${SLOT}" - ln -v "${ED}/opt/rust-bin-${SLOT}/bin/${i}" "${ED}/opt/rust-bin-${SLOT}/bin/${ver_i}" || die - dosym -r "/opt/rust-bin-${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" - done - - # symlinks to switch components to active rust in eselect - dosym -r "/opt/rust-bin-${SLOT}/lib" "/usr/lib/rust/lib-bin-${SLOT}" - dosym -r "/opt/rust-bin-${SLOT}/man" "/usr/lib/rust/man-bin-${SLOT}" - dosym -r "/opt/rust-bin-${SLOT}/lib/rustlib" "/usr/lib/rustlib-bin-${SLOT}" - dosym -r "/opt/rust-bin-${SLOT}/share/doc/rust" "/usr/share/doc/rust-bin-${SLOT}" - - # make all capital underscored variable - local CARGO_TRIPLET="$(rust_abi)" - CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" - CARGO_TRIPLET="${CARGO_TRIPLET^^}" - cat <<-_EOF_ > "${T}/50${P}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${SLOT}" - $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") - _EOF_ - doenvd "${T}/50${P}" - - # note: eselect-rust adds EROOT to all paths below - cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" - /usr/bin/cargo - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-gdbgui - /usr/bin/rust-lldb - /usr/lib/rustlib - /usr/lib/rust/lib - /usr/lib/rust/man - /usr/share/doc/rust - _EOF_ - - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${PN}-${SLOT}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${PN}-${SLOT}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${PN}-${SLOT}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${PN}-${SLOT}" - fi - if use rust-analyzer; then - echo /usr/bin/rust-analyzer >> "${T}/provider-${PN}-${SLOT}" - fi - - insinto /etc/env.d/rust - doins "${T}/provider-${PN}-${SLOT}" - popd >/dev/null || die -} - -multilib_src_install() { - if multilib_is_native_abi; then - rust_native_abi_install - else - local rust_target - rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" - dodir "/opt/${P}/lib/rustlib" - cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ - "${ED}/opt/${P}/lib/rustlib" || die - fi - - # BUG: installs x86_64 binary on other arches - rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die -} - -pkg_postinst() { - eselect rust update - - if has_version dev-debug/gdb || has_version llvm-core/lldb; then - elog "Rust installs helper scripts for calling GDB and LLDB," - elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." - fi - - if has_version app-editors/emacs; then - optfeature "emacs support for rust" app-emacs/rust-mode - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - optfeature "vim support for rust" app-vim/rust-vim - fi -} - -pkg_postrm() { - eselect rust cleanup -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/Manifest b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/Manifest index d3114e8f0b0..c474e60ada6 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 @@ -12,7 +12,5 @@ DIST rustc-1.86.0-src.tar.xz 275696736 BLAKE2B 9f33a710a3e567d92f56091920643f5ef DIST rustc-1.86.0-src.tar.xz.asc 801 BLAKE2B 3e10a3894c7eee68d37bc5707d797548119f830667e27e652a199d13633199713bd01bd0f41a5f2af3c682561903e36abe27b36ef78d9a1d65bdf485527d2c15 SHA512 0b74dab9ee56d0a08e26e9cd40f722e4d99de63ac678f969f0c54d50737074fb28e170db5a36ce2627ec332e5ce3bb8a92167aefbccff7c70e4cb057bc0a94ac DIST rustc-1.87.0-src.tar.xz 283604208 BLAKE2B 7ede723121ff8df3908674631ceaec75797d91ccd6f1df4afd7187878adbb8d99c9e8a3b11c6027703b2e8d06785299d93d8649f3eda7f356dd2a6734d99d05b SHA512 2ef08c9be45434401f916d54b3739f52d255f8a3a4ce05a717499250c2333eeaf601f1d18085b878c027c609f44da74d0151f5bfc2c9ae1e01166919a91a1d2b DIST rustc-1.87.0-src.tar.xz.asc 801 BLAKE2B c9740c03baedcd70defba3fd37831692adaf0e984ef6b11d259244330d044fcacf935e6dd76caf126848da0c40f38e5368c60e8aabed5d3c2655a61fdbdc7564 SHA512 ebc13374381839a997c63455b733fd2a7960b4fd497f19c29be948cce8bb59a31ddda5da54ca154c16f7de43dd1bacd6c6bd76f3b6b36c5b43f4cfaf1746b952 -DIST rustc-1.88.0_beta20250526-src.tar.xz 283223628 BLAKE2B 1c21853c0b7edcafd87713823888e04d336fb9c6cd373aa05218ae5d1ddc9c68b18c06dc27d059542ddfe91c0eb04cf523e4b3621b9bbbfad5d2f82e8d1cad1e SHA512 28f64ae8b1e907f7c4044d8a0148286f6e202677417ac3b4f2ce24ee9dba34369ba18d39e443cb982ee5f3b8afd94530580a62b8f5d5473954e976708f002357 -DIST rustc-1.88.0_beta20250526-src.tar.xz.asc 801 BLAKE2B a412d72e4e0f273f03f3fee41abe1aeda03f77339891469e994f3a6bde0cd3836a1da087d908e732e90cd3285743a4a3c728c718ad1dda5daf7cca9de3be2c52 SHA512 45f208555f8b2fd3b21ac4cdc8fd7a110dc53fedbbe8d11542f105c5c8657a628309c8ff4520eb2c740cf3e784bfea0f21832b71b19a356b1b99fc7d0f04f607 -DIST rustc-1.88.0_beta20250603-src.tar.xz 283255312 BLAKE2B 5b46509c46c4fbb10c4b3cee3edf9a1428c4b0f54d8f4d6a042e9776e05242988c933a90654538cf9806c4d1ee1c01ff3ecdcb1711fd7240cacbf5cbeff9a96b SHA512 ebc5f2175fc7ac8b89ee68d3089272ea444cfa9375a13c989c64a267b050c1065eaa124263b440ba6513a4b6ba4c8efbf58f3a78b4d94bd0e658dfab5ca0a8e5 -DIST rustc-1.88.0_beta20250603-src.tar.xz.asc 801 BLAKE2B 426fe3cf64ecbc5564feeb1c2c784b98d4aa71184006b1430c86d1b98f91592e850feefa0f6e91142f1b5c227556041cd32628aed7bacd43dddd252dc111b73f SHA512 ba4336934071fff1d9abe44d50fced7bd2fd1f6a5c116b8d17312d6ec5d143664fb570fba90f6cf417c5220cd9f42b2bb1695d73e915451b1dd2f726a451c7ec +DIST rustc-1.88.0-src.tar.xz 283294344 BLAKE2B fc17efbc8b2e54f2da61384097dcb3b8f595f27f7853f56cef034913f6b46a718113af0fe66f0e3b0afd184ec506b35f3b74172926cf727ddc061f567d54fa4c SHA512 e6c62af2953f49462b2369e9551b12f2bec114577f90e3e76049636da4279b1e7f4d53bc6896f5d0d4715d90ef6d29dacff529a45690ffac6af62ad64600db40 +DIST rustc-1.88.0-src.tar.xz.asc 801 BLAKE2B 858e987ad1fc49c1e1cbc5ea709f835c60fce907e89205e431c843bfad97dc0ccbcf399fc7d87319b8455561cbc24020bd88cb572cbe932cb8b80a8adec39687 SHA512 64ab398dc602fed3ad7bf232249e80cc0a9831aa90c7eb37658f7dc5b2af04ee391f9633aae7a1d90f743d019cec531318384f71384ecbe4f6169e6e88b7ba0e diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.88.0_beta20250526.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.88.0.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.88.0_beta20250526.ebuild rename to sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.88.0.ebuild diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.88.0_beta20250603.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.88.0_beta20250603.ebuild deleted file mode 100644 index 26c4792d0fb..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.88.0_beta20250603.ebuild +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc -inherit shell-completion verify-sig - -DESCRIPTION="Common files shared between multiple slots of Rust" -HOMEPAGE="https://www.rust-lang.org/" - -if [[ ${PV} = *9999* ]]; then - inherit git-r3 - # In case cargo is not in sync we'll fetch it as a submodule - # Nightly users will probably already have the repo cloned and up-to-date anyway. - EGIT_REPO_URI="https://github.com/rust-lang/rust.git" - EGIT_SUBMODULES=( "-*" "src/tools/cargo" ) -elif [[ ${PV} == *beta* ]]; then - # Identify the snapshot date of the beta release: - # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz - MY_PV=beta - betaver=${PV//*beta} - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" - SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz - verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc - -> rustc-${PV}-src.tar.xz.asc ) - " - S="${WORKDIR}/rustc-${MY_PV}-src" -else - MY_PV=${PV} - SRC_URI="https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz - verify-sig? ( https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz.asc ) - " - S="${WORKDIR}/rustc-${MY_PV}-src" - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" -fi - -LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" -SLOT="0" - -# Legacy non-slotted versions bash completions will collide. -RDEPEND=" - !dev-lang/rust:stable - !dev-lang/rust-bin:stable -" -BDEPEND="verify-sig? ( sec-keys/openpgp-keys-rust )" - -src_unpack() { - if [[ ${PV} == *9999* ]]; then - git-r3_src_unpack - else - if use verify-sig ; then - verify-sig_verify_detached "${DISTDIR}"/rustc-${PV}-src.tar.xz "${DISTDIR}"/rustc-${PV}-src.tar.xz.asc - fi - - # Avoid unpacking the whole tarball which would need check-reqs - tar -xf "${DISTDIR}"/rustc-${PV}-src.tar.xz \ - "rustc-${MY_PV}-src/src/tools/cargo/src/etc/"{_cargo,cargo.bashcomp.sh} || die - fi -} - -src_configure() { - : -} - -src_compile() { - : -} - -src_install() { - newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo - dozshcomp src/tools/cargo/src/etc/_cargo -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/Manifest b/sdk_container/src/third_party/portage-stable/dev-lang/rust/Manifest index 62016751082..0e8f57d6865 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 @@ -14,8 +14,7 @@ DIST rust-patches-1.85.0-r2.tar.bz2 4462 BLAKE2B 61cfde8688fecab1a5c3c80f29b37b6 DIST rust-patches-1.85.1-r1.tar.bz2 4473 BLAKE2B fad2fe3222e2625b5cbc60ea1fb805080ce70f751c930c0e3bde9cf043059e1fc3ba4d8e618166fe99a7fcf12d5cccb684c05d4c2542a89c9794869204cbcb09 SHA512 edf680a1d3a29ae5d8140031dc8b232b747d08494db2f3393ccc286d9197139583bcaf536d5125b8c896a610c075115b9a16a6e6f3f6b5da60e58433f000dba6 DIST rust-patches-1.86.0-r2.tar.bz2 5980 BLAKE2B 179d6acc8c7006eac4d00e073ec1f5496756ef51d465bc098daf1cfe650f469f4341893c72a65e21d84ecb3ccaeb46f5204ef517ae942482d835f89c0a934391 SHA512 31e902661d5ee2da82858910551393890583d9702303fed5652122c852e9384fb88a42eddd0b968558865e16b5bd4ac2a13a35bd01ec3f8c3adbb673bc465596 DIST rust-patches-1.87.0-r1.tar.bz2 4635 BLAKE2B d813ec4a602d3bb879927a44a0b9f752aac255e31dfd13c56ab71b3fae7ce46a742c1d2e7494a7e17728f1edb2327ddd6ad6ebabc0c47d66326b766bbd323fbd SHA512 596ffe744a5849b443f077bbd4edbcbb240b9ac51c9d53e0e436e46d7c93a6734477d22eba4a066a0cf474503a6357a72dfa124e594f645be6f50d9bd25bdb10 -DIST rust-patches-1.88.0_beta20250526.tar.bz2 4073 BLAKE2B 4ae2fd9d87116ee6f779e60ffcbed16ef778fd4e87d4f6f8e2588348b7d0aa28de3627f8c2d43cef540b2422278d4018618c6f0da6936be03de68aba3420f5a4 SHA512 8f775901aff2c0da66c01e20c983ca965eddf38cd106d055b6e480e9ca73418abc416fe28215d4f700eb8cce52a90808c0513d23d495977ac19a3b5d82e109ff -DIST rust-patches-1.88.0_beta20250603.tar.bz2 4080 BLAKE2B 13e7ae1de79d91a2b7a6ee1368141ec0c9676a507c2a88b7dd1070e785482fe444f0e885055b9900d68ecab41f18ed1fd99c24a690e95219d387ac141c958e23 SHA512 a9929d66e583fcc21423008f5b6c0b7953715685f526c632433d4b25539810a422f8ca6f9a334664f9ad80f09a674a38e818d96cd079f86fb38948f7ae7ba56b +DIST rust-patches-1.88.0.tar.bz2 4062 BLAKE2B 64168ffa608f2edf2e0b3d079152c3b5dd59d0cea29078894f286bf91488e2e7769c55ede2d43769368d2147b46699d1bf981190d6800dc3d41c736289122eaf SHA512 b565acfb4d1146e52b1fb66b4a242927407cc34f1b38c2a100135cbbde24c8374af1997bc22069cca25f33cc8d747e56391f3d98a2d4e13dc0abcec0d6f88b0b 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 @@ -48,7 +47,5 @@ DIST rustc-1.86.0-src.tar.xz 275696736 BLAKE2B 9f33a710a3e567d92f56091920643f5ef DIST rustc-1.86.0-src.tar.xz.asc 801 BLAKE2B 3e10a3894c7eee68d37bc5707d797548119f830667e27e652a199d13633199713bd01bd0f41a5f2af3c682561903e36abe27b36ef78d9a1d65bdf485527d2c15 SHA512 0b74dab9ee56d0a08e26e9cd40f722e4d99de63ac678f969f0c54d50737074fb28e170db5a36ce2627ec332e5ce3bb8a92167aefbccff7c70e4cb057bc0a94ac DIST rustc-1.87.0-src.tar.xz 283604208 BLAKE2B 7ede723121ff8df3908674631ceaec75797d91ccd6f1df4afd7187878adbb8d99c9e8a3b11c6027703b2e8d06785299d93d8649f3eda7f356dd2a6734d99d05b SHA512 2ef08c9be45434401f916d54b3739f52d255f8a3a4ce05a717499250c2333eeaf601f1d18085b878c027c609f44da74d0151f5bfc2c9ae1e01166919a91a1d2b DIST rustc-1.87.0-src.tar.xz.asc 801 BLAKE2B c9740c03baedcd70defba3fd37831692adaf0e984ef6b11d259244330d044fcacf935e6dd76caf126848da0c40f38e5368c60e8aabed5d3c2655a61fdbdc7564 SHA512 ebc13374381839a997c63455b733fd2a7960b4fd497f19c29be948cce8bb59a31ddda5da54ca154c16f7de43dd1bacd6c6bd76f3b6b36c5b43f4cfaf1746b952 -DIST rustc-1.88.0_beta20250526-src.tar.xz 283223628 BLAKE2B 1c21853c0b7edcafd87713823888e04d336fb9c6cd373aa05218ae5d1ddc9c68b18c06dc27d059542ddfe91c0eb04cf523e4b3621b9bbbfad5d2f82e8d1cad1e SHA512 28f64ae8b1e907f7c4044d8a0148286f6e202677417ac3b4f2ce24ee9dba34369ba18d39e443cb982ee5f3b8afd94530580a62b8f5d5473954e976708f002357 -DIST rustc-1.88.0_beta20250526-src.tar.xz.asc 801 BLAKE2B a412d72e4e0f273f03f3fee41abe1aeda03f77339891469e994f3a6bde0cd3836a1da087d908e732e90cd3285743a4a3c728c718ad1dda5daf7cca9de3be2c52 SHA512 45f208555f8b2fd3b21ac4cdc8fd7a110dc53fedbbe8d11542f105c5c8657a628309c8ff4520eb2c740cf3e784bfea0f21832b71b19a356b1b99fc7d0f04f607 -DIST rustc-1.88.0_beta20250603-src.tar.xz 283255312 BLAKE2B 5b46509c46c4fbb10c4b3cee3edf9a1428c4b0f54d8f4d6a042e9776e05242988c933a90654538cf9806c4d1ee1c01ff3ecdcb1711fd7240cacbf5cbeff9a96b SHA512 ebc5f2175fc7ac8b89ee68d3089272ea444cfa9375a13c989c64a267b050c1065eaa124263b440ba6513a4b6ba4c8efbf58f3a78b4d94bd0e658dfab5ca0a8e5 -DIST rustc-1.88.0_beta20250603-src.tar.xz.asc 801 BLAKE2B 426fe3cf64ecbc5564feeb1c2c784b98d4aa71184006b1430c86d1b98f91592e850feefa0f6e91142f1b5c227556041cd32628aed7bacd43dddd252dc111b73f SHA512 ba4336934071fff1d9abe44d50fced7bd2fd1f6a5c116b8d17312d6ec5d143664fb570fba90f6cf417c5220cd9f42b2bb1695d73e915451b1dd2f726a451c7ec +DIST rustc-1.88.0-src.tar.xz 283294344 BLAKE2B fc17efbc8b2e54f2da61384097dcb3b8f595f27f7853f56cef034913f6b46a718113af0fe66f0e3b0afd184ec506b35f3b74172926cf727ddc061f567d54fa4c SHA512 e6c62af2953f49462b2369e9551b12f2bec114577f90e3e76049636da4279b1e7f4d53bc6896f5d0d4715d90ef6d29dacff529a45690ffac6af62ad64600db40 +DIST rustc-1.88.0-src.tar.xz.asc 801 BLAKE2B 858e987ad1fc49c1e1cbc5ea709f835c60fce907e89205e431c843bfad97dc0ccbcf399fc7d87319b8455561cbc24020bd88cb572cbe932cb8b80a8adec39687 SHA512 64ab398dc602fed3ad7bf232249e80cc0a9831aa90c7eb37658f7dc5b2af04ee391f9633aae7a1d90f743d019cec531318384f71384ecbe4f6169e6e88b7ba0e diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.88.0_beta20250526.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.88.0.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.88.0_beta20250526.ebuild rename to sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.88.0.ebuild diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.88.0_beta20250603.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.88.0_beta20250603.ebuild deleted file mode 100644 index acd1b3fdb8d..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.88.0_beta20250603.ebuild +++ /dev/null @@ -1,835 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( 20 ) -PYTHON_COMPAT=( python3_{11..14} ) - -RUST_PATCH_VER=${PVR} - -RUST_MAX_VER=${PV%%_*} -if [[ ${PV} == *9999* ]]; then - RUST_MIN_VER="1.88.0" # Update this as new `beta` releases come out. -elif [[ ${PV} == *beta* ]]; then - RUST_MAX_VER="$(ver_cut 1).$(ver_cut 2).0" - RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" -else - RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" -fi - -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ - multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig - -if [[ ${PV} = *9999* ]]; then - inherit git-r3 -elif [[ ${PV} == *beta* ]]; then - # Identify the snapshot date of the beta release: - # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz - betaver=${PV//*beta} - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" - MY_P="rustc-beta" - SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz - https://gitweb.gentoo.org/proj/rust-patches.git/snapshot/rust-patches-${RUST_PATCH_VER}.tar.bz2 - verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc - -> rustc-${PV}-src.tar.xz.asc ) - " - S="${WORKDIR}/${MY_P}-src" -else - MY_P="rustc-${PV}" - SRC_URI="https://static.rust-lang.org/dist/${MY_P}-src.tar.xz - https://gitweb.gentoo.org/proj/rust-patches.git/snapshot/rust-patches-${RUST_PATCH_VER}.tar.bz2 - verify-sig? ( https://static.rust-lang.org/dist/${MY_P}-src.tar.xz.asc ) - " - S="${WORKDIR}/${MY_P}-src" - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" -fi - -DESCRIPTION="Systems programming language originally developed by Mozilla" -HOMEPAGE="https://www.rust-lang.org/" - -# keep in sync with llvm ebuild of the same version as bundled one. -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai - LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE - WebAssembly X86 XCore Xtensa ) -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) -LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} - -# https://github.com/rust-lang/llvm-project/blob/rustc-1.84.0/llvm/CMakeLists.txt -_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) -declare -A ALL_RUST_EXPERIMENTAL_TARGETS -for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do - ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 -done - -LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" -SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable - -IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto rustfmt rust-analyzer rust-src +system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" - -if [[ ${PV} = *9999* ]]; then - # These USE flags require nightly rust - IUSE+=" miri" -fi - -LLVM_DEPEND=() -# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation -for _x in "${ALL_LLVM_TARGETS[@]}"; do - LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) - if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then - ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 - fi -done -LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) -LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) - -# dev-libs/oniguruma is used for documentation -BDEPEND="${PYTHON_DEPS} - app-eselect/eselect-rust - dev-libs/oniguruma - || ( - >=sys-devel/gcc-4.7[cxx] - >=llvm-core/clang-3.5 - ) - lto? ( system-llvm? ( - || ( - $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') - sys-devel/mold - ) - ) ) - !system-llvm? ( - >=dev-build/cmake-3.13.4 - app-alternatives/ninja - ) - test? ( dev-debug/gdb ) - verify-sig? ( sec-keys/openpgp-keys-rust ) -" - -DEPEND=" - >=app-arch/xz-utils-5.2 - net-misc/curl:=[http2,ssl] - sys-libs/zlib:= - dev-libs/openssl:0= - system-llvm? ( - ${LLVM_DEPEND[*]} - llvm-libunwind? ( llvm-runtimes/libunwind:= ) - ) - !system-llvm? ( - !llvm-libunwind? ( - elibc_musl? ( sys-libs/libunwind:= ) - ) - ) -" - -RDEPEND="${DEPEND} - app-eselect/eselect-rust - dev-lang/rust-common - sys-apps/lsb-release - !dev-lang/rust:stable - !dev-lang/rust-bin:stable -" - -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) - rust-analyzer? ( rust-src ) - test? ( ${ALL_LLVM_TARGETS[*]} ) - wasm? ( llvm_targets_WebAssembly ) - x86? ( cpu_flags_x86_sse2 ) -" - -# we don't use cmake.eclass, but can get a warning -CMAKE_WARN_UNUSED_CLI=no - -QA_FLAGS_IGNORED=" - usr/lib/${PN}/${SLOT}/bin/.* - usr/lib/${PN}/${SLOT}/libexec/.* - usr/lib/${PN}/${SLOT}/lib/lib.*.so - usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/.* - usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so -" - -QA_SONAME=" - usr/lib/${PN}/${SLOT}/lib/lib.*.so.* - usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so -" - -QA_PRESTRIPPED=" - usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-llvm-dwp - usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/self-contained/crtn.o -" - -# An rmeta file is custom binary format that contains the metadata for the crate. -# rmeta files do not support linking, since they do not contain compiled object files. -# so we can safely silence the warning for this QA check. -QA_EXECSTACK="usr/lib/${PN}/${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta" - -# causes double bootstrap -RESTRICT="test" - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc - -clear_vendor_checksums() { - sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die -} - -toml_usex() { - usex "${1}" true false -} - -pre_build_checks() { - local M=9216 - # multiply requirements by 1.3 if we are doing x86-multilib - if use amd64; then - M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) - fi - M=$(( $(usex clippy 128 0) + ${M} )) - if [[ ${PV} == *9999* ]]; then - M=$(( $(usex miri 128 0) + ${M} )) - fi - M=$(( $(usex rustfmt 256 0) + ${M} )) - # add 2G if we compile llvm and 256M per llvm_target - if ! use system-llvm; then - M=$(( 2048 + ${M} )) - local ltarget - for ltarget in ${ALL_LLVM_TARGETS[@]}; do - M=$(( $(usex ${ltarget} 256 0) + ${M} )) - done - fi - M=$(( $(usex wasm 256 0) + ${M} )) - M=$(( $(usex debug 2 1) * ${M} )) - eshopts_push -s extglob - if is-flagq '-g?(gdb)?([1-9])'; then - M=$(( 15 * ${M} / 10 )) - fi - eshopts_pop - M=$(( $(usex doc 256 0) + ${M} )) - CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} -} - -llvm_check_deps() { - has_version -r "llvm-core/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]" -} - -# Is LLVM being linked against libc++? -is_libcxx_linked() { - local code='#include -#if defined(_LIBCPP_VERSION) - HAVE_LIBCXX -#endif -' - local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1 - [[ ${out} == *HAVE_LIBCXX* ]] -} - -pkg_pretend() { - pre_build_checks -} - -pkg_setup() { - pre_build_checks - python-any-r1_pkg_setup - - export LIBGIT2_NO_PKG_CONFIG=1 #749381 - if tc-is-cross-compiler; then - use system-llvm && die "USE=system-llvm not allowed when cross-compiling" - local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")" - use "llvm_targets_${cross_llvm_target}" || \ - die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling" - fi - - rust_pkg_setup - - if use system-llvm; then - llvm-r1_pkg_setup - - local llvm_config="$(get_llvm_prefix)/bin/llvm-config" - export LLVM_LINK_SHARED=1 - export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)" - fi -} - -rust_live_get_sources() { - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/rust-patches.git - " - EGIT_CHECKOUT_DIR="${WORKDIR}/rust-patches-${RUST_PATCH_VER}" - git-r3_src_unpack - - EGIT_REPO_URI=" - https://github.com/rust-lang/rust.git - " - EGIT_SUBMODULES=( - "*" - "-src/gcc" - ) - S="${WORKDIR}/rust" - EGIT_CHECKOUT_DIR="${S}" - git-r3_src_unpack -} - -src_unpack() { - if [[ ${PV} == *9999* ]] ; then - rust_live_get_sources - - # Vendor dependencies - mkdir "${S}/.cargo" || die # The vendor script has a check for .cargo/config{,.toml} - touch "${S}/.cargo/bootstrap.toml" || die - local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" - # Configure vendor to use the portage-provided toolchain. This prevents it from - # attempting to fetch a `beta` toolchain from the internet. - cat <<- _EOF_ > "${T}/vendor-bootstrap.toml" - # Suppresses a warning about tracking changes which we don't care about. - change-id = "ignore" - [build] - build = "$(rust_abi "${CBUILD}")" - host = ["$(rust_abi "${CHOST}")"] - target = ["$(rust_abi "${CHOST}")"] - cargo = "${rust_stage0_root}/bin/cargo" - rustc = "${rust_stage0_root}/bin/rustc" - rustfmt = "${rust_stage0_root}/bin/rustfmt" - _EOF_ - # We're using git sources so we need to run the Vendor script - # to ensure that all dependencies are present and up-to-date - mkdir "${S}/vendor" || die - # This also compiles the 'build helper', there's no way to avoid this. - ${EPYTHON} "${S}"/x.py vendor -v --config="${T}"/vendor-bootstrap.toml -j$(makeopts_jobs) || - die "Failed to vendor dependencies" - # TODO: This has to be generated somehow, this is from a 1.84.x tarball I had lying around. - cat <<- _EOF_ > "${S}/.cargo/config.toml" - [source.crates-io] - replace-with = "vendored-sources" - - [source."git+https://github.com/rust-lang/team"] - git = "https://github.com/rust-lang/team" - replace-with = "vendored-sources" - - [source.vendored-sources] - directory = "vendor" - _EOF_ - elif use verify-sig ; then - # Patch tarballs are not signed (but we trust Gentoo infra) - verify-sig_verify_detached "${DISTDIR}"/rustc-${PV}-src.tar.xz{,.asc} - default - else - default - fi -} - -src_prepare() { - if [[ ${PV} = *9999* ]]; then - # We need to update / generate lockfiles for the workspace - ${CARGO} generate-lockfile --offline || die "Failed to generate lockfiles" - fi - - PATCHES=( - "${WORKDIR}/rust-patches-${RUST_PATCH_VER}/" - ) - - if use lto && tc-is-clang && ! tc-ld-is-lld && ! tc-ld-is-mold; then - export RUSTFLAGS+=" -C link-arg=-fuse-ld=lld" - fi - - default -} - -src_configure() { - if tc-is-cross-compiler; then - export PKG_CONFIG_ALLOW_CROSS=1 - export PKG_CONFIG_PATH="${ESYSROOT}/usr/$(get_libdir)/pkgconfig" - export OPENSSL_INCLUDE_DIR="${ESYSROOT}/usr/include" - export OPENSSL_LIB_DIR="${ESYSROOT}/usr/$(get_libdir)" - fi - - # Avoid bundled copies of libraries - export RUSTONIG_SYSTEM_LIBONIG=1 - # Need to check if these can be optional - #export LIBSQLITE3_SYS_USE_PKG_CONFIG=1 - #export LIBSSH2_SYS_USE_PKG_CONFIG=1 - - filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 - - local rust_target="" rust_targets="" arch_cflags - - # Collect rust target names to compile standard libs for all ABIs. - for v in $(multilib_get_enabled_abi_pairs); do - rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" - done - if use wasm; then - rust_targets+=",\"wasm32-unknown-unknown\"" - if use system-llvm; then - # un-hardcode rust-lld linker for this target - # https://bugs.gentoo.org/715348 - sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die - fi - fi - rust_targets="${rust_targets#,}" - - # cargo and rustdoc are mandatory and should always be included - local tools='"cargo","rustdoc"' - use clippy && tools+=',"clippy"' - use rustfmt && tools+=',"rustfmt"' - use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' - use rust-src && tools+=',"src"' - - if [[ ${PV} == *9999* ]]; then - use miri && tools+=',"miri"' - fi - - local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" - # in case of prefix it will be already prefixed, as --print sysroot returns full path - [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" - - rust_target="$(rust_abi)" - rust_build="$(rust_abi "${CBUILD}")" - rust_host="$(rust_abi "${CHOST}")" - - RUST_EXPERIMENTAL_TARGETS=() - for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do - if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then - RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) - fi - done - RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} - - local cm_btype="$(usex debug DEBUG RELEASE)" - local build_channel - local build_miri="false" - case "${PV}" in - *9999*) - build_channel="nightly" - ;; - *beta*) - build_channel="beta" - ;; - *) - build_channel="stable" - ;; - esac - cat <<- _EOF_ > "${S}"/bootstrap.toml - # Suppresses a warning about tracking changes which we don't care about. - change-id = "ignore" - # https://github.com/rust-lang/rust/issues/135358 (bug #947897) - profile = "dist" - [llvm] - download-ci-llvm = false - optimize = $(toml_usex !debug) - release-debuginfo = $(toml_usex debug) - assertions = $(toml_usex debug) - ninja = true - targets = "${LLVM_TARGETS// /;}" - experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" - link-shared = $(toml_usex system-llvm) - $(if is_libcxx_linked; then - # https://bugs.gentoo.org/732632 - echo "use-libcxx = true" - echo "static-libstdcpp = false" - fi) - $(case "${rust_target}" in - i586-*-linux-*) - # https://github.com/rust-lang/rust/issues/93059 - echo 'cflags = "-fcf-protection=none"' - echo 'cxxflags = "-fcf-protection=none"' - echo 'ldflags = "-fcf-protection=none"' - ;; - *) - ;; - esac) - enable-warnings = false - [llvm.build-config] - CMAKE_VERBOSE_MAKEFILE = "ON" - $(if ! tc-is-cross-compiler; then - # When cross-compiling, LLVM is compiled twice, once for host and - # once for target. Unfortunately, this build configuration applies - # to both, which means any flags applicable to one target but not - # the other will break. Conditionally disable respecting user - # flags when cross-compiling. - echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\"" - echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\"" - echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" - echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" - echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" - echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\"" - fi) - [build] - build-stage = 2 - test-stage = 2 - build = "${rust_build}" - host = ["${rust_host}"] - target = [${rust_targets}] - cargo = "${rust_stage0_root}/bin/cargo" - rustc = "${rust_stage0_root}/bin/rustc" - rustfmt = "${rust_stage0_root}/bin/rustfmt" - 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}" - description = "gentoo" - rpath = true - verbose-tests = true - optimize-tests = $(toml_usex !debug) - codegen-tests = true - omit-git-hash = false - dist-src = false - remap-debuginfo = true - lld = $(usex system-llvm false $(toml_usex wasm)) - $(if use lto && tc-is-clang && ! tc-ld-is-mold; then - echo "use-lld = true" - fi) - # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it - # https://github.com/rust-lang/rust/issues/74976 - # https://github.com/rust-lang/rust/issues/76526 - deny-warnings = $(usex wasm $(usex doc false true) true) - backtrace-on-ice = true - jemalloc = false - # See https://github.com/rust-lang/rust/issues/121124 - lto = "$(usex lto thin off)" - [dist] - src-tarball = false - compression-formats = ["xz"] - compression-profile = "balanced" - _EOF_ - - for v in $(multilib_get_enabled_abi_pairs); do - rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) - arch_cflags="$(get_abi_CFLAGS ${v##*.})" - - export CFLAGS_${rust_target//-/_}="${arch_cflags}" - - cat <<- _EOF_ >> "${S}"/bootstrap.toml - [target.${rust_target}] - ar = "$(tc-getAR)" - cc = "$(tc-getCC)" - cxx = "$(tc-getCXX)" - linker = "$(tc-getCC)" - ranlib = "$(tc-getRANLIB)" - llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)" - _EOF_ - if use system-llvm; then - cat <<- _EOF_ >> "${S}"/bootstrap.toml - llvm-config = "$(get_llvm_prefix)/bin/llvm-config" - _EOF_ - fi - # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; - # but we patch it and set to false here as well - if use elibc_musl; then - cat <<- _EOF_ >> "${S}"/bootstrap.toml - crt-static = false - musl-root = "$($(tc-getCC) -print-sysroot)/usr" - _EOF_ - fi - done - if use wasm; then - wasm_target="wasm32-unknown-unknown" - export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")" - cat <<- _EOF_ >> "${S}"/bootstrap.toml - [target.wasm32-unknown-unknown] - linker = "$(usex system-llvm lld rust-lld)" - # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483 - profiler = false - _EOF_ - fi - - if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below - # experimental cross support - # discussion: https://bugs.gentoo.org/679878 - # TODO: c*flags, clang, system-llvm, cargo.eclass target support - # it would be much better if we could split out stdlib - # complilation to separate ebuild and abuse CATEGORY to - # just install to /usr/lib/rustlib/ - - # extra targets defined as a bash array - # spec format: :: - # best place would be /etc/portage/env/dev-lang/rust - # Example: - # RUST_CROSS_TARGETS=( - # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu" - # ) - # no extra hand holding is done, no target transformations, all - # values are passed as-is with just basic checks, so it's up to user to supply correct values - # valid rust targets can be obtained with - # rustc --print target-list - # matching cross toolchain has to be installed - # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one) - # only gcc toolchains installed with crossdev are checked for now. - - # BUG: we can't pass host flags to cross compiler, so just filter for now - # BUG: this should be more fine-grained. - filter-flags '-mcpu=*' '-march=*' '-mtune=*' - - local cross_target_spec - for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do - # extracts first element form :: - local cross_llvm_target="${cross_target_spec%%:*}" - # extracts toolchain triples, : - local cross_triples="${cross_target_spec#*:}" - # extracts first element after before : separator - local cross_rust_target="${cross_triples%%:*}" - # extracts last element after : separator - local cross_toolchain="${cross_triples##*:}" - use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled" - command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain" - - cat <<- _EOF_ >> "${S}"/bootstrap.toml - [target.${cross_rust_target}] - ar = "${cross_toolchain}-ar" - cc = "${cross_toolchain}-gcc" - cxx = "${cross_toolchain}-g++" - linker = "${cross_toolchain}-gcc" - ranlib = "${cross_toolchain}-ranlib" - _EOF_ - if use system-llvm; then - cat <<- _EOF_ >> "${S}"/bootstrap.toml - llvm-config = "$(get_llvm_prefix)/bin/llvm-config" - _EOF_ - fi - if [[ "${cross_toolchain}" == *-musl* ]]; then - cat <<- _EOF_ >> "${S}"/bootstrap.toml - musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr" - _EOF_ - fi - - # append cross target to "normal" target list - # example 'target = ["powerpc64le-unknown-linux-gnu"]' - # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]' - - rust_targets="${rust_targets},\"${cross_rust_target}\"" - sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" bootstrap.toml || die - - ewarn - ewarn "Enabled ${cross_rust_target} rust target" - ewarn "Using ${cross_toolchain} cross toolchain" - ewarn - if ! has_version -b 'sys-devel/binutils[multitarget]' ; then - ewarn "'sys-devel/binutils[multitarget]' is not installed" - ewarn "'strip' will be unable to strip cross libraries" - ewarn "cross targets will be installed with full debug information" - ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files" - ewarn - ewarn "Alternatively llvm-strip can be used, it supports stripping any target" - ewarn "define STRIP=\"llvm-strip\" to use it (experimental)" - ewarn - fi - done - fi # I_KNOW_WHAT_I_AM_DOING_CROSS - - einfo "Rust configured with the following flags:" - echo - echo RUSTFLAGS="\"${RUSTFLAGS}\"" - echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\"" - echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\"" - echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\"" - env | grep "CARGO_TARGET_.*_RUSTFLAGS=" - env | grep "CFLAGS_.*" - echo - einfo "bootstrap.toml contents:" - cat "${S}"/bootstrap.toml || die - echo -} - -src_compile() { - # -v will show invocations, -vv "very verbose" is overkill, -vvv "very very verbose" is insane - RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -v --config="${S}"/bootstrap.toml -j$(makeopts_jobs) || die -} - -src_test() { - # https://rustc-dev-guide.rust-lang.org/tests/intro.html - - # those are basic and codegen tests. - local tests=( - codegen - codegen-units - compile-fail - incremental - mir-opt - pretty - run-make - ) - - # fails if llvm is not built with ALL targets. - # and known to fail with system llvm sometimes. - use system-llvm || tests+=( assembly ) - - # fragile/expensive/less important tests - # or tests that require extra builds - # TODO: instead of skipping, just make some nonfatal. - if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then - tests+=( - rustdoc - rustdoc-js - rustdoc-js-std - rustdoc-ui - run-make-fulldeps - ui - ui-fulldeps - ) - fi - - local i failed=() - einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}" - for i in "${tests[@]}"; do - local t="src/test/${i}" - einfo "rust_src_test: running ${t}" - if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/bootstrap.toml \ - -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}" - then - failed+=( "${t}" ) - eerror "rust_src_test: ${t} failed" - fi - done - - if [[ ${#failed[@]} -ne 0 ]]; then - eerror "rust_src_test: failure summary: ${failed[@]}" - die "aborting due to test failures" - fi -} - -src_install() { - DESTDIR="${D}" "${EPYTHON}" ./x.py install -v --config="${S}"/bootstrap.toml -j$(makeopts_jobs) || die - - docompress /usr/lib/${PN}/${SLOT}/share/man/ - - # bug #689562, #689160 - rm -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d/cargo" || die - rmdir -v "${ED}/usr/lib/${PN}/${SLOT}"/etc{/bash_completion.d,} || die - - local symlinks=( - cargo - rustc - rustdoc - rust-gdb - rust-gdbgui - rust-lldb - ) - - use clippy && symlinks+=( clippy-driver cargo-clippy ) - if [[ ${PV} = *9999* ]]; then - use miri && symlinks+=( miri cargo-miri ) - fi - use rustfmt && symlinks+=( rustfmt cargo-fmt ) - use rust-analyzer && symlinks+=( rust-analyzer ) - - einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}" - local i - for i in "${symlinks[@]}"; do - # we need realpath on /usr/bin/* symlink return version-appended binary path. - # so /usr/bin/rustc should point to /usr/lib/rust//bin/rustc- - # need to fix eselect-rust to remove this hack. - local ver_i="${i}-${PV%%_*}" - if [[ -f "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" ]]; then - einfo "Installing ${i} symlink" - ln -v "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" "${ED}/usr/lib/${PN}/${SLOT}/bin/${ver_i}" || die - else - ewarn "${i} symlink requested, but source file not found" - ewarn "please report this" - fi - dosym "../lib/${PN}/${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" - done - - # symlinks to switch components to active rust in eselect - dosym "${SLOT}/lib" "/usr/lib/${PN}/lib-${SLOT}" - use rust-analyzer && dosym "${SLOT}/libexec" "/usr/lib/${PN}/libexec-${SLOT}" - dosym "${SLOT}/share/man" "/usr/lib/${PN}/man-${SLOT}" - dosym "rust/${SLOT}/lib/rustlib" "/usr/lib/rustlib-${SLOT}" - dosym "../../lib/${PN}/${SLOT}/share/doc/rust" "/usr/share/doc/${P}" - - newenvd - "50${P}" <<-_EOF_ - MANPATH="${EPREFIX}/usr/lib/rust/man-${SLOT}" - _EOF_ - - rm -rf "${ED}/usr/lib/${PN}/${SLOT}"/*.old || die - rm -rf "${ED}/usr/lib/${PN}/${SLOT}/bin"/*.old || die - rm -rf "${ED}/usr/lib/${PN}/${SLOT}/doc"/*.old || die - - # note: eselect-rust adds EROOT to all paths below - cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" - /usr/bin/cargo - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-gdbgui - /usr/bin/rust-lldb - /usr/lib/rustlib - /usr/lib/rust/lib - /usr/lib/rust/man - /usr/share/doc/rust - _EOF_ - - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if [[ ${SLOT} == *9999* ]] && use miri; then - echo /usr/bin/miri >> "${T}/provider-${P}" - echo /usr/bin/cargo-miri >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - if use rust-analyzer; then - echo /usr/lib/rust/libexec >> "${T}/provider-${P}" - echo /usr/bin/rust-analyzer >> "${T}/provider-${P}" - fi - - insinto /etc/env.d/rust - doins "${T}/provider-${PN}-${SLOT}" - - if use dist; then - "${EPYTHON}" ./x.py dist -v --config="${S}"/bootstrap.toml -j$(makeopts_jobs) || die - insinto "/usr/lib/${PN}/${SLOT}/dist" - doins -r "${S}/build/dist/." - fi -} - -pkg_postinst() { - - eselect rust update - - if has_version dev-debug/gdb || has_version llvm-core/lldb; then - elog "Rust installs helper scripts for calling GDB and LLDB," - elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." - fi - - if has_version app-editors/emacs; then - optfeature "emacs support for rust" app-emacs/rust-mode - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - optfeature "vim support for rust" app-vim/rust-vim - fi -} - -pkg_postrm() { - eselect rust cleanup -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/cowsql/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/cowsql/Manifest index 47eaa5c54fa..4f7fbaeb9d4 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/cowsql/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/cowsql/Manifest @@ -1,2 +1 @@ -DIST cowsql-1.15.7.tar.gz 364592 BLAKE2B d3cd4e399d029c63743cee081cd32c19fe364f4dd093c40f62162a2387a9a0da956b19f2f75dc9e556e18c8d957edcbee5c9fe449e3ba9961eb556cdc981a6e5 SHA512 d01fe084d911f13be4d21997f3ec4ba1b11d15198dbad404d55962abd4924dcc95d48eb7d8d94d3f65c512194d25acf761954994c5ffece78a27eff438441fda DIST cowsql-1.15.8.tar.gz 364600 BLAKE2B 14fcc1a77351e433962aa4ccde671ee11839f2a69606d5b130f5fe168012ee39dba254f23fb338e246f5215bb15c1e14958818d71008bb03afac7fea8733efec SHA512 3946433897efb190edec4d6900d7bdc40d3b25c07d732526b7d83fe2c38269a5525c6e9d352f017709ecf2a9e6ea908462b1b31fe31b4d02699a89834f3f3ce3 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/cowsql/cowsql-1.15.7-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/cowsql/cowsql-1.15.7-r1.ebuild deleted file mode 100644 index 60060425c85..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/cowsql/cowsql-1.15.7-r1.ebuild +++ /dev/null @@ -1,53 +0,0 @@ -# Copyright 2020-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools - -DESCRIPTION="Embeddable, replicated and fault tolerant SQL engine (fork of dqlite)" -HOMEPAGE="https://cowsql.dev/ https://github.com/cowsql/cowsql" -SRC_URI="https://github.com/cowsql/cowsql/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="LGPL-3-with-linking-exception" -SLOT="0" -KEYWORDS="amd64 ~arm64 ~x86" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND="dev-db/sqlite:3 - =dev-libs/libuv-1.50*:= - >=dev-libs/raft-0.18.1:=" -DEPEND="${RDEPEND} - test? ( dev-libs/raft[lz4,test] )" -BDEPEND="virtual/pkgconfig" - -PATCHES=( "${FILESDIR}"/dqlite-1.12.0-disable-werror.patch ) - -src_prepare() { - default - eautoreconf -} - -src_configure() { - local myeconfargs=( - --disable-backtrace - --disable-debug - --disable-sanitize - --disable-static - - # Will build a bundled libsqlite3.so. - --enable-build-sqlite=no - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - default -} - -src_install() { - default - find "${ED}" -name '*.la' -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/cowsql/cowsql-1.15.7-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/cowsql/cowsql-1.15.7-r2.ebuild deleted file mode 100644 index 577cc7b107a..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/cowsql/cowsql-1.15.7-r2.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 2020-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools - -DESCRIPTION="Embeddable, replicated and fault tolerant SQL engine (fork of dqlite)" -HOMEPAGE="https://cowsql.dev/ https://github.com/cowsql/cowsql" -SRC_URI="https://github.com/cowsql/cowsql/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="LGPL-3-with-linking-exception" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND="dev-db/sqlite:3 - dev-libs/libuv:= - >=dev-libs/raft-0.18.1:=" -DEPEND="${RDEPEND} - test? ( dev-libs/raft[lz4,test] )" -BDEPEND="virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}"/dqlite-1.12.0-disable-werror.patch - "${FILESDIR}"/0001-src-lib-serialize.h-don-t-define-double-as-float_t.patch -) - -src_prepare() { - default - eautoreconf -} - -src_configure() { - local myeconfargs=( - --disable-backtrace - --disable-debug - --disable-sanitize - --disable-static - - # Will build a bundled libsqlite3.so. - --enable-build-sqlite=no - ) - - econf "${myeconfargs[@]}" -} - -src_test() { - default -} - -src_install() { - default - find "${ED}" -name '*.la' -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.193.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.193.ebuild index 1ad8bec40d5..bc0984e3383 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.193.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.193.ebuild @@ -21,7 +21,7 @@ else SRC_URI="https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2" SRC_URI+=" verify-sig? ( https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2.sig )" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-elfutils-20240301 )" fi diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.3.ebuild index 0d8b582cdb8..99992e2b378 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.3.ebuild @@ -22,7 +22,7 @@ INTROSPECTION_BUILD_DIR="${WORKDIR}/${INTROSPECTION_P}-build" LICENSE="LGPL-2.1+" SLOT="2" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="dbus debug +elf doc +introspection +mime selinux static-libs sysprof systemtap test utils xattr" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/gobject-introspection-common/gobject-introspection-common-1.84.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/gobject-introspection-common/gobject-introspection-common-1.84.0.ebuild index ac499b93cec..5257f8070c7 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/gobject-introspection-common/gobject-introspection-common-1.84.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/gobject-introspection-common/gobject-introspection-common-1.84.0.ebuild @@ -11,7 +11,7 @@ HOMEPAGE="https://gi.readthedocs.io/" LICENSE="HPND" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" RDEPEND="!<${CATEGORY}/${GNOME_ORG_MODULE}-${PV}" # Use !<${PV} because mixing gobject-introspection with different version of -common can cause issues like: diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.14.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.14.1.ebuild index bba913be160..3ffd0049bf3 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.14.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.14.1.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://github.com/akheron/jansson/releases/download/v${PV}/${P}.tar.bz LICENSE="MIT" SLOT="0/4" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" IUSE="doc static-libs" BDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/json-c/files/0.18.0-cmake4.patch b/sdk_container/src/third_party/portage-stable/dev-libs/json-c/files/0.18.0-cmake4.patch new file mode 100644 index 00000000000..28aa10cf72d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/json-c/files/0.18.0-cmake4.patch @@ -0,0 +1,25 @@ + +From: https://github.com/json-c/json-c/pull/888 +Bug: https://bugs.gentoo.org/958972 + +From 42864e12b0d7af01b1cf989d6da9e9a4477775a1 Mon Sep 17 00:00:00 2001 +From: Rudi Heitbaum +Date: Fri, 28 Mar 2025 23:14:48 +1100 +Subject: [PATCH] Allow build with cmake 4.0.0 + +Update the min version to match parent CMakeLists.txt 3.9...3.12 +--- + apps/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt +index f7c9dec633..ef2271d131 100644 +--- a/apps/CMakeLists.txt ++++ b/apps/CMakeLists.txt +@@ -1,5 +1,5 @@ + +-cmake_minimum_required(VERSION 2.8) # see ../CMakeLists.txt for why 2.8 ++cmake_minimum_required(VERSION 3.9...3.12) + + if(POLICY CMP0075) + cmake_policy(SET CMP0075 NEW) 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 997463b9725..2d6a867e1b6 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 @@ -30,6 +30,8 @@ MULTILIB_WRAPPED_HEADERS=( /usr/include/json-c/config.h ) +PATCHES=( "${FILESDIR}/0.18.0-cmake4.patch" ) + multilib_src_configure() { # Tests use Valgrind automagically otherwise (bug #927027) export USE_VALGRIND=0 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/json-c/json-c-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/json-c/json-c-9999.ebuild index 95c54f504c3..10b5af025f3 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/json-c/json-c-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/json-c/json-c-9999.ebuild @@ -30,6 +30,8 @@ MULTILIB_WRAPPED_HEADERS=( /usr/include/json-c/config.h ) +PATCHES=( "${FILESDIR}/0.18.0-cmake4.patch" ) + multilib_src_configure() { # Tests use Valgrind automagically otherwise (bug #927027) export USE_VALGRIND=0 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libffi/files/libffi-3.4.8-powerpc-closures.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libffi/files/libffi-3.4.8-powerpc-closures.patch new file mode 100644 index 00000000000..00d0e553f8e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libffi/files/libffi-3.4.8-powerpc-closures.patch @@ -0,0 +1,38 @@ +https://github.com/libffi/libffi/issues/900 + +https://github.com/php/php-src/issues/18881 + +From aea22de28ec92a69cab9198de479263fe8b1a637 Mon Sep 17 00:00:00 2001 +From: Peter Bergner +Date: Fri, 18 Apr 2025 10:09:45 -0500 +Subject: [PATCH] powerpc: Fix closures on powerpc64-linux when statically + linking (#900) (#902) + +Closures on powerpc64-linux using static trampolines do not work when +statically linking libffi. The problem is the usage of tramp_globals.text +in libffi assumes it contains the entry point address of the first trampoline. +Powerpc's ffi_tramp_arch code returns &trampoline_code_table which for ABIs +that use function descriptors, ends up returning trampoline_code_table's +function descriptor address instead of its entry point address. Update +the code to always return the entry point address for all ABIs. +--- + src/powerpc/ffi.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/powerpc/ffi.c b/src/powerpc/ffi.c +index 0a9774165..3601cc4ab 100644 +--- a/src/powerpc/ffi.c ++++ b/src/powerpc/ffi.c +@@ -183,6 +183,12 @@ ffi_tramp_arch (size_t *tramp_size, size_t *map_size) + extern void *trampoline_code_table; + *tramp_size = PPC_TRAMP_SIZE; + *map_size = PPC_TRAMP_MAP_SIZE; ++#if defined (_CALL_AIX) || _CALL_ELF == 1 ++ /* The caller wants the entry point address of the trampoline code, ++ not the address of the function descriptor. */ ++ return *(void **)trampoline_code_table; ++#else + return &trampoline_code_table; ++#endif + } + #endif diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libffi/libffi-3.4.8-r3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libffi/libffi-3.4.8-r3.ebuild new file mode 100644 index 00000000000..0384626a0c3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libffi/libffi-3.4.8-r3.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a multilib-minimal preserve-libs + +MY_PV=${PV/_rc/-rc} +MY_P=${PN}-${MY_PV} + +DESCRIPTION="Portable, high level programming interface to various calling conventions" +HOMEPAGE="https://sourceware.org/libffi/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/libffi/libffi" + inherit autotools git-r3 +else + inherit libtool + SRC_URI="https://github.com/libffi/libffi/releases/download/v${MY_PV}/${MY_P}.tar.gz" + + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +S="${WORKDIR}"/${MY_P} + +LICENSE="MIT" +# This is a core package which is depended on by e.g. Python. +# Please use preserve-libs.eclass in pkg_{pre,post}inst to cover users +# with FEATURES="-preserved-libs" or another package manager if SONAME changes. +SLOT="0/8" # SONAME=libffi.so.8 +IUSE="debug +exec-static-trampoline pax-kernel static-libs test" + +RESTRICT="!test? ( test )" +BDEPEND="test? ( dev-util/dejagnu )" + +PATCHES=( + "${FILESDIR}"/${PN}-3.4.8-pa-add-.note.GNU-stack-marker-to-linux.S.patch + "${FILESDIR}"/${PN}-3.4.8-powerpc-closures.patch +) + +src_prepare() { + default + + if [[ ${PV} == 9999 ]] ; then + eautoreconf + else + elibtoolize + fi + + if [[ ${CHOST} == arm64-*-darwin* ]] ; then + # ensure we use aarch64 asm, not x86 on arm64 + sed -i -e 's/aarch64\*-\*-\*/arm64*-*-*|&/' \ + configure configure.host || die + fi +} + +src_configure() { + use static-libs && lto-guarantee-fat + multilib-minimal_src_configure +} + +multilib_src_configure() { + # --includedir= path maintains a few properties: + # 1. have stable name across libffi versions: some packages like + # dev-lang/ghc or kde-frameworks/networkmanager-qt embed + # ${includedir} at build-time. Don't require those to be + # rebuilt unless SONAME changes. bug #695788 + # + # We use /usr/.../${PN} (instead of former /usr/.../${P}). + # + # 2. have ${ABI}-specific location as ffi.h is target-dependent. + # + # We use /usr/$(get_libdir)/... to have ABI identifier. + ECONF_SOURCE="${S}" econf \ + --includedir="${EPREFIX}"/usr/$(get_libdir)/${PN}/include \ + --disable-multi-os-directory \ + --with-pic \ + $(use_enable static-libs static) \ + $(use_enable exec-static-trampoline exec-static-tramp) \ + $(use_enable pax-kernel pax_emutramp) \ + $(use_enable debug) +} + +multilib_src_test() { + emake -Onone check +} + +multilib_src_install_all() { + einstalldocs + find "${ED}" -name "*.la" -delete || die + strip-lto-bytecode +} + +pkg_preinst() { + preserve_old_lib /usr/$(get_libdir)/libffi.so.7 +} + +pkg_postinst() { + preserve_old_lib_notify /usr/$(get_libdir)/libffi.so.7 +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.1.ebuild index 5b9e38f6da0..b199ba6b548 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.1.ebuild @@ -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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="+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/libp11/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/libp11/Manifest index 36c2ea83f9a..df7fe707e79 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libp11/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libp11/Manifest @@ -1,3 +1,3 @@ DIST libp11-0.4.12.tar.gz 516414 BLAKE2B a816749984753a1916dd58860c51b49d316946b59eb3bc839f6a21dcff14de48d7a4937f55fc7ad96a26b914591854d5cf11a1fbac2d5f2f5e04c833973c0e42 SHA512 674cfca2c9eaf162262204c94f9d59d3095dabbc348c1842e758b897e1a5bd4ba08b2d589ec3b2a2d1343a8760eab253e7008dc09ef5b499e2f16385efe5c8cc DIST libp11-0.4.13.tar.gz 531147 BLAKE2B ea31e56966cc22e6a6dad2d4923bd89ad110f537172af1dca912d8449df8a6a118ceca45912e7c3d38979dd3e591a9fb110091fd5474b41d6159d489b7c9ba37 SHA512 7936e5e3e37b424caff2ce95b416e67d6bf082676c5a3efb23651d414eacdbdbc1f5e11b05097b500a9d0ca5a97e628f54dd7d1e5ba2a7b5e3a36b3b7b75b5ed -DIST libp11-0.4.14.tar.gz 572770 BLAKE2B faa1d3ace7c820d8cbc0bc0451a6c2578bc5cffd64d9f60b29cce2a58a2bcf7b26060abca257eafce9397a2504f5779767713426f397882e906928d4762f9e57 SHA512 747400fcc07d5ebd336247e4d0b2e496aa6f3ffb0077a87513dca016494c64af275aa5e6c37bfa0b39d820700e861a2eea440b0fb983f2fb2b19ef47e2653e28 +DIST libp11-0.4.16.tar.gz 561088 BLAKE2B a6fd869ac18aba2dfce5d4c0d135b2e90b337f53300ee0b4042d669c15e4849788a0e2a7b6aa7f463bbeb7ade7a45d79a9dc4ba52e4b2ff7a02fe2ad5f7a0866 SHA512 91248a39b30fc032079441506b49cfe1a8784b2cc4dd795a7633694d9e292dbf1075244366227d3924692d58129eecabae3e62ec006838bb1ac8942a4aed236b diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libp11/libp11-0.4.14.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libp11/libp11-0.4.16.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/dev-libs/libp11/libp11-0.4.14.ebuild rename to sdk_container/src/third_party/portage-stable/dev-libs/libp11/libp11-0.4.16.ebuild diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libtracefs/libtracefs-1.8.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libtracefs/libtracefs-1.8.2.ebuild index c54a5d09c93..2a5f2f44762 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libtracefs/libtracefs-1.8.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libtracefs/libtracefs-1.8.2.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/libunistring-1.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/libunistring-1.2.ebuild index 5a7bef5f887..6abe3b5cff6 100644 --- 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 @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -12,7 +12,7 @@ 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="doc static-libs" QA_CONFIG_IMPL_DECL_SKIP=( diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/libunistring-1.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/libunistring-1.3.ebuild index 4274250915c..923121637c9 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/libunistring-1.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libunistring/libunistring-1.3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -12,7 +12,7 @@ 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="doc static-libs" QA_CONFIG_IMPL_DECL_SKIP=( diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.51.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.51.0.ebuild index 77403add9dd..119f34e05a1 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.51.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.51.0.ebuild @@ -17,7 +17,7 @@ else https://dist.libuv.org/dist/v${PV}/libuv-v${PV}.tar.gz -> ${P}.tar.gz verify-sig? ( https://dist.libuv.org/dist/v${PV}/libuv-v${PV}.tar.gz.sign -> ${P}.tar.gz.sig ) " - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" S="${WORKDIR}/${PN}-v${PV}" fi 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 5db23366b71..5df8ded35ff 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/Manifest @@ -1,6 +1,6 @@ DIST libxml2-2.13.7.tar.xz 2424236 BLAKE2B 464097c4b579f964a42909e26b3c2702d7b40c3029628c8980a1ea7a43867dda3c4bdf38b63557f971b20b125a5fc0ac7031bad5df10b1bc25380e995f7707b4 SHA512 6e69ed38cdf2aaa5df7e26b654a7aadd2d80131619184380bafc6a22811acb6b7286c819175c3b37edb194019a93ba6085852a0281934d6bb36d0b52ce138541 DIST libxml2-2.13.8.tar.xz 2423128 BLAKE2B 9abe12acb2b619f8649dc4472c39d4c59074a83538bf1a534163737bf9e99e6387fec53404392c325102da1e77f53606f2679c47b7136d7f7541a8fcc6bcd995 SHA512 668e556404693f17e074bc31e2caa5e50bf003ee3cd81b61a51ea25e76efd7eff7ec70ff603eed87b9d9e9b2299673e6e8871798264113e660e703b74b58458f -DIST libxml2-2.14.3.tar.xz 2325052 BLAKE2B 25ad281925dee3aa032f9ce5c71bebfdfeb3469351eebdcede01c81978ddc411376f2a13b82d207614857b385ca7d589708c3437ad3effd5bc425d7e6b515cf2 SHA512 0efdd42c5fe0160a91945fdbe3193937ee799965e0ac19bd091e1a56e63a36dfc585bd9afee83af330b7d93914e5bd28cf4914246802565dd758a6edd80b1bf7 +DIST libxml2-2.14.4.tar.xz 2325848 BLAKE2B 6ee7e4f35e6f15124fe1ceb55758236229f87e05344c55e82c419f8e8dba763adbd25746c038d13189dfadc3bb023fd8891251e78e9c9046d42961829d93b885 SHA512 5991223bdd6c84886bba8fb81c4e48bf92c8bc3571262ffa8c7673a10efeebceafc1dee362624417dca146982d030ee8d0ccda41f4c82d3074845f74ef6da5d4 DIST xmlts20130923.tar.gz 641522 BLAKE2B 63a47bc69278ef510cd0b3779aed729e1b309e30efa0015d28ed051cc03f9dfddb447ab57b07b3393e8f47393d15473b0e199c34cb1f5f746b15ddfaa55670be SHA512 d5c4d26b324ed21f4e0641cd7f8b76dbf9de80df8b519982e44d41c960df29fd03618e02e9693b2d11ad06d19c4a965274c95a048ec3b9653eacb919a7f8b733 DIST xsts-2002-01-16.tar.gz 6894439 BLAKE2B 1e9ec63d2c104655e64249e07440a04d862fcbcd4d4e19745d81b34994319b510a531c9d6df1491fae1e90b5d0764f0f1a827251ca8df5d613178b0eab01ef25 SHA512 43300af6d39c1e2221b0ed7318fe14c7464eeb6eb030ed1e22eb29b4ab17f014e2a4c8887c3a46ae5d243e3072da27f00f4e285498ae6f1288177d38d1108288 DIST xsts-2004-01-14.tar.gz 2761085 BLAKE2B 41545995fb3a65d053257c376c07d45ffd1041a433bfbdb46d4dd87a5afb60c18c8629a3d988323f9e7a1d709775b5a7e5930276a7121c0725a22705c0976e36 SHA512 32854388d7e720ad67156baf50bf2bae7bd878ca3e35fd7e44e57cad3f434f69d56bbbedd61509f8a1faf01c9eae74a078df8fe130780b182c05c05cb1c39ebe diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.13.8-CVE-2025-6021.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.13.8-CVE-2025-6021.patch new file mode 100644 index 00000000000..8c5e83e680b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.13.8-CVE-2025-6021.patch @@ -0,0 +1,57 @@ +From ebe46ba82340cea8f030e0c0b3bb89aabad83674 Mon Sep 17 00:00:00 2001 +Message-ID: +From: Nick Wellnhofer +Date: Tue, 27 May 2025 12:53:17 +0200 +Subject: [PATCH] tree: Fix integer overflow in xmlBuildQName + +This issue affects memory safety and might receive a CVE ID later. + +Fixes #926. + +(cherry picked from commit acbbeef9f5dcdcc901c5f3fa14d583ef8cfd22f0) +--- + tree.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/tree.c b/tree.c +index f097cf87..76112e22 100644 +--- a/tree.c ++++ b/tree.c +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + #include + + #ifdef LIBXML_ZLIB_ENABLED +@@ -167,10 +168,10 @@ xmlGetParameterEntityFromDtd(const xmlDtd *dtd, const xmlChar *name) { + xmlChar * + xmlBuildQName(const xmlChar *ncname, const xmlChar *prefix, + xmlChar *memory, int len) { +- int lenn, lenp; ++ size_t lenn, lenp; + xmlChar *ret; + +- if (ncname == NULL) return(NULL); ++ if ((ncname == NULL) || (len < 0)) return(NULL); + if (prefix == NULL) return((xmlChar *) ncname); + + #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION +@@ -181,8 +182,10 @@ xmlBuildQName(const xmlChar *ncname, const xmlChar *prefix, + + lenn = strlen((char *) ncname); + lenp = strlen((char *) prefix); ++ if (lenn >= SIZE_MAX - lenp - 1) ++ return(NULL); + +- if ((memory == NULL) || (len < lenn + lenp + 2)) { ++ if ((memory == NULL) || ((size_t) len < lenn + lenp + 2)) { + ret = (xmlChar *) xmlMallocAtomic(lenn + lenp + 2); + if (ret == NULL) + return(NULL); + +base-commit: 3a1c25f5e7bbf8180690cf5c4c5a9fc1caf55c62 +-- +2.50.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.14.4-cmake.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.14.4-cmake.patch new file mode 100644 index 00000000000..b047fba3d5d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/libxml2-2.14.4-cmake.patch @@ -0,0 +1,66 @@ +https://gitlab.gnome.org/GNOME/libxml2/-/commit/5700d989cc18889e1601c651ad69a41af8b32073 +https://gitlab.gnome.org/GNOME/libxml2/-/commit/d3e33dc214276498e73b61188be02b2863c9670a + +From 5700d989cc18889e1601c651ad69a41af8b32073 Mon Sep 17 00:00:00 2001 +From: Markus Rickert +Date: Wed, 18 Jun 2025 13:48:55 +0200 +Subject: [PATCH] Fix CMake iconv handling after change to private dependency + +--- + CMakeLists.txt | 2 +- + libxml2-config.cmake.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e136f2167..b952d7bfa 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -354,7 +354,7 @@ if(WIN32) + endif() + + if(LIBXML2_WITH_ICONV) +- target_link_libraries(LibXml2 PUBLIC Iconv::Iconv) ++ target_link_libraries(LibXml2 PRIVATE Iconv::Iconv) + if(NOT Iconv_IS_BUILT_IN) + set(ICONV_LIBS "-liconv") + endif() +diff --git a/libxml2-config.cmake.in b/libxml2-config.cmake.in +index e040a759b..3ce7ef43f 100644 +--- a/libxml2-config.cmake.in ++++ b/libxml2-config.cmake.in +@@ -56,7 +56,7 @@ if(NOT LIBXML2_SHARED) + if(LIBXML2_WITH_ICONV) + find_dependency(Iconv) + list(APPEND LIBXML2_LIBRARIES ${Iconv_LIBRARIES}) +- list(APPEND LIBXML2_INTERFACE_LINK_LIBRARIES "Iconv::Iconv") ++ list(APPEND LIBXML2_INTERFACE_LINK_LIBRARIES "\$") + if(NOT Iconv_FOUND) + set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) + set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Iconv dependency was not found") +-- +GitLab + +From d3e33dc214276498e73b61188be02b2863c9670a Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer +Date: Fri, 20 Jun 2025 11:20:34 +0200 +Subject: [PATCH] cmake: Add missing endif() in libxml2-config.cmake.in + +Regressed with 28ccdaf9. +--- + libxml2-config.cmake.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/libxml2-config.cmake.in b/libxml2-config.cmake.in +index 3ce7ef43f..bd971e081 100644 +--- a/libxml2-config.cmake.in ++++ b/libxml2-config.cmake.in +@@ -119,6 +119,7 @@ if(NOT LIBXML2_SHARED) + if(LIBXML2_WITH_HTTP) + list(APPEND LIBXML2_LIBRARIES ws2_32) + list(APPEND LIBXML2_INTERFACE_LINK_LIBRARIES "\$") ++ endif() + endif() + endif() + +-- +GitLab diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.13.8-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.13.8-r1.ebuild new file mode 100644 index 00000000000..bf99e8749a1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.13.8-r1.ebuild @@ -0,0 +1,191 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Note: Please bump in sync with dev-libs/libxslt + +PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_REQ_USE="xml(+)" +inherit autotools python-r1 multilib-minimal + +XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite" +XSTS_NAME_1="xmlschema2002-01-16" +XSTS_NAME_2="xmlschema2004-01-14" +XSTS_TARBALL_1="xsts-2002-01-16.tar.gz" +XSTS_TARBALL_2="xsts-2004-01-14.tar.gz" +XMLCONF_TARBALL="xmlts20130923.tar.gz" + +DESCRIPTION="XML C parser and toolkit" +HOMEPAGE="https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home" +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/libxml2" + inherit git-r3 +else + inherit gnome.org + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +SRC_URI+=" + test? ( + ${XSTS_HOME}/${XSTS_NAME_1}/${XSTS_TARBALL_1} + ${XSTS_HOME}/${XSTS_NAME_2}/${XSTS_TARBALL_2} + https://www.w3.org/XML/Test/${XMLCONF_TARBALL} + ) +" +S="${WORKDIR}/${PN}-${PV%_rc*}" + +LICENSE="MIT" +SLOT="2" +IUSE="examples icu lzma +python readline static-libs test" +RESTRICT="!test? ( test )" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND=" + virtual/libiconv + >=sys-libs/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] + icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] ) + lzma? ( >=app-arch/xz-utils-5.0.5-r1:=[${MULTILIB_USEDEP}] ) + python? ( ${PYTHON_DEPS} ) + readline? ( sys-libs/readline:= ) +" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +if [[ ${PV} == 9999 ]] ; then + BDEPEND+=" dev-build/gtk-doc-am" +fi + +MULTILIB_CHOST_TOOLS=( + /usr/bin/xml2-config +) + +PATCHES=( + "${FILESDIR}"/${PN}-2.12.9-icu-pkgconfig.patch + "${FILESDIR}"/${PN}-2.13.8-CVE-2025-6021.patch +) + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + else + local tarname=${P/_rc/-rc}.tar.xz + + # ${A} isn't used to avoid unpacking of test tarballs into ${WORKDIR}, + # as they are needed as tarballs in ${S}/xstc instead and not unpacked + unpack ${tarname} + + if [[ -n ${PATCHSET_VERSION} ]] ; then + unpack ${PN}-${PATCHSET_VERSION}.tar.xz + fi + fi + + cd "${S}" || die + + if use test ; then + cp "${DISTDIR}/${XSTS_TARBALL_1}" \ + "${DISTDIR}/${XSTS_TARBALL_2}" \ + "${S}"/xstc/ \ + || die "Failed to install test tarballs" + unpack ${XMLCONF_TARBALL} + fi +} + +src_prepare() { + default + + # Please do not remove, as else we get references to PORTAGE_TMPDIR + # in /usr/lib/python?.?/site-packages/libxml2mod.la among things. + #elibtoolize + + eautoreconf +} + +multilib_src_configure() { + libxml2_configure() { + ECONF_SOURCE="${S}" econf \ + $(use_with icu) \ + $(use_with lzma) \ + $(use_enable static-libs static) \ + $(multilib_native_use_with readline) \ + $(multilib_native_use_with readline history) \ + --with-legacy \ + "$@" + } + + # Build python bindings separately + libxml2_configure --without-python + + multilib_is_native_abi && use python && + python_foreach_impl run_in_build_dir libxml2_configure --with-python +} + +libxml2_py_emake() { + pushd "${BUILD_DIR}"/python >/dev/null || die + + emake top_builddir="${NATIVE_BUILD_DIR}" "$@" + + popd >/dev/null || die +} + +multilib_src_compile() { + default + + if multilib_is_native_abi && use python ; then + NATIVE_BUILD_DIR="${BUILD_DIR}" + python_foreach_impl run_in_build_dir libxml2_py_emake all + fi +} + +multilib_src_test() { + ln -s "${S}"/xmlconf || die + + emake check + + multilib_is_native_abi && use python && + python_foreach_impl run_in_build_dir libxml2_py_emake check +} + +multilib_src_install() { + emake DESTDIR="${D}" install + + multilib_is_native_abi && use python && + python_foreach_impl run_in_build_dir libxml2_py_emake DESTDIR="${D}" install + + # Hack until automake release is made for the optimise fix + # https://git.savannah.gnu.org/cgit/automake.git/commit/?id=bde43d0481ff540418271ac37012a574a4fcf097 + multilib_is_native_abi && use python && python_foreach_impl python_optimize +} + +multilib_src_install_all() { + einstalldocs + + if ! use examples ; then + rm -rf "${ED}"/usr/share/doc/${PF}/examples || die + rm -rf "${ED}"/usr/share/doc/${PF}/python/examples || die + fi + + rm -rf "${ED}"/usr/share/doc/${PN}-python-${PVR} || die + + find "${ED}" -name '*.la' -delete || die +} + +pkg_postinst() { + # We don't want to do the xmlcatalog during stage1, as xmlcatalog will not + # be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887. + if [[ -n "${ROOT}" ]]; then + elog "Skipping XML catalog creation for stage building (bug #208887)." + else + # Need an XML catalog, so no-one writes to a non-existent one + CATALOG="${EROOT}/etc/xml/catalog" + + # We don't want to clobber an existing catalog though, + # only ensure that one is there + # + if [[ ! -e "${CATALOG}" ]]; then + [[ -d "${EROOT}/etc/xml" ]] || mkdir -p "${EROOT}/etc/xml" + "${EPREFIX}"/usr/bin/xmlcatalog --create > "${CATALOG}" + einfo "Created XML catalog in ${CATALOG}" + fi + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.13.8.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.13.8.ebuild index 677cbccf382..0b520156884 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.13.8.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.13.8.ebuild @@ -23,7 +23,7 @@ if [[ ${PV} == 9999 ]] ; then inherit git-r3 else inherit gnome.org - KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi SRC_URI+=" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.14.4-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.14.4-r1.ebuild new file mode 100644 index 00000000000..f8c49ee9c22 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.14.4-r1.ebuild @@ -0,0 +1,184 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Note: Please bump in sync with dev-libs/libxslt + +PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_REQ_USE="xml(+)" +inherit python-r1 meson-multilib + +XSTS_HOME="http://www.w3.org/XML/2004/xml-schema-test-suite" +XSTS_NAME_1="xmlschema2002-01-16" +XSTS_NAME_2="xmlschema2004-01-14" +XSTS_TARBALL_1="xsts-2002-01-16.tar.gz" +XSTS_TARBALL_2="xsts-2004-01-14.tar.gz" +XMLCONF_TARBALL="xmlts20130923.tar.gz" + +DESCRIPTION="XML C parser and toolkit" +HOMEPAGE="https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home" +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/libxml2" + inherit git-r3 +else + inherit gnome.org + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +SRC_URI+=" + test? ( + ${XSTS_HOME}/${XSTS_NAME_1}/${XSTS_TARBALL_1} + ${XSTS_HOME}/${XSTS_NAME_2}/${XSTS_TARBALL_2} + https://www.w3.org/XML/Test/${XMLCONF_TARBALL} + ) +" +S="${WORKDIR}/${PN}-${PV%_rc*}" + +LICENSE="MIT" +# see so_version = v_maj + v_min_compat for subslot +SLOT="2/16" +IUSE="icu +python readline static-libs test" +RESTRICT="!test? ( test )" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND=" + virtual/libiconv + >=sys-libs/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] + icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] ) + python? ( ${PYTHON_DEPS} ) + readline? ( sys-libs/readline:= ) +" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +MULTILIB_CHOST_TOOLS=( + /usr/bin/xml2-config +) + +PATCHES=( + "${FILESDIR}"/libxml2-2.14.2-no-git.patch + "${FILESDIR}"/libxml2-2.14.4-cmake.patch +) + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + else + local tarname=${P/_rc/-rc}.tar.xz + + # ${A} isn't used to avoid unpacking of test tarballs into ${WORKDIR}, + # as they are needed as tarballs in ${S}/xstc instead and not unpacked + unpack ${tarname} + + if [[ -n ${PATCHSET_VERSION} ]] ; then + unpack ${PN}-${PATCHSET_VERSION}.tar.xz + fi + fi + + cd "${S}" || die + + if use test ; then + cp "${DISTDIR}/${XSTS_TARBALL_1}" \ + "${DISTDIR}/${XSTS_TARBALL_2}" \ + "${S}"/xstc/ \ + || die "Failed to install test tarballs" + unpack ${XMLCONF_TARBALL} + fi +} + +src_prepare() { + 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) + -Dpython=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 readline) + $(meson_native_use_feature readline history) + -Dpython=disabled + + # There has been a clean break with a soname bump. + # It's time to deal with the breakage. + # bug #935452 + -Dlegacy=disabled + ) + meson_src_configure + + if multilib_is_native_abi && use python ; then + python_foreach_impl python_configure + fi +} + +python_compile() { + pushd "${BUILD_DIR}" >/dev/null || die + meson_src_compile + popd >/dev/null || die +} + +multilib_src_compile() { + meson_src_compile + + if multilib_is_native_abi && use python ; then + python_foreach_impl python_compile + fi +} + +multilib_src_test() { + meson_src_test + + if multilib_is_native_abi && use python ; then + python_foreach_impl meson_src_test + fi +} + +python_install() { + pushd "${BUILD_DIR}" >/dev/null || die + meson_src_install + python_optimize + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi && use python ; then + python_foreach_impl python_install + fi + + meson_src_install +} + +pkg_postinst() { + # We don't want to do the xmlcatalog during stage1, as xmlcatalog will not + # be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887. + if [[ -n "${ROOT}" ]]; then + elog "Skipping XML catalog creation for stage building (bug #208887)." + else + # Need an XML catalog, so no-one writes to a non-existent one + CATALOG="${EROOT}/etc/xml/catalog" + + # We don't want to clobber an existing catalog though, + # only ensure that one is there + # + if [[ ! -e "${CATALOG}" ]]; then + [[ -d "${EROOT}/etc/xml" ]] || mkdir -p "${EROOT}/etc/xml" + "${EPREFIX}"/usr/bin/xmlcatalog --create > "${CATALOG}" + einfo "Created XML catalog in ${CATALOG}" + fi + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.14.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.14.4.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.14.3.ebuild rename to sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.14.4.ebuild diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/nettle/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/nettle/Manifest index 4a30b452cd2..d41c8f14f5b 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/nettle/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/nettle/Manifest @@ -1,2 +1,4 @@ DIST nettle-3.10.1.tar.gz 2643267 BLAKE2B da2e82e647904e855a0e0bd1efee3b610b33de1a722f5d652deeca083d1983c5ee66754233a0917d3bb91bb5a527a3e80cd5fe18f7c25986076b2388910995b5 SHA512 e8673bbcde9cde859ccae75ed6c9c30591e68a995a7c6d724106cfd67a5a5bd45b3468d742443b6565628849d0fd29505a28ca5ee4e89dd13197cdb51429f96c DIST nettle-3.10.1.tar.gz.sig 374 BLAKE2B 1264636002893e80e3001035ce2f17a3e0077405b74050752f1901abc44c882d2be643823d3476282a8dc78bfe3f19cda75d86e00f58dbb546e4347c59cc0963 SHA512 d074a921df31070a6e6562a9f7e213e67b8e6ce331e2683e8180f387aca92058a5fe8610800817a0aa5098b47176dfcb42b52d617648c84cc6262a09ef557eb8 +DIST nettle-3.10.2.tar.gz 2644644 BLAKE2B 2bcd54c97d793238a9c6527f0ba4851dd9e5b53c80abc1ed012ef53e9dbed1fc47c474ca7c29a2c0a989830e45f85eb61db4752dd8b8487cffc8559f43788c89 SHA512 bf37ddd7dca8e78488da2a5286dcf16761d527d620572b42f2ad27bb8ee8c12999d92b0272e06f53766e7155a3f4a1ab7ad9c4b1c3caec47c031878b6b1772fb +DIST nettle-3.10.2.tar.gz.sig 374 BLAKE2B 4060a6c7910c69be185191443c400135882171cc6679f2f9fcc9efd8e8d5ab8bca967085352f14096416479d190d1d27a1343d72e0436344574a88158d825d7d SHA512 82d82ba83b65b191d0ad9af24603df8dbc1b4172118618be66c267e51bad470d902e7194de1948e3570f144e0021afb7ddfb81badbe71fd57999d3d3227f0d39 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/nettle/nettle-3.10.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/nettle/nettle-3.10.1.ebuild index aacb9dc63a2..14c8f41fc27 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/nettle/nettle-3.10.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/nettle/nettle-3.10.1.ebuild @@ -11,7 +11,7 @@ HOMEPAGE="https://www.lysator.liu.se/~nisse/nettle/ https://git.lysator.liu.se/n SRC_URI="mirror://gnu/${PN}/${P}.tar.gz" SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${P}.tar.gz.sig )" -LICENSE="|| ( LGPL-3 LGPL-2.1 )" +LICENSE="|| ( GPL-2+ LGPL-3+ )" # Subslot = libnettle - libhogweed soname version SLOT="0/8-6" KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/nettle/nettle-3.10.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/nettle/nettle-3.10.2.ebuild new file mode 100644 index 00000000000..9cc1bab040f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/nettle/nettle-3.10.2.ebuild @@ -0,0 +1,94 @@ +# 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/nettle.asc +inherit multilib-build multilib-minimal toolchain-funcs verify-sig flag-o-matic + +DESCRIPTION="Low-level cryptographic library" +HOMEPAGE="https://www.lysator.liu.se/~nisse/nettle/ https://git.lysator.liu.se/nettle/nettle" +SRC_URI="mirror://gnu/${PN}/${P}.tar.gz" +SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${P}.tar.gz.sig )" + +LICENSE="|| ( GPL-2+ LGPL-3+ )" +# Subslot = libnettle - libhogweed soname version +SLOT="0/8-6" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="+asm doc +gmp static-libs cpu_flags_arm_neon cpu_flags_arm_aes cpu_flags_arm_sha1 cpu_flags_arm_sha2 cpu_flags_ppc_altivec cpu_flags_ppc_vsx2 cpu_flags_ppc_vsx3 cpu_flags_x86_aes cpu_flags_x86_sha cpu_flags_x86_pclmul" +# The arm64 crypto option controls AES, SHA1, and SHA2 usage. +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 ) +" + +DEPEND="gmp? ( >=dev-libs/gmp-6.1:=[static-libs?,${MULTILIB_USEDEP}] )" +RDEPEND="${DEPEND}" +BDEPEND=" + sys-devel/m4 + doc? ( sys-apps/texinfo ) + verify-sig? ( >=sec-keys/openpgp-keys-nettle-20250628 ) +" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/nettle/version.h +) + +DOCS=() +HTML_DOCS=() + +src_prepare() { + default + + # I do not see in config.sub reference to sunldsolaris. + # if someone complains readd + # -e 's/solaris\*)/sunldsolaris*)/' \ + sed -e '/CFLAGS=/s: -ggdb3::' \ + -i configure.ac configure || die + + if use doc ; then + DOCS+=( nettle.pdf ) + HTML_DOCS+=( nettle.html ) + fi +} + +multilib_src_configure() { + # We don't want to run Valgrind within ebuilds, it often gets + # confused by sandbox, etc. + export nettle_cv_prog_valgrind=no + + use elibc_musl && append-cppflags -D__GNU_LIBRARY__ #945970 + + # TODO: USE=debug w/ --enable-extra-asserts? + local myeconfargs=( + CC_FOR_BUILD="$(tc-getBUILD_CC)" + + $(tc-is-static-only && echo --disable-shared) + + # Intrinsics + $(use_enable cpu_flags_arm_neon arm-neon) + $(use_enable cpu_flags_arm_aes arm64-crypto) + $(use_enable cpu_flags_ppc_altivec power-altivec) + $(use_enable cpu_flags_ppc_vsx2 power-crypto-ext) + $(use_enable cpu_flags_ppc_vsx3 power9) + $(use_enable cpu_flags_x86_aes x86-aesni) + $(use_enable cpu_flags_x86_sha x86-sha-ni) + $(use_enable cpu_flags_x86_pclmul x86-pclmul) + $([[ ${CHOST} == *-solaris* ]] && echo '--disable-symbol-versions') + # TODO: cpu_flags_s390? + --disable-s390x-vf + --disable-s390x-msa + + $(use_enable asm assembler) + $(multilib_native_use_enable doc documentation) + $(use_enable gmp public-key) + $(use_enable static-libs static) + --disable-fat + + # openssl is just used for benchmarks (bug #427526) + --disable-openssl + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/opensc/opensc-0.26.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/opensc/opensc-0.26.1.ebuild index 737d99a6e86..cc5a5067f36 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/opensc/opensc-0.26.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/opensc/opensc-0.26.1.ebuild @@ -13,7 +13,7 @@ if [[ ${PV} == *9999 ]]; then EGIT_REPO_URI="https://github.com/OpenSC/OpenSC.git" else SRC_URI="https://github.com/OpenSC/OpenSC/releases/download/${PV}/${P}.tar.gz" - KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" fi LICENSE="LGPL-2.1+ BSD" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.4.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.4.1.ebuild index 41de3131f21..8326ed6c8c6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.4.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.4.1.ebuild @@ -27,7 +27,7 @@ else " if [[ ${PV} != *_alpha* && ${PV} != *_beta* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-openssl-20240920 )" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.6.ebuild index fcac9b8ecbf..1024552e925 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.6.ebuild @@ -19,7 +19,7 @@ if [[ "${PV}" == *9999 ]]; then inherit git-r3 else SRC_URI="https://github.com/protocolbuffers/protobuf/releases/download/v${PV}/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" SLOT="0/$(ver_cut 1-2).0" fi diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-27.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-27.5.ebuild index 3c5e7301912..16f078b651a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-27.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-27.5.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit cmake-multilib elisp-common multilib +inherit cmake-multilib dot-a elisp-common multilib # NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules ABSEIL_BRANCH="lts_2023_08_02" @@ -76,6 +76,10 @@ src_prepare() { } multilib_src_configure() { + # Currently, the only static library is libupb (and there is no + # USE=static-libs), so optimize away the fat-lto build time penalty. + use libupb && lto-guarantee-fat + local mycmakeargs=( -Dprotobuf_ABSL_PROVIDER="package" -Dprotobuf_JSONCPP_PROVIDER="package" @@ -135,6 +139,7 @@ src_test() { } multilib_src_install_all() { + use libupb && strip-lto-bytecode find "${ED}" -name "*.la" -delete || die if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" ]]; then diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-28.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-28.0.ebuild index 2621d4f7ba8..432576d6396 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-28.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-28.0.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit cmake-multilib elisp-common multilib +inherit cmake-multilib dot-a elisp-common multilib # NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules ABSEIL_BRANCH="lts_2023_08_02" @@ -78,6 +78,10 @@ src_prepare() { } multilib_src_configure() { + # Currently, the only static library is libupb (and there is no + # USE=static-libs), so optimize away the fat-lto build time penalty. + use libupb && lto-guarantee-fat + local mycmakeargs=( -Dprotobuf_ABSL_PROVIDER="package" -Dprotobuf_JSONCPP_PROVIDER="package" @@ -138,6 +142,7 @@ src_test() { } multilib_src_install_all() { + use libupb && strip-lto-bytecode find "${ED}" -name "*.la" -delete || die if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" ]]; then diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.4.ebuild index 1d23dc9b0ce..ea46bda5641 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.4.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit cmake-multilib elisp-common multilib +inherit cmake-multilib dot-a elisp-common multilib # NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules ABSEIL_BRANCH="lts_2023_08_02" @@ -80,6 +80,10 @@ src_prepare() { } multilib_src_configure() { + # Currently, the only static library is libupb (and there is no + # USE=static-libs), so optimize away the fat-lto build time penalty. + use libupb && lto-guarantee-fat + local mycmakeargs=( -Dprotobuf_ABSL_PROVIDER="package" -Dprotobuf_JSONCPP_PROVIDER="package" @@ -147,6 +151,7 @@ src_test() { } multilib_src_install_all() { + use libupb && strip-lto-bytecode find "${ED}" -name "*.la" -delete || die if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" ]]; then diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-30.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-30.2.ebuild index 4b1ed75bf6e..7f6d90ae590 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-30.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-30.2.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit cmake-multilib elisp-common multilib +inherit cmake-multilib dot-a elisp-common multilib # NOTE from https://github.com/protocolbuffers/protobuf/blob/main/cmake/dependencies.cmake ABSEIL_MIN_VER="20250127.0" @@ -77,6 +77,10 @@ src_prepare() { } multilib_src_configure() { + # Currently, the only static library is libupb (and there is no + # USE=static-libs), so optimize away the fat-lto build time penalty. + use libupb && lto-guarantee-fat + local mycmakeargs=( -Dprotobuf_BUILD_CONFORMANCE="$(usex test "$(usex conformance)")" -Dprotobuf_BUILD_LIBPROTOC="$(usex libprotoc)" @@ -143,6 +147,7 @@ src_test() { } multilib_src_install_all() { + use libupb && strip-lto-bytecode find "${ED}" -name "*.la" -delete || die if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname "${SLOT#*/}")" ]]; then diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-31.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-31.1.ebuild index 71bf1e316dd..dbfa1f78724 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-31.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-31.1.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit cmake-multilib elisp-common multilib +inherit cmake-multilib dot-a elisp-common multilib # NOTE from https://github.com/protocolbuffers/protobuf/blob/main/cmake/dependencies.cmake ABSEIL_MIN_VER="20250127.0" @@ -77,6 +77,10 @@ src_prepare() { } multilib_src_configure() { + # Currently, the only static library is libupb (and there is no + # USE=static-libs), so optimize away the fat-lto build time penalty. + use libupb && lto-guarantee-fat + local mycmakeargs=( -Dprotobuf_BUILD_CONFORMANCE="$(usex test "$(usex conformance)")" -Dprotobuf_BUILD_LIBPROTOC="$(usex libprotoc)" @@ -143,6 +147,7 @@ src_test() { } multilib_src_install_all() { + use libupb && strip-lto-bytecode find "${ED}" -name "*.la" -delete || die if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname "${SLOT#*/}")" ]]; then diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter-bash/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter-bash/Manifest index 0da2ce39c34..85b81b75ee1 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter-bash/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter-bash/Manifest @@ -1,5 +1,3 @@ DIST tree-sitter-bash-0.21.0.tar.gz 557096 BLAKE2B bfbdb4db0f75c292567043a47d32e26c6ec119ed70fa9b77675eb57e686c072315fc114befecc430730c8eec20238544d13836402f2264a1b6657e0387d4987c SHA512 9585ea80f85bc7010444a91142bc943486ade68982c7ca367a6cbe65619af2bdaa1acd8b6ee698cdf74b84d62a7f44acc4676ddb4b6007035eb9eea4768f122d -DIST tree-sitter-bash-0.23.1.tar.gz 542859 BLAKE2B fbcc788a241b740e128d1ac7dac6292411121c67239c2656a74514f016b89882e4bd6371fc287b9d94b4b78f2b8e968ba3029de67e1c307e99ecce95bfe83dc5 SHA512 1ab59105a5f0a74a17b415420fb8da072cdd2765f776a4f1b0297ca4a4637055d625753c502b96928e9cdf56fd9f175589da4acdeb338daa9113df94c4aa6581 -DIST tree-sitter-bash-0.23.2.tar.gz 544189 BLAKE2B 71e5baa9f51ddb41324be09355fbcc62d559e7eee7c473d190842ddb72d18915f05e4b87d7443119e10edb365a01992d4622710190c33e9ebf2ce47ec4d95502 SHA512 522ca01f823103283a3edcba6d400e118e7ddd452e1b94378feb7c5b3a708b90d55f98c65a4c0af9c89d70878ad595c7f1bbf41197a5367423f894b4fd37bff0 DIST tree-sitter-bash-0.23.3.tar.gz 544232 BLAKE2B a7f2b8e73fcf99f29771e2952b10cd5679ee35cd1b98a2f59acf6e6110d4aafc900b4b5d53d43f1cc78dbdfc3ca376b1ff34bec79cffd81efbb1b8950efc96c0 SHA512 4882f12aed6dc73f15c0452af38ad400ab0fe386eb33aa61b3c7133fc86d48fff4f0a29302cb5c3ced55eddb2fd65d39414585833cad59a02e98417ef5aac1ba DIST tree-sitter-bash-0.25.0.tar.gz 550233 BLAKE2B 813b89d9c16a06bf392159b29267383682bc0af053ea24695574b6ca60621725c7b1bed056b50c9b75662807721889ea2d9bd11b1a0c89e9dba323ee351b4677 SHA512 612e505a564d07691806faaca19d1f552e2786ca8c4ed9716af62a630b91089f4e58f2139ce18373478a23a5c4807ff6bea51a2cab451c59c84d02498f31db61 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter-bash/tree-sitter-bash-0.23.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter-bash/tree-sitter-bash-0.23.1.ebuild deleted file mode 100644 index 5a720cc0b9d..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter-bash/tree-sitter-bash-0.23.1.ebuild +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -TS_BINDINGS=( python ) - -inherit tree-sitter-grammar - -DESCRIPTION="Bash grammar for Tree-sitter" -HOMEPAGE="https://github.com/tree-sitter/tree-sitter-bash" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter-bash/tree-sitter-bash-0.23.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter-bash/tree-sitter-bash-0.23.2.ebuild deleted file mode 100644 index e0e9314f6ec..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter-bash/tree-sitter-bash-0.23.2.ebuild +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -TS_BINDINGS=( python ) - -inherit tree-sitter-grammar - -DESCRIPTION="Bash grammar for Tree-sitter" -HOMEPAGE="https://github.com/tree-sitter/tree-sitter-bash" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-45.0.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-45.0.3.ebuild index 59a9c136976..1cd67a1327c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-45.0.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-45.0.3.ebuild @@ -68,7 +68,7 @@ LICENSE+=" Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-3.0 " SLOT="0" -KEYWORDS="amd64 ~arm arm64 ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86" +KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" RDEPEND=" >=dev-libs/openssl-1.0.2o-r6:0= diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-45.0.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-45.0.4.ebuild index b6b58631d67..743f67faf98 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-45.0.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-45.0.4.ebuild @@ -68,7 +68,7 @@ LICENSE+=" Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-3.0 " SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86" RDEPEND=" >=dev-libs/openssl-1.0.2o-r6:0= diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.1.ebuild index 5e50990b73a..0d005e35cfe 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.1.ebuild @@ -21,7 +21,7 @@ HOMEPAGE=" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="test test-full" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.2.ebuild index 204789b2555..2ac21dd68b2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.2.ebuild @@ -21,7 +21,7 @@ HOMEPAGE=" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="test test-full" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/docutils/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/docutils/Manifest index 0bc139545cb..7449657682a 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,3 +1,4 @@ DIST docutils-0.21.2.tar.gz 2204444 BLAKE2B 727c2f97fc5835a0ffa62e38ea85af366cd89ad1eaec0b8af8b1f3b12e6cddfddb65161ba34f9109952d37ba2cf8985f3c3b6905ebb2ac1c9a984cce3fb4d170 SHA512 7fafa331f5687448e80d299c20cdccc4b49819fa471b5f586bf0ab18c694ba43a70f58e7c76b0a70a16267585548389214e11a4998ad7fdc19a27f0f7644539c DIST docutils-0.22rc2.tar.gz 2275875 BLAKE2B 62140304e9715e31d8be69c9b65fa382832805368cbf3c184b6319405f22d6c05a16b3b28b5444b4e498c21f4bb7baee8520ef80b445123341aaab7a6a6965d6 SHA512 fcb347d29315a5c2e9f070057962094457bdaf08693c1393a649ae24bab572be027c253deb98561c5cd5a27f2d1f994cf7dea63d0cb74c3a3993c4cea45e0a48 DIST docutils-0.22rc3.tar.gz 2278230 BLAKE2B 650373b87230bc376c785becfbe2d61e2d67e561facd364f877bd580113223e39b42053b1b5fcab09990f0fc0be9f7aebaff0fc5fdb4fd524e6f45bc4de34a89 SHA512 7fa2cdceb818a69bc1b52ee16680ce23f9d15dc51b684097b479204611e2b320d778e32d5494f88543d77bc1424ee04628680610ed2dc1f5c0798a18b8da5cbd +DIST docutils-0.22rc5.tar.gz 2279312 BLAKE2B b0473cddb656c0ebcba2177ac46b8c4d246902d646e8baa486df7e33556d88c8f659df6443adfe83efe5a00a7a642fc6ec01843b04f416c85b08b465fd1bc8f3 SHA512 60e98478f331959c55cc6c7bcc7ecb33c0f1a4d6760500ec6186a0d7f5b5c0140ebd690f86221418dcf7d4976ff9386a0f2a83d00d823f6d5dcb97d7b9917c2e diff --git a/sdk_container/src/third_party/portage-stable/dev-python/docutils/docutils-0.22_rc5.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/docutils/docutils-0.22_rc5.ebuild new file mode 100644 index 00000000000..d5ea86951ef --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/docutils/docutils-0.22_rc5.ebuild @@ -0,0 +1,61 @@ +# 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" + +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/jaraco-collections/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-collections/Manifest index 42943f3a454..2984c5a0528 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-collections/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-collections/Manifest @@ -1 +1,2 @@ DIST jaraco_collections-5.1.0.tar.gz 19026 BLAKE2B b0ecae5ddfabe22aca0fb0cb4ef6c07dd0c6b56cfd6920787779eb47631c3b4001f35a97f040a71495975fce40d5ec509799d19e23b81ccbf4afbae461cf0624 SHA512 b03b247657ad25df0b86ad125728e37c8123fdd1834adfc16c7e41fb9c31b9d4c1b168ed40614b965caafc7dd55fd14bba8c355648c8b5cca13b50736bc32883 +DIST jaraco_collections-5.2.1.tar.gz 19729 BLAKE2B 16f1b73c22cdc45705d4196d4de04fbe8e16f2b7f2bf9d6e8faccdc1c6dfab6c01182959554f973c1376ee0ea225aa95f7f6b6b2fcb3ab466e220ea3f787caa6 SHA512 fb759a1ff684c2c1d4c23114125f9f83508f2b49701f1e7192ff0cff7db88ec933fc4d7f82bda3e311c23153056244b7d9a7b676a7e8b8831b0ee172642ff51d 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 new file mode 100644 index 00000000000..d0539a2c745 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-collections/jaraco-collections-5.2.1.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2025 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 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Models and classes to supplement the stdlib collections module" +HOMEPAGE=" + https://github.com/jaraco/jaraco.collections/ + https://pypi.org/project/jaraco.collections/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + +RDEPEND=" + dev-python/jaraco-text[${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 + sed -i -e \ + 's/build-backend = .*/build-backend = "flit_core.buildapi"/' \ + -e '/^name = /a\' -e "version = \"${PV}\"" \ + -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-functools/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/Manifest index 95d642d18cb..68540fe07a2 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 +1,2 @@ DIST jaraco_functools-4.1.0.tar.gz 19159 BLAKE2B 07c240152845cb8ec7c69bc1105b652499da1e62a1b6d7a246910cf22b543784946965e4cc4608c2de8f4c082904242e90bfc5c5c60ee252382308a02f35be19 SHA512 e893533830e176a7ac0a2da3c1b3fa3c53103e7aa163f9ab7c49635040ea845e19348dbf2628252de3c2952330682f5649a8113a6242db72e05995cca6919dfd +DIST jaraco_functools-4.2.1.tar.gz 19661 BLAKE2B 0052dd97f7d6a341d59aacfd089b8973292707cb65653c2f3b3777aee415bce5bd58e0883d903c028d5899cbf62e519e5bad3731dce76d1d1bd68c7072d691f2 SHA512 f32a0a3410cffb9467a2713d2867b95e4b7491f4df28e5191cceb4e748104617ff3df79f4a86916388fca8cbe379cd8f314ed5276826057aa07b35fb7e046568 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/jaraco-functools-4.2.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/jaraco-functools-4.2.1.ebuild new file mode 100644 index 00000000000..81519877502 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/jaraco-functools/jaraco-functools-4.2.1.ebuild @@ -0,0 +1,55 @@ +# 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + +RDEPEND=" + >=dev-python/more-itertools-0.12.0-r1[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/jaraco-classes[${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.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/lxml/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/lxml/Manifest index 5715059ddf0..f071ba9b156 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,3 +1,4 @@ DIST lxml-5.3.1.gh.tar.gz 951340 BLAKE2B e73cc8513cfe42d163b8475788472f00f2f3492deb7536b6556ed4f14924ffe57497947e660a161ec5a0821135b3d103799c0da0b9c647ccdcbfa9b0c5d6a1d9 SHA512 e89ada765791b67e4e83a9151c500f2e8d924c05d421a46bece1183666fc566d545d2e6b62987075e82cbafb8cd4b1f48f6f94e9ebcc0bbd7227d687b2282794 DIST lxml-5.3.2.gh.tar.gz 951502 BLAKE2B d9a9bc49ecbc2d9dba2539c0fa884afc62fbb7a8d6b02571c1ee387386f473472e7cea66e776d758ab1f9307c77f938761ef1be58b029edb2c3b9546aa5f8561 SHA512 d128f7d6dd2a08286f8478508cb2693c7749c5f3822acfcd10877b92bec24e82c3da624b3a1872f95f72d310247083c84f76a42eadfc910b8180749d85b32d8b 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 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 new file mode 100644 index 00000000000..4e2584abdea --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/lxml/files/lxml-6.0.0-pypy.patch @@ -0,0 +1,52 @@ +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/lxml-6.0.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.0.ebuild new file mode 100644 index 00000000000..68dbd900961 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.0.ebuild @@ -0,0 +1,120 @@ +# 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-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/msgpack/msgpack-1.1.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/msgpack/msgpack-1.1.1.ebuild index 2bb9a9de8b2..cb46b90a791 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/msgpack/msgpack-1.1.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/msgpack/msgpack-1.1.1.ebuild @@ -18,7 +18,7 @@ HOMEPAGE=" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" IUSE="+native-extensions" # extension code is relying on CPython implementation details diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pygments/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/pygments/Manifest index e3285e99b30..0aa5e48c24d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pygments/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/pygments/Manifest @@ -1 +1,2 @@ DIST pygments-2.19.1.tar.gz 4968581 BLAKE2B 24bc120c4709af2f313010ed953a446bc29ee32269d47c3325067fea60c2a945376426a7c8d37e8916cc09e0534c2b6e63f69226768d6afd6e88dac875cc4419 SHA512 f8547b1eb032fb4c0ad15f1bb61bc6d8c25b309e61850a7ebe4e879fefe1ebb0acba53192d1294e8ef243613ba546e1e7ac7474ab1b49b1a1c1551c6733d9ec7 +DIST pygments-2.19.2.tar.gz 4968631 BLAKE2B fad9d5c28194761a77f68f5428a6655c78c498917fa7b91d677e0da18a2fe5521a37440ac52bd7eb7578fac50bf4b55e95dd1ac7334644b775b9ca5b3d0f153e SHA512 3ead3a1fa4c7d86b415287949099cb0e5667ea71f7f69aa3de359bbb5c2f234d90fa5a41ec9c74cb041593e465b934d54bbb7dc87669683f04b94dd3aa6ca03c 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 new file mode 100644 index 00000000000..3a5817ef4ea --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/pygments/pygments-2.19.2.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +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 ) + +inherit distutils-r1 bash-completion-r1 pypi + +DESCRIPTION="Pygments is a syntax highlighting package written in Python" +HOMEPAGE=" + https://pygments.org/ + https://github.com/pygments/pygments/ + https://pypi.org/project/Pygments/ +" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" + +BDEPEND=" + test? ( + $(python_gen_cond_dep ' + dev-python/lxml[${PYTHON_USEDEP}] + dev-python/pillow[${PYTHON_USEDEP}] + ' "${PYTHON_FULLY_TESTED[@]}") + dev-python/wcag-contrast-ratio[${PYTHON_USEDEP}] + virtual/ttf-fonts + ) +" + +EPYTEST_DESELECT=( + # fuzzing tests, very slow + tests/test_basic_api.py::test_random_input + # incompatibility with python-ctags3, apparently + # https://github.com/pygments/pygments/issues/2486 + tests/test_html_formatter.py::test_ctags +) + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_test() { + if [[ ${EPYTHON} == python3.14* ]] ; then + EPYTEST_IGNORE+=( + # https://github.com/python/cpython/issues/133653 + # https://github.com/python/cpython/pull/133813 + tests/test_cmdline.py + ) + fi + + epytest +} + +src_install() { + distutils-r1_src_install + newbashcomp external/pygments.bashcomp pygmentize +} 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 d2f01646d1b..4485d5fda35 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,2 +1,3 @@ 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 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 new file mode 100644 index 00000000000..0b744e57990 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/resolvelib/resolvelib-1.2.0.ebuild @@ -0,0 +1,33 @@ +# Copyright 2021-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) + +inherit distutils-r1 + +DESCRIPTION="Resolve abstract dependencies into concrete ones" +HOMEPAGE=" + https://github.com/sarugaku/resolvelib/ + https://pypi.org/project/resolvelib/ + +" +SRC_URI=" + https://github.com/sarugaku/resolvelib/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="ISC" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +BDEPEND=" + test? ( + dev-python/packaging[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-0.10.11.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-0.10.11.ebuild index 20516defe07..ea26d0d51d0 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-0.10.11.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-0.10.11.ebuild @@ -13,7 +13,7 @@ if [[ ${PV} == *9999 ]] ; then https://github.com/pkgcore/snakeoil.git" inherit git-r3 else - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos" inherit pypi fi diff --git a/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/Manifest index efb5a12e1e1..39350d146c0 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,3 +1 @@ -DIST typing_extensions-4.13.2.tar.gz 106967 BLAKE2B 6a0dfd0cb94f8411342f547f2b209a3c8afd32c818ec837c9ce63191392ba5f89c31279f35d7ca8c0a2f2cda99ea23084c3fad4bc3787f20e31741665e174645 SHA512 2cd798939362ee0d7ddbffe69b1d0fdd72b9574c1bd7300caee73d36c457ea64ea635c87ecc6188db9ffaaca272b1c8dd978a42c591ae0dfdca5632317ddb18c DIST typing_extensions-4.14.0.tar.gz 107423 BLAKE2B dc5035fd1e7029b50ca92f286ca01839e722279e7a0d4325f1217b2546ebb4b01dcba36cb364d50c71f176b9a8ab42b55f29fef87f5856b5d215b39006e35bae SHA512 69cc6588c22744758461bc752ad983111a55e256fbe29250f36077b349b8266b12920897fe70d48d7994db644737dc1e6f74626e22d972aef7a1c3f4204779eb -DIST typing_extensions-4.14.0rc1.tar.gz 107459 BLAKE2B 5be5ca9f8e29f26f0cf61d7125caaab830d70e13199f1b0407d04eef18587e144737553cf6ed750f31188723821743d80b16b91c93cd4a4714402e1e1ac3df57 SHA512 0c37102ca65695dd71431aac63457f76c09bb974e32fb8e22cc54e386c6307701a3e58fc21cd2883409a2c6ea6eae337c5184030eda7c5f3580c721ac681ad32 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/files/typing-extensions-4.13.2-py314.patch b/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/files/typing-extensions-4.13.2-py314.patch deleted file mode 100644 index d1086c2c359..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/files/typing-extensions-4.13.2-py314.patch +++ /dev/null @@ -1,422 +0,0 @@ -From 2354c1a8d21cf8f6d6f6a9d54bb3a69b5908e035 Mon Sep 17 00:00:00 2001 -From: Jelle Zijlstra -Date: Fri, 2 May 2025 19:45:27 -0700 -Subject: [PATCH 1/2] Fix test failures on Python 3.14 (#566) - ---- - src/test_typing_extensions.py | 40 ++++++++++++++++++++++++----------- - src/typing_extensions.py | 9 ++++++-- - 2 files changed, 35 insertions(+), 14 deletions(-) - -diff --git a/src/test_typing_extensions.py b/src/test_typing_extensions.py -index 584b0fa..7b08f72 100644 ---- a/src/test_typing_extensions.py -+++ b/src/test_typing_extensions.py -@@ -901,10 +901,12 @@ class Cls: - - class DeprecatedCoroTests(BaseTestCase): - def test_asyncio_iscoroutinefunction(self): -- self.assertFalse(asyncio.coroutines.iscoroutinefunction(func)) -- self.assertFalse(asyncio.coroutines.iscoroutinefunction(Cls.func)) -- self.assertTrue(asyncio.coroutines.iscoroutinefunction(coro)) -- self.assertTrue(asyncio.coroutines.iscoroutinefunction(Cls.coro)) -+ with warnings.catch_warnings(): -+ warnings.simplefilter("ignore", DeprecationWarning) -+ self.assertFalse(asyncio.coroutines.iscoroutinefunction(func)) -+ self.assertFalse(asyncio.coroutines.iscoroutinefunction(Cls.func)) -+ self.assertTrue(asyncio.coroutines.iscoroutinefunction(coro)) -+ self.assertTrue(asyncio.coroutines.iscoroutinefunction(Cls.coro)) - - @skipUnless(TYPING_3_12_ONLY or TYPING_3_13_0_RC, "inspect.iscoroutinefunction works differently on Python < 3.12") - def test_inspect_iscoroutinefunction(self): -@@ -7228,7 +7230,7 @@ class TypeVarTests(BaseTestCase): - - def test_bound_errors(self): - with self.assertRaises(TypeError): -- TypeVar('X', bound=Union) -+ TypeVar('X', bound=Optional) - with self.assertRaises(TypeError): - TypeVar('X', str, float, bound=Employee) - with self.assertRaisesRegex(TypeError, -@@ -8213,19 +8215,26 @@ class TestGetAnnotations(BaseTestCase): - get_annotations(f2, format=Format.FORWARDREF), - {"a": "undefined"}, - ) -- self.assertEqual(get_annotations(f2, format=2), {"a": "undefined"}) -+ # Test that the raw int also works -+ self.assertEqual( -+ get_annotations(f2, format=Format.FORWARDREF.value), -+ {"a": "undefined"}, -+ ) - - self.assertEqual( - get_annotations(f1, format=Format.STRING), - {"a": "int"}, - ) -- self.assertEqual(get_annotations(f1, format=3), {"a": "int"}) -+ self.assertEqual( -+ get_annotations(f1, format=Format.STRING.value), -+ {"a": "int"}, -+ ) - - with self.assertRaises(ValueError): - get_annotations(f1, format=0) - - with self.assertRaises(ValueError): -- get_annotations(f1, format=4) -+ get_annotations(f1, format=42) - - def test_custom_object_with_annotations(self): - class C: -@@ -8264,10 +8273,17 @@ class TestGetAnnotations(BaseTestCase): - foo.__annotations__ = {"a": "foo", "b": "str"} - for format in Format: - with self.subTest(format=format): -- self.assertEqual( -- get_annotations(foo, format=format), -- {"a": "foo", "b": "str"}, -- ) -+ if format is Format.VALUE_WITH_FAKE_GLOBALS: -+ with self.assertRaisesRegex( -+ ValueError, -+ "The VALUE_WITH_FAKE_GLOBALS format is for internal use only" -+ ): -+ get_annotations(foo, format=format) -+ else: -+ self.assertEqual( -+ get_annotations(foo, format=format), -+ {"a": "foo", "b": "str"}, -+ ) - - self.assertEqual( - get_annotations(foo, eval_str=True, locals=locals()), -diff --git a/src/typing_extensions.py b/src/typing_extensions.py -index fa89c83..d089d5e 100644 ---- a/src/typing_extensions.py -+++ b/src/typing_extensions.py -@@ -4153,8 +4153,9 @@ _PEP_649_OR_749_IMPLEMENTED = ( - - class Format(enum.IntEnum): - VALUE = 1 -- FORWARDREF = 2 -- STRING = 3 -+ VALUE_WITH_FAKE_GLOBALS = 2 -+ FORWARDREF = 3 -+ STRING = 4 - - - if _PEP_649_OR_749_IMPLEMENTED: -@@ -4198,6 +4199,10 @@ else: - - """ - format = Format(format) -+ if format is Format.VALUE_WITH_FAKE_GLOBALS: -+ raise ValueError( -+ "The VALUE_WITH_FAKE_GLOBALS format is for internal use only" -+ ) - - if eval_str and format is not Format.VALUE: - raise ValueError("eval_str=True is only supported with format=Format.VALUE") -From 62740a52eca38414efc9ce01b361ab45eae7c38e Mon Sep 17 00:00:00 2001 -From: Jelle Zijlstra -Date: Mon, 5 May 2025 09:50:14 -0700 -Subject: [PATCH 2/2] Fix tests on Python 3.14 (#592) - ---- - src/test_typing_extensions.py | 117 ++++++++++++++++++++++++++++++---- - src/typing_extensions.py | 67 +++++++++++++++---- - 2 files changed, 161 insertions(+), 23 deletions(-) - -diff --git a/src/test_typing_extensions.py b/src/test_typing_extensions.py -index 7b08f72..9742b98 100644 ---- a/src/test_typing_extensions.py -+++ b/src/test_typing_extensions.py -@@ -440,6 +440,48 @@ class BaseTestCase(TestCase): - raise self.failureException(message) - - -+class EqualToForwardRef: -+ """Helper to ease use of annotationlib.ForwardRef in tests. -+ -+ This checks only attributes that can be set using the constructor. -+ -+ """ -+ -+ def __init__( -+ self, -+ arg, -+ *, -+ module=None, -+ owner=None, -+ is_class=False, -+ ): -+ self.__forward_arg__ = arg -+ self.__forward_is_class__ = is_class -+ self.__forward_module__ = module -+ self.__owner__ = owner -+ -+ def __eq__(self, other): -+ if not isinstance(other, (EqualToForwardRef, typing.ForwardRef)): -+ return NotImplemented -+ if sys.version_info >= (3, 14) and self.__owner__ != other.__owner__: -+ return False -+ return ( -+ self.__forward_arg__ == other.__forward_arg__ -+ and self.__forward_module__ == other.__forward_module__ -+ and self.__forward_is_class__ == other.__forward_is_class__ -+ ) -+ -+ def __repr__(self): -+ extra = [] -+ if self.__forward_module__ is not None: -+ extra.append(f", module={self.__forward_module__!r}") -+ if self.__forward_is_class__: -+ extra.append(", is_class=True") -+ if sys.version_info >= (3, 14) and self.__owner__ is not None: -+ extra.append(f", owner={self.__owner__!r}") -+ return f"EqualToForwardRef({self.__forward_arg__!r}{''.join(extra)})" -+ -+ - class Employee: - pass - -@@ -5075,6 +5117,64 @@ class TypedDictTests(BaseTestCase): - x: str - - -+ def test_annotations(self): -+ # _type_check is applied -+ with self.assertRaisesRegex(TypeError, "Plain typing.Optional is not valid as type argument"): -+ class X(TypedDict): -+ a: Optional -+ -+ # _type_convert is applied -+ class Y(TypedDict): -+ a: None -+ b: "int" -+ if sys.version_info >= (3, 14): -+ import annotationlib -+ -+ fwdref = EqualToForwardRef('int', module=__name__) -+ self.assertEqual(Y.__annotations__, {'a': type(None), 'b': fwdref}) -+ self.assertEqual(Y.__annotate__(annotationlib.Format.FORWARDREF), {'a': type(None), 'b': fwdref}) -+ else: -+ self.assertEqual(Y.__annotations__, {'a': type(None), 'b': typing.ForwardRef('int', module=__name__)}) -+ -+ @skipUnless(TYPING_3_14_0, "Only supported on 3.14") -+ def test_delayed_type_check(self): -+ # _type_check is also applied later -+ class Z(TypedDict): -+ a: undefined # noqa: F821 -+ -+ with self.assertRaises(NameError): -+ Z.__annotations__ -+ -+ undefined = Final -+ with self.assertRaisesRegex(TypeError, "Plain typing.Final is not valid as type argument"): -+ Z.__annotations__ -+ -+ undefined = None # noqa: F841 -+ self.assertEqual(Z.__annotations__, {'a': type(None)}) -+ -+ @skipUnless(TYPING_3_14_0, "Only supported on 3.14") -+ def test_deferred_evaluation(self): -+ class A(TypedDict): -+ x: NotRequired[undefined] # noqa: F821 -+ y: ReadOnly[undefined] # noqa: F821 -+ z: Required[undefined] # noqa: F821 -+ -+ self.assertEqual(A.__required_keys__, frozenset({'y', 'z'})) -+ self.assertEqual(A.__optional_keys__, frozenset({'x'})) -+ self.assertEqual(A.__readonly_keys__, frozenset({'y'})) -+ self.assertEqual(A.__mutable_keys__, frozenset({'x', 'z'})) -+ -+ with self.assertRaises(NameError): -+ A.__annotations__ -+ -+ import annotationlib -+ self.assertEqual( -+ A.__annotate__(annotationlib.Format.STRING), -+ {'x': 'NotRequired[undefined]', 'y': 'ReadOnly[undefined]', -+ 'z': 'Required[undefined]'}, -+ ) -+ -+ - class AnnotatedTests(BaseTestCase): - - def test_repr(self): -@@ -5887,7 +5987,7 @@ class ConcatenateTests(BaseTestCase): - U2 = Unpack[Ts] - self.assertEqual(C2[U1], (str, int, str)) - self.assertEqual(C2[U2], (str, Unpack[Ts])) -- self.assertEqual(C2["U2"], (str, typing.ForwardRef("U2"))) -+ self.assertEqual(C2["U2"], (str, EqualToForwardRef("U2"))) - - if (3, 12, 0) <= sys.version_info < (3, 12, 4): - with self.assertRaises(AssertionError): -@@ -7196,8 +7296,8 @@ class TypeVarTests(BaseTestCase): - self.assertEqual(X | "x", Union[X, "x"]) - self.assertEqual("x" | X, Union["x", X]) - # make sure the order is correct -- self.assertEqual(get_args(X | "x"), (X, typing.ForwardRef("x"))) -- self.assertEqual(get_args("x" | X), (typing.ForwardRef("x"), X)) -+ self.assertEqual(get_args(X | "x"), (X, EqualToForwardRef("x"))) -+ self.assertEqual(get_args("x" | X), (EqualToForwardRef("x"), X)) - - def test_union_constrained(self): - A = TypeVar('A', str, bytes) -@@ -8770,7 +8870,7 @@ class TestEvaluateForwardRefs(BaseTestCase): - type_params=None, - format=Format.FORWARDREF, - ) -- self.assertEqual(evaluated_ref, typing.ForwardRef("doesnotexist2")) -+ self.assertEqual(evaluated_ref, EqualToForwardRef("doesnotexist2")) - - def test_evaluate_with_type_params(self): - # Use a T name that is not in globals -@@ -8857,13 +8957,6 @@ class TestEvaluateForwardRefs(BaseTestCase): - obj = object() - self.assertIs(evaluate_forward_ref(typing.ForwardRef("int"), globals={"int": obj}), obj) - -- def test_fwdref_value_is_cached(self): -- fr = typing.ForwardRef("hello") -- with self.assertRaises(NameError): -- evaluate_forward_ref(fr) -- self.assertIs(evaluate_forward_ref(fr, globals={"hello": str}), str) -- self.assertIs(evaluate_forward_ref(fr), str) -- - @skipUnless(TYPING_3_9_0, "Needs PEP 585 support") - def test_fwdref_with_owner(self): - self.assertEqual( -@@ -8908,7 +9001,7 @@ class TestEvaluateForwardRefs(BaseTestCase): - self.assertEqual(get_args(evaluated_ref1b), (Y[Tx],)) - - with self.subTest("nested string of TypeVar"): -- evaluated_ref2 = evaluate_forward_ref(typing.ForwardRef("""Y["Y['Tx']"]"""), locals={"Y": Y}) -+ evaluated_ref2 = evaluate_forward_ref(typing.ForwardRef("""Y["Y['Tx']"]"""), locals={"Y": Y, "Tx": Tx}) - self.assertEqual(get_origin(evaluated_ref2), Y) - if not TYPING_3_9_0: - self.skipTest("Nested string 'Tx' stays ForwardRef in 3.8") -diff --git a/src/typing_extensions.py b/src/typing_extensions.py -index d089d5e..baa6c4f 100644 ---- a/src/typing_extensions.py -+++ b/src/typing_extensions.py -@@ -13,6 +13,9 @@ import types as _types - import typing - import warnings - -+if sys.version_info >= (3, 14): -+ import annotationlib -+ - __all__ = [ - # Super-special typing primitives. - 'Any', -@@ -1014,21 +1017,31 @@ else: - tp_dict.__orig_bases__ = bases - - annotations = {} -+ own_annotate = None - if "__annotations__" in ns: - own_annotations = ns["__annotations__"] -- elif "__annotate__" in ns: -- # TODO: Use inspect.VALUE here, and make the annotations lazily evaluated -- own_annotations = ns["__annotate__"](1) -+ elif sys.version_info >= (3, 14): -+ if hasattr(annotationlib, "get_annotate_from_class_namespace"): -+ own_annotate = annotationlib.get_annotate_from_class_namespace(ns) -+ else: -+ # 3.14.0a7 and earlier -+ own_annotate = ns.get("__annotate__") -+ if own_annotate is not None: -+ own_annotations = annotationlib.call_annotate_function( -+ own_annotate, Format.FORWARDREF, owner=tp_dict -+ ) -+ else: -+ own_annotations = {} - else: - own_annotations = {} - msg = "TypedDict('Name', {f0: t0, f1: t1, ...}); each t must be a type" - if _TAKES_MODULE: -- own_annotations = { -+ own_checked_annotations = { - n: typing._type_check(tp, msg, module=tp_dict.__module__) - for n, tp in own_annotations.items() - } - else: -- own_annotations = { -+ own_checked_annotations = { - n: typing._type_check(tp, msg) - for n, tp in own_annotations.items() - } -@@ -1041,7 +1054,8 @@ else: - for base in bases: - base_dict = base.__dict__ - -- annotations.update(base_dict.get('__annotations__', {})) -+ if sys.version_info <= (3, 14): -+ annotations.update(base_dict.get('__annotations__', {})) - required_keys.update(base_dict.get('__required_keys__', ())) - optional_keys.update(base_dict.get('__optional_keys__', ())) - readonly_keys.update(base_dict.get('__readonly_keys__', ())) -@@ -1051,8 +1065,8 @@ else: - # is retained for backwards compatibility, but only for Python - # 3.13 and lower. - if (closed and sys.version_info < (3, 14) -- and "__extra_items__" in own_annotations): -- annotation_type = own_annotations.pop("__extra_items__") -+ and "__extra_items__" in own_checked_annotations): -+ annotation_type = own_checked_annotations.pop("__extra_items__") - qualifiers = set(_get_typeddict_qualifiers(annotation_type)) - if Required in qualifiers: - raise TypeError( -@@ -1066,8 +1080,8 @@ else: - ) - extra_items_type = annotation_type - -- annotations.update(own_annotations) -- for annotation_key, annotation_type in own_annotations.items(): -+ annotations.update(own_checked_annotations) -+ for annotation_key, annotation_type in own_checked_annotations.items(): - qualifiers = set(_get_typeddict_qualifiers(annotation_type)) - - if Required in qualifiers: -@@ -1085,7 +1099,38 @@ else: - mutable_keys.add(annotation_key) - readonly_keys.discard(annotation_key) - -- tp_dict.__annotations__ = annotations -+ if sys.version_info >= (3, 14): -+ def __annotate__(format): -+ annos = {} -+ for base in bases: -+ if base is Generic: -+ continue -+ base_annotate = base.__annotate__ -+ if base_annotate is None: -+ continue -+ base_annos = annotationlib.call_annotate_function( -+ base.__annotate__, format, owner=base) -+ annos.update(base_annos) -+ if own_annotate is not None: -+ own = annotationlib.call_annotate_function( -+ own_annotate, format, owner=tp_dict) -+ if format != Format.STRING: -+ own = { -+ n: typing._type_check(tp, msg, module=tp_dict.__module__) -+ for n, tp in own.items() -+ } -+ elif format == Format.STRING: -+ own = annotationlib.annotations_to_string(own_annotations) -+ elif format in (Format.FORWARDREF, Format.VALUE): -+ own = own_checked_annotations -+ else: -+ raise NotImplementedError(format) -+ annos.update(own) -+ return annos -+ -+ tp_dict.__annotate__ = __annotate__ -+ else: -+ tp_dict.__annotations__ = annotations - tp_dict.__required_keys__ = frozenset(required_keys) - tp_dict.__optional_keys__ = frozenset(optional_keys) - tp_dict.__readonly_keys__ = frozenset(readonly_keys) diff --git a/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/typing-extensions-4.13.2-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/typing-extensions-4.13.2-r2.ebuild deleted file mode 100644 index 68dcf5db0b8..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/typing-extensions-4.13.2-r2.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 - -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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-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 - -PATCHES=( - # https://github.com/python/typing_extensions/pull/566 - # https://github.com/python/typing_extensions/pull/592 - "${FILESDIR}/${P}-py314.patch" -) - -python_test() { - cd src || die - eunittest -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/typing-extensions-4.14.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/typing-extensions-4.14.0.ebuild index edb1594f475..f7c99d9c7dd 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/typing-extensions-4.14.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/typing-extensions-4.14.0.ebuild @@ -16,7 +16,7 @@ HOMEPAGE=" LICENSE="PSF-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/typing-extensions-4.14.0_rc1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/typing-extensions-4.14.0_rc1.ebuild deleted file mode 100644 index 63f6412380a..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/typing-extensions-4.14.0_rc1.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 - -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" -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/urllib3/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/urllib3/Manifest index c97f35e1277..ae13fe1ff61 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,2 +1,3 @@ DIST hypercorn-d1719f8c1570cbd8e6a3719ffdb14a4d72880abb.gh.tar.gz 156216 BLAKE2B fcb5f49653401e6e4079e1c770d3cd407602d4d6764437b735bd4ec04191dec59cdc930822fa2aff726ee25cddd0f71fd457dedf31026bff1da121d93af8b768 SHA512 62d6787d88a2e716f0ac04fc49f6cdc586e473a660ee754ff66961922ae78bcc75d1f78b091e78557dd60f006e8e480114738c7b4ff71beac804e4fc9603240b DIST urllib3-2.4.0.tar.gz 390672 BLAKE2B 2c5aa1f5fb210d13cd26b022a4c81b9d1dbe8a8bac26dadcf2b3c1a515df5fc2376b26aedd07badbcd36241920a1de2889c4190f02ceeafdae4732aa83055321 SHA512 d5c5ffc6ace356769f0fa80279ce1f07f3fe5913942acadac93d965612a9225bc3da94f711184ecd5b76bf893a29c7c854903c2c4e4de84edc490e6d72a80693 +DIST urllib3-2.5.0.tar.gz 393185 BLAKE2B 3885be1dae81cb63cfd0c52242b8ff342e4fb398816f94b556e929af0328f4063d705f15201005f4247b278420794984277999751170e124c23ac99c6dc881d4 SHA512 f417a2745bc9750da23916690937e5c0dfe0534354f2c1c9f056baf16554a831a28937acca2b1f23941d5b6e87a372f2e074508eaf2c3304fd1014b8afc3295e diff --git a/sdk_container/src/third_party/portage-stable/dev-python/urllib3/urllib3-2.5.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/urllib3/urllib3-2.5.0.ebuild new file mode 100644 index 00000000000..bb27fdaec9c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/urllib3/urllib3-2.5.0.ebuild @@ -0,0 +1,99 @@ +# 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=hatchling +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-0.8.0[${PYTHON_USEDEP}] ) + http2? ( + =dev-python/h2-4[${PYTHON_USEDEP}] + ) + zstd? ( >=dev-python/zstandard-0.18.0[${PYTHON_USEDEP}] ) +" +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}] + >=dev-python/zstandard-0.18.0[\${PYTHON_USEDEP}] + " "${PYTHON_TESTED[@]}") + ) +" + +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 -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local EPYTEST_XDIST=1 + epytest -p timeout -p rerunfailures --reruns=10 --reruns-delay=2 +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.80.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.80.5-r1.ebuild similarity index 96% rename from sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.80.5.ebuild rename to sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.80.5-r1.ebuild index 5a2471c0abb..a01f7b7496f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.80.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.80.5-r1.ebuild @@ -21,6 +21,9 @@ KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 RDEPEND=" ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/packaging[${PYTHON_USEDEP}] + ') " DEPEND="${RDEPEND}" BDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.84.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.84.3.ebuild index bb3d561f1bd..8c51c5e1193 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.84.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.84.3.ebuild @@ -17,7 +17,7 @@ S="${WORKDIR}/glib-${PV}/gio/gdbus-2.0/codegen" LICENSE="LGPL-2+" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos" RDEPEND=" ${PYTHON_DEPS} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.84.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.84.3.ebuild index a8beae9e148..de0e2333ece 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.84.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.84.3.ebuild @@ -14,7 +14,7 @@ LICENSE="LGPL-2.1+" SLOT="0" # /usr/bin utilities that can't be parallel installed by their nature REQUIRED_USE="${PYTHON_REQUIRED_USE}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" RDEPEND="${PYTHON_DEPS}" DEPEND="${RDEPEND}" diff --git a/sdk_container/src/third_party/portage-stable/dev-util/maturin/Manifest b/sdk_container/src/third_party/portage-stable/dev-util/maturin/Manifest index 556b2e02744..f81b7a1f00d 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 @@ -4,3 +4,5 @@ DIST maturin-1.8.6-vendor.tar.xz 15035340 BLAKE2B 0bc4016f460c704ac2be81af27842f DIST maturin-1.8.6.gh.tar.gz 551946 BLAKE2B 4fbeadeb25b69e99286238c9f7b7acb2bdde05242af760a0279664277334831a8cd03db49ddb3a0d528b6acd827d3ee3863e283318270ee53c3710c103c7461f SHA512 2616b3bcdbb96c77a3efeda5a24841675fded9d1299507c64905c94e57af15afa855c329f013a1e36527c2b8de4bf7acfb060e5d2828558da658a7b86d88bf8f DIST maturin-1.8.7-vendor.tar.xz 15558504 BLAKE2B d8cd7808544f19834248e05a1ad45f42947520147bb2a36d590dd9273f0c16cc90690a7a1a8a6a7ef1c64c41b5ef96616277b6c4122b76ed99c37bb68da06d44 SHA512 ad72f016d78e4deef871b4a5e05585c87d123c16caba7caf943d5b9cfdbfa36f22ea94b50c588ce09d51e3931bfbd88488d153cabd1c85afb82f944ee48a5227 DIST maturin-1.8.7.gh.tar.gz 553665 BLAKE2B 029c4948d0e45f1ce404fcd586a92db035e1d2b1e56c719b3a240cae79c6335a1d0ed36b5e973979da429406b07fc8292ba937c5d06f0f9140bd9d5a02874208 SHA512 5f563273d6970fbcd69b363475a393f5dc3d6c7df844c1f33e4e0f2c07228462430c22e21ab13664e664262df5fafb1f9ab6118a31fcd8cb37de0851bc670c39 +DIST maturin-1.9.0-vendor.tar.xz 15629684 BLAKE2B aa12b79df4073246f48377a8630532da497f66d13f2b6417cf40c2e955a7c454d91392fb49d49493928e0619fa9248720e87a7aa52c37df1a2fef5667a356a6f SHA512 ba8378e772d0dcc10a321e54b6a9f69043ba1451d7e538c9a53030328aeccce16afa877a3be27c578f6ef7040a16f7c45143764a592fffc081596f5304116074 +DIST maturin-1.9.0.gh.tar.gz 559678 BLAKE2B d4b79649f8d347a0504bb0eb3a883e6747e825928cbefeaa1396cbfd4a07efe0e9830f117eb1ed8c7ff0b6cf45ebe3d6148c9929280e290b1ffe515e2514881f SHA512 509fb64bcd1c24239e0c7e1e1af8ada99f6ba59e37af70e0484d060e88860b4df69dcd8ed48c4bfd4f027d368e2eb5938501920d820377f31617218c7717acc3 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.0.ebuild new file mode 100644 index 00000000000..0b54cdcc1fa --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.0.ebuild @@ -0,0 +1,157 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_UPSTREAM_PEP517=standalone +PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) +RUST_MIN_VER=1.75.0 +inherit cargo distutils-r1 flag-o-matic shell-completion toolchain-funcs + +DESCRIPTION="Build and publish crates with pyo3, rust-cpython and cffi bindings" +HOMEPAGE="https://www.maturin.rs/" +SRC_URI=" + https://github.com/PyO3/maturin/archive/refs/tags/v${PV}.tar.gz + -> ${P}.gh.tar.gz + https://dev.gentoo.org/~ionen/distfiles/${P}-vendor.tar.xz +" +# ^ tarball also includes test-crates' Cargo.lock(s) crates for tests + +LICENSE="|| ( Apache-2.0 MIT ) doc? ( CC-BY-4.0 OFL-1.1 )" +LICENSE+=" + 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 MIT + MPL-2.0 Unicode-3.0 Unicode-DFS-2016 +" # crates +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="doc +ssl test" +RESTRICT="!test? ( test )" + +RDEPEND=" + app-arch/xz-utils + app-arch/zstd:= + ssl? ( dev-libs/openssl:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + doc? ( app-text/mdbook ) + test? ( + $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') + dev-python/boltons[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] + dev-vcs/git + elibc_musl? ( dev-util/patchelf ) + ) +" + +QA_FLAGS_IGNORED="usr/bin/${PN}" + +src_prepare() { + distutils-r1_src_prepare + + # we build the Rust executable (just once) via cargo_src_compile + sed -i -e '/setuptools_rust/d' -e '/rust_extensions/d' setup.py || die + + if use test; then + # used to prevent use of network during tests, and silence pip + # if it finds unrelated issues with system packages (bug #913613) + cat > "${T}"/pip.conf <<-EOF || die + [global] + quiet = 2 + + [install] + no-index = yes + no-dependencies = yes + EOF + + # uv does not work easily w/ network-sandbox, force virtualenv + sed -i 's/"uv"/"uv-not-found"/' tests/common/mod.rs || die + + # increase timeouts for tests (bug #950332) + sed -i '/^#\[timeout/s/secs(60)/secs(300)/' tests/run.rs || die + + # used by *git_sdist_generator tests + git init -q || die + git config --global user.email "larry@gentoo.org" || die + git config --global user.name "Larry the Cow" || die + git add . || die + git commit -qm init || die + fi +} + +src_configure() { + export OPENSSL_NO_VENDOR=1 + export ZSTD_SYS_USE_PKG_CONFIG=1 + + # https://github.com/rust-lang/stacker/issues/79 + use s390 && ! is-flagq '-march=*' && + append-cflags $(test-flags-CC -march=z10) + + local myfeatures=( + # like release.yml + native-tls for better platform support than rustls + full + password-storage + $(usev ssl native-tls) + ) + + cargo_src_configure --no-default-features +} + +python_compile_all() { + cargo_src_compile + + use !doc || mdbook build -d html guide || die + + if ! tc-is-cross-compiler; then + local maturin=$(cargo_target_dir)/maturin + "${maturin}" completions bash > "${T}"/${PN} || die + "${maturin}" completions fish > "${T}"/${PN}.fish || die + "${maturin}" completions zsh > "${T}"/_${PN} || die + else + ewarn "shell completion files were skipped due to cross-compilation" + fi +} + +python_test() { + local -x MATURIN_TEST_PYTHON=${EPYTHON} + local -x PIP_CONFIG_FILE=${T}/pip.conf + local -x VIRTUALENV_SYSTEM_SITE_PACKAGES=1 + + # need this for (new) python versions not yet recognized by pyo3 + local -x PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 + + local skip=( + # picky cli output test that easily benignly fail (bug #937992) + --skip cli_tests + # avoid need for wasm over a single hello world test + --skip integration_wasm_hello_world + # fragile depending on rust version, also wants libpypy*-c.so for pypy + --skip pyo3_no_extension_module + # unimportant tests that require uv, and not obvious to get it + # to work with network-sandbox (not worth the trouble) + --skip develop_hello_world::case_2 + --skip develop_pyo3_ffi_pure::case_2 + # compliance test using zig requires an old libc to pass (bug #946967) + --skip integration_pyo3_mixed_py_subdir + # fails on sparc since rust-1.74 (bug #934573), skip for now given + # should not affect the pep517 backend which is all we need on sparc + $(usev sparc '--skip build_context::test::test_macosx_deployment_target') + ) + + cargo_src_test -- "${skip[@]}" +} + +python_install_all() { + cargo_src_install + + dodoc Changelog.md README.md + use doc && dodoc -r guide/html + + if ! tc-is-cross-compiler; then + dobashcomp "${T}"/${PN} + dofishcomp "${T}"/${PN}.fish + dozshcomp "${T}"/_${PN} + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/pkgcheck-0.10.36.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/pkgcheck-0.10.36.ebuild index c6d6e8c677b..512571dac3f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/pkgcheck-0.10.36.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/pkgcheck-0.10.36.ebuild @@ -12,7 +12,7 @@ if [[ ${PV} == *9999 ]] ; then https://github.com/pkgcore/pkgcheck.git" inherit git-r3 else - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos" inherit pypi fi diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/Manifest b/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/Manifest index 5302cd53ff8..083270b5dda 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/Manifest @@ -1,5 +1,3 @@ -DIST pkgconf-1.8.1.tar.xz 302372 BLAKE2B 591961f0b1fd185834fd8e2a672199cffc035139599817b1d56d571300d2aa800a719c9477aac4023dfade597ad3cc3b45360babe57498977568ee57077c7bbe SHA512 7a7d5204c1c9bfb6578bda56f299d1fa0300e69a133a65730b10ad77aefbf26fceb74ae77cecda326b3ed5db5736f27fcce94764b3a56d40f4bb99fecdc80bba -DIST pkgconf-2.1.1.tar.xz 311956 BLAKE2B b59e57b1118bb75bc946a1e65e037a172c2ade3a7b9da8404b3598833cd091600045de151f2db06453b23563501b2dff7fdda8967e14c0c933ac50d28ddb3cd0 SHA512 cdf0998cd87f6d5e5a6560037eb847fd9613d237858d26eec321c42f54ca40ac72b6749c48c5b32611841d701393b1217bdb6c0cba5efd2c138be10d0e8fb32d -DIST pkgconf-2.2.0.tar.xz 311920 BLAKE2B c2a89e932e7671785799f4b82beb75e92f246c152c03e88c847cedef39f2123da0544ff914d1c1512b8616f8b8cfd9f5115b33560042bcfa7ac5f78c0ceb2a27 SHA512 c4ff254c7323bdebc2595037df60e33f17fc5c222d7500a4b9d8b18c8b451ac35cd3ac90d31c920c23e9495ece2b82422de61e13286d43de3a5d1fe8211bd944 DIST pkgconf-2.3.0.tar.xz 316160 BLAKE2B cca3476df0b79cdbca798ed3a067611414e9b422e8347d0f490e7c4d0c43cdd2c7b586ac11e028a8df365d4ea4194f46b1d9fc0acd0f5fd6b4a5548673a8f853 SHA512 869fe0a7a2e06e9da37ff672b991dad60a9a7c9df2c65b78b2aa70dba10920650fb946d5a9c8019ea54a510835acc2eb4244092fa36d0339bd6764ff84e8542c DIST pkgconf-2.4.3.tar.xz 321352 BLAKE2B 5ca90b1b97e5516369e7042952418d5046faee02ff67144b0805c3c007507c42400825cfe73ac2c4df3f11dab4d5abba24b52abe930a3b25abbcbbddb3a06a31 SHA512 7e59b6aaf875ec3fc8c225985937384d2aef57d9daf64b7ea88242bf1a11349fe52cf6d1238d728f0509599982d69c761a0f01e8f8e24de028db58288760896f +DIST pkgconf-2.5.1.tar.xz 328064 BLAKE2B 0995c1d649876d27e9275a77b702c0c100979c7b83fb7b58c925ca287be5e1568dd7ae2781dac51beb9e84a41d4424428f0542e4de488c45d005d602e76e1277 SHA512 e654c3a460e5f0f801e8ac43ad9086f397d1da0553186ff05f5f0e18ffdac99fb652fd9b6c0379db4bc8307699699d69bc66d13cc85a4a6b0cd36462f5948a1d diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/files/pkgconf-2.5.1-buf_sz.patch b/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/files/pkgconf-2.5.1-buf_sz.patch new file mode 100644 index 00000000000..5a377c3f368 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/files/pkgconf-2.5.1-buf_sz.patch @@ -0,0 +1,19 @@ +https://github.com/pkgconf/pkgconf/commit/aa6b5c4ca9cb5ea723b5c11e68a385fe46fd54a8 + +From aa6b5c4ca9cb5ea723b5c11e68a385fe46fd54a8 Mon Sep 17 00:00:00 2001 +From: Ariadne Conill +Date: Tue, 24 Jun 2025 16:31:21 -0700 +Subject: [PATCH] libpkgconf: dependency: make sure buf_sz is at least 1 byte + +--- a/libpkgconf/dependency.c ++++ b/libpkgconf/dependency.c +@@ -321,7 +321,7 @@ pkgconf_dependency_parse_str(pkgconf_client_t *client, pkgconf_list_t *deplist_h + + memset(cmpname, '\0', sizeof cmpname); + +- buf_sz = strlen(depends) * 2; ++ buf_sz = (strlen(depends) * 2) + 1; + buf = calloc(1, buf_sz); + if (buf == NULL) + return; + diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-1.8.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-1.8.1.ebuild deleted file mode 100644 index 01df0c8e149..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-1.8.1.ebuild +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 2012-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit multilib multilib-minimal - -if [[ ${PV} == "9999" ]] ; then - inherit autotools git-r3 - EGIT_REPO_URI="https://gitea.treehouse.systems/ariadne/pkgconf.git" -else - SRC_URI="https://distfiles.ariadne.space/${PN}/${P}.tar.xz" - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="pkg-config compatible replacement with no dependencies other than C99" -HOMEPAGE="https://gitea.treehouse.systems/ariadne/pkgconf" - -LICENSE="ISC" -SLOT="0/3" -IUSE="test" - -# tests require 'kyua' -RESTRICT="!test? ( test )" - -BDEPEND=" - test? ( - dev-libs/atf - dev-util/kyua - ) -" -RDEPEND=" - !dev-util/pkgconfig -" - -MULTILIB_CHOST_TOOLS=( - /usr/bin/pkgconf$(get_exeext) -) - -src_prepare() { - default - - [[ ${PV} == "9999" ]] && eautoreconf - MULTILIB_CHOST_TOOLS+=( - /usr/bin/pkg-config$(get_exeext) - ) -} - -multilib_src_configure() { - local ECONF_SOURCE="${S}" - local args=( - --with-system-includedir="${EPREFIX}/usr/include" - --with-system-libdir="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir)" - ) - econf "${args[@]}" -} - -multilib_src_test() { - unset PKG_CONFIG_LIBDIR PKG_CONFIG_PATH - default -} - -multilib_src_install() { - default - - dosym pkgconf$(get_exeext) /usr/bin/pkg-config$(get_exeext) - dosym pkgconf.1 /usr/share/man/man1/pkg-config.1 -} - -multilib_src_install_all() { - einstalldocs - find "${ED}" -type f -name '*.la' -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-2.2.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-2.2.0.ebuild deleted file mode 100644 index 23b3cffe185..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-2.2.0.ebuild +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 2012-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit multilib multilib-minimal - -if [[ ${PV} == 9999 ]] ; then - inherit autotools git-r3 - EGIT_REPO_URI="https://gitea.treehouse.systems/ariadne/pkgconf.git" -else - SRC_URI="https://distfiles.ariadne.space/${PN}/${P}.tar.xz" - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="pkg-config compatible replacement with no dependencies other than C99" -HOMEPAGE="https://gitea.treehouse.systems/ariadne/pkgconf" - -LICENSE="ISC" -SLOT="0/5" -IUSE="+native-symlinks test" - -RESTRICT="!test? ( test )" - -BDEPEND=" - test? ( - dev-libs/atf - dev-util/kyua - ) -" -RDEPEND="!dev-util/pkgconfig" - -src_prepare() { - default - - [[ ${PV} == 9999 ]] && eautoreconf - - MULTILIB_CHOST_TOOLS=( - /usr/bin/pkgconf$(get_exeext) - /usr/bin/pkg-config$(get_exeext) - ) -} - -multilib_src_configure() { - local myeconfargs=( - --with-system-includedir="${EPREFIX}/usr/include" - --with-system-libdir="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir)" - ) - - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" -} - -multilib_src_test() { - unset PKG_CONFIG_LIBDIR PKG_CONFIG_PATH - default -} - -multilib_src_install() { - default - - dosym pkgconf$(get_exeext) /usr/bin/pkg-config$(get_exeext) - dosym pkgconf.1 /usr/share/man/man1/pkg-config.1 -} - -multilib_src_install_all() { - einstalldocs - - if ! use native-symlinks; then - rm "${ED}"/usr/bin/{pkgconf,pkg-config}$(get_exeext) || die - fi - - find "${ED}" -type f -name '*.la' -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-2.1.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-2.5.1.ebuild similarity index 78% rename from sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-2.1.1.ebuild rename to sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-2.5.1.ebuild index 279adf9227c..6654342ab94 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-2.1.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-2.5.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 2012-2024 Gentoo Authors +# Copyright 2012-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -7,17 +7,17 @@ inherit multilib multilib-minimal if [[ ${PV} == 9999 ]] ; then inherit autotools git-r3 - EGIT_REPO_URI="https://gitea.treehouse.systems/ariadne/pkgconf.git" + EGIT_REPO_URI="https://github.com/pkgconf/pkgconf" else SRC_URI="https://distfiles.ariadne.space/${PN}/${P}.tar.xz" - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi DESCRIPTION="pkg-config compatible replacement with no dependencies other than C99" -HOMEPAGE="https://gitea.treehouse.systems/ariadne/pkgconf" +HOMEPAGE="https://github.com/pkgconf/pkgconf" LICENSE="ISC" -SLOT="0/4" +SLOT="0/7" IUSE="+native-symlinks test" RESTRICT="!test? ( test )" @@ -30,6 +30,10 @@ BDEPEND=" " RDEPEND="!dev-util/pkgconfig" +PATCHES=( + "${FILESDIR}"/${P}-buf_sz.patch +) + src_prepare() { default diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-9999.ebuild index c2e021d2a39..0b8ad1b53b8 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-9999.ebuild @@ -17,7 +17,7 @@ DESCRIPTION="pkg-config compatible replacement with no dependencies other than C HOMEPAGE="https://github.com/pkgconf/pkgconf" LICENSE="ISC" -SLOT="0/6" +SLOT="0/7" IUSE="+native-symlinks test" RESTRICT="!test? ( test )" 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 c92741e4dca..9b7047f2b96 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,3 +1,6 @@ DIST git-2.49.0.tar.xz 7771796 BLAKE2B c9a58cb4bcbc33d3c6ede2ce6e6131af3998669419c8d8e4317c52ee14ae4bfcdd209780c6dda31cd772bdb703096729de17f21579bf7f0bb830bc6c9e1d7ffd SHA512 81a16415890305fc6cfd14ade8bee76779feba01f51c5446f40c14211654342c68ef0911859fa6e8e9ff0a718847bb44ee4156d03a19c9165df19ba91e09e1f0 +DIST git-2.50.0.tar.xz 7878256 BLAKE2B 2ee60be2d0e749e898016f44107473d6e4dc30f70c73a94b3433f5a479a5a8989d000ca4084fabd32a7d0ace0914136c5c023bd72946ef7003affd535a98b5ee SHA512 a8fdf5b0ab156822324b76aa7200071eb7244f7714807c39f05bc3361bc261272a6fdd1d0bc3a097dbbf27e92c02eda612aac17cb2a45ddfa222d74937cac67f DIST git-htmldocs-2.49.0.tar.xz 1602472 BLAKE2B d3b0d49b7f7046dfd802145e37760d31ef048ecbbfb75e5bf904edd8d0d0cad56c118d843e06d1d72b159917f6bd0f6fa2413bba3f6ba0de041d8e8fdc247f94 SHA512 effc0ecb3e84febb80de208ad4b8bb3859c171aedac24fdd4f52c07d33dedef16c20ac16bc6c6fbbb9d30b0926c08be22c78405614732d5e2cf24e90bd93384f +DIST git-htmldocs-2.50.0.tar.xz 1615020 BLAKE2B 2bad7ed783fd466d782c570e6d95c6e9860db0e4e4fe4d3fd995c0e22cd99aeade6671cd2ed58a8daf8903561b72cbdf212cf60ac3b431012f31da0ea8e24d25 SHA512 1b74a36b3ae2beedc5eb1f66bd31fc4f0d332cf48238d33412650b952086eb1937dbb4ab28a9ec968cc068a7454d03a7f17df38a0555aa526bbfb63f3a328d1f DIST git-manpages-2.49.0.tar.xz 594760 BLAKE2B c5a1810e1369cc94c93716db5baf9d217e9c47c824cab8e978128ff7e8fe38119b64dd43fe4186e561f2b230d9e82ec254da0080b9a568dc31ae7ea73e46d612 SHA512 6347bf0d580634c3c78ff93578e088b31ccd5ebd844678a1255f82c5ceb1a301829701daf4212d8ca0f508fcd03cfef52b727a11f1c6d37346adbd709d0b041a +DIST git-manpages-2.50.0.tar.xz 598416 BLAKE2B bdaacecb12b0237e810d3515fc6822f0ec161645fff15ff919356a6146dee75fd3952ee77d809b22c8daa0e1ca78d6de6a0002442b54ab1f584365e5806bc8e4 SHA512 573a4450d4c11be2ee89b921ee8b3d3559e207b64683263d43c51522b55cc5e2d09f3bfa95fed187da890e1442dd8e2ef48df15c9472c64932271e59cdcf4dd8 diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.50.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.50.0.ebuild new file mode 100644 index 00000000000..c890d821700 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.50.0.ebuild @@ -0,0 +1,499 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GENTOO_DEPEND_ON_PERL=no + +# bug #329479: git-remote-testgit is not multiple-version aware +PYTHON_COMPAT=( python3_{11..14} ) + +inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd meson + +PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN" + +if [[ ${PV} == *9999 ]]; then + EGIT_REPO_URI="https://git.kernel.org/pub/scm/git/git.git" + + inherit git-r3 + # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches. + # See https://git-scm.com/docs/gitworkflows#_graduation + # In order of stability: + # 9999-r0: maint + # 9999-r1: master + # 9999-r2: next + # 9999-r3: seen + case ${PVR} in + 9999) EGIT_BRANCH=maint ;; + 9999-r1) EGIT_BRANCH=master ;; + 9999-r2) EGIT_BRANCH=next;; + 9999-r3) EGIT_BRANCH=seen ;; + esac +fi + +MY_PV="${PV/_rc/.rc}" +MY_P="${PN}-${MY_PV}" + +DOC_VER="${MY_PV}" + +DESCRIPTION="Stupid content tracker: distributed VCS designed for speed and efficiency" +HOMEPAGE="https://www.git-scm.com/" + +if [[ ${PV} != *9999 ]]; then + SRC_URI_SUFFIX="xz" + SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git" + + [[ ${PV/rc} != ${PV} ]] && SRC_URI_KORG+='/testing' + + SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}" + SRC_URI+=" ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}" + SRC_URI+=" doc? ( ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} )" + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + fi +fi + +S="${WORKDIR}"/${MY_P} + +LICENSE="GPL-2" +SLOT="0" +IUSE="+curl cgi cvs doc keyring +gpg highlight +iconv mediawiki +nls +pcre perforce +perl +safe-directory selinux subversion test tk +webdav xinetd" + +# Common to both DEPEND and RDEPEND +DEPEND=" + dev-libs/openssl:= + sys-libs/zlib + curl? ( + net-misc/curl + webdav? ( dev-libs/expat ) + ) + keyring? ( + app-crypt/libsecret + dev-libs/glib:2 + ) + iconv? ( virtual/libiconv ) + pcre? ( dev-libs/libpcre2:= ) + perl? ( dev-lang/perl:=[-build(-)] ) + tk? ( dev-lang/tk:= ) +" +RDEPEND=" + ${DEPEND} + gpg? ( app-crypt/gnupg ) + perl? ( + dev-perl/Error + dev-perl/MailTools + dev-perl/Authen-SASL + >=virtual/perl-libnet-3.110.0-r4[ssl] + cgi? ( + dev-perl/CGI + highlight? ( app-text/highlight ) + ) + cvs? ( + >=dev-vcs/cvsps-2.1:0 + dev-perl/DBI + dev-perl/DBD-SQLite + ) + 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-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999.ebuild index 53022455c16..c890d821700 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 @@ -149,12 +149,11 @@ RESTRICT="!test? ( test )" PATCHES=( "${FILESDIR}"/${PN}-2.48.1-macos-no-fsmonitor.patch - "${FILESDIR}"/${PN}-2.49.0-meson-use-test_environment-conditionally.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 + "${FILESDIR}"/${PN}-2.50.0-diff-implement-config.diff.renames-copies-harder.patch ) pkg_setup() { @@ -269,12 +268,15 @@ src_configure() { meson_src_configure if use tk ; then - ( - EMESON_SOURCE="${S}"/gitk-git - BUILD_DIR="${WORKDIR}"/gitk-git_build - emesonargs=() - meson_src_configure - ) + 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 } @@ -313,14 +315,14 @@ src_compile() { 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 - ) - + 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 @@ -460,13 +462,14 @@ src_install() { 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 + 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 diff --git a/sdk_container/src/third_party/portage-stable/eclass/cmake.eclass b/sdk_container/src/third_party/portage-stable/eclass/cmake.eclass index f327521e9fc..2e799f14352 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/cmake.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/cmake.eclass @@ -123,6 +123,12 @@ fi # If set, skip detection of CMakeLists.txt unsupported in CMake 4 in case of # false positives (e.g. unused outdated bundled libs). +# @ECLASS_VARIABLE: _CMAKE_MINREQVER_UNSUPPORTED +# @DEFAULT_UNSET +# @DESCRIPTION: +# Internal status set by _cmake_minreqver-lt(); is true if an unsupported +# cmake_minimum_required value was detected. + # @ECLASS_VARIABLE: CMAKE_QA_SRC_DIR_READONLY # @USER_VARIABLE # @DEFAULT_UNSET @@ -321,6 +327,25 @@ _cmake_check_build_dir() { mkdir -p "${BUILD_DIR}" || die } +# @FUNCTION: _cmake_minreqver-lt +# @USAGE: +# @INTERNAL +# @DESCRIPTION: +# Internal function for detecting occurrence of lower-than-specified +# in cmake_minimum_required of a given CMake file . +# Returns 0 if the regex matched (a lower-than-specified version found). +_cmake_minreqver-lt() { + local ver chk=1 + ver=$(sed -ne "/^\s*cmake_minimum_required/I{s/.*\(\.\.\.*\|\s\)\([0-9][0-9.]*\)\([)]\|\s\).*$/\2/p;q}" \ + "${2}" 2>/dev/null \ + ) + if [[ -n ${ver} ]] && ver_test "${ver}" -lt "${1}"; then + _CMAKE_MINREQVER_UNSUPPORTED=true + chk=0 + fi + return ${chk} +} + # @FUNCTION: _cmake_modify-cmakelists # @INTERNAL # @DESCRIPTION: @@ -332,18 +357,26 @@ _cmake_modify-cmakelists() { # Only edit the files once grep -qs "<<< Gentoo configuration >>>" "${CMAKE_USE_DIR}"/CMakeLists.txt && return 0 - # Comment out all set ( value) - find "${CMAKE_USE_DIR}" -name CMakeLists.txt -exec sed \ - -e '/^[[:space:]]*set[[:space:]]*([[:space:]]*CMAKE_BUILD_TYPE\([[:space:]].*)\|)\)/I{s/^/#_cmake_modify_IGNORE /g}' \ - -e '/^[[:space:]]*set[[:space:]]*([[:space:]]*CMAKE_COLOR_MAKEFILE[[:space:]].*)/I{s/^/#_cmake_modify_IGNORE /g}' \ - -e '/^[[:space:]]*set[[:space:]]*([[:space:]]*CMAKE_INSTALL_PREFIX[[:space:]].*)/I{s/^/#_cmake_modify_IGNORE /g}' \ - -e '/^[[:space:]]*set[[:space:]]*([[:space:]]*CMAKE_VERBOSE_MAKEFILE[[:space:]].*)/I{s/^/#_cmake_modify_IGNORE /g}' \ - -i {} + || die "${LINENO}: failed to disable hardcoded settings" - local x - for x in $(find "${CMAKE_USE_DIR}" -name CMakeLists.txt -exec grep -l "^#_cmake_modify_IGNORE" {} +;); do - einfo "Hardcoded definition(s) removed in $(echo "${x}" | cut -c $((${#CMAKE_USE_DIR}+2))-):" - einfo "$(grep -se '^#_cmake_modify_IGNORE' ${x} | cut -c 22-99)" - done + local file + while read -d '' -r file ; do + # Comment out all set ( value) + sed \ + -e '/^[[:space:]]*set[[:space:]]*([[:space:]]*CMAKE_BUILD_TYPE\([[:space:]].*)\|)\)/I{s/^/#_cmake_modify_IGNORE /g}' \ + -e '/^[[:space:]]*set[[:space:]]*([[:space:]]*CMAKE_\(COLOR_MAKEFILE\|INSTALL_PREFIX\|VERBOSE_MAKEFILE\)[[:space:]].*)/I{s/^/#_cmake_modify_IGNORE /g}' \ + -i "${file}" || die "failed to disable hardcoded settings" + readarray -t mod_lines < <(grep -se "^#_cmake_modify_IGNORE" "${file}") + if [[ ${#mod_lines[*]} -gt 0 ]]; then + einfo "Hardcoded definition(s) removed in ${file/${CMAKE_USE_DIR%\/}\//}:" + local mod_line + for mod_line in "${mod_lines[@]}"; do + einfo "${mod_line:22:99}" + done + fi + # Detect unsupported minimum CMake versions unless CMAKE_QA_COMPAT_SKIP is set + if [[ -z ${_CMAKE_MINREQVER_UNSUPPORTED} ]] && ! [[ ${CMAKE_QA_COMPAT_SKIP} ]]; then + _cmake_minreqver-lt "3.5" "${file}" + fi + done < <(find "${CMAKE_USE_DIR}" -type f -iname "CMakeLists.txt" -print0 || die) # NOTE Append some useful summary here cat >> "${CMAKE_USE_DIR}"/CMakeLists.txt <<- _EOF_ || die @@ -403,6 +436,20 @@ cmake_src_prepare() { # Remove dangerous things. _cmake_modify-cmakelists + if [[ ${_CMAKE_MINREQVER_UNSUPPORTED} ]]; then + eqawarn "QA Notice: Compatibility with CMake < 3.5 has been removed from CMake 4," + eqawarn "${CATEGORY}/${PN} will fail to build w/o a fix." + eqawarn "See also tracker bug #951350; check existing bug or file a new one for" + eqawarn "this package, and take it upstream." + if has_version -b ">=dev-build/cmake-4"; then + eqawarn "CMake 4 detected; building with -DCMAKE_POLICY_VERSION_MINIMUM=3.5" + eqawarn "This is merely a workaround and *not* a permanent fix." + fi + if [[ ${EAPI} == 7 ]]; then + eqawarn "QA Notice: EAPI=7 detected; this package is now a prime last-rites target." + fi + fi + if [[ ${EAPI} == 7 ]]; then popd > /dev/null || die fi @@ -451,19 +498,6 @@ cmake_src_configure() { # Fix xdg collision with sandbox xdg_environment_reset - local file ver cmreq_isold - if ! [[ ${CMAKE_QA_COMPAT_SKIP} ]]; then - while read -d '' -r file ; do - ver=$(sed -ne "/cmake_minimum_required/I{s/.*\(\.\.\.*\|\s\)\([0-9.]*\)\([)]\|\s\).*$/\2/p;q}" \ - "${file}" 2>/dev/null \ - ) - - if [[ -n $ver ]] && ver_test $ver -lt "3.5"; then - cmreq_isold=true - fi - done < <(find "${CMAKE_USE_DIR}" -type f -iname "CMakeLists.txt" -print0) - fi - # Prepare Gentoo override rules (set valid compiler, append CPPFLAGS etc.) local build_rules=${BUILD_DIR}/gentoo_rules.cmake @@ -644,19 +678,8 @@ cmake_src_configure() { cmakeargs+=( -C "${CMAKE_EXTRA_CACHE_FILE}" ) fi - if [[ ${cmreq_isold} ]]; then - eqawarn "QA Notice: Compatibility with CMake < 3.5 has been removed from CMake 4," - eqawarn "${CATEGORY}/${PN} will fail to build w/o a fix." - eqawarn "See also tracker bug #951350; check existing bug or file a new one for" - eqawarn "this package, and take it upstream." - if [[ ${EAPI} == 7 ]]; then - eqawarn "QA Notice: EAPI=7 detected; this package is now a prime last-rites target." - fi - if has_version -b ">=dev-build/cmake-4"; then - eqawarn "QA Notice: CMake 4 detected; building with -DCMAKE_POLICY_VERSION_MINIMUM=3.5" - eqawarn "This is merely a workaround and *not* a permanent fix." - cmakeargs+=( -DCMAKE_POLICY_VERSION_MINIMUM=3.5 ) - fi + if [[ ${_CMAKE_MINREQVER_UNSUPPORTED} ]] && has_version -b ">=dev-build/cmake-4"; then + cmakeargs+=( -DCMAKE_POLICY_VERSION_MINIMUM=3.5 ) fi pushd "${BUILD_DIR}" > /dev/null || die @@ -784,6 +807,25 @@ cmake_src_install() { einstalldocs popd > /dev/null || die fi + + local file files=() + while read -d '' -r file ; do + # Detect unsupported minimum CMake versions unless CMAKE_QA_COMPAT_SKIP is set + if ! [[ ${CMAKE_QA_COMPAT_SKIP} ]]; then + _cmake_minreqver-lt "3.5" "${file}" && files+=( "${file#"${D}"}" ) + fi + done < <(find "${D}" -type f -iname "*.cmake" -print0 || die) + if [[ ${#files[*]} -gt 0 ]]; then + eqawarn "QA Notice: Package installs CMake module(s) incompatible with CMake 4," + eqawarn "breaking any packages relying on it:" + eqawarn + for file in "${files[@]}"; do + eqawarn " ${file}" + done + eqawarn + eqawarn "See also tracker bug #951350; check existing bug or file a new one for" + eqawarn "this package, and take it upstream." + fi } fi diff --git a/sdk_container/src/third_party/portage-stable/eclass/distutils-r1.eclass b/sdk_container/src/third_party/portage-stable/eclass/distutils-r1.eclass index ba97a95f579..b9366d18755 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 @@ -561,6 +561,20 @@ distutils_enable_tests() { test_pkgs+=' dev-python/pytest-xdist[${PYTHON_USEDEP}]' fi + local plugin + _set_epytest_plugins + for plugin in "${EPYTEST_PLUGINS[@]}"; do + case ${plugin} in + pkgcore) + plugin=sys-apps/${plugin} + ;; + *) + plugin=dev-python/${plugin} + ;; + esac + test_pkgs+=" ${plugin}[\${PYTHON_USEDEP}]" + done + if [[ ! ${DISTUTILS_SINGLE_IMPL} ]]; then test_deps+=" ${test_pkgs//'${PYTHON_USEDEP}'/${PYTHON_USEDEP}}" else diff --git a/sdk_container/src/third_party/portage-stable/eclass/dot-a.eclass b/sdk_container/src/third_party/portage-stable/eclass/dot-a.eclass index f82e5da5be8..ffd34d9e08a 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/dot-a.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/dot-a.eclass @@ -91,7 +91,7 @@ strip-lto-bytecode() { mapfile -t -d '' files < <(find -H "${@}" -type f \( -name '*.a' -or -name '*.o' \) -print0) - toolchain_type= + local toolchain_type= tc-is-gcc && toolchain_type=gnu tc-is-clang && toolchain_type=llvm diff --git a/sdk_container/src/third_party/portage-stable/eclass/perl-module.eclass b/sdk_container/src/third_party/portage-stable/eclass/perl-module.eclass index 27cd053f0ea..29b4959bfa9 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/perl-module.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/perl-module.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: perl-module.eclass @@ -190,9 +190,6 @@ LICENSE="${LICENSE:-|| ( Artistic GPL-1+ )}" # (EAPI=8 and later) This Bash array contains parameters to the make call # from ExtUtils::MakeMaker. Replaces mymake in EAPI=7 and earlier. # Defaults to ( OPTIMIZE="${CFLAGS}" ) -if [[ $(declare -p DIST_MAKE 2>&-) != "declare -a DIST_MAKE="* ]]; then - DIST_MAKE=( OPTIMIZE="${CFLAGS}" ) -fi DIST_NAME=${DIST_NAME:-${PN}} DIST_P=${DIST_NAME}-${DIST_VERSION:-${PV}} @@ -234,6 +231,10 @@ perl-module_src_prepare() { perl-module_src_configure() { debug-print-function ${FUNCNAME} "$@" + if [[ $(declare -p DIST_MAKE 2>&-) != "declare -a DIST_MAKE="* ]]; then + DIST_MAKE=( OPTIMIZE="${CFLAGS}" ) + fi + # Perl runs LD with LDFLAGS export CCLD=$(tc-getCC) unset LD 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 840b820d005..dce565b8b03 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 @@ -1273,6 +1273,78 @@ _python_check_occluded_packages() { # parameter, when calling epytest. The listed files will be entirely # skipped from test collection. +# @ECLASS_VARIABLE: EPYTEST_PLUGINS +# @DEFAULT_UNSET +# @DESCRIPTION: +# An array of pytest plugin package names (without categories) to use +# for the package. It has a twofold purpose: +# +# 1. When set prior to calling distutils_enable_tests, it causes +# dependencies on the specified pytest plugins to be added. +# +# 2. When plugin autoloading is disabled, it causes "-p" arguments +# loading specified plugins to be added. +# +# Defaults to an empty list. +# +# The eclasses explicitly handle a number of pytest plugins, and assume +# the default of "dev-python/${package}" and obtain "-p" via entry +# points. If this is incorrect for some plugin package, please report +# a bug. +# +# This is not a perfect solution, and may not be sufficient for some +# packages. In these cases, either plugin autoloading should be used +# or PYTEST_PLUGINS environment variable may be used directly (see +# pytest documentation). +# +# For pytest-timeout and pytest-xdist plugins, it is generally +# preferable to use EPYTEST_TIMEOUT and EPYTEST_XDIST options +# that handle passing all needed options. + +# @ECLASS_VARIABLE: EPYTEST_PLUGIN_AUTOLOAD +# @DEFAULT_UNSET +# @DESCRIPTION: +# If set to a non-empty value, permits pytest plugin autoloading. +# Otherwise, PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 is set to disable it. +# +# If EPYTEST_PLUGINS is set explicitly or EAPI is 9 or later, +# defaults to disabled. Otherwise, defaults to enabled. +# The recommended way to disable it in EAPI 8 or earlier is to set +# EPYTEST_PLUGINS (possibly to an empty array). + +# @FUNCTION: _set_epytest_plugins +# @INTERNAL +# @DESCRIPTION: +# Check if EPYTEST_PLUGINS is set correctly, and set the default +# if it is not. +_set_epytest_plugins() { + debug-print-function ${FUNCNAME} "$@" + + # TODO: drop BASH_VERSINFO check when we require EAPI 8 + if [[ ${BASH_VERSINFO[0]} -ge 5 ]]; then + [[ ${EPYTEST_PLUGINS@a} == *a* ]] + else + [[ $(declare -p EPYTEST_PLUGINS) == "declare -a"* ]] + fi + if [[ ${?} -eq 0 ]]; then + # EPYTEST_PLUGINS set explicitly -- disable autoloading + : "${EPYTEST_PLUGIN_AUTOLOAD:=}" + else + if ! declare -p EPYTEST_PLUGINS &>/dev/null; then + # EPYTEST_PLUGINS unset -- default to empty. + # EPYTEST_PLUGIN_AUTOLOAD default depends on EAPI. + EPYTEST_PLUGINS=() + if [[ ${EAPI} != [78] ]]; then + : "${EPYTEST_PLUGIN_AUTOLOAD:=}" + else + : "${EPYTEST_PLUGIN_AUTOLOAD:=1}" + fi + else + die 'EPYTEST_PLUGINS must be an array.' + fi + fi +} + # @ECLASS_VARIABLE: EPYTEST_TIMEOUT # @DEFAULT_UNSET # @DESCRIPTION: @@ -1324,6 +1396,9 @@ epytest() { local color=yes [[ ${NO_COLOR} ]] && color=no + mkdir -p "${T}/pytest-xml" || die + local junit_xml=$(mktemp "${T}/pytest-xml/${EPYTHON}-XXX.xml" || die) + local args=( # verbose progress reporting and tracebacks -vv @@ -1345,9 +1420,44 @@ epytest() { # we don't need to preserve them -o tmp_path_retention_count=0 -o tmp_path_retention_policy=failed + # write a junit .xml file to aid machine processing of results + --junit-xml="${junit_xml}" + # use xunit1 format as that includes an explicit path + -o junit_family=xunit1 ) - if [[ ! ${PYTEST_DISABLE_PLUGIN_AUTOLOAD} ]]; then + if has_version ">=dev-python/pytest-8.4.0"; then + args+=( + # do not repeat (potentially multi-line) exception messages + # in the "short summary" section to make it more readable; + # we have them in the backtraces anyway + --force-short-summary + ) + fi + + _set_epytest_plugins + if [[ ! ${EPYTEST_PLUGIN_AUTOLOAD} ]]; then + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + fi + + if [[ ${PYTEST_DISABLE_PLUGIN_AUTOLOAD} ]]; then + if [[ ${EPYTEST_PLUGINS[@]} ]]; then + local plugin_args=() + readarray -t -d '' plugin_args < <( + "${EPYTHON}" - "${EPYTEST_PLUGINS[@]}" <<-EOF || die + import sys + from importlib.metadata import distribution, entry_points + packages = {distribution(x).name for x in sys.argv[1:]} + eps = { + f"-p{x.name}" for x in entry_points(group="pytest11") + if x.dist.name in packages + } + sys.stdout.write("\\0".join(sorted(eps))) + EOF + ) + args+=( "${plugin_args[@]}" ) + fi + else args+=( # disable the undesirable-dependency plugins by default to # trigger missing argument strips. strip options that require diff --git a/sdk_container/src/third_party/portage-stable/licenses/Broadcom-tod b/sdk_container/src/third_party/portage-stable/licenses/Broadcom-tod new file mode 100644 index 00000000000..c83f30299ad --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/licenses/Broadcom-tod @@ -0,0 +1,68 @@ +Files: usr/* lib/* +Copyright: Copyright Ā© 2005-2021 Broadcom. All Rights Reserved. +The term ā€œBroadcomā€ refers to Broadcom Inc. and/or its subsidiaries. +License: Proprietary +SOFTWARE LICENSE AGREEMENT + +The accompanying software in binary code form (ā€œSoftwareā€), is licensed to you, +or, if you are accepting on behalf of an entity, the entity and its affiliates +exercising rights hereunder (ā€œLicenseeā€) subject to the terms of this software +license agreement (ā€œAgreementā€), unless Licensee and Broadcom Corporation +(ā€œBroadcomā€) execute a separate written software license agreement governing +use of the Software. ANY USE, REPRODUCTION, OR DISTRIBUTION OF THE SOFTWARE +CONSTITUTES LICENSEE’S ACCEPTANCE OF THIS AGREEMENT. + +1.License. Subject to the terms and conditions of this Agreement, +Broadcom hereby grants to Licensee a limited, non-exclusive, non-transferable, +royalty-free license: (i) to use and integrate the Software with any other +software; and (ii) to reproduce and distribute the Software complete, +unmodified, and as provided by Broadcom, solely for use with Broadcom +proprietary integrated circuit product(s) sold by Broadcom with which the +Software was designed to be used, or their successors. + +2.Restrictions. Licensee shall distribute Software with a copy of this +Agreement. Licensee shall not remove, efface or obscure any copyright or +trademark notices from the Software. Reproductions of the Broadcom copyright +notice shall be included with each copy of the Software, except where such +Software is embedded in a manner not readily accessible to the end user. +Licensee shall not: (i) use, license, sell or otherwise distribute the Software +except as provided in this Agreement; (ii) attempt to modify in any way, +reverse engineer, decompile or disassemble any portion of the Software; or +(iii) use the Software or other material in violation of any applicable law or +regulation, including but not limited to any regulatory agency. This Agreement +shall automatically terminate upon Licensee’s failure to comply with any of the +terms of this Agreement. In such event, Licensee will destroy all copies of the +Software and its component parts. + +3.Ownership. The Software is licensed and not sold. Title to and +ownership of the Software, including all intellectual property rights thereto, +and any portion thereof remain with Broadcom or its licensors. Licensee hereby +covenants that it will not assert any claim that the Software created by or for +Broadcom infringe any intellectual property right owned or controlled by +Licensee. + +4.Disclaimer. THE SOFTWARE IS OFFERED ā€œAS IS,ā€ AND BROADCOM PROVIDES AND +GRANTS AND LICENSEE RECEIVES NO SUPPORT AND NO WARRANTIES OF ANY KIND, EXPRESS +OR IMPLIED, BY STATUTE, COMMUNICATION OR CONDUCT WITH LICENSEE, OR OTHERWISE. +BROADCOM SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A SPECIFIC PURPOSE, OR NONINFRINGEMENT CONCERNING THE SOFTWARE OR +ANY UPGRADES TO OR DOCUMENTATION FOR THE SOFTWARE. WITHOUT LIMITATION OF THE +ABOVE, BROADCOM GRANTS NO WARRANTY THAT THE SOFTWARE IS ERROR-FREE OR WILL +OPERATE WITHOUT INTERRUPTION, AND GRANTS NO WARRANTY REGARDING ITS USE OR THE +RESULTS THEREFROM INCLUDING, WITHOUT LIMITATION, ITS CORRECTNESS, ACCURACY, OR +RELIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM +OR ANY OF ITS LICENSORS HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER FOR BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE) OR +OTHERWISE, ARISING OUT OF THIS AGREEMENT OR USE, REPRODUCTION, OR DISTRIBUTION +OF THE SOFTWARE, INCLUDING BUT NOT LIMITED TO LOSS OF DATA AND LOSS OF PROFITS, +EVEN IF SUCH PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THESE +LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY +LIMITED REMEDY. + +5.Export Laws. LICENSEE UNDERSTANDS AND AGREES THAT THE SOFTWARE IS +SUBJECT TO UNITED STATES AND OTHER APPLICABLE EXPORT-RELATED LAWS AND +REGULATIONS AND THAT LICENSEE MAY NOT EXPORT, RE-EXPORT OR TRANSFER THE +SOFTWARE OR ANY DIRECT PRODUCT OF THE SOFTWARE EXCEPT AS PERMITTED UNDER THOSE +LAWS. WITHOUT LIMITING THE FOREGOING, EXPORT, RE-EXPORT, OR TRANSFER OF THE +SOFTWARE TO CUBA, IRAN, NORTH KOREA, SUDAN, AND SYRIA IS PROHIBITED. diff --git a/sdk_container/src/third_party/portage-stable/licenses/NVIDIA-2023 b/sdk_container/src/third_party/portage-stable/licenses/NVIDIA-2023 new file mode 100644 index 00000000000..22904fdeb0d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/licenses/NVIDIA-2023 @@ -0,0 +1,340 @@ +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 systems 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 Jurisdiction. + +This Agreement will be governed in all respects by the laws of the United States +and the laws of the State of Delaware, without regard to conflict of laws +principles or the United Nations Convention on Contracts for the International +Sale of Goods. The state and federal courts residing in Santa Clara County, +California will have exclusive jurisdiction over any dispute or claim arising +out of or related to this Agreement, and the parties irrevocably consent to +personal jurisdiction and venue in those courts; except that either party may +apply for injunctive remedies or an equivalent type of urgent legal relief in +any 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 27, 2023) diff --git a/sdk_container/src/third_party/portage-stable/licenses/NVIDIA-2025 b/sdk_container/src/third_party/portage-stable/licenses/NVIDIA-2025 new file mode 100644 index 00000000000..eebf02d403f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/licenses/NVIDIA-2025 @@ -0,0 +1,416 @@ +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/media-libs/libpng/Manifest b/sdk_container/src/third_party/portage-stable/media-libs/libpng/Manifest index d5f6edb8f95..985c357c9c5 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,7 +1,3 @@ -DIST libpng-1.6.44-apng-apng.patch.gz 10336 BLAKE2B 3c78cadd08b48466eee7c271ec82649dab55f28977622128c78764257a3f53e3255ddb1d728f10cb457b4db314566fe54b7edc88ab68b3dd1a8310bda500ab4f SHA512 5b8502abd3fad84772136a9eea53a918f806ef7035fe6df5d2b631a5279f298b9f125922d5aab7306e7c7aa1445ac9e36072e22fab4005d20662232078187f3c -DIST libpng-1.6.44.tar.xz 1045640 BLAKE2B 61064dd83f40a7e2e60ff723a568b7d0cda95aa80621a211aee7127b9783fbfc20cd82a2fe2d03584cbf9ab77c5444e3e008ac5ccc7f64af6e858ebcbcb78822 SHA512 bbd3e5e68d8b6fe3d85e59ca0babe8b522c19cac4b6ce0fcf21516cda7120b642be611eb1eaa565b7eabbacd22606593619aabd227b43a36f1efc707e7e11851 -DIST libpng-1.6.46-apng-apng.patch.gz 10266 BLAKE2B 51d04187fa631fcc388fafa86683579fe20a58c3f5dafb721632b82a82568842dff6772e29de1d95ffa5cb2dc188338c67f3d4427b9ee69fe98d20ab825aa0ba SHA512 78b33e4e2c68e8486c6666a5e2bdc57457e34952e2d0f8eed710913c92b895b8f96b96f0cfe8600a1c47c0b368e025f2fc20f3f52c435e5b3574e9f5aa546863 -DIST libpng-1.6.46.tar.xz 1054296 BLAKE2B 0cc4e4ca0a9394e1ee2778065ef03859854062103609c9356709a9540b8953a6198b5c44a5a05ae97d8f0e6035a171ab1797627f6523805cedf3f985960752c3 SHA512 80c4cb644e11d39533344e017faf61700fdfbf758531b1a9ffbeb0a2f8540d9ed373f4adab590ae994f5a17f7fd6eff8dac16ebfcc2a0c31e899fd63ae1e4c1e DIST libpng-1.6.47-libpng-apng-apng.patch.gz 10697 BLAKE2B eadf410ea5ef073e444dd1158dfdb80900a594fb1cc41edfd1c63524bdd92195d10a9e0d0fbe1bf729a5df2970994d5617e56d85c861d0b845a815fdec3c4200 SHA512 5ea0e661f83a1966791eef3479ad7496787d3bc9eb6911475384da1c027444b1158bdb0f169d400ee9e1444c93e2bf435a4d8eb411901dd8e839b059baf9f38d DIST libpng-1.6.47.tar.xz 1054664 BLAKE2B 3dafe005931cd5b7709278f8d1961250c1d80ade4e73b568a211b409e7cac44f42692c6501851620ccd549d5c466b697dc6bbecf56e969e00b54c22a7cde0d72 SHA512 932578dedd7916e2c502d8d11eef845e15733e84062510ba246b027d5467efe786725ff3dd22b9a33ff6a052c8dab3da3b45cb737a00caed43b6598c2bd8122b DIST libpng-1.6.48.tar.xz 1054968 BLAKE2B 2aec3b237d8cf2109186518a1604d9d10e0ef6739730988e01b91f20d48dcd736a293d3c96bed719807778a68273d1bf5cc2467fc19852dbfffd39295fcbf515 SHA512 aae6cdd7d55d78aea820165493e31ea7c0de8b2272b709d334dfe7bac96e24099330f0e9049062fde34b6ea926af50987c390dab1b91bdfe3586b2ee4aed8b33 diff --git a/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.44.ebuild b/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.44.ebuild deleted file mode 100644 index 4ace5f1cac5..00000000000 --- a/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.44.ebuild +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit libtool multilib-minimal - -APNG_REPO=apng # sometimes libpng-apng is more up to date -APNG_VERSION="1.6.44" -DESCRIPTION="Portable Network Graphics library" -HOMEPAGE="http://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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="apng cpu_flags_x86_sse static-libs test" -RESTRICT="!test? ( test )" - -RDEPEND=">=sys-libs/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}]" -DEPEND="${RDEPEND}" - -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 -} - -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 - - 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.46.ebuild b/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.46.ebuild deleted file mode 100644 index 4983ef32aa6..00000000000 --- a/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.46.ebuild +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit libtool multilib-minimal - -APNG_REPO=apng # sometimes libpng-apng is more up to date -APNG_VERSION="1.6.46" -DESCRIPTION="Portable Network Graphics library" -HOMEPAGE="http://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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="apng cpu_flags_x86_sse static-libs test" -RESTRICT="!test? ( test )" - -RDEPEND=">=sys-libs/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}]" -DEPEND="${RDEPEND}" - -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 -} - -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 - - 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.47.ebuild b/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.47.ebuild index 69724aa612a..b46253b974e 100644 --- a/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.47.ebuild +++ b/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.47.ebuild @@ -8,7 +8,7 @@ inherit libtool multilib-minimal APNG_REPO=libpng-apng # sometimes libpng-apng is more up to date APNG_VERSION="1.6.47" DESCRIPTION="Portable Network Graphics library" -HOMEPAGE="http://www.libpng.org/" +HOMEPAGE="https://www.libpng.org/" SRC_URI=" https://downloads.sourceforge.net/${PN}/${P}.tar.xz apng? ( @@ -19,7 +19,7 @@ SRC_URI=" LICENSE="libpng2" SLOT="0/16" -KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="apng cpu_flags_x86_sse static-libs test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.48.ebuild b/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.48.ebuild index fd9fc70c28e..528dfd1f854 100644 --- a/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.48.ebuild +++ b/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.48.ebuild @@ -8,7 +8,7 @@ inherit libtool multilib-minimal APNG_REPO=libpng-apng # sometimes libpng-apng is more up to date APNG_VERSION="1.6.47" DESCRIPTION="Portable Network Graphics library" -HOMEPAGE="http://www.libpng.org/" +HOMEPAGE="https://www.libpng.org/" SRC_URI=" https://downloads.sourceforge.net/${PN}/${P}.tar.xz apng? ( diff --git a/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.49.ebuild b/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.49.ebuild index cda810ed05d..a7708793d22 100644 --- a/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.49.ebuild +++ b/sdk_container/src/third_party/portage-stable/media-libs/libpng/libpng-1.6.49.ebuild @@ -8,7 +8,7 @@ inherit dot-a libtool multilib-minimal APNG_REPO=apng # sometimes libpng-apng is more up to date APNG_VERSION="1.6.49" DESCRIPTION="Portable Network Graphics library" -HOMEPAGE="http://www.libpng.org/" +HOMEPAGE="https://www.libpng.org/" SRC_URI=" https://downloads.sourceforge.net/${PN}/${P}.tar.xz apng? ( @@ -24,7 +24,10 @@ IUSE="apng cpu_flags_x86_sse static-libs test" RESTRICT="!test? ( test )" RDEPEND=">=sys-libs/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}]" -DEPEND="${RDEPEND}" +DEPEND=" + ${RDEPEND} + riscv? ( sys-kernel/linux-headers ) +" DOCS=( ANNOUNCE CHANGES libpng-manual.txt README TODO ) @@ -62,7 +65,7 @@ multilib_src_configure() { $(use_enable test tests) $(use_enable cpu_flags_x86_sse intel-sse) $(use_enable static-libs static) - --enable-riscv-rvv=check + --disable-riscv-rvv ) ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" 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 404a2f3e554..ae799017076 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,5 +1,6 @@ DIST bind-9.18.29.tar.xz 5562720 BLAKE2B f3e7de6936362bcce4993e401ed8fdd9d597459e82ad908a918fff1da619f91ef4896595ea210b43f2b492d763d7be2b71105495858da55431b60874c7fd2312 SHA512 6c2676e2e2cb90f3bd73afb367813c54d1c961e12df1e12e41b9d0ee5a1d5cdf368d81410469753eaef37e43358b56796f078f3b2f20c3b247c4bef91d56c716 DIST bind-9.18.31.tar.xz 5385812 BLAKE2B e069ab3caab887a87220b54804e5b19a4c21b8d3e4e8f1bc6a7135b3990a228d6c48b1ca4a22c75242485275eff1de145a9aff89addf81124e7dfcafd8ab30cf SHA512 e51873484be3ee367eb1e601b8e0adc45abcdb16df04021ea42ffcc51b99821f8b30f67b2a693a90ad3efa51698a651c8da9d7947ee8fa19680f627afe1f7034 DIST bind-9.18.37.tar.xz 5358128 BLAKE2B 59753a594e1e8249b9104377260701a9453eeecb6a233a94a33c6a134a6368c5c0b9473c4e08d956d0746a331dc7b121550f5e426a521d6c8d0441d9164f0547 SHA512 9789cb3fa7739cc7e1b137d1642861d9517adc4391e2f8c526bfa271e13f7489794ed20cb5f64c26e432d7b79cfe7aa1f7d59c476fd2749bc2dccfb85c514943 +DIST bind-9.20.10.tar.xz 5677276 BLAKE2B e5a7824ff5b901be447a2f4f067aa8b3345eb8187ed86f3bf6bc623e2b6c812722667eefd1f915026dab078846011e222336a30c4da640c4e54aa828398b180d SHA512 2d4510e2e73aed94424b065b9371a1422f1b53ec8c01b281fdc78f90401dcd229b7095a175bb4f4d44b07d81e5edbee78bbfb1bf31b981e26fe1ea6df53d415d DIST bind-9.20.7.tar.xz 5655168 BLAKE2B c5198939382e7295b4dfcb2ddbd86e5bccc10047d5e963dab2381404eb7a14543218e3caa438b395a2982cb607da84012f3a76a41c790a48ed615238bc080b5c SHA512 b9570c0c6588819108017d30dc7fb5e2f34361f941186d29da3d2830bbe3333c8c16bdb6581f5bec4786d90b74db860a9cad5f66d4f1c65168eae69f401a9df0 DIST bind-9.20.9.tar.xz 5668452 BLAKE2B 40a1428d2da9d92b3604f04234b2ff44701abcf2ea22883caea7fb4ee157547125fd68accb8fe10853ff64cd5018fa89e36eeb53021fa3ee9bc056e05ac228d6 SHA512 78efb4c4a5d78bd04efe222982efa1d6bb6748965e40d816d9e4329d6f2687a43d1e439bc3f98c00c85abaf8fc435063bcbe2d96a61b252fe3df0a8affa19f8f diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.37-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.37-r1.ebuild index d5fe3e00d7d..c5dd842ede6 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.37-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.37-r1.ebuild @@ -15,7 +15,7 @@ S="${WORKDIR}/${PN}-${MY_PV}" LICENSE="MPL-2.0" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs test xml" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.10.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.10.ebuild new file mode 100644 index 00000000000..0c8dc469f9f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.10.ebuild @@ -0,0 +1,287 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit eapi9-ver systemd tmpfiles toolchain-funcs + +MY_PV="${PV/_p/-P}" +MY_PV="${MY_PV/_rc/rc}" + +DESCRIPTION="Berkeley Internet Name Domain - Name Server" +HOMEPAGE="https://www.isc.org/bind/" +SRC_URI="https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz" +S="${WORKDIR}/${PN}-${MY_PV}" + +LICENSE="MPL-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs systemtap test xml" +RESTRICT="!test? ( test )" + +DEPEND=" + acct-group/named + acct-user/named + dev-libs/json-c:= + dev-libs/userspace-rcu:= + >=dev-libs/libuv-1.37.0:= + sys-libs/zlib:= + dev-libs/openssl:=[-bindist(-)] + >=sys-libs/libcap-2.1.0 + dnstap? ( + dev-libs/fstrm + dev-libs/protobuf-c + ) + doh? ( net-libs/nghttp2:= ) + geoip? ( dev-libs/libmaxminddb ) + gssapi? ( virtual/krb5 ) + idn? ( net-dns/libidn2 ) + jemalloc? ( dev-libs/jemalloc:= ) + lmdb? ( dev-db/lmdb ) + xml? ( dev-libs/libxml2:= ) +" +RDEPEND=" + ${DEPEND} + selinux? ( sec-policy/selinux-bind ) + sys-process/psmisc + !/dev/null; echo ${CHROOT}) + if [[ -n ${CHROOT} ]]; then + elog "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" + elog "To enable the old behaviour (without using mount) uncomment the" + elog "CHROOT_NOMOUNT option in your /etc/conf.d/named config." + elog "If you decide to use the new/default method, ensure to make backup" + elog "first and merge your existing configs/zones to /etc/bind and" + elog "/var/bind because bind will now mount the needed directories into" + elog "the chroot dir." + fi + + # show only when upgrading to 9.18 + if ver_replacing -lt 9.18; then + elog "As this is a major bind version upgrade, please read:" + elog " https://kb.isc.org/docs/changes-to-be-aware-of-when-moving-from-bind-916-to-918" + elog "for differences in functionality." + elog "" + ewarn "In particular, please note that bind-9.18 does not need a root hints file anymore" + ewarn "and we only ship with one as a stop-gap. If your current configuration specifies a" + ewarn "root hints file - usually called named.cache - bind will not start as it will not be able" + ewarn "to find the specified file. Best practice is to delete the offending lines that" + ewarn "reference named.cache file from your configuration." + fi +} + +pkg_config() { + CHROOT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT}) + CHROOT_NOMOUNT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_NOMOUNT}) + CHROOT_GEOIP=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_GEOIP}) + + if [[ -z "${CHROOT}" ]]; then + eerror "This config script is designed to automate setting up" + eerror "a chrooted bind/named. To do so, please first uncomment" + eerror "and set the CHROOT variable in '/etc/conf.d/named'." + die "Unset CHROOT" + fi + + if [[ -d "${CHROOT}" ]]; then + ewarn "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" + ewarn "To enable the old behaviour (without using mount) uncomment the" + ewarn "CHROOT_NOMOUNT option in your /etc/conf.d/named config." + ewarn + ewarn "${CHROOT} already exists... some things might become overridden" + ewarn "press CTRL+C if you don't want to continue" + sleep 10 + fi + + echo; einfo "Setting up the chroot directory..." + + mkdir -m 0750 -p "${CHROOT}" || die + mkdir -m 0755 -p "${CHROOT}"/{dev,etc,var/log,run} || die + mkdir -m 0750 -p "${CHROOT}"/etc/bind || die + mkdir -m 0770 -p "${CHROOT}"/var/{bind,log/named,run/named} "${CHROOT}"/run/named/ || die + + chown root:named \ + "${CHROOT}" \ + "${CHROOT}"/var/{bind,log/named,run/named} \ + "${CHROOT}"/run/named/ \ + "${CHROOT}"/etc/bind \ + || die + + mknod "${CHROOT}"/dev/null c 1 3 || die + chmod 0666 "${CHROOT}"/dev/null || die + + mknod "${CHROOT}"/dev/zero c 1 5 || die + chmod 0666 "${CHROOT}"/dev/zero || die + + if [[ "${CHROOT_NOMOUNT:-0}" -ne 0 ]]; then + cp -a /etc/bind "${CHROOT}"/etc/ || die + cp -a /var/bind "${CHROOT}"/var/ || die + fi + + if [[ "${CHROOT_GEOIP:-0}" -eq 1 ]]; then + if use geoip; then + mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP || die + elif use geoip2; then + mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP2 || die + fi + fi + + elog "You may need to add the following line to your syslog-ng.conf:" + elog "source jail { unix-stream(\"${CHROOT}/dev/log\"); };" +} diff --git a/sdk_container/src/third_party/portage-stable/net-firewall/ipset/ipset-7.24.ebuild b/sdk_container/src/third_party/portage-stable/net-firewall/ipset/ipset-7.24.ebuild index 953c5079e24..28906ea04f6 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 @@ -12,7 +12,7 @@ SRC_URI="https://ipset.netfilter.org/${P}.tar.bz2" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" +KEYWORDS="amd64 ~arm ~arm64 ~loong ppc ppc64 ~riscv x86" RDEPEND=" net-firewall/iptables diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libnftnl/libnftnl-1.2.9.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/libnftnl/libnftnl-1.2.9.ebuild index d15923402a8..c50e71f56c0 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/libnftnl/libnftnl-1.2.9.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-libs/libnftnl/libnftnl-1.2.9.ebuild @@ -18,7 +18,7 @@ else https://netfilter.org/projects/${PN}/files/${P}.tar.xz verify-sig? ( https://netfilter.org/projects/${PN}/files/${P}.tar.xz.sig ) " - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86" BDEPEND+="verify-sig? ( >=sec-keys/openpgp-keys-netfilter-20240415 )" fi 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 1247dc823c8..e906164f473 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 +1,2 @@ DIST nghttp2-1.65.0.tar.xz 1604848 BLAKE2B 8fb752f55936110a8b5c27873e7e262a0c84740beac46444a80596e25b256ca3a4b0f0cc97a91e104a0f1c59ac0304546310a2817af126efabd2ce26cfd0ee06 SHA512 e1ef685a425017474ea0412c8ad13a217a45a320322b3aee48e646be21457d9b1f374abb9f681f47595a0ad8feb07d076bd0aa3279d35c5c9b5b8c921d8dd39e +DIST nghttp2-1.66.0.tar.xz 1743992 BLAKE2B 7b108f82b2ab4e5108a9220dbc57d6d894577464c2d64c5adb02c6f71f4c5d3d524b1c945ab016699236674501458c29d0186eaf2a7442bcb3f728df1075273c SHA512 23b4cae2bbd4b3c11c50093e2fc14f3b08241bb6a85c38409e9a1a328b81ad51f107179493a0ce4c6a767b557cafeca9ba638c491095639dcfd9a2d95fa8b80d 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 new file mode 100644 index 00000000000..60883face4f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-1.66.0.ebuild @@ -0,0 +1,70 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Built with autotools rather than cmake to avoid circular dep (bug #951525) + +inherit multilib-minimal + +DESCRIPTION="HTTP/2 C Library" +HOMEPAGE="https://nghttp2.org/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/nghttp2/nghttp2.git" + inherit git-r3 +else + inherit autotools + SRC_URI="https://github.com/nghttp2/nghttp2/releases/download/v${PV}/${P}.tar.xz" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +LICENSE="MIT" +SLOT="0/1.14" # 1. +IUSE="debug hpack-tools jemalloc systemd test utils xml" +RESTRICT="!test? ( test )" + +RDEPEND=" + hpack-tools? ( >=dev-libs/jansson-2.5:= ) + jemalloc? ( dev-libs/jemalloc:=[${MULTILIB_USEDEP}] ) + utils? ( + >=dev-libs/openssl-1.0.2:0=[-bindist(-),${MULTILIB_USEDEP}] + >=dev-libs/libev-4.15[${MULTILIB_USEDEP}] + net-dns/c-ares:=[${MULTILIB_USEDEP}] + >=sys-libs/zlib-1.2.3[${MULTILIB_USEDEP}] + ) + systemd? ( >=sys-apps/systemd-209 ) + xml? ( >=dev-libs/libxml2-2.7.7:2=[${MULTILIB_USEDEP}] ) +" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +src_prepare() { + default + [[ ${PV} == 9999 ]] && eautoreconf +} + +multilib_src_configure() { + # TODO: enable HTTP3 + # requires quictls/openssl, libngtcp2, libngtcp2_crypto_quictls, libnghttp3 + local myeconfargs=( + --disable-examples + --disable-failmalloc + --disable-werror + --enable-threads + $(use_enable debug) + $(multilib_native_use_enable hpack-tools) + $(multilib_native_use_with hpack-tools jansson) + $(multilib_native_use_with jemalloc) + $(multilib_native_use_with systemd) + $(multilib_native_use_enable utils app) + $(multilib_native_use_with xml libxml2) + ) + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_install_all() { + einstalldocs + find "${ED}"/usr -type f -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/Manifest b/sdk_container/src/third_party/portage-stable/net-misc/curl/Manifest index 76ff82a9fb0..1bb0eabe09c 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,7 +2,7 @@ DIST curl-8.12.1.tar.xz 2768160 BLAKE2B 2b3e3d91041881c0951ad470736266105d3b9720 DIST curl-8.12.1.tar.xz.asc 488 BLAKE2B 2a6563609c9f7ada84ca2c7048ad9406809eef4cc958760d2ab3d1b7be58d26247e579bd025870609e80ebb00295026aae30614b84e3a81bdf3ed3dbd0f5ed70 SHA512 41fc5582935090d13940d86974fdea3ea901dd5dab156c16029a87f811d2535172c59dc8dc366f2ffc37bcf85accbecb5aa765bc7b83c2991a3ef402bf25af69 DIST curl-8.13.0.tar.xz 2773628 BLAKE2B 6869634ad50f015d5c7526699034d5a3f27d9588bc32eacc8080dbd6c690f63b1f25cee40d3fdf8fd9dd8535c305ea9c5edf1d5a02bc6d9ce60fd8c88230aca0 SHA512 d266e460f162ee455b56726e5b7247b2d1aa5265ae12081513fc0c5c79e785a594097bc71d505dc9bcd2c2f6f1ff6f4bab9dbd9d120bb76d06c5be8521a8ca7d DIST curl-8.13.0.tar.xz.asc 488 BLAKE2B bd568ec32a44ef7c14c38e4830bcc7711dac726e950325292f1e5de76e619839685300c5afac32330127324327e71ce0d6e574f6e95bcc4a48957345152bc86a SHA512 07f79c7fd7c305c96e10a5f52797254aed7d2a1f3577c8626b8d617855ceb82634ac6787bfa0b7130a4ed72c3a9945d3c9ba5b7be54df8bafa07ded1c62ef2be -DIST curl-8.14.0.tar.xz 2819512 BLAKE2B d8b7d58e6923366265a1d95d3a6f14002729dfb95d88b17ec925d096bd199b206f6c9645e1e4be3bc2d295e8898c35990eda6f45329396f38753725907e402a1 SHA512 d9f49cac0b93dbc53879713cc017392b4277d84b489bbf2ef3b585c6a50eea6c3a7b80043286b34062af04329560f2dc321f315b0038ce93435aa9bbcaec1eea -DIST curl-8.14.0.tar.xz.asc 488 BLAKE2B 9fa2fe756d7c170b4fc883bd0c23eb103d947e8328d56ea3dea53403d3cd01626ada943595179955f55a77eb8f4da65b5e4d74fe5627fc8c5ab4d88efbb5df3e SHA512 7c147ddb5e141dd9951e2ef6b23fa120318c0e631fb36861b80fce61b4b19ca08273a6b95627f46a8172945fb51bd790ffc74dee0a4b0de860dad518963b4710 DIST curl-8.14.1.tar.xz 2817248 BLAKE2B 4ce2277d143084823855b714e86047a94d4c52a686b8d16d9ab76c31168f1a74d63dfa7608cff36706a8a0b9bf9cc611a9b99860b176a227bca580cd95e9cff2 SHA512 7f6eae04cc23c50fc41d448aa28dfa59141018009e42c5b1e3f4e0d40c0633460b4e6eec05dfc290f7953671096abfa70a8b5443fccdd3f1be6be32ac10b31d9 DIST curl-8.14.1.tar.xz.asc 488 BLAKE2B f664f526dbffa0a1af2b28f51982445f7d9064b3c3b3e6dd04322003db22da2acde5d493c80204b36a9219d42959543c5a0aee47f2365eb713490ff2fc5f475f SHA512 663b1652bb27338310d1475a8b0422f04e68fca74be11a4b7120de948af4fc0c2b08b75ce5372d657aa89504a27b36b937b5091cb2d932297a7490d5e390d99f +DIST curl-8.15.0-rc1.tar.xz 2770340 BLAKE2B 3d54032dd9e3894d622a45f5c7764d473d024d5a4422f9e15efe1914bc5377c0fcb84fa4b4bcf7c4195dc35614ca5bb6b413608e43b1a7f9d5396a1505d7a4b7 SHA512 eedabb0e416e119107e05c1b6afa04b4157f0381a3572c352e996ff682302690dbe34b75f39d49f6b7a26667eb673f06bd311853e73b9a82839eb1d8a43abe60 +DIST curl-8.15.0-rc1.tar.xz.asc 488 BLAKE2B 4ca9ae69dd98dcf5c4e0e186b2e03b7c2f627f74439b05fe729e5b01016a0d84bb7bd1816f6fac40bfea4a6f69979b0cd52f444032fcd49cac7a701c344b9f1b SHA512 8dbd61cc5246dc6244ac3bc16f9411d3bfe84bae8bd52935dd82d114c92a3be01116963d5518dea12426fbc5d6b45d9baec8354f9183c51f9cddf3204953d865 diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.12.1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.12.1.ebuild index a497cf397af..8d74677535e 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.12.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.12.1.ebuild @@ -55,14 +55,12 @@ REQUIRED_USE=" ) curl_quic_openssl? ( curl_ssl_openssl - quic !gnutls !mbedtls !rustls ) curl_quic_ngtcp2? ( curl_ssl_gnutls - quic !mbedtls !openssl !rustls diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.13.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.13.0-r1.ebuild index 59963eb1e4c..d5551349f32 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.13.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.13.0-r1.ebuild @@ -73,14 +73,12 @@ REQUIRED_USE=" ) curl_quic_openssl? ( curl_ssl_openssl - quic !gnutls !mbedtls !rustls ) curl_quic_ngtcp2? ( curl_ssl_gnutls - quic !mbedtls !openssl !rustls @@ -254,6 +252,16 @@ multilib_src_configure() { local -a tls_backend_opts readarray -t tls_backend_opts < <(_get_curl_tls_configure_opts) myconf+=("${tls_backend_opts[@]}") + if use quic; then + myconf+=( + $(use_with curl_quic_ngtcp2 ngtcp2) + $(use_with curl_quic_openssl openssl-quic) + ) + else + # Without a REQUIRED_USE to ensure that QUIC was requested when at least one default backend is + # enabled we need ensure that we don't try to build QUIC support + myconf+=( --without-ngtcp2 --without-openssl-quic ) + fi else myconf+=( --without-ssl ) einfo "SSL disabled" @@ -290,8 +298,6 @@ multilib_src_configure() { $(use_enable httpsrr) $(use_with http2 nghttp2) $(use_with http3 nghttp3) - $(use_with curl_quic_ngtcp2 ngtcp2) - $(use_with curl_quic_openssl openssl-quic) ) # --enable/disable options diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.14.1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.14.1.ebuild index bdceb348fcc..695ec970d8d 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.14.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.14.1.ebuild @@ -73,14 +73,12 @@ REQUIRED_USE=" ) curl_quic_openssl? ( curl_ssl_openssl - quic !gnutls !mbedtls !rustls ) curl_quic_ngtcp2? ( curl_ssl_gnutls - quic !mbedtls !openssl !rustls @@ -248,6 +246,16 @@ multilib_src_configure() { local -a tls_backend_opts readarray -t tls_backend_opts < <(_get_curl_tls_configure_opts) myconf+=("${tls_backend_opts[@]}") + if use quic; then + myconf+=( + $(use_with curl_quic_ngtcp2 ngtcp2) + $(use_with curl_quic_openssl openssl-quic) + ) + else + # Without a REQUIRED_USE to ensure that QUIC was requested when at least one default backend is + # enabled we need ensure that we don't try to build QUIC support + myconf+=( --without-ngtcp2 --without-openssl-quic ) + fi else myconf+=( --without-ssl ) einfo "SSL disabled" @@ -284,8 +292,6 @@ multilib_src_configure() { $(use_enable httpsrr) $(use_with http2 nghttp2) $(use_with http3 nghttp3) - $(use_with curl_quic_ngtcp2 ngtcp2) - $(use_with curl_quic_openssl openssl-quic) ) # --enable/disable options diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.14.0.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.15.0_rc1.ebuild similarity index 97% rename from sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.14.0.ebuild rename to sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.15.0_rc1.ebuild index db6300f056b..ea0558f9863 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.14.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.15.0_rc1.ebuild @@ -177,7 +177,6 @@ QA_CONFIG_IMPL_DECL_SKIP=( PATCHES=( "${FILESDIR}/${PN}-prefix-4.patch" "${FILESDIR}/${PN}-respect-cflags-3.patch" - "${FILESDIR}/${P}-add_handle-resizing.patch" ) src_prepare() { @@ -249,6 +248,16 @@ multilib_src_configure() { local -a tls_backend_opts readarray -t tls_backend_opts < <(_get_curl_tls_configure_opts) myconf+=("${tls_backend_opts[@]}") + if use quic; then + myconf+=( + $(use_with curl_quic_ngtcp2 ngtcp2) + $(use_with curl_quic_openssl openssl-quic) + ) + else + # Without a REQUIRED_USE to ensure that QUIC was requested when at least one default backend is + # enabled we need ensure that we don't try to build QUIC support + myconf+=( --without-ngtcp2 --without-openssl-quic ) + fi else myconf+=( --without-ssl ) einfo "SSL disabled" @@ -285,8 +294,6 @@ multilib_src_configure() { $(use_enable httpsrr) $(use_with http2 nghttp2) $(use_with http3 nghttp3) - $(use_with curl_quic_ngtcp2 ngtcp2) - $(use_with curl_quic_openssl openssl-quic) ) # --enable/disable options 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 bdceb348fcc..282a1bd9bc5 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 @@ -73,14 +73,12 @@ REQUIRED_USE=" ) curl_quic_openssl? ( curl_ssl_openssl - quic !gnutls !mbedtls !rustls ) curl_quic_ngtcp2? ( curl_ssl_gnutls - quic !mbedtls !openssl !rustls @@ -248,6 +246,16 @@ multilib_src_configure() { local -a tls_backend_opts readarray -t tls_backend_opts < <(_get_curl_tls_configure_opts) myconf+=("${tls_backend_opts[@]}") + if use quic; then + myconf+=( + $(use_with curl_quic_ngtcp2 ngtcp2) + $(use_with curl_quic_openssl openssl-quic) + ) + else + # Without a REQUIRED_USE to ensure that QUIC was requested when at least one default backend is + # we need ensure that we don't try to build QUIC support + myconf+=( --without-ngtcp2 --without-openssl-quic ) + fi else myconf+=( --without-ssl ) einfo "SSL disabled" @@ -284,8 +292,6 @@ multilib_src_configure() { $(use_enable httpsrr) $(use_with http2 nghttp2) $(use_with http3 nghttp3) - $(use_with curl_quic_ngtcp2 ngtcp2) - $(use_with curl_quic_openssl openssl-quic) ) # --enable/disable options diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/files/curl-8.14.0-add_handle-resizing.patch b/sdk_container/src/third_party/portage-stable/net-misc/curl/files/curl-8.14.0-add_handle-resizing.patch deleted file mode 100644 index 0bbf0262bd1..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/files/curl-8.14.0-add_handle-resizing.patch +++ /dev/null @@ -1,187 +0,0 @@ -https://github.com/curl/curl/commit/d16ccbd55de80c271fe822f4ba8b6271fd9166ff -From: Stefan Eissing -Date: Wed, 28 May 2025 14:04:31 +0200 -Subject: [PATCH] multi: fix add_handle resizing - -Due to someone being stupid, the resizing of the multi's transfer -table was actually shrinking it. Oh my. - -Add test751 to reproduce, add code assertion. - -Fixes #17473 -Reported-by: Jeroen Ooms -Closes #17475 ---- a/lib/multi.c -+++ b/lib/multi.c -@@ -347,7 +347,8 @@ static CURLMcode multi_xfers_add(struct Curl_multi *multi, - if(unused <= min_unused) { - /* make it a 64 multiple, since our bitsets frow by that and - * small (easy_multi) grows to at least 64 on first resize. */ -- unsigned int newsize = ((capacity + min_unused) + 63) / 64; -+ unsigned int newsize = (((capacity + min_unused) + 63) / 64) * 64; -+ DEBUGASSERT(newsize > capacity); - /* Grow the bitsets first. Should one fail, we do not need - * to downsize the already resized ones. The sets continue - * to work properly when larger than the table, but not ---- a/tests/data/Makefile.am -+++ b/tests/data/Makefile.am -@@ -107,7 +107,7 @@ test709 test710 test711 test712 test713 test714 test715 test716 test717 \ - test718 test719 test720 test721 test722 test723 test724 test725 test726 \ - test727 test728 test729 test730 test731 test732 test733 test734 test735 \ - test736 test737 test738 test739 test740 test741 test742 test743 test744 \ --test745 test746 test747 test748 test749 test750 \ -+test745 test746 test747 test748 test749 test750 test751 \ - \ - test780 test781 test782 test783 test784 test785 test786 test787 test788 \ - test789 test790 test791 \ ---- /dev/null -+++ b/tests/data/test751 -@@ -0,0 +1,33 @@ -+ -+ -+ -+MULTI -+ -+ -+ -+ -+ -+ -+ -+# Client-side -+ -+ -+none -+ -+# tool is what to use instead of 'curl' -+ -+lib%TESTNUMBER -+ -+ -+ -+multi - add many easy handles -+ -+ -+ -+ -+ -+ -+# Verify data after the test has been "shot" -+ -+ -+ ---- a/tests/libtest/Makefile.inc -+++ b/tests/libtest/Makefile.inc -@@ -50,6 +50,7 @@ LIBTESTPROGS = libauthretry libntlmconnect libprereq \ - lib659 lib661 lib666 lib667 lib668 \ - lib670 lib671 lib672 lib673 lib674 lib676 lib677 lib678 lib694 lib695 \ - lib696 \ -+ lib751 \ - lib1156 \ - lib1301 \ - lib1308 \ -@@ -349,6 +350,9 @@ lib695_SOURCES = lib695.c $(SUPPORTFILES) - lib696_SOURCES = lib556.c $(SUPPORTFILES) $(WARNLESS) - lib696_CPPFLAGS = $(AM_CPPFLAGS) -DLIB696 - -+lib751_SOURCES = lib751.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) -+lib751_LDADD = $(TESTUTIL_LIBS) -+ - lib1301_SOURCES = lib1301.c $(SUPPORTFILES) $(TESTUTIL) - lib1301_LDADD = $(TESTUTIL_LIBS) - ---- /dev/null -+++ b/tests/libtest/lib751.c -@@ -0,0 +1,92 @@ -+/*************************************************************************** -+ * _ _ ____ _ -+ * Project ___| | | | _ \| | -+ * / __| | | | |_) | | -+ * | (__| |_| | _ <| |___ -+ * \___|\___/|_| \_\_____| -+ * -+ * Copyright (C) Daniel Stenberg, , et al. -+ * -+ * This software is licensed as described in the file COPYING, which -+ * you should have received as part of this distribution. The terms -+ * are also available at https://curl.se/docs/copyright.html. -+ * -+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell -+ * copies of the Software, and permit persons to whom the Software is -+ * furnished to do so, under the terms of the COPYING file. -+ * -+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -+ * KIND, either express or implied. -+ * -+ * SPDX-License-Identifier: curl -+ * -+ ***************************************************************************/ -+#include "test.h" -+ -+#include "testutil.h" -+#include "warnless.h" -+#include "memdebug.h" -+ -+#define TEST_HANG_TIMEOUT 60 * 1000 -+ -+/* -+ * Get a single URL without select(). -+ */ -+ -+CURLcode test(char *URL) -+{ -+ CURL *easies[1000]; -+ CURLM *m; -+ CURLcode res = CURLE_FAILED_INIT; -+ CURLMcode mres; -+ int i; -+ -+ (void)URL; -+ memset(easies, 0, sizeof(easies)); -+ -+ curl_global_init(CURL_GLOBAL_DEFAULT); -+ m = curl_multi_init(); -+ if(!m) { -+ res = CURLE_OUT_OF_MEMORY; -+ goto test_cleanup; -+ } -+ -+ for(i = 0; i < 1000; i++) { -+ CURL *e = curl_easy_init(); -+ if(!e) { -+ res = CURLE_OUT_OF_MEMORY; -+ goto test_cleanup; -+ } -+ easies[i] = e; -+ -+ res = curl_easy_setopt(e, CURLOPT_URL, "https://www.example.com/"); -+ if(!res) -+ res = curl_easy_setopt(e, CURLOPT_VERBOSE, 1L); -+ if(res) -+ goto test_cleanup; -+ -+ mres = curl_multi_add_handle(m, e); -+ if(mres != CURLM_OK) { -+ printf("MULTI ERROR: %s\n", curl_multi_strerror(mres)); -+ res = CURLE_FAILED_INIT; -+ goto test_cleanup; -+ } -+ } -+ -+test_cleanup: -+ -+ if(res) -+ printf("ERROR: %s\n", curl_easy_strerror(res)); -+ -+ for(i = 0; i < 1000; i++) { -+ if(easies[i]) { -+ curl_multi_add_handle(m, easies[i]); -+ curl_easy_cleanup(easies[i]); -+ easies[i] = NULL; -+ } -+ } -+ curl_multi_cleanup(m); -+ curl_global_cleanup(); -+ -+ return res; -+} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/passt/passt-2025.04.15.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/passt/passt-2025.04.15.ebuild index 1656a87f49d..b6d594c49bb 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/passt/passt-2025.04.15.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/passt/passt-2025.04.15.ebuild @@ -16,7 +16,7 @@ if [[ ${PV} == 9999* ]]; then else SRC_URI="https://passt.top/passt/snapshot/passt-${RELEASE_COMMIT}.tar.xz -> ${P}.tar.xz" S="${WORKDIR}/${PN}-${RELEASE_COMMIT}" - KEYWORDS="~amd64 ~arm64 ~loong ~riscv" + KEYWORDS="amd64 ~arm64 ~loong ~riscv" fi LICENSE="BSD GPL-2+" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/package.use.mask index 8ddfa194ea6..195252f50d0 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Mike Gilbert (2025-06-18) +# media-libs/libsdl3 is missing keywords. +>=net-misc/freerdp-3.16.0 sdl + # NRK (2025-05-18) # app-arch/plzip is not keyworded app-alternatives/lzip plzip 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 7d3c37ca3b5..c82d58878ff 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 @@ -21,10 +21,6 @@ # Upstream supports amd64 media-libs/svt-av1 -test -# Mike Gilbert (2025-05-13) -# media-libs/libsdl3 is keyworded here. -net-misc/freerdp -sdl3 - # Michał Górny (2025-05-08) # dev-python/sigstore is keyworded here. =dev-lang/python-0* -verify-sig 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 a609e9cd3e6..a021b81bec4 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,11 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Pacho Ramos (2025-06-28) +# It needs gnome-control-center and many more gnome packages to be +# stabilized before +gnome-base/gvfs onedrive + # Andreas Sturmlechner (2025-01-28) # PyQt 6 is not stable here >=app-admin/setools-4.5.1 gui test diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/base/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/base/package.use.mask index c557468020a..202d53f6252 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/base/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/base/package.use.mask @@ -1,10 +1,6 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -# Mike Gilbert (2025-05-13) -# media-libs/libsdl3 is missing keywords. -net-misc/freerdp sdl3 - # Michał Górny (2025-05-08) # dev-python/sigstore is not keyworded everywhere. =dev-lang/python-0* verify-sig diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/base/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/base/package.use.stable.mask index b7713f92ad7..f962a6f7d72 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/base/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/base/package.use.stable.mask @@ -1,6 +1,10 @@ # Copyright 2023-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Nowa Ammerlaan (2025-06-17) +# TOD support is a soft fork, mask for testing +sys-auth/libfprint tod + # Andreas Sturmlechner (2025-06-02) # sci-libs/libsigrok is not stable app-metrics/collectd collectd_plugins_sigrok diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/loong/package.use b/sdk_container/src/third_party/portage-stable/profiles/arch/loong/package.use index 319345dc049..292ab61ee30 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/loong/package.use +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/loong/package.use @@ -1,6 +1,10 @@ # Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# WANG Xuerui (2025-01-27) +# Enable the UEFI target by default +sys-apps/memtest86+ uefi64 + # Sam James (2023-10-08) # dev-db/mysql not keyworded here dev-perl/DBD-mysql -mysql mariadb 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 290d0e7f334..a3841822331 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,14 @@ # Copyright 2022-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Mike Gilbert (2025-06-18) +# media-libs/libsdl3 is missing keywords. +>=net-misc/freerdp-3.16.0 sdl + +# WANG Xuerui (2025-02-28) +# Upstream only supports the 64-bit UEFI configuration for loong. +sys-apps/memtest86+ bios32 bios64 uefi32 iso32 + # WANG Xuerui (2025-05-29) # dist-server pulls in the libmount crate which is unmaintained and depends # on outdated nix that does not support loong 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 786c07e7f0d..5b58a22601a 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,10 +1,15 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -# Hans de Graaff (2025-05-31) +# Hans de Graaff (2025-06-29) # Requires large parts of dev-ruby/rails to be keyworded. +dev-ruby/globalid test dev-ruby/minitest-hooks test +# Mike Gilbert (2025-06-18) +# media-libs/libsdl3 is missing keywords. +>=net-misc/freerdp-3.16.0 sdl + # Sam James (2025-05-16) # gpio: dev-libs/libgpiod not keyworded here # modbus: dev-libs/libmodbus not keyworded here 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 34789473586..e41322e9d9f 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,10 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Mike Gilbert (2025-06-18) +# media-libs/libsdl3 is missing keywords. +>=net-misc/freerdp-3.16.0 sdl + # Sam James (2025-06-05) # dev-util/spirv-llvm-translator not keyworded here dev-libs/pocl spirv diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use.stable.mask index b282972b374..17d3058453f 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use.stable.mask @@ -17,6 +17,10 @@ #--- END OF EXAMPLES --- +# Pacho Ramos (2025-06-28) +# Mask options needing to stabilize Gnome stuff +gnome-base/gvfs google onedrive + # Alfredo Tupone (2025-04-15) # test depend on packages only 0.14 is stable dev-ml/dune test @@ -93,7 +97,3 @@ dev-cpp/eigen test # Andreas Sturmlechner (2019-02-16) # app-text/libwpd and app-text/libwpg are not stable media-gfx/inkscape cdr visio wpg - -# Pacho Ramos (2014-07-02) -# Mask due Gnome3 not going to be stabilized on this arch -gnome-base/gvfs google 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 b313b18a853..67f29ae842c 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Christopher Byrne (2025-06-13) +# dev-ml/findlib is not keyworkded here +sys-libs/libnbd test + # Andreas Sturmlechner (2025-06-13) # dev-libs/libwacom is not keyworded here dev-libs/libinput input_devices_wacom 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 e8c794f0990..8bb729bf5ab 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,10 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Mike Gilbert (2025-06-18) +# media-libs/libsdl3 is missing keywords. +>=net-misc/freerdp-3.16.0 sdl + # Paul Zander (2025-05-02) # dev-python/nanobind is not keyworded here media-gfx/openvdb python 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 d8801de4188..a57c3b6ef7c 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 @@ -5,11 +5,6 @@ # Requires systemd, so specifically unmasked only in targets/systemd. >=kde-plasma/drkonqi-6.3.90 -# Sam James (2024-11-10) -# Breaks suspend on elogind systems (bug #934314, bug #923614) -# https://github.com/polkit-org/polkit/issues/451 ->=sys-auth/polkit-124 - # matoro (2024-08-18) # Pre-rust versions of librsvg. Has vulnerabilities, so masked by # default and only unmasked on wd40. 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 86d49ee850a..9d498f5143e 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,19 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Andreas Sturmlechner (2025-06-22) +# This is currently more footgun than real option. Bug #958638 + (2025-06-17) +# Build system currently does not allow static libs to be optional, and +# deleting (as we do now) leaves both the cmake export and fltk-config +# script unaware of the change and may cause problems. Will revisit if +# improved upstream, would rather not invent a downstream solution. +# https://bugs.gentoo.org/940572 +# https://github.com/gentoo/gentoo/pull/42633 +x11-libs/fltk static-libs + # Sam James (2025-06-05) # app-misc/ddcutil fails to build w/o USE=X as it always tries to include # . See bug #950320 and https://github.com/rockowitz/ddcutil/issues/504 @@ -65,6 +78,8 @@ llvm-runtimes/libcxxabi clang # echo "dev-lang/rust:${slot} llvm_slot_${_RUST_LLVM_MAP[${slot}]}" # echo "dev-lang/rust-bin:${slot} llvm_slot_${_RUST_LLVM_MAP[${slot}]}" # done +dev-lang/rust:1.88.0 llvm_slot_20 +dev-lang/rust-bin:1.88.0 llvm_slot_20 dev-lang/rust:1.87.0 llvm_slot_20 dev-lang/rust-bin:1.87.0 llvm_slot_20 dev-lang/rust:1.86.0 llvm_slot_19 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 b369359d59b..725fafe06a1 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,19 @@ # New entries go on top. +# Andreas Sturmlechner (2025-06-27) +# Prepare cleanup of kde-apps/cervisia +kde-apps/kdesdk-meta cvs + +# Andreas Sturmlechner (2025-06-26) +# >=kde-plasma/drkonqi-6.3.90 requires systemd, so specifically +# unmasked only in targets/systemd. +>=kde-plasma/plasma-meta-6.3.90 systemd + +# Andreas Sturmlechner (2025-06-24) +# Prepare cleanup of dev-libs/libdbusmenu-qt, bug #938823 +kde-frameworks/knotifications:5 dbus + # Alfred Wingate (2025-06-10) # Upstream only supports amd64 and arm64. Other targets will fail to build # tests due to missing target specific functions. diff --git a/sdk_container/src/third_party/portage-stable/profiles/features/split-usr/package.mask b/sdk_container/src/third_party/portage-stable/profiles/features/split-usr/package.mask index 4ef0df39488..2d04a03bd00 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/split-usr/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/split-usr/package.mask @@ -14,7 +14,7 @@ sys-apps/intune-portal sys-apps/systemd-readahead sys-block/wait-for-dri-devices-rules sys-power/sandmann-bin -www-misc/profile-sync-daemon +>=www-misc/profile-sync-daemon-6 # Andreas K. Hüttel (2023-12-07) # Does not support split-usr filesystem geometry. Please migrate to 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 b4abfdcf15e..82fb617206a 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,13 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Sebastian Pipping (2025-06-20) +# Requires masked packages (bug #958030) +# (dev-python/keyring, dev-python/pydantic) +dev-python/deepdiff +dev-python/poetry +dev-python/poetry-plugin-export + # Holger HoffstƤtte (2025-05-18) # >=bpftrace-0.23 needs Rust-based blazesym_c >=dev-debug/bpftrace-0.23.2 @@ -139,10 +146,8 @@ dev-python/spake2 dev-python/requests-ntlm dev-python/python3-discogs-client dev-python/python-axolotl -net-im/yowsup dev-python/pyghmi dev-python/omemo-dr -net-im/transwhat dev-python/noiseprotocol dev-python/magic-wormhole dev-python/magic-wormhole-transit-relay 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 9738bd27ad9..84bcba70f02 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/license_groups +++ b/sdk_container/src/third_party/portage-stable/profiles/license_groups @@ -69,7 +69,7 @@ FREE @FREE-SOFTWARE @FREE-DOCUMENTS # - IF (and only if) there is an explicit inclusion requirement, # USE=bindist MUST cause a copy of the license to be installed # in a file location compliant with the license -BINARY-REDISTRIBUTABLE @FREE Atmel AVASYS bh-luxi bonnie Broadcom freedist intel-ucode ipw2100-fw ipw2200-fw ISSL JSON linux-fw-redistributable LSI-tw_cli Mellanox-AS-IS MicroChip-SDCC no-source-code NOSA NVIDIA-r1 NVIDIA-r2 qlogic-fibre-channel-firmware shmux unRAR +BINARY-REDISTRIBUTABLE @FREE Atmel AVASYS bh-luxi bonnie Broadcom freedist intel-ucode ipw2100-fw ipw2200-fw ISSL JSON linux-fw-redistributable LSI-tw_cli Mellanox-AS-IS MicroChip-SDCC no-source-code NOSA NVIDIA-r1 NVIDIA-r2 NVIDIA-2023 NVIDIA-2025 qlogic-fibre-channel-firmware shmux unRAR ###################################################################### @@ -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 CAPYBARA-EULA Dell-EULA ETQW f.lux FAH-EULA-2014 Flightradar24 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 ETQW f.lux FAH-EULA-2014 Flightradar24 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 # 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 d6e4a9675b7..0fb1221970c 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,19 @@ #--- END OF EXAMPLES --- +# Michał Górny (2025-06-28) +# versioningit does not provide any support for building via GitHub +# archives, and has rejected the efforts to provide an envvar override +# for this purpose, making it largely unsuitable for Gentoo packaging. +# Convince upstream to use dev-python/setuptools-scm +# (or dev-python/hatch-vcs, etc.) instead. +dev-python/versioningit + +# Michał Górny (2025-06-25) +# Discontinued upstream. They suggest vendoring what people need +# instead. +dev-python/click-plugins + # Michał Górny (2024-06-15) # Stop-gap compatibility package. Upstreams really need to move away # from the removed cgi module rather than rely on this. 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 f3ff5c3d43e..c56563e0e9a 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/package.mask @@ -36,6 +36,91 @@ #--- END OF EXAMPLES --- +# Andreas Sturmlechner (2025-06-29) +# KF5-based package, unmaintained upstream, see also: +# https://mail.kde.org/pipermail/release-team/2025-June/013683.html +# Removal on 2025-07-29. +kde-apps/cervisia + +# Michał Górny (2025-06-29) +# File collision against gnome-base/gnome-keyring[pam], which is +# required via pambase. Masked until the maintainer determines a good +# solution. Bug #959274. +=app-crypt/libsecret-0.21.7-r1 + +# Michał Górny (2025-06-28) +# Rust/eBPF does not support 32-bit x86 host. As such, mitmproxy can +# no longer be used on this architecture. +=net-proxy/mitmproxy-9.0.1 + +# Jay Faulkner (2025-06-26) +# Discontinued by upstream in Sept 2023, running on a likely vulnerable +# electron version. Bug #959128. +net-irc/irccloud-desktop-bin + +# David Seifert (2025-06-25) +# Skype has been shut down on 2025-05-05, use the Teams progressive web +# application with your Skype username as alternative. +# Removal on 2025-07-25. Bug #942322. +net-im/skypeforlinux +sec-policy/selinux-skype +x11-plugins/pidgin-skypeweb + +# Michał Górny (2025-06-25) +# New problematic test dependencies. No reverse dependencies. +# Removal on 2025-07-25. Bug #958987. +dev-python/caldav + +# Andreas Sturmlechner (2025-06-24) +# Qt5 package without any revdeps. Removal on 2025-07-24. Bug #938823 +dev-libs/libdbusmenu-qt + +# Andreas K. Hüttel (2025-06-24) +# Perl 5.42 mask/unmask block, complete as of 5.42.0_rc2 +=dev-lang/perl-5.42* +~virtual/perl-Archive-Tar-3.40.0 +~virtual/perl-Compress-Raw-Bzip2-2.213.0 +~virtual/perl-CPAN-2.380.0 +~virtual/perl-Data-Dumper-2.192.0 +~virtual/perl-Devel-PPPort-3.730.0 +~virtual/perl-Digest-MD5-2.590.0 +~virtual/perl-Exporter-5.790.0 +~virtual/perl-ExtUtils-CBuilder-0.280.241 +~virtual/perl-ExtUtils-CBuilder-0.280.242 +~virtual/perl-ExtUtils-MakeMaker-7.760.0 +~virtual/perl-ExtUtils-ParseXS-3.570.0 +~virtual/perl-File-Spec-3.940.0 +~virtual/perl-HTTP-Tiny-0.90.0 +~virtual/perl-IO-Compress-2.213.0 +~virtual/perl-IO-Socket-IP-0.430.0 +~virtual/perl-Math-BigInt-2.5.2 +~virtual/perl-Math-BigInt-FastCalc-0.502.0 +~virtual/perl-Math-BigRat-2.5.2 +~virtual/perl-Math-Complex-1.630.0 +=virtual/perl-Module-CoreList-5.202.506* +=virtual/perl-Module-CoreList-5.202.507* +~virtual/perl-parent-0.244.0 +~virtual/perl-podlators-6.0.2 +~virtual/perl-Scalar-List-Utils-1.680.100_rc +~virtual/perl-Storable-3.370.0 +~virtual/perl-Test2-Suite-1.302.210 +~virtual/perl-Test-Simple-1.302.210 +~virtual/perl-threads-2.430.0 +~virtual/perl-Time-HiRes-1.977.800 +~virtual/perl-version-0.993.300 + +# Michał Górny (2025-06-21) +# Last commit in 2019. Has an entry point conflict with +# dev-python/pytest-tornasync. No reverse dependencies left. +# Removal on 2025-07-21. Bug #958601. +dev-python/pytest-tornado + +# Michał Górny (2025-06-21) +# No commits for two years. Broken with Python 3.14 +# and with >=dev-python/pytest-asyncio-1.0.0. No reverse dependencies. +# Removal on 2025-07-21. Bug #958592. +dev-python/backoff + # Maciej Barć (2025-06-14) # Deprecated, repository archived upstream. Compilation problems. # Removal on 2025-07-14. bug #957435 @@ -135,12 +220,6 @@ dev-python/gpgmepy # > Unable to locally verify the issuer's authority. =app-misc/ca-certificates-20250419.3.112 -# Andreas Sturmlechner (2025-06-02) -# Package destabilisation mask. There is simply no need for this without -# any stable consumers, and it is freeing up resources. -# 0.6.0_pre20241020 is available in ~arch. -~sci-libs/libsigrok-0.5.2 - # Andreas Sturmlechner (2025-06-02) # Gui depends on Qt5 and is unmaintained for a very long time - its main # developers have moved to the InputLeap project (gui-apps/input-leap). @@ -154,17 +233,6 @@ x11-misc/barrier # particular codebase.) Bug 940232. Removal after 30 days. dev-gap/cohomolo -# Andreas Sturmlechner (2025-05-27) -# Dead upstream with no release for over 10 years, Qt5-based even only by -# means of a snapshot. Bugs #951875, #953016. Removal on 2025-06-26. -x11-misc/qxkb - -# Andreas Sturmlechner (2025-05-27) -# Upstream repository+author, web pages and documentation gone after long -# period of inactivity, based on Qt5. Bugs #949021, #940094 -# Removal on 2025-06-26. -media-gfx/engauge - # Andreas Sturmlechner (2025-05-27) # sci-electronics/gazebo depends on x11-libs/qwt:6[qt5] and Qt5, lots of # open bugs. Most packages perpetually stuck at EAPI-7 and several major @@ -191,34 +259,10 @@ dev-libs/urdfdom_headers # Removal on 2025-06-24 media-libs/oneVPL-cpu -# Andreas Sturmlechner (2025-05-24) -# Dead upstream, fails to build with GCC-14, depends on media-libs/dumb. -# A rescue mission would ideally package dsda-doom. Bugs #939219, #908973 -# Removal on 2025-06-23. -games-fps/prboom-plus - # Sam James (2025-05-23) # Severe memory leak (bug #953874) =app-i18n/ibus-anthy-1.5.17 -# Andreas Sturmlechner (2025-05-23) -# Package destabilisation mask. There is simply no need for this without -# any stable consumers, and it is freeing up resources. -# 5.2.10.1 is available in ~arch. -~media-libs/allegro-5.2.7.0 - -# Andreas Sturmlechner (2025-05-22) -# Even if Qt5 is optional here, it is dead upstream for close to 10 years -# and without Gentoo package maintainer almost as long. Bug #926074. -# Removal on 2025-06-21. -net-firewall/pglinux - -# Andreas Sturmlechner (2025-05-22) -# Package destabilisation mask. 0.4.4_p20250125 is in ~arch but as snapshot -# with currently no Gentoo maintainer it will not be stabilised. -# 0.4.4 release was more than 3 years old already. Bug #955653 -~media-video/simplescreenrecorder-0.4.4 - # Matt Turner (2025-05-22) # Old slot depending on libsoup:2.4. All reverse dependencies migrated to a # newer slot supporting libsoup:3.0. @@ -235,22 +279,6 @@ x11-misc/meteo =media-gfx/gimp-3.0.2-r2 =media-gfx/gimp-3.0.4 -# Andreas Sturmlechner (2025-05-20) -# Unaddressed pending version bumps for almost 2 years, stuck on EAPI-7. -# Bugs #908094, #908095, #908096, #908097, #908427, #908428 -# Removal on 2025-06-19. -dev-libs/aws-c-cal -dev-libs/aws-checksums -dev-libs/aws-c-common -dev-libs/aws-c-event-stream -dev-libs/aws-c-io -dev-libs/s2n - -# Andreas Sturmlechner (2025-05-19) -# Dead upstream (last commit >4 years ago), not ported to Qt6 and broken w/ -# CMake 4. Bugs #955134, #955135. Removal on 2025-06-18. -sci-libs/libgeodecomp - # Ulrich Müller (2025-05-18) # Pretest versions, masked for testing. (2025-05-12) -# A serious performance regression has been found in 10.11.12 and 11.4.6 -# releases, distributions are advised to not publish them, see -# https://lists.mariadb.org/hyperkitty/list/packagers@lists.mariadb.org/thread/TP74ZU2ARZOQBLUNPT63I2A6LNB54XLJ/ -# and related bug reports: -# https://jira.mariadb.org/browse/MDEV-36759 -# https://jira.mariadb.org/browse/MDEV-36765 -# https://jira.mariadb.org/browse/MDEV-36766 -# -# Affected packages were removed from the tree, but this message shall be kept -# untill 2025-06-23. -~dev-db/mariadb-10.11.12 -~dev-db/mariadb-11.4.6 - # Michał Górny (2025-05-08) # Vulnerable, EOL branch of dev-python/django. Bug #955606. # Pleas upgrade to 5.1, 5.2 LTS, or downgrade to 4.2 LTS. @@ -312,13 +326,6 @@ dev-libs/libxml2-compat # Unmask it after it is properly tested & fixed =app-misc/screen-5* -# Conrad Kostecki (2025-03-28) -# Upstream is dead and broken. All 'whatsapp' deps -# will be last-rited on 2025-04-28. -# Bug #952588 #952589 -net-im/transwhat -net-im/yowsup - # Michał Górny (2025-03-17) # Xfce 4.22 prereleases. Masked because they tend to be quite unstable. >=dev-build/xfce4-dev-tools-4.21 diff --git a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/gnome/package.use b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/gnome/package.use index a60190ee8b3..0750f01a2a4 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/gnome/package.use +++ b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/gnome/package.use @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Mart Raudsepp (2022-01-05) @@ -42,8 +42,8 @@ app-accessibility/speech-dispatcher python # Pulled in by grilo-plugins which is needed for gnome-music media-libs/grilo playlist -# Pulled in by tracker and grilo-plugins, has REQUIRED_USE="?? ( gtk qt5 )" -media-libs/libmediaart gtk -qt5 +# Pulled in by tracker and grilo-plugins, has REQUIRED_USE="?? ( gtk qt6 )" +media-libs/libmediaart gtk -qt6 # For gnome-boxes net-misc/spice-gtk gtk3 diff --git a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/plasma/package.use b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/plasma/package.use index 5df31320ad8..def5d38c4de 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/plasma/package.use +++ b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/plasma/package.use @@ -36,6 +36,7 @@ media-libs/gd fontconfig # Required by kde-apps/kdenlive media-libs/mlt ffmpeg frei0r rubberband +media-libs/opencv features2d # Required by media-gfx/digikam media-libs/opencv contrib contribdnn 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 4698f2e442b..4c912c607a5 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 @@ -4,9 +4,3 @@ # Andreas Sturmlechner (2025-05-18) # Requires systemd, so specifically unmasked only in targets/systemd. ->=kde-plasma/drkonqi-6.3.90 - -# Sam James (2024-11-10) -# Breaks suspend on elogind systems (bug #934314, bug #923614) but -# works fine on systemd machines. -# https://github.com/polkit-org/polkit/issues/451 -->=sys-auth/polkit-124 diff --git a/sdk_container/src/third_party/portage-stable/profiles/targets/systemd/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/targets/systemd/package.use.mask index 944426611e3..4539807f19d 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/targets/systemd/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/targets/systemd/package.use.mask @@ -1,6 +1,11 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Andreas Sturmlechner (2025-06-26) +# >=kde-plasma/drkonqi-6.3.90 requires systemd, so specifically +# unmasked only in targets/systemd. +kde-plasma/plasma-meta -systemd + # John M. Harris, Jr. (2024-12-12) # seccomp is only supported with systemd sys-apps/fwupd -seccomp 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 7b50b6fbaec..f19b5919a72 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 @@ -11,7 +11,7 @@ if [[ ${PV} == 9999 ]] ; then inherit git-r3 else SRC_URI="https://www.kernel.org/pub/software/utils/${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="Open Firmware device tree compiler" 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 ebcfafdfe63..cbb8dd12e12 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,4 +1,4 @@ DIST ethtool-6.10.tar.xz 360300 BLAKE2B 530ec7fc00a6f88173d403ce0288cbdc7610997feb58bc05b88a87d8606827b8b8e4ce715099f5a6d90257b8e6463ddd259f06f4b0ce9206b2d4742795b86fb1 SHA512 1b6a0f5d2b89de57d1f003779557f2be786e26660ec430e80a966ad047f2fe1fe41bb573738b93454f32cf9089000ae879fc7feba0532bb559636a301ea61b10 DIST ethtool-6.11.tar.xz 364148 BLAKE2B 589a7d7be3d251f72bd0a5b56cf33fbe94c95beff565194e784672984340321bec51f2d2383b03f8a8fe9161c4add381d210bd9a4ce58f048238d1413b194429 SHA512 77f649e1082a164e3627bcb21db1215a89d9a0e984f86516bb05879685aee76b034f6a9e19a499dcdd82883fa003f628b70d27ca8272064df27fe9de67c7a9a7 DIST ethtool-6.14.tar.xz 371928 BLAKE2B a68649a7a404a632493cbca614b42fd27bab1d686040335899836c7e427272f7048d0c6fca506fbe8c003cad88667ca4c3d9def800f519f93175d4edd77c9488 SHA512 05688e41044a3f263f4367149f9d775bc378f0f421685f415b30062ca74fa62acc0d5ee5aa74b2104429b5f1712fc2f12e120af0d5744c775c84fe8e777938a3 -DIST ethtool-6.9.tar.xz 358640 BLAKE2B e04fa530084ad14abfea8c3802f272eb61eae9ee07aa2a12d16eeb77708b5ab021f1cdee10c24f83f77d65f2740ba5aceda99c21c47ef6cbcd65834af8334b00 SHA512 bc7e56a1a27a0679119491d6fce076e68374cf47a86fa4c0533851df0aa737cb9139920a9f3f3733deca672923d01bbb579f3d79bd17a2c6738f9f93aa469570 +DIST ethtool-6.15.tar.xz 444060 BLAKE2B 2a4a71c7ea6ac047d23fa9c8265a2dce8432f4417f6006f71dc91e365b9a841b5bfd44683e3179806f38285f199ed0cb84d1ca7a3f02979b8f4045274736f9eb SHA512 f140095e7c9e38d8b151796eed1301e9e6ab93e82d3e35b8a524b4f5be7b219e707bd270af7398195081085778c61948e15b39462a6a6f44aad6ffcaaddc3644 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/ethtool-6.9.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/ethtool-6.15.ebuild similarity index 80% rename from sdk_container/src/third_party/portage-stable/sys-apps/ethtool/ethtool-6.9.ebuild rename to sdk_container/src/third_party/portage-stable/sys-apps/ethtool/ethtool-6.15.ebuild index cd0bd783b1a..92aba5ab4b2 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/ethtool-6.9.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/ethtool-6.15.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -9,7 +9,7 @@ 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" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" IUSE="+netlink" RDEPEND="netlink? ( net-libs/libmnl )" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/less/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/less/Manifest index 0bc9c871e56..a85ff015a23 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/less/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/less/Manifest @@ -1,3 +1,4 @@ DIST less-643.tar.gz 592291 BLAKE2B 6dc60dc2e8db05afdae466877a1d26a3008ff5378bbbf2fbdf9efc4f87c0fcfde5703d44a24d4355c98d3a5f438bdb51173150f2a69f801d9c8e4a7401d71b53 SHA512 6a324ac54e22429ac652dc303bc1fe48933555d1cbf8ad7ecf345940910c014fef9551a3219743cfb7115e356b5841ae97d6ce62e7a1ba1e3300d243efca34d9 DIST less-668.tar.gz 649770 BLAKE2B 0f6a85a1c66577dd2a28682a6f8399e42fdbe9fc1498b2e89c6bb7c47109e8d3ab934abe5dd998b2c8dfacfb174ad9daeb79b3d4c13df22fa035ea792b2eaf5e SHA512 6527741a609849ec27b6ab35de46f2c5c2b2771391e3efe263207bee28915946f44331a42f832a7cb42231a19b135cbadc15ae02cd997b83a13cdfbc7213fc27 DIST less-678.tar.gz 876971 BLAKE2B 5e6644a8c66f35f1b3ab72a0727c76922b7d3cf299d5d1cf1c94882e8b0d3ec0461cd351e6b2db554b331d993760db8eb17209f41f271f5704fee0caf8d6540e SHA512 ad1983229bfb5a30c6139db60012d3a12b613011f044acb4c0ec5c0fc809b8dc9be40255bf420f65d51425152c4cfc943076ccd2ee63b196165d6ab1426ea187 +DIST less-679.tar.gz 877094 BLAKE2B 024cd7f4014958e9be52a89aefd9404298850c56f0f8d2403e8648b06ce37bcca6742ebd8a3a4900acb78a3884c4f17270919feb3ca76c6978c34ec79043f154 SHA512 f04e37dc4b2839b416a195e107d21328800e75080054788002c109b3b113a6a898b953391912e7538fb9843ef530b1991efc76dbf6fb5960e5530f3ff83421f6 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/less/less-679.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/less/less-679.ebuild new file mode 100644 index 00000000000..d0f19d686a2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/less/less-679.ebuild @@ -0,0 +1,95 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Releases are usually first a beta then promoted to stable if no +# issues were found. Upstream explicitly ask "to not generally distribute" +# the beta versions. It's okay to keyword beta versions if they fix +# a serious bug, but otherwise try to avoid it. + +WANT_AUTOMAKE=none +WANT_LIBTOOL=none +inherit autotools flag-o-matic optfeature toolchain-funcs + +DESCRIPTION="Excellent text file viewer" +HOMEPAGE="https://www.greenwoodsoftware.com/less/" + +MY_PV=${PV/_beta/-beta} +MY_P=${PN}-${MY_PV} + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://github.com/gwsw/less" + inherit git-r3 +else + SRC_URI="https://www.greenwoodsoftware.com/less/${MY_P}.tar.gz" + + if [[ ${PV} != *_beta* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + fi +fi + +S="${WORKDIR}"/${MY_P/?beta} + +LICENSE="|| ( GPL-3 BSD-2 )" +SLOT="0" +IUSE="pcre test" +RESTRICT="!test? ( test )" + +DEPEND=" + >=app-misc/editor-wrapper-3 + >=sys-libs/ncurses-5.2:= + pcre? ( dev-libs/libpcre2 ) +" +RDEPEND="${DEPEND}" +BDEPEND="test? ( virtual/pkgconfig )" + +PATCHES=( + "${FILESDIR}"/${PN}-643-lesstest-pkg-config.patch +) + +src_prepare() { + default + # Per upstream README to prepare live build + [[ ${PV} == 9999 ]] && emake -f Makefile.aut distfiles + # Upstream uses unpatched autoconf-2.69, which breaks with clang-16. + # https://bugs.gentoo.org/870412 + eautoreconf +} + +src_configure() { + append-lfs-flags # bug #896316 + + local myeconfargs=( + --with-regex=$(usex pcre pcre2 posix) + --with-editor="${EPREFIX}"/usr/libexec/editor + ) + econf "${myeconfargs[@]}" +} + +src_test() { + emake check VERBOSE=1 CC="$(tc-getCC)" PKG_CONFIG="$(tc-getPKG_CONFIG)" +} + +src_install() { + default + + keepdir /usr/lib/lessfilter.d + keepdir /etc/lessfilter.d + + newbin "${FILESDIR}"/lesspipe-r4.sh lesspipe + newenvd "${FILESDIR}"/less.envd 70less +} + +pkg_preinst() { + optfeature "Colorized output support" dev-python/pygments + + if has_version "<${CATEGORY}/${PN}-483-r1" ; then + elog "The lesspipe.sh symlink has been dropped. If you are still setting" + elog "LESSOPEN to that, you will need to update it to '|lesspipe %s'." + fi + + if has_version "<${CATEGORY}/${PN}-643" ; then + elog "less now colorizes by default. To disable this, set LESSCOLOR=no." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/less/less-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/less/less-9999.ebuild index be837676e6c..d0f19d686a2 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/less/less-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/less/less-9999.ebuild @@ -25,7 +25,7 @@ else SRC_URI="https://www.greenwoodsoftware.com/less/${MY_P}.tar.gz" if [[ ${PV} != *_beta* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi fi @@ -34,8 +34,7 @@ S="${WORKDIR}"/${MY_P/?beta} LICENSE="|| ( GPL-3 BSD-2 )" SLOT="0" IUSE="pcre test" -# chinese1, utf8-2 -RESTRICT="test !test? ( test )" +RESTRICT="!test? ( test )" DEPEND=" >=app-misc/editor-wrapper-3 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/man-db/man-db-2.13.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/man-db/man-db-2.13.1.ebuild index a45575d98b0..babc8950855 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/man-db/man-db-2.13.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/man-db/man-db-2.13.1.ebuild @@ -14,7 +14,7 @@ else inherit libtool # TODO: Change tarballs to gitlab too...? SRC_URI="mirror://nongnu/${PN}/${P}.tar.xz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi LICENSE="GPL-3" 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 9b0e1ce8d98..cea49dff765 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 +1,2 @@ DIST pciutils-3.13.0.tar.gz 672999 BLAKE2B d779ca0fd8c96a54bf81f6234d6a38eae2882d39dd1a52a508246bc46b5f4ac9318bbca20266378ec3917e72fe6ec30c47b1b5e9df4e86d3f59cbe860e2ac70e SHA512 73f99b5c2251676368738e0dc9d82529f3516966f1658a96149768b9775a0e177d630512dc7ea33087a7fcb960a3498f0c4c1a9f7233ec1cf242b9ab087fa0d1 +DIST pciutils-3.14.0.tar.gz 722554 BLAKE2B 3ab270c4523cc1968d5f3a03d2564eff5560b60eb8307bafe44ee240a6636dc676fbf0a28effe3c9abc99bfc86a975aea066d634a5e5adaffb2c63ba226511d9 SHA512 35cabfd8af8b0673440c7eba77fae8cad295f2618376148233b735ac032499e23967f863d48656d4c6f38b250db013747c92ed9719a57cd4e2df3065056f6c27 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.14.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.14.0.ebuild new file mode 100644 index 00000000000..5b30fe56f12 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.14.0.ebuild @@ -0,0 +1,173 @@ +# 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 ~amd64-linux ~x86-linux" +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? ( >=sys-libs/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/pkgcore/pkgcore-0.12.30.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.30.ebuild index 915105f6e04..d72afdc3120 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.30.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.30.ebuild @@ -12,7 +12,7 @@ if [[ ${PV} == *9999 ]] ; then https://github.com/pkgcore/pkgcore.git" inherit git-r3 else - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos" inherit pypi fi diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.68.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.68.ebuild index d2f2e76559a..39fabc7fd65 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.68.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.68.ebuild @@ -20,7 +20,7 @@ if [[ ${PV} == 9999 ]] ; then 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" + KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" fi LICENSE="GPL-2" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pv/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/pv/Manifest index 63e6d2016fc..fb28b3ac9d3 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pv/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pv/Manifest @@ -1,6 +1,2 @@ -DIST pv-1.9.0.tar.gz 369918 BLAKE2B 802dafdd2e354887d8ca73f42787e86941081aaf62cafc7032ee2fdd299683c1e8a764c4262c5ec7596bd6221d59435ce7b340614783cc72f241735a460e5013 SHA512 1085387fdf645ab14b4b83b006dbc09018e2e3cb89a585cc6b9d5c03e947ffd84d300fb0698bb8e4dfc918aa25f9453897a394791a6aa9caefa278e21b9acf35 -DIST pv-1.9.0.tar.gz.asc 691 BLAKE2B 86b99c718935afdbbf2419b1363a385d1ca8afe81bc7fabea8b4b48dbe1c439a7cd4bb93a106608cb6916f9503fc0f32253867771f9b78feb24f5218d2f49f8f SHA512 d8fe557b690aa828a3a2af9b74397d00ab1b00b444890220b79991aa5161ec8cc5ca3701b37950ec07bc3382f6cbc1578bf6b2be1966c34313827c1eeaa79fc7 -DIST pv-1.9.15.tar.gz 401271 BLAKE2B 062bc326eae9b3f8a17eb3a453f5b5e5081eece1b7d7601aabe7ea6ffb6d4fff62ad1896b66990a54b7c6cd6baf080d0efefa4039947d88386c779e6e9ec7a90 SHA512 9a5174b3523e20f186689553e5004df35e38da9462a8f7376b6efce186e854ed8ef139c9e2d10944c20e478e5cfe80a7b67786d5e909ed1a9e40c9ca9fde474c -DIST pv-1.9.15.tar.gz.asc 691 BLAKE2B e29a55fc7a78b39135d1c53decdeb6ec553443dcceedb5886522e6c4914aa354d05754cc7ddbefc4a5b930a9d75d82b33827fd7ef070fcb45dcd512d882b4d98 SHA512 571302a27539e5cfd5179827f1a1881499febba99207461d750c3934f3dad21e5c396fd8db7179e170ce5ab2239f5332517c63e2c43160428a86f875ae29a34a DIST pv-1.9.31.tar.gz 417551 BLAKE2B 6018abe674834f45312faa5ce07b49e11258e29fffc11d88ce73f50ae58c47e94defa3d5d819099a6909610e7423d9e42a8ce939fa39fe476cdbf35e89aa0112 SHA512 63cdc6223cde4f3f0daf47b5808a3f72a9cfaf2c05751e971a99d9dd3df2f36430958213c023931f428c87341a5f6c1f3772f30ca992123ea4c2a2e48000ff1d DIST pv-1.9.31.tar.gz.asc 691 BLAKE2B 7b5b998341db887b14c56fc080d87cb4abb186b4df2c8def638822889a734436fe0c4c132396415bbc0dcb0754f76d0456bb667533ef7ed92ed0c09a62522e8b SHA512 549a3bb3f4f404b3a6e407663ba335e3d4e14303185654771c974335ed5e7ac46dbba71bbf4f26e640217829e58a0da8d6fa139b02f426b60ab074ec97084374 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.0.ebuild deleted file mode 100644 index 2fe16ca8af8..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.0.ebuild +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/pv.asc -inherit linux-info toolchain-funcs verify-sig - -DESCRIPTION="Pipe Viewer: a tool for monitoring the progress of data through a pipe" -HOMEPAGE="https://www.ivarch.com/programs/pv.shtml https://codeberg.org/a-j-wood/pv" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://codeberg.org/a-j-wood/pv" - inherit autotools git-r3 -else - SRC_URI=" - https://www.ivarch.com/programs/sources/${P}.tar.gz - verify-sig? ( https://www.ivarch.com/programs/sources/${P}.tar.gz.txt -> ${P}.tar.gz.asc ) - " - - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" -fi - -LICENSE="GPL-3+" -SLOT="0" -IUSE="debug nls" - -BDEPEND="verify-sig? ( sec-keys/openpgp-keys-pv )" - -pkg_setup() { - if use kernel_linux; then - CONFIG_CHECK="~SYSVIPC" - ERROR_SYSVIPC="You will need to enable CONFIG_SYSVIPC in your kernel to use the --remote option." - linux-info_pkg_setup - fi -} - -src_prepare() { - default - - # Valgrind isn't reliable within sandbox. - cat <<-EOF > tests/run-valgrind.sh || die - #!/bin/sh - exit 77 - EOF - chmod +x tests/run-valgrind.sh || Die - - [[ ${PV} == 9999 ]] && eautoreconf -} - -src_configure() { - tc-export AR - - econf \ - $(use_enable debug debugging) \ - $(use_enable nls) -} - -src_test() { - emake -Onone check -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.15.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.15.ebuild deleted file mode 100644 index 03801fb28c2..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.15.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 - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/pv.asc -inherit linux-info toolchain-funcs verify-sig - -DESCRIPTION="Pipe Viewer: a tool for monitoring the progress of data through a pipe" -HOMEPAGE="https://www.ivarch.com/programs/pv.shtml https://codeberg.org/a-j-wood/pv" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://codeberg.org/a-j-wood/pv" - inherit autotools git-r3 -else - SRC_URI=" - https://www.ivarch.com/programs/sources/${P}.tar.gz - verify-sig? ( https://www.ivarch.com/programs/sources/${P}.tar.gz.txt -> ${P}.tar.gz.asc ) - " - - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" -fi - -LICENSE="GPL-3+" -SLOT="0" -IUSE="debug nls" - -BDEPEND="verify-sig? ( sec-keys/openpgp-keys-pv )" - -pkg_setup() { - if use kernel_linux; then - CONFIG_CHECK="~SYSVIPC" - ERROR_SYSVIPC="You will need to enable CONFIG_SYSVIPC in your kernel to use the --remote option." - linux-info_pkg_setup - fi -} - -src_prepare() { - default - - [[ ${PV} == 9999 ]] && eautoreconf -} - -src_configure() { - tc-export AR - - econf \ - $(use_enable debug debugging) \ - $(use_enable nls) -} - -src_test() { - # Valgrind is unreliable within sandbox - local -x SKIP_VALGRIND_TESTS=1 - emake -Onone check -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/Manifest index cedb5e9a9d0..a0d09beada2 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 @@ -1,6 +1,6 @@ -DIST util-linux-2.40.2.tar.sign 833 BLAKE2B 10aae23d25c1364bac0034d6862df5738c7a405d52198fba1e4e9173a1b2ba9f3d994dacb881d920c3339c0f1018c7dd1c97c7752bdf0e8e634f54235c2b3f5c SHA512 e4ace52333df0c8dd7c8ffc3b813020615c456e06a6978e06c8183ec29896be5af7c25f59e65fc2c2849750d8d7b43043775b8504d6d01f626f1adf296493ce1 -DIST util-linux-2.40.2.tar.xz 8854820 BLAKE2B 8306d651f27db6665e91a937c9f1970938fec5b069636fea3c2688afddebd1a3424f0b0802a034eab049cf7692dd435cf93e82aa5f4a40cc8064d60b4ca59535 SHA512 ffe20b915a518a150401d429b0338bc7022190e4ca0ef91a6d9eea345db8c1e11ad01784163b8fcf978506f3f5cad473f29d5d4ef93a4c66a5ae0ebd9fb0c8f2 DIST util-linux-2.40.4.tar.sign 833 BLAKE2B 7ed5fe555bc5fe11e99081190e73d0784e91bed78e17af358287c0df6c920a224f8d33428a5f139d8503b12379e93a96619bf4b8e3eec0da757e950c78ad12fe SHA512 1ed2f8710a702e313d690c9c071c7a151df1cef7527a08ab4d1eda7a293239cf00392a78b21125df09f0af7249b473b1a51b92bb8e0494608db437c7ee4e0473 DIST util-linux-2.40.4.tar.xz 8848216 BLAKE2B 37c095d0ab97d54dd5a35160dd4d7d3ac683c19c799d57dac3a2e850a824160470e8654fbc77752cad9a9b1198cd1aa6594e8fa66f498c653c8a9f34ef0203e8 SHA512 0024955056ba7b4c54040a917f9919f49692e57ba6d42d17a6c29c1eefe88bf48b1214a545072b71c468829a63a8f15237f49733e9127c134e11126d1e435124 +DIST util-linux-2.41.1.tar.sign 833 BLAKE2B ee9d199bf6e073d1c55ee99e9b8e997e59b0c7dd1cf0ee4fa1799540887c473e23a87704a2095c461fd52aea0c765e011504d19c87a681709a96475bd5bc3e35 SHA512 0cf22edee77269142738d6e7587381be3ddc443a1c524e398c1867849297919b27ef18f5bab0b721c890d7cad93cb6dbbe6c89b099d7aa688840711852867101 +DIST util-linux-2.41.1.tar.xz 9606156 BLAKE2B 0734e461837d825a8c0f770061cc005cef9238beea15dd900283481bcec66a971492a898cd44581e889fd1af25cf631e16a687d3f0df0a86a8caa15e7f45c935 SHA512 12cf37ab2d62d0378b16a40e0194ef7131ef1ad06737cca3f169cfc04b9da08a4233076c819b30705e8fb2c3b8d91a1d83aac4f036ce58b9cf5928f545e511a2 DIST util-linux-2.41.tar.sign 833 BLAKE2B 7aa7cdabc76ab893d919372925eaf6c25fc5567af22bfacea94d8fe06db49869360817a69fe2dedd38e1f71c4603c59f0e881659f35717d5c3095787e98e6fea SHA512 41318ef7e91a21fcf7e0bb0980afd60469d511f9940b55515937d916577df146668a1c46054f56c0f354a5fc04a88c4a72a9bf34da86cf5571af72f0a04d5b8c DIST util-linux-2.41.tar.xz 9535724 BLAKE2B b0f6d63c1365d3b065584d4d79a1716e1f036474984fc08dd6b298d7f50e66736af046404d3c9d8051fd0c9c455bcd623257ea1b967b755bee063415d91c5c21 SHA512 800ff92ee7a047732c0accb9dd759d6ed659947373ca72e0dd3ca601d0a6fed9db92c0838cfaff6bcdb8c08bdc1ffa675721893f42945885c57ccd59ab676318 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.40.4.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.40.4.ebuild index cd398debbd3..a94539ac662 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.40.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.40.4.ebuild @@ -23,7 +23,7 @@ else inherit verify-sig if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos" + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos" fi SRC_URI="https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.40.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.1.ebuild similarity index 97% rename from sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.40.2.ebuild rename to sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.1.ebuild index c7543ebb24b..c5357b6e4f4 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.40.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.1.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 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} ) TMPFILES_OPTIONAL=1 inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 \ @@ -23,7 +23,7 @@ else inherit verify-sig if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos" fi SRC_URI="https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz" @@ -145,12 +145,19 @@ src_prepare() { 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 diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/Manifest b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/Manifest index 91a8d2edf2f..53e2efde44c 100644 --- a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/Manifest @@ -1,4 +1,2 @@ DIST polkit-123.tar.bz2 707480 BLAKE2B 27d8764606d8156118269fb4cd5eda1cfd0d56df219e4157cd78fd4c2a2d001c474271b7bb31e7e82ca376eacd26411418695058cc888700690606348b4d014a SHA512 4306363d3ed7311243de462832199bd10ddda35e36449104daff0895725d8189b07a4c88340f28607846fdf761c23470da2d43288199c46aa816426384124bb6 -DIST polkit-124.tar.bz2 715490 BLAKE2B ecfc1ec73a7e1bbdf7374642ad4e1dbe534149a27e75bb1235eaa446ff912466ee0cdd978c34b7f110bc62a49b25ffddc9011e280686e3f304a234454be85a40 SHA512 db520882b0bedf1c96052570bf4c55d7e966d8172f6d26acf0791d98c4b911fce5ee39e6d830f06122ac8df33c6b43c252cdb7ba3a54523804824ebf355405dc -DIST polkit-125.tar.gz 453652 BLAKE2B 068bd4a7c028a0b4e026a0fdc3a60bd323087282a5c5bd7cbc404dbedb997de63893ce2282e8cd5f01f8d98ff0cc1a46200543a832fa397a4f50ef8d6ba2b28b SHA512 64d85c1557355d6de6483beeb855b74a99dbb30cf9968206dc0aaf147156072ca2604bf667533099ee3972b3eed0421ec0a1ff8bea35a1e4c54da7b9688e0953 DIST polkit-126.tar.gz 456138 BLAKE2B 2e86c8853edf29879d8367b77d210d3a891178297cb5f9eb204a953bfaa66f6ff2307da265f4c3f89265ba8ce32e94641272d654a78d116dfb32a65d402f877a SHA512 dbdbc31b7a231c963788b37cf1a138e30336466fb662225a812faaf58e45439925d9d39346cc8f07e54f22040c2f142435acb9fded315d33e24930e0abc736c7 diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/8cf58abef12e61f369af3f583af349b0e086ba27.patch b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/8cf58abef12e61f369af3f583af349b0e086ba27.patch deleted file mode 100644 index 44a6958eb49..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/8cf58abef12e61f369af3f583af349b0e086ba27.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 8cf58abef12e61f369af3f583af349b0e086ba27 Mon Sep 17 00:00:00 2001 -From: Eli Schwartz -Date: Sun, 20 Oct 2024 15:18:55 -0400 -Subject: [PATCH] meson: correctly test for setnetgrent return type - -meson doesn't automatically add all project arguments to configure -checks -- nor incrementally the inline value of all configuration_data -entries. - -But that meant it was missing -D_GNU_SOURCE, as well as a define added -to config.h itself. As a result, this check failed to detect the -necessary function definition and failed to link. - -``` -Command line: `gcc-14 /var/tmp/portage/sys-auth/polkit-125/work/polkit-125-build/meson-private/tmpj0ih4pm4/testfile.c -o /var/tmp/portage/sys-auth/polkit-125/work/polkit-125-build/meson-private/tmpj0ih4pm4/output.obj -c -pipe -march=native -fstack-protector-all -O2 -fdiagnostics-color=always -frecord-gcc-switches -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wformat -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Werror=int-conversion -Werror=incompatible-pointer-types -D_FILE_OFFSET_BITS=64 -O0 -std=c99` -> 1 -stderr: -/var/tmp/portage/sys-auth/polkit-125/work/polkit-125-build/meson-private/tmpj0ih4pm4/testfile.c: In function 'main': -/var/tmp/portage/sys-auth/polkit-125/work/polkit-125-build/meson-private/tmpj0ih4pm4/testfile.c:9:17: error: implicit declaration of function 'setnetgrent'; did you mean 'setnetent'? [-Wimplicit-function-declaration] - 9 | int r = setnetgrent (NULL); - | ^~~~~~~~~~~ - | setnetent ------------ -Checking if "setnetgrent return support" compiles: NO -``` - -Bug: https://bugs.gentoo.org/938870 -Signed-off-by: Eli Schwartz ---- - meson.build | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git a/meson.build b/meson.build -index 0800c88..a0b440d 100644 ---- a/meson.build -+++ b/meson.build -@@ -159,7 +159,8 @@ host_system = host_machine.system() - config_data.set('HAVE_' + host_system.to_upper(), true) - - # Check whether setnetgrent has a return value --config_data.set('HAVE_NETGROUP_H', cc.has_header('netgroup.h')) -+have_netgroup_h = cc.has_header('netgroup.h') -+config_data.set('HAVE_NETGROUP_H', have_netgroup_h) - - if config_data.get('HAVE_SETNETGRENT', false) - setnetgrent_return_src = ''' -@@ -174,7 +175,11 @@ if config_data.get('HAVE_SETNETGRENT', false) - }; - ''' - -- config_data.set('HAVE_SETNETGRENT_RETURN', cc.compiles(setnetgrent_return_src, name: 'setnetgrent return support')) -+ args = ['-D_GNU_SOURCE'] -+ if have_netgroup_h -+ args += '-DHAVE_NETGROUP_H' -+ endif -+ config_data.set('HAVE_SETNETGRENT_RETURN', cc.compiles(setnetgrent_return_src, args: args, name: 'setnetgrent return support')) - endif - - # Select wether to use logind, elogind or ConsoleKit for session tracking diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/polkit-124-c99-fixes.patch b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/polkit-124-c99-fixes.patch deleted file mode 100644 index 00d3cbbd266..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/polkit-124-c99-fixes.patch +++ /dev/null @@ -1,111 +0,0 @@ -https://bugs.gentoo.org/925440 -https://github.com/polkit-org/polkit/commit/0d78d1e4bf5ab3ce11678005b220aac0cfc5bee5 - -From: Vincent Mihalkovic -Date: Fri, 8 Mar 2024 14:04:33 +0100 -Subject: [PATCH 3/3] mocklibc: move the print_indent function to the file - where it is used -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This fixes build error with GCC >= 14 and clang >= 17, -failing on: -``` -../subprojects/mocklibc-1.0/src/netgroup-debug.c:25:3: error: implicit declaration of function ā€˜print_indent’ [-Wimplicit-function-declaration] - 25 | print_indent(stream, indent); - | ^~~~~~~~~~~~ -``` - -Closes: #6 ---- - subprojects/mocklibc.wrap | 2 + - .../packagefiles/mocklibc-print-indent.diff | 68 +++++++++++++++++++ - 2 files changed, 70 insertions(+) - create mode 100644 subprojects/packagefiles/mocklibc-print-indent.diff - -diff --git a/subprojects/mocklibc.wrap b/subprojects/mocklibc.wrap -index af82298..539ee83 100644 ---- a/subprojects/mocklibc.wrap -+++ b/subprojects/mocklibc.wrap -@@ -8,3 +8,5 @@ source_hash = b2236a6af1028414783e9734a46ea051916ec226479d6a55a3bb823bff68f120 - patch_url = https://wrapdb.mesonbuild.com/v1/projects/mocklibc/1.0/2/get_zip - patch_filename = mocklibc-1.0-2-wrap.zip - patch_hash = 0280f96a2eeb3c023e5acf4e00cef03d362868218d4a85347ea45137c0ef6c56 -+ -+diff_files = mocklibc-print-indent.diff -diff --git a/subprojects/packagefiles/mocklibc-print-indent.diff b/subprojects/packagefiles/mocklibc-print-indent.diff -new file mode 100644 -index 0000000..d8b2029 ---- /dev/null -+++ b/subprojects/packagefiles/mocklibc-print-indent.diff -@@ -0,0 +1,68 @@ -+From: Vincent Mihalkovic -+Date: Fri, 8 Mar 2024 14:04:33 +0100 -+Subject: [PATCH 3/3] mocklibc: move the print_indent function to the file -+ where it is used -+MIME-Version: 1.0 -+Content-Type: text/plain; charset=UTF-8 -+Content-Transfer-Encoding: 8bit -+ -+This fixes build error with GCC >= 14 and clang >= 17, -+failing on: -+``` -+../subprojects/mocklibc-1.0/src/netgroup-debug.c:25:3: error: implicit declaration of function ā€˜print_indent’ [-Wimplicit-function-declaration] -+ 25 | print_indent(stream, indent); -+ | ^~~~~~~~~~~~ -+``` -+ -+Closes: #6 -+--- -+ src/netgroup-debug.c | 11 +++++++++++ -+ src/netgroup.c | 11 ----------- -+ 2 files changed, 11 insertions(+), 11 deletions(-) -+ -+diff --git a/src/netgroup-debug.c b/src/netgroup-debug.c -+index 81d6e72..46e5b25 100644 -+--- a/src/netgroup-debug.c -++++ b/src/netgroup-debug.c -+@@ -21,6 +21,17 @@ -+ #include -+ #include -+ -++/** -++ * Print a varaible indentation to the stream. -++ * @param stream Stream to print to -++ * @param indent Number of indents to use -++ */ -++static void print_indent(FILE *stream, unsigned int indent) { -++ int i; -++ for (i = 0; i < indent; i++) -++ fprintf(stream, " "); -++} -++ -+ void netgroup_debug_print_entry(struct entry *entry, FILE *stream, unsigned int indent) { -+ print_indent(stream, indent); -+ -+diff --git a/src/netgroup.c b/src/netgroup.c -+index 06a8a89..e16e451 100644 -+--- a/src/netgroup.c -++++ b/src/netgroup.c -+@@ -71,17 +71,6 @@ static char *parser_copy_word(char **cur) { -+ return result; -+ } -+ -+-/** -+- * Print a varaible indentation to the stream. -+- * @param stream Stream to print to -+- * @param indent Number of indents to use -+- */ -+-void print_indent(FILE *stream, unsigned int indent) { -+- int i; -+- for (i = 0; i < indent; i++) -+- fprintf(stream, " "); -+-} -+- -+ /** -+ * Connect entries with 'child' type to their child entries. -+ * @param headentry Head of list of entries that need to be connected -+-- -+2.43.0 --- diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/polkit-124-systemd-fixup.patch b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/polkit-124-systemd-fixup.patch deleted file mode 100644 index a4dd7eafcf9..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/polkit-124-systemd-fixup.patch +++ /dev/null @@ -1,28 +0,0 @@ -https://bugs.gentoo.org/922458 -https://github.com/polkit-org/polkit/pull/417/files#r1458416421 ---- a/meson.build -+++ b/meson.build -@@ -212,14 +212,17 @@ if enable_logind - config_h.set10('HAVE_' + func.to_upper(), cc.has_function(func, dependencies: logind_dep)) - - # systemd unit / service files -- systemd_dep = dependency('systemd', not_found_message: 'systemd required but not found, please provide a valid systemd user unit dir or disable it') - systemd_systemdsystemunitdir = get_option('systemdsystemunitdir') -- if systemd_systemdsystemunitdir == '' and session_tracking == 'libsystemd-login' -- # FIXME: systemd.pc file does not use variables with relative paths, so `define_variable` cannot be used -- systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir') -- endif -+ if session_tracking == 'libsystemd-login' -+ systemd_dep = dependency('systemd', not_found_message: 'systemd required but not found, please provide a valid systemd user unit dir or disable it') - -- systemd_sysusers_dir = systemd_dep.get_pkgconfig_variable('sysusers_dir', default: '/usr/lib/sysusers.d') -+ if systemd_systemdsystemunitdir == '' -+ # FIXME: systemd.pc file does not use variables with relative paths, so `define_variable` cannot be used -+ systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir') -+ endif -+ -+ systemd_sysusers_dir = systemd_dep.get_pkgconfig_variable('sysusers_dir', default: '/usr/lib/sysusers.d') -+ endif - endif - config_h.set('HAVE_LIBSYSTEMD', enable_logind) - diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/polkit-124-systemd.patch b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/polkit-124-systemd.patch deleted file mode 100644 index e9b10e99e5d..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/polkit-124-systemd.patch +++ /dev/null @@ -1,50 +0,0 @@ -https://github.com/polkit-org/polkit/pull/417 - -From 69d6b94d590b4dd1fbbac22b4f4d449f46ef61aa Mon Sep 17 00:00:00 2001 -From: Luca Boccassi -Date: Thu, 18 Jan 2024 15:07:32 +0000 -Subject: [PATCH] meson: fix build failure when -Dsystemdsystemunitdir is - specified - -When 'systemdsystemunitdir' is specified as an option the systemd_dep -variable is not defined, but the sysusers.d directory lookup uses it, -causing a build failure: - -dh_auto_configure -- \ - -Dexamples=false \ - -Dintrospection=true \ - -Dman=true \ - -Dsystemdsystemunitdir=/usr/lib/systemd/system \ - -Dtests=true \ - -Dgtk_doc=true -Dsession_tracking=libsystemd-login - cd obj-x86_64-linux-gnu && DEB_PYTHON_INSTALL_LAYOUT=deb LC_ALL=C.UTF-8 meson setup .. --wrap-mode=nodownload --buildtype=plain --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=lib/x86_64-linux-gnu -Dpython.bytecompile=-1 -Dexamples=false -Dintrospection=true -Dman=true -Dsystemdsystemunitdir=/usr/lib/systemd/system -Dtests=true -Dgtk_doc=true -Dsession_tracking=libsystemd-login -The Meson build system -Version: 1.3.1 -Source dir: /builds/bluca/polkit/debian/output/source_dir -Build dir: /builds/bluca/polkit/debian/output/source_dir/obj-x86_64-linux-gnu -Build type: native build -Project name: polkit -Project version: 124 - -<...> - -Run-time dependency libsystemd found: YES 255 -Checking for function "sd_uid_get_display" with dependency libsystemd: YES -Checking for function "sd_pidfd_get_session" with dependency libsystemd: YES -../meson.build:222:37: ERROR: Unknown variable "systemd_dep". - -Follow-up for 24f1e0af3f7bd17e220cb96201f3c654e737ad34 ---- a/meson.build -+++ b/meson.build -@@ -212,9 +212,9 @@ if enable_logind - config_h.set10('HAVE_' + func.to_upper(), cc.has_function(func, dependencies: logind_dep)) - - # systemd unit / service files -+ systemd_dep = dependency('systemd', not_found_message: 'systemd required but not found, please provide a valid systemd user unit dir or disable it') - systemd_systemdsystemunitdir = get_option('systemdsystemunitdir') - if systemd_systemdsystemunitdir == '' and session_tracking == 'libsystemd-login' -- systemd_dep = dependency('systemd', not_found_message: 'systemd required but not found, please provide a valid systemd user unit dir or disable it') - # FIXME: systemd.pc file does not use variables with relative paths, so `define_variable` cannot be used - systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir') - endif - diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/polkit-125-musl.patch b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/polkit-125-musl.patch deleted file mode 100644 index ee0a444c919..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/polkit-125-musl.patch +++ /dev/null @@ -1,34 +0,0 @@ -https://github.com/polkit-org/polkit/commit/13bea3e08f924002a6a5c2f275d4bf1588fc3d02 - -From 13bea3e08f924002a6a5c2f275d4bf1588fc3d02 Mon Sep 17 00:00:00 2001 -From: Sertonix -Date: Sun, 11 Aug 2024 00:26:51 +0200 -Subject: [PATCH] Fix missing arguments with HAVE_PTHREAD_CONDATTR_SETCLOCK - -Fixes <64f5e4dda52> Add syslog-style log levels support ---- a/src/polkitbackend/polkitbackendduktapeauthority.c -+++ b/src/polkitbackend/polkitbackendduktapeauthority.c -@@ -767,12 +767,14 @@ runaway_killer_common(PolkitBackendJsAuthority *authority, RunawayKillerCtx *ctx - #ifdef HAVE_PTHREAD_CONDATTR_SETCLOCK - if ((pthread_err = pthread_condattr_init(&attr))) { - polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority), -+ LOG_LEVEL_ERROR, - "Error initializing condition variable attributes: %s", - strerror(pthread_err)); - return FALSE; - } - if ((pthread_err = pthread_condattr_setclock(&attr, PK_CLOCK))) { - polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority), -+ LOG_LEVEL_ERROR, - "Error setting condition variable attributes: %s", - strerror(pthread_err)); - goto err_clean_condattr; -@@ -780,6 +782,7 @@ runaway_killer_common(PolkitBackendJsAuthority *authority, RunawayKillerCtx *ctx - /* Init again, with needed attr */ - if ((pthread_err = pthread_cond_init(&ctx->cond, &attr))) { - polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority), -+ LOG_LEVEL_ERROR, - "Error initializing condition variable: %s", - strerror(pthread_err)); - goto err_clean_condattr; - diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/metadata.xml index 420dae0ebcd..c3094ca1243 100644 --- a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/metadata.xml @@ -5,8 +5,6 @@ freedesktop-bugs@gentoo.org - Build polkitd in addition to libpolkit. - Use dev-lang/duktape instead of dev-lang/spidermonkey as JavaScript engine Use sys-apps/systemd for session tracking diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-123-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-123-r1.ebuild index 15a547c8525..b352d52348e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-123-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-123-r1.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{10..11} ) +PYTHON_COMPAT=( python3_11 ) inherit meson pam pax-utils python-any-r1 systemd xdg-utils DESCRIPTION="Policy framework for controlling privileges for system-wide services" diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-124-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-124-r1.ebuild deleted file mode 100644 index 9cbf98691ae..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-124-r1.ebuild +++ /dev/null @@ -1,156 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{10..12} ) -inherit meson pam pax-utils python-any-r1 systemd 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} == *_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://gitlab.freedesktop.org/polkit/polkit/-/archive/${MY_COMMIT}/polkit-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2" - - S="${WORKDIR}"/${PN}-${MY_COMMIT} -else - SRC_URI="https://gitlab.freedesktop.org/polkit/polkit/-/archive/${PV}/${P}.tar.bz2" -fi - -LICENSE="LGPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" -IUSE="+daemon +duktape examples gtk +introspection kde pam 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 - dev-libs/gobject-introspection-common - dev-libs/libxslt - dev-util/glib-utils - sys-devel/gettext - virtual/pkgconfig - introspection? ( >=dev-libs/gobject-introspection-0.6.2 ) - 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 - daemon? ( - duktape? ( dev-lang/duktape:= ) - !duktape? ( dev-lang/spidermonkey:115[-debug] ) - ) - 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}"/${PN}-124-systemd.patch - "${FILESDIR}"/${PN}-124-systemd-fixup.patch - "${FILESDIR}"/${PN}-124-c99-fixes.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:wheel|unix-user:0|' src/polkitbackend/*-default.rules || 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 - -Dsession_tracking="$(usex systemd libsystemd-login libelogind)" - -Dsystemdsystemunitdir="$(systemd_get_systemunitdir)" - -Djs_engine=$(usex duktape duktape mozjs) - $(meson_use !daemon libs-only) - $(meson_use introspection) - $(meson_use test tests) - $(usex pam "-Dpam_module_dir=$(getpam_mod_dir)" '') - ) - 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 use daemon; then - if [[ ${EUID} == 0 ]]; then - diropts -m 0700 -o polkitd - fi - keepdir /etc/polkit-1/rules.d - fi -} - -pkg_postinst() { - if use daemon && [[ ${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-125-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-125-r1.ebuild deleted file mode 100644 index 9a9d630ffd7..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-125-r1.ebuild +++ /dev/null @@ -1,159 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{10..12} ) -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} == *_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" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" -IUSE="+daemon +duktape examples gtk +introspection kde pam selinux systemd test" -# Tests restricted b/c of permissions -RESTRICT="!test? ( test ) test" - -BDEPEND=" - acct-user/polkitd - app-text/docbook-xml-dtd:4.1.2 - app-text/docbook-xsl-stylesheets - dev-libs/glib - dev-libs/gobject-introspection-common - dev-libs/libxslt - dev-util/glib-utils - sys-devel/gettext - virtual/pkgconfig - introspection? ( >=dev-libs/gobject-introspection-0.6.2 ) - 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 - daemon? ( - duktape? ( dev-lang/duktape:= ) - !duktape? ( dev-lang/spidermonkey:115[-debug] ) - ) - 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}-musl.patch - # fix incorrect feature detection - "${FILESDIR}"/8cf58abef12e61f369af3f583af349b0e086ba27.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:wheel|unix-user:0|' src/polkitbackend/*-default.rules || 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 - -Djs_engine=$(usex duktape duktape mozjs) - -Dpam_module_dir=$(getpam_mod_dir) - -Dsession_tracking="$(usex systemd logind elogind)" - -Dsystemdsystemunitdir="$(systemd_get_systemunitdir)" - $(meson_use !daemon libs-only) - $(meson_use introspection) - $(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 use daemon; then - if [[ ${EUID} == 0 ]]; then - diropts -m 0700 -o polkitd - fi - keepdir /etc/polkit-1/rules.d - fi -} - -pkg_postinst() { - tmpfiles_process polkit-tmpfiles.conf - - if use daemon && [[ ${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-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-126-r1.ebuild index 1fb175cbf58..acc33430805 100644 --- a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-126-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-126-r1.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{10..13} ) +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" @@ -26,7 +26,7 @@ fi LICENSE="LGPL-2" SLOT="0" if [[ ${PV} != 9999 ]] ; then - KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" fi IUSE="examples gtk +introspection kde pam nls selinux systemd test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-9999-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-9999-r1.ebuild deleted file mode 100644 index c4a985f1247..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-9999-r1.ebuild +++ /dev/null @@ -1,160 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{10..12} ) -inherit meson pam pax-utils python-any-r1 systemd 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="+daemon +duktape examples gtk +introspection kde pam 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 - dev-libs/gobject-introspection-common - dev-libs/libxslt - dev-util/glib-utils - sys-devel/gettext - virtual/pkgconfig - introspection? ( >=dev-libs/gobject-introspection-0.6.2 ) - 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 - daemon? ( - duktape? ( dev-lang/duktape:= ) - !duktape? ( dev-lang/spidermonkey:115[-debug] ) - ) - 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 -" - -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 - - # FIXME: Horrible hack to facilitate testing in bug #934314 - patch -p1 -f < "${FILESDIR}"/${PN}-124-systemd.patch - patch -p1 -f < "${FILESDIR}"/${PN}-124-systemd-fixup.patch - patch -p1 -f < "${FILESDIR}"/${PN}-124-c99-fixes.patch - sed -i -e "s:dependency('systemd':dependency('libelogind':" meson.build || die - - sed -i -e 's|unix-group:wheel|unix-user:0|' src/polkitbackend/*-default.rules || 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 - -Dsession_tracking="$(usex systemd libsystemd-login libelogind)" - -Dsystemdsystemunitdir="$(systemd_get_systemunitdir)" - -Djs_engine=$(usex duktape duktape mozjs) - $(meson_use !daemon libs-only) - $(meson_use introspection) - $(meson_use test tests) - $(usex pam "-Dpam_module_dir=$(getpam_mod_dir)" '') - ) - 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 use daemon; then - if [[ ${EUID} == 0 ]]; then - diropts -m 0700 -o polkitd - fi - keepdir /etc/polkit-1/rules.d - fi -} - -pkg_postinst() { - if use daemon && [[ ${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 ba5493bd0c0..7ca3f373a73 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_{10..13} ) +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" @@ -81,12 +81,6 @@ QA_MULTILIB_PATHS=" usr/lib/polkit-1/polkitd " -PATCHES=( - "${FILESDIR}"/${P}-elogind.patch - "${FILESDIR}"/${P}-realpath.patch - "${FILESDIR}"/${P}-musl.patch -) - python_check_deps() { python_has_version "dev-python/dbus-python[${PYTHON_USEDEP}]" && python_has_version "dev-python/python-dbusmock[${PYTHON_USEDEP}]" 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 index 0574572cf09..7de837505a9 100644 --- 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 @@ -148,7 +148,7 @@ declare -A GIT_CRATES=( [rio]='https://github.com/jthornber/rio;2979a720f671e836302c01546f9cc9f7988610c8;rio-%commit%' ) -LLVM_COMPAT=( {17..19} ) +LLVM_COMPAT=( {17..20} ) inherit cargo llvm-r1 diff --git a/sdk_container/src/third_party/portage-stable/sys-boot/gnu-efi/gnu-efi-4.0.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-boot/gnu-efi/gnu-efi-4.0.1.ebuild index 746849679db..59cd7fd1153 100644 --- a/sdk_container/src/third_party/portage-stable/sys-boot/gnu-efi/gnu-efi-4.0.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-boot/gnu-efi/gnu-efi-4.0.1.ebuild @@ -16,7 +16,7 @@ SRC_URI="https://github.com/ncroxon/gnu-efi/archive/${PV}.tar.gz -> ${P}.tar.gz" # - GPL-2+ : setjmp_ia32.S LICENSE="GPL-2+ BSD BSD-2" SLOT="0" -KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~riscv ~x86" +KEYWORDS="-* amd64 ~arm ~arm64 ~loong ~riscv x86" IUSE="abi_x86_32 abi_x86_64 custom-cflags" REQUIRED_USE=" amd64? ( || ( abi_x86_32 abi_x86_64 ) ) 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 0959455cd0f..502baef8f07 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 @@ -3,3 +3,4 @@ DIST crossdev-20241202.tar.xz 33032 BLAKE2B 74ec859e1ae5f816397349c18f8bd98d8fae DIST crossdev-20241215.tar.xz 33028 BLAKE2B 3b33284f55fe41a45bfeea1dbc273a828eeceada38d4274f9fcaab06a1d9b342efaa0fcad407bb5a5d921515acc18dac0e4923240e2610a425f7c508b6274ecd SHA512 84960b518767aacc7400cfa32d36b15492dd5e3908c36c0f513470fdfbaedde04d24aecaf0f5020bf69cd7c2095da1cc2961ae090e90340a176292299bbfaf25 DIST crossdev-20250106.tar.xz 33124 BLAKE2B 45992cd29a6dd48f97d871ba5f4b09b18797c76389a5839c7b02e23b765556561f9b442d594a6bed58ff670e69d4efc27f37cdb1f6bb1722fd1d18e0bc50cc5f SHA512 8d9cdb194f3477dcbe605c4f8126be013e9193acb716e2b12e8f51f826087bbac3f50b44268c150d4e9f86b78182a0b4b323634b0040f0a815dc4a075c662c75 DIST crossdev-20250410.tar.xz 33292 BLAKE2B b4c41757ff705866fb3c7420e10d1325977937c50801600002639984dd39b90ebf4fadbde5a09bae02eba2ca17261db32f5275b1599858b2b7c961e3eb85d82f SHA512 aa6c1657d23c96b6109e49ac517dd9550d731f0af508359be55fa8c641675bd4205223eb492e7c94fd69dd86999124d7d0f4766cf1bc17a3dd953f457bf85c9b +DIST crossdev-20250622.tar.xz 33316 BLAKE2B 6e91e757174ce6b5c5f6ec5276725e0432f061ea7c21b0c215998d453deed285c422c1f25c313c80de2d2fe86a00751fbb516f40b63f1bcc25602d3eb0353351 SHA512 bdba3da3724d56b43e0d307b4f9fc00f9680ec541a9397d91f92d237980f7e4b300618e8e8484ee8410ecfd3b0c8854d54057ddb646e2182e407e21c503b9fa9 diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20250106.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20250106.ebuild index b0bc483b655..e37bcc5ed9c 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20250106.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20250106.ebuild @@ -11,7 +11,7 @@ if [[ ${PV} == "99999999" ]] ; then " else SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" fi DESCRIPTION="Gentoo Cross-toolchain generator" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20250410.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20250410.ebuild index 084660d0c36..0e6b953ef81 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20250410.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20250410.ebuild @@ -11,7 +11,7 @@ if [[ ${PV} == "99999999" ]] ; then " else SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" fi DESCRIPTION="Gentoo Cross-toolchain generator" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20250622.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20250622.ebuild new file mode 100644 index 00000000000..5494e3601b7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20250622.ebuild @@ -0,0 +1,46 @@ +# 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/gcc/Manifest b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/Manifest index aef41b282c4..ed43343f8ad 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 @@ -10,6 +10,8 @@ DIST gcc-12-20250417.tar.xz 79924416 BLAKE2B 4f6542d016693e2392a433c1931a33112fc DIST gcc-12-20250528.tar.xz 79942548 BLAKE2B 3c500796a34ccd863da451de4084cc90d404c9b8d41caccde11a840bc25cf949669ea9b4d4ae58899962aeb37e14ec947068238787a0019bbf22e62135a001ca SHA512 aa4e0583b308b8ada43c209edee54f97606683e1e7dad8e0250a6c77591e8cb2520258973822a91f3a45261a46a0b2e3783214ae6e004eed90cdf3a2faec479c DIST gcc-12-20250604.tar.xz 79932044 BLAKE2B 6be96d278106c52bb44cd7a82dcbbc270c99aa914c185fd4bce807dcd11b1dc441d1add7d4220afb8a26b9dda1c0f419c2e3bf40b1b01b64ffc1f7aceb6a0e3c SHA512 e4c1ed3473ee12c9f15af8ca9dceb0700f7af8e96fbed8d10ff276e6031898e5ceaca11e250839b09425448d726300f09c43a3287badbc79179c0d8974cadd07 DIST gcc-12-20250611.tar.xz 79932880 BLAKE2B ae368816a13791a00d14494ce9e132d5dd9d2de74e335a8a9c68b568a1ec25aa264c07292d31d379ce092577b036313d5d62536c7802eb16d08e777c36b7d969 SHA512 e6b47dce06e07aabdbaf4f74b9b387b9b19331675c4abb7ef69541d8188b2370b1887047b2179d6a5eb7c412c81c919612b68892f760c2a2586028fb5483d7fd +DIST gcc-12-20250618.tar.xz 79951420 BLAKE2B 20d719edd362f5c8cedf3a641847961b4685f3ee9b0d60f0dacc5237722718b78123a15bfb262b983313c01cd330af3c4933b947eddccaa3545d179d00b7c333 SHA512 cbf9a0c3ca8ae85dc735d349a7a61de7e9d6b7215bb14962d8becbded5dc67718565e013d3c1fcc3083a8baaea5ba518e5a7c7d1576b2ae99c51c0385b204a84 +DIST gcc-12-20250625.tar.xz 79946552 BLAKE2B add33d9fe5aa460bfdd961391ba5a5a58ad2c1d2063957a496d18b242a030f6e6297a5eca5d3524752fdbd56be8708ee55f1265002f638de0f55ff8449c71539 SHA512 3fa1d8efcececf41b7b83987765a7b92bbff878208709a43b4ff9aabbfbcbc6a755fbb724dab4d5b718eb347f3829966b3e9c7cfa63b8101cb985a3287ef9003 DIST gcc-12.4.0-musl-patches-1.tar.xz 3068 BLAKE2B e5e39c24934072ea89e4467d0dc5196f3dadfb5ffba0c856d051648a2fbf57d434a57e95227cdf2b8cea45f0f5555aec2bc372d2f6cb0b69efd87831d248d364 SHA512 b9db204845a25be043d76cae826d42eebeeb4f9be7c3049af6fe7601a552bedfd24731156a6a36b4b5e2e2af656a589a5c556d2b0b3ded33ba290a773ee87c62 DIST gcc-12.4.0-patches-1.tar.xz 15576 BLAKE2B 98c29888de7701b365be7ac9062f0cee3340d58c85485e26f0d02f1483ec64cc9c10651488a4fd937551afe30f4e19777e6766871a724ae3ba6c290c16f4fdf1 SHA512 3f7c5d36e56e07ea9dd143a5d13342a6c1ccbf0643abd1c0bcbfb46bb7c7b1308aef6e3e882031c9c191610f01af906b19be5aa2b139cf617614f46e97463aec DIST gcc-12.4.0-patches-2.tar.xz 14876 BLAKE2B 6bf5abbb2abba4b9fe9fa153ac4112fe5f563e97cd4e1b885ccd0d88abf1124fa91f20d6be972e2242410447be73bca60014785f8551b8087ed0d4cc3e868225 SHA512 dfd5f02d4c1076fad4ee998b2f620171dd3eb65a1160312def9dae89b18327a06db853f569e0e3c049e5ab06c61488bb6faecec52bafe737fddeb43628c54a1f @@ -19,6 +21,8 @@ DIST gcc-13-20241220.tar.xz 84504500 BLAKE2B 60d6dcdcafa36399a0c0de7fef3a4eb4ca8 DIST gcc-13-20250418.tar.xz 84528940 BLAKE2B 566cc9570d9a2e41e67416cd3bb3609fad38a37cc648422988182652010ba2f2eb459c29fce32f8f97ea33c23eac3b43098af6fb333ce250a7e9eac4ca0abeb7 SHA512 185179a591d6ecc3a6477379fd877241a18b25bec0eacd0819e6e0ee38abbbebe7fee9027d36a60087f487c65a8afd17228e8dc0b803f4cf5ae6b8ce9cdadcbc DIST gcc-13-20250522.tar.xz 84560600 BLAKE2B 418d5f6eb25542519317aa18f16d347940549b4bdbcd5a75279d784e310758e870d8814c4ff631195d44a05d57da95f8bef3a1ba5931f1a085f9e88912ddf993 SHA512 4c16bd9d3e0aa38772ae5a347f99f2d3fbf5587d5fbf7fe9e8c2f8cda203221a424e161719ddc42cb945ec3a75c5956da61ccccf4ff7b3a9eb377962b28e506c DIST gcc-13-20250612.tar.xz 84587824 BLAKE2B 4ec2b89a912c185b0c62c5d290c50a2febdaf9c1496dad944ebfe5dac18df74fcda5142040bc5407388983210662fe2643967c56494b66e81e80fc6e65841fd3 SHA512 015dda44b0894ee0d45d4398ee93e2dec4350ba51584af9dc642a43c3a376c00e738e779021412cf658e143e78276c390254d7cee34939cb160f865a5187292e +DIST gcc-13-20250619.tar.xz 84584096 BLAKE2B c69932af22adc03527c296e69a07face4c65366dc4d14430d310731ab7470cb18b1f30aa4720ad877d5421cd50e1424deead88d231ba1f7f95a427a26d0ed073 SHA512 2611c0c586706ec95f22ebaf8b557e432be2224518fb1656c1a44f7f8b6b066caa48de48894990ca2a20f2fe3ec456434fd4d8ede356cb0b72d9ec0f0223a055 +DIST gcc-13-20250626.tar.xz 84567576 BLAKE2B 49eb8e3132a0d0a6fe5c127adf446992032be7bcd74103577e13a08f06d451312d7b6f3328864906c3cd29ecd9e4b274bb2cfc4b9b0ee53a5a6d513bbbd1089a SHA512 0f98f211aa6aad4cba2aaa9d0535856304fa3f2c1d4d2f26646641bbe50575322f1562188f9b38c837ac2bd6ee4a22acb66be19ce73ef4b253c54aa19090aaed 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 @@ -30,27 +34,25 @@ DIST gcc-13.4.0-RC-20250530.tar.xz 88502788 BLAKE2B 0737082c4dfd3706918e646f3ef0 DIST gcc-13.4.0.tar.xz 88530720 BLAKE2B abbba220652d6e84c59554e754207be91d1250d7751c09163e3166a9da8c7eb4d538785697bb3aea65a8a433e8b82f9a969cf09bb0ecc5aa4a27c964f0acd7e8 SHA512 9b4b83ecf51ef355b868608b8d257b2fa435c06d2719cb86657a7c2c2a0828ff4ce04e9bac1055bbcad8ed5b4da524cafaef654785e23a50233d95d89201e35f DIST gcc-14-20241221.tar.xz 88198252 BLAKE2B 7491c2e1c8885e201859143bdf5cae95af4c0db77709ec7d761ad535df30042f5deb8488ba7c508de3673e4b0f2af1de8d17476f39cd47b745ddccec6a9e4470 SHA512 91fe1e1d1f8e8fad64930a2eadf942a542bd42f841fceb49f475bccac00f04692b8cd38821ea9ee05f78b5c51001d8bd39df5f71f3a3d89aab8980019cea9be8 DIST gcc-14-20250419.tar.xz 88251960 BLAKE2B b9d8312ac8dd9dd82128ff872e379f3426b4464e940ebd7748e53d6cd41e5a0f936f01ffdd3beb308a693ce98d3c323206ec67006de0735a430534b21899ae6d SHA512 44cd816dc61d4cf9925be47b75c5ddfc791dbfb43cc56a82e3a46673e8a2753d69f8b9230d68399c4b232c2daab85622168998f2dab767bb78c2292613dd6643 -DIST gcc-14-20250530.tar.xz 88301156 BLAKE2B 48e2fd31659bb170b13442a731ebd8d386657515c496e4e987ca3536cb8fd68982c91421c109f7fdb3729481afdeb310e7ba0820270adcac60984aebdbf1562d SHA512 93ddd0e7c3b724f2af8bac9ef5d367366a09ee1b1bc9c4da31bf31b40899565e2491faf2570e784db0ff41ac18d1cf32d2120594181d0c635749209a8a144768 -DIST gcc-14-20250606.tar.xz 88335540 BLAKE2B 5a1cc1308ccb3fe90be4a3bb665cd3e7c89debea45212d61609345b5145fd89059ab44b858d64d23bbb52023b63bf0786c9a7bed57382019b70b4e90676f36ce SHA512 70fea08f6bc7a1ea2010e423421bd9234aa17b8a051edb856d6d0bb2c4b533a177e1affa4c02bbd64f281da573bcf4bac47a037e43ed3ee562a0238b6ec9b95c DIST gcc-14-20250613.tar.xz 88314832 BLAKE2B b42b88d3990a792357e92e23e1b645c5d3505844c7298a2e41361c9672eb48835db3372a1890c6bfe02d67fe4af3f7130f05318977ecaca39846edd350e51060 SHA512 c3f57b72a886a8a862cf5c5de781316b4b30734a24c0f5762ad73badc51e1a651847a139d4402e8cee96e841206e7a32be389e8428d03c04076cfef50bb03c17 +DIST gcc-14-20250620.tar.xz 88310004 BLAKE2B c33c3bdb12d3fcb500829b4781ea66edcd5b69ba1b72cb38f4248d7cc5ddd76a627d94ae9511dbe676c4cd17dfc0cdba5bdc6f05d3b938ac6f4afe0e4a804e25 SHA512 e5a99c1fcac867787d2e96b1c0f9180813a7cdc7ccb5f4002644c619edb0296d4a227ef62e988a98528b7430c35e69bc6e46981b90db5f599d1045ef96a9669c +DIST gcc-14-20250627.tar.xz 88324360 BLAKE2B 17b98dfc88416e4f0567969215533c980e526fa1ce5d11366f66987117bfa2adf13f111f4a1b6b066f02d41d99f78d686d33db4669ef4887848922bb190feb00 SHA512 3b0b6529a48d80a7ef6d23c693cce1c2b767def1b574df5bb49638a9a04305a376f3da81291ca4eed3907c33dc6eaddd6eee1f82e5574246054ad22914188651 DIST gcc-14.1.0-musl-patches-1.tar.xz 3600 BLAKE2B 4cd920b7ca1f122cae806707564d8e45bfd48e78c88788a12a301f6068b5a5f335d8885e67479ac536c66aeaa81f2ecb7240ae56e9fc821a7246ab66b453711f SHA512 61c48d90a55dfc2129d96aee69d939d6a89f6407f69f7bd12c1a619f28989f471fd219d731958f8e62b0fd650c32300f0ad8dc06d5df23d9fc8c1a77fe210c25 DIST gcc-14.2.0-patches-7.tar.xz 14244 BLAKE2B 11236e91e1fe83fec8ffaa40ec0cdd4b52a00a951e9aa9a7a0a932b234b8f1a9603333a7ccf55859f4ef53dd4d8ad1fd5c1d2514b6e45fce5b86bb58622a0ecc SHA512 5a4d86d943e31fa068b5a784c0132bd83c23243dcb3cf972557a42e004469a415e1b3185f31b1bb36f916594d475f266a2fda031a414e4a15e0bbfe471269eee DIST gcc-14.2.0-patches-8.tar.xz 14540 BLAKE2B 09f66035343d4cab694b8ab382170f8e2d546ddffedf3477f26edbd6a798ddf94294f569c2661729d40088d590bc17a4eb651710d8d9f66f33703734a1a82b67 SHA512 7a9a2724ef8db3c57b033d90751192969c16e5eaa8f4777b7f16470222ff3a18771b461bd89feaad701e7f0d573b883b487981588129933c732fb76117728b86 DIST gcc-14.3.0.tar.xz 95212220 BLAKE2B 11c0e549b2e9b4bbbe4cd64782032d2ec783b3db8d4aa538ebd0a0c9760d8e521c32007891a608b081bc6dd353d4eb23030c5e2b9fe9a20c4894a8455dde47b6 SHA512 cb4e3259640721bbd275c723fe4df53d12f9b1673afb3db274c22c6aa457865dccf2d6ea20b4fd4c591f6152e6d4b87516c402015900f06ce9d43af66d3b7a93 -DIST gcc-15-20250524.tar.xz 92091956 BLAKE2B 17889467a8f7376e2ab3e665f4d7d144695d1697fea4d5e13bb291b3702a394c5b49d88f92d2084f47f09d3f101a72a30afb7a72cc9c227ab5636ea2ba7c83ee SHA512 c8e23bdbe3c9d68f338c613728488e23b77f555655f8fe7dfbb12e53db0b1e70e86b4cd6d73792ab22e60f1563656078d9acd1146611d3159ad388c1d84a8153 -DIST gcc-15-20250531.tar.xz 92132452 BLAKE2B eab81cce973324497662c8586af7794afb6f0f48c0ef1976b46928a4a10e00b40d3770d7e621957de087842310ec17c89d9167784f520ef9c137203119926149 SHA512 1ff8eecc4a1301450a06cbb3e6430e196639d4a30634527bf83595bcc1b96db32638473091ff93ba158f0ac2bf7ec78ac82cb05e39e3e3483b54e85837d1a244 -DIST gcc-15-20250607.tar.xz 92120760 BLAKE2B 16c1c7f843083508d6b6a3e349b14dbeb785cf83f30bacefad1d58263c36f8fa17afc319fde051e23cd8aa005715ccb190361c6ec9bcfdc975dafc1f632c31c7 SHA512 a19e2b94f780f7c8f75f1e758f41290f905649adde33f5e2cfcc9730f2e23dbc51df9fb1ae9f84f27bfa23b0e2a4ada6540656280db8894982f63e968a092574 DIST gcc-15-20250614.tar.xz 92119808 BLAKE2B 48afa87106afc50bdbaf41ab4754589919c1ad5c1de4b3ed778839e03c46eb353c47b0157477d610516259b7d7586b7b160449d3e38fd0db3d6dacf55e6ff4a7 SHA512 2acc4fecbf2d11224ff85453558ebc17633dad99227b9c479753259060656f03e6defae1cef19e4866b92142f8225ac010c5f50189fd3bea99ae81ae0e4e029d +DIST gcc-15-20250621.tar.xz 92115632 BLAKE2B a0150cba4a33a70014ab3c139de9f85e29e22f8282404cb27f499f9d44d493a946066750241742f1036160d440431c68646f2eb0d1e33d936719f7784ddb3887 SHA512 f9b46e222378fc006bf0d80a0a0acafb37011c3a0feb10dca37dba59d1ad4906605ac01e60737a0867738ae057773ea3d67c481bc2521cd2372f43bd59272fdb +DIST gcc-15-20250628.tar.xz 92108604 BLAKE2B 45801afeb773ea1249441041d268b03477d891a931d2b3033aa61e3affa60d7a70aa79aae2e89e1cab9fa9b02f0b9b5016ad8c744f38ec6fe05555fcc7e0c450 SHA512 7d56709c60a34a4e7912c257508b2f640fc04c8fef8d7b5041bf8ea59c11942136ecd4c2a4e4b79c104b84ee8559d93efca5b955ee84357da132d2d439639630 DIST gcc-15.1.0-musl-patches-1.tar.xz 3036 BLAKE2B f7e8b794feb3c30252dd3e35b990c8a134d337e285a2778ad5575b04667cf01040bf4187252151cd57097cd6d440851843156c9631736f4f065ca8b7ce2f0678 SHA512 4d3f1660d89484f63ad6c238884415673cdfdabb8833cce2fe114193b52f11b3518b034881024527f6553de93936d15ed707d4d2b1e8221908a08ec67810464b DIST gcc-15.1.0-patches-1.tar.xz 18628 BLAKE2B ee5fc9d6a06374ccc8d85cd1e269514fde8fed9b1810867a199ac747c09fc166e11e54ba531d42ee2ffbab3ca80277f9ad3c873fbaa3530ff60e5f2bc25c41ba SHA512 72992f0698f632c98abd6d8c7a7a38a109b2f064775a0c5029e44dc29cd88ae061cddd603d47eabced5af5f8571e0b73c9778080873c69dd4dc4766c60339b28 DIST gcc-15.1.0.tar.xz 98268344 BLAKE2B a902ce99db4e93615879e435bcd0b96d5a16ea0af42598ca0e6d12913b2ce3651a98574c3264b2717b848e6b5a823b403ccca0adde463938d5b41aa3f1da0d34 SHA512 ddd35ca6c653dffa88f7c7ef9ee4cd806e156e0f3b30f4d63e75a8363361285cd566ee73127734cde6a934611de815bee3e32e24bfd2e0ab9f7ff35c929821c1 -DIST gcc-16-20250525.tar.xz 93827336 BLAKE2B b79645f522e50a72166b3ea7860d4a27f3b19e0ac4be85f4944479e44d95221bb01bbaea630b43b7e2ba79de5531fb1b591b5eabc67bdc3d04106735813f8400 SHA512 92c0b5a431caeb57ab9665a9431f586b78c68fd050e319a3b0cab2fe1c66c6bda6da0145c621d78464a5e39e20b24428419f15b97aca608e2b1cfbcfa09181c3 -DIST gcc-16-20250601.tar.xz 93928944 BLAKE2B 4630f24175cde84cc36244b65336d3de2e09e010157410cc1bf29b7cff27431eb43d13455ca9734567262b5a61c28a7d544cceee3d6116506eec8a05fa75dd96 SHA512 27146f8961c77c06ce76235880e633548c186657f48b3a80e3b11450bcb096eee3bd48250a7c3931378f70ae90fe4a5d6e5031589d5cede316dbadb46a27b3ff -DIST gcc-16-20250608.tar.xz 93926024 BLAKE2B e4f4bef28776421fe756214c2ebe1e8803ae58fc89f719e34fcbc5394534fd4028e10b0d696f5371db04073018008b08c819d4f02366348d925a6410d164ccd6 SHA512 0333267b9815285ab84893dc50eb8e6b22390d3864c8485d1c2866cb4a178787a06f9588484d53f4b8e4dd79319130f3919094854b90714dc07a32c26eeb278d DIST gcc-16-20250615.tar.xz 94008204 BLAKE2B 31c303929d60423cb2355c35f9b3d7e37108ed7ec3b66b411463e3681ddbc088c7556cc7a1639b83bc470ae833987158b206d8044c2f2a22c40661e79bcae252 SHA512 e69a6eea38b75aab569ff7cbabae06da27198fb07d7009dee44b8d81cbeceb4b9e6bd07b9db6a1b347d9ea286353b5a9619ee800f243ac02ec13126c1d4183f3 +DIST gcc-16-20250622.tar.xz 94019404 BLAKE2B 0f4adc77b90c864efbb07e5a132642ade9ffb1b57920afcc0695bf170f33d979c7bac465038f5e4e7f0e06c54aaca32be947f2b4ec912cf7a504e560df768ea4 SHA512 9e35a51a369e7ff362fe0f9d4b8200f1d9330ec4e0cff4d8d61343e6ae5030c178469cb1af0c11768ba78f496ba521aca2b68b6e940db48f0496b829d288fbc4 +DIST gcc-16-20250629.tar.xz 94070816 BLAKE2B 2ce09cd75bb7d6817c1f3764226c2c562130ed36514653e3cc44a8f0cd011b5d9f22c48508dfe9c1720e6ee178e0575982ccbae98ce6e8657ae85a563f9a0aa0 SHA512 86f1e2c0b54913a7b4417b57392f0fec521974a7c260e0bc098607b382e49b43eb476541e6e58ddf024ac17c6a342b3905ed7768318d2d741621f2f244c7fe37 DIST gcc-16.0.0-musl-patches-1.tar.xz 3040 BLAKE2B 18b16357699780eb470cf44a10710281955140103198e0bd55b75e1efe3dbec233689edb11e1b9a62f782f3d97293af4906c18c2c41613b422eda085ee819467 SHA512 5ba580c7c7bb9e62935a5162d44d357cc31185a113acff7498ed7b1ac43fd0a35de7c3de0c87f02fe0be46b5e55b49bb35d1f5cd470058d21a9ea4096a37e13d -DIST gcc-16.0.0-patches-2.tar.xz 17524 BLAKE2B 6e5f07e01ec4981cccb6286151e7948b9ceaadb61afb11307174fcd855440db84d233857c07e311b099130913a26d13201a3b62e2f52ceb959055e190e776efb SHA512 3e6c7fd3e819dff461e54d2a0d568d2d68e01bda845ab44e026231f187c43a9ffa266e7dab981f3b36a55b9654cefb197f5fff7158538526512ce05be0948992 DIST gcc-16.0.0-patches-3.tar.xz 17832 BLAKE2B 8ca77441e3909b650f1894144eefa57ec8c9591adaedccf738d37c7d28626d08927794053d3d2e5a0d10a9d8727584183042e2607e56f09ee6401ef5a002477d SHA512 1b21a7cc71f3c927eaff6d50fafd3c4f9fb206870dbdc4742cee6dcb31b8469ac1baff49b458152324daef5a5e867b376642f25ed2a6c6126d11c2878deace0e +DIST gcc-16.0.0-patches-4.tar.xz 22180 BLAKE2B 2746a4e115da4a12f64c8655fe43ae5bb722c1be658585eed7091613c8449908d79ecbc7fcb9a7302f22c4bfdc99c30b20e51caea8533027bc85f9898fc19a6b SHA512 e603a754df9bb602e929280fe305866337653d09f0e293273f0a7b50f514b8778adab701d5934fd1e8d2744f3889c05d26599bfdd270f84244f6a554c92b6a4c DIST gcc-8.5.0-patches-4.tar.xz 18616 BLAKE2B 7594cbaea5daecf1a0b3d526c06aeba0a84c6da66aee2e105a51fda6be8d30a37ccc3814281b284a4582d892a1d556bca063551584edfc2525bed8ea5b6888e7 SHA512 1aa5742c361186637e7855f06feb1a4547e7d4d5de6e51f3d049e0ef3c19e2eff179465f52781739f59422035b7f8e4c0efa3844849f920f3c96acfdc37ca6a6 DIST gcc-8.5.0.tar.xz 63841008 BLAKE2B aa81a1a730fd7371360f6abed6ba78b5843fd18c58d5de5687acc320741b9e430e85df3535a1ef7a26051409be8d2f0945f503e5968480d919103123a99d4b12 SHA512 92f599680e6b7fbce88bcdda810f468777d541e5fddfbb287f7977d51093de2a5178bd0e6a08dfe37090ea10a0508a43ccd00220041abbbec33f1179bfc174d8 DIST gcc-9.5.0-patches-2.tar.xz 14324 BLAKE2B 1d3bf3e673108ad2fcdcb86daefb4603d1c9f6aa815e34d1591054d466b76d6f50cce124ab4760528c4951ea16eb00888a3e6485417f81ebf250548732df4a8e SHA512 a6d6f650aaf0bd193a17ac279649f0544a282cea295824384c59341c3000eac4b574b60e00dd427585d928f9768166abf85168b47772132790ad98854acacbbf diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/0001-c-__has_trivial_destructor-regression.patch b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/0001-c-__has_trivial_destructor-regression.patch deleted file mode 100644 index 7cfa2346359..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/0001-c-__has_trivial_destructor-regression.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 089e4f426502a620deb9efc0d80118931fd951d2 Mon Sep 17 00:00:00 2001 -Message-ID: <089e4f426502a620deb9efc0d80118931fd951d2.1748905952.git.sam@gentoo.org> -From: Jason Merrill -Date: Mon, 2 Jun 2025 08:36:22 -0400 -Subject: [PATCH 1/4] c++: __has_trivial_destructor regression - -We don't want the new call to get_dtor to cause function instantiation. - - PR c++/107600 - -gcc/cp/ChangeLog: - - * semantics.cc (trait_expr_value) [CPTK_HAS_TRIVIAL_DESTRUCTOR]: - Add cp_unevaluated. - -gcc/testsuite/ChangeLog: - - * g++.dg/ext/has_trivial_destructor-3.C: New test. ---- - gcc/cp/semantics.cc | 1 + - .../g++.dg/ext/has_trivial_destructor-3.C | 21 +++++++++++++++++++ - 2 files changed, 22 insertions(+) - create mode 100644 gcc/testsuite/g++.dg/ext/has_trivial_destructor-3.C - -diff --git a/gcc/cp/semantics.cc b/gcc/cp/semantics.cc -index cafc9d0ee2c3..18a2b4709cf1 100644 ---- a/gcc/cp/semantics.cc -+++ b/gcc/cp/semantics.cc -@@ -13420,6 +13420,7 @@ trait_expr_value (cp_trait_kind kind, tree type1, tree type2) - if (CLASS_TYPE_P (type1) && type_build_dtor_call (type1)) - { - deferring_access_check_sentinel dacs (dk_no_check); -+ cp_unevaluated un; - tree fn = get_dtor (type1, tf_none); - if (!fn && !seen_error ()) - warning (0, "checking %qs for type %qT with a destructor that " -diff --git a/gcc/testsuite/g++.dg/ext/has_trivial_destructor-3.C b/gcc/testsuite/g++.dg/ext/has_trivial_destructor-3.C -new file mode 100644 -index 000000000000..a179be52e936 ---- /dev/null -+++ b/gcc/testsuite/g++.dg/ext/has_trivial_destructor-3.C -@@ -0,0 +1,21 @@ -+// { dg-do compile { target c++11 } } -+ -+struct X; -+ -+template -+struct default_delete -+{ -+ void operator()(T*) { static_assert(sizeof(T), "type is not incomplete"); } -+}; -+ -+template> -+struct unique_ptr -+{ -+ ~unique_ptr() { del(ptr); } -+ -+ T* ptr; -+ D del; -+}; -+ -+ -+constexpr bool b = __has_trivial_destructor(unique_ptr); --- -2.49.0 - diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/0002-c-__is_destructible-fixes-PR107600.patch b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/0002-c-__is_destructible-fixes-PR107600.patch deleted file mode 100644 index 70f13b838a5..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/0002-c-__is_destructible-fixes-PR107600.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 1de6c1abe44b77aa5a253df9da57130a55e8d907 Mon Sep 17 00:00:00 2001 -Message-ID: <1de6c1abe44b77aa5a253df9da57130a55e8d907.1748905952.git.sam@gentoo.org> -In-Reply-To: <089e4f426502a620deb9efc0d80118931fd951d2.1748905952.git.sam@gentoo.org> -References: <089e4f426502a620deb9efc0d80118931fd951d2.1748905952.git.sam@gentoo.org> -From: Jason Merrill -Date: Mon, 2 Jun 2025 10:09:07 -0400 -Subject: [PATCH 2/4] c++: __is_destructible fixes [PR107600] - -destructible_expr was wrongly assuming that TO is a class type. - -When is_xible_helper was added in r8-742 it returned early for abstract -class types, which is correct for __is_constructible, but not -__is_assignable or (now) __is_destructible. - - PR c++/107600 - -gcc/cp/ChangeLog: - - * method.cc (destructible_expr): Handle non-classes. - (constructible_expr): Check for abstract class here... - (is_xible_helper): ...not here. - -gcc/testsuite/ChangeLog: - - * g++.dg/ext/is_destructible2.C: New test. ---- - gcc/cp/method.cc | 21 ++++++++++++++++----- - gcc/testsuite/g++.dg/ext/is_destructible2.C | 15 +++++++++++++++ - 2 files changed, 31 insertions(+), 5 deletions(-) - create mode 100644 gcc/testsuite/g++.dg/ext/is_destructible2.C - -diff --git a/gcc/cp/method.cc b/gcc/cp/method.cc -index 3a675d9f8723..bb6790f13cdb 100644 ---- a/gcc/cp/method.cc -+++ b/gcc/cp/method.cc -@@ -2251,6 +2251,8 @@ constructible_expr (tree to, tree from) - const int len = TREE_VEC_LENGTH (from); - if (CLASS_TYPE_P (to)) - { -+ if (ABSTRACT_CLASS_TYPE_P (to)) -+ return error_mark_node; - tree ctype = to; - vec *args = NULL; - if (!TYPE_REF_P (to)) -@@ -2337,10 +2339,19 @@ destructible_expr (tree to) - { - cp_unevaluated cp_uneval_guard; - int flags = LOOKUP_NORMAL|LOOKUP_DESTRUCTOR; -- to = build_trait_object (to); -- tree r = build_delete (input_location, TREE_TYPE (to), to, -- sfk_complete_destructor, flags, 0, tf_none); -- return r; -+ to = strip_array_types (to); -+ if (CLASS_TYPE_P (to)) -+ { -+ to = build_trait_object (to); -+ return build_delete (input_location, TREE_TYPE (to), to, -+ sfk_complete_destructor, flags, 0, tf_none); -+ } -+ /* [expr.prim.id.dtor] If the id-expression names a pseudo-destructor, T -+ shall be a scalar type.... */ -+ else if (scalarish_type_p (to)) -+ return void_node; -+ else -+ return error_mark_node; - } - - /* Returns a tree iff TO is assignable (if CODE is MODIFY_EXPR) or -@@ -2352,7 +2363,7 @@ is_xible_helper (enum tree_code code, tree to, tree from, bool trivial) - { - to = complete_type (to); - deferring_access_check_sentinel acs (dk_no_deferred); -- if (VOID_TYPE_P (to) || ABSTRACT_CLASS_TYPE_P (to) -+ if (VOID_TYPE_P (to) - || (from && FUNC_OR_METHOD_TYPE_P (from) - && (TYPE_READONLY (from) || FUNCTION_REF_QUALIFIED (from)))) - return error_mark_node; -diff --git a/gcc/testsuite/g++.dg/ext/is_destructible2.C b/gcc/testsuite/g++.dg/ext/is_destructible2.C -new file mode 100644 -index 000000000000..7f15fc786848 ---- /dev/null -+++ b/gcc/testsuite/g++.dg/ext/is_destructible2.C -@@ -0,0 +1,15 @@ -+// PR c++/107600 -+// { dg-additional-options -Wno-c++17-extensions } -+// { dg-do compile { target c++11 } } -+ -+struct A -+{ -+ A& operator= (const A&); -+ virtual ~A() = 0; -+}; -+ -+static_assert( __is_destructible(A) ); -+static_assert( __is_assignable(A, A) ); -+static_assert( not __is_destructible(int()) ); -+static_assert( not __is_nothrow_destructible(int()) ); -+static_assert( not __is_trivially_destructible(int()) ); --- -2.49.0 - diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/0003-c-constinit-diagnostic-regression-PR120506.patch b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/0003-c-constinit-diagnostic-regression-PR120506.patch deleted file mode 100644 index 6f6a96fcec7..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/0003-c-constinit-diagnostic-regression-PR120506.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 3fd9983fede89f1a996d44439d0938ee0d9ff76c Mon Sep 17 00:00:00 2001 -Message-ID: <3fd9983fede89f1a996d44439d0938ee0d9ff76c.1748905952.git.sam@gentoo.org> -In-Reply-To: <089e4f426502a620deb9efc0d80118931fd951d2.1748905952.git.sam@gentoo.org> -References: <089e4f426502a620deb9efc0d80118931fd951d2.1748905952.git.sam@gentoo.org> -From: Jason Merrill -Date: Mon, 2 Jun 2025 10:59:02 -0400 -Subject: [PATCH 3/4] c++: constinit diagnostic regression [PR120506] - -In r16-57 I thought it was unnecessary to mention incomplete initialization -after another diagnostic, but actually it's useful elaboration. - - PR c++/120506 - -gcc/cp/ChangeLog: - - * constexpr.cc (cxx_eval_outermost_constant_expr): Always check - CONSTRUCTOR_NO_CLEARING. - -gcc/testsuite/ChangeLog: - - * g++.dg/cpp2a/constinit21.C: New test. ---- - gcc/cp/constexpr.cc | 3 +-- - gcc/testsuite/g++.dg/cpp2a/constinit21.C | 28 ++++++++++++++++++++++++ - 2 files changed, 29 insertions(+), 2 deletions(-) - create mode 100644 gcc/testsuite/g++.dg/cpp2a/constinit21.C - -diff --git a/gcc/cp/constexpr.cc b/gcc/cp/constexpr.cc -index 61481c6f7a02..c107b338344c 100644 ---- a/gcc/cp/constexpr.cc -+++ b/gcc/cp/constexpr.cc -@@ -9278,8 +9278,7 @@ cxx_eval_outermost_constant_expr (tree t, bool allow_non_constant, - - /* After verify_constant because reduced_constant_expression_p can unset - CONSTRUCTOR_NO_CLEARING. */ -- if (!non_constant_p -- && TREE_CODE (r) == CONSTRUCTOR && CONSTRUCTOR_NO_CLEARING (r)) -+ if (TREE_CODE (r) == CONSTRUCTOR && CONSTRUCTOR_NO_CLEARING (r)) - { - if (!allow_non_constant) - error ("%qE is not a constant expression because it refers to " -diff --git a/gcc/testsuite/g++.dg/cpp2a/constinit21.C b/gcc/testsuite/g++.dg/cpp2a/constinit21.C -new file mode 100644 -index 000000000000..18bca9012024 ---- /dev/null -+++ b/gcc/testsuite/g++.dg/cpp2a/constinit21.C -@@ -0,0 +1,28 @@ -+// PR c++/120506 -+// { dg-do compile { target c++20 } } -+// Test that we give more information about why the init is non-constant -+ -+struct A -+{ -+ constexpr A(int c) : counter(c) { } -+ -+ int counter; -+}; -+ -+ -+struct B : A -+{ -+ constexpr B(int c) : A(c) { } -+ -+ int i; // OOPS, not initialized -+}; -+ -+struct C -+{ -+ B sem; -+ -+ constexpr C(int c) : sem(c) { } -+}; -+ -+constinit C s(0); // { dg-error "incompletely initialized" } -+// { dg-prune-output "constant" } --- -2.49.0 - diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/0004-c-more-__is_destructible-fixes-PR107600.patch b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/0004-c-more-__is_destructible-fixes-PR107600.patch deleted file mode 100644 index 1cc68e22305..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/0004-c-more-__is_destructible-fixes-PR107600.patch +++ /dev/null @@ -1,71 +0,0 @@ -From f712fd80cb1c29b1111184c2e9c1784861d0f788 Mon Sep 17 00:00:00 2001 -Message-ID: -In-Reply-To: <089e4f426502a620deb9efc0d80118931fd951d2.1748905952.git.sam@gentoo.org> -References: <089e4f426502a620deb9efc0d80118931fd951d2.1748905952.git.sam@gentoo.org> -From: Jason Merrill -Date: Mon, 2 Jun 2025 14:58:42 -0400 -Subject: [PATCH 4/4] c++: more __is_destructible fixes [PR107600] - - PR c++/107600 - -gcc/cp/ChangeLog: - - * method.cc (destructible_expr): Fix refs and arrays of unknown - bound. - -gcc/testsuite/ChangeLog: - - * g++.dg/ext/is_destructible2.C: Add more cases. ---- - gcc/cp/method.cc | 11 ++++++++++- - gcc/testsuite/g++.dg/ext/is_destructible2.C | 9 +++++++++ - 2 files changed, 19 insertions(+), 1 deletion(-) - -diff --git a/gcc/cp/method.cc b/gcc/cp/method.cc -index bb6790f13cdb..67a80a387ba7 100644 ---- a/gcc/cp/method.cc -+++ b/gcc/cp/method.cc -@@ -2332,13 +2332,22 @@ constructible_expr (tree to, tree from) - return expr; - } - --/* Return declval().~T() treated as an unevaluated operand. */ -+/* Valid if "Either T is a reference type, or T is a complete object type for -+ which the expression declval().~U() is well-formed when treated as an -+ unevaluated operand ([expr.context]), where U is remove_all_extents_t." -+ -+ For a class U, return the destructor call; otherwise return void_node if -+ valid or error_mark_node if not. */ - - static tree - destructible_expr (tree to) - { - cp_unevaluated cp_uneval_guard; - int flags = LOOKUP_NORMAL|LOOKUP_DESTRUCTOR; -+ if (TYPE_REF_P (to)) -+ return void_node; -+ if (!COMPLETE_TYPE_P (complete_type (to))) -+ return error_mark_node; - to = strip_array_types (to); - if (CLASS_TYPE_P (to)) - { -diff --git a/gcc/testsuite/g++.dg/ext/is_destructible2.C b/gcc/testsuite/g++.dg/ext/is_destructible2.C -index 7f15fc786848..2edf440ef44b 100644 ---- a/gcc/testsuite/g++.dg/ext/is_destructible2.C -+++ b/gcc/testsuite/g++.dg/ext/is_destructible2.C -@@ -13,3 +13,12 @@ static_assert( __is_assignable(A, A) ); - static_assert( not __is_destructible(int()) ); - static_assert( not __is_nothrow_destructible(int()) ); - static_assert( not __is_trivially_destructible(int()) ); -+static_assert( __is_destructible(int&) ); -+static_assert( __is_destructible(int&&) ); -+static_assert( __is_destructible(int(&)[1]) ); -+static_assert( __is_destructible(const int(&)[1]) ); -+static_assert( __is_destructible(void(&)()) ); -+static_assert( not __is_destructible(int[]) ); -+static_assert( not __is_destructible(const int[]) ); -+static_assert( not __is_destructible(int[][1]) ); -+static_assert( not __is_destructible(const int[][1]) ); --- -2.49.0 - diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/gcc-16.0.0_p20250622-ext-dce.patch b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/gcc-16.0.0_p20250622-ext-dce.patch new file mode 100644 index 00000000000..9915d355a97 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/gcc-16.0.0_p20250622-ext-dce.patch @@ -0,0 +1,41 @@ +https://gcc.gnu.org/PR120795 +https://gcc.gnu.org/cgit/gcc/commit/?id=cdd678544fefc313cb1c9da0327158d3ed355f62 + +From cdd678544fefc313cb1c9da0327158d3ed355f62 Mon Sep 17 00:00:00 2001 +From: Sam James +Date: Mon, 23 Jun 2025 23:28:01 +0100 +Subject: Fixup dropping REG_EQUAL note in ext-dce + +Followup to r16-1613-g34e1e5e33ec3eb. remove_reg_equal_equiv_notes's +2nd argument is 'no_rescan' which we accidentally had on, tripping +an assert in combine or ira because we hadn't left things in a consistent +state. + +Fix the thinko by enabling rescanning. + +gcc/ChangeLog: + PR rtl-optimization/120795 + + * ext-dce.cc (ext_dce_try_optimize_insn): Enable rescan in + remove_reg_equal_equiv_notes call. + +Co-authored-by: Jeff Law +--- + gcc/ext-dce.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gcc/ext-dce.cc b/gcc/ext-dce.cc +index b1d5ee4b36c4..df17b018bf1f 100644 +--- a/gcc/ext-dce.cc ++++ b/gcc/ext-dce.cc +@@ -446,7 +446,7 @@ ext_dce_try_optimize_insn (rtx_insn *insn, rtx set) + /* INSN may have a REG_EQUAL note indicating that the value was + sign or zero extended. That note is no longer valid since we've + just removed the extension. Just wipe the notes. */ +- remove_reg_equal_equiv_notes (insn, true); ++ remove_reg_equal_equiv_notes (insn, false); + } + else + { +-- +cgit diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.1.1_p20250607.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.4.1_p20250618.ebuild similarity index 72% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.1.1_p20250607.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.4.1_p20250618.ebuild index 60e2fc36363..b56179223d8 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.1.1_p20250607.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.4.1_p20250618.ebuild @@ -8,13 +8,25 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="15.1.0" -PATCH_VER="1" +PATCH_GCC_VER="12.4.0" +PATCH_VER="3" MUSL_VER="1" -MUSL_GCC_VER="15.1.0" +MUSL_GCC_VER="12.4.0" PYTHON_COMPAT=( python3_{10..14} ) -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then +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} @@ -27,10 +39,10 @@ inherit toolchain if tc_is_live ; then # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=master + 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 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + #KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" :; fi @@ -51,6 +63,6 @@ src_prepare() { 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-12.4.1_p20250625.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.4.1_p20250625.ebuild new file mode 100644 index 00000000000..b56179223d8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.4.1_p20250625.ebuild @@ -0,0 +1,68 @@ +# 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="12.4.0" +PATCH_VER="3" +MUSL_VER="1" +MUSL_GCC_VER="12.4.0" +PYTHON_COMPAT=( python3_{10..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 ~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_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250601-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250619.ebuild similarity index 77% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250601-r1.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250619.ebuild index 38b0634bd9e..bb96cde3f49 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250601-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250619.ebuild @@ -8,13 +8,25 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="16.0.0" -PATCH_VER="3" -MUSL_VER="1" -MUSL_GCC_VER="16.0.0" +PATCH_GCC_VER="13.3.0" +MUSL_GCC_VER="13.2.0" +PATCH_VER="5" +MUSL_VER="2" PYTHON_COMPAT=( python3_{10..14} ) -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then +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} @@ -27,7 +39,7 @@ inherit toolchain if tc_is_live ; then # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=master + 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" @@ -51,10 +63,7 @@ src_prepare() { done toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply "${FILESDIR}"/0001-c-__has_trivial_destructor-regression.patch - eapply "${FILESDIR}"/0002-c-__is_destructible-fixes-PR107600.patch - eapply "${FILESDIR}"/0003-c-constinit-diagnostic-regression-PR120506.patch - eapply "${FILESDIR}"/0004-c-more-__is_destructible-fixes-PR107600.patch eapply_user } diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250626.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250626.ebuild new file mode 100644 index 00000000000..bb96cde3f49 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250626.ebuild @@ -0,0 +1,69 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_PATCH_DEV="sam" +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="13.3.0" +MUSL_GCC_VER="13.2.0" +PATCH_VER="5" +MUSL_VER="2" +PYTHON_COMPAT=( python3_{10..14} ) + +if [[ ${PV} == *.9999 ]] ; then + MY_PV_2=$(ver_cut 2) + MY_PV_3=1 + if [[ ${MY_PV_2} == 0 ]] ; then + MY_PV_2=0 + MY_PV_3=0 + else + MY_PV_2=$((${MY_PV_2} - 1)) + fi + + # e.g. 12.2.9999 -> 12.1.1 + TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} +elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250530.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250620.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250530.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250620.ebuild diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250606.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250627.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250606.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250627.ebuild diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.1.1_p20250524.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.1.1_p20250621.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.1.1_p20250524.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.1.1_p20250621.ebuild diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.1.1_p20250531.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.1.1_p20250628.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.1.1_p20250531.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.1.1_p20250628.ebuild diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250608.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250622-r1.ebuild similarity index 97% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250608.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250622-r1.ebuild index 0e25c3f620e..cdc9f578c8d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250608.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250622-r1.ebuild @@ -52,5 +52,6 @@ src_prepare() { toolchain_src_prepare eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply "${FILESDIR}"/${P}-ext-dce.patch eapply_user } diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250601.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250622.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250601.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250622.ebuild diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250525.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250629.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250525.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250629.ebuild index 031efdb451b..684c97f7bd4 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250525.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250629.ebuild @@ -9,7 +9,7 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="16.0.0" -PATCH_VER="2" +PATCH_VER="4" MUSL_VER="1" MUSL_GCC_VER="16.0.0" PYTHON_COMPAT=( python3_{10..14} ) 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 73f45cfa6c3..d06fe5b665d 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 @@ -4,3 +4,5 @@ DIST btrfs-progs-v6.13.tar.sign 566 BLAKE2B 12424d4f076a0b1e007f367c803c0308c456 DIST btrfs-progs-v6.13.tar.xz 2731048 BLAKE2B aaf536e17977c052dd0828501f5a91b85403d561301f10d8c7bf2f5abae30a323f781ef8727f8ca48efc6edf16000b3ee8435fd6a89d6d047dda289ad87e3f64 SHA512 c91e99beb554320e75bcef027ae918993ed8e08a5fe774ff55bf63cde2c64802676c8678ff09d2678aa084166f178efd2b64ed00821d0908a1435e9eaea74422 DIST btrfs-progs-v6.14.tar.sign 566 BLAKE2B ddb860fa18cb56e7b460949c54c097e11bd08675e661d954aba353e412e714e5d3dbaecc0f97aa11787cb8b665a4a7549cfc7d779b596fe15324d45bae1d8a20 SHA512 c1092a0992e945b4820de4e80adc5681e9a2bf435b5defb0b8c44b3bb210c07b38dd446a40ce19955fa1616b546d40f568c537410fe4eda8f2f1657e2d3bfb3e DIST btrfs-progs-v6.14.tar.xz 2739548 BLAKE2B fae9bdbacc093ba260d7740001eef98f4ffb72c30631c789a34fbd5f34283cbdfb9f1e6b2f6112fb769b90892b47ea2bcc0bcdab37748b8d23e3588051620b2a SHA512 becb9e1a95ecd3e0421dd9a4a4fd0bf0e950d6586aa8cc757f97b04392a54a4fd4bcae164a61054087823e610297041b2b79b0c6e827cab8ad804d9877268ee4 +DIST btrfs-progs-v6.15.tar.sign 566 BLAKE2B 002bd309b3c5c0cebea7f2424c775ad369d358731223f0fee2646ed57b4b635cef4561e04eb7bd01321d8da13cea87410626d78433d0e6b44cc6229069553ab1 SHA512 e008df77f2791468ca02c5acf68df5904219646bc55c129db9b75aff3212893824bcfbb1fb5cdf404f1f366d05c7fd1566419a5fadc6057b484f408c0f37dfb8 +DIST btrfs-progs-v6.15.tar.xz 4933176 BLAKE2B 5e79b7606fb236bc21e5b2401f5d6b27ad0ffb1b8ceef3ed9c7042b384508b1e1cc2a3a451d94e5369fa1592d91da78264caabe74bf1d907ac8e513a86b6fed8 SHA512 415cf222ae6a219123cdac5f99d4b8346a9f9c57e9e5b109a5198c287d1a00273a3651ce7f38f330d9d81c5a6293cfb5fedcc34c2a03a8be925caa3546a50dad diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.15.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.15.ebuild new file mode 100644 index 00000000000..45d288067d0 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.15.ebuild @@ -0,0 +1,188 @@ +# Copyright 2008-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Please bump with dev-python/btrfsutil + +PYTHON_COMPAT=( python3_{11..14} ) +inherit bash-completion-r1 python-any-r1 udev + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://github.com/kdave/btrfs-progs.git" + EGIT_BRANCH="devel" + WANT_LIBTOOL="none" + inherit autotools git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/dsterba.asc + inherit verify-sig + + MY_PV="v${PV/_/-}" + MY_P="${PN}-${MY_PV}" + SRC_URI=" + https://mirrors.edge.kernel.org/pub/linux/kernel/people/kdave/${PN}/${MY_P}.tar.xz + verify-sig? ( https://mirrors.edge.kernel.org/pub/linux/kernel/people/kdave/${PN}/${MY_P}.tar.sign ) + " + S="${WORKDIR}"/${PN}-${MY_PV} + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" + fi +fi + +DESCRIPTION="Btrfs filesystem utilities" +HOMEPAGE="https://btrfs.readthedocs.io/en/latest/" + +LICENSE="GPL-2" +SLOT="0/0" # libbtrfs soname +IUSE="+convert +man experimental reiserfs static static-libs udev +zstd" +# Could support it with just !systemd => eudev, see mdadm, but let's +# see if someone asks for it first. +REQUIRED_USE="static? ( !udev )" + +# Tries to mount repaired filesystems +RESTRICT="test" + +RDEPEND=" + dev-libs/lzo:2= + sys-apps/util-linux:=[static-libs(+)?] + sys-libs/zlib:= + convert? ( + sys-fs/e2fsprogs:= + reiserfs? ( + >=sys-fs/reiserfsprogs-3.6.27 + ) + ) + udev? ( virtual/libudev:= ) + zstd? ( app-arch/zstd:= ) +" +DEPEND=" + ${RDEPEND} + >=sys-kernel/linux-headers-5.10 + convert? ( sys-apps/acl ) + static? ( + dev-libs/lzo:2[static-libs(+)] + sys-apps/util-linux:0[static-libs(+)] + sys-libs/zlib:0[static-libs(+)] + convert? ( + sys-fs/e2fsprogs[static-libs(+)] + reiserfs? ( + >=sys-fs/reiserfsprogs-3.6.27[static-libs(+)] + ) + ) + zstd? ( app-arch/zstd[static-libs(+)] ) + ) +" +BDEPEND=" + virtual/pkgconfig + man? ( + $(python_gen_any_dep 'dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]') + ) +" + +python_check_deps() { + python_has_version "dev-python/sphinx[${PYTHON_USEDEP}]" && + python_has_version "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]" +} + +if [[ ${PV} == 9999 ]]; then + BDEPEND+=" sys-devel/gnuconfig" +else + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-dsterba )" +fi + +pkg_setup() { + : # Prevent python-any-r1_python_setup +} + +if [[ ${PV} != 9999 ]]; then + src_unpack() { + # Upstream sign the decompressed .tar + if use verify-sig; then + einfo "Unpacking ${MY_P}.tar.xz ..." + verify-sig_verify_detached - "${DISTDIR}"/${MY_P}.tar.sign \ + < <(xz -cd "${DISTDIR}"/${MY_P}.tar.xz | tee >(tar -xf -)) + assert "Unpack failed" + else + default + fi + } +fi + +src_prepare() { + default + + if [[ ${PV} == 9999 ]]; then + local AT_M4DIR=config + eautoreconf + + local automakedir="$(autotools_run_tool --at-output automake --print-libdir)" + [[ -e ${automakedir} ]] || die "Could not locate automake directory" + + ln -s "${automakedir}"/install-sh config/install-sh || die + ln -s "${BROOT}"/usr/share/gnuconfig/config.guess config/config.guess || die + ln -s "${BROOT}"/usr/share/gnuconfig/config.sub config/config.sub || die + fi +} + +src_configure() { + local myeconfargs=( + --bindir="${EPREFIX}"/sbin + + --enable-lzo + $(use_enable experimental) + --disable-python + $(use_enable convert) + $(use_enable man documentation) + $(use_enable elibc_glibc backtrace) + $(use_enable static-libs static) + $(use_enable udev libudev) + $(use_enable zstd) + + # Could support libgcrypt, libsodium, libkcapi, openssl, botan + --with-crypto=builtin + --with-convert=ext2$(usev reiserfs ',reiserfs') + ) + + export EXTRA_PYTHON_CFLAGS="${CFLAGS}" + export EXTRA_PYTHON_LDFLAGS="${LDFLAGS}" + + if use man; then + python_setup + fi + + # bash as a temporary workaround for https://github.com/kdave/btrfs-progs/pull/721 + CONFIG_SHELL="${BROOT}"/bin/bash econf "${myeconfargs[@]}" +} + +src_compile() { + emake V=1 all $(usev static) +} + +src_test() { + emake V=1 -j1 -C tests test +} + +src_install() { + local makeargs=( + $(usev static install-static) + ) + + emake V=1 DESTDIR="${D}" install "${makeargs[@]}" + + if use experimental; then + exeinto /sbin + doexe btrfs-corrupt-block + fi + + newbashcomp btrfs-completion btrfs +} + +pkg_postinst() { + udev_reload +} + +pkg_postrm() { + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-9999.ebuild index 757755270ab..45d288067d0 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 @@ -1,11 +1,11 @@ -# Copyright 2008-2024 Gentoo Authors +# Copyright 2008-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 # Please bump with dev-python/btrfsutil -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit bash-completion-r1 python-any-r1 udev if [[ ${PV} == 9999 ]]; then 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 a39f73cf854..a843195e0a9 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 @@ -1 +1,2 @@ DIST cryptsetup-2.7.5.tar.xz 11697476 BLAKE2B 7df7b53f74cbf1a009d2804b8d85c9fea27be994bb4171e1ded70e3666635fd8f265819321bee0d1977548626029ebf75b87225a68cb38b3b79910f991c813dd SHA512 13eca93cdb00a143d2ca60b6f66ede5adc4072ca0c4bfebd8454a3541e69d269fcdb4afc97ad799e87a999b2bd46c1f31fa924a3d616d72a3337970b1e718d55 +DIST cryptsetup-2.8.0.tar.xz 11794404 BLAKE2B 8f048b4ab87c46f4b459e7eccc2b3e9099a3e22040524b0513989d2a4552bc5dd8b7406ee28b25e7da00121e0d29b9f146f9b6e2384a05bc7a2abbaf14f11876 SHA512 4a41720fdf7f35693b31e68ef6dda7dbdd050252e7f33f3889f9272b708d40b8bde8ecca5e0c917d51bd3f2c82a7bd304829d56bc8ac423ca005155611f42211 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/cryptsetup-2.8.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/cryptsetup-2.8.0.ebuild new file mode 100644 index 00000000000..817e5f8061d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/cryptsetup-2.8.0.ebuild @@ -0,0 +1,153 @@ +# Copyright 1999-2025 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) +inherit linux-info tmpfiles + +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" +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(+)] ) + 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 ) +" + +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" + check_extra_config +} + +src_prepare() { + default + + sed -i '/^LOOPDEV=/s:$: || exit 0:' tests/{compat,mode}-test || die +} + +src_configure() { + 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/fuse/fuse-3.17.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.17.2.ebuild index a2232f19928..2d9f79cbfd7 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.17.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.17.2.ebuild @@ -12,7 +12,7 @@ SRC_URI="https://github.com/libfuse/libfuse/releases/download/${P}/${P}.tar.gz" LICENSE="GPL-2 LGPL-2.1" SLOT="3/4" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" IUSE="+suid test" RESTRICT="test" PROPERTIES="test_privileged" diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/lxcfs/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/lxcfs/Manifest index bd1e1f8ea1a..4b49440980c 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 @@ -1,6 +1,4 @@ DIST lxcfs-5.0.4.tar.gz 104249 BLAKE2B 83a7b861136c34da8a24dd525fd0767193f2bbd92b40e3b9fd5e42d7645465411792e65e95797ab13b33330299d12b19bdd5786352875ed88ac0097b72b711a9 SHA512 b404045dbabe23e1d1f1d74c1648d2596bb70aaa9f9e46f9f5635b0a02d0c451f68b2559920bbefc5b889e908cf1da0a33c148b26bdce3e45c3d0cbdff710604 DIST lxcfs-5.0.4.tar.gz.asc 833 BLAKE2B aff883d24b374b296ea3678670e5e82c723fd0e35cfd7fed555aabbd811a104becc0b741331b4aa4a5129c9fff4dc88c6a86e7d64a89fe86aea81718f5d432dd SHA512 56b639597dbaf3008fe030147ea37192bd465c467a79e11ce139bcaa6bca1625b4bb9c4eda6ea1877446769f0fad9b4c5a3513d4f4415b841db96d5da8325ddc -DIST lxcfs-6.0.3.tar.gz 106684 BLAKE2B 358033df95b52c6b04f5f622eb89e1f62f4f86098d9478b2643c83c3b62c5a6d1429c34b37b7d6241b522ec1d0ec8f8922c01a990cfb75b0b022b00720ded1d3 SHA512 c32941ccdba5906f5542b393077ea6cad9d5cd83eab38692c22614c19fec4f0fe95d3428ae7a49f6e9e9e1879db3479a2a09f37755d2c45c8230b099986eec2d -DIST lxcfs-6.0.3.tar.gz.asc 833 BLAKE2B 202b5539f5d4621e0d2071aaa861976af801a6c5c49bf921acd9015923bf8201178273aa79d7b69b51d7fa1abb0112a4960452e86d7d340b752b2f8d4bb2c559 SHA512 dd27747d56cddb6e0057232a9a451f5d08d812aa73fe70633d31ce38d650dcbdda3e6f195aad3d591dd4ba3ad7cdf658b0bb1ce55b660d26d315ad598d44a74e DIST lxcfs-6.0.4.tar.gz 106751 BLAKE2B 4f05cb5e31ed1f313eeb42ac7cc9e68031011af363992e9d15266d7c831fb83078821a42181142cb58418dc87b6ae71ccd79559e0c77c19b5810cb2f5dde98ab SHA512 27e27dd14e3ab6d6f33b78f3316d1d15ccdb5af76fd3631770fe8ff4e1d1a3cc6d7a8009a604660fccc63e4fa5f1601c6505f66ab76c11dcfcddd3baf7ff173b DIST lxcfs-6.0.4.tar.gz.asc 833 BLAKE2B 71d552694273e6b3fbeaa4fd2a07ad783ca66824fa7fef69ba79a343b65e57295a702efe580c17e77c6fdb3f79364e98206a099ef3ac99b1d1238178cd343e20 SHA512 fecc002f39f841f3ffbfd7c543cdfed61b9276e962a75230b2962a36bbef04f5444481bb1409ba38ed8f619d0887313f1cc84389f64755d6168c017f68bbaeb2 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/lxcfs/lxcfs-6.0.3-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/lxcfs/lxcfs-6.0.3-r1.ebuild deleted file mode 100644 index e75cae6c0b8..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/lxcfs/lxcfs-6.0.3-r1.ebuild +++ /dev/null @@ -1,80 +0,0 @@ -# Copyright 2022-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{10..13} ) - -inherit cmake 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="" - -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 - systemd_newunit "${FILESDIR}"/lxcfs-5.0.2.service lxcfs.service -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/files/squashfs-tools-4.7-missing-includes.patch b/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/files/squashfs-tools-4.7-missing-includes.patch new file mode 100644 index 00000000000..6fba4aa9c1e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/files/squashfs-tools-4.7-missing-includes.patch @@ -0,0 +1,37 @@ +From https://github.com/plougher/squashfs-tools/pull/314 (merged) +From 05a895b3f996d1ac157d95b04980f5f047e7dbf7 Mon Sep 17 00:00:00 2001 +From: Ross Burton +Date: Fri, 6 Jun 2025 15:23:07 +0100 +Subject: [PATCH] print_pager: add missing includes + +When building with musl: + + print_pager.h:33:25: error: unknown type name 'pid_t' + 33 | extern void wait_to_die(pid_t process); + | ^~~~~ + print_pager.h:34:25: error: unknown type name 'pid_t' + 34 | extern FILE *exec_pager(pid_t *process); + | ^~~~~ + +print_pager.h uses pid_t and FILE, so add the required #includes to +ensure that these are defined. + +Signed-off-by: Ross Burton +--- + squashfs-tools/print_pager.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/squashfs-tools/print_pager.h b/squashfs-tools/print_pager.h +index c33d4d2e..f3e0da6c 100644 +--- a/squashfs-tools/print_pager.h ++++ b/squashfs-tools/print_pager.h +@@ -30,6 +30,9 @@ + #define MORE_PAGER 2 + #define UNKNOWN_PAGER 3 + ++#include ++#include ++ + extern void wait_to_die(pid_t process); + extern FILE *exec_pager(pid_t *process); + extern int get_column_width(); diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/squashfs-tools-4.7.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/squashfs-tools-4.7.ebuild index 4fbed288446..6c2c566e23a 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/squashfs-tools-4.7.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/squashfs-tools/squashfs-tools-4.7.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=" @@ -27,6 +27,11 @@ DEPEND=" " RDEPEND=${DEPEND} +# https://bugs.gentoo.org/958646 +PATCHES=( + "${FILESDIR}/${P}-missing-includes.patch" +) + use10() { usex "${1}" 1 0 } 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 e0299dc3a90..16a50ebc3a3 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,6 +1,4 @@ -DIST xfsprogs-6.10.1.tar.xz 1449932 BLAKE2B e9ed15b2d4a9026e0079adfb38578721e13498290a5d9590edae1fd41c9ee0338f9b823568677394952709d82bdc8ade36905a2266ffe64803901adbadfa5643 SHA512 b9fd7b7eaf038772ee4a9602bf38f714db7077731ec8904e0959d28b0103d443be8ae67720869012b90737c1ff440fbce44b3b23b662939c9a90c6d3be3fab08 -DIST xfsprogs-6.11.0.tar.xz 1457084 BLAKE2B 846b25ad36477d71f8f2091ad16699356416f09befbb4250335081d2a8fd78011e9100fbabfb727acdb65520a38c912d9bb9e33b17c222c97de88fd00ab004a9 SHA512 209b479e510e5d5c558430b523bebd90f34b2effeac46f783aad4ec45a9f39998ca1efc67155c54c22e778859968f4b275b0ca6f225603f17ae4cc5c7596a4ca DIST xfsprogs-6.12.0.tar.xz 1471672 BLAKE2B 471832b07bc2cca5bde6e1ac253d151b0889f7b7be75ae322727299a83329899d4c3aac8217b069fee3f7abc6bc964127c35a206b04cb796999497f5ad701f44 SHA512 020810b4a261f4ab4eb94aae813f22b26bb9f17705967198189509e684422361dd80af938e4a77cf326353d5d61d5aeaaee9a34e8a7b8ed1dddd63b7ad1b0510 DIST xfsprogs-6.13.0.tar.xz 1506676 BLAKE2B 98a8b51ba7fb7f58ea292e9c4624ca3c2337d962f832d92549763a85036b8ba0579de0d172465227eb51cc5c51e3b5d4f54144690001ea8b6795b3a43bc41b9b SHA512 9fd73c8585cd295b79b227cd5855407da4b3ea2d40a1ca82e0a93887644b497cced182960bcd8f3c45805dda4a244d1555fd49da5d7e82fe4525d345c766a63a DIST xfsprogs-6.14.0.tar.xz 1543640 BLAKE2B 5ef446b2055356627cd91ebfe9bb07388f9b5a12fd8c530b83980261b2dc3ddfa47f809114f0f238ef787ed687d324abe82427fdc2b3ecc3171d4d06615dd0c4 SHA512 249a64fb5a92ceb9e58b75a270a90773cfe2c90e863d3f9853c14b3eb0f414bf55b8b67c220a1d7386894ef9295622e224977bd3c6600c9dcba826cb4a634f49 -DIST xfsprogs-6.8.0.tar.xz 1367196 BLAKE2B 8c296698da1170bb7ff369c2bf5f156e812ddf43ee817369029ad951d6c1e18c20d093db385b9a523f6cb7ba3e01f8924eb3540b71efa4bec8bf3defe2418562 SHA512 f5b5c6d8da70cc0f3361b3420982aabfabb0bc54b9eb60b93a9aaeedb33a9ecede4061d5c1300b96d7aba7d44a4207672c4a33e115bf0f5c711a151f3fc65e0d +DIST xfsprogs-6.15.0.tar.xz 1550568 BLAKE2B fe6806ac8235c0984055f7b969b11bc0c49ee8bb8f49f7a4c3bf03f1ebf839cccb86cdb6c4946723a1b8007422e057fb7b865cc60081037920e8208cfcab16e9 SHA512 975c9c7fe476b02da50da74eb599f804f2b27a638a74b807e1f69d93d0d150d19bf6d5036601b96febe557a6c51065d8cf22eef5fda92a6d7f084ac1d7647496 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/files/xfsprogs-5.3.0-libdir.patch b/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/files/xfsprogs-5.3.0-libdir.patch deleted file mode 100644 index f943817df48..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/files/xfsprogs-5.3.0-libdir.patch +++ /dev/null @@ -1,28 +0,0 @@ -In Gentoo we install libs to /usr/lib* and let gen_usr_ldscript -handle /lib*. - ---- a/include/buildmacros -+++ b/include/buildmacros -@@ -57,9 +57,10 @@ endif - ifeq ($(ENABLE_SHARED),yes) - INSTALL_LTLIB = \ - cd $(TOPDIR)/$(LIBNAME)/.libs; \ -- ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \ -- ../$(INSTALL) -m 755 -T so_dot_version $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \ -- ../$(INSTALL) -T so_dot_current $(LIBNAME).lai $(PKG_ROOT_LIB_DIR) -+ ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ -+ ../$(INSTALL) -m 755 -T so_dot_version $(LIBNAME).lai $(PKG_LIB_DIR); \ -+ ../$(INSTALL) -T so_dot_current $(LIBNAME).lai $(PKG_LIB_DIR); \ -+ ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_LIB_DIR) - endif - - # Libtool thinks the static and shared libs should be in the same dir, so -@@ -68,7 +69,7 @@ endif - # Other things want the shared libs to appear in /usr/lib, else they'll - # link with the static libs there. So, another symlink to get the .so into - # /usr/lib. --ifeq ($(ENABLE_SHARED),yes) -+ifeq ($(ENABLE_SHARED_HANDLED_BY_gen_usr_ldscript),yes) - INSTALL_LTLIB_DEV = \ - cd $(TOPDIR)/$(LIBNAME)/.libs; \ - ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.10.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.10.1.ebuild deleted file mode 100644 index 852b52cd491..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.10.1.ebuild +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright 1999-2024 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}" -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 - - # Build fails with -O3 (bug #712698) - replace-flags -O3 -O2 - - # Upstream does NOT support --disable-static anymore, - # https://www.spinics.net/lists/linux-xfs/msg30185.html - # https://www.spinics.net/lists/linux-xfs/msg30272.html - local myconf=( - --enable-static - # Doesn't do anything beyond adding -flto (bug #930947). - --disable-lto - # The default value causes double 'lib' - --localstatedir="${EPREFIX}/var" - --with-crond-dir="${EPREFIX}/etc/cron.d" - --with-systemd-unit-dir="$(systemd_get_systemunitdir)" - --with-udev-rule-dir="$(get_udevdir)/rules.d" - $(use_enable icu libicu) - $(use_enable nls gettext) - $(use_enable libedit editline) - ) - - econf "${myconf[@]}" -} - -src_compile() { - emake V=1 -} - -src_install() { - # XXX: There's a missing dep in the install-dev target, so split it - emake DIST_ROOT="${ED}" HAVE_ZIPPED_MANPAGES=false install - emake DIST_ROOT="${ED}" HAVE_ZIPPED_MANPAGES=false install-dev - - # Not actually used but --localstatedir causes this empty dir - # to be installed. - rmdir "${ED}"/var/lib/xfsprogs "${ED}"/var/lib || die - - if ! use static-libs; then - rm "${ED}/usr/$(get_libdir)/libhandle.a" || die - fi - - find "${ED}" -name '*.la' -delete || die -} - -pkg_postrm() { - udev_reload -} - -pkg_postinst() { - udev_reload -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.11.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.15.0.ebuild similarity index 91% rename from sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.11.0.ebuild rename to sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.15.0.ebuild index eebeded6b0b..0df7b2a15b6 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.11.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.15.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=" @@ -21,7 +21,10 @@ RDEPEND=" icu? ( dev-libs/icu:= ) libedit? ( dev-libs/libedit ) " -DEPEND="${RDEPEND}" +DEPEND=" + ${RDEPEND} + >=sys-kernel/linux-headers-6.11 +" BDEPEND="nls? ( sys-devel/gettext )" RDEPEND+=" selinux? ( sec-policy/selinux-xfs )" @@ -55,8 +58,9 @@ src_configure() { # Avoid automagic on libdevmapper (bug #709694) export ac_cv_search_dm_task_create=no - # bug 903611 - use elibc_musl && append-flags -D_LARGEFILE64_SOURCE + # bug 903611, 948468 + use elibc_musl && \ + append-flags -D_LARGEFILE64_SOURCE -DOVERRIDE_SYSTEM_STATX # Upstream does NOT support --disable-static anymore, # https://www.spinics.net/lists/linux-xfs/msg30185.html diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.8.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.8.0.ebuild deleted file mode 100644 index 7863115e61b..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.8.0.ebuild +++ /dev/null @@ -1,106 +0,0 @@ -# Copyright 1999-2024 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}" -BDEPEND="nls? ( sys-devel/gettext )" -RDEPEND+=" selinux? ( sec-policy/selinux-xfs )" - -PATCHES=( - "${FILESDIR}"/${PN}-5.3.0-libdir.patch -) - -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 - - # Build fails with -O3 (bug #712698) - replace-flags -O3 -O2 - - # 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 - --with-crond-dir="${EPREFIX}/etc/cron.d" - --with-systemd-unit-dir="$(systemd_get_systemunitdir)" - --with-udev-rule-dir="$(get_udevdir)/rules.d" - $(use_enable icu libicu) - $(use_enable nls gettext) - $(use_enable libedit editline) - ) - - econf "${myconf[@]}" -} - -src_compile() { - emake V=1 -} - -src_install() { - # XXX: There's a missing dep in the install-dev target, so split it - emake DIST_ROOT="${ED}" HAVE_ZIPPED_MANPAGES=false install - emake DIST_ROOT="${ED}" HAVE_ZIPPED_MANPAGES=false install-dev - - if ! use static-libs; then - rm "${ED}/usr/$(get_libdir)/libhandle.a" || die - fi -} - -pkg_postrm() { - udev_reload -} - -pkg_postinst() { - udev_reload -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/Manifest index 7dd806e761c..41f18f08a70 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/Manifest @@ -2,7 +2,9 @@ DIST zfs-2.1.16.tar.gz 35187215 BLAKE2B 8bb90903f3747589fff94a810584de54d7f598b0 DIST zfs-2.1.16.tar.gz.asc 836 BLAKE2B b46614399ca63d9c88216c55bb2177cc0c28f4da2cb6be3ee361efca994309abff46fdf6ad6b0bad448c44e9e84ee40e2183d1b482e04844317f14744bab5c1f SHA512 d2d94a4e3ffe182e86fa3319cb9661688125f378ffa1e5768ee89033f796a1f52f877c382588fb1f434686e30bc4e65e3f08ceac0dd3dd7f8f751ba6182c3317 DIST zfs-2.2.7.tar.gz 33852602 BLAKE2B 31a066d5d543e3328d1afd065a8da4f9b4c52433d585cdbb41936900fd1453431585c6bc4b6e6d9a497a03e79969bae883e17cf4677099686feb3e32577d2777 SHA512 6493faa8e31d9c042c4e8f748d32cb9243212fdf4e0341c19568b47bcf302e60beb89940b80374610b71e1dca1ca5813f3efaddbf1a2453ceabb38381165b271 DIST zfs-2.2.7.tar.gz.asc 836 BLAKE2B e8fc5e04f5b37a22c741bda46b4573e0cebe85da051c73cf3c5fc267de3c313399b235fc346ca06f4c22d37d2500044a26adb3ea241a65fbcf8760d0ef880039 SHA512 8d22a64c920c2a983429688a340f4ae281decdd30e465591e6b40af9f3016b8f168f4e8ea460600c832a2f46b383ff307986649a645585fb25c34fdfda75ad6e -DIST zfs-2.3.1.tar.gz 34048716 BLAKE2B 7f22826c3359a015a87aafd119d882d8196dca59dadd85674a48c42ed502937f2880e98a387e9986be2c14fc48f46a288aed5fd8635f13db2585e3fc95e57726 SHA512 235023dbe97b3f7c5273e2a6fa34957cc37967256845d4ed9faa2e2a6da29ea6fdcba4167658cf03129afbb0aa11311a760d3d0b5ea5aecc64a4c7ee22ad2d31 -DIST zfs-2.3.1.tar.gz.asc 836 BLAKE2B 5d1f84f5803f1b0553ad75b12020a57537f6a6e3c3781ab8a21f0d7de9ad6be0be7618bb42e51bbddd5fc48cabb05f6d79ea2f5eebc63d67383b29c44d69f7f6 SHA512 619aac22d80b8100f28ca3e4a984b2e0387b272131d2a8c104a278955a811e2280ecf3bfa3b7d54ed73572ed7cd45121cd724b52afd3503c30c1e41400d27674 +DIST zfs-2.2.8.tar.gz 33852494 BLAKE2B 9e338544488d00a57594d638138896635ea62b80341ad9289b9faad7b899012206fef22e5742e1f5681c58d61d264127ed1e2dfe5aa9b2e9aac2243421c60b11 SHA512 95c203a97032b8ae46cc84e0e6fd68d61e42fb6c6fde7102b04ac85291579c18b1d52b3e93e345a3bc5491bef8bf07b8e7edcbf69cb6222c5d8454a3c83adb11 +DIST zfs-2.2.8.tar.gz.asc 224 BLAKE2B c3a06953c22d1b485fbd030c93ad0e744c50a91e51bbed5bef56090a1da57b02ec580499a419201f365c99ade53af5d6f545876e6d0da25ee7870fc86786288b SHA512 fcd6fe2412b5a2e83ad2609d56993ed4ad61e10c4f77f1e94a66403adf66ac90604fb567e7cde6420fe0b6a604abfd817a63e744f7c4fe8452b862c1d8cc4df3 DIST zfs-2.3.2.tar.gz 34344259 BLAKE2B 8a89c62cbbeaf410db4011821cdd9959abef1782be7427b81ac47565407384fa3a381bef041dae73e97c2b2cefca62933180851901b3b1b86974ed33ad178a61 SHA512 94311f2eca1488be83aa0cb802b4a4541bbbd061a3e8e5cbda62cabbb0c8f9a705372ad192cb77703b3d7642c43be7f604f3c363b243cf03a6aceae2d7e5db81 DIST zfs-2.3.2.tar.gz.asc 836 BLAKE2B e9f7f6e5966f395f3cf48cbb63c76872edf50970f053aaaf0f254035e9aa7728be036a5a4dc24cff32d37cdb61ffa4bc1af7e03c8bc1ac9abc9abcfea7f98b95 SHA512 50f1ce4d07febd08a5098bb42516d52ff3227b2b36463a07eca558bfc630628244cd910ea385aa44fb126cd0542d9048a501af8b391a56cafd7307b9db3083c4 +DIST zfs-2.3.3.tar.gz 34360540 BLAKE2B 4861ddfc91b941448d13d43bb2a023273917064b29880f87d91dbe6424b3f1fc7b0409e13a514d5b3f18f70a383c5d1c462ec5d7b8a7c82b2b076ecd363cecdd SHA512 0a18615da052989c19e889758972f14173e790710a2615fc186212d02f9909f0bf62debc19d85ff5c58411d8ef82aa85aff20804c3fbe2446913cd293a18b80d +DIST zfs-2.3.3.tar.gz.asc 224 BLAKE2B 79cad3883b2ac9dd13b4898f48ef2b637a580e18c65d6f83b834489a35cb31da5ed58cc24afabf3331904e8df54a7f7a825826570470f312ff2370c7fc8f95fc SHA512 07aab3d14ba3f06df2992f08cc68bed3dbf57d59cb151e0a769eeea3dc74c82084be0242b80f5075b59bb036d9277dfd726361422b35e3ed01877317634911b7 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.3.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.2.8.ebuild similarity index 98% rename from sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.3.1.ebuild rename to sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.2.8.ebuild index 18703b2b700..a8cee3c6ad4 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.3.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.2.8.ebuild @@ -9,7 +9,7 @@ inherit autotools flag-o-matic linux-mod-r1 multiprocessing DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" HOMEPAGE="https://github.com/openzfs/zfs" -MODULES_KERNEL_MAX=6.13 +MODULES_KERNEL_MAX=6.15 MODULES_KERNEL_MIN=4.18 if [[ ${PV} == 9999 ]] ; then @@ -31,7 +31,7 @@ else ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))" if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv ~sparc" + KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc" fi fi diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.3.3.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.3.3.ebuild new file mode 100644 index 00000000000..a8cee3c6ad4 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.3.3.ebuild @@ -0,0 +1,207 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODULES_INITRAMFS_IUSE=+initramfs +inherit autotools flag-o-matic linux-mod-r1 multiprocessing + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="https://github.com/openzfs/zfs" + +MODULES_KERNEL_MAX=6.15 +MODULES_KERNEL_MIN=4.18 + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/openzfs/zfs.git" + inherit git-r3 + unset MODULES_KERNEL_MAX +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openzfs.asc + inherit verify-sig + + MY_PV=${PV/_rc/-rc} + SRC_URI="https://github.com/openzfs/zfs/releases/download/zfs-${MY_PV}/zfs-${MY_PV}.tar.gz" + SRC_URI+=" verify-sig? ( https://github.com/openzfs/zfs/releases/download/zfs-${MY_PV}/zfs-${MY_PV}.tar.gz.asc )" + S="${WORKDIR}/zfs-${MY_PV}" + + ZFS_KERNEL_COMPAT="${MODULES_KERNEL_MAX}" + # Increments minor eg 5.14 -> 5.15, and still supports override. + ZFS_KERNEL_DEP="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}" + ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))" + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc" + fi +fi + +LICENSE="CDDL MIT debug? ( GPL-2+ )" +SLOT="0/${PVR}" +IUSE="custom-cflags debug +rootfs" +RESTRICT="test" + +BDEPEND=" + app-alternatives/awk + dev-lang/perl +" + +if [[ ${PV} != 9999 ]] ; then + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" + + IUSE+=" +dist-kernel-cap" + RDEPEND=" + dist-kernel-cap? ( dist-kernel? ( + " + eerror " Block devices --->" + eerror " [X] Loopback device support" + fi + fi + fi + fi +} + +libsoversion_check() { + local bugurl libzfs_sover + bugurl="https://bugs.gentoo.org/enter_bug.cgi?form_name=enter_bug&product=Gentoo+Linux&component=Current+packages" + + libzfs_sover="$(grep 'libzfs_la_LDFLAGS += -version-info' lib/libzfs/Makefile.am \ + | grep -Eo '[0-9]+:[0-9]+:[0-9]+')" + libzfs_sover="${libzfs_sover%%:*}" + + if [[ ${libzfs_sover} -ne $(ver_cut 2 ${SLOT}) ]]; then + echo + eerror "BUG BUG BUG BUG BUG BUG BUG BUG" + eerror "ebuild subslot does not match libzfs soversion!" + eerror "libzfs soversion: ${libzfs_sover}" + eerror "ebuild value: $(ver_cut 2 ${SLOT})" + eerror "This is a bug in the ebuild, please use the following URL to report it" + eerror "${bugurl}&short_desc=${CATEGORY}%2F${P}+update+subslot" + echo + # we want to abort for releases, but just print a warning for live ebuild + # to keep package installable + [[ ${PV} == "9999" ]] || die + fi +} + +src_prepare() { + default + libsoversion_check + + # Run unconditionally (bug #792627) + eautoreconf + + if [[ ${PV} != "9999" ]]; then + # Set revision number + sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die "Could not set Gentoo release" + fi + + if use python; then + pushd contrib/pyzfs >/dev/null || die + distutils-r1_src_prepare + popd >/dev/null || die + fi + + # Tries to use /etc/conf.d which we reserve for OpenRC + sed -i -e '/EnvironmentFile/d' etc/systemd/system/zfs*.in || die + + # prevent errors showing up on zfs-mount stop, #647688 + # openrc will unmount all filesystems anyway. + sed -i "/^ZFS_UNMOUNT=/ s/yes/no/" "etc/default/zfs.in" || die +} + +src_configure() { + use custom-cflags || strip-flags + use minimal || python_setup + + local myconf=( + --bindir="${EPREFIX}/bin" + --enable-shared + --enable-sysvinit + --localstatedir="${EPREFIX}/var" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="${EPREFIX}/usr/lib/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-pamconfigsdir="${EPREFIX}/unwanted_files" + --with-pammoduledir="$(getpam_mod_dir)" + --with-systemdunitdir="$(systemd_get_systemunitdir)" + --with-systemdpresetdir="$(systemd_get_systempresetdir)" + --with-vendor=gentoo + # Building zfs-mount-generator.c on musl breaks as strndupa + # isn't available. But systemd doesn't support musl anyway, so + # just disable building it. + # UPDATE: it has been fixed since, + # https://github.com/openzfs/zfs/commit/1f19826c9ac85835cbde61a7439d9d1fefe43a4a + # but we still leave it as this for now. + $(use_enable !elibc_musl systemd) + $(use_enable debug) + $(use_enable nls) + $(use_enable pam) + $(use_enable python pyzfs) + $(use_with unwind libunwind) + --disable-static + $(usex minimal --without-python --with-python="${EPYTHON}") + ) + + econf "${myconf[@]}" +} + +src_compile() { + default + if use python; then + pushd contrib/pyzfs >/dev/null || die + distutils-r1_src_compile + popd >/dev/null || die + fi +} + +src_install() { + default + + gen_usr_ldscript -a nvpair uutil zfsbootenv zfs zfs_core zpool + + use pam && { rm -rv "${ED}/unwanted_files" || die ; } + + use test-suite || { rm -r "${ED}"/usr/share/zfs/{test-runner,zfs-tests,runfiles,*sh} || die ; } + + find "${ED}" -name '*.la' -delete || die + + dobashcomp contrib/bash_completion.d/zfs + bashcomp_alias zfs zpool + + # strip executable bit from conf.d file + fperms 0644 /etc/conf.d/zfs + + if use python; then + pushd contrib/pyzfs >/dev/null || die + distutils-r1_src_install + popd >/dev/null || die + fi + + # enforce best available python implementation + use minimal || python_fix_shebang "${ED}/bin" +} + +pkg_postinst() { + udev_reload + + # we always need userspace utils in sync with zfs-kmod + # so force initrd update for userspace as well, to avoid + # situation when zfs-kmod trigger initrd rebuild before + # userspace component is rebuilt + # KV_* variables are provided by linux-info.eclass + if [[ -z ${ROOT} ]] && use dist-kernel; then + dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" + fi + + if use rootfs; then + if ! has_version sys-kernel/genkernel && ! has_version sys-kernel/dracut; then + elog "Root on zfs requires an initramfs to boot" + elog "The following packages provide one and are tested on a regular basis:" + elog " sys-kernel/dracut ( preferred, module maintained by zfs developers )" + elog " sys-kernel/genkernel" + fi + fi + + if systemd_is_booted || has_version sys-apps/systemd; then + einfo "Please refer to $(systemd_get_systempresetdir)/50-zfs.preset" + einfo "for default zfs systemd service configuration" + else + [[ -e "${EROOT}/etc/runlevels/boot/zfs-import" ]] || \ + einfo "You should add zfs-import to the boot runlevel." + [[ -e "${EROOT}/etc/runlevels/boot/zfs-load-key" ]] || \ + einfo "You should add zfs-load-key to the boot runlevel." + [[ -e "${EROOT}/etc/runlevels/boot/zfs-mount" ]]|| \ + einfo "You should add zfs-mount to the boot runlevel." + [[ -e "${EROOT}/etc/runlevels/default/zfs-share" ]] || \ + einfo "You should add zfs-share to the default runlevel." + [[ -e "${EROOT}/etc/runlevels/default/zfs-zed" ]] || \ + einfo "You should add zfs-zed to the default runlevel." + fi +} + +pkg_postrm() { + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/Manifest index 0ee74a28ab4..528b2d6c163 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 @@ -23,14 +23,10 @@ DIST glibc-2.38-patches-13.tar.xz 92708 BLAKE2B b2f05a793c92ea0b7901d2124fcd968f DIST glibc-2.38.tar.xz 18913712 BLAKE2B f9b039f0ef98a7dd8e1cba228ed10286b9e4fbe4dd89af4d26fa5c4e4cf266f19c2746b44d797ce54739d86499e74cf334aaf311bcf6e30120fd7748453e653f SHA512 a6dd5e42dcd63d58e2820c783522c8c895890b6e8c8e6c83b025553de0cc77cdf227e7044e431ead98c89c68a9ce4dd63509b47e647775fb2075f011849c1900 DIST glibc-2.39-patches-11.tar.xz 192784 BLAKE2B fef42e0bd2a3341f41cac56dc878dcc95b7f521ffb27686a9109fe92e0458e903a24e763db17631b8ae6c1e8de7add2a11979b970689b2378aeb6ef29da7ceb6 SHA512 9daf2c57d178c7ce9d98ee454f680280738b37571bbbecc1724282e4866df29b78e60de40ad81a6efcc0a75b45d08148cb1a5f942ae7e308ae6fa63f9671b7de DIST glibc-2.39.tar.xz 18520988 BLAKE2B 9d98459a2d58401e07c081e0d841935b23998da75a7eb5a7ebd23a1f9ebab99dee623fe166397c1b6c926960c570f62dbca5cb3b5ce84a918adff6b7a15e16bb SHA512 818f58172a52815b4338ea9f2a69ecaa3335492b9f8f64cbf8afb24c0d737982341968ecd79631cae3d3074ab0ae4bc6056fc4ba3ffe790849dc374835cd57e2 -DIST glibc-2.40-patches-10.tar.xz 219604 BLAKE2B e5937f1e6b89c03a77def09b1cf127be18d99259e488ae24c08dc0fc19b51e39604bbf3e7effdc7854f5d49702c2c7dc883eb403ad3d1d1d8247242003621571 SHA512 00ed4ce3862b97719671bd97eed112d2aa492f040e7af2a793954a18575f64e833606b65448b867ad7b5a983330bf1dcdd24a5cb80915866137ec41f2926b5e6 -DIST glibc-2.40-patches-8.tar.xz 112020 BLAKE2B 17f5a3e5486aa570cb4d9103a84b649af9731bc398a4ff65d3d24c8912215dc7f5f2d6fa9a0222c514374a132b96796e8926a5cc31c87b326bf6d1a39772bd7a SHA512 97a28822f97d1c06773953750a8d9a38a6bd9ce488f4c4d5f0752b573591cbdc84dfbbb277e3fb8e5664c56596efc093fd83a78e4c47bb9c11cafe942b13a0f1 -DIST glibc-2.40-patches-9.tar.xz 187952 BLAKE2B 48aecbdcc9ddc0b1139de1934c26952d85c557da795b400ab5b8308afce08d13583c0d18dfacb46d0e63aa4da64d3c9c8fd242ad87a9ae0966022b5da471158b SHA512 a068f9a4af6b47b1ec572378fcac0db464081d277d697914f54028b174e43eb17b30e4e1026bff365be79ddb41ffb81167c684be9f95abb22df03d70aaa66333 +DIST glibc-2.40-patches-11.tar.xz 227044 BLAKE2B 2a8c799a88596f3fc28bc45fc206f231f628ff83aae242d69e216b65983def35d3aaab282287f1d77cb9d37d10bb71c483815ea83dfb2e47670a4cfcfbd1d92f SHA512 e984e4842951c24cf079e9a6f88771ede0709949402dd9f734cbfdf21ff40ca3d7380c0b9cc0c0d89943b6481adf8c7db2ab4b0ffe57e2e1fa514d925f0db395 DIST glibc-2.40.tar.xz 18752204 BLAKE2B 8593cab5b2549b77159b6866fbb40b917e491fd5bc0814f7f85b6529166d78d4583436450c479b86cdfe468304fc4d2a9ba8294230a55dbc4c15e89c3ab6c000 SHA512 33caf91dbfddde6480b7cdf7a68b36aff8c522bfee56160af26af297f1b768668edb08bc4e1a7ff61c64721e3c1d49c347a5dd01c5edd3b914ee6479c8b27885 -DIST glibc-2.41-patches-1.tar.xz 17560 BLAKE2B dc4e39cb5605867b44c2308a8d6d6c0a662656b80a0aa2734f488e2cc22e26c948177eeb80ff6c79d82925b4dbd146a4d78646879c6e32fd60f817fb0d9ae092 SHA512 94da2092e49ee827d7558bcbfa8ebcbb9f81ed68848221d139039ea788cef57375ccfa61498bc73c6e83050681990d3968791a5f90514de12e45c10baef31d1e -DIST glibc-2.41-patches-2.tar.xz 54320 BLAKE2B cd0779c452159c90adf165da18e61699dc5e53dcfecb44f8e7ddc5bcbb00050705a423a298a57054ddce5daaee728ac03d1e25c71ad5070edf5907ac6eac0783 SHA512 4c74a657faa1cffedc083d061258508f483d25e5f3989d98e61608e245a6e75e5c389fefd0c31e5ccde6926c5173364852957b8d8b83a474842c635d1f7fc1c3 -DIST glibc-2.41-patches-3.tar.xz 71180 BLAKE2B 4e871573c6f223ab8eb48a6f4589d511ea2e7b13b45c2317ba6309c3453b3bcaa9c1d07ebcb6c3ac81a7f2650330b5c4c575a0ea6a1526724cacf6a6aaef9d62 SHA512 89ccc4f382eedb83e0b69d39b7e40f32737eb6ea07351ac599849effb7591d43e266ef43f12afb430a15e3c4df98e512e4b3b5c4c3db2fc34be97f5b309edede DIST glibc-2.41-patches-4.tar.xz 75808 BLAKE2B 09a5447ddcfb60fa5b8d6325ea19b4431a4c723deddda40ff1465726e6834a4b412bde218308ecf44a05b58226d6f2affc93b4fc1db5171cf3a55e54db17ee82 SHA512 54aca5239f5cbe7f50b10b9e503388801fe6ada4ec40f3f686b9dd20c2d377ceb361f5b6681bd30b3460edd649fc4a0219004e88e01c20288867de82bf0981a7 +DIST glibc-2.41-patches-6.tar.xz 83980 BLAKE2B ca689782db9f78751d5b5004ee9bf7bd6daf4cf071bb25507e53e4408fdd0331a9f4c82bbe7579e38540fc4d416bd858f76e5655f4e8a87048067fbc5e3c7a17 SHA512 bce972f5e036712e178d0adc97bef17b83a5c5cc3139d689bfc2847bc5e8126ee01250ce41033bc78919a7638965740d54eb431b240a9a32460c433335da968f DIST glibc-2.41.tar.xz 19344868 BLAKE2B 4da62f489ba7a95bb069c2cfea8cf78e4d37e3a5f7e1736239670ba1dca12b69aa77bd00ced078c27d91b1e622c58cbd70258161a9d18c5b3bcc95863b8d744d SHA512 894a3e5a796bc13df30c26a5bfbe4d60b5dbdaac54e7763432235124b547070c7dda88c50584536870cab79183d8cad73a3ac6ed09bfe54fa8482aad07253169 DIST glibc-systemd-20210729.tar.gz 1480 BLAKE2B 37722c7579df782d890e44dbab99c3de52ab466eb9de80d82405e9bb5620bf39ffc8c5f466a435bdb86ef6d36dd7019c0736573916bda6c67d02a2581e0ec979 SHA512 efd75af58b50522c28cdac7abd1fc56555bc1bb042512c90d8340c1ec09c5791b3872a305bf83723252bbde5855b75d958c041083457765c4cfd170732d09238 DIST glibc-systemd-20210814.tar.gz 1469 BLAKE2B 10fa7bcb46d4fdce9c0ab353cbd30871e9b09a347a13a9c9a3b5777f931aa3c826c158d2e49532c604d4a834f2fab4089b67495fb88d0398945dc50d45ad9ef1 SHA512 5346a9ea459a1e6ccf665389f2a294de1e16f1e3e05cdf07e3dd99ed0e4f6f8b52cc333d4bff3c75ac90ab6ce70cd4ab2b3e126f920ce7979abd6dda56315efc diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.40-r10.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.40-r10.ebuild deleted file mode 100644 index 7c81f5fc039..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.40-r10.ebuild +++ /dev/null @@ -1,1754 +0,0 @@ -# Copyright 1999-2025 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_{10..13} ) -TMPFILES_OPTIONAL=1 - -EMULTILIB_PKG="true" - -# Gentoo patchset (ignored for live ebuilds) -PATCH_VER=10 -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" - -inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ - multilib systemd multiprocessing tmpfiles - -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://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 +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 - ) - test? ( - dev-lang/perl - >=net-dns/libidn2-2.3.0 - ) -" -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 - do_compile_test "" "$@" 2>/dev/null || return 0 - else - if ! do_compile_test "" "$@" ; then - ewarn "Simple build failed ... assuming this is desired #324685" - return 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 - - # glibc handles this internally already where it's appropriate; - # can't always have SSP when we're the ones setting it up, etc - filter-flags '-fstack-protector*' - - # Similar issues as with SSP. Can't inject yourself that early. - filter-flags '-fsanitize=*' - - # See end of bug #830454; we handle this via USE=cet - filter-flags '-fcf-protection=*' - - # When bootstrapping, we may have a situation where - # CET-enabled gcc from seed is used to build CET-disabled - # glibc. As such, gcc implicitly enables CET if no - # -fcf-protection flag is passed. For a typical package it - # should not be a problem, but for glibc it matters as it is - # dealing with CET in ld.so. So if CET is supposed to be - # disabled for glibc, be explicit about it. - if ! use cet; then - case ${ABI}-${CTARGET} in - amd64-x86_64-*|x32-x86_64-*-*-gnux32) - append-flags '-fcf-protection=none' - ;; - arm64-aarch64*) - append-flags '-mbranch-protection=none' - ;; - esac - fi -} - -use_multiarch() { - # Allow user to disable runtime arch detection in multilib. - use multiarch || return 1 - # Make sure binutils is new enough to support indirect functions, - # #336792. This funky sed supports gold and bfd linkers. - local bver nver - bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') - case $(tc-arch ${CTARGET}) in - amd64|x86) nver="2.20" ;; - arm) nver="2.22" ;; - hppa) nver="2.23" ;; - ppc|ppc64) nver="2.20" ;; - # ifunc support was added in 2.23, but glibc also needs - # machinemode which is in 2.24. - s390) nver="2.24" ;; - sparc) nver="2.21" ;; - *) return 1 ;; - esac - ver_test ${bver} -ge ${nver} -} - -# Setup toolchain variables that had historically been defined in the -# profiles for these archs. -setup_env() { - # silly users - unset LD_RUN_PATH - unset LD_ASSUME_KERNEL - - if is_crosscompile || tc-is-cross-compiler ; then - multilib_env ${CTARGET_OPT:-${CTARGET}} - - if ! use multilib ; then - MULTILIB_ABIS=${DEFAULT_ABI} - else - MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} - fi - - # If the user has CFLAGS_ in their make.conf, use that, - # and fall back on CFLAGS. - local VAR=CFLAGS_${CTARGET//[-.]/_} - CFLAGS=${!VAR-${CFLAGS}} - einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" - fi - - setup_flags - - export ABI=${ABI:-${DEFAULT_ABI:-default}} - - if just_headers ; then - # Avoid mixing host's CC and target's CFLAGS_${ABI}: - # At this bootstrap stage we have only binutils for - # target but not compiler yet. - einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." - return 0 - fi - - # glibc does not work with non-bfd (for various reasons): - # * gold (bug #269274) - # * mold (bug #860900) - tc-ld-force-bfd - - if use doc ; then - export MAKEINFO=makeinfo - else - export MAKEINFO=/dev/null - fi - - # Reset CC and CXX to the value at start of emerge - export CC=${glibc__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}} - export CXX=${glibc__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}} - export CPP=${glibc__ORIG_CPP:-${CPP:-$(tc-getCPP ${CTARGET})}} - - # and make sure glibc__ORIG_CC and glibc__ORIG_CXX is defined now. - export glibc__ORIG_CC=${CC} - export glibc__ORIG_CXX=${CXX} - export glibc__ORIG_CPP=${CPP} - - if tc-is-clang && ! use custom-cflags && ! is_crosscompile ; then - export glibc__force_gcc=yes - # once this is toggled on, it needs to stay on, since with CPP manipulated - # tc-is-clang does not work correctly anymore... - fi - - if [[ ${glibc__force_gcc} == "yes" ]] ; then - # If we are running in an otherwise clang/llvm environment, we need to - # recover the proper gcc and binutils settings here, at least until glibc - # is finally building with clang. So let's override everything that is - # set in the clang profiles. - # Want to shoot yourself into the foot? Set USE=custom-cflags, that's always - # a good start into that direction. - # Also, if you're crosscompiling, let's assume you know what you are doing. - # Hopefully. - # Last, we need the settings of the *build* environment, not of the - # target environment... - - local current_binutils_path=$(env CHOST="${CBUILD}" ROOT="${BROOT}" binutils-config -B "${CTARGET}") - local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B) - einfo "Overriding clang configuration, since it won't work here" - - export CC="${current_gcc_path}/${CTARGET}-gcc" - export CPP="${current_gcc_path}/${CTARGET}-cpp" - export CXX="${current_gcc_path}/${CTARGET}-g++" - export LD="${current_binutils_path}/ld.bfd" - export AR="${current_binutils_path}/ar" - export AS="${current_binutils_path}/as" - export NM="${current_binutils_path}/nm" - export STRIP="${current_binutils_path}/strip" - export RANLIB="${current_binutils_path}/ranlib" - export OBJCOPY="${current_binutils_path}/objcopy" - export STRINGS="${current_binutils_path}/strings" - export OBJDUMP="${current_binutils_path}/objdump" - export READELF="${current_binutils_path}/readelf" - export ADDR2LINE="${current_binutils_path}/addr2line" - - # do we need to also do flags munging here? yes! at least... - filter-flags '-fuse-ld=*' - filter-flags '-D_FORTIFY_SOURCE=*' - - else - - # this is the "normal" case - - export CC="$(tc-getCC ${CTARGET})" - export CXX="$(tc-getCXX ${CTARGET})" - export CPP="$(tc-getCPP ${CTARGET})" - - # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure - # can't detect them automatically due to ${CHOST} mismatch and fallbacks - # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup(). - export NM="$(tc-getNM ${CTARGET})" - export READELF="$(tc-getREADELF ${CTARGET})" - - fi - - # We need to export CFLAGS with abi information in them because glibc's - # configure script checks CFLAGS for some targets (like mips). Keep - # around the original clean value to avoid appending multiple ABIs on - # top of each other. (Why does the comment talk about CFLAGS if the code - # acts on CC?) - export glibc__GLIBC_CC=${CC} - export glibc__GLIBC_CXX=${CXX} - export glibc__GLIBC_CPP=${CPP} - - export glibc__abi_CFLAGS="$(get_abi_CFLAGS)" - - # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 - # To build .S (assembly) files with the same ABI-specific flags - # upstream currently recommends adding CFLAGS to CC/CXX: - # https://sourceware.org/PR23273 - # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS - # and breaks multiarch support. See 659030#c3 for an example. - # The glibc configure script doesn't properly use LDFLAGS all the time. - export CC="${glibc__GLIBC_CC} ${glibc__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}" - - # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 - export CXX="${glibc__GLIBC_CXX} ${glibc__abi_CFLAGS} ${CFLAGS}" - - export CPP="${glibc__GLIBC_CPP} ${glibc__abi_CFLAGS} ${CFLAGS}" - - if is_crosscompile; then - # Assume worst-case bootstrap: glibc is built for the first time - # with ${CTARGET}-g++ not available yet. We avoid - # building auxiliary programs that require C++: bug #683074 - # It should not affect final result. - export libc_cv_cxx_link_ok=no - # The line above has the same effect. We set CXX explicitly - # to make build logs less confusing. - export CXX= - fi -} - -foreach_abi() { - setup_env - - local ret=0 - local abilist="" - if use multilib ; then - abilist=$(get_install_abis) - else - abilist=${DEFAULT_ABI} - fi - local -x ABI - for ABI in ${abilist:-default} ; do - setup_env - einfo "Running $1 for ABI ${ABI}" - $1 - : $(( ret |= $? )) - done - return ${ret} -} - -glibc_banner() { - local b="Gentoo ${PVR}" - [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" (patchset ${PATCH_VER})" - echo "${b}" -} - -# The following Kernel version handling functions are mostly copied from portage -# source. It's better not to use linux-info.eclass here since a) it adds too -# much magic, see bug 326693 for some of the arguments, and b) some of the -# functions are just not provided. - -g_get_running_KV() { - uname -r - return $? -} - -g_KV_major() { - [[ -z $1 ]] && return 1 - local KV=$@ - echo "${KV%%.*}" -} - -g_KV_minor() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.} - echo "${KV%%.*}" -} - -g_KV_micro() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.*.} - echo "${KV%%[^[:digit:]]*}" -} - -g_KV_to_int() { - [[ -z $1 ]] && return 1 - local KV_MAJOR=$(g_KV_major "$1") - local KV_MINOR=$(g_KV_minor "$1") - local KV_MICRO=$(g_KV_micro "$1") - local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) - - # We make version 2.2.0 the minimum version we will handle as - # a sanity check ... if its less, we fail ... - if [[ ${KV_int} -ge 131584 ]] ; then - echo "${KV_int}" - return 0 - fi - return 1 -} - -g_int_to_KV() { - local version=$1 major minor micro - major=$((version / 65536)) - minor=$(((version % 65536) / 256)) - micro=$((version % 256)) - echo ${major}.${minor}.${micro} -} - -eend_KV() { - [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] - eend $? -} - -get_kheader_version() { - printf '#include \nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "${ESYSROOT}$(alt_headers)" - | \ - tail -n 1 -} - -# We collect all sanity checks here. Consistency is not guranteed between -# pkg_ and src_ phases, so we call this function both in pkg_pretend and in -# src_unpack. -sanity_prechecks() { - # Prevent native builds from downgrading - if [[ ${MERGE_TYPE} != "buildonly" ]] && \ - [[ -z ${ROOT} ]] && \ - [[ ${CBUILD} == ${CHOST} ]] && \ - [[ ${CHOST} == ${CTARGET} ]] ; then - - # The high rev # is to allow people to downgrade between -r# - # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 - # should be fine. Hopefully we never actually use a r# this - # high. - if has_version ">${CATEGORY}/${P}-r10000" ; then - eerror "Sanity check to keep you from breaking your system:" - eerror " Downgrading glibc is not supported and a sure way to destruction." - [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." - fi - - if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then - eerror "Your old kernel is broken. You need to update it to a newer" - eerror "version as syscall() will break. See bug 279260." - die "Old and broken kernel." - fi - fi - - if [[ ${CTARGET} == i386-* ]] ; then - eerror "i386 CHOSTs are no longer supported." - eerror "Chances are you don't actually want/need i386." - eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" - die "Please fix your CHOST" - fi - - if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then - ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." - ewarn "This will result in a 50% performance penalty when running with a 32bit" - ewarn "hypervisor, which is probably not what you want." - fi - - # ABI-specific checks follow here. Hey, we have a lot more specific conditions that - # we test for... - if ! is_crosscompile ; then - if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then - ebegin "Checking if the system can execute 32-bit binaries" - echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" - local STAT - if ${CC-${CHOST}-gcc} ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then - "${T}/check-ia32-emulation.elf32" - STAT=$? - else - # Don't fail here to allow single->multi ABI switch - # or recover from breakage like bug #646424 - ewarn "Failed to compile the ABI test. Broken host glibc?" - STAT=0 - fi - rm -f "${T}/check-ia32-emulation.elf32" - eend $STAT - if [[ $STAT -ne 0 ]]; then - eerror "Ensure that CONFIG_IA32_EMULATION is enabled in the kernel." - eerror "Seek support otherwise." - die "Unable to execute 32-bit binaries" - fi - fi - - fi - - # When we actually have to compile something... - if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then - if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then - # bug #833620, bug #643302 - eerror "Found ${ESYSROOT}/usr/lib/include directory!" - eerror "This is known to break glibc's build." - eerror "Please backup its contents then remove the directory." - die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" - fi - - if [[ ${CTARGET} == *-linux* ]] ; then - local run_kv build_kv want_kv - - run_kv=$(g_get_running_KV) - build_kv=$(g_int_to_KV $(get_kheader_version)) - want_kv=${MIN_KERN_VER} - - if ! is_crosscompile && ! tc-is-cross-compiler ; then - # Building fails on an non-supporting kernel - ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" - if ! eend_KV ${run_kv} ${want_kv} ; then - echo - eerror "You need a kernel of at least ${want_kv}!" - die "Kernel version too low!" - fi - fi - - # Do not run this check for pkg_pretend, just pkg_setup and friends (if we ever get used there). - # It's plausible (seen it in the wild) that Portage will (correctly) schedule a linux-headers - # upgrade before glibc, but because pkg_pretend gets run before any packages are merged at all (not - # just glibc), the whole emerge gets aborted without a good reason. We probably don't - # need to run this check at all given we have a dependency on the right headers, - # but let's leave it as-is for now. - if [[ ${EBUILD_PHASE_FUNC} != pkg_pretend ]] ; then - ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" - if ! eend_KV ${build_kv} ${want_kv} ; then - echo - eerror "You need linux-headers of at least ${want_kv}!" - die "linux-headers version too low!" - fi - fi - fi - fi -} - -upgrade_warning() { - is_crosscompile && return - - if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then - local oldv newv=$(ver_cut 1-2 ${PV}) - for oldv in ${REPLACING_VERSIONS}; do - if ver_test ${oldv} -lt ${newv}; 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)" - break - fi - done - 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" - 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" - EGIT_CHECKOUT_DIR=${S} - git-r3_src_unpack - else - unpack ${P}.tar.xz - - cd "${WORKDIR}" || die - unpack glibc-${PV}-patches-${PATCH_VER}.tar.xz - fi - - cd "${WORKDIR}" || die - use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz -} - -# src_prepare - -src_prepare() { - local patchsetname - if ! use vanilla ; then - if [[ ${PV} == 9999* ]] ; then - patchsetname="from git master" - else - patchsetname="${PV}-${PATCH_VER}" - fi - einfo "Applying Gentoo Glibc patchset ${patchsetname}" - eapply "${WORKDIR}"/patches - einfo "Done." - fi - - default - - gnuconfig_update - - cd "${WORKDIR}" || die - find . -name configure -exec touch {} + - - # Fix permissions on some of the scripts. - chmod u+x "${S}"/scripts/*.sh - - cd "${S}" || die -} - -# src_configure - -glibc_do_configure() { - dump_build_environment - - local myconf=() - - # Use '=strong' instead of '=all' to protect only functions - # worth protecting from stack smashes. - myconf+=( --enable-stack-protector=$(usex ssp strong no) ) - - # Keep a whitelist of targets supporting IFUNC. glibc's ./configure - # is not robust enough to detect proper support: - # https://bugs.gentoo.org/641216 - # https://sourceware.org/PR22634#c0 - case $(tc-arch ${CTARGET}) in - # Keep whitelist of targets where autodetection mostly works. - amd64|x86|sparc|ppc|ppc64|arm|arm64|s390|riscv|loong) ;; - # Blacklist everywhere else - *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; - esac - - case ${ABI}-${CTARGET} in - amd64-x86_64-*|x32-x86_64-*-*-gnux32) myconf+=( $(use_enable cet) ) ;; - *) ;; - esac - - [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) - - myconf+=( --enable-kernel=${MIN_KERN_VER} ) - - # Since SELinux support is only required for nscd, only enable it if: - # 1. USE selinux - # 2. only for the primary ABI on multilib systems - # 3. Not a crosscompile - if ! is_crosscompile && use selinux ; then - if use multilib ; then - if is_final_abi ; then - myconf+=( --with-selinux ) - else - myconf+=( --without-selinux ) - fi - else - myconf+=( --with-selinux ) - fi - else - myconf+=( --without-selinux ) - fi - - # Force a few tests where we always know the answer but - # configure is incapable of finding it. - if is_crosscompile ; then - export \ - libc_cv_c_cleanup=yes \ - libc_cv_forced_unwind=yes - fi - - myconf+=( - --disable-werror - --enable-bind-now - --enable-fortify-source - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - $(use_enable profile) - $(use_with gd) - --with-headers="${ESYSROOT}$(alt_headers)" - --prefix="$(host_eprefix)/usr" - --sysconfdir="$(host_eprefix)/etc" - --localstatedir="$(host_eprefix)/var" - --libdir='$(prefix)'/$(get_libdir) - --mandir='$(prefix)'/share/man - --infodir='$(prefix)'/share/info - --libexecdir='$(libdir)'/misc/glibc - --with-bugurl=https://bugs.gentoo.org/ - --with-pkgversion="$(glibc_banner)" - $(use_multiarch || echo --disable-multi-arch) - $(use_enable systemtap) - $(use_enable nscd) - - # /usr/bin/mtrace has a Perl shebang. Gentoo Prefix QA checks fail if - # Perl hasn't been installed inside the prefix yet and configure picks - # up a Perl from outside the prefix instead. configure will fail to - # execute Perl during configure if we're cross-compiling a prefix, but - # it will just disable mtrace in that case. - # Note: mtrace is needed by the test suite. - ac_cv_path_PERL="$(usex perl "${EPREFIX}"/usr/bin/perl $(usex test "${EPREFIX}"/usr/bin/perl $(usex doc "${EPREFIX}"/usr/bin/perl no)))" - - # locale data is arch-independent - # https://bugs.gentoo.org/753740 - libc_cv_complocaledir='${exec_prefix}/lib/locale' - - # On aarch64 there is no way to override -mcpu=native, and if - # the current cpu does not support SVE configure fails. - # Let's boldly assume our toolchain can always build SVE instructions. - libc_cv_aarch64_sve_asm=yes - - ${EXTRA_ECONF} - ) - - # We rely on sys-libs/timezone-data for timezone tools normally. - myconf+=( $(use_enable vanilla timezone-tools) ) - - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) - ac_cv_lib_cap_cap_init=$(usex caps || echo no) - - # There is no configure option for this and we need to export it - # since the glibc build will re-run configure on itself - export libc_cv_rootsbindir="$(host_eprefix)/sbin" - export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" - - local builddir=$(builddir nptl) - mkdir -p "${builddir}" - cd "${builddir}" - set -- "${S}"/configure "${myconf[@]}" - echo "$@" - "$@" || die "failed to configure glibc" - - # If we're trying to migrate between ABI sets, we need - # to lie and use a local copy of gcc. Like if the system - # is built with MULTILIB_ABIS="amd64 x86" but we want to - # add x32 to it, gcc/glibc don't yet support x32. - # - if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib-bootstrap ; then - echo 'int main(void){}' > "${T}"/test.c || die - if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then - sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die - fi - fi -} - -glibc_headers_configure() { - export ABI=default - - local builddir=$(builddir "headers") - mkdir -p "${builddir}" - cd "${builddir}" - - # if we don't have a compiler yet, we can't really test it now ... - # hopefully they don't affect header generation, so let's hope for - # the best here ... - local v vars=( - ac_cv_header_cpuid_h=yes - libc_cv_{386,390,alpha,arm,hppa,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes - libc_cv_asm_cfi_directives=yes - libc_cv_broken_visibility_attribute=no - libc_cv_c_cleanup=yes - libc_cv_compiler_powerpc64le_binary128_ok=yes - libc_cv_forced_unwind=yes - libc_cv_gcc___thread=yes - libc_cv_mlong_double_128=yes - libc_cv_mlong_double_128ibm=yes - libc_cv_ppc_machine=yes - libc_cv_ppc_rel16=yes - libc_cv_predef_fortify_source=no - libc_cv_target_power8_ok=yes - libc_cv_visibility_attribute=yes - libc_cv_z_combreloc=yes - libc_cv_z_execstack=yes - libc_cv_z_initfirst=yes - libc_cv_z_nodelete=yes - libc_cv_z_nodlopen=yes - libc_cv_z_relro=yes - libc_mips_abi=${ABI} - libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=no - ac_cv_lib_cap_cap_init=no - ) - - einfo "Forcing cached settings:" - for v in "${vars[@]}" ; do - einfo " ${v}" - export ${v} - done - - local headers_only_arch_CPPFLAGS=() - - # Blow away some random CC settings that screw things up. #550192 - if [[ -d ${S}/sysdeps/mips ]]; then - pushd "${S}"/sysdeps/mips >/dev/null - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die - - # Force the mips ABI to the default. This is OK because the set of - # installed headers in this phase is the same between the 3 ABIs. - # If this ever changes, this hack will break, but that's unlikely - # as glibc discourages that behavior. - # https://crbug.com/647033 - sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die - - popd >/dev/null - fi - - local myconf=() - - case ${CTARGET} in - aarch64*) - # The configure checks fail during cross-build, so disable here - # for headers-only - myconf+=( - --disable-mathvec - ) ;; - riscv*) - # RISC-V interrogates the compiler to determine which target to - # build. If building the headers then we don't strictly need a - # RISC-V compiler, so the built-in definitions that are provided - # along with all RISC-V compiler might not exist. This causes - # glibc's RISC-V preconfigure script to blow up. Since we're just - # building the headers any value will actually work here, so just - # pick the standard one (rv64g/lp64d) to make the build scripts - # happy for now -- the headers are all the same anyway so it - # doesn't matter. - headers_only_arch_CPPFLAGS+=( - -D__riscv_xlen=64 - -D__riscv_flen=64 - -D__riscv_float_abi_double=1 - -D__riscv_atomic=1 - ) ;; - esac - - myconf+=( - --disable-sanity-checks - --enable-hacker-mode - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - --with-headers="${ESYSROOT}$(alt_headers)" - --prefix="$(host_eprefix)/usr" - ${EXTRA_ECONF} - ) - - # Nothing is compiled here which would affect the headers for the target. - # So forcing CC/CFLAGS is sane. - local headers_only_CC=$(tc-getBUILD_CC) - local headers_only_CFLAGS="-O1 -pipe" - local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" - local headers_only_LDFLAGS="" - set -- "${S}"/configure "${myconf[@]}" - echo \ - "CC=${headers_only_CC}" \ - "CFLAGS=${headers_only_CFLAGS}" \ - "CPPFLAGS=${headers_only_CPPFLAGS}" \ - "LDFLAGS=${headers_only_LDFLAGS}" \ - "$@" - CC=${headers_only_CC} \ - CFLAGS=${headers_only_CFLAGS} \ - CPPFLAGS=${headers_only_CPPFLAGS} \ - LDFLAGS="" \ - "$@" || die "failed to configure glibc" -} - -do_src_configure() { - if just_headers ; then - glibc_headers_configure - else - glibc_do_configure nptl - fi -} - -src_configure() { - foreach_abi do_src_configure -} - -# src_compile - -do_src_compile() { - emake -C "$(builddir nptl)" -} - -src_compile() { - if just_headers ; then - return - fi - - foreach_abi do_src_compile -} - -# src_test - -glibc_src_test() { - cd "$(builddir nptl)" - - local myxfailparams="" - if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then - local virt=$(systemd-detect-virt 2>/dev/null) - if [[ ${virt} == systemd-nspawn ]] ; then - ewarn "Skipping extra tests because in systemd-nspawn container" - XFAIL_TEST_LIST+=( "${XFAIL_NSPAWN_TEST_LIST[@]}" ) - fi - if [[ "$(nice)" == "19" ]] ; then - # Expects to be able to increase niceness, which it can't do if - # already at the highest nice value - XFAIL_TEST_LIST+=( "tst-nice" ) - fi - - for myt in ${XFAIL_TEST_LIST[@]} ; do - myxfailparams+="test-xfail-${myt}=yes " - done - fi - - # sandbox does not understand unshare() and prevents - # writes to /proc/, which makes many tests fail - - # we give the tests a bit more time to avoid spurious - # bug reports on slow arches - - SANDBOX_ON=0 LD_PRELOAD= TIMEOUTFACTOR=16 emake ${myxfailparams} check -} - -src_test() { - if just_headers ; then - return - fi - - foreach_abi glibc_src_test || die "tests failed" -} - -# src_install - -run_locale_gen() { - # if the host locales.gen contains no entries, we'll install everything - local root="$1" - local inplace="" - - if [[ "${root}" == "--inplace-glibc" ]] ; then - inplace="--inplace-glibc" - root="$2" - fi - - local locale_list="${root%/}/etc/locale.gen" - - pushd "${ED}"/$(get_libdir) >/dev/null - - if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then - [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space" - locale_list="${root%/}/usr/share/i18n/SUPPORTED" - 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 - local mygenjobs="$(makeopts_jobs)" - if [[ "${EMERGE_FROM}" == "binary" ]] ; then - mygenjobs="$(nproc)" - fi - - set -- locale-gen ${inplace} --jobs "${mygenjobs}" --config "${locale_list}" \ - --destdir "${root}" - echo "$@" - "$@" - - popd >/dev/null -} - -glibc_do_src_install() { - local builddir=$(builddir nptl) - cd "${builddir}" - - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install - - # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support - # which come without headers etc. Only needed for binary packages since the - # external net-libs/libnsl has increased soversion. Keep only versioned libraries. - find "${D}" -name "libnsl.a" -delete - find "${D}" -name "libnsl.so" -delete - - # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need - # to infer upstream version: - # '#define VERSION "2.26.90"' -> '2.26.90' - local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) - - # Avoid stripping binaries not targeted by ${CHOST}. Or else - # ${CHOST}-strip would break binaries build for ${CTARGET}. - is_crosscompile && dostrip -x / - - # gdb thread introspection relies on local libpthreads symbols. stripping breaks it - # See Note [Disable automatic stripping] - dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so - # valgrind requires knowledge about ld.so symbols. - dostrip -x $(alt_libdir)/ld-*.so* - - if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then - # Move versioned .a file out of libdir to evade portage QA checks - # instead of using gen_usr_ldscript(). We fix ldscript as: - # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." - sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" \ - "${ED}"/$(alt_usrlibdir)/libm.a || die - dodir $(alt_usrlibdir)/${P} - mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a \ - "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die - fi - - # We configure toolchains for standalone prefix systems with a sysroot, - # which is prepended to paths in ld scripts, so strip the prefix from these. - # Before: GROUP ( /foo/lib64/libc.so.6 /foo/usr/lib64/libc_nonshared.a AS_NEEDED ( /foo/lib64/ld-linux-x86-64.so.2 ) ) - # After: GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-x86-64.so.2 ) ) - if [[ -n $(host_eprefix) ]] ; then - local file - grep -lZIF "ld script" "${ED}/$(alt_usrlibdir)"/lib*.{a,so} 2>/dev/null | while read -rd '' file ; do - sed -i "s|$(host_eprefix)/|/|g" "${file}" || die - done - fi - - # We'll take care of the cache ourselves - rm -f "${ED}"/etc/ld.so.cache - - # Everything past this point just needs to be done once ... - is_final_abi || return 0 - - # Make sure the non-native interp can be found on multilib systems even - # if the main library set isn't installed into the right place. Maybe - # we should query the active gcc for info instead of hardcoding it ? - local i ldso_abi ldso_name - local ldso_abi_list=( - # x86 - amd64 /lib64/ld-linux-x86-64.so.2 - x32 /libx32/ld-linux-x32.so.2 - x86 /lib/ld-linux.so.2 - # mips - o32 /lib/ld.so.1 - n32 /lib32/ld.so.1 - n64 /lib64/ld.so.1 - # powerpc - ppc /lib/ld.so.1 - # riscv - ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 - ilp32 /lib/ld-linux-riscv32-ilp32.so.1 - lp64d /lib/ld-linux-riscv64-lp64d.so.1 - lp64 /lib/ld-linux-riscv64-lp64.so.1 - # s390 - s390 /lib/ld.so.1 - s390x /lib/ld64.so.1 - # sparc - sparc32 /lib/ld-linux.so.2 - sparc64 /lib64/ld-linux.so.2 - ) - case $(tc-endian) in - little) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64.so.1 - # ELFv2 (glibc does not support ELFv1 on LE) - ppc64 /lib64/ld64.so.2 - ) - ;; - big) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64_be.so.1 - # ELFv1 (glibc does not support ELFv2 on BE) - ppc64 /lib64/ld64.so.1 - ) - ;; - esac - if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then - dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib - fi - for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do - ldso_abi=${ldso_abi_list[i]} - has ${ldso_abi} $(get_install_abis) || continue - - ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" - if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then - dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} - fi - done - - # In the LSB 5.0 definition, someone had the excellent idea to "standardize" - # the runtime loader name, see also https://xkcd.com/927/ - # Normally, in Gentoo one should never come across executables that require this. - # However, binary commercial packages are known to adhere to weird practices. - # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB - local lsb_ldso_name native_ldso_name lsb_ldso_abi - local lsb_ldso_abi_list=( - # x86 - amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 - ) - for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do - lsb_ldso_abi=${lsb_ldso_abi_list[i]} - native_ldso_name=${lsb_ldso_abi_list[i+1]} - lsb_ldso_name=${lsb_ldso_abi_list[i+2]} - has ${lsb_ldso_abi} $(get_install_abis) || continue - - if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then - dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}" - fi - done - - # With devpts under Linux mounted properly, we do not need the pt_chown - # binary to be setuid. This is because the default owners/perms will be - # exactly what we want. - if ! use suid ; then - find "${ED}" -name pt_chown -exec chmod -s {} + - fi - - ################################################################# - # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # - ################################################################# - - # Make sure we install some symlink hacks so that when we build - # a 2nd stage cross-compiler, gcc finds the target system - # headers correctly. See gcc/doc/gccinstall.info - if is_crosscompile ; then - # We need to make sure that /lib and /usr/lib always exists. - # gcc likes to use relative paths to get to its multilibs like - # /usr/lib/../lib64/. So while we don't install any files into - # /usr/lib/, we do need it to exist. - keepdir $(alt_prefix)/lib - keepdir $(alt_prefix)/usr/lib - - dosym usr/include $(alt_prefix)/sys-include - return 0 - fi - - # Files for Debian-style locale updating - dodir /usr/share/i18n - sed \ - -e "/^#/d" \ - -e "/SUPPORTED-LOCALES=/d" \ - -e "s: \\\\::g" -e "s:/: :g" \ - "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ - || die "generating /usr/share/i18n/SUPPORTED failed" - - cd "${S}" || die - - # Install misc network config files - insinto /etc - doins posix/gai.conf - - if use systemd ; then - doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf" - else - doins nss/nsswitch.conf - fi - - # Gentoo-specific - newins "${FILESDIR}"/host.conf-1 host.conf - - if use nscd ; then - doins nscd/nscd.conf - - newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd - - local nscd_args=( - -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" - ) - - sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd - - use systemd && systemd_dounit nscd/nscd.service - newtmpfiles nscd/nscd.tmpfiles nscd.conf - fi - - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc - doenvd "${T}"/00glibc - - for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do - [[ -s ${d} ]] && dodoc ${d} - done - dodoc -r ChangeLog.old - - # Prevent overwriting of the /etc/localtime symlink. We'll handle the - # creation of the "factory" symlink in pkg_postinst(). - rm -f "${ED}"/etc/localtime - - # Generate all locales if this is a native build as locale generation - if use compile-locales && ! is_crosscompile ; then - run_locale_gen --inplace-glibc "${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 - - use compile-locales || run_locale_gen "${EROOT}/" - - # 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.40-r8.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.40-r11.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.40-r8.ebuild rename to sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.40-r11.ebuild index 8e0d873be47..07f8c01de0e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.40-r8.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.40-r11.ebuild @@ -12,7 +12,7 @@ TMPFILES_OPTIONAL=1 EMULTILIB_PKG="true" # Gentoo patchset (ignored for live ebuilds) -PATCH_VER=8 +PATCH_VER=11 PATCH_DEV=dilfridge # gcc mulitilib bootstrap files version diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.40-r9.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.40-r9.ebuild deleted file mode 100644 index f29e7f79f20..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.40-r9.ebuild +++ /dev/null @@ -1,1754 +0,0 @@ -# Copyright 1999-2025 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_{10..13} ) -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" - -inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ - multilib systemd multiprocessing tmpfiles - -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://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 +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 - ) - test? ( - dev-lang/perl - >=net-dns/libidn2-2.3.0 - ) -" -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 - do_compile_test "" "$@" 2>/dev/null || return 0 - else - if ! do_compile_test "" "$@" ; then - ewarn "Simple build failed ... assuming this is desired #324685" - return 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 - - # glibc handles this internally already where it's appropriate; - # can't always have SSP when we're the ones setting it up, etc - filter-flags '-fstack-protector*' - - # Similar issues as with SSP. Can't inject yourself that early. - filter-flags '-fsanitize=*' - - # See end of bug #830454; we handle this via USE=cet - filter-flags '-fcf-protection=*' - - # When bootstrapping, we may have a situation where - # CET-enabled gcc from seed is used to build CET-disabled - # glibc. As such, gcc implicitly enables CET if no - # -fcf-protection flag is passed. For a typical package it - # should not be a problem, but for glibc it matters as it is - # dealing with CET in ld.so. So if CET is supposed to be - # disabled for glibc, be explicit about it. - if ! use cet; then - case ${ABI}-${CTARGET} in - amd64-x86_64-*|x32-x86_64-*-*-gnux32) - append-flags '-fcf-protection=none' - ;; - arm64-aarch64*) - append-flags '-mbranch-protection=none' - ;; - esac - fi -} - -use_multiarch() { - # Allow user to disable runtime arch detection in multilib. - use multiarch || return 1 - # Make sure binutils is new enough to support indirect functions, - # #336792. This funky sed supports gold and bfd linkers. - local bver nver - bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') - case $(tc-arch ${CTARGET}) in - amd64|x86) nver="2.20" ;; - arm) nver="2.22" ;; - hppa) nver="2.23" ;; - ppc|ppc64) nver="2.20" ;; - # ifunc support was added in 2.23, but glibc also needs - # machinemode which is in 2.24. - s390) nver="2.24" ;; - sparc) nver="2.21" ;; - *) return 1 ;; - esac - ver_test ${bver} -ge ${nver} -} - -# Setup toolchain variables that had historically been defined in the -# profiles for these archs. -setup_env() { - # silly users - unset LD_RUN_PATH - unset LD_ASSUME_KERNEL - - if is_crosscompile || tc-is-cross-compiler ; then - multilib_env ${CTARGET_OPT:-${CTARGET}} - - if ! use multilib ; then - MULTILIB_ABIS=${DEFAULT_ABI} - else - MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} - fi - - # If the user has CFLAGS_ in their make.conf, use that, - # and fall back on CFLAGS. - local VAR=CFLAGS_${CTARGET//[-.]/_} - CFLAGS=${!VAR-${CFLAGS}} - einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" - fi - - setup_flags - - export ABI=${ABI:-${DEFAULT_ABI:-default}} - - if just_headers ; then - # Avoid mixing host's CC and target's CFLAGS_${ABI}: - # At this bootstrap stage we have only binutils for - # target but not compiler yet. - einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." - return 0 - fi - - # glibc does not work with non-bfd (for various reasons): - # * gold (bug #269274) - # * mold (bug #860900) - tc-ld-force-bfd - - if use doc ; then - export MAKEINFO=makeinfo - else - export MAKEINFO=/dev/null - fi - - # Reset CC and CXX to the value at start of emerge - export CC=${glibc__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}} - export CXX=${glibc__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}} - export CPP=${glibc__ORIG_CPP:-${CPP:-$(tc-getCPP ${CTARGET})}} - - # and make sure glibc__ORIG_CC and glibc__ORIG_CXX is defined now. - export glibc__ORIG_CC=${CC} - export glibc__ORIG_CXX=${CXX} - export glibc__ORIG_CPP=${CPP} - - if tc-is-clang && ! use custom-cflags && ! is_crosscompile ; then - export glibc__force_gcc=yes - # once this is toggled on, it needs to stay on, since with CPP manipulated - # tc-is-clang does not work correctly anymore... - fi - - if [[ ${glibc__force_gcc} == "yes" ]] ; then - # If we are running in an otherwise clang/llvm environment, we need to - # recover the proper gcc and binutils settings here, at least until glibc - # is finally building with clang. So let's override everything that is - # set in the clang profiles. - # Want to shoot yourself into the foot? Set USE=custom-cflags, that's always - # a good start into that direction. - # Also, if you're crosscompiling, let's assume you know what you are doing. - # Hopefully. - # Last, we need the settings of the *build* environment, not of the - # target environment... - - local current_binutils_path=$(env CHOST="${CBUILD}" ROOT="${BROOT}" binutils-config -B "${CTARGET}") - local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B) - einfo "Overriding clang configuration, since it won't work here" - - export CC="${current_gcc_path}/${CTARGET}-gcc" - export CPP="${current_gcc_path}/${CTARGET}-cpp" - export CXX="${current_gcc_path}/${CTARGET}-g++" - export LD="${current_binutils_path}/ld.bfd" - export AR="${current_binutils_path}/ar" - export AS="${current_binutils_path}/as" - export NM="${current_binutils_path}/nm" - export STRIP="${current_binutils_path}/strip" - export RANLIB="${current_binutils_path}/ranlib" - export OBJCOPY="${current_binutils_path}/objcopy" - export STRINGS="${current_binutils_path}/strings" - export OBJDUMP="${current_binutils_path}/objdump" - export READELF="${current_binutils_path}/readelf" - export ADDR2LINE="${current_binutils_path}/addr2line" - - # do we need to also do flags munging here? yes! at least... - filter-flags '-fuse-ld=*' - filter-flags '-D_FORTIFY_SOURCE=*' - - else - - # this is the "normal" case - - export CC="$(tc-getCC ${CTARGET})" - export CXX="$(tc-getCXX ${CTARGET})" - export CPP="$(tc-getCPP ${CTARGET})" - - # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure - # can't detect them automatically due to ${CHOST} mismatch and fallbacks - # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup(). - export NM="$(tc-getNM ${CTARGET})" - export READELF="$(tc-getREADELF ${CTARGET})" - - fi - - # We need to export CFLAGS with abi information in them because glibc's - # configure script checks CFLAGS for some targets (like mips). Keep - # around the original clean value to avoid appending multiple ABIs on - # top of each other. (Why does the comment talk about CFLAGS if the code - # acts on CC?) - export glibc__GLIBC_CC=${CC} - export glibc__GLIBC_CXX=${CXX} - export glibc__GLIBC_CPP=${CPP} - - export glibc__abi_CFLAGS="$(get_abi_CFLAGS)" - - # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 - # To build .S (assembly) files with the same ABI-specific flags - # upstream currently recommends adding CFLAGS to CC/CXX: - # https://sourceware.org/PR23273 - # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS - # and breaks multiarch support. See 659030#c3 for an example. - # The glibc configure script doesn't properly use LDFLAGS all the time. - export CC="${glibc__GLIBC_CC} ${glibc__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}" - - # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 - export CXX="${glibc__GLIBC_CXX} ${glibc__abi_CFLAGS} ${CFLAGS}" - - export CPP="${glibc__GLIBC_CPP} ${glibc__abi_CFLAGS} ${CFLAGS}" - - if is_crosscompile; then - # Assume worst-case bootstrap: glibc is built for the first time - # with ${CTARGET}-g++ not available yet. We avoid - # building auxiliary programs that require C++: bug #683074 - # It should not affect final result. - export libc_cv_cxx_link_ok=no - # The line above has the same effect. We set CXX explicitly - # to make build logs less confusing. - export CXX= - fi -} - -foreach_abi() { - setup_env - - local ret=0 - local abilist="" - if use multilib ; then - abilist=$(get_install_abis) - else - abilist=${DEFAULT_ABI} - fi - local -x ABI - for ABI in ${abilist:-default} ; do - setup_env - einfo "Running $1 for ABI ${ABI}" - $1 - : $(( ret |= $? )) - done - return ${ret} -} - -glibc_banner() { - local b="Gentoo ${PVR}" - [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" (patchset ${PATCH_VER})" - echo "${b}" -} - -# The following Kernel version handling functions are mostly copied from portage -# source. It's better not to use linux-info.eclass here since a) it adds too -# much magic, see bug 326693 for some of the arguments, and b) some of the -# functions are just not provided. - -g_get_running_KV() { - uname -r - return $? -} - -g_KV_major() { - [[ -z $1 ]] && return 1 - local KV=$@ - echo "${KV%%.*}" -} - -g_KV_minor() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.} - echo "${KV%%.*}" -} - -g_KV_micro() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.*.} - echo "${KV%%[^[:digit:]]*}" -} - -g_KV_to_int() { - [[ -z $1 ]] && return 1 - local KV_MAJOR=$(g_KV_major "$1") - local KV_MINOR=$(g_KV_minor "$1") - local KV_MICRO=$(g_KV_micro "$1") - local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) - - # We make version 2.2.0 the minimum version we will handle as - # a sanity check ... if its less, we fail ... - if [[ ${KV_int} -ge 131584 ]] ; then - echo "${KV_int}" - return 0 - fi - return 1 -} - -g_int_to_KV() { - local version=$1 major minor micro - major=$((version / 65536)) - minor=$(((version % 65536) / 256)) - micro=$((version % 256)) - echo ${major}.${minor}.${micro} -} - -eend_KV() { - [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] - eend $? -} - -get_kheader_version() { - printf '#include \nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "${ESYSROOT}$(alt_headers)" - | \ - tail -n 1 -} - -# We collect all sanity checks here. Consistency is not guranteed between -# pkg_ and src_ phases, so we call this function both in pkg_pretend and in -# src_unpack. -sanity_prechecks() { - # Prevent native builds from downgrading - if [[ ${MERGE_TYPE} != "buildonly" ]] && \ - [[ -z ${ROOT} ]] && \ - [[ ${CBUILD} == ${CHOST} ]] && \ - [[ ${CHOST} == ${CTARGET} ]] ; then - - # The high rev # is to allow people to downgrade between -r# - # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 - # should be fine. Hopefully we never actually use a r# this - # high. - if has_version ">${CATEGORY}/${P}-r10000" ; then - eerror "Sanity check to keep you from breaking your system:" - eerror " Downgrading glibc is not supported and a sure way to destruction." - [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." - fi - - if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then - eerror "Your old kernel is broken. You need to update it to a newer" - eerror "version as syscall() will break. See bug 279260." - die "Old and broken kernel." - fi - fi - - if [[ ${CTARGET} == i386-* ]] ; then - eerror "i386 CHOSTs are no longer supported." - eerror "Chances are you don't actually want/need i386." - eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" - die "Please fix your CHOST" - fi - - if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then - ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." - ewarn "This will result in a 50% performance penalty when running with a 32bit" - ewarn "hypervisor, which is probably not what you want." - fi - - # ABI-specific checks follow here. Hey, we have a lot more specific conditions that - # we test for... - if ! is_crosscompile ; then - if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then - ebegin "Checking if the system can execute 32-bit binaries" - echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" - local STAT - if ${CC-${CHOST}-gcc} ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then - "${T}/check-ia32-emulation.elf32" - STAT=$? - else - # Don't fail here to allow single->multi ABI switch - # or recover from breakage like bug #646424 - ewarn "Failed to compile the ABI test. Broken host glibc?" - STAT=0 - fi - rm -f "${T}/check-ia32-emulation.elf32" - eend $STAT - if [[ $STAT -ne 0 ]]; then - eerror "Ensure that CONFIG_IA32_EMULATION is enabled in the kernel." - eerror "Seek support otherwise." - die "Unable to execute 32-bit binaries" - fi - fi - - fi - - # When we actually have to compile something... - if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then - if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then - # bug #833620, bug #643302 - eerror "Found ${ESYSROOT}/usr/lib/include directory!" - eerror "This is known to break glibc's build." - eerror "Please backup its contents then remove the directory." - die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" - fi - - if [[ ${CTARGET} == *-linux* ]] ; then - local run_kv build_kv want_kv - - run_kv=$(g_get_running_KV) - build_kv=$(g_int_to_KV $(get_kheader_version)) - want_kv=${MIN_KERN_VER} - - if ! is_crosscompile && ! tc-is-cross-compiler ; then - # Building fails on an non-supporting kernel - ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" - if ! eend_KV ${run_kv} ${want_kv} ; then - echo - eerror "You need a kernel of at least ${want_kv}!" - die "Kernel version too low!" - fi - fi - - # Do not run this check for pkg_pretend, just pkg_setup and friends (if we ever get used there). - # It's plausible (seen it in the wild) that Portage will (correctly) schedule a linux-headers - # upgrade before glibc, but because pkg_pretend gets run before any packages are merged at all (not - # just glibc), the whole emerge gets aborted without a good reason. We probably don't - # need to run this check at all given we have a dependency on the right headers, - # but let's leave it as-is for now. - if [[ ${EBUILD_PHASE_FUNC} != pkg_pretend ]] ; then - ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" - if ! eend_KV ${build_kv} ${want_kv} ; then - echo - eerror "You need linux-headers of at least ${want_kv}!" - die "linux-headers version too low!" - fi - fi - fi - fi -} - -upgrade_warning() { - is_crosscompile && return - - if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then - local oldv newv=$(ver_cut 1-2 ${PV}) - for oldv in ${REPLACING_VERSIONS}; do - if ver_test ${oldv} -lt ${newv}; 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)" - break - fi - done - 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" - 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" - EGIT_CHECKOUT_DIR=${S} - git-r3_src_unpack - else - unpack ${P}.tar.xz - - cd "${WORKDIR}" || die - unpack glibc-${PV}-patches-${PATCH_VER}.tar.xz - fi - - cd "${WORKDIR}" || die - use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz -} - -# src_prepare - -src_prepare() { - local patchsetname - if ! use vanilla ; then - if [[ ${PV} == 9999* ]] ; then - patchsetname="from git master" - else - patchsetname="${PV}-${PATCH_VER}" - fi - einfo "Applying Gentoo Glibc patchset ${patchsetname}" - eapply "${WORKDIR}"/patches - einfo "Done." - fi - - default - - gnuconfig_update - - cd "${WORKDIR}" || die - find . -name configure -exec touch {} + - - # Fix permissions on some of the scripts. - chmod u+x "${S}"/scripts/*.sh - - cd "${S}" || die -} - -# src_configure - -glibc_do_configure() { - dump_build_environment - - local myconf=() - - # Use '=strong' instead of '=all' to protect only functions - # worth protecting from stack smashes. - myconf+=( --enable-stack-protector=$(usex ssp strong no) ) - - # Keep a whitelist of targets supporting IFUNC. glibc's ./configure - # is not robust enough to detect proper support: - # https://bugs.gentoo.org/641216 - # https://sourceware.org/PR22634#c0 - case $(tc-arch ${CTARGET}) in - # Keep whitelist of targets where autodetection mostly works. - amd64|x86|sparc|ppc|ppc64|arm|arm64|s390|riscv|loong) ;; - # Blacklist everywhere else - *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; - esac - - case ${ABI}-${CTARGET} in - amd64-x86_64-*|x32-x86_64-*-*-gnux32) myconf+=( $(use_enable cet) ) ;; - *) ;; - esac - - [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) - - myconf+=( --enable-kernel=${MIN_KERN_VER} ) - - # Since SELinux support is only required for nscd, only enable it if: - # 1. USE selinux - # 2. only for the primary ABI on multilib systems - # 3. Not a crosscompile - if ! is_crosscompile && use selinux ; then - if use multilib ; then - if is_final_abi ; then - myconf+=( --with-selinux ) - else - myconf+=( --without-selinux ) - fi - else - myconf+=( --with-selinux ) - fi - else - myconf+=( --without-selinux ) - fi - - # Force a few tests where we always know the answer but - # configure is incapable of finding it. - if is_crosscompile ; then - export \ - libc_cv_c_cleanup=yes \ - libc_cv_forced_unwind=yes - fi - - myconf+=( - --disable-werror - --enable-bind-now - --enable-fortify-source - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - $(use_enable profile) - $(use_with gd) - --with-headers="${ESYSROOT}$(alt_headers)" - --prefix="$(host_eprefix)/usr" - --sysconfdir="$(host_eprefix)/etc" - --localstatedir="$(host_eprefix)/var" - --libdir='$(prefix)'/$(get_libdir) - --mandir='$(prefix)'/share/man - --infodir='$(prefix)'/share/info - --libexecdir='$(libdir)'/misc/glibc - --with-bugurl=https://bugs.gentoo.org/ - --with-pkgversion="$(glibc_banner)" - $(use_multiarch || echo --disable-multi-arch) - $(use_enable systemtap) - $(use_enable nscd) - - # /usr/bin/mtrace has a Perl shebang. Gentoo Prefix QA checks fail if - # Perl hasn't been installed inside the prefix yet and configure picks - # up a Perl from outside the prefix instead. configure will fail to - # execute Perl during configure if we're cross-compiling a prefix, but - # it will just disable mtrace in that case. - # Note: mtrace is needed by the test suite. - ac_cv_path_PERL="$(usex perl "${EPREFIX}"/usr/bin/perl $(usex test "${EPREFIX}"/usr/bin/perl $(usex doc "${EPREFIX}"/usr/bin/perl no)))" - - # locale data is arch-independent - # https://bugs.gentoo.org/753740 - libc_cv_complocaledir='${exec_prefix}/lib/locale' - - # On aarch64 there is no way to override -mcpu=native, and if - # the current cpu does not support SVE configure fails. - # Let's boldly assume our toolchain can always build SVE instructions. - libc_cv_aarch64_sve_asm=yes - - ${EXTRA_ECONF} - ) - - # We rely on sys-libs/timezone-data for timezone tools normally. - myconf+=( $(use_enable vanilla timezone-tools) ) - - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) - ac_cv_lib_cap_cap_init=$(usex caps || echo no) - - # There is no configure option for this and we need to export it - # since the glibc build will re-run configure on itself - export libc_cv_rootsbindir="$(host_eprefix)/sbin" - export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" - - local builddir=$(builddir nptl) - mkdir -p "${builddir}" - cd "${builddir}" - set -- "${S}"/configure "${myconf[@]}" - echo "$@" - "$@" || die "failed to configure glibc" - - # If we're trying to migrate between ABI sets, we need - # to lie and use a local copy of gcc. Like if the system - # is built with MULTILIB_ABIS="amd64 x86" but we want to - # add x32 to it, gcc/glibc don't yet support x32. - # - if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib-bootstrap ; then - echo 'int main(void){}' > "${T}"/test.c || die - if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then - sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die - fi - fi -} - -glibc_headers_configure() { - export ABI=default - - local builddir=$(builddir "headers") - mkdir -p "${builddir}" - cd "${builddir}" - - # if we don't have a compiler yet, we can't really test it now ... - # hopefully they don't affect header generation, so let's hope for - # the best here ... - local v vars=( - ac_cv_header_cpuid_h=yes - libc_cv_{386,390,alpha,arm,hppa,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes - libc_cv_asm_cfi_directives=yes - libc_cv_broken_visibility_attribute=no - libc_cv_c_cleanup=yes - libc_cv_compiler_powerpc64le_binary128_ok=yes - libc_cv_forced_unwind=yes - libc_cv_gcc___thread=yes - libc_cv_mlong_double_128=yes - libc_cv_mlong_double_128ibm=yes - libc_cv_ppc_machine=yes - libc_cv_ppc_rel16=yes - libc_cv_predef_fortify_source=no - libc_cv_target_power8_ok=yes - libc_cv_visibility_attribute=yes - libc_cv_z_combreloc=yes - libc_cv_z_execstack=yes - libc_cv_z_initfirst=yes - libc_cv_z_nodelete=yes - libc_cv_z_nodlopen=yes - libc_cv_z_relro=yes - libc_mips_abi=${ABI} - libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=no - ac_cv_lib_cap_cap_init=no - ) - - einfo "Forcing cached settings:" - for v in "${vars[@]}" ; do - einfo " ${v}" - export ${v} - done - - local headers_only_arch_CPPFLAGS=() - - # Blow away some random CC settings that screw things up. #550192 - if [[ -d ${S}/sysdeps/mips ]]; then - pushd "${S}"/sysdeps/mips >/dev/null - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die - - # Force the mips ABI to the default. This is OK because the set of - # installed headers in this phase is the same between the 3 ABIs. - # If this ever changes, this hack will break, but that's unlikely - # as glibc discourages that behavior. - # https://crbug.com/647033 - sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die - - popd >/dev/null - fi - - local myconf=() - - case ${CTARGET} in - aarch64*) - # The configure checks fail during cross-build, so disable here - # for headers-only - myconf+=( - --disable-mathvec - ) ;; - riscv*) - # RISC-V interrogates the compiler to determine which target to - # build. If building the headers then we don't strictly need a - # RISC-V compiler, so the built-in definitions that are provided - # along with all RISC-V compiler might not exist. This causes - # glibc's RISC-V preconfigure script to blow up. Since we're just - # building the headers any value will actually work here, so just - # pick the standard one (rv64g/lp64d) to make the build scripts - # happy for now -- the headers are all the same anyway so it - # doesn't matter. - headers_only_arch_CPPFLAGS+=( - -D__riscv_xlen=64 - -D__riscv_flen=64 - -D__riscv_float_abi_double=1 - -D__riscv_atomic=1 - ) ;; - esac - - myconf+=( - --disable-sanity-checks - --enable-hacker-mode - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - --with-headers="${ESYSROOT}$(alt_headers)" - --prefix="$(host_eprefix)/usr" - ${EXTRA_ECONF} - ) - - # Nothing is compiled here which would affect the headers for the target. - # So forcing CC/CFLAGS is sane. - local headers_only_CC=$(tc-getBUILD_CC) - local headers_only_CFLAGS="-O1 -pipe" - local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" - local headers_only_LDFLAGS="" - set -- "${S}"/configure "${myconf[@]}" - echo \ - "CC=${headers_only_CC}" \ - "CFLAGS=${headers_only_CFLAGS}" \ - "CPPFLAGS=${headers_only_CPPFLAGS}" \ - "LDFLAGS=${headers_only_LDFLAGS}" \ - "$@" - CC=${headers_only_CC} \ - CFLAGS=${headers_only_CFLAGS} \ - CPPFLAGS=${headers_only_CPPFLAGS} \ - LDFLAGS="" \ - "$@" || die "failed to configure glibc" -} - -do_src_configure() { - if just_headers ; then - glibc_headers_configure - else - glibc_do_configure nptl - fi -} - -src_configure() { - foreach_abi do_src_configure -} - -# src_compile - -do_src_compile() { - emake -C "$(builddir nptl)" -} - -src_compile() { - if just_headers ; then - return - fi - - foreach_abi do_src_compile -} - -# src_test - -glibc_src_test() { - cd "$(builddir nptl)" - - local myxfailparams="" - if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then - local virt=$(systemd-detect-virt 2>/dev/null) - if [[ ${virt} == systemd-nspawn ]] ; then - ewarn "Skipping extra tests because in systemd-nspawn container" - XFAIL_TEST_LIST+=( "${XFAIL_NSPAWN_TEST_LIST[@]}" ) - fi - if [[ "$(nice)" == "19" ]] ; then - # Expects to be able to increase niceness, which it can't do if - # already at the highest nice value - XFAIL_TEST_LIST+=( "tst-nice" ) - fi - - for myt in ${XFAIL_TEST_LIST[@]} ; do - myxfailparams+="test-xfail-${myt}=yes " - done - fi - - # sandbox does not understand unshare() and prevents - # writes to /proc/, which makes many tests fail - - # we give the tests a bit more time to avoid spurious - # bug reports on slow arches - - SANDBOX_ON=0 LD_PRELOAD= TIMEOUTFACTOR=16 emake ${myxfailparams} check -} - -src_test() { - if just_headers ; then - return - fi - - foreach_abi glibc_src_test || die "tests failed" -} - -# src_install - -run_locale_gen() { - # if the host locales.gen contains no entries, we'll install everything - local root="$1" - local inplace="" - - if [[ "${root}" == "--inplace-glibc" ]] ; then - inplace="--inplace-glibc" - root="$2" - fi - - local locale_list="${root%/}/etc/locale.gen" - - pushd "${ED}"/$(get_libdir) >/dev/null - - if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then - [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space" - locale_list="${root%/}/usr/share/i18n/SUPPORTED" - 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 - local mygenjobs="$(makeopts_jobs)" - if [[ "${EMERGE_FROM}" == "binary" ]] ; then - mygenjobs="$(nproc)" - fi - - set -- locale-gen ${inplace} --jobs "${mygenjobs}" --config "${locale_list}" \ - --destdir "${root}" - echo "$@" - "$@" - - popd >/dev/null -} - -glibc_do_src_install() { - local builddir=$(builddir nptl) - cd "${builddir}" - - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install - - # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support - # which come without headers etc. Only needed for binary packages since the - # external net-libs/libnsl has increased soversion. Keep only versioned libraries. - find "${D}" -name "libnsl.a" -delete - find "${D}" -name "libnsl.so" -delete - - # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need - # to infer upstream version: - # '#define VERSION "2.26.90"' -> '2.26.90' - local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) - - # Avoid stripping binaries not targeted by ${CHOST}. Or else - # ${CHOST}-strip would break binaries build for ${CTARGET}. - is_crosscompile && dostrip -x / - - # gdb thread introspection relies on local libpthreads symbols. stripping breaks it - # See Note [Disable automatic stripping] - dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so - # valgrind requires knowledge about ld.so symbols. - dostrip -x $(alt_libdir)/ld-*.so* - - if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then - # Move versioned .a file out of libdir to evade portage QA checks - # instead of using gen_usr_ldscript(). We fix ldscript as: - # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." - sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" \ - "${ED}"/$(alt_usrlibdir)/libm.a || die - dodir $(alt_usrlibdir)/${P} - mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a \ - "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die - fi - - # We configure toolchains for standalone prefix systems with a sysroot, - # which is prepended to paths in ld scripts, so strip the prefix from these. - # Before: GROUP ( /foo/lib64/libc.so.6 /foo/usr/lib64/libc_nonshared.a AS_NEEDED ( /foo/lib64/ld-linux-x86-64.so.2 ) ) - # After: GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-x86-64.so.2 ) ) - if [[ -n $(host_eprefix) ]] ; then - local file - grep -lZIF "ld script" "${ED}/$(alt_usrlibdir)"/lib*.{a,so} 2>/dev/null | while read -rd '' file ; do - sed -i "s|$(host_eprefix)/|/|g" "${file}" || die - done - fi - - # We'll take care of the cache ourselves - rm -f "${ED}"/etc/ld.so.cache - - # Everything past this point just needs to be done once ... - is_final_abi || return 0 - - # Make sure the non-native interp can be found on multilib systems even - # if the main library set isn't installed into the right place. Maybe - # we should query the active gcc for info instead of hardcoding it ? - local i ldso_abi ldso_name - local ldso_abi_list=( - # x86 - amd64 /lib64/ld-linux-x86-64.so.2 - x32 /libx32/ld-linux-x32.so.2 - x86 /lib/ld-linux.so.2 - # mips - o32 /lib/ld.so.1 - n32 /lib32/ld.so.1 - n64 /lib64/ld.so.1 - # powerpc - ppc /lib/ld.so.1 - # riscv - ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 - ilp32 /lib/ld-linux-riscv32-ilp32.so.1 - lp64d /lib/ld-linux-riscv64-lp64d.so.1 - lp64 /lib/ld-linux-riscv64-lp64.so.1 - # s390 - s390 /lib/ld.so.1 - s390x /lib/ld64.so.1 - # sparc - sparc32 /lib/ld-linux.so.2 - sparc64 /lib64/ld-linux.so.2 - ) - case $(tc-endian) in - little) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64.so.1 - # ELFv2 (glibc does not support ELFv1 on LE) - ppc64 /lib64/ld64.so.2 - ) - ;; - big) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64_be.so.1 - # ELFv1 (glibc does not support ELFv2 on BE) - ppc64 /lib64/ld64.so.1 - ) - ;; - esac - if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then - dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib - fi - for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do - ldso_abi=${ldso_abi_list[i]} - has ${ldso_abi} $(get_install_abis) || continue - - ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" - if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then - dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} - fi - done - - # In the LSB 5.0 definition, someone had the excellent idea to "standardize" - # the runtime loader name, see also https://xkcd.com/927/ - # Normally, in Gentoo one should never come across executables that require this. - # However, binary commercial packages are known to adhere to weird practices. - # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB - local lsb_ldso_name native_ldso_name lsb_ldso_abi - local lsb_ldso_abi_list=( - # x86 - amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 - ) - for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do - lsb_ldso_abi=${lsb_ldso_abi_list[i]} - native_ldso_name=${lsb_ldso_abi_list[i+1]} - lsb_ldso_name=${lsb_ldso_abi_list[i+2]} - has ${lsb_ldso_abi} $(get_install_abis) || continue - - if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then - dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}" - fi - done - - # With devpts under Linux mounted properly, we do not need the pt_chown - # binary to be setuid. This is because the default owners/perms will be - # exactly what we want. - if ! use suid ; then - find "${ED}" -name pt_chown -exec chmod -s {} + - fi - - ################################################################# - # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # - ################################################################# - - # Make sure we install some symlink hacks so that when we build - # a 2nd stage cross-compiler, gcc finds the target system - # headers correctly. See gcc/doc/gccinstall.info - if is_crosscompile ; then - # We need to make sure that /lib and /usr/lib always exists. - # gcc likes to use relative paths to get to its multilibs like - # /usr/lib/../lib64/. So while we don't install any files into - # /usr/lib/, we do need it to exist. - keepdir $(alt_prefix)/lib - keepdir $(alt_prefix)/usr/lib - - dosym usr/include $(alt_prefix)/sys-include - return 0 - fi - - # Files for Debian-style locale updating - dodir /usr/share/i18n - sed \ - -e "/^#/d" \ - -e "/SUPPORTED-LOCALES=/d" \ - -e "s: \\\\::g" -e "s:/: :g" \ - "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ - || die "generating /usr/share/i18n/SUPPORTED failed" - - cd "${S}" || die - - # Install misc network config files - insinto /etc - doins posix/gai.conf - - if use systemd ; then - doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf" - else - doins nss/nsswitch.conf - fi - - # Gentoo-specific - newins "${FILESDIR}"/host.conf-1 host.conf - - if use nscd ; then - doins nscd/nscd.conf - - newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd - - local nscd_args=( - -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" - ) - - sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd - - use systemd && systemd_dounit nscd/nscd.service - newtmpfiles nscd/nscd.tmpfiles nscd.conf - fi - - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc - doenvd "${T}"/00glibc - - for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do - [[ -s ${d} ]] && dodoc ${d} - done - dodoc -r ChangeLog.old - - # Prevent overwriting of the /etc/localtime symlink. We'll handle the - # creation of the "factory" symlink in pkg_postinst(). - rm -f "${ED}"/etc/localtime - - # Generate all locales if this is a native build as locale generation - if use compile-locales && ! is_crosscompile ; then - run_locale_gen --inplace-glibc "${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 - - use compile-locales || run_locale_gen "${EROOT}/" - - # 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.41-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.41-r1.ebuild deleted file mode 100644 index c1c453c31a8..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.41-r1.ebuild +++ /dev/null @@ -1,1759 +0,0 @@ -# Copyright 1999-2025 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_{10..13} ) -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" - -inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ - multilib systemd multiprocessing tmpfiles eapi9-ver - -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://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 +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 - ) - test? ( - dev-lang/perl - >=net-dns/libidn2-2.3.0 - sys-apps/gawk[mpfr] - ) -" -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 - do_compile_test "" "$@" 2>/dev/null || return 0 - else - ebegin "Performing simple compile test for ABI=${ABI}" - if ! do_compile_test "" "$@" ; then - ewarn "Simple build failed ... assuming this is desired #324685" - eend 1 - return 0 - else - eend 0 - fi - fi - - pushd "${T}" >/dev/null - - ./glibc-test - ret=$? - rm -f glibc-test* - - popd >/dev/null - - return ${ret} -} - -setup_target_flags() { - # This largely mucks with compiler flags. None of which should matter - # when building up just the headers. - just_headers && return 0 - - case $(tc-arch) in - x86) - # -march needed for #185404 #199334 - # TODO: When creating the first glibc cross-compile, this test will - # always fail as it does a full link which in turn requires glibc. - # Probably also applies when changing multilib profile settings (e.g. - # enabling x86 when the profile was amd64-only previously). - # We could change main to _start and pass -nostdlib here so that we - # only test the gcc code compilation. Or we could do a compile and - # then look for the symbol via scanelf. - if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - filter-flags '-march=*' - export CFLAGS="-march=${t} ${CFLAGS}" - einfo "Auto adding -march=${t} to CFLAGS #185404" - fi - # For compatibility with older binaries at slight performance cost. - use stack-realign && export CFLAGS+=" -mstackrealign" - ;; - amd64) - # -march needed for #185404 #199334 - # TODO: See cross-compile issues listed above for x86. - if [[ ${ABI} == x86 ]]; then - if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - # Normally the target is x86_64-xxx, so turn that into the -march that - # gcc actually accepts. #528708 - [[ ${t} == "x86_64" ]] && t="x86-64" - filter-flags '-march=*' - # ugly, ugly, ugly. ugly. - CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") - export CFLAGS_x86="${CFLAGS_x86} -march=${t}" - einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" - fi - # For compatibility with older binaries at slight performance cost. - use stack-realign && export CFLAGS_x86+=" -mstackrealign" - fi - ;; - mips) - # The mips abi cannot support the GNU style hashes. #233233 - filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both - ;; - ppc|ppc64) - # Many arch-specific implementations do not work on ppc with - # cache-block not equal to 128 bytes. This breaks memset: - # https://sourceware.org/PR26522 - # https://bugs.gentoo.org/737996 - # Use default -mcpu=. For ppc it means non-multiarch setup. - filter-flags '-mcpu=*' - ;; - sparc) - # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. - filter-flags "-fcall-used-g7" - append-flags "-fcall-used-g6" - - local cpu - case ${CTARGET} in - sparc64-*) - cpu="sparc64" - case $(get-flag mcpu) in - v9) - # We need to force at least v9a because the base build doesn't - # work with just v9. - # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 - append-flags "-Wa,-xarch=v9a" - ;; - esac - ;; - sparc-*) - case $(get-flag mcpu) in - v8|supersparc|hypersparc|leon|leon3) - cpu="sparcv8" - ;; - *) - cpu="sparcv9" - ;; - esac - ;; - esac - [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" - ;; - esac -} - -setup_flags() { - # Make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi - - # Store our CFLAGS because it's changed depending on which CTARGET - # we are building when pulling glibc on a multilib profile - CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} - CFLAGS=${CFLAGS_BASE} - CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} - CXXFLAGS=${CXXFLAGS_BASE} - ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} - ASFLAGS=${ASFLAGS_BASE} - - # Allow users to explicitly avoid flag sanitization via - # USE=custom-cflags. - if ! use custom-cflags; then - # Over-zealous CFLAGS can often cause problems. What may work for one - # person may not work for another. To avoid a large influx of bugs - # relating to failed builds, we strip most CFLAGS out to ensure as few - # problems as possible. - strip-flags - - # Allow -O2 and -O3, but nothing else for now. - # TODO: Test -Os, -Oz. - if ! is-flagq '-O@(2|3)' ; then - # Lock glibc at -O2. We want to be conservative here. - filter-flags '-O?' - append-flags -O2 - fi - fi - - strip-unsupported-flags - filter-lto - filter-flags -m32 -m64 '-mabi=*' - - # glibc aborts if rpath is set by LDFLAGS - filter-ldflags '-Wl,-rpath=*' - - # ld can't use -r & --relax at the same time, bug #788901 - # https://sourceware.org/PR27837 - filter-ldflags '-Wl,--relax' - - # Flag added for cross-prefix, but causes ldconfig to segfault. Not needed - # anyway because glibc already handles this by itself. - filter-ldflags '-Wl,--dynamic-linker=*' - - # Fails to link (bug #940709) in some cases but even if it manages to, - # subtle runtime breakage will occur because the linker scripts need - # adaptation. Mentioned in PR21557#c0. - filter-ldflags '-Wl,--gc-sections' - - # some weird software relies on sysv hashes in glibc, bug 863863, bug 864100 - # we have to do that here already so mips can filter it out again :P - if use hash-sysv-compat ; then - append-ldflags '-Wl,--hash-style=both' - fi - - # #492892 - filter-flags -frecord-gcc-switches - - # #898098 - filter-flags -fno-builtin - - # #798774 - filter-flags -fno-semantic-interposition - - # #829583 - filter-lfs-flags - - unset CBUILD_OPT CTARGET_OPT - if use multilib ; then - CTARGET_OPT=$(get_abi_CTARGET) - [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) - fi - - setup_target_flags - - if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then - CBUILD_OPT=${CTARGET_OPT} - fi - - # glibc's headers disallow -O0 and fail at build time: - # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" - # https://sourceware.org/glibc/wiki/FAQ#Why_do_I_get:.60.23error_.22glibc_cannot_be_compiled_without_optimization.22.27.2C_when_trying_to_compile_GNU_libc_with_GNU_CC.3F - replace-flags -O0 -O1 - - # Similar issues as with SSP. Can't inject yourself that early. - filter-flags '-fsanitize=*' - - # See end of bug #830454; we handle this via USE=cet - filter-flags '-fcf-protection=*' - - # When bootstrapping, we may have a situation where - # CET-enabled gcc from seed is used to build CET-disabled - # glibc. As such, gcc implicitly enables CET if no - # -fcf-protection flag is passed. For a typical package it - # should not be a problem, but for glibc it matters as it is - # dealing with CET in ld.so. So if CET is supposed to be - # disabled for glibc, be explicit about it. - if ! use cet; then - case ${ABI}-${CTARGET} in - amd64-x86_64-*|x32-x86_64-*-*-gnux32) - append-flags '-fcf-protection=none' - ;; - arm64-aarch64*) - append-flags '-mbranch-protection=none' - ;; - esac - fi -} - -use_multiarch() { - # Allow user to disable runtime arch detection in multilib. - use multiarch || return 1 - # Make sure binutils is new enough to support indirect functions, - # #336792. This funky sed supports gold and bfd linkers. - local bver nver - bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') - case $(tc-arch ${CTARGET}) in - amd64|x86) nver="2.20" ;; - arm) nver="2.22" ;; - hppa) nver="2.23" ;; - ppc|ppc64) nver="2.20" ;; - # ifunc support was added in 2.23, but glibc also needs - # machinemode which is in 2.24. - s390) nver="2.24" ;; - sparc) nver="2.21" ;; - *) return 1 ;; - esac - ver_test ${bver} -ge ${nver} -} - -# Setup toolchain variables that had historically been defined in the -# profiles for these archs. -setup_env() { - # silly users - unset LD_RUN_PATH - unset LD_ASSUME_KERNEL - - if is_crosscompile || tc-is-cross-compiler ; then - multilib_env ${CTARGET_OPT:-${CTARGET}} - - if ! use multilib ; then - MULTILIB_ABIS=${DEFAULT_ABI} - else - MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} - fi - - # If the user has CFLAGS_ in their make.conf, use that, - # and fall back on CFLAGS. - local VAR=CFLAGS_${CTARGET//[-.]/_} - CFLAGS=${!VAR-${CFLAGS}} - einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" - fi - - setup_flags - - export ABI=${ABI:-${DEFAULT_ABI:-default}} - - if just_headers ; then - # Avoid mixing host's CC and target's CFLAGS_${ABI}: - # At this bootstrap stage we have only binutils for - # target but not compiler yet. - einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." - return 0 - fi - - # glibc does not work with non-bfd (for various reasons): - # * gold (bug #269274) - # * mold (bug #860900) - tc-ld-force-bfd - - if use doc ; then - export MAKEINFO=makeinfo - else - export MAKEINFO=/dev/null - fi - - # Reset CC and CXX to the value at start of emerge - export CC=${glibc__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}} - export CXX=${glibc__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}} - export CPP=${glibc__ORIG_CPP:-${CPP:-$(tc-getCPP ${CTARGET})}} - - # and make sure glibc__ORIG_CC and glibc__ORIG_CXX is defined now. - export glibc__ORIG_CC=${CC} - export glibc__ORIG_CXX=${CXX} - export glibc__ORIG_CPP=${CPP} - - if tc-is-clang && ! use custom-cflags && ! is_crosscompile ; then - export glibc__force_gcc=yes - # once this is toggled on, it needs to stay on, since with CPP manipulated - # tc-is-clang does not work correctly anymore... - fi - - if [[ ${glibc__force_gcc} == "yes" ]] ; then - # If we are running in an otherwise clang/llvm environment, we need to - # recover the proper gcc and binutils settings here, at least until glibc - # is finally building with clang. So let's override everything that is - # set in the clang profiles. - # Want to shoot yourself into the foot? Set USE=custom-cflags, that's always - # a good start into that direction. - # Also, if you're crosscompiling, let's assume you know what you are doing. - # Hopefully. - # Last, we need the settings of the *build* environment, not of the - # target environment... - - local current_binutils_path=$(env CHOST="${CBUILD}" ROOT="${BROOT}" binutils-config -B "${CTARGET}") - local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B) - einfo "Overriding clang configuration, since it won't work here" - - export CC="${current_gcc_path}/${CTARGET}-gcc" - export CPP="${current_gcc_path}/${CTARGET}-cpp" - export CXX="${current_gcc_path}/${CTARGET}-g++" - export LD="${current_binutils_path}/ld.bfd" - export AR="${current_binutils_path}/ar" - export AS="${current_binutils_path}/as" - export NM="${current_binutils_path}/nm" - export STRIP="${current_binutils_path}/strip" - export RANLIB="${current_binutils_path}/ranlib" - export OBJCOPY="${current_binutils_path}/objcopy" - export STRINGS="${current_binutils_path}/strings" - export OBJDUMP="${current_binutils_path}/objdump" - export READELF="${current_binutils_path}/readelf" - export ADDR2LINE="${current_binutils_path}/addr2line" - - # do we need to also do flags munging here? yes! at least... - filter-flags '-fuse-ld=*' - filter-flags '-D_FORTIFY_SOURCE=*' - - else - - # this is the "normal" case - - export CC="$(tc-getCC ${CTARGET})" - export CXX="$(tc-getCXX ${CTARGET})" - export CPP="$(tc-getCPP ${CTARGET})" - - # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure - # can't detect them automatically due to ${CHOST} mismatch and fallbacks - # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup(). - export NM="$(tc-getNM ${CTARGET})" - export READELF="$(tc-getREADELF ${CTARGET})" - - fi - - # We need to export CFLAGS with abi information in them because glibc's - # configure script checks CFLAGS for some targets (like mips). Keep - # around the original clean value to avoid appending multiple ABIs on - # top of each other. (Why does the comment talk about CFLAGS if the code - # acts on CC?) - export glibc__GLIBC_CC=${CC} - export glibc__GLIBC_CXX=${CXX} - export glibc__GLIBC_CPP=${CPP} - - export glibc__abi_CFLAGS="$(get_abi_CFLAGS)" - - # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 - # To build .S (assembly) files with the same ABI-specific flags - # upstream currently recommends adding CFLAGS to CC/CXX: - # https://sourceware.org/PR23273 - # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS - # and breaks multiarch support. See 659030#c3 for an example. - # The glibc configure script doesn't properly use LDFLAGS all the time. - export CC="${glibc__GLIBC_CC} ${glibc__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}" - - # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 - export CXX="${glibc__GLIBC_CXX} ${glibc__abi_CFLAGS} ${CFLAGS}" - - export CPP="${glibc__GLIBC_CPP} ${glibc__abi_CFLAGS} ${CFLAGS}" - - if is_crosscompile; then - # Assume worst-case bootstrap: glibc is built for the first time - # with ${CTARGET}-g++ not available yet. We avoid - # building auxiliary programs that require C++: bug #683074 - # It should not affect final result. - export libc_cv_cxx_link_ok=no - # The line above has the same effect. We set CXX explicitly - # to make build logs less confusing. - export CXX= - fi -} - -foreach_abi() { - setup_env - - local ret=0 - local abilist="" - if use multilib ; then - abilist=$(get_install_abis) - else - abilist=${DEFAULT_ABI} - fi - local -x ABI - for ABI in ${abilist:-default} ; do - setup_env - einfo "Running $1 for ABI ${ABI}" - $1 - : $(( ret |= $? )) - done - return ${ret} -} - -glibc_banner() { - local b="Gentoo ${PVR}" - [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" (patchset ${PATCH_VER})" - echo "${b}" -} - -# The following Kernel version handling functions are mostly copied from portage -# source. It's better not to use linux-info.eclass here since a) it adds too -# much magic, see bug 326693 for some of the arguments, and b) some of the -# functions are just not provided. - -g_get_running_KV() { - uname -r - return $? -} - -g_KV_major() { - [[ -z $1 ]] && return 1 - local KV=$@ - echo "${KV%%.*}" -} - -g_KV_minor() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.} - echo "${KV%%.*}" -} - -g_KV_micro() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.*.} - echo "${KV%%[^[:digit:]]*}" -} - -g_KV_to_int() { - [[ -z $1 ]] && return 1 - local KV_MAJOR=$(g_KV_major "$1") - local KV_MINOR=$(g_KV_minor "$1") - local KV_MICRO=$(g_KV_micro "$1") - local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) - - # We make version 2.2.0 the minimum version we will handle as - # a sanity check ... if its less, we fail ... - if [[ ${KV_int} -ge 131584 ]] ; then - echo "${KV_int}" - return 0 - fi - return 1 -} - -g_int_to_KV() { - local version=$1 major minor micro - major=$((version / 65536)) - minor=$(((version % 65536) / 256)) - micro=$((version % 256)) - echo ${major}.${minor}.${micro} -} - -eend_KV() { - [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] - eend $? -} - -get_kheader_version() { - printf '#include \nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "${ESYSROOT}$(alt_headers)" - | \ - tail -n 1 -} - -# We collect all sanity checks here. Consistency is not guranteed between -# pkg_ and src_ phases, so we call this function both in pkg_pretend and in -# src_unpack. -sanity_prechecks() { - # Prevent native builds from downgrading - if [[ ${MERGE_TYPE} != "buildonly" ]] && \ - [[ -z ${ROOT} ]] && \ - [[ ${CBUILD} == ${CHOST} ]] && \ - [[ ${CHOST} == ${CTARGET} ]] ; then - - # The high rev # is to allow people to downgrade between -r# - # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 - # should be fine. Hopefully we never actually use a r# this - # high. - if has_version ">${CATEGORY}/${P}-r10000" ; then - eerror "Sanity check to keep you from breaking your system:" - eerror " Downgrading glibc is not supported and a sure way to destruction." - [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." - fi - - if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then - eerror "Your old kernel is broken. You need to update it to a newer" - eerror "version as syscall() will break. See bug 279260." - die "Old and broken kernel." - fi - fi - - if [[ ${CTARGET} == i386-* ]] ; then - eerror "i386 CHOSTs are no longer supported." - eerror "Chances are you don't actually want/need i386." - eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" - die "Please fix your CHOST" - fi - - if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then - ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." - ewarn "This will result in a 50% performance penalty when running with a 32bit" - ewarn "hypervisor, which is probably not what you want." - fi - - # ABI-specific checks follow here. Hey, we have a lot more specific conditions that - # we test for... - if ! is_crosscompile ; then - if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then - ebegin "Checking if the system can execute 32-bit binaries" - echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" - local STAT - if ${CC-${CHOST}-gcc} ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then - "${T}/check-ia32-emulation.elf32" - STAT=$? - else - # Don't fail here to allow single->multi ABI switch - # or recover from breakage like bug #646424 - ewarn "Failed to compile the ABI test. Broken host glibc?" - STAT=0 - fi - rm -f "${T}/check-ia32-emulation.elf32" - eend $STAT - if [[ $STAT -ne 0 ]]; then - eerror "Ensure that CONFIG_IA32_EMULATION is enabled in the kernel." - eerror "Seek support otherwise." - die "Unable to execute 32-bit binaries" - fi - fi - - fi - - # When we actually have to compile something... - if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then - if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then - # bug #833620, bug #643302 - eerror "Found ${ESYSROOT}/usr/lib/include directory!" - eerror "This is known to break glibc's build." - eerror "Please backup its contents then remove the directory." - die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" - fi - - if [[ ${CTARGET} == *-linux* ]] ; then - local run_kv build_kv want_kv - - run_kv=$(g_get_running_KV) - build_kv=$(g_int_to_KV $(get_kheader_version)) - want_kv=${MIN_KERN_VER} - - if ! is_crosscompile && ! tc-is-cross-compiler ; then - # Building fails on an non-supporting kernel - ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" - if ! eend_KV ${run_kv} ${want_kv} ; then - echo - eerror "You need a kernel of at least ${want_kv}!" - die "Kernel version too low!" - fi - fi - - # Do not run this check for pkg_pretend, just pkg_setup and friends (if we ever get used there). - # It's plausible (seen it in the wild) that Portage will (correctly) schedule a linux-headers - # upgrade before glibc, but because pkg_pretend gets run before any packages are merged at all (not - # just glibc), the whole emerge gets aborted without a good reason. We probably don't - # need to run this check at all given we have a dependency on the right headers, - # but let's leave it as-is for now. - if [[ ${EBUILD_PHASE_FUNC} != pkg_pretend ]] ; then - ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" - if ! eend_KV ${build_kv} ${want_kv} ; then - echo - eerror "You need linux-headers of at least ${want_kv}!" - die "linux-headers version too low!" - fi - fi - fi - fi -} - -upgrade_warning() { - is_crosscompile && return - - if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then - if ver_replacing -lt $(ver_cut 1-2 ${PV}); then - ewarn "After upgrading glibc, please restart all running processes." - ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)." - ewarn "Alternatively, reboot your system." - ewarn "(See bug #660556, bug #741116, bug #823756, etc)" - fi - fi -} - -# -# the phases -# - -# pkg_pretend - -pkg_pretend() { - upgrade_warning -} - -# pkg_setup - -pkg_setup() { - # see bug 682570 - [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup -} - -# src_unpack - -src_unpack() { - setup_env - - einfo "Checking general environment sanity." - sanity_prechecks - - use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz - - if [[ ${PV} == 9999* ]] ; then - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git - https://github.com/gentoo/glibc-patches.git - " - EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git - git-r3_src_unpack - mv patches-git/9999 patches || die - EGIT_REPO_URI=" - https://sourceware.org/git/glibc.git - https://git.sr.ht/~sourceware/glibc - https://gitlab.com/x86-glibc/glibc.git - " - EGIT_CHECKOUT_DIR=${S} - git-r3_src_unpack - else - unpack ${P}.tar.xz - - cd "${WORKDIR}" || die - unpack glibc-${PV}-patches-${PATCH_VER}.tar.xz - fi - - cd "${WORKDIR}" || die - use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz -} - -# src_prepare - -src_prepare() { - local patchsetname - if ! use vanilla ; then - if [[ ${PV} == 9999* ]] ; then - patchsetname="from git master" - else - patchsetname="${PV}-${PATCH_VER}" - fi - einfo "Applying Gentoo Glibc patchset ${patchsetname}" - eapply "${WORKDIR}"/patches - einfo "Done." - fi - - default - - gnuconfig_update - - cd "${WORKDIR}" || die - find . -name configure -exec touch {} + - - # Fix permissions on some of the scripts. - chmod u+x "${S}"/scripts/*.sh - - cd "${S}" || die -} - -# src_configure - -glibc_do_configure() { - dump_build_environment - - local myconf=() - - # Use '=strong' instead of '=all' to protect only functions - # worth protecting from stack smashes. - myconf+=( --enable-stack-protector=$(usex ssp strong no) ) - - # Keep a whitelist of targets supporting IFUNC. glibc's ./configure - # is not robust enough to detect proper support: - # https://bugs.gentoo.org/641216 - # https://sourceware.org/PR22634#c0 - case $(tc-arch ${CTARGET}) in - # Keep whitelist of targets where autodetection mostly works. - amd64|x86|sparc|ppc|ppc64|arm|arm64|s390|riscv|loong) ;; - # Blacklist everywhere else - *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; - esac - - case ${ABI}-${CTARGET} in - amd64-x86_64-*|x32-x86_64-*-*-gnux32) myconf+=( $(use_enable cet) ) ;; - *) ;; - esac - - [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) - - myconf+=( --enable-kernel=${MIN_KERN_VER} ) - - # Since SELinux support is only required for nscd, only enable it if: - # 1. USE selinux - # 2. only for the primary ABI on multilib systems - # 3. Not a crosscompile - if ! is_crosscompile && use selinux ; then - if use multilib ; then - if is_final_abi ; then - myconf+=( --with-selinux ) - else - myconf+=( --without-selinux ) - fi - else - myconf+=( --with-selinux ) - fi - else - myconf+=( --without-selinux ) - fi - - # Force a few tests where we always know the answer but - # configure is incapable of finding it. - if is_crosscompile ; then - export \ - libc_cv_c_cleanup=yes \ - libc_cv_forced_unwind=yes - fi - - myconf+=( - --disable-werror - --enable-bind-now - --enable-fortify-source - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - $(use_enable profile) - $(use_with gd) - --with-headers="${ESYSROOT}$(alt_headers)" - --prefix="$(host_eprefix)/usr" - --sysconfdir="$(host_eprefix)/etc" - --localstatedir="$(host_eprefix)/var" - --libdir='$(prefix)'/$(get_libdir) - --mandir='$(prefix)'/share/man - --infodir='$(prefix)'/share/info - --libexecdir='$(libdir)'/misc/glibc - --with-bugurl=https://bugs.gentoo.org/ - --with-pkgversion="$(glibc_banner)" - $(use_multiarch || echo --disable-multi-arch) - $(use_enable systemtap) - $(use_enable nscd) - - # /usr/bin/mtrace has a Perl shebang. Gentoo Prefix QA checks fail if - # Perl hasn't been installed inside the prefix yet and configure picks - # up a Perl from outside the prefix instead. configure will fail to - # execute Perl during configure if we're cross-compiling a prefix, but - # it will just disable mtrace in that case. - # Note: mtrace is needed by the test suite. - ac_cv_path_PERL="$(usex perl "${EPREFIX}"/usr/bin/perl $(usex test "${EPREFIX}"/usr/bin/perl $(usex doc "${EPREFIX}"/usr/bin/perl no)))" - - # locale data is arch-independent - # https://bugs.gentoo.org/753740 - libc_cv_complocaledir='${exec_prefix}/lib/locale' - - # On aarch64 there is no way to override -mcpu=native, and if - # the current cpu does not support SVE configure fails. - # Let's boldly assume our toolchain can always build SVE instructions. - libc_cv_aarch64_sve_asm=yes - - ${EXTRA_ECONF} - ) - - # We rely on sys-libs/timezone-data for timezone tools normally. - myconf+=( $(use_enable vanilla timezone-tools) ) - - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) - ac_cv_lib_cap_cap_init=$(usex caps || echo no) - - # There is no configure option for this and we need to export it - # since the glibc build will re-run configure on itself - export libc_cv_rootsbindir="$(host_eprefix)/sbin" - export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" - - local builddir=$(builddir nptl) - mkdir -p "${builddir}" - cd "${builddir}" - set -- "${S}"/configure "${myconf[@]}" - echo "$@" - "$@" || die "failed to configure glibc" - - # If we're trying to migrate between ABI sets, we need - # to lie and use a local copy of gcc. Like if the system - # is built with MULTILIB_ABIS="amd64 x86" but we want to - # add x32 to it, gcc/glibc don't yet support x32. - # - if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib-bootstrap ; then - echo 'int main(void){}' > "${T}"/test.c || die - if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then - sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die - fi - fi -} - -glibc_headers_configure() { - export ABI=default - - local builddir=$(builddir "headers") - mkdir -p "${builddir}" - cd "${builddir}" - - # if we don't have a compiler yet, we can't really test it now ... - # hopefully they don't affect header generation, so let's hope for - # the best here ... - local v vars=( - ac_cv_header_cpuid_h=yes - libc_cv_{386,390,alpha,arm,hppa,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes - libc_cv_asm_cfi_directives=yes - libc_cv_broken_visibility_attribute=no - libc_cv_c_cleanup=yes - libc_cv_compiler_powerpc64le_binary128_ok=yes - libc_cv_forced_unwind=yes - libc_cv_gcc___thread=yes - libc_cv_mlong_double_128=yes - libc_cv_mlong_double_128ibm=yes - libc_cv_ppc_machine=yes - libc_cv_ppc_rel16=yes - libc_cv_predef_fortify_source=no - libc_cv_target_power8_ok=yes - libc_cv_visibility_attribute=yes - libc_cv_z_combreloc=yes - libc_cv_z_execstack=yes - libc_cv_z_initfirst=yes - libc_cv_z_nodelete=yes - libc_cv_z_nodlopen=yes - libc_cv_z_relro=yes - libc_mips_abi=${ABI} - libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=no - ac_cv_lib_cap_cap_init=no - ) - - einfo "Forcing cached settings:" - for v in "${vars[@]}" ; do - einfo " ${v}" - export ${v} - done - - local headers_only_arch_CPPFLAGS=() - - # Blow away some random CC settings that screw things up. #550192 - if [[ -d ${S}/sysdeps/mips ]]; then - pushd "${S}"/sysdeps/mips >/dev/null - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die - - # Force the mips ABI to the default. This is OK because the set of - # installed headers in this phase is the same between the 3 ABIs. - # If this ever changes, this hack will break, but that's unlikely - # as glibc discourages that behavior. - # https://crbug.com/647033 - sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die - - popd >/dev/null - fi - - local myconf=() - - case ${CTARGET} in - aarch64*) - # The configure checks fail during cross-build, so disable here - # for headers-only - myconf+=( - --disable-mathvec - ) ;; - riscv*) - # RISC-V interrogates the compiler to determine which target to - # build. If building the headers then we don't strictly need a - # RISC-V compiler, so the built-in definitions that are provided - # along with all RISC-V compiler might not exist. This causes - # glibc's RISC-V preconfigure script to blow up. Since we're just - # building the headers any value will actually work here, so just - # pick the standard one (rv64g/lp64d) to make the build scripts - # happy for now -- the headers are all the same anyway so it - # doesn't matter. - headers_only_arch_CPPFLAGS+=( - -D__riscv_xlen=64 - -D__riscv_flen=64 - -D__riscv_float_abi_double=1 - -D__riscv_atomic=1 - ) ;; - esac - - myconf+=( - --disable-sanity-checks - --enable-hacker-mode - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - --with-headers="${ESYSROOT}$(alt_headers)" - --prefix="$(host_eprefix)/usr" - ${EXTRA_ECONF} - ) - - # Nothing is compiled here which would affect the headers for the target. - # So forcing CC/CFLAGS is sane. - local headers_only_CC=$(tc-getBUILD_CC) - local headers_only_CFLAGS="-O1 -pipe" - local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" - local headers_only_LDFLAGS="" - set -- "${S}"/configure "${myconf[@]}" - echo \ - "CC=${headers_only_CC}" \ - "CFLAGS=${headers_only_CFLAGS}" \ - "CPPFLAGS=${headers_only_CPPFLAGS}" \ - "LDFLAGS=${headers_only_LDFLAGS}" \ - "$@" - CC=${headers_only_CC} \ - CFLAGS=${headers_only_CFLAGS} \ - CPPFLAGS=${headers_only_CPPFLAGS} \ - LDFLAGS="" \ - "$@" || die "failed to configure glibc" -} - -do_src_configure() { - if just_headers ; then - glibc_headers_configure - else - glibc_do_configure nptl - fi -} - -src_configure() { - foreach_abi do_src_configure -} - -# src_compile - -do_src_compile() { - emake -C "$(builddir nptl)" -} - -src_compile() { - if just_headers ; then - return - fi - - foreach_abi do_src_compile -} - -# src_test - -glibc_src_test() { - cd "$(builddir nptl)" - - local myxfailparams="" - if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then - local virt=$(systemd-detect-virt 2>/dev/null) - if [[ ${virt} == systemd-nspawn ]] ; then - ewarn "Skipping extra tests because in systemd-nspawn container" - XFAIL_TEST_LIST+=( "${XFAIL_NSPAWN_TEST_LIST[@]}" ) - fi - if [[ "$(nice)" == "19" ]] ; then - # Expects to be able to increase niceness, which it can't do if - # already at the highest nice value - XFAIL_TEST_LIST+=( "tst-nice" ) - fi - - for myt in ${XFAIL_TEST_LIST[@]} ; do - myxfailparams+="test-xfail-${myt}=yes " - done - fi - - # sandbox does not understand unshare() and prevents - # writes to /proc/, which makes many tests fail - - # we give the tests a bit more time to avoid spurious - # bug reports on slow arches - - SANDBOX_ON=0 LD_PRELOAD= TIMEOUTFACTOR=16 emake ${myxfailparams} check -} - -src_test() { - if just_headers ; then - return - fi - - foreach_abi glibc_src_test || die "tests failed" -} - -# src_install - -run_locale_gen() { - # if the host locales.gen contains no entries, we'll install everything - local root="$1" - local inplace="" - - if [[ "${root}" == "--inplace-glibc" ]] ; then - inplace="--inplace-glibc" - root="$2" - fi - - local locale_list="${root%/}/etc/locale.gen" - - pushd "${ED}"/$(get_libdir) >/dev/null - - if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then - [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space" - locale_list="${root%/}/usr/share/i18n/SUPPORTED" - 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 - local mygenjobs="$(makeopts_jobs)" - if [[ "${EMERGE_FROM}" == "binary" ]] ; then - mygenjobs="$(nproc)" - fi - - set -- locale-gen ${inplace} --jobs "${mygenjobs}" --config "${locale_list}" \ - --destdir "${root}" - echo "$@" - "$@" - - popd >/dev/null -} - -glibc_do_src_install() { - local builddir=$(builddir nptl) - cd "${builddir}" - - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install - - # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support - # which come without headers etc. Only needed for binary packages since the - # external net-libs/libnsl has increased soversion. Keep only versioned libraries. - find "${D}" -name "libnsl.a" -delete - find "${D}" -name "libnsl.so" -delete - - # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need - # to infer upstream version: - # '#define VERSION "2.26.90"' -> '2.26.90' - local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) - - # Avoid stripping binaries not targeted by ${CHOST}. Or else - # ${CHOST}-strip would break binaries build for ${CTARGET}. - is_crosscompile && dostrip -x / - - # gdb thread introspection relies on local libpthreads symbols. stripping breaks it - # See Note [Disable automatic stripping] - dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so - # valgrind requires knowledge about ld.so symbols. - dostrip -x $(alt_libdir)/ld-*.so* - - if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then - # Move versioned .a file out of libdir to evade portage QA checks - # instead of using gen_usr_ldscript(). We fix ldscript as: - # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." - sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" \ - "${ED}"/$(alt_usrlibdir)/libm.a || die - dodir $(alt_usrlibdir)/${P} - mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a \ - "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die - fi - - # We configure toolchains for standalone prefix systems with a sysroot, - # which is prepended to paths in ld scripts, so strip the prefix from these. - # Before: GROUP ( /foo/lib64/libc.so.6 /foo/usr/lib64/libc_nonshared.a AS_NEEDED ( /foo/lib64/ld-linux-x86-64.so.2 ) ) - # After: GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-x86-64.so.2 ) ) - if [[ -n $(host_eprefix) ]] ; then - local file - grep -lZIF "ld script" "${ED}/$(alt_usrlibdir)"/lib*.{a,so} 2>/dev/null | while read -rd '' file ; do - sed -i "s|$(host_eprefix)/|/|g" "${file}" || die - done - fi - - # We'll take care of the cache ourselves - rm -f "${ED}"/etc/ld.so.cache - - # Everything past this point just needs to be done once ... - is_final_abi || return 0 - - # Make sure the non-native interp can be found on multilib systems even - # if the main library set isn't installed into the right place. Maybe - # we should query the active gcc for info instead of hardcoding it ? - local i ldso_abi ldso_name - local ldso_abi_list=( - # x86 - amd64 /lib64/ld-linux-x86-64.so.2 - x32 /libx32/ld-linux-x32.so.2 - x86 /lib/ld-linux.so.2 - # mips - o32 /lib/ld.so.1 - n32 /lib32/ld.so.1 - n64 /lib64/ld.so.1 - # powerpc - ppc /lib/ld.so.1 - # riscv - ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 - ilp32 /lib/ld-linux-riscv32-ilp32.so.1 - lp64d /lib/ld-linux-riscv64-lp64d.so.1 - lp64 /lib/ld-linux-riscv64-lp64.so.1 - # s390 - s390 /lib/ld.so.1 - s390x /lib/ld64.so.1 - # sparc - sparc32 /lib/ld-linux.so.2 - sparc64 /lib64/ld-linux.so.2 - ) - case $(tc-endian) in - little) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64.so.1 - # ELFv2 (glibc does not support ELFv1 on LE) - ppc64 /lib64/ld64.so.2 - ) - ;; - big) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64_be.so.1 - # ELFv1 (glibc does not support ELFv2 on BE) - ppc64 /lib64/ld64.so.1 - ) - ;; - esac - if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then - dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib - fi - for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do - ldso_abi=${ldso_abi_list[i]} - has ${ldso_abi} $(get_install_abis) || continue - - ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" - if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then - dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} - fi - done - - # In the LSB 5.0 definition, someone had the excellent idea to "standardize" - # the runtime loader name, see also https://xkcd.com/927/ - # Normally, in Gentoo one should never come across executables that require this. - # However, binary commercial packages are known to adhere to weird practices. - # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB - local lsb_ldso_name native_ldso_name lsb_ldso_abi - local lsb_ldso_abi_list=( - # x86 - amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 - ) - for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do - lsb_ldso_abi=${lsb_ldso_abi_list[i]} - native_ldso_name=${lsb_ldso_abi_list[i+1]} - lsb_ldso_name=${lsb_ldso_abi_list[i+2]} - has ${lsb_ldso_abi} $(get_install_abis) || continue - - if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then - dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}" - fi - done - - # With devpts under Linux mounted properly, we do not need the pt_chown - # binary to be setuid. This is because the default owners/perms will be - # exactly what we want. - if ! use suid ; then - find "${ED}" -name pt_chown -exec chmod -s {} + - fi - - ################################################################# - # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # - ################################################################# - - # Make sure we install some symlink hacks so that when we build - # a 2nd stage cross-compiler, gcc finds the target system - # headers correctly. See gcc/doc/gccinstall.info - if is_crosscompile ; then - # We need to make sure that /lib and /usr/lib always exists. - # gcc likes to use relative paths to get to its multilibs like - # /usr/lib/../lib64/. So while we don't install any files into - # /usr/lib/, we do need it to exist. - keepdir $(alt_prefix)/lib - keepdir $(alt_prefix)/usr/lib - - dosym usr/include $(alt_prefix)/sys-include - return 0 - fi - - # Files for Debian-style locale updating - dodir /usr/share/i18n - sed \ - -e "/^#/d" \ - -e "/SUPPORTED-LOCALES=/d" \ - -e "s: \\\\::g" -e "s:/: :g" \ - "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ - || die "generating /usr/share/i18n/SUPPORTED failed" - - cd "${S}" || die - - # Install misc network config files - insinto /etc - doins posix/gai.conf - - if use systemd ; then - doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf" - else - doins nss/nsswitch.conf - fi - - # Gentoo-specific - newins "${FILESDIR}"/host.conf-1 host.conf - - if use nscd ; then - doins nscd/nscd.conf - - newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd - - local nscd_args=( - -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" - ) - - sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd - - use systemd && systemd_dounit nscd/nscd.service - newtmpfiles nscd/nscd.tmpfiles nscd.conf - fi - - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc - doenvd "${T}"/00glibc - - for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do - [[ -s ${d} ]] && dodoc ${d} - done - dodoc -r ChangeLog.old - - # Prevent overwriting of the /etc/localtime symlink. We'll handle the - # creation of the "factory" symlink in pkg_postinst(). - rm -f "${ED}"/etc/localtime - - # Generate all locales if this is a native build as locale generation - if use compile-locales && ! is_crosscompile ; then - run_locale_gen --inplace-glibc "${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 - - use compile-locales || run_locale_gen "${EROOT}/" - - # 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.41-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.41-r4.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.41-r2.ebuild rename to sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.41-r4.ebuild index 25bdeed5154..d4c9fa6db4d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.41-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.41-r4.ebuild @@ -12,7 +12,7 @@ TMPFILES_OPTIONAL=1 EMULTILIB_PKG="true" # Gentoo patchset (ignored for live ebuilds) -PATCH_VER=3 +PATCH_VER=6 PATCH_DEV=dilfridge # gcc mulitilib bootstrap files version diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.41.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.41.ebuild deleted file mode 100644 index 68691e0cd0b..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.41.ebuild +++ /dev/null @@ -1,1759 +0,0 @@ -# Copyright 1999-2025 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_{10..13} ) -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 - -# 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" - -inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ - multilib systemd multiprocessing tmpfiles eapi9-ver - -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://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 +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 - ) - test? ( - dev-lang/perl - >=net-dns/libidn2-2.3.0 - sys-apps/gawk[mpfr] - ) -" -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 - do_compile_test "" "$@" 2>/dev/null || return 0 - else - ebegin "Performing simple compile test for ABI=${ABI}" - if ! do_compile_test "" "$@" ; then - ewarn "Simple build failed ... assuming this is desired #324685" - eend 1 - return 0 - else - eend 0 - fi - fi - - pushd "${T}" >/dev/null - - ./glibc-test - ret=$? - rm -f glibc-test* - - popd >/dev/null - - return ${ret} -} - -setup_target_flags() { - # This largely mucks with compiler flags. None of which should matter - # when building up just the headers. - just_headers && return 0 - - case $(tc-arch) in - x86) - # -march needed for #185404 #199334 - # TODO: When creating the first glibc cross-compile, this test will - # always fail as it does a full link which in turn requires glibc. - # Probably also applies when changing multilib profile settings (e.g. - # enabling x86 when the profile was amd64-only previously). - # We could change main to _start and pass -nostdlib here so that we - # only test the gcc code compilation. Or we could do a compile and - # then look for the symbol via scanelf. - if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - filter-flags '-march=*' - export CFLAGS="-march=${t} ${CFLAGS}" - einfo "Auto adding -march=${t} to CFLAGS #185404" - fi - # For compatibility with older binaries at slight performance cost. - use stack-realign && export CFLAGS+=" -mstackrealign" - ;; - amd64) - # -march needed for #185404 #199334 - # TODO: See cross-compile issues listed above for x86. - if [[ ${ABI} == x86 ]]; then - if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - # Normally the target is x86_64-xxx, so turn that into the -march that - # gcc actually accepts. #528708 - [[ ${t} == "x86_64" ]] && t="x86-64" - filter-flags '-march=*' - # ugly, ugly, ugly. ugly. - CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") - export CFLAGS_x86="${CFLAGS_x86} -march=${t}" - einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" - fi - # For compatibility with older binaries at slight performance cost. - use stack-realign && export CFLAGS_x86+=" -mstackrealign" - fi - ;; - mips) - # The mips abi cannot support the GNU style hashes. #233233 - filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both - ;; - ppc|ppc64) - # Many arch-specific implementations do not work on ppc with - # cache-block not equal to 128 bytes. This breaks memset: - # https://sourceware.org/PR26522 - # https://bugs.gentoo.org/737996 - # Use default -mcpu=. For ppc it means non-multiarch setup. - filter-flags '-mcpu=*' - ;; - sparc) - # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. - filter-flags "-fcall-used-g7" - append-flags "-fcall-used-g6" - - local cpu - case ${CTARGET} in - sparc64-*) - cpu="sparc64" - case $(get-flag mcpu) in - v9) - # We need to force at least v9a because the base build doesn't - # work with just v9. - # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 - append-flags "-Wa,-xarch=v9a" - ;; - esac - ;; - sparc-*) - case $(get-flag mcpu) in - v8|supersparc|hypersparc|leon|leon3) - cpu="sparcv8" - ;; - *) - cpu="sparcv9" - ;; - esac - ;; - esac - [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" - ;; - esac -} - -setup_flags() { - # Make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi - - # Store our CFLAGS because it's changed depending on which CTARGET - # we are building when pulling glibc on a multilib profile - CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} - CFLAGS=${CFLAGS_BASE} - CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} - CXXFLAGS=${CXXFLAGS_BASE} - ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} - ASFLAGS=${ASFLAGS_BASE} - - # Allow users to explicitly avoid flag sanitization via - # USE=custom-cflags. - if ! use custom-cflags; then - # Over-zealous CFLAGS can often cause problems. What may work for one - # person may not work for another. To avoid a large influx of bugs - # relating to failed builds, we strip most CFLAGS out to ensure as few - # problems as possible. - strip-flags - - # Allow -O2 and -O3, but nothing else for now. - # TODO: Test -Os, -Oz. - if ! is-flagq '-O@(2|3)' ; then - # Lock glibc at -O2. We want to be conservative here. - filter-flags '-O?' - append-flags -O2 - fi - fi - - strip-unsupported-flags - filter-lto - filter-flags -m32 -m64 '-mabi=*' - - # glibc aborts if rpath is set by LDFLAGS - filter-ldflags '-Wl,-rpath=*' - - # ld can't use -r & --relax at the same time, bug #788901 - # https://sourceware.org/PR27837 - filter-ldflags '-Wl,--relax' - - # Flag added for cross-prefix, but causes ldconfig to segfault. Not needed - # anyway because glibc already handles this by itself. - filter-ldflags '-Wl,--dynamic-linker=*' - - # Fails to link (bug #940709) in some cases but even if it manages to, - # subtle runtime breakage will occur because the linker scripts need - # adaptation. Mentioned in PR21557#c0. - filter-ldflags '-Wl,--gc-sections' - - # some weird software relies on sysv hashes in glibc, bug 863863, bug 864100 - # we have to do that here already so mips can filter it out again :P - if use hash-sysv-compat ; then - append-ldflags '-Wl,--hash-style=both' - fi - - # #492892 - filter-flags -frecord-gcc-switches - - # #898098 - filter-flags -fno-builtin - - # #798774 - filter-flags -fno-semantic-interposition - - # #829583 - filter-lfs-flags - - unset CBUILD_OPT CTARGET_OPT - if use multilib ; then - CTARGET_OPT=$(get_abi_CTARGET) - [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) - fi - - setup_target_flags - - if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then - CBUILD_OPT=${CTARGET_OPT} - fi - - # glibc's headers disallow -O0 and fail at build time: - # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" - # https://sourceware.org/glibc/wiki/FAQ#Why_do_I_get:.60.23error_.22glibc_cannot_be_compiled_without_optimization.22.27.2C_when_trying_to_compile_GNU_libc_with_GNU_CC.3F - replace-flags -O0 -O1 - - # Similar issues as with SSP. Can't inject yourself that early. - filter-flags '-fsanitize=*' - - # See end of bug #830454; we handle this via USE=cet - filter-flags '-fcf-protection=*' - - # When bootstrapping, we may have a situation where - # CET-enabled gcc from seed is used to build CET-disabled - # glibc. As such, gcc implicitly enables CET if no - # -fcf-protection flag is passed. For a typical package it - # should not be a problem, but for glibc it matters as it is - # dealing with CET in ld.so. So if CET is supposed to be - # disabled for glibc, be explicit about it. - if ! use cet; then - case ${ABI}-${CTARGET} in - amd64-x86_64-*|x32-x86_64-*-*-gnux32) - append-flags '-fcf-protection=none' - ;; - arm64-aarch64*) - append-flags '-mbranch-protection=none' - ;; - esac - fi -} - -use_multiarch() { - # Allow user to disable runtime arch detection in multilib. - use multiarch || return 1 - # Make sure binutils is new enough to support indirect functions, - # #336792. This funky sed supports gold and bfd linkers. - local bver nver - bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') - case $(tc-arch ${CTARGET}) in - amd64|x86) nver="2.20" ;; - arm) nver="2.22" ;; - hppa) nver="2.23" ;; - ppc|ppc64) nver="2.20" ;; - # ifunc support was added in 2.23, but glibc also needs - # machinemode which is in 2.24. - s390) nver="2.24" ;; - sparc) nver="2.21" ;; - *) return 1 ;; - esac - ver_test ${bver} -ge ${nver} -} - -# Setup toolchain variables that had historically been defined in the -# profiles for these archs. -setup_env() { - # silly users - unset LD_RUN_PATH - unset LD_ASSUME_KERNEL - - if is_crosscompile || tc-is-cross-compiler ; then - multilib_env ${CTARGET_OPT:-${CTARGET}} - - if ! use multilib ; then - MULTILIB_ABIS=${DEFAULT_ABI} - else - MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} - fi - - # If the user has CFLAGS_ in their make.conf, use that, - # and fall back on CFLAGS. - local VAR=CFLAGS_${CTARGET//[-.]/_} - CFLAGS=${!VAR-${CFLAGS}} - einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" - fi - - setup_flags - - export ABI=${ABI:-${DEFAULT_ABI:-default}} - - if just_headers ; then - # Avoid mixing host's CC and target's CFLAGS_${ABI}: - # At this bootstrap stage we have only binutils for - # target but not compiler yet. - einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." - return 0 - fi - - # glibc does not work with non-bfd (for various reasons): - # * gold (bug #269274) - # * mold (bug #860900) - tc-ld-force-bfd - - if use doc ; then - export MAKEINFO=makeinfo - else - export MAKEINFO=/dev/null - fi - - # Reset CC and CXX to the value at start of emerge - export CC=${glibc__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}} - export CXX=${glibc__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}} - export CPP=${glibc__ORIG_CPP:-${CPP:-$(tc-getCPP ${CTARGET})}} - - # and make sure glibc__ORIG_CC and glibc__ORIG_CXX is defined now. - export glibc__ORIG_CC=${CC} - export glibc__ORIG_CXX=${CXX} - export glibc__ORIG_CPP=${CPP} - - if tc-is-clang && ! use custom-cflags && ! is_crosscompile ; then - export glibc__force_gcc=yes - # once this is toggled on, it needs to stay on, since with CPP manipulated - # tc-is-clang does not work correctly anymore... - fi - - if [[ ${glibc__force_gcc} == "yes" ]] ; then - # If we are running in an otherwise clang/llvm environment, we need to - # recover the proper gcc and binutils settings here, at least until glibc - # is finally building with clang. So let's override everything that is - # set in the clang profiles. - # Want to shoot yourself into the foot? Set USE=custom-cflags, that's always - # a good start into that direction. - # Also, if you're crosscompiling, let's assume you know what you are doing. - # Hopefully. - # Last, we need the settings of the *build* environment, not of the - # target environment... - - local current_binutils_path=$(env CHOST="${CBUILD}" ROOT="${BROOT}" binutils-config -B "${CTARGET}") - local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B) - einfo "Overriding clang configuration, since it won't work here" - - export CC="${current_gcc_path}/${CTARGET}-gcc" - export CPP="${current_gcc_path}/${CTARGET}-cpp" - export CXX="${current_gcc_path}/${CTARGET}-g++" - export LD="${current_binutils_path}/ld.bfd" - export AR="${current_binutils_path}/ar" - export AS="${current_binutils_path}/as" - export NM="${current_binutils_path}/nm" - export STRIP="${current_binutils_path}/strip" - export RANLIB="${current_binutils_path}/ranlib" - export OBJCOPY="${current_binutils_path}/objcopy" - export STRINGS="${current_binutils_path}/strings" - export OBJDUMP="${current_binutils_path}/objdump" - export READELF="${current_binutils_path}/readelf" - export ADDR2LINE="${current_binutils_path}/addr2line" - - # do we need to also do flags munging here? yes! at least... - filter-flags '-fuse-ld=*' - filter-flags '-D_FORTIFY_SOURCE=*' - - else - - # this is the "normal" case - - export CC="$(tc-getCC ${CTARGET})" - export CXX="$(tc-getCXX ${CTARGET})" - export CPP="$(tc-getCPP ${CTARGET})" - - # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure - # can't detect them automatically due to ${CHOST} mismatch and fallbacks - # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup(). - export NM="$(tc-getNM ${CTARGET})" - export READELF="$(tc-getREADELF ${CTARGET})" - - fi - - # We need to export CFLAGS with abi information in them because glibc's - # configure script checks CFLAGS for some targets (like mips). Keep - # around the original clean value to avoid appending multiple ABIs on - # top of each other. (Why does the comment talk about CFLAGS if the code - # acts on CC?) - export glibc__GLIBC_CC=${CC} - export glibc__GLIBC_CXX=${CXX} - export glibc__GLIBC_CPP=${CPP} - - export glibc__abi_CFLAGS="$(get_abi_CFLAGS)" - - # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 - # To build .S (assembly) files with the same ABI-specific flags - # upstream currently recommends adding CFLAGS to CC/CXX: - # https://sourceware.org/PR23273 - # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS - # and breaks multiarch support. See 659030#c3 for an example. - # The glibc configure script doesn't properly use LDFLAGS all the time. - export CC="${glibc__GLIBC_CC} ${glibc__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}" - - # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 - export CXX="${glibc__GLIBC_CXX} ${glibc__abi_CFLAGS} ${CFLAGS}" - - export CPP="${glibc__GLIBC_CPP} ${glibc__abi_CFLAGS} ${CFLAGS}" - - if is_crosscompile; then - # Assume worst-case bootstrap: glibc is built for the first time - # with ${CTARGET}-g++ not available yet. We avoid - # building auxiliary programs that require C++: bug #683074 - # It should not affect final result. - export libc_cv_cxx_link_ok=no - # The line above has the same effect. We set CXX explicitly - # to make build logs less confusing. - export CXX= - fi -} - -foreach_abi() { - setup_env - - local ret=0 - local abilist="" - if use multilib ; then - abilist=$(get_install_abis) - else - abilist=${DEFAULT_ABI} - fi - local -x ABI - for ABI in ${abilist:-default} ; do - setup_env - einfo "Running $1 for ABI ${ABI}" - $1 - : $(( ret |= $? )) - done - return ${ret} -} - -glibc_banner() { - local b="Gentoo ${PVR}" - [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" (patchset ${PATCH_VER})" - echo "${b}" -} - -# The following Kernel version handling functions are mostly copied from portage -# source. It's better not to use linux-info.eclass here since a) it adds too -# much magic, see bug 326693 for some of the arguments, and b) some of the -# functions are just not provided. - -g_get_running_KV() { - uname -r - return $? -} - -g_KV_major() { - [[ -z $1 ]] && return 1 - local KV=$@ - echo "${KV%%.*}" -} - -g_KV_minor() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.} - echo "${KV%%.*}" -} - -g_KV_micro() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.*.} - echo "${KV%%[^[:digit:]]*}" -} - -g_KV_to_int() { - [[ -z $1 ]] && return 1 - local KV_MAJOR=$(g_KV_major "$1") - local KV_MINOR=$(g_KV_minor "$1") - local KV_MICRO=$(g_KV_micro "$1") - local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) - - # We make version 2.2.0 the minimum version we will handle as - # a sanity check ... if its less, we fail ... - if [[ ${KV_int} -ge 131584 ]] ; then - echo "${KV_int}" - return 0 - fi - return 1 -} - -g_int_to_KV() { - local version=$1 major minor micro - major=$((version / 65536)) - minor=$(((version % 65536) / 256)) - micro=$((version % 256)) - echo ${major}.${minor}.${micro} -} - -eend_KV() { - [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] - eend $? -} - -get_kheader_version() { - printf '#include \nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "${ESYSROOT}$(alt_headers)" - | \ - tail -n 1 -} - -# We collect all sanity checks here. Consistency is not guranteed between -# pkg_ and src_ phases, so we call this function both in pkg_pretend and in -# src_unpack. -sanity_prechecks() { - # Prevent native builds from downgrading - if [[ ${MERGE_TYPE} != "buildonly" ]] && \ - [[ -z ${ROOT} ]] && \ - [[ ${CBUILD} == ${CHOST} ]] && \ - [[ ${CHOST} == ${CTARGET} ]] ; then - - # The high rev # is to allow people to downgrade between -r# - # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 - # should be fine. Hopefully we never actually use a r# this - # high. - if has_version ">${CATEGORY}/${P}-r10000" ; then - eerror "Sanity check to keep you from breaking your system:" - eerror " Downgrading glibc is not supported and a sure way to destruction." - [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." - fi - - if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then - eerror "Your old kernel is broken. You need to update it to a newer" - eerror "version as syscall() will break. See bug 279260." - die "Old and broken kernel." - fi - fi - - if [[ ${CTARGET} == i386-* ]] ; then - eerror "i386 CHOSTs are no longer supported." - eerror "Chances are you don't actually want/need i386." - eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" - die "Please fix your CHOST" - fi - - if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then - ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." - ewarn "This will result in a 50% performance penalty when running with a 32bit" - ewarn "hypervisor, which is probably not what you want." - fi - - # ABI-specific checks follow here. Hey, we have a lot more specific conditions that - # we test for... - if ! is_crosscompile ; then - if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then - ebegin "Checking if the system can execute 32-bit binaries" - echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" - local STAT - if ${CC-${CHOST}-gcc} ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then - "${T}/check-ia32-emulation.elf32" - STAT=$? - else - # Don't fail here to allow single->multi ABI switch - # or recover from breakage like bug #646424 - ewarn "Failed to compile the ABI test. Broken host glibc?" - STAT=0 - fi - rm -f "${T}/check-ia32-emulation.elf32" - eend $STAT - if [[ $STAT -ne 0 ]]; then - eerror "Ensure that CONFIG_IA32_EMULATION is enabled in the kernel." - eerror "Seek support otherwise." - die "Unable to execute 32-bit binaries" - fi - fi - - fi - - # When we actually have to compile something... - if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then - if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then - # bug #833620, bug #643302 - eerror "Found ${ESYSROOT}/usr/lib/include directory!" - eerror "This is known to break glibc's build." - eerror "Please backup its contents then remove the directory." - die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" - fi - - if [[ ${CTARGET} == *-linux* ]] ; then - local run_kv build_kv want_kv - - run_kv=$(g_get_running_KV) - build_kv=$(g_int_to_KV $(get_kheader_version)) - want_kv=${MIN_KERN_VER} - - if ! is_crosscompile && ! tc-is-cross-compiler ; then - # Building fails on an non-supporting kernel - ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" - if ! eend_KV ${run_kv} ${want_kv} ; then - echo - eerror "You need a kernel of at least ${want_kv}!" - die "Kernel version too low!" - fi - fi - - # Do not run this check for pkg_pretend, just pkg_setup and friends (if we ever get used there). - # It's plausible (seen it in the wild) that Portage will (correctly) schedule a linux-headers - # upgrade before glibc, but because pkg_pretend gets run before any packages are merged at all (not - # just glibc), the whole emerge gets aborted without a good reason. We probably don't - # need to run this check at all given we have a dependency on the right headers, - # but let's leave it as-is for now. - if [[ ${EBUILD_PHASE_FUNC} != pkg_pretend ]] ; then - ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" - if ! eend_KV ${build_kv} ${want_kv} ; then - echo - eerror "You need linux-headers of at least ${want_kv}!" - die "linux-headers version too low!" - fi - fi - fi - fi -} - -upgrade_warning() { - is_crosscompile && return - - if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then - if ver_replacing -lt $(ver_cut 1-2 ${PV}); then - ewarn "After upgrading glibc, please restart all running processes." - ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)." - ewarn "Alternatively, reboot your system." - ewarn "(See bug #660556, bug #741116, bug #823756, etc)" - fi - fi -} - -# -# the phases -# - -# pkg_pretend - -pkg_pretend() { - upgrade_warning -} - -# pkg_setup - -pkg_setup() { - # see bug 682570 - [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup -} - -# src_unpack - -src_unpack() { - setup_env - - einfo "Checking general environment sanity." - sanity_prechecks - - use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz - - if [[ ${PV} == 9999* ]] ; then - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git - https://github.com/gentoo/glibc-patches.git - " - EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git - git-r3_src_unpack - mv patches-git/9999 patches || die - EGIT_REPO_URI=" - https://sourceware.org/git/glibc.git - https://git.sr.ht/~sourceware/glibc - https://gitlab.com/x86-glibc/glibc.git - " - EGIT_CHECKOUT_DIR=${S} - git-r3_src_unpack - else - unpack ${P}.tar.xz - - cd "${WORKDIR}" || die - unpack glibc-${PV}-patches-${PATCH_VER}.tar.xz - fi - - cd "${WORKDIR}" || die - use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz -} - -# src_prepare - -src_prepare() { - local patchsetname - if ! use vanilla ; then - if [[ ${PV} == 9999* ]] ; then - patchsetname="from git master" - else - patchsetname="${PV}-${PATCH_VER}" - fi - einfo "Applying Gentoo Glibc patchset ${patchsetname}" - eapply "${WORKDIR}"/patches - einfo "Done." - fi - - default - - gnuconfig_update - - cd "${WORKDIR}" || die - find . -name configure -exec touch {} + - - # Fix permissions on some of the scripts. - chmod u+x "${S}"/scripts/*.sh - - cd "${S}" || die -} - -# src_configure - -glibc_do_configure() { - dump_build_environment - - local myconf=() - - # Use '=strong' instead of '=all' to protect only functions - # worth protecting from stack smashes. - myconf+=( --enable-stack-protector=$(usex ssp strong no) ) - - # Keep a whitelist of targets supporting IFUNC. glibc's ./configure - # is not robust enough to detect proper support: - # https://bugs.gentoo.org/641216 - # https://sourceware.org/PR22634#c0 - case $(tc-arch ${CTARGET}) in - # Keep whitelist of targets where autodetection mostly works. - amd64|x86|sparc|ppc|ppc64|arm|arm64|s390|riscv|loong) ;; - # Blacklist everywhere else - *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; - esac - - case ${ABI}-${CTARGET} in - amd64-x86_64-*|x32-x86_64-*-*-gnux32) myconf+=( $(use_enable cet) ) ;; - *) ;; - esac - - [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) - - myconf+=( --enable-kernel=${MIN_KERN_VER} ) - - # Since SELinux support is only required for nscd, only enable it if: - # 1. USE selinux - # 2. only for the primary ABI on multilib systems - # 3. Not a crosscompile - if ! is_crosscompile && use selinux ; then - if use multilib ; then - if is_final_abi ; then - myconf+=( --with-selinux ) - else - myconf+=( --without-selinux ) - fi - else - myconf+=( --with-selinux ) - fi - else - myconf+=( --without-selinux ) - fi - - # Force a few tests where we always know the answer but - # configure is incapable of finding it. - if is_crosscompile ; then - export \ - libc_cv_c_cleanup=yes \ - libc_cv_forced_unwind=yes - fi - - myconf+=( - --disable-werror - --enable-bind-now - --enable-fortify-source - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - $(use_enable profile) - $(use_with gd) - --with-headers="${ESYSROOT}$(alt_headers)" - --prefix="$(host_eprefix)/usr" - --sysconfdir="$(host_eprefix)/etc" - --localstatedir="$(host_eprefix)/var" - --libdir='$(prefix)'/$(get_libdir) - --mandir='$(prefix)'/share/man - --infodir='$(prefix)'/share/info - --libexecdir='$(libdir)'/misc/glibc - --with-bugurl=https://bugs.gentoo.org/ - --with-pkgversion="$(glibc_banner)" - $(use_multiarch || echo --disable-multi-arch) - $(use_enable systemtap) - $(use_enable nscd) - - # /usr/bin/mtrace has a Perl shebang. Gentoo Prefix QA checks fail if - # Perl hasn't been installed inside the prefix yet and configure picks - # up a Perl from outside the prefix instead. configure will fail to - # execute Perl during configure if we're cross-compiling a prefix, but - # it will just disable mtrace in that case. - # Note: mtrace is needed by the test suite. - ac_cv_path_PERL="$(usex perl "${EPREFIX}"/usr/bin/perl $(usex test "${EPREFIX}"/usr/bin/perl $(usex doc "${EPREFIX}"/usr/bin/perl no)))" - - # locale data is arch-independent - # https://bugs.gentoo.org/753740 - libc_cv_complocaledir='${exec_prefix}/lib/locale' - - # On aarch64 there is no way to override -mcpu=native, and if - # the current cpu does not support SVE configure fails. - # Let's boldly assume our toolchain can always build SVE instructions. - libc_cv_aarch64_sve_asm=yes - - ${EXTRA_ECONF} - ) - - # We rely on sys-libs/timezone-data for timezone tools normally. - myconf+=( $(use_enable vanilla timezone-tools) ) - - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) - ac_cv_lib_cap_cap_init=$(usex caps || echo no) - - # There is no configure option for this and we need to export it - # since the glibc build will re-run configure on itself - export libc_cv_rootsbindir="$(host_eprefix)/sbin" - export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" - - local builddir=$(builddir nptl) - mkdir -p "${builddir}" - cd "${builddir}" - set -- "${S}"/configure "${myconf[@]}" - echo "$@" - "$@" || die "failed to configure glibc" - - # If we're trying to migrate between ABI sets, we need - # to lie and use a local copy of gcc. Like if the system - # is built with MULTILIB_ABIS="amd64 x86" but we want to - # add x32 to it, gcc/glibc don't yet support x32. - # - if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib-bootstrap ; then - echo 'int main(void){}' > "${T}"/test.c || die - if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then - sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die - fi - fi -} - -glibc_headers_configure() { - export ABI=default - - local builddir=$(builddir "headers") - mkdir -p "${builddir}" - cd "${builddir}" - - # if we don't have a compiler yet, we can't really test it now ... - # hopefully they don't affect header generation, so let's hope for - # the best here ... - local v vars=( - ac_cv_header_cpuid_h=yes - libc_cv_{386,390,alpha,arm,hppa,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes - libc_cv_asm_cfi_directives=yes - libc_cv_broken_visibility_attribute=no - libc_cv_c_cleanup=yes - libc_cv_compiler_powerpc64le_binary128_ok=yes - libc_cv_forced_unwind=yes - libc_cv_gcc___thread=yes - libc_cv_mlong_double_128=yes - libc_cv_mlong_double_128ibm=yes - libc_cv_ppc_machine=yes - libc_cv_ppc_rel16=yes - libc_cv_predef_fortify_source=no - libc_cv_target_power8_ok=yes - libc_cv_visibility_attribute=yes - libc_cv_z_combreloc=yes - libc_cv_z_execstack=yes - libc_cv_z_initfirst=yes - libc_cv_z_nodelete=yes - libc_cv_z_nodlopen=yes - libc_cv_z_relro=yes - libc_mips_abi=${ABI} - libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=no - ac_cv_lib_cap_cap_init=no - ) - - einfo "Forcing cached settings:" - for v in "${vars[@]}" ; do - einfo " ${v}" - export ${v} - done - - local headers_only_arch_CPPFLAGS=() - - # Blow away some random CC settings that screw things up. #550192 - if [[ -d ${S}/sysdeps/mips ]]; then - pushd "${S}"/sysdeps/mips >/dev/null - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die - - # Force the mips ABI to the default. This is OK because the set of - # installed headers in this phase is the same between the 3 ABIs. - # If this ever changes, this hack will break, but that's unlikely - # as glibc discourages that behavior. - # https://crbug.com/647033 - sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die - - popd >/dev/null - fi - - local myconf=() - - case ${CTARGET} in - aarch64*) - # The configure checks fail during cross-build, so disable here - # for headers-only - myconf+=( - --disable-mathvec - ) ;; - riscv*) - # RISC-V interrogates the compiler to determine which target to - # build. If building the headers then we don't strictly need a - # RISC-V compiler, so the built-in definitions that are provided - # along with all RISC-V compiler might not exist. This causes - # glibc's RISC-V preconfigure script to blow up. Since we're just - # building the headers any value will actually work here, so just - # pick the standard one (rv64g/lp64d) to make the build scripts - # happy for now -- the headers are all the same anyway so it - # doesn't matter. - headers_only_arch_CPPFLAGS+=( - -D__riscv_xlen=64 - -D__riscv_flen=64 - -D__riscv_float_abi_double=1 - -D__riscv_atomic=1 - ) ;; - esac - - myconf+=( - --disable-sanity-checks - --enable-hacker-mode - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - --with-headers="${ESYSROOT}$(alt_headers)" - --prefix="$(host_eprefix)/usr" - ${EXTRA_ECONF} - ) - - # Nothing is compiled here which would affect the headers for the target. - # So forcing CC/CFLAGS is sane. - local headers_only_CC=$(tc-getBUILD_CC) - local headers_only_CFLAGS="-O1 -pipe" - local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" - local headers_only_LDFLAGS="" - set -- "${S}"/configure "${myconf[@]}" - echo \ - "CC=${headers_only_CC}" \ - "CFLAGS=${headers_only_CFLAGS}" \ - "CPPFLAGS=${headers_only_CPPFLAGS}" \ - "LDFLAGS=${headers_only_LDFLAGS}" \ - "$@" - CC=${headers_only_CC} \ - CFLAGS=${headers_only_CFLAGS} \ - CPPFLAGS=${headers_only_CPPFLAGS} \ - LDFLAGS="" \ - "$@" || die "failed to configure glibc" -} - -do_src_configure() { - if just_headers ; then - glibc_headers_configure - else - glibc_do_configure nptl - fi -} - -src_configure() { - foreach_abi do_src_configure -} - -# src_compile - -do_src_compile() { - emake -C "$(builddir nptl)" -} - -src_compile() { - if just_headers ; then - return - fi - - foreach_abi do_src_compile -} - -# src_test - -glibc_src_test() { - cd "$(builddir nptl)" - - local myxfailparams="" - if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then - local virt=$(systemd-detect-virt 2>/dev/null) - if [[ ${virt} == systemd-nspawn ]] ; then - ewarn "Skipping extra tests because in systemd-nspawn container" - XFAIL_TEST_LIST+=( "${XFAIL_NSPAWN_TEST_LIST[@]}" ) - fi - if [[ "$(nice)" == "19" ]] ; then - # Expects to be able to increase niceness, which it can't do if - # already at the highest nice value - XFAIL_TEST_LIST+=( "tst-nice" ) - fi - - for myt in ${XFAIL_TEST_LIST[@]} ; do - myxfailparams+="test-xfail-${myt}=yes " - done - fi - - # sandbox does not understand unshare() and prevents - # writes to /proc/, which makes many tests fail - - # we give the tests a bit more time to avoid spurious - # bug reports on slow arches - - SANDBOX_ON=0 LD_PRELOAD= TIMEOUTFACTOR=16 emake ${myxfailparams} check -} - -src_test() { - if just_headers ; then - return - fi - - foreach_abi glibc_src_test || die "tests failed" -} - -# src_install - -run_locale_gen() { - # if the host locales.gen contains no entries, we'll install everything - local root="$1" - local inplace="" - - if [[ "${root}" == "--inplace-glibc" ]] ; then - inplace="--inplace-glibc" - root="$2" - fi - - local locale_list="${root%/}/etc/locale.gen" - - pushd "${ED}"/$(get_libdir) >/dev/null - - if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then - [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space" - locale_list="${root%/}/usr/share/i18n/SUPPORTED" - 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 - local mygenjobs="$(makeopts_jobs)" - if [[ "${EMERGE_FROM}" == "binary" ]] ; then - mygenjobs="$(nproc)" - fi - - set -- locale-gen ${inplace} --jobs "${mygenjobs}" --config "${locale_list}" \ - --destdir "${root}" - echo "$@" - "$@" - - popd >/dev/null -} - -glibc_do_src_install() { - local builddir=$(builddir nptl) - cd "${builddir}" - - emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install - - # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support - # which come without headers etc. Only needed for binary packages since the - # external net-libs/libnsl has increased soversion. Keep only versioned libraries. - find "${D}" -name "libnsl.a" -delete - find "${D}" -name "libnsl.so" -delete - - # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need - # to infer upstream version: - # '#define VERSION "2.26.90"' -> '2.26.90' - local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) - - # Avoid stripping binaries not targeted by ${CHOST}. Or else - # ${CHOST}-strip would break binaries build for ${CTARGET}. - is_crosscompile && dostrip -x / - - # gdb thread introspection relies on local libpthreads symbols. stripping breaks it - # See Note [Disable automatic stripping] - dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so - # valgrind requires knowledge about ld.so symbols. - dostrip -x $(alt_libdir)/ld-*.so* - - if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then - # Move versioned .a file out of libdir to evade portage QA checks - # instead of using gen_usr_ldscript(). We fix ldscript as: - # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." - sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" \ - "${ED}"/$(alt_usrlibdir)/libm.a || die - dodir $(alt_usrlibdir)/${P} - mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a \ - "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die - fi - - # We configure toolchains for standalone prefix systems with a sysroot, - # which is prepended to paths in ld scripts, so strip the prefix from these. - # Before: GROUP ( /foo/lib64/libc.so.6 /foo/usr/lib64/libc_nonshared.a AS_NEEDED ( /foo/lib64/ld-linux-x86-64.so.2 ) ) - # After: GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-x86-64.so.2 ) ) - if [[ -n $(host_eprefix) ]] ; then - local file - grep -lZIF "ld script" "${ED}/$(alt_usrlibdir)"/lib*.{a,so} 2>/dev/null | while read -rd '' file ; do - sed -i "s|$(host_eprefix)/|/|g" "${file}" || die - done - fi - - # We'll take care of the cache ourselves - rm -f "${ED}"/etc/ld.so.cache - - # Everything past this point just needs to be done once ... - is_final_abi || return 0 - - # Make sure the non-native interp can be found on multilib systems even - # if the main library set isn't installed into the right place. Maybe - # we should query the active gcc for info instead of hardcoding it ? - local i ldso_abi ldso_name - local ldso_abi_list=( - # x86 - amd64 /lib64/ld-linux-x86-64.so.2 - x32 /libx32/ld-linux-x32.so.2 - x86 /lib/ld-linux.so.2 - # mips - o32 /lib/ld.so.1 - n32 /lib32/ld.so.1 - n64 /lib64/ld.so.1 - # powerpc - ppc /lib/ld.so.1 - # riscv - ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 - ilp32 /lib/ld-linux-riscv32-ilp32.so.1 - lp64d /lib/ld-linux-riscv64-lp64d.so.1 - lp64 /lib/ld-linux-riscv64-lp64.so.1 - # s390 - s390 /lib/ld.so.1 - s390x /lib/ld64.so.1 - # sparc - sparc32 /lib/ld-linux.so.2 - sparc64 /lib64/ld-linux.so.2 - ) - case $(tc-endian) in - little) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64.so.1 - # ELFv2 (glibc does not support ELFv1 on LE) - ppc64 /lib64/ld64.so.2 - ) - ;; - big) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64_be.so.1 - # ELFv1 (glibc does not support ELFv2 on BE) - ppc64 /lib64/ld64.so.1 - ) - ;; - esac - if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then - dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib - fi - for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do - ldso_abi=${ldso_abi_list[i]} - has ${ldso_abi} $(get_install_abis) || continue - - ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" - if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then - dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} - fi - done - - # In the LSB 5.0 definition, someone had the excellent idea to "standardize" - # the runtime loader name, see also https://xkcd.com/927/ - # Normally, in Gentoo one should never come across executables that require this. - # However, binary commercial packages are known to adhere to weird practices. - # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB - local lsb_ldso_name native_ldso_name lsb_ldso_abi - local lsb_ldso_abi_list=( - # x86 - amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 - ) - for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do - lsb_ldso_abi=${lsb_ldso_abi_list[i]} - native_ldso_name=${lsb_ldso_abi_list[i+1]} - lsb_ldso_name=${lsb_ldso_abi_list[i+2]} - has ${lsb_ldso_abi} $(get_install_abis) || continue - - if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then - dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}" - fi - done - - # With devpts under Linux mounted properly, we do not need the pt_chown - # binary to be setuid. This is because the default owners/perms will be - # exactly what we want. - if ! use suid ; then - find "${ED}" -name pt_chown -exec chmod -s {} + - fi - - ################################################################# - # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # - ################################################################# - - # Make sure we install some symlink hacks so that when we build - # a 2nd stage cross-compiler, gcc finds the target system - # headers correctly. See gcc/doc/gccinstall.info - if is_crosscompile ; then - # We need to make sure that /lib and /usr/lib always exists. - # gcc likes to use relative paths to get to its multilibs like - # /usr/lib/../lib64/. So while we don't install any files into - # /usr/lib/, we do need it to exist. - keepdir $(alt_prefix)/lib - keepdir $(alt_prefix)/usr/lib - - dosym usr/include $(alt_prefix)/sys-include - return 0 - fi - - # Files for Debian-style locale updating - dodir /usr/share/i18n - sed \ - -e "/^#/d" \ - -e "/SUPPORTED-LOCALES=/d" \ - -e "s: \\\\::g" -e "s:/: :g" \ - "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ - || die "generating /usr/share/i18n/SUPPORTED failed" - - cd "${S}" || die - - # Install misc network config files - insinto /etc - doins posix/gai.conf - - if use systemd ; then - doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf" - else - doins nss/nsswitch.conf - fi - - # Gentoo-specific - newins "${FILESDIR}"/host.conf-1 host.conf - - if use nscd ; then - doins nscd/nscd.conf - - newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd - - local nscd_args=( - -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" - ) - - sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd - - use systemd && systemd_dounit nscd/nscd.service - newtmpfiles nscd/nscd.tmpfiles nscd.conf - fi - - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc - doenvd "${T}"/00glibc - - for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do - [[ -s ${d} ]] && dodoc ${d} - done - dodoc -r ChangeLog.old - - # Prevent overwriting of the /etc/localtime symlink. We'll handle the - # creation of the "factory" symlink in pkg_postinst(). - rm -f "${ED}"/etc/localtime - - # Generate all locales if this is a native build as locale generation - if use compile-locales && ! is_crosscompile ; then - run_locale_gen --inplace-glibc "${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 - - use compile-locales || run_locale_gen "${EROOT}/" - - # 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-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-9999.ebuild index e23e2568a76..f7b71aa8656 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 @@ -972,14 +972,14 @@ src_prepare() { einfo "Done." fi - case ${CTARGET} in - m68*-aligned-*) + case ${CTARGET} in + m68*-aligned-*) einfo "Applying utmp format fix for m68k with -maligned-int" eapply "${FILESDIR}/glibc-2.41-m68k-malign.patch" ;; - *) + *) ;; - esac + esac default diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libcap/libcap-2.76.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libcap/libcap-2.76.ebuild index 7c2586bcc98..6a6ea8d8fc2 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libcap/libcap-2.76.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libcap/libcap-2.76.ebuild @@ -11,7 +11,7 @@ if [[ ${PV} == *9999 ]]; then else SRC_URI="https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${P}.tar.xz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" + KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" fi DESCRIPTION="POSIX 1003.1e capabilities" diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libunwind/libunwind-1.8.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libunwind/libunwind-1.8.2.ebuild index 82797fa7612..e7142007a70 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libunwind/libunwind-1.8.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libunwind/libunwind-1.8.2.ebuild @@ -31,7 +31,7 @@ else S="${WORKDIR}"/${P/_rc/-rc} if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 -sparc ~x86 ~amd64-linux ~x86-linux" + KEYWORDS="amd64 ~arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 -sparc x86 ~amd64-linux ~x86-linux" fi fi diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/liburing/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/liburing/Manifest index 3b6ad8ddce4..f112d6356ed 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/liburing/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-libs/liburing/Manifest @@ -1,4 +1,5 @@ DIST liburing-2.10-fix-compilation-error-io_uring_for_each_cqe.patch 2593 BLAKE2B cf34ff93859c489a524c9587a1868df27ce4f0b9f19aa8cb0b94c48a5addad5afa3d9469894962652dffcf2228830d4b8547f03220e9c7aa6b20d2a1ca7e9159 SHA512 93d68779cb10b4552306f715a723be92b2acbd9559acef75156b072460b72ccb94e2b06988f1b00745cf7247e886e242d6ebe39a31bff9fad67af80d95ab8fe0 DIST liburing-2.10.tar.gz 428315 BLAKE2B f5477f7a1a30202feea3e97f236f6a8a2db59923a0ba9c13dda2cd8de0831bb0979dc6acdef4a2f1797ce2637125def54b9f3d50f14ef01affeed43b089228df SHA512 6fb6e7ce66917d9438095e05916f90d834034ac3f6d6d8b6ee1eadf48ab9e499efa4af489dc72f8acc4a0b018f917ffcb8af4af682b47512566205519dd1f5db +DIST liburing-2.11.tar.gz 429859 BLAKE2B 9a649132e28569c7de30f284da13fb7318f406f123358833e5a252693e724bd99056c3966f061732ad9d6db6a327265b5a9f580ada74d8cef762ccfafadac251 SHA512 151d01416eeca6b9d18cb7bbd96f4f8099f1aa377f0ff808b51fa7e2c990413fe8aa7b40712c806d6a800296a58e262fe551c358ee7d23153c3bfa10aeb67eb0 DIST liburing-2.7.gh.tar.gz 347638 BLAKE2B 3e281cbf9be72cc8e04b04486df4dd9dd32c95ef9b84f7eae3253eb8e9a4afdaf8048ac359d6d250fecfb0a2bded51e46c1ab073d0e96c4d7d5d1d554d65c2b2 SHA512 c65146ee53defba4f9b752674be8489757f60be0855b361c6d1136119c74803351e5ccc8a1890c0777bfe61da4c0fd997230fc8817ff3929a7e2186b389cdc28 DIST liburing-2.9.tar.gz 407191 BLAKE2B 7081f9430e9532cad659e24de7ba998ad40f15a3fc3bf08fbe2b30df2bb335d4b06affb98d5667d4f8e6c8bc6e7a98c25caddd57ec5c98940562eb0e7977e54d SHA512 f27233e6128444175b18cd1d45647acdd27b906a8cd561029508710e443b44416b916cad1b2c1217e23d9a5ffb5ba68b119e9c812eae406650fbd10bf26c2fa5 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/liburing/liburing-2.11.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/liburing/liburing-2.11.ebuild new file mode 100644 index 00000000000..94dacec3668 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/liburing/liburing-2.11.ebuild @@ -0,0 +1,88 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib-minimal toolchain-funcs + +DESCRIPTION="Efficient I/O with io_uring" +HOMEPAGE="https://github.com/axboe/liburing" +if [[ "${PV}" == *9999 ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/axboe/liburing.git" +else + SRC_URI=" + https://github.com/axboe/liburing/archive/refs/tags/${P}.tar.gz + " + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + QA_PKGCONFIG_VERSION=${PV} +fi + +S="${WORKDIR}"/liburing-${P} +LICENSE="MIT" +SLOT="0/2" # liburing.so major version + +IUSE="examples static-libs test" +# fsync test hangs forever +RESTRICT="!test? ( test )" + +# At least installed headers need , bug #802516 +DEPEND=">=sys-kernel/linux-headers-5.1" +RDEPEND="${DEPEND}" + +src_prepare() { + default + + if ! use examples; then + sed -e '/examples/d' Makefile -i || die + fi + if ! use test; then + sed -e '/test/d' Makefile -i || die + fi + + multilib_copy_sources +} + +multilib_src_configure() { + local myconf=( + --prefix="${EPREFIX}/usr" + --libdir="${EPREFIX}/usr/$(get_libdir)" + --libdevdir="${EPREFIX}/usr/$(get_libdir)" + --mandir="${EPREFIX}/usr/share/man" + --cc="$(tc-getCC)" + --cxx="$(tc-getCXX)" + --use-libc + ) + # No autotools configure! "econf" will fail. + TMPDIR="${T}" ./configure "${myconf[@]}" || die +} + +multilib_src_compile() { + emake V=1 AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" +} + +multilib_src_install_all() { + einstalldocs + + if ! use static-libs ; then + find "${ED}" -type f -name "*.a" -delete || die + fi +} + +multilib_src_test() { + local disabled_tests=( + accept.c + fpos.c + io_uring_register.c + link-timeout.c + read-before-exit.c + recv-msgall-stream.c + ) + local disabled_test + for disabled_test in "${disabled_tests[@]}"; do + sed -i "/\s*${disabled_test}/d" test/Makefile \ + || die "Failed to remove ${disabled_test}" + done + + emake -C test V=1 runtests +} diff --git a/sdk_container/src/third_party/portage-stable/sys-process/procps/Manifest b/sdk_container/src/third_party/portage-stable/sys-process/procps/Manifest index a6fe2b6856a..12b2b155619 100644 --- a/sdk_container/src/third_party/portage-stable/sys-process/procps/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-process/procps/Manifest @@ -1,2 +1,2 @@ -DIST procps-ng-3.3.17.tar.xz 1008428 BLAKE2B 43aa1a21d4f0725b1c02457f343cf1fc66bc1771b25c6eaf689c9775c190e90545bfac1729f027abc4d3d13de37ffac4828554b5b25e12bcf6af9540de1695f3 SHA512 59e9a5013430fd9da508c4655d58375dc32e025bb502bb28fb9a92a48e4f2838b3355e92b4648f7384b2050064d17079bf4595d889822ebb5030006bc154a1a7 DIST procps-ng-4.0.4.tar.xz 1401540 BLAKE2B 63b972666ef9e92042be96739ffa15c787d0346b2d3ffcb0d240b0a4e999dc90024b2c5b058df683dd9d2c436ceb812abd0b115cc877a6ca1023988b86de443f SHA512 94375544e2422fefc23d7634063c49ef1be62394c46039444f85e6d2e87e45cfadc33accba5ca43c96897b4295bfb0f88d55a30204598ddb26ef66f0420cefb4 +DIST procps-ng-4.0.5.tar.xz 1517672 BLAKE2B 4b273ac7737202147fbf392995da1c5ff385df2b53ad84180b6412dc45c2a671e81d7659c0a5824c0d8c19fa37cbf2e58b0545841c74399b3717a9f27fd26c23 SHA512 c27730743210cf850c4af98e1fb81bc8ee8d550b07b9eedb34a5b9d661263d0f1bc92c4e73802a0ed8d4405854aef4bc542bff283c28e8fbb6dabb967f9e4359 diff --git a/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-3.3.12-proc-tests.patch b/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-3.3.12-proc-tests.patch deleted file mode 100644 index 9549252dd48..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-3.3.12-proc-tests.patch +++ /dev/null @@ -1,47 +0,0 @@ -https://bugs.gentoo.org/583036 -http://www.freelists.org/post/procps/Patch-Test-suite-fails-if-procpidsmaps-is-absent,1 - -From: tobbs@opentrash.com -To: procps@freelists.org -Date: Sun, 11 Sep 2016 15:01:29 +0200 -Subject: [procps] [Patch] Test suite fails if /proc//smaps is absent -Message-Id: <20160911130129.9A8B3322A81@astra4649.startdedicated.de> - -Summary: Some Linux systems do not have /proc//smaps, hence the test -suite fails. Attached a patch to skip tests in that case it. - -When pmap is called with either -c, -x, or -x it tries to read -/proc//smaps (pmap.c, l. 540). If not present it exits. -The file /proc//smaps exits on Linux systems only if the kernel is -compiled with the option CONFIG_PROC_PAGE_MONITOR (see man page proc(5)). - -In the test suite some tests check the output of pmap -X et al, but they -fail if /proc//smaps is not present, because pmap does not produce -their expected output. - -Attached a patch which checks if /proc//smaps exits, if not it -skipps the test related to it. - -Note: It is unclear what the 'expected' behaviour/output of pmap should -be if the file /proc//smaps is not present. Maybe add an additional -test to check the return code if /proc//smaps is absent. - ---- a/testsuite/pmap.test/pmap.exp -+++ b/testsuite/pmap.test/pmap.exp -@@ -45,6 +45,11 @@ - spawn $pmap -qd $mypid - expect_table $test $pmap_procname $pmap_device_items "\$" - -+if { [ file readable "/proc/self/smaps" ] == 0 } { -+ unsupported "Skipping test which require pmap to access /proc//smaps, because kernel seems to be compiled without CONFIG_PROC_PAGE_MONITOR." -+ -+} else { -+ - set test "pmap extended output" - spawn $pmap -x $mypid - expect_table $test $pmap_ext_header $pmap_ext_items $pmap_ext_footer -@@ -66,3 +71,4 @@ - spawn $pmap -XX 1 - expect_pass $test "$pmap_initname\$" - -+} diff --git a/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-3.3.17-musl-fix.patch b/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-3.3.17-musl-fix.patch deleted file mode 100644 index 4402354c21e..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-3.3.17-musl-fix.patch +++ /dev/null @@ -1,78 +0,0 @@ -Temporary stopgap patch (a different solution was used upstream -in the next release, should be in the next after 3.3.17 -- we'll need to -add --disable-w instead). - -https://bugs.gentoo.org/794997 - -From 7bfe2b7c12b33aabca71491360c433d2d3f7bbf4 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Wed, 24 Feb 2021 21:14:31 +0000 -Subject: [PATCH 1/2] w.c: correct musl builds - -No need to redefine UT_ stuff to something that does not exist. - -UT_ is already provided in musl but via utmp.h header, so include -it always. - -Signed-off-by: Alexander Kanavin ---- - w.c | 9 +-------- - 1 file changed, 1 insertion(+), 8 deletions(-) - -diff --git a/w.c b/w.c -index 9d07ac9e..d10639b8 100644 ---- a/w.c -+++ b/w.c -@@ -57,9 +57,8 @@ - #include - #ifdef HAVE_UTMPX_H - # include --#else --# include - #endif -+#include - #include - - static int ignoreuser = 0; /* for '-u' */ -@@ -72,12 +71,6 @@ typedef struct utmpx utmp_t; - typedef struct utmp utmp_t; - #endif - --#if !defined(UT_HOSTSIZE) || defined(__UT_HOSTSIZE) --# define UT_HOSTSIZE __UT_HOSTSIZE --# define UT_LINESIZE __UT_LINESIZE --# define UT_NAMESIZE __UT_NAMESIZE --#endif -- - #ifdef W_SHOWFROM - # define FROM_STRING "on" - #else --- -GitLab - - -From 145165aba6c659f3f0f3567a323a3e6170408ea6 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Wed, 24 Feb 2021 21:16:14 +0000 -Subject: [PATCH 2/2] proc/escape.c: add missing include - -Signed-off-by: Alexander Kanavin ---- - proc/escape.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/proc/escape.c b/proc/escape.c -index 2e8fb7dd..e1f4612d 100644 ---- a/proc/escape.c -+++ b/proc/escape.c -@@ -21,6 +21,7 @@ - #include - #include - #include -+#include - #include "procps.h" - #include "escape.h" - #include "readproc.h" --- -GitLab - diff --git a/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-4.0.5-fix-tests-multilib.patch b/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-4.0.5-fix-tests-multilib.patch new file mode 100644 index 00000000000..05ea4973e0b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-4.0.5-fix-tests-multilib.patch @@ -0,0 +1,34 @@ +https://gitlab.com/procps-ng/procps/-/merge_requests/256 + +From 2cc229991d2c89c93d58d7ad4bc30fd272d8e2df Mon Sep 17 00:00:00 2001 +Message-ID: <2cc229991d2c89c93d58d7ad4bc30fd272d8e2df.1750118248.git.sam@gentoo.org> +From: Sam James +Date: Tue, 17 Jun 2025 00:56:23 +0100 +Subject: [PATCH] testsuite: only test freetop if we built it + +It's not built if configured with --without-ncurses. Similar to +aa85fb458a295135d8283cd5ffacfe8198cdae22. + +Signed-off-by: Sam James +--- a/testsuite/Makefile.am ++++ b/testsuite/Makefile.am +@@ -21,7 +21,7 @@ DEJATOOL += \ + + if !CYGWIN + if WITH_NCURSES +-DEJATOOL += slabtop ++DEJATOOL += slabtop hugetop + endif + + DEJATOOL += sysctl +@@ -37,7 +37,6 @@ endif + + DEJATOOL += \ + free \ +- hugetop \ + lib \ + pgrep \ + pkill \ +-- +2.50.0 + diff --git a/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-4.0.5-macos.patch b/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-4.0.5-macos.patch new file mode 100644 index 00000000000..79890994f11 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-4.0.5-macos.patch @@ -0,0 +1,28 @@ +https://gitlab.com/procps-ng/procps/-/commit/2dc340e47669e0b0df7f71ff082e05ac5fa36615 + +From 2dc340e47669e0b0df7f71ff082e05ac5fa36615 Mon Sep 17 00:00:00 2001 +From: Rui Chen +Date: Thu, 26 Dec 2024 11:09:18 -0500 +Subject: [PATCH] local/signals.c: guard `SIGPOLL` to fix build on macOS + +Signed-off-by: Rui Chen +--- + local/signals.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/local/signals.c b/local/signals.c +index 6d68c07d..12656796 100644 +--- a/local/signals.c ++++ b/local/signals.c +@@ -125,7 +125,9 @@ static const mapstruct sigtable[] = { + {"VTALRM", SIGVTALRM}, + {"PROF", SIGPROF}, + {"WINCH", SIGWINCH}, ++#ifdef SIGPOLL + {"POLL", SIGPOLL}, // in SUSv3, prioritize over IO ++#endif + #ifdef SIGIO + {"IO", SIGIO}, // possibly = POLL + #endif +-- +GitLab diff --git a/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-4.0.5-pgrep-old-linux-headers.patch b/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-4.0.5-pgrep-old-linux-headers.patch new file mode 100644 index 00000000000..1f9ff443393 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-4.0.5-pgrep-old-linux-headers.patch @@ -0,0 +1,57 @@ +https://bugs.gentoo.org/911375 +https://gitlab.com/procps-ng/procps/-/commit/90a0ddcd64c2d43dc2c2c856b1b42b5cae6b8a44 + +From 90a0ddcd64c2d43dc2c2c856b1b42b5cae6b8a44 Mon Sep 17 00:00:00 2001 +From: Markus Mayer +Date: Wed, 11 Dec 2024 14:53:33 -0800 +Subject: [PATCH] pgrep: provide definition for __NR_pidfd_open if needed + +We already implement pidfd_open() ourselves if libc doesn't provide it. +Let's also provide our own definition of __NR_pidfd_open in case the +kernel headers don't contain it. + +This way, pgrep can provide its full capabilities after being built +against older kernel headers (for increased compatibility) but being run +on systems with newer kernels. + +Signed-off-by: Markus Mayer +--- + configure.ac | 2 +- + src/pgrep.c | 9 +++++++++ + 2 files changed, 10 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 1e984b12..14ba3ad7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -325,7 +325,7 @@ AS_IF([[test "x$enable_pidwait" = xyes -a "x$have_pidfd_open" = xno]], + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ + #include + #ifndef __NR_pidfd_open +-#error __NR_pidfd_open not defined ++#warning __NR_pidfd_open not defined; using our definition + #endif + ])], + AC_MSG_RESULT([yes]), +diff --git a/src/pgrep.c b/src/pgrep.c +index 2c6b06b8..6fc25dd4 100644 +--- a/src/pgrep.c ++++ b/src/pgrep.c +@@ -874,6 +874,15 @@ static int signal_option(int *argc, char **argv) + } + + #if defined(ENABLE_PIDWAIT) && !defined(HAVE_PIDFD_OPEN) ++ ++#ifndef __NR_pidfd_open ++#ifdef __alpha__ ++#define __NR_pidfd_open 544 ++#else ++#define __NR_pidfd_open 434 ++#endif ++#endif ++ + static int pidfd_open (pid_t pid, unsigned int flags) + { + return syscall(__NR_pidfd_open, pid, flags); +-- +GitLab diff --git a/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-3.3.11-sysctl-manpage.patch b/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-4.0.5-sysctl-manpage.patch similarity index 61% rename from sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-3.3.11-sysctl-manpage.patch rename to sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-4.0.5-sysctl-manpage.patch index 3523aad4ba4..d2abd3c43c6 100644 --- a/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-3.3.11-sysctl-manpage.patch +++ b/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-4.0.5-sysctl-manpage.patch @@ -1,8 +1,9 @@ ---- procps-ng-3.3.11-orig/sysctl.8 -+++ procps-ng-3.3.11/sysctl.8 -@@ -123,21 +123,21 @@ - \fB\-V\fR, \fB\-\-version\fR - Display version information and exit. +https://bugs.gentoo.org/565304 +--- a/man/sysctl.8 ++++ b/man/sysctl.8 +@@ -177,21 +177,21 @@ skipped by \fBsysctl\fR using the \fB\-\-all\fR option. + This parameter returns no value but flushes per-cpu vm statistics. + .SH EXAMPLES -/sbin/sysctl \-a +/usr/sbin/sysctl \-a @@ -25,8 +26,8 @@ -/sbin/sysctl \-a \-\-pattern 'net.ipv4.conf.(eth|wlan)0.arp' +/usr/sbin/sysctl \-a \-\-pattern 'net.ipv4.conf.(eth|wlan)0.arp' .br --/sbin/sysctl \-\-system \-\-pattern '^net.ipv6' -+/usr/sbin/sysctl \-\-system \-\-pattern '^net.ipv6' - .SH DEPRECATED PARAMETERS - The - .B base_reachable_time +-/sbin/sysctl \-\-pattern '\[char94]net.ipv6' \-\-system ++/usr/sbin/sysctl \-\-pattern '\[char94]net.ipv6' \-\-system + .SH SEE ALSO + .BR proc (5), + .BR sysctl.conf (5), diff --git a/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-4.0.5-top-legacy-config-vuln.patch b/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-4.0.5-top-legacy-config-vuln.patch new file mode 100644 index 00000000000..676f16046a1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-process/procps/files/procps-4.0.5-top-legacy-config-vuln.patch @@ -0,0 +1,39 @@ +https://bugs.gentoo.org/958286 +https://gitlab.com/procps-ng/procps/-/commit/c7498168cfdcf566519d8c46bd26c1be42f2e3f3 + +From c7498168cfdcf566519d8c46bd26c1be42f2e3f3 Mon Sep 17 00:00:00 2001 +From: Jim Warner +Date: Mon, 26 May 2025 00:00:00 -0500 +Subject: [PATCH] top: fix vulnerability with legacy configuration files + +Reference(s): +https://gitlab.com/procps-ng/procps/-/issues/384 + +Signed-off-by: Jim Warner +--- + src/top/top.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/src/top/top.c b/src/top/top.c +index c55b08f0..eef3b219 100644 +--- a/src/top/top.c ++++ b/src/top/top.c +@@ -4015,10 +4015,12 @@ static int config_wins (FILE *fp, char *buf, int wix) { + + if (1 != fscanf(fp, "%3s\tfieldscur=", w->rc.winname)) + return 0; +- if (Rc.id < RCF_XFORMED_ID) +- fscanf(fp, "%s\n", buf ); +- else { +- for (x = 0; ; x++) ++ if (Rc.id < RCF_XFORMED_ID) { ++ fscanf(fp, "%100s\n", buf ); // buf size = LRGBUFSIZ (512) ++ if (strlen(buf) >= sizeof(CVT_FORMER)) // but if we exceed max of 86 ++ return 0; // that rc file was corrupted ++ } else { ++ for (x = 0; x < PFLAGSSIZ; x++) + if (1 != fscanf(fp, "%d", &w->rc.fieldscur[x])) + break; + } +-- +GitLab diff --git a/sdk_container/src/third_party/portage-stable/sys-process/procps/procps-3.3.17-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-process/procps/procps-3.3.17-r2.ebuild deleted file mode 100644 index fa3db59f4df..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-process/procps/procps-3.3.17-r2.ebuild +++ /dev/null @@ -1,98 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -# See https://bugs.gentoo.org/835813 before bumping to 4.x! - -inherit flag-o-matic multilib-minimal usr-ldscript - -DESCRIPTION="Standard informational utilities and process-handling tools" -HOMEPAGE="http://procps-ng.sourceforge.net/ https://gitlab.com/procps-ng/procps" -SRC_URI="https://downloads.sourceforge.net/${PN}-ng/${PN}-ng-${PV}.tar.xz" - -LICENSE="GPL-2" -SLOT="0/8" # libprocps.so -KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux" -IUSE="elogind +kill modern-top +ncurses nls selinux static-libs systemd test unicode" -RESTRICT="!test? ( test )" - -DEPEND=" - elogind? ( sys-auth/elogind ) - ncurses? ( >=sys-libs/ncurses-5.7-r7:=[unicode(+)?] ) - selinux? ( sys-libs/libselinux[${MULTILIB_USEDEP}] ) - systemd? ( sys-apps/systemd[${MULTILIB_USEDEP}] ) -" -BDEPEND=" - elogind? ( virtual/pkgconfig ) - ncurses? ( virtual/pkgconfig ) - systemd? ( virtual/pkgconfig ) - test? ( dev-util/dejagnu ) -" -RDEPEND="${DEPEND} - kill? ( - !sys-apps/coreutils[kill] - !sys-apps/util-linux[kill] - ) - !4.0.5 + if use elibc_musl ; then + append-cflags "$($(tc-getPKG_CONFIG) --cflags error-standalone)" + append-libs "$($(tc-getPKG_CONFIG) --libs error-standalone)" + fi + + local myeconfargs=( + # No elogind multilib support + $(multilib_native_use_with elogind) + $(multilib_native_use_enable kill) + $(multilib_native_use_enable modern-top) + $(multilib_native_enable pidof) + $(multilib_native_enable pidwait) + $(multilib_native_use_with ncurses) + # bug #794997 + $(multilib_native_use_enable !elibc_musl w) + $(use_enable nls) + $(use_enable selinux libselinux) + $(use_enable static-libs static) + $(use_with systemd) + $(use_enable skill) + ) + + if use ncurses; then + # Only pass whis when we are building the 'watch' command + myeconfargs+=( $(multilib_native_use_enable unicode watch8bit) ) + fi + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_test() { + local ps="${BUILD_DIR}/src/ps/pscommand" + if [[ $("${ps}" --no-headers -o cls -q $$) == IDL ]]; then + # bug #708230 + ewarn "Skipping tests due to SCHED_IDLE" + else + # bug #461302 + emake check