diff --git a/.github/workflows/portage-stable-packages-list b/.github/workflows/portage-stable-packages-list index 831f57575df..e2635dcd791 100644 --- a/.github/workflows/portage-stable-packages-list +++ b/.github/workflows/portage-stable-packages-list @@ -216,6 +216,7 @@ dev-lang/python dev-lang/python-exec dev-lang/python-exec-conf dev-lang/rust +dev-lang/rust-bin dev-lang/rust-common dev-lang/swig dev-lang/tcl @@ -286,7 +287,6 @@ dev-libs/yajl dev-perl/File-Slurp dev-perl/Parse-Yapp -dev-python/PySocks dev-python/autocommand dev-python/backports-tarfile dev-python/cachecontrol @@ -342,6 +342,7 @@ dev-python/pycparser dev-python/pydecomp dev-python/pygments dev-python/pyproject-hooks +dev-python/pysocks dev-python/requests dev-python/resolvelib dev-python/rich diff --git a/changelog/security/2024-11-27-weekly-updates.md b/changelog/security/2024-11-27-weekly-updates.md new file mode 100644 index 00000000000..3f6602ea7fa --- /dev/null +++ b/changelog/security/2024-11-27-weekly-updates.md @@ -0,0 +1,2 @@ +- expat ([CVE-2024-50602](https://nvd.nist.gov/vuln/detail/CVE-2024-50602)) +- wget ([CVE-2024-10524](https://nvd.nist.gov/vuln/detail/CVE-2024-10524)) diff --git a/changelog/updates/2024-11-27-weekly-updates.md b/changelog/updates/2024-11-27-weekly-updates.md new file mode 100644 index 00000000000..be0d736e1b4 --- /dev/null +++ b/changelog/updates/2024-11-27-weekly-updates.md @@ -0,0 +1,25 @@ +- SDK: libpng ([1.6.44](https://github.com/pnggroup/libpng/blob/v1.6.44/CHANGES#L6199)) +- SDK: perf ([6.11.7](https://kernelnewbies.org/Linux_6.11#Tracing.2C_perf_and_BPF)) +- SDK: pkgcheck ([0.10.32](https://github.com/pkgcore/pkgcheck/releases/tag/v0.10.32)) +- azure: chrony ([4.6.1](https://gitlab.com/chrony/chrony/-/blob/4.6.1/NEWS)) +- base, dev: btrfs-progs ([6.11](https://raw.githubusercontent.com/kdave/btrfs-progs/refs/tags/v6.11/CHANGES)) +- base, dev: expat ([2.6.4](https://github.com/libexpat/libexpat/blob/R_2_6_4/expat/Changes)) +- base, dev: gcc ([14.2.1_p20241116](https://gcc.gnu.org/gcc-14/changes.html)) +- base, dev: iproute2 ([6.11.0](https://lore.kernel.org/netdev/20240915201831.164de47e@hermes.local/) (includes [6.10.0](https://lore.kernel.org/netdev/20240717090601.20b2871f@hermes.local/))) +- base, dev: iputils ([20240905](https://github.com/iputils/iputils/releases/tag/20240905)) +- base, dev: json-c ([0.18](https://github.com/json-c/json-c/blob/json-c-0.18-20240915/ChangeLog)) +- base, dev: kexec-tools ([2.0.29](https://github.com/horms/kexec-tools/commits/v2.0.29/)) +- base, dev: less ([668](https://www.greenwoodsoftware.com/less/news.668.html)) +- base, dev: libnetfilter_conntrack ([1.1.0](https://lists.netfilter.org/pipermail/netfilter-announce/2024/000260.html)) +- base, dev: libnftnl ([1.2.8](https://lists.netfilter.org/pipermail/netfilter-announce/2024/000261.html)) +- base, dev: libuv ([1.49.2](https://github.com/libuv/libuv/releases/tag/v1.49.2) (includes [1.49.1](https://github.com/libuv/libuv/releases/tag/v1.49.1), [1.49.0](https://github.com/libuv/libuv/releases/tag/v1.49.0))) +- base, dev: openldap ([2.6.6](https://git.openldap.org/openldap/openldap/-/blob/OPENLDAP_REL_ENG_2_6_6/CHANGES) (includes [2.6.5](https://git.openldap.org/openldap/openldap/-/blob/OPENLDAP_REL_ENG_2_6_5/CHANGES))) +- base, dev: pax-utils ([1.3.8](https://gitweb.gentoo.org/proj/pax-utils.git/log/?h=v1.3.8)) +- base, dev: util-linux ([2.40.2](https://raw.githubusercontent.com/util-linux/util-linux/refs/tags/v2.40.2/Documentation/releases/v2.40.2-ReleaseNotes) (includes [2.40.1](https://raw.githubusercontent.com/util-linux/util-linux/refs/tags/v2.40.1/Documentation/releases/v2.40.1-ReleaseNotes), [2.40.0](https://raw.githubusercontent.com/util-linux/util-linux/refs/tags/v2.40/Documentation/releases/v2.40-ReleaseNotes))) +- base, dev: wget ([1.25.0](https://lists.gnu.org/archive/html/info-gnu/2024-11/msg00000.html)) +- base, dev: xfsprogs ([6.10.1](https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/tree/doc/CHANGES?h=v6.10.1) (includes [6.10.0](https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/tree/doc/CHANGES?h=v6.10.0), [6.9.0](https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/tree/doc/CHANGES?h=v6.9.0))) +- base, dev: xz-utils ([5.6.3](https://github.com/tukaani-project/xz/releases/tag/v5.6.3)) +- sysext-python: cachecontrol ([0.14.1](https://github.com/psf/cachecontrol/releases/tag/v0.14.1)) +- sysext-python: packaging ([24.2](https://github.com/pypa/packaging/releases/tag/24.2)) +- sysext-python: resolvelib ([1.1.0](https://github.com/sarugaku/resolvelib/blob/1.1.0/CHANGELOG.rst)) +- vmware: xmlsec ([1.3.5](https://github.com/lsh123/xmlsec/releases/tag/1.3.5)) diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-apps/util-linux b/sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-apps/util-linux new file mode 100644 index 00000000000..d7da140d7aa --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-apps/util-linux @@ -0,0 +1,3 @@ +# New mount API does not work very well for mounting overlayfs when we +# are building sysexts. +export EXTRA_ECONF="--disable-libmount-mountfd-support" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-arch/sharutils/0000-gettext.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-arch/sharutils/0000-gettext.patch new file mode 100644 index 00000000000..722b787f168 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-arch/sharutils/0000-gettext.patch @@ -0,0 +1,11 @@ +diff -u3 -r sharutils-4.15.2/src/local.h sharutils-4.15.2-patched/src/local.h +--- sharutils-4.15.2/src/local.h 2015-05-30 17:35:32.000000000 +0200 ++++ sharutils-4.15.2-patched/src/local.h 2024-11-28 20:18:51.360160618 +0100 +@@ -37,6 +37,7 @@ + #include "base64.h" + #include "dirname.h" + #include "error.h" ++#include "gettext.h" + #include "idcache.h" + #include "inttostr.h" + #include "locale.h" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-arch/sharutils/README.md b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-arch/sharutils/README.md new file mode 100644 index 00000000000..653d34180a6 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/app-arch/sharutils/README.md @@ -0,0 +1,13 @@ +`0000-gettext.patch` is for fixing a build with USE=-nls: + +``` +uuencode.c: In function 'process_opts': +uuencode.c:204:3: error: implicit declaration of function 'bindtextdomain' [-Wimplicit-function-declaration] + 204 | bindtextdomain (PACKAGE, LOCALEDIR); + | ^~~~~~~~~~~~~~ +uuencode.c:205:3: error: implicit declaration of function 'textdomain' [-Wimplicit-function-declaration] + 205 | textdomain (PACKAGE); + | ^~~~~~~~~~ +``` + +Should probably be upstreamed to sharutils and to Gentoo if it works. diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-devel/gcc/README.md b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-devel/gcc/README.md deleted file mode 100644 index 07e41ebaddb..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-devel/gcc/README.md +++ /dev/null @@ -1,2 +0,0 @@ -The ESYSROOT patch can be dropped when updating sys-devel/gcc to at -least 14.2.1_p20240817-r1. diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-devel/gcc/gcc-esysroot.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-devel/gcc/gcc-esysroot.patch deleted file mode 100644 index 46117f12e75..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-devel/gcc/gcc-esysroot.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -Naur a/gcc/gcc.cc b/gcc/gcc.cc ---- a/gcc/gcc.cc 2024-08-01 23:34:33.525082176 +0100 -+++ b/gcc/gcc.cc 2024-08-01 23:43:31.557156041 +0100 -@@ -5527,6 +5527,16 @@ - "BINUTILS", PREFIX_PRIORITY_LAST, 0, 1); - free (tooldir_prefix); - -+ if (*cross_compile == '1' && !target_system_root_changed) -+ { -+ const char *esysroot = env.get("ESYSROOT"); -+ if (esysroot && esysroot[0] != '\0' && strcmp(esysroot, "/") != 0 && (!target_system_root || strcmp(esysroot, target_system_root) != 0)) -+ { -+ target_system_root = esysroot; -+ target_system_root_changed = 1; -+ } -+ } -+ - #if defined(TARGET_SYSTEM_ROOT_RELOCATABLE) && !defined(VMS) - /* If the normal TARGET_SYSTEM_ROOT is inside of $exec_prefix, - then consider it to relocate with the rest of the GCC installation 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 34ac33860c5..cdf5b5856f1 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 @@ -71,7 +71,6 @@ # Keep versions on both arches in sync. =dev-cpp/glog-0.6.0 ~arm64 -=dev-db/sqlite-3.46.1 ~arm64 =dev-lang/yasm-1.3.0-r1 ~arm64 =dev-libs/ding-libs-0.6.2-r1 ~arm64 @@ -87,22 +86,23 @@ # Catalyst 4 is not stable yet, but earlier versions are masked now. =dev-util/catalyst-4.0.0 ~amd64 ~arm64 -# Needed for the MIT License -=net-analyzer/netperf-2.7.0_p20210121 ~amd64 ~arm64 - # Keep versions on both arches in sync. -=net-firewall/conntrack-tools-1.4.8 ~arm64 +=net-firewall/conntrack-tools-1.4.8-r1 ~arm64 =net-libs/libnetfilter_cthelper-1.0.1-r1 ~arm64 =net-libs/libnetfilter_cttimeout-1.0.1 ~arm64 # Needed by updated app-containers/containers-common =net-misc/passt-2024.09.06 ~amd64 ~arm64 +# Keep versions on both arches in sync. +=net-nds/openldap-2.6.6-r2 ~amd64 + # Package has not been stabilised yet. =sys-apps/azure-vm-utils-0.4.0 ~amd64 ~arm64 # Keep versions on both arches in sync. -=sys-apps/kexec-tools-2.0.28 ~arm64 +=sys-apps/kexec-tools-2.0.29-r1 ~arm64 +=sys-apps/util-linux-2.40.2 ~arm64 =sys-apps/zram-generator-1.1.2-r1 ~arm64 =sys-auth/sssd-2.9.5 ~arm64 =sys-boot/mokutil-0.7.2 ** diff --git a/sdk_container/src/third_party/portage-stable/app-admin/eselect/Manifest b/sdk_container/src/third_party/portage-stable/app-admin/eselect/Manifest index 5cd4e19cf40..5e4e8c59696 100644 --- a/sdk_container/src/third_party/portage-stable/app-admin/eselect/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-admin/eselect/Manifest @@ -1,2 +1,2 @@ -DIST eselect-1.4.26.tar.xz 184332 BLAKE2B ee1e8890802fc50646c8d1d5219f1ab0ec5cfc0138c758f73ad6baccf673992bbf3e763d8e84491f33e724ba4e1cf3bed6971ba7fa4373e0f06464ff4a5fa1e6 SHA512 397ae2f15d90d722eb84225b08f1afaaf6f89758bfae5d93b0a1c3eddc997c21e74ab62e09ee5e71941d3a8587b3372b64336d12054c3bbf0e56e1ba398a26f9 DIST eselect-1.4.27.tar.xz 184464 BLAKE2B 718874f4d0651194f361ca3202e5140982812bf486c8efe82354944d55206b0113fa135992203e8baa00019c3fd773a90ddaf67157c16f4ac2d69965d9822fbd SHA512 f534785fc1f79869840f420b4ab2b2bf35593c504cce878a6d3d07f75012cf32288009ea9ac2a5607dba216a794110a64c5f2c54d5d8a3c641328489cecc024b +DIST eselect-1.4.28.tar.xz 184692 BLAKE2B 86d1bbc0cb618f6edf49753c9f2be0f67670590ae55b8d2a8824940a5efa8462e395e1ee7f42379bd4ea64ea74f775a78e0a3a23ed565c67c3485f7e4e2d7a83 SHA512 26ac77465e2d6ab5193083c350cfd027d73ecd6d2702fc5f3db90373e92bf3722aead99c9b00b540c7972761620a485941c897854fe110454a4c6897f3f92868 diff --git a/sdk_container/src/third_party/portage-stable/app-admin/eselect/eselect-1.4.26-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-admin/eselect/eselect-1.4.28.ebuild similarity index 87% rename from sdk_container/src/third_party/portage-stable/app-admin/eselect/eselect-1.4.26-r1.ebuild rename to sdk_container/src/third_party/portage-stable/app-admin/eselect/eselect-1.4.28.ebuild index f1879f99ee5..47ff93c8bad 100644 --- a/sdk_container/src/third_party/portage-stable/app-admin/eselect/eselect-1.4.26-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-admin/eselect/eselect-1.4.28.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -16,7 +16,7 @@ SRC_URI="https://dev.gentoo.org/~ulm/eselect/${P}.tar.xz" LICENSE="GPL-2+ || ( GPL-2+ CC-BY-SA-4.0 )" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="doc emacs vim-syntax" # coreutils for realpath diff --git a/sdk_container/src/third_party/portage-stable/app-arch/cpio/cpio-2.15.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/cpio/cpio-2.15.ebuild index 19bc36cde4f..57ef1aa5ff5 100644 --- a/sdk_container/src/third_party/portage-stable/app-arch/cpio/cpio-2.15.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-arch/cpio/cpio-2.15.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit multiprocessing +inherit flag-o-matic multiprocessing DESCRIPTION="File archival tool which can also read and write tar files" HOMEPAGE="https://www.gnu.org/software/cpio/cpio.html" @@ -30,6 +30,9 @@ QA_CONFIG_IMPL_DECL_SKIP=( ) src_configure() { + # https://savannah.gnu.org/bugs/?66297 + append-cflags -std=gnu17 + local myeconfargs=( $(use_enable nls) --bindir="${EPREFIX}"/bin diff --git a/sdk_container/src/third_party/portage-stable/app-arch/ncompress/files/ncompress-5.0-c23.patch b/sdk_container/src/third_party/portage-stable/app-arch/ncompress/files/ncompress-5.0-c23.patch new file mode 100644 index 00000000000..7e61ade43fc --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-arch/ncompress/files/ncompress-5.0-c23.patch @@ -0,0 +1,291 @@ +https://github.com/vapier/ncompress/commit/af7d29d87ddf8b2002dad41152efa94e9c825b35 +https://github.com/vapier/ncompress/commit/aa359df10ec29a56c12f6e5c2bcec8d8ecfa2740 +https://github.com/vapier/ncompress/pull/40 + +From af7d29d87ddf8b2002dad41152efa94e9c825b35 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Mon, 8 Feb 2021 00:28:08 -0500 +Subject: [PATCH] require standard C function prototype support + +We can drop the main prototype entirely as we don't need it. +--- + compress.c | 58 +++++++++++++++++++----------------------------------- + 2 files changed, 21 insertions(+), 38 deletions(-) + +diff --git a/compress.c b/compress.c +index 12c89b8..ff3b51b 100644 +--- a/compress.c ++++ b/compress.c +@@ -49,12 +49,6 @@ + }; + #endif + +-#ifdef __STDC__ +-# define ARGS(a) a +-#else +-# define ARGS(a) () +-#endif +- + #ifndef SIG_TYPE + # define SIG_TYPE void (*)() + #endif +@@ -365,17 +359,16 @@ unsigned short codetab[HSIZE]; + } ; + #endif + +-int main ARGS((int,char **)); +-void Usage ARGS((int)); +-void comprexx ARGS((const char *)); +-void compdir ARGS((char *)); +-void compress ARGS((int,int)); +-void decompress ARGS((int,int)); +-void read_error ARGS((void)); +-void write_error ARGS((void)); +-void abort_compress ARGS((void)); +-void prratio ARGS((FILE *,long,long)); +-void about ARGS((void)); ++void Usage (int); ++void comprexx (const char *); ++void compdir (char *); ++void compress (int, int); ++void decompress (int, int); ++void read_error (void); ++void write_error (void); ++void abort_compress (void); ++void prratio (FILE *, long, long); ++void about (void); + + /***************************************************************** + * TAG( main ) +@@ -418,9 +411,7 @@ void about ARGS((void)); + * procedure needs no input table, but tracks the way the table was built. + */ + int +-main(argc, argv) +- int argc; +- char *argv[]; ++main(int argc, char *argv[]) + { + char **filelist; + char **fileptr; +@@ -632,8 +623,7 @@ Usage: %s [-dfhvcVr] [-b maxbits] [--] [path ...]\n\ + } + + void +-comprexx(fileptr) +- const char *fileptr; ++comprexx(const char *fileptr) + { + int fdin = -1; + int fdout = -1; +@@ -982,8 +972,7 @@ comprexx(fileptr) + + #ifdef RECURSIVE + void +-compdir(dir) +- char *dir; ++compdir(char *dir) + { + struct dirent *dp; + DIR *dirp; +@@ -1059,9 +1048,7 @@ compdir(dir) + * questions about this implementation to ames!jaw. + */ + void +-compress(fdin, fdout) +- int fdin; +- int fdout; ++compress(int fdin, int fdout) + { + long hp; + int rpos; +@@ -1294,9 +1281,7 @@ endlop: if (fcode.e.ent >= FIRST && rpos < rsize) + */ + + void +-decompress(fdin, fdout) +- int fdin; +- int fdout; ++decompress(int fdin, int fdout) + { + char_type *stackp; + code_int code; +@@ -1519,7 +1504,7 @@ resetbuf: ; + } + + void +-read_error() ++read_error(void) + { + fprintf(stderr, "\nread error on"); + perror((ifname[0] != '\0') ? ifname : "stdin"); +@@ -1527,7 +1512,7 @@ read_error() + } + + void +-write_error() ++write_error(void) + { + fprintf(stderr, "\nwrite error on"); + perror(ofname ? ofname : "stdout"); +@@ -1535,7 +1520,7 @@ write_error() + } + + void +-abort_compress() ++abort_compress(void) + { + if (remove_ofname) + unlink(ofname); +@@ -1544,10 +1529,7 @@ abort_compress() + } + + void +-prratio(stream, num, den) +- FILE *stream; +- long int num; +- long int den; ++prratio(FILE *stream, long int num, long int den) + { + int q; /* Doesn't need to be long */ + +@@ -1571,7 +1553,7 @@ prratio(stream, num, den) + } + + void +-about() ++about(void) + { + printf("Compress version: %s\n", version_id); + printf("Compile options:\n "); + + +From aa359df10ec29a56c12f6e5c2bcec8d8ecfa2740 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Mon, 8 Feb 2021 00:30:41 -0500 +Subject: [PATCH] mark all local functions as static + +This saves a small amount of space as the compiler can do better. +--- + compress.c | 20 ++++++++++---------- + 2 files changed, 11 insertions(+), 10 deletions(-) + +diff --git a/compress.c b/compress.c +index ff3b51b..86a8cda 100644 +--- a/compress.c ++++ b/compress.c +@@ -359,16 +359,16 @@ unsigned short codetab[HSIZE]; + } ; + #endif + +-void Usage (int); +-void comprexx (const char *); +-void compdir (char *); +-void compress (int, int); +-void decompress (int, int); +-void read_error (void); +-void write_error (void); +-void abort_compress (void); +-void prratio (FILE *, long, long); +-void about (void); ++static void Usage(int); ++static void comprexx(const char *); ++static void compdir(char *); ++static void compress(int, int); ++static void decompress(int, int); ++static void read_error(void); ++static void write_error(void); ++static void abort_compress(void); ++static void prratio(FILE *, long, long); ++static void about(void); + + /***************************************************************** + * TAG( main ) + +From 90810a7f11bf157b479c23c0fe6cee0bebec15c6 Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich +Date: Sat, 16 Nov 2024 18:49:48 +0000 +Subject: [PATCH] compress.c: fix -std=c23 build failure (signal handler + protos) + +gcc-15 switched to -std=c23 by default: + + https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=55e3bd376b2214e200fa76d12b67ff259b06c212 + +As a result `ncompress` fails the build as: + + compress.c: In function 'main': + compress.c:382:40: error: + passing argument 2 of 'signal' from incompatible pointer type [-Wincompatible-pointer-types] + 382 | signal(SIGINT, (SIG_TYPE)abort_compress); + | ^~~~~~~~~~~~~~~~~~~~~~~~ + | | + | void (*)(void) + In file included from compress.c:30: + ...-glibc-2.40-36-dev/include/signal.h:88:57: note: + expected '__sighandler_t' {aka 'void (*)(int)'} but argument is of type 'void (*)(void)' + 88 | extern __sighandler_t signal (int __sig, __sighandler_t __handler) + | ~~~~~~~~~~~~~~~^~~~~~~~~ + +The change removes type casts around function prototypes and define +signal handler as `void(*)(int)`. +--- + compress.c | 19 ++++++++++++------- + 1 file changed, 12 insertions(+), 7 deletions(-) + +diff --git a/compress.c b/compress.c +index da91603..ea8081e 100644 +--- a/compress.c ++++ b/compress.c +@@ -49,10 +49,6 @@ + }; + #endif + +-#ifndef SIG_TYPE +-# define SIG_TYPE void (*)() +-#endif +- + #if defined(AMIGA) || defined(DOS) || defined(MINGW) || defined(WINDOWS) + # define chmod(pathname, mode) 0 + # define chown(pathname, owner, group) 0 +@@ -327,6 +323,7 @@ static void decompress(int, int); + static void read_error(void); + static void write_error(void); + static void abort_compress(void); ++static void abort_compress_handler(int); + static void prratio(FILE *, long, long); + static void about(void); + +@@ -379,14 +376,14 @@ main(int argc, char *argv[]) + + #ifdef SIGINT + if ((fgnd_flag = (signal(SIGINT, SIG_IGN)) != SIG_IGN)) +- signal(SIGINT, (SIG_TYPE)abort_compress); ++ signal(SIGINT, abort_compress_handler); + #endif + + #ifdef SIGTERM +- signal(SIGTERM, (SIG_TYPE)abort_compress); ++ signal(SIGTERM, abort_compress_handler); + #endif + #ifdef SIGHUP +- signal(SIGHUP, (SIG_TYPE)abort_compress); ++ signal(SIGHUP, abort_compress_handler); + #endif + + #ifdef COMPATIBLE +@@ -1489,6 +1486,14 @@ abort_compress(void) + exit(1); + } + ++ ++void ++abort_compress_handler(int signo) ++ { ++ (void)signo; ++ abort_compress(); ++ } ++ + void + prratio(FILE *stream, long int num, long int den) + { diff --git a/sdk_container/src/third_party/portage-stable/app-arch/ncompress/ncompress-5.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/ncompress/ncompress-5.0-r2.ebuild new file mode 100644 index 00000000000..3df3f1e865a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-arch/ncompress/ncompress-5.0-r2.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +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" + +PATCHES=( + "${FILESDIR}"/${PN}-5.0-c23.patch +) + +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-arch/xz-utils/xz-utils-5.6.3.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/xz-utils/xz-utils-5.6.3.ebuild index 0a33785a8c4..eaceaea0ff5 100644 --- a/sdk_container/src/third_party/portage-stable/app-arch/xz-utils/xz-utils-5.6.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-arch/xz-utils/xz-utils-5.6.3.ebuild @@ -35,7 +35,7 @@ else " if [[ ${PV} != *_alpha* && ${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 S="${WORKDIR}/${MY_P}" diff --git a/sdk_container/src/third_party/portage-stable/app-arch/zip/zip-3.0-r7.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/zip/zip-3.0-r7.ebuild index 2962711cdf5..6cfcce9e073 100644 --- a/sdk_container/src/third_party/portage-stable/app-arch/zip/zip-3.0-r7.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-arch/zip/zip-3.0-r7.ebuild @@ -38,6 +38,8 @@ src_prepare() { } src_configure() { + # Needed for tricky configure tests w/ C23 (bug #943727) + export CC="$(tc-getCC) -std=gnu89" # Needed for Clang 16 append-flags -std=gnu89 diff --git a/sdk_container/src/third_party/portage-stable/app-cdr/cdrtools/cdrtools-3.02_alpha09-r5.ebuild b/sdk_container/src/third_party/portage-stable/app-cdr/cdrtools/cdrtools-3.02_alpha09-r5.ebuild index 10ca3ef7b73..7db0542ee92 100644 --- a/sdk_container/src/third_party/portage-stable/app-cdr/cdrtools/cdrtools-3.02_alpha09-r5.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-cdr/cdrtools/cdrtools-3.02_alpha09-r5.ebuild @@ -15,7 +15,7 @@ S=${WORKDIR}/${P/_alpha[0-9][0-9]} LICENSE="GPL-2 LGPL-2.1 CDDL-Schily" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos" +KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos" IUSE="acl caps nls unicode selinux" BDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/app-containers/netavark/netavark-1.11.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/netavark/netavark-1.11.0-r1.ebuild index 81168b09df4..35792c7d186 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/netavark/netavark-1.11.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/netavark/netavark-1.11.0-r1.ebuild @@ -15,7 +15,7 @@ if [[ ${PV} == 9999* ]]; then EGIT_REPO_URI="https://github.com/containers/netavark.git" else SRC_URI="${CARGO_CRATE_URIS} https://github.com/containers/netavark/releases/download/v${PV}/${PN}-v${PV}-vendor.tar.gz" - KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv" + KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv" fi # main diff --git a/sdk_container/src/third_party/portage-stable/app-containers/podman/Manifest b/sdk_container/src/third_party/portage-stable/app-containers/podman/Manifest index 775c408b2ad..d108df7e14f 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/podman/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-containers/podman/Manifest @@ -4,3 +4,4 @@ DIST podman-5.0.3.tar.gz 23814179 BLAKE2B 46385710e4d24f8eca3a7c98c18a97b96ecd46 DIST podman-5.1.1.tar.gz 23794366 BLAKE2B 0612a148972c96f532e96a8eb1ab388d80b32fe2ca7c5626e615748ef269a853407aeb39f34686d9eb75de239882e524cf5ee7c97152caccf5f77eb6ecfd54d8 SHA512 e896ee97980da4a522eb865d2eacb6876dd8bc5be1488aed8bd81a81af95faa1383b176b5d236d4af0f76bc30ddad5230df3e11c59ffc6f86e5b4cf3876ff184 DIST podman-5.2.4.tar.gz 23833172 BLAKE2B b04f9b7009d42eb15396ed918889c43e3164e433ca9eb8485c9c642ba121a48cd9030b365a3853935f01e323576931b199b3ba0d2ec90bacf2400e3bdfd60483 SHA512 c6dc05cb377ba6ca3bf7a8d7875c97af9e82b972812702e011e41f7922a4546166061dd5fb809fbef9dd13ee233744de7b7fe16906d8d9631133fc4205a980c5 DIST podman-5.2.5.tar.gz 23834863 BLAKE2B 2264c9b19e621a1269ae5baee6fee148e6f1b9cacbdd83fdbecf671f87855d0ae566e41e4e8cbffe57662b7e9a3d653d57a7d2acb8f30b869b8af1bd7473a617 SHA512 29f71c67a5700e8dffe45e6e91acab509d8c8924a5f3cf9b4eee95f665a9ed19333285df89da892699ee314cee27c0c8a4a62d29e4205198781f5d5f585135a9 +DIST podman-5.3.0.tar.gz 24194165 BLAKE2B fb2da37e4f97d69997b9518425bb1ec74846e4e26855bf9ece0eeefb723f603051d4d4a1b3320cdba5c97595db12e1948f280776429819d10bfe83a57f349c78 SHA512 3f1ab7e792850e2e21823c59ca9e03d348e78267e3ec5344a04c38e51466159717944c318cf5e61ad9a785d9112b468b9fc37f3b60a40e8764d5cac9f58e7d16 diff --git a/sdk_container/src/third_party/portage-stable/app-containers/podman/podman-5.3.0.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/podman/podman-5.3.0.ebuild new file mode 100644 index 00000000000..1deb45b1962 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-containers/podman/podman-5.3.0.ebuild @@ -0,0 +1,146 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..13} ) + +inherit go-module python-any-r1 tmpfiles toolchain-funcs linux-info + +DESCRIPTION="A tool for managing OCI containers and pods with Docker-compatible CLI" +HOMEPAGE="https://github.com/containers/podman/ https://podman.io/" + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/containers/podman.git" +else + SRC_URI="https://github.com/containers/podman/archive/v${PV/_rc/-rc}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/${P/_rc/-rc}" + [[ ${PV} != *rc* ]] && \ + KEYWORDS="~amd64 ~arm64 ~loong ~riscv" +fi + +# main pkg +LICENSE="Apache-2.0" +# deps +LICENSE+=" BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0" +SLOT="0" +IUSE="apparmor btrfs +seccomp selinux systemd wrapper" +RESTRICT="test" + +RDEPEND=" + app-containers/catatonit + >=app-containers/conmon-2.1.10 + >=app-containers/containers-common-0.58.0-r1 + app-crypt/gpgme:= + dev-libs/libassuan:= + dev-libs/libgpg-error:= + sys-apps/shadow:= + + apparmor? ( sys-libs/libapparmor ) + btrfs? ( sys-fs/btrfs-progs ) + wrapper? ( !app-containers/docker-cli ) + seccomp? ( sys-libs/libseccomp:= ) + selinux? ( sec-policy/selinux-podman sys-libs/libselinux:= ) + systemd? ( sys-apps/systemd:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + ${PYTHON_DEPS} + dev-go/go-md2man +" + +PATCHES=( + "${T}"/togglable-seccomp.patch +) + +CONFIG_CHECK=" + ~USER_NS +" + +pkg_setup() { + use btrfs && CONFIG_CHECK+=" ~BTRFS_FS" + linux-info_pkg_setup + python-any-r1_pkg_setup +} + +src_prepare() { + cat <<'EOF' > "${T}"/togglable-seccomp.patch || die +--- a/Makefile ++++ b/Makefile +@@ -56,7 +56,6 @@ BUILDTAGS ?= \ + $(shell hack/systemd_tag.sh) \ + $(shell hack/libsubid_tag.sh) \ + exclude_graphdriver_devicemapper \ +- seccomp + # allow downstreams to easily add build tags while keeping our defaults + BUILDTAGS += ${EXTRA_BUILDTAGS} + # N/B: This value is managed by Renovate, manual changes are +EOF + + default + + # assure necessary files are present + local file + for file in apparmor_tag btrfs_installed_tag btrfs_tag systemd_tag; do + [[ -f hack/"${file}".sh ]] || die + done + + local feature + for feature in apparmor systemd; do + cat <<-EOF > hack/"${feature}"_tag.sh || die + #!/usr/bin/env bash + $(usex ${feature} "echo ${feature}" echo) + EOF + done + + echo -e "#!/usr/bin/env bash\n echo" > hack/btrfs_installed_tag.sh || die + cat <<-EOF > hack/btrfs_tag.sh || die + #!/usr/bin/env bash + $(usex btrfs echo 'echo exclude_graphdriver_btrfs btrfs_noversion') + EOF +} + +src_compile() { + export PREFIX="${EPREFIX}/usr" + + # For non-live versions, prevent git operations which causes sandbox violations + # https://github.com/gentoo/gentoo/pull/33531#issuecomment-1786107493 + [[ ${PV} != 9999* ]] && export COMMIT_NO="" GIT_COMMIT="" EPOCH_TEST_COMMIT="" + + # Use proper pkg-config to get gpgme cflags and ldflags when + # cross-compiling, bug 930982. + if tc-is-cross-compiler; then + tc-export PKG_CONFIG + fi + + emake BUILDFLAGS="-v -work -x" GOMD2MAN="go-md2man" EXTRA_BUILDTAGS="$(usev seccomp)" SELINUXOPT= \ + all $(usev wrapper docker-docs) +} + +src_install() { + emake DESTDIR="${D}" SELINUXOPT= install install.completions $(usev wrapper install.docker-full) + + if use !systemd; then + newconfd "${FILESDIR}"/podman-5.0.0_rc4.confd podman + newinitd "${FILESDIR}"/podman-5.0.0_rc4.initd podman + + newinitd "${FILESDIR}"/podman-restart-5.0.0_rc4.initd podman-restart + newconfd "${FILESDIR}"/podman-restart-5.0.0_rc4.confd podman-restart + + newinitd "${FILESDIR}"/podman-clean-transient-5.0.0_rc6.initd podman-clean-transient + newconfd "${FILESDIR}"/podman-clean-transient-5.0.0_rc6.confd podman-clean-transient + + exeinto /etc/cron.daily + newexe "${FILESDIR}"/podman-auto-update-5.0.0.cron podman-auto-update + + insinto /etc/logrotate.d + newins "${FILESDIR}/podman.logrotated" podman + fi + + keepdir /var/lib/containers +} + +pkg_postinst() { + tmpfiles_process podman.conf $(usev wrapper podman-docker.conf) +} diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/Manifest b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/Manifest index dc87e8b9a1d..0a4d2ad865f 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/Manifest @@ -1,2 +1,4 @@ DIST gpgme-1.23.2.tar.bz2 1836904 BLAKE2B 563e470e861c7cc64ecb3e8dd0a0ed8436bc0867105093abcec09f4d1e1dd95cbf64c8161cf8500b9842583b57f6583efff63e5111234e36fda1e6fbedce2f78 SHA512 6cfcd07e81a93de240582de5a46545420cee93d1f27fe20ea2c983780fdd3036b69fdba073cf549d68a20791e189bf4b3cdde14a43f912d2ab9ef3414c83ac75 DIST gpgme-1.23.2.tar.bz2.sig 238 BLAKE2B fafba6e2f1f34c53fa3f7e05953298132f7b046048660b9f2df5bc11ccb9694b581117ca78883a8f4ca9af060397a39f3132a3711be1cd28183b7c2f8f93a8b7 SHA512 65b7cdd4ce06bb0b15b13033d226423380338efdcb47ffc3f33780a92973453053f8f59b12a3f37e392e773bdd207a7420c25aa3a210c15eec45b7bfef6e891e +DIST gpgme-1.24.0.tar.bz2 1889410 BLAKE2B 059045790c85e456c426fa5dab1cd2e6ffa6f279f1784f20c28ba2dc96b22b895115cc0fc707c9eba7bd347f7ce23b36ed477eebc3f972b81bdeacfee3b58f3f SHA512 f9d3786f27eaf88b6544a453e4b0f800cf2259d5321bf387bd1978c5ba5824b3746d28af4ec5491502cd4d5c776361805b75cb02d9bbbae26cf2a8fcfd86b871 +DIST gpgme-1.24.0.tar.bz2.sig 119 BLAKE2B 35a2960f6be62c3bfc9ea518904c5fe5e7f4e36ffa2f56b940548f7601e5b47fc3cdbf5026d6f7a080778b4e2387438ad099702f028e3d27caa59250f45b0a38 SHA512 0bb6049a44708baf3b8d001d1bb2b196f723464861404d82b9876bc2f15949d9a4438e7cc1cb0ead6f7c3e0f87bbb38a72264628fa5a116fb97a87c6c837c194 diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-1.24.0.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-1.24.0.ebuild new file mode 100644 index 00000000000..503a688b29e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-1.24.0.ebuild @@ -0,0 +1,178 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintainers should: +# 1. Join the "Gentoo" project at https://dev.gnupg.org/project/view/27/ +# 2. Subscribe to release tasks like https://dev.gnupg.org/T6159 +# (find the one for the current release then subscribe to it + +# any subsequent ones linked within so you're covered for a while.) + +DISTUTILS_EXT=1 +DISTUTILS_OPTIONAL=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{10..13} ) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc + +# in-source builds are not supported: +# * https://dev.gnupg.org/T6313#166339 +# * https://dev.gnupg.org/T6673#174545 +inherit distutils-r1 libtool flag-o-matic out-of-source qmake-utils toolchain-funcs verify-sig + +DESCRIPTION="GnuPG Made Easy is a library for making GnuPG easier to use" +HOMEPAGE="https://www.gnupg.org/related_software/gpgme" +SRC_URI=" + mirror://gnupg/gpgme/${P}.tar.bz2 + verify-sig? ( mirror://gnupg/gpgme/${P}.tar.bz2.sig ) +" + +LICENSE="GPL-2 LGPL-2.1" +# Please check ABI on each bump, even if SONAMEs didn't change: bug #833355 +# Use e.g. app-portage/iwdevtools integration with dev-libs/libabigail's abidiff. +# Subslot: SONAME of each: +# Bump FUDGE if a release is made which breaks ABI without changing SONAME. +# (Reset to 0 if FUDGE != 0 if libgpgme/libgpgmepp/libqpggme change.) +SLOT="1/11.6.15.2" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="common-lisp static-libs +cxx python qt5 qt6 test" +RESTRICT="!test? ( test )" +REQUIRED_USE=" + qt5? ( cxx ) + qt6? ( cxx ) + python? ( ${PYTHON_REQUIRED_USE} ) +" + +# - On each bump, update dep bounds on each version from configure.ac! +RDEPEND=" + >=app-crypt/gnupg-2 + >=dev-libs/libassuan-2.5.3:= + >=dev-libs/libgpg-error-1.46-r1:= + python? ( ${PYTHON_DEPS} ) + qt5? ( dev-qt/qtcore:5 ) + qt6? ( dev-qt/qtbase:6 ) +" +DEPEND=" + ${RDEPEND} + test? ( + qt5? ( dev-qt/qttest:5 ) + ) +" +#doc? ( app-text/doxygen[dot] ) +BDEPEND=" + python? ( + ${PYTHON_DEPS} + ${DISTUTILS_DEPS} + dev-lang/swig + ) + verify-sig? ( sec-keys/openpgp-keys-gnupg ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.18.0-tests-start-stop-agent-use-command-v.patch + "${FILESDIR}"/${PN}-1.23.1-tests-gnupg-no-tofu.patch +) + +src_prepare() { + default + + elibtoolize + + # bug #697456 + addpredict /run/user/$(id -u)/gnupg + + local MAX_WORKDIR=66 + if use test && [[ "${#WORKDIR}" -gt "${MAX_WORKDIR}" ]]; then + eerror "Unable to run tests as WORKDIR='${WORKDIR}' is longer than ${MAX_WORKDIR} which causes failure!" + die "Could not run tests as requested with too-long WORKDIR." + fi + + # Make best effort to allow longer PORTAGE_TMPDIR + # as usock limitation fails build/tests + ln -s "${P}" "${WORKDIR}/b" || die + S="${WORKDIR}/b" +} + +my_src_configure() { + # bug #847955 + append-lfs-flags + + cd "${BUILD_DIR}" || die + + local languages=( + $(usev common-lisp 'cl') + $(usev cxx 'cpp') + $(usev qt5 'qt5') + $(usev qt6 'qt6') + ) + + use qt5 && export MOC5="$(qt5_get_bindir)/moc" + use qt6 && export MOC6="$(qt6_get_libdir)/qt6/libexec/moc" + + local myeconfargs=( + $(use test || echo "--disable-gpgconf-test --disable-gpg-test --disable-gpgsm-test --disable-g13-test") + --enable-languages="${languages[*]}" + $(use_enable static-libs static) + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + + if use python ; then + emake -C lang/python prepare + + pushd lang/python > /dev/null || die + top_builddir="../.." srcdir="${S}/lang/python" CPP="$(tc-getCPP)" distutils-r1_src_configure + popd > /dev/null || die + fi +} + +my_src_compile() { + cd "${BUILD_DIR}" || die + + emake + + if use python ; then + pushd lang/python > /dev/null || die + top_builddir="../.." srcdir="${S}/lang/python" CPP="$(tc-getCPP)" distutils-r1_src_compile + popd > /dev/null || die + fi +} + +my_src_test() { + cd "${BUILD_DIR}" || die + + emake check + + if use python ; then + distutils-r1_src_test + fi +} + +python_test() { + emake -C lang/python/tests check \ + PYTHON=${EPYTHON} \ + PYTHONS=${EPYTHON} \ + TESTFLAGS="--python-libdir=${BUILD_DIR}/lib" +} + +my_src_install() { + einstalldocs + + cd "${BUILD_DIR}" || die + + emake DESTDIR="${D}" install + + if use python ; then + pushd lang/python > /dev/null || die + top_builddir="../.." srcdir="${S}/lang/python" CPP="$(tc-getCPP)" distutils-r1_src_install + popd > /dev/null || die + fi + + find "${ED}" -type f -name '*.la' -delete || die + + # Backward compatibility for gentoo + # (in the past, we had slots) + dodir /usr/include/gpgme + dosym -r /usr/include/gpgme.h /usr/include/gpgme/gpgme.h +} diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.21.3-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.21.3-r1.ebuild deleted file mode 100644 index d4a9b8582d0..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.21.3-r1.ebuild +++ /dev/null @@ -1,155 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..13} ) -inherit autotools flag-o-matic python-any-r1 systemd toolchain-funcs multilib-minimal - -MY_P="${P/mit-}" -P_DIR=$(ver_cut 1-2) -DESCRIPTION="MIT Kerberos V" -HOMEPAGE="https://web.mit.edu/kerberos/www/" -SRC_URI="https://web.mit.edu/kerberos/dist/krb5/${P_DIR}/${MY_P}.tar.gz" -S=${WORKDIR}/${MY_P}/src - -LICENSE="openafs-krb5-a BSD MIT OPENLDAP BSD-2 HPND BSD-4 ISC RSA CC-BY-SA-3.0 || ( BSD-2 GPL-2+ )" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="cpu_flags_x86_aes doc +keyutils lmdb nls openldap +pkinit selinux test xinetd" - -RESTRICT="!test? ( test )" - -DEPEND=" - !!app-crypt/heimdal - >=sys-fs/e2fsprogs-1.46.4-r51[${MULTILIB_USEDEP}] - || ( - >=dev-libs/libverto-0.2.5[libev,${MULTILIB_USEDEP}] - >=dev-libs/libverto-0.2.5[libevent,${MULTILIB_USEDEP}] - ) - keyutils? ( >=sys-apps/keyutils-1.5.8:=[${MULTILIB_USEDEP}] ) - lmdb? ( dev-db/lmdb:= ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - openldap? ( >=net-nds/openldap-2.4.38-r1:=[${MULTILIB_USEDEP}] ) - pkinit? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) - xinetd? ( sys-apps/xinetd ) - " -BDEPEND=" - ${PYTHON_DEPS} - >=sys-fs/e2fsprogs-1.46.4-r51[${MULTILIB_USEDEP}] - app-alternatives/yacc - cpu_flags_x86_aes? ( - amd64? ( dev-lang/yasm ) - x86? ( dev-lang/yasm ) - ) - doc? ( virtual/latex-base ) - test? ( dev-util/cmocka ) - " -RDEPEND="${DEPEND} - selinux? ( sec-policy/selinux-kerberos )" - -PATCHES=( - "${FILESDIR}/${PN}-1.12_warn_cflags.patch" - "${FILESDIR}/${PN}_dont_create_rundir.patch" - "${FILESDIR}/${PN}-1.18.2-krb5-config.patch" -) - -MULTILIB_CHOST_TOOLS=( - /usr/bin/krb5-config -) - -src_prepare() { - default - # Make sure we always use the system copies. - rm -rf util/{et,ss,verto} - sed -i 's:^[[:space:]]*util/verto$::' configure.ac || die - - eautoreconf -} - -src_configure() { - # lto-type-mismatch (bug #854225) - filter-lto - - multilib-minimal_src_configure -} - -multilib_src_configure() { - ECONF_SOURCE=${S} \ - AR="$(tc-getAR)" \ - WARN_CFLAGS="set" \ - econf \ - $(use_with openldap ldap) \ - $(use_enable nls) \ - $(use_enable pkinit) \ - $(use_with lmdb) \ - $(use_with keyutils) \ - --without-hesiod \ - --enable-shared \ - --with-system-et \ - --with-system-ss \ - --enable-dns-for-realm \ - --enable-kdc-lookaside-cache \ - --with-system-verto \ - --enable-thread-support \ - --disable-rpath -} - -multilib_src_compile() { - emake -j1 -} - -multilib_src_test() { - multilib_is_native_abi && emake -j1 check -} - -multilib_src_install() { - emake \ - DESTDIR="${D}" \ - EXAMPLEDIR="${EPREFIX}/usr/share/doc/${PF}/examples" \ - install -} - -multilib_src_install_all() { - # default database dir - keepdir /var/lib/krb5kdc - - cd .. - dodoc README - - newinitd "${FILESDIR}"/mit-krb5kadmind.initd-r2 mit-krb5kadmind - newinitd "${FILESDIR}"/mit-krb5kdc.initd-r2 mit-krb5kdc - newinitd "${FILESDIR}"/mit-krb5kpropd.initd-r2 mit-krb5kpropd - newconfd "${FILESDIR}"/mit-krb5kadmind.confd mit-krb5kadmind - newconfd "${FILESDIR}"/mit-krb5kdc.confd mit-krb5kdc - newconfd "${FILESDIR}"/mit-krb5kpropd.confd mit-krb5kpropd - - systemd_newunit "${FILESDIR}"/mit-krb5kadmind.service mit-krb5kadmind.service - systemd_newunit "${FILESDIR}"/mit-krb5kdc.service mit-krb5kdc.service - systemd_newunit "${FILESDIR}"/mit-krb5kpropd.service mit-krb5kpropd.service - systemd_newunit "${FILESDIR}"/mit-krb5kpropd_at.service "mit-krb5kpropd@.service" - systemd_newunit "${FILESDIR}"/mit-krb5kpropd.socket mit-krb5kpropd.socket - - insinto /etc - newins "${ED}/usr/share/doc/${PF}/examples/krb5.conf" krb5.conf.example - insinto /var/lib/krb5kdc - newins "${ED}/usr/share/doc/${PF}/examples/kdc.conf" kdc.conf.example - - if use openldap ; then - dodoc "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.ldif" - dodoc "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.openldap.ldif" - insinto /etc/openldap/schema - doins "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.schema" - fi - - if use xinetd ; then - insinto /etc/xinetd.d - newins "${FILESDIR}/kpropd.xinetd" kpropd - fi - - if use doc; then - dodoc -r doc/html - docinto pdf - dodoc doc/pdf/*.pdf - fi -} diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.21.3.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.21.3.ebuild index 7456a0e9e8c..f795a00e77f 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.21.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-crypt/mit-krb5/mit-krb5-1.21.3.ebuild @@ -37,6 +37,7 @@ DEPEND=" BDEPEND=" ${PYTHON_DEPS} app-alternatives/yacc + >=sys-fs/e2fsprogs-1.46.4-r51 cpu_flags_x86_aes? ( amd64? ( dev-lang/yasm ) x86? ( dev-lang/yasm ) @@ -70,6 +71,9 @@ src_configure() { # lto-type-mismatch (bug #854225) filter-lto + # https://github.com/krb5/krb5/pull/1304 (bug #944006) + append-cflags -std=gnu17 + multilib-minimal_src_configure } diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/p11-kit-0.25.5.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/p11-kit-0.25.5.ebuild index 0c23a73251f..a45bc6063cc 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/p11-kit-0.25.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/p11-kit-0.25.5.ebuild @@ -4,7 +4,7 @@ EAPI=8 PYTHON_COMPAT=( python3_{10..13} ) -inherit bash-completion-r1 meson-multilib python-any-r1 +inherit bash-completion-r1 flag-o-matic meson-multilib python-any-r1 DESCRIPTION="Provides a standard configuration setup for installing PKCS#11" HOMEPAGE="https://p11-glue.github.io/p11-glue/p11-kit.html" @@ -43,6 +43,9 @@ src_prepare() { } multilib_src_configure() { + # https://github.com/p11-glue/p11-kit/issues/664 + append-cflags -std=gnu17 + # Disable unsafe tests, bug#502088 export FAKED_MODE=1 diff --git a/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/Manifest b/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/Manifest index 40e56bf160d..20a4ccd1dd7 100644 --- a/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/Manifest @@ -1,2 +1,2 @@ -DIST eclass-manpages-20241015.tar.xz 455572 BLAKE2B a6d3a92bf1a24c36f44e80c00f4e7779b88f42c0a33583793a6e8f6c1427e8295967c0855c876a363fa219b10dbc8a1848a57f307de6deca8fd966640ee3121b SHA512 cabe349aadf8f5f00adf72a04cb10ce0f3ed12c49e5f4c151a5da31223941ee7c1e71b7c84fb8a6dfd6eb14f176792132feb6cd04a1123ed17300b429dcb9878 -DIST eclass-manpages-20241109.tar.xz 455884 BLAKE2B 73858e8605c3ab347e470dacb857fe96dda58cc31530759e65a59bcc7c94a1a55e90d3f7a8fec7916e2d9f23c649c235aa30391ca40f145dc0cf26758e54842f SHA512 44d8c324438948a4fa3e4c6f790bc3ab3c110af10ae7ef1226b3c57b965a1829df19b23fa5721fbb79373b03ae36a56a74f0a4cb957094380aca0bdfb302f222 +DIST eclass-manpages-20241115.tar.xz 456160 BLAKE2B eeaa4c964dbc784ae6351b89c4a8d6bac15c80cfefc4c3df17b3a243b1f95c682ca2d25fcf62a2fb23dc9b47f18f468dd43b9a73588cb9e38b7bbe90ed616773 SHA512 42152fd59a660b63a0bb50f285dfb95de132d3687833491b92ce91602fcc10fde1419ab985763c61d32c4753b350070ee47a3fd163d3b31636f27ac31ce3dafd +DIST eclass-manpages-20241117.tar.xz 456132 BLAKE2B 7111d9817b32ede80fb1e917f43e94b9342573684b715b874a2d880121840bbe67fa7c5aff95f5e7c99a25f2ae5beebadb3326c3a0df7117e99c0903cdcf3052 SHA512 73e28a2c40e89bbe2ba6611dc70c0b0320c8cf981b479ba3be86165d0b90c75f84c209d203d0ad612544709da881f7549d66560b4bccdb73209586d1a2cf8590 diff --git a/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20241015.ebuild b/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20241115.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20241015.ebuild rename to sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20241115.ebuild diff --git a/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20241109.ebuild b/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20241117.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20241109.ebuild rename to sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20241117.ebuild diff --git a/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.1.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.1.ebuild index c5887d078ab..63b2294bfea 100644 --- a/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.1.ebuild @@ -9,7 +9,7 @@ if [[ ${PV} == 9999 ]] ; then else MY_P="${PN}-${PV/_}" SRC_URI="https://www.nano-editor.org/dist/v${PV:0:1}/${MY_P}.tar.xz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi DESCRIPTION="GNU GPL'd Pico clone with more functionality" diff --git a/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.2.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.2.ebuild index 33dcb4d8418..c5887d078ab 100644 --- a/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.2.ebuild @@ -9,7 +9,7 @@ if [[ ${PV} == 9999 ]] ; then else MY_P="${PN}-${PV/_}" SRC_URI="https://www.nano-editor.org/dist/v${PV:0:1}/${MY_P}.tar.xz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi DESCRIPTION="GNU GPL'd Pico clone with more functionality" diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/Manifest b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/Manifest index 4a1a81357fb..0dc81badcfe 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/Manifest @@ -6,6 +6,7 @@ DIST qemu-7.2.11.tar.xz 121877020 BLAKE2B c546773b9ac7809b39a3afa51da5b1c06c3765 DIST qemu-7.2.12.tar.xz 124399872 BLAKE2B df0afc8de23f3df7b0ada301584f1d96c7add69ec16755c5b75eced88827ec2719ba79c9191da5c77f00872bf2c492b24b08f310954e5ca97249debd5e520cda SHA512 239623f6f3c15b85ce8da27adb8123886a2b56971742d2a11cde58b0dfac40de1592e1e33591306b830c5cee051d11b00d1bdccf414cc7b111dab79b65b1cf92 DIST qemu-7.2.13.tar.xz 124399088 BLAKE2B 7d0b86862e663b20e918a211f661aff0bf8eeb480cffef9eba51c819d817368db33989bcc4f1673dd278d1f0f91f7991e22a24fca828559d8da225fdb8a1836b SHA512 be6a1d2efb111c09456be97a431a8881667b0a1d356a9901e6582b9720143826d4719778c228eb342ec865b5a3dc21444ebe296be56e1edafd16ab1b3aef3ae2 DIST qemu-7.2.14.tar.xz 124392436 BLAKE2B bf4141a910ebd393edc2df3b105c18bbb1d91241a6e2992ceb591b5097dc846fd74171b9c8ffe71e6a7c847277dd17600286da411ae7750e8eae39c0180b5264 SHA512 3fedf9b55ec97faec449f483433e616d8a384933556997bee50b170bb854faa1eb89e43400cc97acea268575bc92b57d8e921e00d4858bc8991fe04a2c2893ff +DIST qemu-7.2.15.tar.xz 124418604 BLAKE2B 629cb5158cdd790947687a06f4c16bf838ae7b0eb5596bc16bb510dfe838bfcc6ed8e7776962bb6d5ab14379cba1a1f6b12683be370eb4e5debce1ecc446b156 SHA512 e8acc9ea6e70bd4dfb0956e01ee212c592c7b99f5dc0676824eb7cba0aeeb863c1d41df9174771fa775f58ca368c745b2fd7356a3c3fa901a11a33dae24d781a DIST qemu-8.0.0-docs.tar.xz 3218024 BLAKE2B b764a625024e78a39470048355471e12cfb57ab3c34e764dc4200fdf5c1aea635d26095ec961979bf46f177101c5bd38618bacf7e98e04bd64688ab5e29591aa SHA512 d9dfe191372e105fe16fe8f66f41ed793ade4c89b5ab1d84b39459f3419a1ca61bd49422a83981965cc257c05eca7fd49054703f58f179f5c7b656e9473a1054 DIST qemu-8.0.5.tar.xz 126175064 BLAKE2B 1d1f78c185ab64b4ca946a44ad04d0bbb6ea48de058037e4ba18176abeb0f0528754c6e832f742f93227182bbce145544eca5b908a366006e7ee58876aca0bda SHA512 ec9679473dda84a2f56ae8ee0039ec4dafb056414bfc5a3a147b2b6bb45ae3b130dd80f6385e8567b5d18f4be94f3536bc8acc45c61eddf40c9678b46cb8bddc DIST qemu-8.1.0-docs.tar.xz 2129912 BLAKE2B 8aaf7b748538afdb5bcb6da15dbd96572d086824377c4b0e93f1ddc695f9a4775471e360a9616d2d481dbf8113e91d2601c69d92cef565fb90b65ffacfdb304e SHA512 905515742bb56a439fc8117ec48ea668e7b2bf0244587673e4352d9e8e49911eb84ff093596ff566e44787197cf9789ec8950e3d75fb7a670c5546394a322ac9 @@ -15,10 +16,13 @@ DIST qemu-8.2.3.tar.xz 130106716 BLAKE2B 2ec91b5111952434686064bd603880d87c4f567 DIST qemu-8.2.5.tar.xz 132743988 BLAKE2B 24da4350cfe5a46771ea257b7baba48f02465c87e819ad3cc0557c06814f24f442ba3b97661af74d5235e31e7883b7c62d108e3180f7ce9e4be524ec966d07d0 SHA512 b95de309d790033452687b488ba869940bc40862ebbc9d91edbeee840e4ffc0b4cae43e1bfcd00f5534da126c62072b7b5309da6d74d30ba537e4c7b430f4255 DIST qemu-8.2.6.tar.xz 132750000 BLAKE2B da5fdb03fcb44cf764d2ccaf9011b726e5c152d8659ca91550cd04b3e578e7f9bf2cc050b38a64055103775e64303ae949cf7e2cde5508f8a4b976d1311631c5 SHA512 ba702306df0c2a6744fff6fdca5f251ebc572230ee4674113433c74f74187ba33457ea9716d9023aa48cc1e6887af132a2877c30ea098da9ed23e95d4691b88b DIST qemu-8.2.7.tar.xz 132676368 BLAKE2B 92235f1a30e1d44cf9f7e40e71e9df0375c5eb2d8b267c35df51e102e560f399e4d3f70c674d7b9e206728d9c4a1bafee5ae8f1a91cda900b422f9a6a48c15a8 SHA512 9806bae62d2bdf0781b6bd1c4d7e88bb97019ca5e85140714d7818912603aed1d522a5d29f3434888974ab73e0cfae8b4136ea018b05dcc2d6f6c8b6252075cd +DIST qemu-8.2.8.tar.xz 132682628 BLAKE2B 04ed01c70e0b786f513b0cc7f4db572f93b65ec2a94368d7175efd8eeca62262bcd4dec66f9e0971a1be3ac6686e8cf59479d1ba35b686aee31f2a1840d21b44 SHA512 b89f0939c4b381c5b7d1d23be48e0319c02552f9a1bf2a2399671bc33fd6855d48901ffe26d97c1a547dd50431a0b9c998d4ae1f0c90b2cd990b00c42b711d0b DIST qemu-9.0.0-docs.tar.xz 2290196 BLAKE2B 82d22637ff2629bee372550e86651f12051ea6b4a57e314ef83f290425d4973ef01827eaf28a85b635788f22cb7cc1c747438b7525c92c99b90b234fb8f7655c SHA512 7c0ba1f3e7bbaa4e3feebc33a1946a5c190f2c14b9ed78b15c1f642668c8124960f8c85bcf36fe54a10d4edef47d2256e500f06d9173b92b03c599811a15a073 DIST qemu-9.0.1.tar.xz 132368412 BLAKE2B e96ae5cc3ee935dd31232d38d46bbdc74fd3a2a0dd8517c0e035757f3ded92712dfa68d0068cd8c37f314a92d237e2b4a725b509ba402b7a1ce92df63207a08d SHA512 6c120aaf52f15e79c32d883cc83df8fc83222d538ea6be9c19aaddfba0aef91479b5826bbc03e58688fba639cb24bc6f54e525ccc2404ed5d820766d11735210 DIST qemu-9.0.2.tar.xz 132387528 BLAKE2B 6b5301f985919ae53e056410be7486b8150a65016127568bd4d58f596e94960d08eb3fc57cff7ff6a3435d71274adee516f57375d856d61b4fc7a3f24cbf75c4 SHA512 58ed84f6fe6263d279356bc9193f96edf62cf3663fb151daa3f047d52329fe49cb91c2d45e09697e0469f4f5409be96403aec9572d4871ffa40848a786c21599 DIST qemu-9.0.3.tar.xz 132420136 BLAKE2B af44ee6d3e59c28bb84cbf78a4793fa120a7cb811ab0fb0aba7b61d0b2eeb0e47dd094a4a0af9570e26d584f7ae867d46b6f61903610e155deb6479d8ea60fa4 SHA512 fcd72896ae9f9f654628540e09472c8388d980f8081990ee541f3540f92c5fd0d9332fa343dc9eaa6d7fe3dc2a5668d7d5c3784ba9d49bd7df9d37a4f9df7572 +DIST qemu-9.0.4.tar.xz 132422348 BLAKE2B 8e7bb46462d924fa0a2bbe0fc5ddf5901732444e9fdfecb15e7ce2ff4717c71bd51fccc684b68171c03335c1a4d998fa660a22457f514ae51a3671975ad4d6a5 SHA512 48e0e7850c064c6517552f93db551ad31bd88c159b241ccfbdb205e018dae8d27ae8fe76a0767cbaf4f151649f8848536f1963e4976e16a6d97f429995028d67 DIST qemu-9.1.0-docs.tar.xz 2376072 BLAKE2B 31d13133b3a2e21a7d9b5af028407610ae8f2fa61dd296fc35e57fc12eb66cfd1a39ec5e3b5a3852095d10a388f424f8a38417b3ab58ca30d0817ece779328cf SHA512 5b705b577daad6aa010d5c713db9dc314114334b89901840ebcecc9032595a969f5ad9054e42b36b2be5ef9f5d6dc1159841ff46dbb08314b5c48491aa631040 DIST qemu-9.1.0.tar.xz 132478356 BLAKE2B 77bdaf00e6111e6ac94462a6023aac0d3df9d2829a961fd89a5bdafc4aee7f95c2695d9319715e630960e64512a41b3ff987c9096692ff304cfd49357b46ef62 SHA512 bf61d65e37945fa8ee8640712c719ace05164d86e6df700b98bdc5f79e0a8d5e8f85bd48e726edb62b2419db20673f63ec8b63a60393a914b09cb365621b35e2 DIST qemu-9.1.1.tar.xz 132584840 BLAKE2B 140e8b334fa83ddae397a519ec352108d942d3581baf591780b58ace2e21a74a9f31e97cbaa5c60e8ab45fd8147852a7de539e83c072777b4c71c5ba630f636c SHA512 cbf2e43d54eafe776dd8245a91ff3c28bbe6206b62205addb25b49ffaac79cefc49c9df082c28aedc17ffc4a67db6352fc7a97895887ccbbb1ce198981e242b4 +DIST qemu-9.1.2.tar.xz 132481332 BLAKE2B 2cbc55e09a8d46fe0c9e3e7e54b6cf4490bef01e8d6fc295158e8f823678cfaedf2f95b8256205cdb14db6e11b932378dee9f653c35c2f1d7e843304336aa2e0 SHA512 ff6ed9bc784f1aa7cf06604d0e38e26ebb2685885893a2cb7d044297f26d7efd0fa6cbb034dc1c422b58504ca1081b46ffe00dd8f9fab928cafa8cfc0d7d1747 diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/metadata.xml b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/metadata.xml index 7deef8b7711..6b037ef131a 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/metadata.xml @@ -48,7 +48,6 @@ Build the User targets as static binaries Build the User and Software MMU (system) targets as well as tools as static binaries Enable SystemTap/DTrace tracing - Enable jemalloc allocator support Enable jpeg image support for the VNC console server Enable png image support for the VNC console server Enable USB passthrough via dev-libs/libusb @@ -64,6 +63,9 @@ Enables support for Xen backends + https://gitlab.com/qemu-project/qemu/-/issues + https://wiki.qemu.org/ChangeLog + https://www.qemu.org/docs/master qemu-project/qemu diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-7.2.15.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-7.2.15.ebuild new file mode 100644 index 00000000000..08f05e58f7d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-7.2.15.ebuild @@ -0,0 +1,979 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs +# Set to 1 if prebuilt, 0 if not +# (the construct below is to allow overriding from env for script) +QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1} +QEMU_DOCS_PREBUILT_DEV=ajak +QEMU_DOCS_VERSION="7.2.0" +# Default to generating docs (inc. man pages) if no prebuilt; overridden later +# bug #830088 +QEMU_DOC_USEFLAG="+doc" + +PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_REQ_USE="ncurses,readline" + +FIRMWARE_ABI_VERSION="7.2.0" + +inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \ + pax-utils xdg-utils + +if [[ ${PV} == *9999* ]]; then + QEMU_DOCS_PREBUILT=0 + + EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/" + EGIT_SUBMODULES=( + tests/fp/berkeley-softfloat-3 + tests/fp/berkeley-testfloat-3 + ui/keycodemapdb + ) + inherit git-r3 + SRC_URI="" +else + MY_P="${PN}-${PV/_rc/-rc}" + SRC_URI="https://download.qemu.org/${MY_P}.tar.xz" + + if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then + SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )" + fi + + S="${WORKDIR}/${MY_P}" + [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" +fi + +DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools" +HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org" + +LICENSE="GPL-2 LGPL-2 BSD-2" +SLOT="0" + +[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc" + +IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG} + +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring + jack jemalloc +jpeg + lzo multipath + ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs + plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux + +slirp + smartcard snappy spice ssh static static-user systemtap test udev usb + usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen + zstd" + +COMMON_TARGETS=" + aarch64 + alpha + arm + cris + hppa + i386 + loongarch64 + m68k + microblaze + microblazeel + mips + mips64 + mips64el + mipsel + nios2 + or1k + ppc + ppc64 + riscv32 + riscv64 + s390x + sh4 + sh4eb + sparc + sparc64 + x86_64 + xtensa + xtensaeb +" +IUSE_SOFTMMU_TARGETS=" + ${COMMON_TARGETS} + avr + rx + tricore +" +IUSE_USER_TARGETS=" + ${COMMON_TARGETS} + aarch64_be + armeb + hexagon + mipsn32 + mipsn32el + ppc64le + sparc32plus +" + +use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS}) +use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS}) +IUSE+=" ${use_softmmu_targets} ${use_user_targets}" + +RESTRICT="!test? ( test )" + +# Allow no targets to be built so that people can get a tools-only build. +# Block USE flag configurations known to not work. +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + qemu_softmmu_targets_arm? ( fdt ) + qemu_softmmu_targets_microblaze? ( fdt ) + qemu_softmmu_targets_mips64el? ( fdt ) + qemu_softmmu_targets_ppc64? ( fdt ) + qemu_softmmu_targets_ppc? ( fdt ) + qemu_softmmu_targets_riscv32? ( fdt ) + qemu_softmmu_targets_riscv64? ( fdt ) + qemu_softmmu_targets_x86_64? ( fdt ) + sdl-image? ( sdl ) + static? ( static-user !alsa !gtk !jack !opengl !pam !pulseaudio !plugins !rbd !snappy !udev ) + static-user? ( !plugins ) + virgl? ( opengl ) + virtfs? ( xattr ) + vnc? ( gnutls ) + vte? ( gtk ) + multipath? ( udev ) + plugins? ( !static !static-user ) +" +for smname in ${IUSE_SOFTMMU_TARGETS} ; do + REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( seccomp ) " +done + +# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) +# and user/softmmu targets (qemu-*, qemu-system-*). +# +# Yep, you need both libcap and libcap-ng since virtfs only uses libcap. +# +# The attr lib isn't always linked in (although the USE flag is always +# respected). This is because qemu supports using the C library's API +# when available rather than always using the external library. +ALL_DEPEND=" + dev-libs/glib:2[static-libs(+)] + sys-libs/zlib[static-libs(+)] + python? ( ${PYTHON_DEPS} ) + systemtap? ( dev-debug/systemtap ) + xattr? ( sys-apps/attr[static-libs(+)] )" + +# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) +# softmmu targets (qemu-system-*). +SOFTMMU_TOOLS_DEPEND=" + sys-libs/libcap-ng[static-libs(+)] + >=x11-libs/pixman-0.28.0[static-libs(+)] + accessibility? ( + app-accessibility/brltty[api] + app-accessibility/brltty[static-libs(+)] + ) + aio? ( dev-libs/libaio[static-libs(+)] ) + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + bpf? ( dev-libs/libbpf:= ) + bzip2? ( app-arch/bzip2[static-libs(+)] ) + capstone? ( dev-libs/capstone:=[static-libs(+)] ) + curl? ( >=net-misc/curl-7.15.4[static-libs(+)] ) + fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] ) + fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] ) + glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] ) + gnutls? ( + >=net-libs/gnutls-3.0:=[static-libs(+)] + dev-libs/nettle:=[static-libs(+)] + ) + gtk? ( + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3 + x11-libs/libX11 + vte? ( x11-libs/vte:2.91 ) + ) + infiniband? ( sys-cluster/rdma-core[static-libs(+)] ) + iscsi? ( net-libs/libiscsi ) + io-uring? ( sys-libs/liburing:=[static-libs(+)] ) + jack? ( virtual/jack ) + jemalloc? ( dev-libs/jemalloc ) + jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] ) + lzo? ( dev-libs/lzo:2[static-libs(+)] ) + multipath? ( sys-fs/multipath-tools ) + ncurses? ( + sys-libs/ncurses:=[unicode(+)] + sys-libs/ncurses:=[static-libs(+)] + ) + nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] ) + numa? ( sys-process/numactl[static-libs(+)] ) + opengl? ( + virtual/opengl + media-libs/libepoxy[static-libs(+)] + media-libs/mesa[static-libs(+)] + media-libs/mesa[egl(+),gbm(+)] + ) + pam? ( sys-libs/pam ) + png? ( media-libs/libpng:0=[static-libs(+)] ) + pulseaudio? ( media-libs/libpulse ) + rbd? ( sys-cluster/ceph ) + sasl? ( dev-libs/cyrus-sasl[static-libs(+)] ) + sdl? ( + media-libs/libsdl2[video] + media-libs/libsdl2[static-libs(+)] + ) + sdl-image? ( media-libs/sdl2-image[static-libs(+)] ) + seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] ) + slirp? ( net-libs/libslirp[static-libs(+)] ) + smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] ) + snappy? ( app-arch/snappy:= ) + spice? ( + >=app-emulation/spice-protocol-0.12.3 + >=app-emulation/spice-0.12.0[static-libs(+)] + ) + ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] ) + udev? ( virtual/libudev:= ) + usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] ) + usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] ) + vde? ( net-misc/vde[static-libs(+)] ) + virgl? ( media-libs/virglrenderer[static-libs(+)] ) + virtfs? ( sys-libs/libcap ) + xen? ( app-emulation/xen-tools:= ) + zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] ) +" + +EDK2_OVMF_VERSION="202202" +SEABIOS_VERSION="1.16.0" + +X86_FIRMWARE_DEPEND=" + pin-upstream-blobs? ( + ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + ~sys-firmware/ipxe-1.21.1[binary,qemu] + ~sys-firmware/seabios-bin-${SEABIOS_VERSION} + ~sys-firmware/sgabios-0.1_pre10[binary] + ) + !pin-upstream-blobs? ( + || ( + >=sys-firmware/edk2-${EDK2_OVMF_VERSION} + >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + ) + sys-firmware/ipxe[qemu] + || ( + >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] + >=sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + sys-firmware/sgabios + )" +PPC_FIRMWARE_DEPEND=" + pin-upstream-blobs? ( + ~sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + !pin-upstream-blobs? ( + || ( + >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] + >=sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + ) +" + +BDEPEND=" + $(python_gen_impl_dep) + dev-lang/perl + dev-build/meson + sys-apps/texinfo + virtual/pkgconfig + doc? ( + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] + ) + gtk? ( nls? ( sys-devel/gettext ) ) + test? ( + dev-libs/glib[utils] + app-alternatives/bc + ) +" +CDEPEND=" + !static? ( + ${ALL_DEPEND//\[static-libs(+)]} + ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]} + ) + qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} ) +" +DEPEND="${CDEPEND} + kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 ) + static? ( + ${ALL_DEPEND} + ${SOFTMMU_TOOLS_DEPEND} + ) + static-user? ( ${ALL_DEPEND} )" +RDEPEND="${CDEPEND} + acct-group/kvm + selinux? ( + sec-policy/selinux-qemu + sys-libs/libselinux + )" + +PATCHES=( + "${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch + "${FILESDIR}"/${PN}-6.0.0-make.patch + "${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch + "${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch + "${FILESDIR}"/${PN}-7.2.0-disable-gmp.patch +) + +QA_PREBUILT=" + usr/share/qemu/hppa-firmware.img + usr/share/qemu/openbios-ppc + usr/share/qemu/openbios-sparc64 + usr/share/qemu/openbios-sparc32 + usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf + usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf + usr/share/qemu/palcode-clipper + usr/share/qemu/s390-ccw.img + usr/share/qemu/s390-netboot.img + usr/share/qemu/u-boot.e500 +" + +QA_WX_LOAD="usr/bin/qemu-i386 + usr/bin/qemu-x86_64 + usr/bin/qemu-alpha + usr/bin/qemu-arm + usr/bin/qemu-cris + usr/bin/qemu-m68k + usr/bin/qemu-microblaze + usr/bin/qemu-microblazeel + usr/bin/qemu-mips + usr/bin/qemu-mipsel + usr/bin/qemu-or1k + usr/bin/qemu-ppc + usr/bin/qemu-ppc64 + usr/bin/qemu-sh4 + usr/bin/qemu-sh4eb + usr/bin/qemu-sparc + usr/bin/qemu-sparc64 + usr/bin/qemu-armeb + usr/bin/qemu-sparc32plus + usr/bin/qemu-s390x + usr/bin/qemu-unicore32 +" + +DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the +kernel module loaded before running kvm. The easiest way to ensure that the +kernel module is loaded is to load it on boot. + For AMD CPUs the module is called 'kvm-amd'. + For Intel CPUs the module is called 'kvm-intel'. +Please review /etc/conf.d/modules for how to load these. + +Make sure your user is in the 'kvm' group. Just run + $ gpasswd -a kvm +then have re-login. + +For brand new installs, the default permissions on /dev/kvm might not let +you access it. You can tell udev to reset ownership/perms: + $ udevadm trigger -c add /dev/kvm + +If you want to register binfmt handlers for qemu user targets: +For openrc: + # rc-update add qemu-binfmt +For systemd: + # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf" + +pkg_pretend() { + if use kernel_linux && kernel_is lt 2 6 25; then + eerror "This version of KVM requires a host kernel of 2.6.25 or higher." + elif use kernel_linux; then + if ! linux_config_exists; then + eerror "Unable to check your kernel for KVM support" + else + CONFIG_CHECK="~KVM ~TUN ~BRIDGE" + ERROR_KVM="You must enable KVM in your kernel to continue" + ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in" + ERROR_KVM_AMD+=" your kernel configuration." + ERROR_KVM_INTEL="If you have an Intel CPU, you must enable" + ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration." + ERROR_TUN="You will need the Universal TUN/TAP driver compiled" + ERROR_TUN+=" into your kernel or loaded as a module to use the" + ERROR_TUN+=" virtual network device if using -net tap." + ERROR_BRIDGE="You will also need support for 802.1d" + ERROR_BRIDGE+=" Ethernet Bridging for some network configurations." + use vhost-net && CONFIG_CHECK+=" ~VHOST_NET" + ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net" + ERROR_VHOST_NET+=" support" + + if use amd64 || use x86 || use amd64-linux || use x86-linux; then + if grep -q AuthenticAMD /proc/cpuinfo; then + CONFIG_CHECK+=" ~KVM_AMD" + elif grep -q GenuineIntel /proc/cpuinfo; then + CONFIG_CHECK+=" ~KVM_INTEL" + fi + fi + + use python && CONFIG_CHECK+=" ~DEBUG_FS" + ERROR_DEBUG_FS="debugFS support required for kvm_stat" + + # Now do the actual checks setup above + check_extra_config + fi + fi + + if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then + eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt" + eerror "instances are still pointing to it. Please update your" + eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag" + eerror "and the right system binary (e.g. qemu-system-x86_64)." + die "update your virt configs to not use qemu-kvm" + fi +} + +# Sanity check to make sure target lists are kept up-to-date. +check_targets() { + local var=$1 mak=$2 + local detected sorted + + pushd "${S}"/configs/targets/ >/dev/null || die + + # Force C locale until glibc is updated. #564936 + detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u)) + sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u)) + if [[ ${sorted} != "${detected}" ]] ; then + eerror "The ebuild needs to be kept in sync." + eerror "${var}: ${sorted}" + eerror "$(printf '%-*s' ${#var} configure): ${detected}" + die "sync ${var} to the list of targets" + fi + + popd >/dev/null +} + +src_prepare() { + check_targets IUSE_SOFTMMU_TARGETS softmmu + check_targets IUSE_USER_TARGETS linux-user + + default + + # Use correct toolchain to fix cross-compiling + tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS + export WINDRES=${CHOST}-windres + + # Workaround for bug #938302 + if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then + cat >> "${S}"/configs/meson/linux.txt <<-EOF || die + [binaries] + dtrace='stap-dtrace' + EOF + fi + + # Verbose builds + MAKEOPTS+=" V=1" + + # We already force -D_FORTIFY_SOURCE=2 (or 3) in our toolchain, but + # this setting (-U then -D..=2) will prevent us from trying out 3, so + # drop it. No change to level of protection b/c we patch our toolchain. + sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die + + # Remove bundled modules + rm -r dtc meson roms/*/ || die +} + +## +# configures qemu based on the build directory and the build type +# we are using. +# +qemu_src_configure() { + debug-print-function ${FUNCNAME} "$@" + + local buildtype=$1 + local builddir="${S}/${buildtype}-build" + + mkdir "${builddir}" || die + + local conf_opts=( + --prefix=/usr + --sysconfdir=/etc + --bindir=/usr/bin + --libdir=/usr/$(get_libdir) + --datadir=/usr/share + --docdir=/usr/share/doc/${PF}/html + --mandir=/usr/share/man + --localstatedir=/var + --disable-bsd-user + --disable-containers # bug #732972 + --disable-guest-agent + --disable-strip + --with-git-submodules=ignore + + # bug #746752: TCG interpreter has a few limitations: + # - it does not support FPU + # - it's generally slower on non-self-modifying code + # It's advantage is support for host architectures + # where native codegeneration is not implemented. + # Gentoo has qemu keyworded only on targets with + # native code generation available. Avoid the interpreter. + --disable-tcg-interpreter + + --disable-werror + # We support gnutls/nettle for crypto operations. It is possible + # to use gcrypt when gnutls/nettle are disabled (but not when they + # are enabled), but it's not really worth the hassle. Disable it + # all the time to avoid automatically detecting it. #568856 + --disable-gcrypt + --cc="$(tc-getCC)" + --cxx="$(tc-getCXX)" + --host-cc="$(tc-getBUILD_CC)" + + $(use_enable alsa) + $(use_enable debug debug-info) + $(use_enable debug debug-tcg) + $(use_enable jack) + $(use_enable nls gettext) + $(use_enable oss) + $(use_enable plugins) + $(use_enable pulseaudio pa) + $(use_enable selinux) + $(use_enable xattr attr) + ) + + # Disable options not used by user targets. This simplifies building + # static user targets (USE=static-user) considerably. + conf_notuser() { + if [[ ${buildtype} == "user" ]] ; then + echo "--disable-${2:-$1}" + else + use_enable "$@" + fi + } + # Enable option only for softmmu build, but not 'user' or 'tools' + conf_softmmu() { + if [[ ${buildtype} == "softmmu" ]] ; then + use_enable "$@" + else + echo "--disable-${2:-$1}" + fi + } + # Enable option only for tools build, but not 'user' or 'softmmu' + conf_tools() { + if [[ ${buildtype} == "tools" ]] ; then + use_enable "$@" + else + echo "--disable-${2:-$1}" + fi + } + # Special case for the malloc flag, because the --disable flag does + # not exist and trying like above will break configuring. + conf_malloc() { + if [[ ! ${buildtype} == "user" ]] ; then + usex "${1}" "--enable-malloc=${1}" "" + fi + } + conf_opts+=( + $(conf_notuser accessibility brlapi) + $(conf_notuser aio linux-aio) + $(conf_softmmu bpf) + $(conf_notuser bzip2) + $(conf_notuser capstone) + $(conf_notuser curl) + $(conf_tools doc docs) + $(conf_notuser fdt) + $(conf_notuser fuse) + $(conf_notuser glusterfs) + $(conf_notuser gnutls) + $(conf_notuser gnutls nettle) + $(conf_notuser gtk) + $(conf_notuser infiniband rdma) + $(conf_notuser iscsi libiscsi) + $(conf_notuser io-uring linux-io-uring) + $(conf_malloc jemalloc) + $(conf_notuser jpeg vnc-jpeg) + $(conf_notuser kernel_linux kvm) + $(conf_notuser lzo) + $(conf_notuser multipath mpath) + $(conf_notuser ncurses curses) + $(conf_notuser nfs libnfs) + $(conf_notuser numa) + $(conf_notuser opengl) + $(conf_notuser pam auth-pam) + $(conf_notuser png) + $(conf_notuser rbd) + $(conf_notuser sasl vnc-sasl) + $(conf_notuser sdl) + $(conf_softmmu sdl-image) + $(conf_notuser seccomp) + $(conf_notuser slirp) + $(conf_notuser smartcard) + $(conf_notuser snappy) + $(conf_notuser spice) + $(conf_notuser ssh libssh) + $(conf_notuser udev libudev) + $(conf_notuser usb libusb) + $(conf_notuser usbredir usb-redir) + $(conf_notuser vde) + $(conf_notuser vhost-net) + $(conf_notuser virgl virglrenderer) + $(conf_softmmu virtfs) + $(conf_notuser vnc) + $(conf_notuser vte) + $(conf_notuser xen) + $(conf_notuser xen xen-pci-passthrough) + # use prebuilt keymaps, bug #759604 + --disable-xkbcommon + $(conf_notuser zstd) + ) + + if [[ ! ${buildtype} == "user" ]] ; then + # audio options + local audio_opts=( + # Note: backend order matters here: #716202 + # We iterate from higher-level to lower level. + $(usex pulseaudio pa "") + $(usev jack) + $(usev sdl) + $(usev alsa) + $(usev oss) + ) + conf_opts+=( + --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}") + ) + fi + + case ${buildtype} in + user) + conf_opts+=( + --enable-linux-user + --disable-system + --disable-blobs + --disable-tools + --disable-cap-ng + --disable-seccomp + ) + local static_flag="static-user" + ;; + softmmu) + conf_opts+=( + --disable-linux-user + --enable-system + --disable-tools + --enable-cap-ng + --enable-seccomp + ) + local static_flag="static" + ;; + tools) + conf_opts+=( + --disable-linux-user + --disable-system + --disable-blobs + --enable-tools + --enable-cap-ng + ) + local static_flag="static" + ;; + esac + + local targets="${buildtype}_targets" + [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" ) + + # Add support for SystemTap + use systemtap && conf_opts+=( --enable-trace-backend=dtrace ) + + # We always want to attempt to build with PIE support as it results + # in a more secure binary. But it doesn't work with static or if + # the current GCC doesn't have PIE support. + if use ${static_flag}; then + conf_opts+=( --static --disable-pie ) + else + tc-enables-pie && conf_opts+=( --enable-pie ) + fi + + # Meson will not use a cross-file unless cross_prefix is set. + tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" ) + + # Plumb through equivalent of EXTRA_ECONF to allow experiments + # like bug #747928. + conf_opts+=( ${EXTRA_CONF_QEMU} ) + + echo "../configure ${conf_opts[*]}" + cd "${builddir}" + ../configure "${conf_opts[@]}" || die "configure failed" +} + +src_configure() { + local target + + python_setup + + softmmu_targets= softmmu_bins=() + user_targets= user_bins=() + + for target in ${IUSE_SOFTMMU_TARGETS} ; do + if use "qemu_softmmu_targets_${target}"; then + softmmu_targets+=",${target}-softmmu" + softmmu_bins+=( "qemu-system-${target}" ) + fi + done + + for target in ${IUSE_USER_TARGETS} ; do + if use "qemu_user_targets_${target}"; then + user_targets+=",${target}-linux-user" + user_bins+=( "qemu-${target}" ) + fi + done + + softmmu_targets=${softmmu_targets#,} + user_targets=${user_targets#,} + + [[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu" + [[ -n ${user_targets} ]] && qemu_src_configure "user" + qemu_src_configure "tools" +} + +src_compile() { + if [[ -n ${user_targets} ]]; then + cd "${S}/user-build" || die + default + fi + + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" || die + default + fi + + cd "${S}/tools-build" || die + default +} + +src_test() { + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" || die + pax-mark m */qemu-system-* #515550 + emake check + fi +} + +qemu_python_install() { + python_domodule "${S}/python/qemu" + + python_doscript "${S}/scripts/kvm/vmxcap" + python_doscript "${S}/scripts/qmp/qmp-shell" + python_doscript "${S}/scripts/qmp/qemu-ga-client" +} + +# Generate binfmt support files. +# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc) +# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt) +generate_initd() { + local out="${T}/qemu-binfmt" + local out_systemd="${T}/qemu.conf" + local d="${T}/binfmt.d" + + einfo "Generating qemu binfmt scripts and configuration files" + + # Generate the debian fragments first. + mkdir -p "${d}" + "${S}"/scripts/qemu-binfmt-conf.sh \ + --debian \ + --exportdir "${d}" \ + --qemu-path "${EPREFIX}/usr/bin" \ + || die + # Then turn the fragments into a shell script we can source. + sed -E -i \ + -e 's:^([^ ]+) (.*)$:\1="\2":' \ + "${d}"/* || die + + # Generate the init.d script by assembling the fragments from above. + local f qcpu package interpreter magic mask + cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die + for f in "${d}"/qemu-* ; do + source "${f}" + + # Normalize the cpu logic like we do in the init.d for the native cpu. + qcpu=${package#qemu-} + case ${qcpu} in + arm*) qcpu="arm";; + mips*) qcpu="mips";; + ppc*) qcpu="ppc";; + s390*) qcpu="s390";; + sh*) qcpu="sh";; + sparc*) qcpu="sparc";; + esac + + # we use 'printf' here to be portable across 'sh' + # implementations: #679168 + cat <>"${out}" + if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then + printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register + fi +EOF + + echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}" + + done + cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die +} + +src_install() { + if [[ -n ${user_targets} ]]; then + cd "${S}/user-build" + emake DESTDIR="${ED}" install + + # Install binfmt handler init script for user targets. + generate_initd + doinitd "${T}/qemu-binfmt" + + # Install binfmt/qemu.conf. + insinto "/usr/share/qemu/binfmt.d" + doins "${T}/qemu.conf" + fi + + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" + emake DESTDIR="${ED}" install + + # This might not exist if the test failed. #512010 + [[ -e check-report.html ]] && dodoc check-report.html + + if use kernel_linux; then + udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules + fi + + if use python; then + python_foreach_impl qemu_python_install + fi + fi + + cd "${S}/tools-build" || die + emake DESTDIR="${ED}" install + + # If USE=doc, there'll be newly generated docs which we install instead. + if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then + doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8] + fi + + # Disable mprotect on the qemu binaries as they use JITs to be fast #459348 + pushd "${ED}"/usr/bin >/dev/null || die + pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594 + popd >/dev/null || die + + # Install config file example for qemu-bridge-helper + insinto "/etc/qemu" + doins "${FILESDIR}/bridge.conf" + + cd "${S}" || die + dodoc MAINTAINERS docs/specs/pci-ids.txt + newdoc pc-bios/README README.pc-bios + + # Disallow stripping of prebuilt firmware files. + dostrip -x ${QA_PREBUILT} + + if [[ -n ${softmmu_targets} ]]; then + # Remove SeaBIOS since we're using the SeaBIOS packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin + fi + + # Remove vgabios since we're using the seavgabios packaged one + rm "${ED}/usr/share/qemu/vgabios.bin" + rm "${ED}/usr/share/qemu/vgabios-cirrus.bin" + rm "${ED}/usr/share/qemu/vgabios-qxl.bin" + rm "${ED}/usr/share/qemu/vgabios-stdvga.bin" + rm "${ED}/usr/share/qemu/vgabios-virtio.bin" + rm "${ED}/usr/share/qemu/vgabios-vmware.bin" + + # PPC/PPC64 loads vgabios-stdvga + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then + dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin + dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin + dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin + dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin + dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin + dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin + fi + + # Remove sgabios since we're using the sgabios packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin + fi + + # Remove iPXE since we're using the iPXE packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom + dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom + dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom + dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom + dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom + dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom + fi + fi + + DISABLE_AUTOFORMATTING=true + readme.gentoo_create_doc +} + +firmware_abi_change() { + local pv + for pv in ${REPLACING_VERSIONS}; do + if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then + return 0 + fi + done + return 1 +} + +pkg_postinst() { + if [[ -n ${softmmu_targets} ]] && use kernel_linux; then + udev_reload + fi + + xdg_icon_cache_update + + [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \ + fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper + + DISABLE_AUTOFORMATTING=true + readme.gentoo_print_elog + + if use pin-upstream-blobs && firmware_abi_change; then + ewarn "This version of qemu pins new versions of firmware blobs:" + + if has_version 'sys-firmware/edk2-bin'; then + ewarn " $(best_version sys-firmware/edk2-bin)" + else + ewarn " $(best_version sys-firmware/edk2)" + fi + + if has_version 'sys-firmware/seabios-bin'; then + ewarn " $(best_version sys-firmware/seabios-bin)" + else + ewarn " $(best_version sys-firmware/seabios)" + fi + + ewarn " $(best_version sys-firmware/ipxe)" + ewarn " $(best_version sys-firmware/sgabios)" + ewarn "This might break resume of hibernated guests (started with a different" + ewarn "firmware version) and live migration to/from qemu versions with different" + ewarn "firmware. Please (cold) restart all running guests. For functional" + ewarn "guest migration ensure that all" + ewarn "hosts run at least" + ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}." + fi +} + +pkg_info() { + echo "Using:" + echo " $(best_version app-emulation/spice-protocol)" + + if has_version 'sys-firmware/edk2-bin'; then + echo " $(best_version sys-firmware/edk2-bin)" + else + echo " $(best_version sys-firmware/edk2)" + fi + + if has_version 'sys-firmware/seabios-bin'; then + echo " $(best_version sys-firmware/seabios-bin)" + else + echo " $(best_version sys-firmware/seabios)" + fi + + echo " $(best_version sys-firmware/ipxe)" + echo " $(best_version sys-firmware/sgabios)" +} + +pkg_postrm() { + xdg_icon_cache_update + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.2.7.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.2.7.ebuild index 55910aad611..6d3d77d6652 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.2.7.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.2.7.ebuild @@ -47,7 +47,7 @@ else fi S="${WORKDIR}/${MY_P}" - [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" + [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv x86" fi DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools" diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.2.8.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.2.8.ebuild new file mode 100644 index 00000000000..55910aad611 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.2.8.ebuild @@ -0,0 +1,999 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs +# Set to 1 if prebuilt, 0 if not +# (the construct below is to allow overriding from env for script) +QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1} +QEMU_DOCS_PREBUILT_DEV=sam +QEMU_DOCS_VERSION=$(ver_cut 1-2).0 +# Default to generating docs (inc. man pages) if no prebuilt; overridden later +# bug #830088 +QEMU_DOC_USEFLAG="+doc" + +PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_REQ_USE="ensurepip(-),ncurses,readline" + +FIRMWARE_ABI_VERSION="7.2.0" + +inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \ + pax-utils xdg-utils + +if [[ ${PV} == *9999* ]]; then + QEMU_DOCS_PREBUILT=0 + + EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/" + EGIT_SUBMODULES=() + inherit git-r3 + SRC_URI="" + declare -A SUBPROJECTS=( + [keycodemapdb]="f5772a62ec52591ff6870b7e8ef32482371f22c6" + [berkeley-softfloat-3]="b64af41c3276f97f0e181920400ee056b9c88037" + [berkeley-testfloat-3]="40619cbb3bf32872df8c53cc457039229428a263" + ) + + for proj in "${!SUBPROJECTS[@]}"; do + c=${SUBPROJECTS[${proj}]} + SRC_URI+=" https://gitlab.com/qemu-project/${proj}/-/archive/${c}/${proj}-${c}.tar.bz2" + done +else + MY_P="${PN}-${PV/_rc/-rc}" + SRC_URI="https://download.qemu.org/${MY_P}.tar.xz" + + if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then + SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )" + fi + + S="${WORKDIR}/${MY_P}" + [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" +fi + +DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools" +HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org" + +LICENSE="GPL-2 LGPL-2 BSD-2" +SLOT="0" + +[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc" + +IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG} + +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring + jack jemalloc +jpeg keyutils + lzo multipath + ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs pipewire + plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux + +slirp + smartcard snappy spice ssh static-user systemtap test udev usb + usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen + zstd" + +COMMON_TARGETS=" + aarch64 + alpha + arm + cris + hppa + i386 + loongarch64 + m68k + microblaze + microblazeel + mips + mips64 + mips64el + mipsel + nios2 + or1k + ppc + ppc64 + riscv32 + riscv64 + s390x + sh4 + sh4eb + sparc + sparc64 + x86_64 + xtensa + xtensaeb +" +IUSE_SOFTMMU_TARGETS=" + ${COMMON_TARGETS} + avr + rx + tricore +" +IUSE_USER_TARGETS=" + ${COMMON_TARGETS} + aarch64_be + armeb + hexagon + mipsn32 + mipsn32el + ppc64le + sparc32plus +" + +use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS}) +use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS}) +IUSE+=" ${use_softmmu_targets} ${use_user_targets}" + +RESTRICT="!test? ( test )" + +# Allow no targets to be built so that people can get a tools-only build. +# Block USE flag configurations known to not work. +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + qemu_softmmu_targets_arm? ( fdt ) + qemu_softmmu_targets_microblaze? ( fdt ) + qemu_softmmu_targets_mips64el? ( fdt ) + qemu_softmmu_targets_ppc64? ( fdt ) + qemu_softmmu_targets_ppc? ( fdt ) + qemu_softmmu_targets_riscv32? ( fdt ) + qemu_softmmu_targets_riscv64? ( fdt ) + qemu_softmmu_targets_x86_64? ( fdt ) + sdl-image? ( sdl ) + static-user? ( !plugins ) + virgl? ( opengl ) + virtfs? ( xattr ) + vnc? ( gnutls ) + vte? ( gtk ) + multipath? ( udev ) + plugins? ( !static-user ) +" +for smname in ${IUSE_SOFTMMU_TARGETS} ; do + REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )" +done + +# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) +# and user/softmmu targets (qemu-*, qemu-system-*). +# +# Yep, you need both libcap and libcap-ng since virtfs only uses libcap. +# +# The attr lib isn't always linked in (although the USE flag is always +# respected). This is because qemu supports using the C library's API +# when available rather than always using the external library. +ALL_DEPEND=" + dev-libs/glib:2[static-libs(+)] + sys-libs/zlib[static-libs(+)] + python? ( ${PYTHON_DEPS} ) + systemtap? ( dev-debug/systemtap ) + xattr? ( sys-apps/attr[static-libs(+)] ) +" + +# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) +# softmmu targets (qemu-system-*). +SOFTMMU_TOOLS_DEPEND=" + >=x11-libs/pixman-0.28.0[static-libs(+)] + accessibility? ( + app-accessibility/brltty[api] + app-accessibility/brltty[static-libs(+)] + ) + aio? ( dev-libs/libaio[static-libs(+)] ) + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + bpf? ( dev-libs/libbpf:= ) + bzip2? ( app-arch/bzip2[static-libs(+)] ) + capstone? ( dev-libs/capstone:=[static-libs(+)] ) + curl? ( >=net-misc/curl-7.15.4[static-libs(+)] ) + fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] ) + fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] ) + glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] ) + gnutls? ( + >=net-libs/gnutls-3.0:=[static-libs(+)] + dev-libs/nettle:=[static-libs(+)] + ) + gtk? ( + x11-libs/gtk+:3 + vte? ( x11-libs/vte:2.91 ) + ) + infiniband? ( sys-cluster/rdma-core[static-libs(+)] ) + iscsi? ( net-libs/libiscsi ) + io-uring? ( sys-libs/liburing:=[static-libs(+)] ) + jack? ( virtual/jack ) + jemalloc? ( dev-libs/jemalloc ) + jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] ) + kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] ) + keyutils? ( sys-apps/keyutils[static-libs(+)] ) + lzo? ( dev-libs/lzo:2[static-libs(+)] ) + multipath? ( sys-fs/multipath-tools ) + ncurses? ( + sys-libs/ncurses:=[unicode(+)] + sys-libs/ncurses:=[static-libs(+)] + ) + nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] ) + numa? ( sys-process/numactl[static-libs(+)] ) + opengl? ( + virtual/opengl + media-libs/libepoxy[static-libs(+)] + media-libs/mesa[static-libs(+)] + media-libs/mesa[egl(+),gbm(+)] + ) + pam? ( sys-libs/pam ) + pipewire? ( >=media-video/pipewire-0.3.60 ) + png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] ) + pulseaudio? ( media-libs/libpulse ) + rbd? ( sys-cluster/ceph ) + sasl? ( dev-libs/cyrus-sasl[static-libs(+)] ) + sdl? ( + media-libs/libsdl2[video] + media-libs/libsdl2[static-libs(+)] + ) + sdl-image? ( media-libs/sdl2-image[static-libs(+)] ) + seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] ) + slirp? ( net-libs/libslirp[static-libs(+)] ) + smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] ) + snappy? ( app-arch/snappy:= ) + spice? ( + >=app-emulation/spice-protocol-0.14.0 + >=app-emulation/spice-0.14.0[static-libs(+)] + ) + ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] ) + udev? ( virtual/libudev:= ) + usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] ) + usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] ) + vde? ( net-misc/vde[static-libs(+)] ) + virgl? ( media-libs/virglrenderer[static-libs(+)] ) + virtfs? ( sys-libs/libcap ) + xen? ( app-emulation/xen-tools:= ) + zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] ) +" + +EDK2_OVMF_VERSION="202202" +SEABIOS_VERSION="1.16.3" + +X86_FIRMWARE_DEPEND=" + pin-upstream-blobs? ( + ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + ~sys-firmware/ipxe-1.21.1[binary,qemu] + ~sys-firmware/seabios-bin-${SEABIOS_VERSION} + ~sys-firmware/sgabios-0.1_pre10[binary] + ) + !pin-upstream-blobs? ( + || ( + >=sys-firmware/edk2-${EDK2_OVMF_VERSION} + >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + ) + sys-firmware/ipxe[qemu] + || ( + >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] + >=sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + sys-firmware/sgabios + ) +" +PPC_FIRMWARE_DEPEND=" + pin-upstream-blobs? ( + ~sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + !pin-upstream-blobs? ( + || ( + >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] + >=sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + ) +" + +# See bug #913084 for pip dep +BDEPEND=" + $(python_gen_impl_dep) + dev-lang/perl + >=dev-build/meson-0.63.0 + app-alternatives/ninja + virtual/pkgconfig + doc? ( + >=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}] + dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] + ) + gtk? ( nls? ( sys-devel/gettext ) ) + test? ( + dev-libs/glib[utils] + app-alternatives/bc + ) +" +CDEPEND=" + ${ALL_DEPEND//\[static-libs(+)]} + ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]} + qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} ) +" +DEPEND=" + ${CDEPEND} + kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 ) + static-user? ( ${ALL_DEPEND} ) +" +RDEPEND=" + ${CDEPEND} + acct-group/kvm + selinux? ( + sec-policy/selinux-qemu + sys-libs/libselinux + ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-8.0.0-disable-keymap.patch + "${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch + "${FILESDIR}"/${PN}-8.1.0-also-build-virtfs-proxy-helper.patch + "${FILESDIR}"/${PN}-8.1.0-skip-tests.patch + "${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch +) + +QA_PREBUILT=" + usr/share/qemu/hppa-firmware.img + usr/share/qemu/openbios-ppc + usr/share/qemu/openbios-sparc64 + usr/share/qemu/openbios-sparc32 + usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf + usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf + usr/share/qemu/palcode-clipper + usr/share/qemu/s390-ccw.img + usr/share/qemu/s390-netboot.img + usr/share/qemu/u-boot.e500 +" + +QA_WX_LOAD=" + usr/bin/qemu-i386 + usr/bin/qemu-x86_64 + usr/bin/qemu-alpha + usr/bin/qemu-arm + usr/bin/qemu-cris + usr/bin/qemu-m68k + usr/bin/qemu-microblaze + usr/bin/qemu-microblazeel + usr/bin/qemu-mips + usr/bin/qemu-mipsel + usr/bin/qemu-or1k + usr/bin/qemu-ppc + usr/bin/qemu-ppc64 + usr/bin/qemu-sh4 + usr/bin/qemu-sh4eb + usr/bin/qemu-sparc + usr/bin/qemu-sparc64 + usr/bin/qemu-armeb + usr/bin/qemu-sparc32plus + usr/bin/qemu-s390x + usr/bin/qemu-unicore32 +" + +DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the +kernel module loaded before running kvm. The easiest way to ensure that the +kernel module is loaded is to load it on boot. + For AMD CPUs the module is called 'kvm-amd'. + For Intel CPUs the module is called 'kvm-intel'. +Please review /etc/conf.d/modules for how to load these. + +Make sure your user is in the 'kvm' group. Just run + $ gpasswd -a kvm +then have re-login. + +For brand new installs, the default permissions on /dev/kvm might not let +you access it. You can tell udev to reset ownership/perms: + $ udevadm trigger -c add /dev/kvm + +If you want to register binfmt handlers for qemu user targets: +For openrc: + # rc-update add qemu-binfmt +For systemd: + # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf" + +pkg_pretend() { + if use kernel_linux && kernel_is lt 2 6 25; then + eerror "This version of KVM requires a host kernel of 2.6.25 or higher." + elif use kernel_linux; then + if ! linux_config_exists; then + eerror "Unable to check your kernel for KVM support" + else + CONFIG_CHECK="~KVM ~TUN ~BRIDGE" + ERROR_KVM="You must enable KVM in your kernel to continue" + ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in" + ERROR_KVM_AMD+=" your kernel configuration." + ERROR_KVM_INTEL="If you have an Intel CPU, you must enable" + ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration." + ERROR_TUN="You will need the Universal TUN/TAP driver compiled" + ERROR_TUN+=" into your kernel or loaded as a module to use the" + ERROR_TUN+=" virtual network device if using -net tap." + ERROR_BRIDGE="You will also need support for 802.1d" + ERROR_BRIDGE+=" Ethernet Bridging for some network configurations." + use vhost-net && CONFIG_CHECK+=" ~VHOST_NET" + ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net" + ERROR_VHOST_NET+=" support" + + if use amd64 || use x86 || use amd64-linux || use x86-linux; then + if grep -q AuthenticAMD /proc/cpuinfo; then + CONFIG_CHECK+=" ~KVM_AMD" + elif grep -q GenuineIntel /proc/cpuinfo; then + CONFIG_CHECK+=" ~KVM_INTEL" + fi + fi + + use python && CONFIG_CHECK+=" ~DEBUG_FS" + ERROR_DEBUG_FS="debugFS support required for kvm_stat" + + # Now do the actual checks setup above + check_extra_config + fi + fi + + if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then + eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt" + eerror "instances are still pointing to it. Please update your" + eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag" + eerror "and the right system binary (e.g. qemu-system-x86_64)." + die "update your virt configs to not use qemu-kvm" + fi +} + +# Sanity check to make sure target lists are kept up-to-date. +check_targets() { + local var=$1 mak=$2 + local detected sorted + + pushd "${S}"/configs/targets/ >/dev/null || die + + # Force C locale until glibc is updated. #564936 + detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u)) + sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u)) + if [[ ${sorted} != "${detected}" ]] ; then + eerror "The ebuild needs to be kept in sync." + eerror "${var}: ${sorted}" + eerror "$(printf '%-*s' ${#var} configure): ${detected}" + die "sync ${var} to the list of targets" + fi + + popd >/dev/null +} + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + for file in ${A}; do + unpack "${file}" + done + cd "${WORKDIR}" || die + for proj in "${!SUBPROJECTS[@]}"; do + mv "${proj}-${SUBPROJECTS[${proj}]}" "${S}/subprojects/${proj}" || die + done + cd "${S}" || die + meson subprojects packagefiles --apply || die + else + default + fi +} + +src_prepare() { + check_targets IUSE_SOFTMMU_TARGETS softmmu + check_targets IUSE_USER_TARGETS linux-user + + default + + # Use correct toolchain to fix cross-compiling + tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS + export WINDRES=${CHOST}-windres + + # Workaround for bug #938302 + if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then + cat >> "${S}"/configs/meson/linux.txt <<-EOF || die + [binaries] + dtrace='stap-dtrace' + EOF + fi + + # Verbose builds + MAKEOPTS+=" V=1" + + # Remove bundled modules + rm -r roms/*/ || die +} + +## +# configures qemu based on the build directory and the build type +# we are using. +# +qemu_src_configure() { + debug-print-function ${FUNCNAME} "$@" + + local buildtype=$1 + local builddir="${S}/${buildtype}-build" + + mkdir "${builddir}" || die + + local conf_opts=( + --prefix=/usr + --sysconfdir=/etc + --bindir=/usr/bin + --libdir=/usr/$(get_libdir) + --datadir=/usr/share + --docdir=/usr/share/doc/${PF}/html + --mandir=/usr/share/man + --localstatedir=/var + --disable-bsd-user + --disable-containers # bug #732972 + --disable-guest-agent + --disable-strip + --disable-download + + # bug #746752: TCG interpreter has a few limitations: + # - it does not support FPU + # - it's generally slower on non-self-modifying code + # It's advantage is support for host architectures + # where native codegeneration is not implemented. + # Gentoo has qemu keyworded only on targets with + # native code generation available. Avoid the interpreter. + --disable-tcg-interpreter + + --disable-werror + # We support gnutls/nettle for crypto operations. It is possible + # to use gcrypt when gnutls/nettle are disabled (but not when they + # are enabled), but it's not really worth the hassle. Disable it + # all the time to avoid automatically detecting it. #568856 + --disable-gcrypt + --cc="$(tc-getCC)" + --cxx="$(tc-getCXX)" + --objcc="$(tc-getCC)" + --host-cc="$(tc-getBUILD_CC)" + + $(use_enable alsa) + $(use_enable debug debug-info) + $(use_enable debug debug-tcg) + $(use_enable jack) + $(use_enable nls gettext) + $(use_enable oss) + $(use_enable pipewire) + $(use_enable plugins) + $(use_enable pulseaudio pa) + $(use_enable selinux) + $(use_enable xattr attr) + ) + + # Disable options not used by user targets. This simplifies building + # static user targets (USE=static-user) considerably. + conf_notuser() { + if [[ ${buildtype} == "user" ]] ; then + echo "--disable-${2:-$1}" + else + use_enable "$@" + fi + } + # Enable option only for softmmu build, but not 'user' or 'tools' + conf_softmmu() { + if [[ ${buildtype} == "softmmu" ]] ; then + use_enable "$@" + else + echo "--disable-${2:-$1}" + fi + } + # Enable option only for tools build, but not 'user' or 'softmmu' + conf_tools() { + if [[ ${buildtype} == "tools" ]] ; then + use_enable "$@" + else + echo "--disable-${2:-$1}" + fi + } + # Special case for the malloc flag, because the --disable flag does + # not exist and trying like above will break configuring. + conf_malloc() { + if [[ ! ${buildtype} == "user" ]] ; then + usex "${1}" "--enable-malloc=${1}" "" + fi + } + conf_opts+=( + $(conf_notuser accessibility brlapi) + $(conf_notuser aio linux-aio) + $(conf_softmmu bpf) + $(conf_notuser bzip2) + $(conf_notuser capstone) + $(conf_notuser curl) + $(conf_tools doc docs) + $(conf_notuser fdt) + $(conf_notuser fuse) + $(conf_notuser glusterfs) + $(conf_notuser gnutls) + $(conf_notuser gnutls nettle) + $(conf_notuser gtk) + $(conf_notuser infiniband rdma) + $(conf_notuser iscsi libiscsi) + $(conf_notuser io-uring linux-io-uring) + $(conf_malloc jemalloc) + $(conf_notuser jpeg vnc-jpeg) + $(conf_notuser kernel_linux kvm) + $(conf_notuser keyutils libkeyutils) + $(conf_notuser lzo) + $(conf_notuser multipath mpath) + $(conf_notuser ncurses curses) + $(conf_notuser nfs libnfs) + $(conf_notuser numa) + $(conf_notuser opengl) + $(conf_notuser pam auth-pam) + $(conf_notuser png) + $(conf_notuser rbd) + $(conf_notuser sasl vnc-sasl) + $(conf_notuser sdl) + $(conf_softmmu sdl-image) + $(conf_notuser seccomp) + $(conf_notuser slirp) + $(conf_notuser smartcard) + $(conf_notuser snappy) + $(conf_notuser spice) + $(conf_notuser ssh libssh) + $(conf_notuser udev libudev) + $(conf_notuser usb libusb) + $(conf_notuser usbredir usb-redir) + $(conf_notuser vde) + $(conf_notuser vhost-net) + $(conf_notuser virgl virglrenderer) + $(conf_softmmu virtfs) + $(conf_notuser vnc) + $(conf_notuser vte) + $(conf_notuser xen) + $(conf_notuser xen xen-pci-passthrough) + # use prebuilt keymaps, bug #759604 + --disable-xkbcommon + $(conf_notuser zstd) + ) + + if [[ ! ${buildtype} == "user" ]] ; then + # audio options + local audio_opts=( + # Note: backend order matters here: #716202 + # We iterate from higher-level to lower level. + $(usex pulseaudio pa "") + $(usev pipewire) + $(usev jack) + $(usev sdl) + $(usev alsa) + $(usev oss) + ) + conf_opts+=( + --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}") + ) + fi + + case ${buildtype} in + user) + conf_opts+=( + --enable-linux-user + --disable-system + --disable-tools + --disable-cap-ng + --disable-seccomp + ) + local static_flag="static-user" + ;; + softmmu) + conf_opts+=( + --disable-linux-user + --enable-system + --disable-tools + --enable-cap-ng + --enable-seccomp + ) + local static_flag="none" + ;; + tools) + conf_opts+=( + --disable-linux-user + --disable-system + --enable-tools + --enable-cap-ng + ) + local static_flag="none" + ;; + esac + + local targets="${buildtype}_targets" + [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" ) + + # Add support for SystemTap + use systemtap && conf_opts+=( --enable-trace-backends="dtrace" ) + + # We always want to attempt to build with PIE support as it results + # in a more secure binary. But it doesn't work with static or if + # the current GCC doesn't have PIE support. + if [[ ${static_flag} != "none" ]] && use ${static_flag}; then + conf_opts+=( --static --disable-pie ) + else + tc-enables-pie && conf_opts+=( --enable-pie ) + fi + + # Meson will not use a cross-file unless cross_prefix is set. + tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" ) + + # Plumb through equivalent of EXTRA_ECONF to allow experiments + # like bug #747928. + conf_opts+=( ${EXTRA_CONF_QEMU} ) + + echo "../configure ${conf_opts[*]}" + cd "${builddir}" + ../configure "${conf_opts[@]}" || die "configure failed" +} + +src_configure() { + local target + + python_setup + + softmmu_targets= softmmu_bins=() + user_targets= user_bins=() + + for target in ${IUSE_SOFTMMU_TARGETS} ; do + if use "qemu_softmmu_targets_${target}"; then + softmmu_targets+=",${target}-softmmu" + softmmu_bins+=( "qemu-system-${target}" ) + fi + done + + for target in ${IUSE_USER_TARGETS} ; do + if use "qemu_user_targets_${target}"; then + user_targets+=",${target}-linux-user" + user_bins+=( "qemu-${target}" ) + fi + done + + softmmu_targets=${softmmu_targets#,} + user_targets=${user_targets#,} + + [[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu" + [[ -n ${user_targets} ]] && qemu_src_configure "user" + qemu_src_configure "tools" +} + +src_compile() { + if [[ -n ${user_targets} ]]; then + cd "${S}/user-build" || die + default + fi + + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" || die + default + fi + + cd "${S}/tools-build" || die + default +} + +src_test() { + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" || die + pax-mark m */qemu-system-* #515550 + emake check + fi +} + +qemu_python_install() { + python_domodule "${S}/python/qemu" + + python_doscript "${S}/scripts/kvm/vmxcap" + python_doscript "${S}/scripts/qmp/qmp-shell" + python_doscript "${S}/scripts/qmp/qemu-ga-client" +} + +# Generate binfmt support files. +# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc) +# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt) +generate_initd() { + local out="${T}/qemu-binfmt" + local out_systemd="${T}/qemu.conf" + local d="${T}/binfmt.d" + + einfo "Generating qemu binfmt scripts and configuration files" + + # Generate the debian fragments first. + mkdir -p "${d}" + "${S}"/scripts/qemu-binfmt-conf.sh \ + --debian \ + --exportdir "${d}" \ + --qemu-path "${EPREFIX}/usr/bin" \ + || die + # Then turn the fragments into a shell script we can source. + sed -E -i \ + -e 's:^([^ ]+) (.*)$:\1="\2":' \ + "${d}"/* || die + + # Generate the init.d script by assembling the fragments from above. + local f qcpu package interpreter magic mask + cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die + for f in "${d}"/qemu-* ; do + source "${f}" + + # Normalize the cpu logic like we do in the init.d for the native cpu. + qcpu=${package#qemu-} + case ${qcpu} in + arm*) qcpu="arm";; + mips*) qcpu="mips";; + ppc*) qcpu="ppc";; + s390*) qcpu="s390";; + sh*) qcpu="sh";; + sparc*) qcpu="sparc";; + esac + + # we use 'printf' here to be portable across 'sh' + # implementations: #679168 + cat <>"${out}" + if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then + printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register + fi +EOF + + echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}" + + done + cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die +} + +src_install() { + if [[ -n ${user_targets} ]]; then + cd "${S}/user-build" + emake DESTDIR="${ED}" install + + # Install binfmt handler init script for user targets. + generate_initd + doinitd "${T}/qemu-binfmt" + + # Install binfmt/qemu.conf. + insinto "/usr/share/qemu/binfmt.d" + doins "${T}/qemu.conf" + fi + + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" + emake DESTDIR="${ED}" install + + # This might not exist if the test failed. #512010 + [[ -e check-report.html ]] && dodoc check-report.html + + if use kernel_linux; then + udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules + fi + + if use python; then + python_foreach_impl qemu_python_install + fi + fi + + cd "${S}/tools-build" || die + emake DESTDIR="${ED}" install + + # If USE=doc, there'll be newly generated docs which we install instead. + if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then + doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8] + fi + + # Disable mprotect on the qemu binaries as they use JITs to be fast #459348 + pushd "${ED}"/usr/bin >/dev/null || die + pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594 + popd >/dev/null || die + + # Install config file example for qemu-bridge-helper + insinto "/etc/qemu" + doins "${FILESDIR}/bridge.conf" + + cd "${S}" || die + dodoc MAINTAINERS + newdoc pc-bios/README README.pc-bios + + # Disallow stripping of prebuilt firmware files. + dostrip -x ${QA_PREBUILT} + + if [[ -n ${softmmu_targets} ]]; then + # Remove SeaBIOS since we're using the SeaBIOS packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin + fi + + # Remove vgabios since we're using the seavgabios packaged one + rm "${ED}/usr/share/qemu/vgabios.bin" + rm "${ED}/usr/share/qemu/vgabios-cirrus.bin" + rm "${ED}/usr/share/qemu/vgabios-qxl.bin" + rm "${ED}/usr/share/qemu/vgabios-stdvga.bin" + rm "${ED}/usr/share/qemu/vgabios-virtio.bin" + rm "${ED}/usr/share/qemu/vgabios-vmware.bin" + + # PPC/PPC64 loads vgabios-stdvga + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then + dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin + dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin + dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin + dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin + dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin + dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin + fi + + # Remove sgabios since we're using the sgabios packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin + fi + + # Remove iPXE since we're using the iPXE packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom + dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom + dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom + dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom + dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom + dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom + fi + fi + + DISABLE_AUTOFORMATTING=true + readme.gentoo_create_doc +} + +firmware_abi_change() { + local pv + for pv in ${REPLACING_VERSIONS}; do + if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then + return 0 + fi + done + return 1 +} + +pkg_postinst() { + if [[ -n ${softmmu_targets} ]] && use kernel_linux; then + udev_reload + fi + + xdg_icon_cache_update + + [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \ + fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper + + DISABLE_AUTOFORMATTING=true + readme.gentoo_print_elog + + if use pin-upstream-blobs && firmware_abi_change; then + ewarn "This version of qemu pins new versions of firmware blobs:" + + if has_version 'sys-firmware/edk2-bin'; then + ewarn " $(best_version sys-firmware/edk2-bin)" + else + ewarn " $(best_version sys-firmware/edk2)" + fi + + if has_version 'sys-firmware/seabios-bin'; then + ewarn " $(best_version sys-firmware/seabios-bin)" + else + ewarn " $(best_version sys-firmware/seabios)" + fi + + ewarn " $(best_version sys-firmware/ipxe)" + ewarn " $(best_version sys-firmware/sgabios)" + ewarn "This might break resume of hibernated guests (started with a different" + ewarn "firmware version) and live migration to/from qemu versions with different" + ewarn "firmware. Please (cold) restart all running guests. For functional" + ewarn "guest migration ensure that all" + ewarn "hosts run at least" + ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}." + fi +} + +pkg_info() { + echo "Using:" + echo " $(best_version app-emulation/spice-protocol)" + + if has_version 'sys-firmware/edk2-bin'; then + echo " $(best_version sys-firmware/edk2-bin)" + else + echo " $(best_version sys-firmware/edk2)" + fi + + if has_version 'sys-firmware/seabios-bin'; then + echo " $(best_version sys-firmware/seabios-bin)" + else + echo " $(best_version sys-firmware/seabios)" + fi + + echo " $(best_version sys-firmware/ipxe)" + echo " $(best_version sys-firmware/sgabios)" +} + +pkg_postrm() { + xdg_icon_cache_update + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.0.4.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.0.4.ebuild new file mode 100644 index 00000000000..e713c9e7834 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.0.4.ebuild @@ -0,0 +1,1006 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs +# Set to 1 if prebuilt, 0 if not +# (the construct below is to allow overriding from env for script) +QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1} +QEMU_DOCS_PREBUILT_DEV=sam +QEMU_DOCS_VERSION=$(ver_cut 1-2).0 +# Default to generating docs (inc. man pages) if no prebuilt; overridden later +# bug #830088 +QEMU_DOC_USEFLAG="+doc" + +PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_REQ_USE="ensurepip(-),ncurses,readline" + +FIRMWARE_ABI_VERSION="7.2.0" + +inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \ + pax-utils xdg-utils + +if [[ ${PV} == *9999* ]]; then + QEMU_DOCS_PREBUILT=0 + + EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/" + EGIT_SUBMODULES=() + inherit git-r3 + SRC_URI="" + declare -A SUBPROJECTS=( + [keycodemapdb]="f5772a62ec52591ff6870b7e8ef32482371f22c6" + [berkeley-softfloat-3]="b64af41c3276f97f0e181920400ee056b9c88037" + [berkeley-testfloat-3]="e7af9751d9f9fd3b47911f51a5cfd08af256a9ab" + ) + + for proj in "${!SUBPROJECTS[@]}"; do + c=${SUBPROJECTS[${proj}]} + SRC_URI+=" https://gitlab.com/qemu-project/${proj}/-/archive/${c}/${proj}-${c}.tar.bz2" + done +else + MY_P="${PN}-${PV/_rc/-rc}" + SRC_URI="https://download.qemu.org/${MY_P}.tar.xz" + + if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then + SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )" + fi + + S="${WORKDIR}/${MY_P}" + [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" +fi + +DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools" +HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org" + +LICENSE="GPL-2 LGPL-2 BSD-2" +SLOT="0" + +[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc" + +IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG} + +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring + jack jemalloc +jpeg keyutils + lzo multipath + ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs pipewire + plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux + +slirp + smartcard snappy spice ssh static-user systemtap test udev usb + usbredir vde +vhost-net virgl virtfs +vnc vte xattr xdp xen + zstd" + +COMMON_TARGETS=" + aarch64 + alpha + arm + cris + hppa + i386 + loongarch64 + m68k + microblaze + microblazeel + mips + mips64 + mips64el + mipsel + nios2 + or1k + ppc + ppc64 + riscv32 + riscv64 + s390x + sh4 + sh4eb + sparc + sparc64 + x86_64 + xtensa + xtensaeb +" +IUSE_SOFTMMU_TARGETS=" + ${COMMON_TARGETS} + avr + rx + tricore +" +IUSE_USER_TARGETS=" + ${COMMON_TARGETS} + aarch64_be + armeb + hexagon + mipsn32 + mipsn32el + ppc64le + sparc32plus +" + +use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS}) +use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS}) +IUSE+=" ${use_softmmu_targets} ${use_user_targets}" + +RESTRICT="!test? ( test )" + +# Allow no targets to be built so that people can get a tools-only build. +# Block USE flag configurations known to not work. +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + qemu_softmmu_targets_arm? ( fdt ) + qemu_softmmu_targets_microblaze? ( fdt ) + qemu_softmmu_targets_mips64el? ( fdt ) + qemu_softmmu_targets_ppc64? ( fdt ) + qemu_softmmu_targets_ppc? ( fdt ) + qemu_softmmu_targets_riscv32? ( fdt ) + qemu_softmmu_targets_riscv64? ( fdt ) + qemu_softmmu_targets_x86_64? ( fdt ) + sdl-image? ( sdl ) + static-user? ( !plugins ) + virgl? ( opengl ) + virtfs? ( xattr ) + vnc? ( gnutls ) + vte? ( gtk ) + multipath? ( udev ) + plugins? ( !static-user ) + xdp? ( bpf ) +" +for smname in ${IUSE_SOFTMMU_TARGETS} ; do + REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )" +done + +# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) +# and user/softmmu targets (qemu-*, qemu-system-*). +# +# Yep, you need both libcap and libcap-ng since virtfs only uses libcap. +# +# The attr lib isn't always linked in (although the USE flag is always +# respected). This is because qemu supports using the C library's API +# when available rather than always using the external library. +ALL_DEPEND=" + dev-libs/glib:2[static-libs(+)] + sys-libs/zlib[static-libs(+)] + python? ( ${PYTHON_DEPS} ) + systemtap? ( dev-debug/systemtap ) + xattr? ( sys-apps/attr[static-libs(+)] ) +" + +# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) +# softmmu targets (qemu-system-*). +SOFTMMU_TOOLS_DEPEND=" + >=x11-libs/pixman-0.28.0[static-libs(+)] + accessibility? ( + app-accessibility/brltty[api] + app-accessibility/brltty[static-libs(+)] + ) + aio? ( dev-libs/libaio[static-libs(+)] ) + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + bpf? ( dev-libs/libbpf:= ) + bzip2? ( app-arch/bzip2[static-libs(+)] ) + capstone? ( dev-libs/capstone:=[static-libs(+)] ) + curl? ( >=net-misc/curl-7.15.4[static-libs(+)] ) + fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] ) + fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] ) + glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] ) + gnutls? ( + >=net-libs/gnutls-3.0:=[static-libs(+)] + dev-libs/nettle:=[static-libs(+)] + ) + gtk? ( + x11-libs/gtk+:3 + vte? ( x11-libs/vte:2.91 ) + ) + infiniband? ( sys-cluster/rdma-core[static-libs(+)] ) + iscsi? ( net-libs/libiscsi ) + io-uring? ( sys-libs/liburing:=[static-libs(+)] ) + jack? ( virtual/jack ) + jemalloc? ( dev-libs/jemalloc ) + jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] ) + kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] ) + keyutils? ( sys-apps/keyutils[static-libs(+)] ) + lzo? ( dev-libs/lzo:2[static-libs(+)] ) + multipath? ( sys-fs/multipath-tools ) + ncurses? ( + sys-libs/ncurses:=[unicode(+)] + sys-libs/ncurses:=[static-libs(+)] + ) + nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] ) + numa? ( sys-process/numactl[static-libs(+)] ) + opengl? ( + virtual/opengl + media-libs/libepoxy[static-libs(+)] + media-libs/mesa[static-libs(+)] + media-libs/mesa[egl(+),gbm(+)] + ) + pam? ( sys-libs/pam ) + pipewire? ( >=media-video/pipewire-0.3.60 ) + png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] ) + pulseaudio? ( media-libs/libpulse ) + rbd? ( sys-cluster/ceph ) + sasl? ( dev-libs/cyrus-sasl[static-libs(+)] ) + sdl? ( + media-libs/libsdl2[video] + media-libs/libsdl2[static-libs(+)] + ) + sdl-image? ( media-libs/sdl2-image[static-libs(+)] ) + seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] ) + slirp? ( net-libs/libslirp[static-libs(+)] ) + smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] ) + snappy? ( app-arch/snappy:= ) + spice? ( + >=app-emulation/spice-protocol-0.14.0 + >=app-emulation/spice-0.14.0[static-libs(+)] + ) + ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] ) + udev? ( virtual/libudev:= ) + usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] ) + usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] ) + vde? ( net-misc/vde[static-libs(+)] ) + virgl? ( media-libs/virglrenderer[static-libs(+)] ) + virtfs? ( sys-libs/libcap ) + xdp? ( net-libs/xdp-tools ) + xen? ( app-emulation/xen-tools:= ) + zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] ) +" + +EDK2_OVMF_VERSION="202202" +SEABIOS_VERSION="1.16.3" + +X86_FIRMWARE_DEPEND=" + pin-upstream-blobs? ( + ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + ~sys-firmware/ipxe-1.21.1[binary,qemu] + ~sys-firmware/seabios-bin-${SEABIOS_VERSION} + ~sys-firmware/sgabios-0.1_pre10[binary] + ) + !pin-upstream-blobs? ( + || ( + >=sys-firmware/edk2-${EDK2_OVMF_VERSION} + >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + ) + sys-firmware/ipxe[qemu] + || ( + >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] + >=sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + sys-firmware/sgabios + ) +" +PPC_FIRMWARE_DEPEND=" + pin-upstream-blobs? ( + ~sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + !pin-upstream-blobs? ( + || ( + >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] + >=sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + ) +" + +# See bug #913084 for pip dep +BDEPEND=" + $(python_gen_impl_dep) + dev-lang/perl + >=dev-build/meson-0.63.0 + app-alternatives/ninja + virtual/pkgconfig + doc? ( + >=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}] + dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] + ) + gtk? ( nls? ( sys-devel/gettext ) ) + test? ( + dev-libs/glib[utils] + app-alternatives/bc + ) +" +CDEPEND=" + ${ALL_DEPEND//\[static-libs(+)]} + ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]} + qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} ) +" +DEPEND=" + ${CDEPEND} + kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 ) + static-user? ( ${ALL_DEPEND} ) +" +RDEPEND=" + ${CDEPEND} + acct-group/kvm + selinux? ( + sec-policy/selinux-qemu + sys-libs/libselinux + ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-9.0.0-disable-keymap.patch + "${FILESDIR}"/${PN}-9.0.0-capstone-include-path.patch + "${FILESDIR}"/${PN}-9.0.0-also-build-virtfs-proxy-helper.patch + "${FILESDIR}"/${PN}-8.1.0-skip-tests.patch + "${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch + +) + +QA_PREBUILT=" + usr/share/qemu/hppa-firmware.img + usr/share/qemu/hppa-firmware64.img + usr/share/qemu/openbios-ppc + usr/share/qemu/openbios-sparc64 + usr/share/qemu/openbios-sparc32 + usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf + usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf + usr/share/qemu/palcode-clipper + usr/share/qemu/s390-ccw.img + usr/share/qemu/s390-netboot.img + usr/share/qemu/u-boot.e500 +" + +QA_WX_LOAD=" + usr/bin/qemu-i386 + usr/bin/qemu-x86_64 + usr/bin/qemu-alpha + usr/bin/qemu-arm + usr/bin/qemu-cris + usr/bin/qemu-m68k + usr/bin/qemu-microblaze + usr/bin/qemu-microblazeel + usr/bin/qemu-mips + usr/bin/qemu-mipsel + usr/bin/qemu-or1k + usr/bin/qemu-ppc + usr/bin/qemu-ppc64 + usr/bin/qemu-sh4 + usr/bin/qemu-sh4eb + usr/bin/qemu-sparc + usr/bin/qemu-sparc64 + usr/bin/qemu-armeb + usr/bin/qemu-sparc32plus + usr/bin/qemu-s390x + usr/bin/qemu-unicore32 +" + +DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the +kernel module loaded before running kvm. The easiest way to ensure that the +kernel module is loaded is to load it on boot. + For AMD CPUs the module is called 'kvm-amd'. + For Intel CPUs the module is called 'kvm-intel'. +Please review /etc/conf.d/modules for how to load these. + +Make sure your user is in the 'kvm' group. Just run + $ gpasswd -a kvm +then have re-login. + +For brand new installs, the default permissions on /dev/kvm might not let +you access it. You can tell udev to reset ownership/perms: + $ udevadm trigger -c add /dev/kvm + +If you want to register binfmt handlers for qemu user targets: +For openrc: + # rc-update add qemu-binfmt +For systemd: + # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf" + +pkg_pretend() { + if use kernel_linux && kernel_is lt 2 6 25; then + eerror "This version of KVM requires a host kernel of 2.6.25 or higher." + elif use kernel_linux; then + if ! linux_config_exists; then + eerror "Unable to check your kernel for KVM support" + else + CONFIG_CHECK="~KVM ~TUN ~BRIDGE" + ERROR_KVM="You must enable KVM in your kernel to continue" + ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in" + ERROR_KVM_AMD+=" your kernel configuration." + ERROR_KVM_INTEL="If you have an Intel CPU, you must enable" + ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration." + ERROR_TUN="You will need the Universal TUN/TAP driver compiled" + ERROR_TUN+=" into your kernel or loaded as a module to use the" + ERROR_TUN+=" virtual network device if using -net tap." + ERROR_BRIDGE="You will also need support for 802.1d" + ERROR_BRIDGE+=" Ethernet Bridging for some network configurations." + use vhost-net && CONFIG_CHECK+=" ~VHOST_NET" + ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net" + ERROR_VHOST_NET+=" support" + use test && CONFIG_CHECK+=" IP_MULTICAST" + ERROR_IP_MULTICAST="Test suite requires IP_MULTICAST" + + if use amd64 || use x86 || use amd64-linux || use x86-linux; then + if grep -q AuthenticAMD /proc/cpuinfo; then + CONFIG_CHECK+=" ~KVM_AMD" + elif grep -q GenuineIntel /proc/cpuinfo; then + CONFIG_CHECK+=" ~KVM_INTEL" + fi + fi + + use python && CONFIG_CHECK+=" ~DEBUG_FS" + ERROR_DEBUG_FS="debugFS support required for kvm_stat" + + # Now do the actual checks setup above + check_extra_config + fi + fi + + if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then + eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt" + eerror "instances are still pointing to it. Please update your" + eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag" + eerror "and the right system binary (e.g. qemu-system-x86_64)." + die "update your virt configs to not use qemu-kvm" + fi +} + +# Sanity check to make sure target lists are kept up-to-date. +check_targets() { + local var=$1 mak=$2 + local detected sorted + + pushd "${S}"/configs/targets/ >/dev/null || die + + # Force C locale until glibc is updated. #564936 + detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u)) + sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u)) + if [[ ${sorted} != "${detected}" ]] ; then + eerror "The ebuild needs to be kept in sync." + eerror "${var}: ${sorted}" + eerror "$(printf '%-*s' ${#var} configure): ${detected}" + die "sync ${var} to the list of targets" + fi + + popd >/dev/null +} + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + for file in ${A}; do + unpack "${file}" + done + cd "${WORKDIR}" || die + for proj in "${!SUBPROJECTS[@]}"; do + mv "${proj}-${SUBPROJECTS[${proj}]}" "${S}/subprojects/${proj}" || die + done + cd "${S}" || die + meson subprojects packagefiles --apply || die + else + default + fi +} + +src_prepare() { + check_targets IUSE_SOFTMMU_TARGETS softmmu + check_targets IUSE_USER_TARGETS linux-user + + default + + # Use correct toolchain to fix cross-compiling + tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS + export WINDRES=${CHOST}-windres + + # Workaround for bug #938302 + if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then + cat >> "${S}"/configs/meson/linux.txt <<-EOF || die + [binaries] + dtrace='stap-dtrace' + EOF + fi + + # Verbose builds + MAKEOPTS+=" V=1" + + # Remove bundled modules + rm -r roms/*/ || die +} + +## +# configures qemu based on the build directory and the build type +# we are using. +# +qemu_src_configure() { + debug-print-function ${FUNCNAME} "$@" + + local buildtype=$1 + local builddir="${S}/${buildtype}-build" + + mkdir "${builddir}" || die + + local conf_opts=( + --prefix=/usr + --sysconfdir=/etc + --bindir=/usr/bin + --libdir=/usr/$(get_libdir) + --datadir=/usr/share + --docdir=/usr/share/doc/${PF}/html + --mandir=/usr/share/man + --localstatedir=/var + --disable-bsd-user + --disable-containers # bug #732972 + --disable-guest-agent + --disable-strip + --disable-download + + # bug #746752: TCG interpreter has a few limitations: + # - it does not support FPU + # - it's generally slower on non-self-modifying code + # It's advantage is support for host architectures + # where native codegeneration is not implemented. + # Gentoo has qemu keyworded only on targets with + # native code generation available. Avoid the interpreter. + --disable-tcg-interpreter + + --disable-werror + # We support gnutls/nettle for crypto operations. It is possible + # to use gcrypt when gnutls/nettle are disabled (but not when they + # are enabled), but it's not really worth the hassle. Disable it + # all the time to avoid automatically detecting it. #568856 + --disable-gcrypt + --cc="$(tc-getCC)" + --cxx="$(tc-getCXX)" + --objcc="$(tc-getCC)" + --host-cc="$(tc-getBUILD_CC)" + + $(use_enable alsa) + $(use_enable debug debug-info) + $(use_enable debug debug-tcg) + $(use_enable jack) + $(use_enable nls gettext) + $(use_enable oss) + $(use_enable pipewire) + $(use_enable plugins) + $(use_enable pulseaudio pa) + $(use_enable selinux) + $(use_enable xattr attr) + ) + + # Disable options not used by user targets. This simplifies building + # static user targets (USE=static-user) considerably. + conf_notuser() { + if [[ ${buildtype} == "user" ]] ; then + echo "--disable-${2:-$1}" + else + use_enable "$@" + fi + } + # Enable option only for softmmu build, but not 'user' or 'tools' + conf_softmmu() { + if [[ ${buildtype} == "softmmu" ]] ; then + use_enable "$@" + else + echo "--disable-${2:-$1}" + fi + } + # Enable option only for tools build, but not 'user' or 'softmmu' + conf_tools() { + if [[ ${buildtype} == "tools" ]] ; then + use_enable "$@" + else + echo "--disable-${2:-$1}" + fi + } + # Special case for the malloc flag, because the --disable flag does + # not exist and trying like above will break configuring. + conf_malloc() { + if [[ ! ${buildtype} == "user" ]] ; then + usex "${1}" "--enable-malloc=${1}" "" + fi + } + conf_opts+=( + $(conf_notuser accessibility brlapi) + $(conf_notuser aio linux-aio) + $(conf_softmmu bpf) + $(conf_notuser bzip2) + $(conf_notuser capstone) + $(conf_notuser curl) + $(conf_tools doc docs) + $(conf_notuser fdt) + $(conf_notuser fuse) + $(conf_notuser glusterfs) + $(conf_notuser gnutls) + $(conf_notuser gnutls nettle) + $(conf_notuser gtk) + $(conf_notuser infiniband rdma) + $(conf_notuser iscsi libiscsi) + $(conf_notuser io-uring linux-io-uring) + $(conf_malloc jemalloc) + $(conf_notuser jpeg vnc-jpeg) + $(conf_notuser kernel_linux kvm) + $(conf_notuser keyutils libkeyutils) + $(conf_notuser lzo) + $(conf_notuser multipath mpath) + $(conf_notuser ncurses curses) + $(conf_notuser nfs libnfs) + $(conf_notuser numa) + $(conf_notuser opengl) + $(conf_notuser pam auth-pam) + $(conf_notuser png) + $(conf_notuser rbd) + $(conf_notuser sasl vnc-sasl) + $(conf_notuser sdl) + $(conf_softmmu sdl-image) + $(conf_notuser seccomp) + $(conf_notuser slirp) + $(conf_notuser smartcard) + $(conf_notuser snappy) + $(conf_notuser spice) + $(conf_notuser ssh libssh) + $(conf_notuser udev libudev) + $(conf_notuser usb libusb) + $(conf_notuser usbredir usb-redir) + $(conf_notuser vde) + $(conf_notuser vhost-net) + $(conf_notuser virgl virglrenderer) + $(conf_softmmu virtfs) + $(conf_notuser vnc) + $(conf_notuser vte) + $(conf_softmmu xdp af-xdp) + $(conf_notuser xen) + $(conf_notuser xen xen-pci-passthrough) + # use prebuilt keymaps, bug #759604 + --disable-xkbcommon + $(conf_notuser zstd) + ) + + if [[ ! ${buildtype} == "user" ]] ; then + # audio options + local audio_opts=( + # Note: backend order matters here: #716202 + # We iterate from higher-level to lower level. + $(usex pulseaudio pa "") + $(usev pipewire) + $(usev jack) + $(usev sdl) + $(usev alsa) + $(usev oss) + ) + conf_opts+=( + --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}") + ) + fi + + case ${buildtype} in + user) + conf_opts+=( + --enable-linux-user + --disable-system + --disable-tools + --disable-cap-ng + --disable-seccomp + ) + local static_flag="static-user" + ;; + softmmu) + conf_opts+=( + --disable-linux-user + --enable-system + --disable-tools + --enable-cap-ng + --enable-seccomp + ) + local static_flag="none" + ;; + tools) + conf_opts+=( + --disable-linux-user + --disable-system + --enable-tools + --enable-cap-ng + ) + local static_flag="none" + ;; + esac + + local targets="${buildtype}_targets" + [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" ) + + # Add support for SystemTap + use systemtap && conf_opts+=( --enable-trace-backends="dtrace" ) + + # We always want to attempt to build with PIE support as it results + # in a more secure binary. But it doesn't work with static or if + # the current GCC doesn't have PIE support. + if [[ ${static_flag} != "none" ]] && use ${static_flag}; then + conf_opts+=( --static --disable-pie ) + else + tc-enables-pie && conf_opts+=( --enable-pie ) + fi + + # Meson will not use a cross-file unless cross_prefix is set. + tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" ) + + # Plumb through equivalent of EXTRA_ECONF to allow experiments + # like bug #747928. + conf_opts+=( ${EXTRA_CONF_QEMU} ) + + echo "../configure ${conf_opts[*]}" + cd "${builddir}" + ../configure "${conf_opts[@]}" || die "configure failed" +} + +src_configure() { + local target + + python_setup + + softmmu_targets= softmmu_bins=() + user_targets= user_bins=() + + for target in ${IUSE_SOFTMMU_TARGETS} ; do + if use "qemu_softmmu_targets_${target}"; then + softmmu_targets+=",${target}-softmmu" + softmmu_bins+=( "qemu-system-${target}" ) + fi + done + + for target in ${IUSE_USER_TARGETS} ; do + if use "qemu_user_targets_${target}"; then + user_targets+=",${target}-linux-user" + user_bins+=( "qemu-${target}" ) + fi + done + + softmmu_targets=${softmmu_targets#,} + user_targets=${user_targets#,} + + [[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu" + [[ -n ${user_targets} ]] && qemu_src_configure "user" + qemu_src_configure "tools" +} + +src_compile() { + if [[ -n ${user_targets} ]]; then + cd "${S}/user-build" || die + default + fi + + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" || die + default + fi + + cd "${S}/tools-build" || die + default +} + +src_test() { + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" || die + pax-mark m */qemu-system-* #515550 + emake check + fi +} + +qemu_python_install() { + python_domodule "${S}/python/qemu" + + python_doscript "${S}/scripts/kvm/vmxcap" + python_doscript "${S}/scripts/qmp/qmp-shell" + python_doscript "${S}/scripts/qmp/qemu-ga-client" +} + +# Generate binfmt support files. +# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc) +# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt) +generate_initd() { + local out="${T}/qemu-binfmt" + local out_systemd="${T}/qemu.conf" + local d="${T}/binfmt.d" + + einfo "Generating qemu binfmt scripts and configuration files" + + # Generate the debian fragments first. + mkdir -p "${d}" + "${S}"/scripts/qemu-binfmt-conf.sh \ + --debian \ + --exportdir "${d}" \ + --qemu-path "${EPREFIX}/usr/bin" \ + || die + # Then turn the fragments into a shell script we can source. + sed -E -i \ + -e 's:^([^ ]+) (.*)$:\1="\2":' \ + "${d}"/* || die + + # Generate the init.d script by assembling the fragments from above. + local f qcpu package interpreter magic mask + cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die + for f in "${d}"/qemu-* ; do + source "${f}" + + # Normalize the cpu logic like we do in the init.d for the native cpu. + qcpu=${package#qemu-} + case ${qcpu} in + arm*) qcpu="arm";; + mips*) qcpu="mips";; + ppc*) qcpu="ppc";; + s390*) qcpu="s390";; + sh*) qcpu="sh";; + sparc*) qcpu="sparc";; + esac + + # we use 'printf' here to be portable across 'sh' + # implementations: #679168 + cat <>"${out}" + if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then + printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register + fi +EOF + + echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}" + + done + cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die +} + +src_install() { + if [[ -n ${user_targets} ]]; then + cd "${S}/user-build" + emake DESTDIR="${ED}" install + + # Install binfmt handler init script for user targets. + generate_initd + doinitd "${T}/qemu-binfmt" + + # Install binfmt/qemu.conf. + insinto "/usr/share/qemu/binfmt.d" + doins "${T}/qemu.conf" + fi + + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" + emake DESTDIR="${ED}" install + + # This might not exist if the test failed. #512010 + [[ -e check-report.html ]] && dodoc check-report.html + + if use kernel_linux; then + udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules + fi + + if use python; then + python_foreach_impl qemu_python_install + fi + fi + + cd "${S}/tools-build" || die + emake DESTDIR="${ED}" install + + # If USE=doc, there'll be newly generated docs which we install instead. + if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then + doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8] + fi + + # Disable mprotect on the qemu binaries as they use JITs to be fast #459348 + pushd "${ED}"/usr/bin >/dev/null || die + pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594 + popd >/dev/null || die + + # Install config file example for qemu-bridge-helper + insinto "/etc/qemu" + doins "${FILESDIR}/bridge.conf" + + cd "${S}" || die + dodoc MAINTAINERS + newdoc pc-bios/README README.pc-bios + + # Disallow stripping of prebuilt firmware files. + dostrip -x ${QA_PREBUILT} + + if [[ -n ${softmmu_targets} ]]; then + # Remove SeaBIOS since we're using the SeaBIOS packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin + fi + + # Remove vgabios since we're using the seavgabios packaged one + rm "${ED}/usr/share/qemu/vgabios.bin" + rm "${ED}/usr/share/qemu/vgabios-cirrus.bin" + rm "${ED}/usr/share/qemu/vgabios-qxl.bin" + rm "${ED}/usr/share/qemu/vgabios-stdvga.bin" + rm "${ED}/usr/share/qemu/vgabios-virtio.bin" + rm "${ED}/usr/share/qemu/vgabios-vmware.bin" + + # PPC/PPC64 loads vgabios-stdvga + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then + dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin + dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin + dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin + dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin + dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin + dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin + fi + + # Remove sgabios since we're using the sgabios packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin + fi + + # Remove iPXE since we're using the iPXE packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom + dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom + dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom + dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom + dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom + dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom + fi + fi + + DISABLE_AUTOFORMATTING=true + readme.gentoo_create_doc +} + +firmware_abi_change() { + local pv + for pv in ${REPLACING_VERSIONS}; do + if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then + return 0 + fi + done + return 1 +} + +pkg_postinst() { + if [[ -n ${softmmu_targets} ]] && use kernel_linux; then + udev_reload + fi + + xdg_icon_cache_update + + [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \ + fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper + + DISABLE_AUTOFORMATTING=true + readme.gentoo_print_elog + + if use pin-upstream-blobs && firmware_abi_change; then + ewarn "This version of qemu pins new versions of firmware blobs:" + + if has_version 'sys-firmware/edk2-bin'; then + ewarn " $(best_version sys-firmware/edk2-bin)" + else + ewarn " $(best_version sys-firmware/edk2)" + fi + + if has_version 'sys-firmware/seabios-bin'; then + ewarn " $(best_version sys-firmware/seabios-bin)" + else + ewarn " $(best_version sys-firmware/seabios)" + fi + + ewarn " $(best_version sys-firmware/ipxe)" + ewarn " $(best_version sys-firmware/sgabios)" + ewarn "This might break resume of hibernated guests (started with a different" + ewarn "firmware version) and live migration to/from qemu versions with different" + ewarn "firmware. Please (cold) restart all running guests. For functional" + ewarn "guest migration ensure that all" + ewarn "hosts run at least" + ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}." + fi +} + +pkg_info() { + echo "Using:" + echo " $(best_version app-emulation/spice-protocol)" + + if has_version 'sys-firmware/edk2-bin'; then + echo " $(best_version sys-firmware/edk2-bin)" + else + echo " $(best_version sys-firmware/edk2)" + fi + + if has_version 'sys-firmware/seabios-bin'; then + echo " $(best_version sys-firmware/seabios-bin)" + else + echo " $(best_version sys-firmware/seabios)" + fi + + echo " $(best_version sys-firmware/ipxe)" + echo " $(best_version sys-firmware/sgabios)" +} + +pkg_postrm() { + xdg_icon_cache_update + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.1.2.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.1.2.ebuild new file mode 100644 index 00000000000..61886a5726e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.1.2.ebuild @@ -0,0 +1,1005 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs +# Set to 1 if prebuilt, 0 if not +# (the construct below is to allow overriding from env for script) +QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1} +QEMU_DOCS_PREBUILT_DEV=sam +QEMU_DOCS_VERSION=$(ver_cut 1-2).0 +# Default to generating docs (inc. man pages) if no prebuilt; overridden later +# bug #830088 +QEMU_DOC_USEFLAG="+doc" + +PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_REQ_USE="ensurepip(-),ncurses,readline" + +FIRMWARE_ABI_VERSION="7.2.0" + +inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \ + pax-utils xdg-utils + +if [[ ${PV} == *9999* ]]; then + QEMU_DOCS_PREBUILT=0 + + EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/" + EGIT_SUBMODULES=() + inherit git-r3 + SRC_URI="" + declare -A SUBPROJECTS=( + [keycodemapdb]="f5772a62ec52591ff6870b7e8ef32482371f22c6" + [berkeley-softfloat-3]="b64af41c3276f97f0e181920400ee056b9c88037" + [berkeley-testfloat-3]="e7af9751d9f9fd3b47911f51a5cfd08af256a9ab" + ) + + for proj in "${!SUBPROJECTS[@]}"; do + c=${SUBPROJECTS[${proj}]} + SRC_URI+=" https://gitlab.com/qemu-project/${proj}/-/archive/${c}/${proj}-${c}.tar.bz2" + done +else + MY_P="${PN}-${PV/_rc/-rc}" + SRC_URI="https://download.qemu.org/${MY_P}.tar.xz" + + if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then + SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )" + fi + + S="${WORKDIR}/${MY_P}" + [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" +fi + +DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools" +HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org" + +LICENSE="GPL-2 LGPL-2 BSD-2" +SLOT="0" + +[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc" + +IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG} + +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring + jack jemalloc +jpeg keyutils + lzo multipath + ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs pipewire + plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux + +slirp + smartcard snappy spice ssh static-user systemtap test udev usb + usbredir vde +vhost-net virgl virtfs +vnc vte xattr xdp xen + zstd" + +COMMON_TARGETS=" + aarch64 + alpha + arm + cris + hppa + i386 + loongarch64 + m68k + microblaze + microblazeel + mips + mips64 + mips64el + mipsel + or1k + ppc + ppc64 + riscv32 + riscv64 + s390x + sh4 + sh4eb + sparc + sparc64 + x86_64 + xtensa + xtensaeb +" +IUSE_SOFTMMU_TARGETS=" + ${COMMON_TARGETS} + avr + rx + tricore +" +IUSE_USER_TARGETS=" + ${COMMON_TARGETS} + aarch64_be + armeb + hexagon + mipsn32 + mipsn32el + ppc64le + sparc32plus +" + +use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS}) +use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS}) +IUSE+=" ${use_softmmu_targets} ${use_user_targets}" + +RESTRICT="!test? ( test )" + +# Allow no targets to be built so that people can get a tools-only build. +# Block USE flag configurations known to not work. +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + qemu_softmmu_targets_arm? ( fdt ) + qemu_softmmu_targets_microblaze? ( fdt ) + qemu_softmmu_targets_mips64el? ( fdt ) + qemu_softmmu_targets_ppc64? ( fdt ) + qemu_softmmu_targets_ppc? ( fdt ) + qemu_softmmu_targets_riscv32? ( fdt ) + qemu_softmmu_targets_riscv64? ( fdt ) + qemu_softmmu_targets_x86_64? ( fdt ) + sdl-image? ( sdl ) + static-user? ( !plugins ) + virgl? ( opengl ) + virtfs? ( xattr ) + vnc? ( gnutls ) + vte? ( gtk ) + multipath? ( udev ) + plugins? ( !static-user ) + xdp? ( bpf ) +" +for smname in ${IUSE_SOFTMMU_TARGETS} ; do + REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )" +done + +# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) +# and user/softmmu targets (qemu-*, qemu-system-*). +# +# Yep, you need both libcap and libcap-ng since virtfs only uses libcap. +# +# The attr lib isn't always linked in (although the USE flag is always +# respected). This is because qemu supports using the C library's API +# when available rather than always using the external library. +ALL_DEPEND=" + dev-libs/glib:2[static-libs(+)] + sys-libs/zlib[static-libs(+)] + python? ( ${PYTHON_DEPS} ) + systemtap? ( dev-debug/systemtap ) + xattr? ( sys-apps/attr[static-libs(+)] ) +" + +# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) +# softmmu targets (qemu-system-*). +SOFTMMU_TOOLS_DEPEND=" + >=x11-libs/pixman-0.28.0[static-libs(+)] + accessibility? ( + app-accessibility/brltty[api] + app-accessibility/brltty[static-libs(+)] + ) + aio? ( dev-libs/libaio[static-libs(+)] ) + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + bpf? ( dev-libs/libbpf:= ) + bzip2? ( app-arch/bzip2[static-libs(+)] ) + capstone? ( dev-libs/capstone:=[static-libs(+)] ) + curl? ( >=net-misc/curl-7.15.4[static-libs(+)] ) + fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] ) + fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] ) + glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] ) + gnutls? ( + >=net-libs/gnutls-3.0:=[static-libs(+)] + dev-libs/nettle:=[static-libs(+)] + ) + gtk? ( + x11-libs/gtk+:3 + vte? ( x11-libs/vte:2.91 ) + ) + infiniband? ( sys-cluster/rdma-core[static-libs(+)] ) + iscsi? ( net-libs/libiscsi ) + io-uring? ( sys-libs/liburing:=[static-libs(+)] ) + jack? ( virtual/jack ) + jemalloc? ( dev-libs/jemalloc ) + jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] ) + kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] ) + keyutils? ( sys-apps/keyutils[static-libs(+)] ) + lzo? ( dev-libs/lzo:2[static-libs(+)] ) + multipath? ( sys-fs/multipath-tools ) + ncurses? ( + sys-libs/ncurses:=[unicode(+)] + sys-libs/ncurses:=[static-libs(+)] + ) + nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] ) + numa? ( sys-process/numactl[static-libs(+)] ) + opengl? ( + virtual/opengl + media-libs/libepoxy[static-libs(+)] + media-libs/mesa[static-libs(+)] + media-libs/mesa[egl(+),gbm(+)] + ) + pam? ( sys-libs/pam ) + pipewire? ( >=media-video/pipewire-0.3.60 ) + png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] ) + pulseaudio? ( media-libs/libpulse ) + rbd? ( sys-cluster/ceph ) + sasl? ( dev-libs/cyrus-sasl[static-libs(+)] ) + sdl? ( + media-libs/libsdl2[video] + media-libs/libsdl2[static-libs(+)] + ) + sdl-image? ( media-libs/sdl2-image[static-libs(+)] ) + seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] ) + slirp? ( net-libs/libslirp[static-libs(+)] ) + smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] ) + snappy? ( app-arch/snappy:= ) + spice? ( + >=app-emulation/spice-protocol-0.14.0 + >=app-emulation/spice-0.14.0[static-libs(+)] + ) + ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] ) + udev? ( virtual/libudev:= ) + usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] ) + usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] ) + vde? ( net-misc/vde[static-libs(+)] ) + virgl? ( media-libs/virglrenderer[static-libs(+)] ) + virtfs? ( sys-libs/libcap ) + xdp? ( net-libs/xdp-tools ) + xen? ( app-emulation/xen-tools:= ) + zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] ) +" + +EDK2_OVMF_VERSION="202202" +SEABIOS_VERSION="1.16.3" + +X86_FIRMWARE_DEPEND=" + pin-upstream-blobs? ( + ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + ~sys-firmware/ipxe-1.21.1[binary,qemu] + ~sys-firmware/seabios-bin-${SEABIOS_VERSION} + ~sys-firmware/sgabios-0.1_pre10[binary] + ) + !pin-upstream-blobs? ( + || ( + >=sys-firmware/edk2-${EDK2_OVMF_VERSION} + >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + ) + sys-firmware/ipxe[qemu] + || ( + >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] + >=sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + sys-firmware/sgabios + ) +" +PPC_FIRMWARE_DEPEND=" + pin-upstream-blobs? ( + ~sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + !pin-upstream-blobs? ( + || ( + >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] + >=sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + ) +" + +# See bug #913084 for pip dep +BDEPEND=" + $(python_gen_impl_dep) + dev-lang/perl + >=dev-build/meson-0.63.0 + app-alternatives/ninja + virtual/pkgconfig + doc? ( + >=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}] + dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] + ) + gtk? ( nls? ( sys-devel/gettext ) ) + test? ( + dev-libs/glib[utils] + app-alternatives/bc + ) +" +CDEPEND=" + ${ALL_DEPEND//\[static-libs(+)]} + ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]} + qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} ) +" +DEPEND=" + ${CDEPEND} + kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 ) + static-user? ( ${ALL_DEPEND} ) +" +RDEPEND=" + ${CDEPEND} + acct-group/kvm + selinux? ( + sec-policy/selinux-qemu + sys-libs/libselinux + ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-9.0.0-disable-keymap.patch + "${FILESDIR}"/${PN}-9.1.0-capstone-include-path.patch + "${FILESDIR}"/${PN}-9.0.0-also-build-virtfs-proxy-helper.patch + "${FILESDIR}"/${PN}-8.1.0-skip-tests.patch + "${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch + +) + +QA_PREBUILT=" + usr/share/qemu/hppa-firmware.img + usr/share/qemu/hppa-firmware64.img + usr/share/qemu/openbios-ppc + usr/share/qemu/openbios-sparc64 + usr/share/qemu/openbios-sparc32 + usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf + usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf + usr/share/qemu/palcode-clipper + usr/share/qemu/s390-ccw.img + usr/share/qemu/s390-netboot.img + usr/share/qemu/u-boot.e500 +" + +QA_WX_LOAD=" + usr/bin/qemu-i386 + usr/bin/qemu-x86_64 + usr/bin/qemu-alpha + usr/bin/qemu-arm + usr/bin/qemu-cris + usr/bin/qemu-m68k + usr/bin/qemu-microblaze + usr/bin/qemu-microblazeel + usr/bin/qemu-mips + usr/bin/qemu-mipsel + usr/bin/qemu-or1k + usr/bin/qemu-ppc + usr/bin/qemu-ppc64 + usr/bin/qemu-sh4 + usr/bin/qemu-sh4eb + usr/bin/qemu-sparc + usr/bin/qemu-sparc64 + usr/bin/qemu-armeb + usr/bin/qemu-sparc32plus + usr/bin/qemu-s390x + usr/bin/qemu-unicore32 +" + +DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the +kernel module loaded before running kvm. The easiest way to ensure that the +kernel module is loaded is to load it on boot. + For AMD CPUs the module is called 'kvm-amd'. + For Intel CPUs the module is called 'kvm-intel'. +Please review /etc/conf.d/modules for how to load these. + +Make sure your user is in the 'kvm' group. Just run + $ gpasswd -a kvm +then have re-login. + +For brand new installs, the default permissions on /dev/kvm might not let +you access it. You can tell udev to reset ownership/perms: + $ udevadm trigger -c add /dev/kvm + +If you want to register binfmt handlers for qemu user targets: +For openrc: + # rc-update add qemu-binfmt +For systemd: + # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf" + +pkg_pretend() { + if use kernel_linux && kernel_is lt 2 6 25; then + eerror "This version of KVM requires a host kernel of 2.6.25 or higher." + elif use kernel_linux; then + if ! linux_config_exists; then + eerror "Unable to check your kernel for KVM support" + else + CONFIG_CHECK="~KVM ~TUN ~BRIDGE" + ERROR_KVM="You must enable KVM in your kernel to continue" + ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in" + ERROR_KVM_AMD+=" your kernel configuration." + ERROR_KVM_INTEL="If you have an Intel CPU, you must enable" + ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration." + ERROR_TUN="You will need the Universal TUN/TAP driver compiled" + ERROR_TUN+=" into your kernel or loaded as a module to use the" + ERROR_TUN+=" virtual network device if using -net tap." + ERROR_BRIDGE="You will also need support for 802.1d" + ERROR_BRIDGE+=" Ethernet Bridging for some network configurations." + use vhost-net && CONFIG_CHECK+=" ~VHOST_NET" + ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net" + ERROR_VHOST_NET+=" support" + use test && CONFIG_CHECK+=" IP_MULTICAST" + ERROR_IP_MULTICAST="Test suite requires IP_MULTICAST" + + if use amd64 || use x86 || use amd64-linux || use x86-linux; then + if grep -q AuthenticAMD /proc/cpuinfo; then + CONFIG_CHECK+=" ~KVM_AMD" + elif grep -q GenuineIntel /proc/cpuinfo; then + CONFIG_CHECK+=" ~KVM_INTEL" + fi + fi + + use python && CONFIG_CHECK+=" ~DEBUG_FS" + ERROR_DEBUG_FS="debugFS support required for kvm_stat" + + # Now do the actual checks setup above + check_extra_config + fi + fi + + if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then + eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt" + eerror "instances are still pointing to it. Please update your" + eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag" + eerror "and the right system binary (e.g. qemu-system-x86_64)." + die "update your virt configs to not use qemu-kvm" + fi +} + +# Sanity check to make sure target lists are kept up-to-date. +check_targets() { + local var=$1 mak=$2 + local detected sorted + + pushd "${S}"/configs/targets/ >/dev/null || die + + # Force C locale until glibc is updated. #564936 + detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u)) + sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u)) + if [[ ${sorted} != "${detected}" ]] ; then + eerror "The ebuild needs to be kept in sync." + eerror "${var}: ${sorted}" + eerror "$(printf '%-*s' ${#var} configure): ${detected}" + die "sync ${var} to the list of targets" + fi + + popd >/dev/null +} + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + for file in ${A}; do + unpack "${file}" + done + cd "${WORKDIR}" || die + for proj in "${!SUBPROJECTS[@]}"; do + mv "${proj}-${SUBPROJECTS[${proj}]}" "${S}/subprojects/${proj}" || die + done + cd "${S}" || die + meson subprojects packagefiles --apply || die + else + default + fi +} + +src_prepare() { + check_targets IUSE_SOFTMMU_TARGETS softmmu + check_targets IUSE_USER_TARGETS linux-user + + default + + # Use correct toolchain to fix cross-compiling + tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS + export WINDRES=${CHOST}-windres + + # Workaround for bug #938302 + if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then + cat >> "${S}"/configs/meson/linux.txt <<-EOF || die + [binaries] + dtrace='stap-dtrace' + EOF + fi + + # Verbose builds + MAKEOPTS+=" V=1" + + # Remove bundled modules + rm -r roms/*/ || die +} + +## +# configures qemu based on the build directory and the build type +# we are using. +# +qemu_src_configure() { + debug-print-function ${FUNCNAME} "$@" + + local buildtype=$1 + local builddir="${S}/${buildtype}-build" + + mkdir "${builddir}" || die + + local conf_opts=( + --prefix=/usr + --sysconfdir=/etc + --bindir=/usr/bin + --libdir=/usr/$(get_libdir) + --datadir=/usr/share + --docdir=/usr/share/doc/${PF}/html + --mandir=/usr/share/man + --localstatedir=/var + --disable-bsd-user + --disable-containers # bug #732972 + --disable-guest-agent + --disable-strip + --disable-download + + # bug #746752: TCG interpreter has a few limitations: + # - it does not support FPU + # - it's generally slower on non-self-modifying code + # It's advantage is support for host architectures + # where native codegeneration is not implemented. + # Gentoo has qemu keyworded only on targets with + # native code generation available. Avoid the interpreter. + --disable-tcg-interpreter + + --disable-werror + # We support gnutls/nettle for crypto operations. It is possible + # to use gcrypt when gnutls/nettle are disabled (but not when they + # are enabled), but it's not really worth the hassle. Disable it + # all the time to avoid automatically detecting it. #568856 + --disable-gcrypt + --cc="$(tc-getCC)" + --cxx="$(tc-getCXX)" + --objcc="$(tc-getCC)" + --host-cc="$(tc-getBUILD_CC)" + + $(use_enable alsa) + $(use_enable debug debug-info) + $(use_enable debug debug-tcg) + $(use_enable jack) + $(use_enable nls gettext) + $(use_enable oss) + $(use_enable pipewire) + $(use_enable plugins) + $(use_enable pulseaudio pa) + $(use_enable selinux) + $(use_enable xattr attr) + ) + + # Disable options not used by user targets. This simplifies building + # static user targets (USE=static-user) considerably. + conf_notuser() { + if [[ ${buildtype} == "user" ]] ; then + echo "--disable-${2:-$1}" + else + use_enable "$@" + fi + } + # Enable option only for softmmu build, but not 'user' or 'tools' + conf_softmmu() { + if [[ ${buildtype} == "softmmu" ]] ; then + use_enable "$@" + else + echo "--disable-${2:-$1}" + fi + } + # Enable option only for tools build, but not 'user' or 'softmmu' + conf_tools() { + if [[ ${buildtype} == "tools" ]] ; then + use_enable "$@" + else + echo "--disable-${2:-$1}" + fi + } + # Special case for the malloc flag, because the --disable flag does + # not exist and trying like above will break configuring. + conf_malloc() { + if [[ ! ${buildtype} == "user" ]] ; then + usex "${1}" "--enable-malloc=${1}" "" + fi + } + conf_opts+=( + $(conf_notuser accessibility brlapi) + $(conf_notuser aio linux-aio) + $(conf_softmmu bpf) + $(conf_notuser bzip2) + $(conf_notuser capstone) + $(conf_notuser curl) + $(conf_tools doc docs) + $(conf_notuser fdt) + $(conf_notuser fuse) + $(conf_notuser glusterfs) + $(conf_notuser gnutls) + $(conf_notuser gnutls nettle) + $(conf_notuser gtk) + $(conf_notuser infiniband rdma) + $(conf_notuser iscsi libiscsi) + $(conf_notuser io-uring linux-io-uring) + $(conf_malloc jemalloc) + $(conf_notuser jpeg vnc-jpeg) + $(conf_notuser kernel_linux kvm) + $(conf_notuser keyutils libkeyutils) + $(conf_notuser lzo) + $(conf_notuser multipath mpath) + $(conf_notuser ncurses curses) + $(conf_notuser nfs libnfs) + $(conf_notuser numa) + $(conf_notuser opengl) + $(conf_notuser pam auth-pam) + $(conf_notuser png) + $(conf_notuser rbd) + $(conf_notuser sasl vnc-sasl) + $(conf_notuser sdl) + $(conf_softmmu sdl-image) + $(conf_notuser seccomp) + $(conf_notuser slirp) + $(conf_notuser smartcard) + $(conf_notuser snappy) + $(conf_notuser spice) + $(conf_notuser ssh libssh) + $(conf_notuser udev libudev) + $(conf_notuser usb libusb) + $(conf_notuser usbredir usb-redir) + $(conf_notuser vde) + $(conf_notuser vhost-net) + $(conf_notuser virgl virglrenderer) + $(conf_softmmu virtfs) + $(conf_notuser vnc) + $(conf_notuser vte) + $(conf_softmmu xdp af-xdp) + $(conf_notuser xen) + $(conf_notuser xen xen-pci-passthrough) + # use prebuilt keymaps, bug #759604 + --disable-xkbcommon + $(conf_notuser zstd) + ) + + if [[ ! ${buildtype} == "user" ]] ; then + # audio options + local audio_opts=( + # Note: backend order matters here: #716202 + # We iterate from higher-level to lower level. + $(usex pulseaudio pa "") + $(usev pipewire) + $(usev jack) + $(usev sdl) + $(usev alsa) + $(usev oss) + ) + conf_opts+=( + --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}") + ) + fi + + case ${buildtype} in + user) + conf_opts+=( + --enable-linux-user + --disable-system + --disable-tools + --disable-cap-ng + --disable-seccomp + ) + local static_flag="static-user" + ;; + softmmu) + conf_opts+=( + --disable-linux-user + --enable-system + --disable-tools + --enable-cap-ng + --enable-seccomp + ) + local static_flag="none" + ;; + tools) + conf_opts+=( + --disable-linux-user + --disable-system + --enable-tools + --enable-cap-ng + ) + local static_flag="none" + ;; + esac + + local targets="${buildtype}_targets" + [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" ) + + # Add support for SystemTap + use systemtap && conf_opts+=( --enable-trace-backends="dtrace" ) + + # We always want to attempt to build with PIE support as it results + # in a more secure binary. But it doesn't work with static or if + # the current GCC doesn't have PIE support. + if [[ ${static_flag} != "none" ]] && use ${static_flag}; then + conf_opts+=( --static --disable-pie ) + else + tc-enables-pie && conf_opts+=( --enable-pie ) + fi + + # Meson will not use a cross-file unless cross_prefix is set. + tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" ) + + # Plumb through equivalent of EXTRA_ECONF to allow experiments + # like bug #747928. + conf_opts+=( ${EXTRA_CONF_QEMU} ) + + echo "../configure ${conf_opts[*]}" + cd "${builddir}" + ../configure "${conf_opts[@]}" || die "configure failed" +} + +src_configure() { + local target + + python_setup + + softmmu_targets= softmmu_bins=() + user_targets= user_bins=() + + for target in ${IUSE_SOFTMMU_TARGETS} ; do + if use "qemu_softmmu_targets_${target}"; then + softmmu_targets+=",${target}-softmmu" + softmmu_bins+=( "qemu-system-${target}" ) + fi + done + + for target in ${IUSE_USER_TARGETS} ; do + if use "qemu_user_targets_${target}"; then + user_targets+=",${target}-linux-user" + user_bins+=( "qemu-${target}" ) + fi + done + + softmmu_targets=${softmmu_targets#,} + user_targets=${user_targets#,} + + [[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu" + [[ -n ${user_targets} ]] && qemu_src_configure "user" + qemu_src_configure "tools" +} + +src_compile() { + if [[ -n ${user_targets} ]]; then + cd "${S}/user-build" || die + default + fi + + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" || die + default + fi + + cd "${S}/tools-build" || die + default +} + +src_test() { + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" || die + pax-mark m */qemu-system-* #515550 + emake check + fi +} + +qemu_python_install() { + python_domodule "${S}/python/qemu" + + python_doscript "${S}/scripts/kvm/vmxcap" + python_doscript "${S}/scripts/qmp/qmp-shell" + python_doscript "${S}/scripts/qmp/qemu-ga-client" +} + +# Generate binfmt support files. +# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc) +# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt) +generate_initd() { + local out="${T}/qemu-binfmt" + local out_systemd="${T}/qemu.conf" + local d="${T}/binfmt.d" + + einfo "Generating qemu binfmt scripts and configuration files" + + # Generate the debian fragments first. + mkdir -p "${d}" + "${S}"/scripts/qemu-binfmt-conf.sh \ + --debian \ + --exportdir "${d}" \ + --qemu-path "${EPREFIX}/usr/bin" \ + || die + # Then turn the fragments into a shell script we can source. + sed -E -i \ + -e 's:^([^ ]+) (.*)$:\1="\2":' \ + "${d}"/* || die + + # Generate the init.d script by assembling the fragments from above. + local f qcpu package interpreter magic mask + cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die + for f in "${d}"/qemu-* ; do + source "${f}" + + # Normalize the cpu logic like we do in the init.d for the native cpu. + qcpu=${package#qemu-} + case ${qcpu} in + arm*) qcpu="arm";; + mips*) qcpu="mips";; + ppc*) qcpu="ppc";; + s390*) qcpu="s390";; + sh*) qcpu="sh";; + sparc*) qcpu="sparc";; + esac + + # we use 'printf' here to be portable across 'sh' + # implementations: #679168 + cat <>"${out}" + if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then + printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register + fi +EOF + + echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}" + + done + cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die +} + +src_install() { + if [[ -n ${user_targets} ]]; then + cd "${S}/user-build" + emake DESTDIR="${ED}" install + + # Install binfmt handler init script for user targets. + generate_initd + doinitd "${T}/qemu-binfmt" + + # Install binfmt/qemu.conf. + insinto "/usr/share/qemu/binfmt.d" + doins "${T}/qemu.conf" + fi + + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" + emake DESTDIR="${ED}" install + + # This might not exist if the test failed. #512010 + [[ -e check-report.html ]] && dodoc check-report.html + + if use kernel_linux; then + udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules + fi + + if use python; then + python_foreach_impl qemu_python_install + fi + fi + + cd "${S}/tools-build" || die + emake DESTDIR="${ED}" install + + # If USE=doc, there'll be newly generated docs which we install instead. + if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then + doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8] + fi + + # Disable mprotect on the qemu binaries as they use JITs to be fast #459348 + pushd "${ED}"/usr/bin >/dev/null || die + pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594 + popd >/dev/null || die + + # Install config file example for qemu-bridge-helper + insinto "/etc/qemu" + doins "${FILESDIR}/bridge.conf" + + cd "${S}" || die + dodoc MAINTAINERS + newdoc pc-bios/README README.pc-bios + + # Disallow stripping of prebuilt firmware files. + dostrip -x ${QA_PREBUILT} + + if [[ -n ${softmmu_targets} ]]; then + # Remove SeaBIOS since we're using the SeaBIOS packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin + fi + + # Remove vgabios since we're using the seavgabios packaged one + rm "${ED}/usr/share/qemu/vgabios.bin" + rm "${ED}/usr/share/qemu/vgabios-cirrus.bin" + rm "${ED}/usr/share/qemu/vgabios-qxl.bin" + rm "${ED}/usr/share/qemu/vgabios-stdvga.bin" + rm "${ED}/usr/share/qemu/vgabios-virtio.bin" + rm "${ED}/usr/share/qemu/vgabios-vmware.bin" + + # PPC/PPC64 loads vgabios-stdvga + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then + dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin + dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin + dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin + dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin + dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin + dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin + fi + + # Remove sgabios since we're using the sgabios packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin + fi + + # Remove iPXE since we're using the iPXE packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom + dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom + dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom + dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom + dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom + dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom + fi + fi + + DISABLE_AUTOFORMATTING=true + readme.gentoo_create_doc +} + +firmware_abi_change() { + local pv + for pv in ${REPLACING_VERSIONS}; do + if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then + return 0 + fi + done + return 1 +} + +pkg_postinst() { + if [[ -n ${softmmu_targets} ]] && use kernel_linux; then + udev_reload + fi + + xdg_icon_cache_update + + [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \ + fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper + + DISABLE_AUTOFORMATTING=true + readme.gentoo_print_elog + + if use pin-upstream-blobs && firmware_abi_change; then + ewarn "This version of qemu pins new versions of firmware blobs:" + + if has_version 'sys-firmware/edk2-bin'; then + ewarn " $(best_version sys-firmware/edk2-bin)" + else + ewarn " $(best_version sys-firmware/edk2)" + fi + + if has_version 'sys-firmware/seabios-bin'; then + ewarn " $(best_version sys-firmware/seabios-bin)" + else + ewarn " $(best_version sys-firmware/seabios)" + fi + + ewarn " $(best_version sys-firmware/ipxe)" + ewarn " $(best_version sys-firmware/sgabios)" + ewarn "This might break resume of hibernated guests (started with a different" + ewarn "firmware version) and live migration to/from qemu versions with different" + ewarn "firmware. Please (cold) restart all running guests. For functional" + ewarn "guest migration ensure that all" + ewarn "hosts run at least" + ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}." + fi +} + +pkg_info() { + echo "Using:" + echo " $(best_version app-emulation/spice-protocol)" + + if has_version 'sys-firmware/edk2-bin'; then + echo " $(best_version sys-firmware/edk2-bin)" + else + echo " $(best_version sys-firmware/edk2)" + fi + + if has_version 'sys-firmware/seabios-bin'; then + echo " $(best_version sys-firmware/seabios-bin)" + else + echo " $(best_version sys-firmware/seabios)" + fi + + echo " $(best_version sys-firmware/ipxe)" + echo " $(best_version sys-firmware/sgabios)" +} + +pkg_postrm() { + xdg_icon_cache_update + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/metadata.xml b/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/metadata.xml index 1059efa31d7..1245a09b345 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/metadata.xml @@ -2,8 +2,8 @@ - andrewammerlaan@gentoo.org - Andrew Ammerlaan + nowa@gentoo.org + Nowa Ammerlaan diff --git a/sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-1.3.8.ebuild b/sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-1.3.8.ebuild index d17a13c5a20..50be65bd3c6 100644 --- a/sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-1.3.8.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-1.3.8.ebuild @@ -21,7 +21,7 @@ else https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz https://dev.gentoo.org/~vapier/dist/${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-2" diff --git a/sdk_container/src/third_party/portage-stable/app-portage/elt-patches/Manifest b/sdk_container/src/third_party/portage-stable/app-portage/elt-patches/Manifest index cab89598f0b..25f00971a1c 100644 --- a/sdk_container/src/third_party/portage-stable/app-portage/elt-patches/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-portage/elt-patches/Manifest @@ -2,3 +2,4 @@ DIST elt-patches-20240512.tar.xz 46176 BLAKE2B 8ca496aae63dd49e7148b7c06e687b364 DIST elt-patches-20240721.tar.xz 46392 BLAKE2B 87d2cefebcacbfa447e8981bf16eda3d21bcf4190e91c478280cd81089ab43440a86ff84a5c6b2cda7d772707dad645d4f481d9ec2543f9c14059fe084c2f54d SHA512 a8a8f55e5e1b0a2ea67895e86307a6fd5116593c25a2e3cc6fb2361f21eddc125a91c46ef84c0fd036c1bb25a682a4ff07c581c041a9b853d713d5c8f73d8d5b DIST elt-patches-20240824.tar.xz 47256 BLAKE2B 3fc40af8eb219277a11051be3e8391bed08fba28a7d79b83ee3ab3cf6360d5d0c04ce2a2db7d627eaf76e029899cafb1ad22ac465634a17d3ba6b7b48d9a457d SHA512 0eb502b026003e918e8aa4045cb3556524d52c331c099a445b9638b3cdfdabf22538c08a0526332671c3623db77bf56d3b6f580402abbc5253d1dca9ec759476 DIST elt-patches-20240912.tar.xz 47436 BLAKE2B 589643e96f83a13fec4553c4ceb14af5993be43e3519678ecfcbd689d7a0016d2cd3c06f131548c90da19188a75cd2828accc5bd516373fa64401bdbad92bce2 SHA512 502347387c594df9ebb453c5258d0d8125694b6170da6136d9579d1535e6d944f9b4eda1a049cdadbb1df29665c00165c1b0f0804413ac4470a082c49272bebd +DIST elt-patches-20241121.tar.xz 47760 BLAKE2B e0ac30748586dc5885539d79f29d5283f80cea51fdbd4af44640b7475f6a46d5c4bc30e4b452a495c3bde16d103f5e320667969c30f06cf55824b2fcdab1e45f SHA512 bce7fc40f10f8db568a3a7237daa3ce9e23dd9ea3c41f26e285cdc350c0b7afbd44eed996324ea9b091b7e69990822458e09c486f12deb70b1a5ee917aa43a80 diff --git a/sdk_container/src/third_party/portage-stable/app-portage/elt-patches/elt-patches-20240824.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/elt-patches/elt-patches-20240824.ebuild index 2d805a5f0bd..f6d6d69d964 100644 --- a/sdk_container/src/third_party/portage-stable/app-portage/elt-patches/elt-patches-20240824.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-portage/elt-patches/elt-patches-20240824.ebuild @@ -19,7 +19,7 @@ else 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 ~amd64-linux ~arm64-linux ~ppc64-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 ~arm64-linux ~ppc64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi LICENSE="GPL-2" diff --git a/sdk_container/src/third_party/portage-stable/app-portage/elt-patches/elt-patches-20241121.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/elt-patches/elt-patches-20241121.ebuild new file mode 100644 index 00000000000..3f398a3135b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-portage/elt-patches/elt-patches-20241121.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Collection of patches for libtool.eclass" +HOMEPAGE="https://gitweb.gentoo.org/proj/elt-patches.git/" + +if [[ ${PV} == *9999* ]] ; then + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/elt-patches.git + https://github.com/gentoo/elt-patches + " + inherit git-r3 +else + SRC_URI=" + https://dev.gentoo.org/~grobian/distfiles/${P}.tar.xz + https://dev.gentoo.org/~vapier/dist/${P}.tar.xz + 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 ~amd64-linux ~arm64-linux ~ppc64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +LICENSE="GPL-2" +SLOT="0" +# The 'check' target currently wants network access to fetch libtool tarballs. +RESTRICT="test" + +RDEPEND="sys-apps/gentoo-functions" +BDEPEND="app-arch/xz-utils" + +src_compile() { + emake rootprefix="${EPREFIX}" libdirname="$(get_libdir)" +} + +src_install() { + emake DESTDIR="${D}" rootprefix="${EPREFIX}" install +} 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 6f8a731d587..48ec2619be4 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 @@ -24,15 +24,8 @@ DIST bash-5.2.tar.gz 10950833 BLAKE2B 51b196e710794ebad8eac28c31c93eb99ac1a7db30 DIST bash-5.2.tar.gz.sig 95 BLAKE2B 2991b7c46ef1cdca08062f419be47fca7551f4c5d9aad8a5c1da74974f5e7707d23914b4cecf9b6c9610471146b2c49b611bb62a5d974f1c37cceb77b719851c SHA512 a161664f124f906be32709f66702f8f780e6d52e558ea45e71ec60a959c9435ff68477ee65a0a9f6c0051d5592f5044fb3b410cf3cd3ae5a8a323789b01be258 DIST bash-5.3-alpha.tar.gz 11195025 BLAKE2B b3325f6927d7dde86aae165891317b972f0b9814e134676b3d7d3aea81ce4d4cad1a01f160e290352072153ad3568ee21701a35190ef5e6274b3c03fc95c8d42 SHA512 52354eb7cd71330192ec76fdda04bcacf758a312e89b45558db5f5345f19b0d8e54732049934958cf89786f5bd7c538d88859eb8d8d22dabfc9ec7305263d10e DIST bash-5.3-alpha.tar.gz.sig 95 BLAKE2B 69c8b33fe2a40498662ef084967701cff1926086785a41d6f49a3c2e2b9908499226d3d970bdb6397a74d3ccc22acb3651261ad2a421799eb135c64a78af8589 SHA512 c9587da66457e2010b0852c6dbf5949821a543b7f1b616a4d016df3477913e2a655c57289e83adeeb31b8b8afca22313e3af76cf727b93932d33a889c1263c20 -DIST bash-5.3_alpha_p20241015-3ed028ccec871bc8d3b198c1681374b1e37df7cd.tar.gz 15914321 BLAKE2B 7ded011dbba5d9a017a03a7d8dca9bad3baaece4407c69f89f4aeb117bdac25e916e189bff38496ae127964ce5779a2dcf1de3d62b59d54f16a5c2811bfa09e3 SHA512 128d8f4bed5c69e6af8784607f4ef995d45a58a11ab9c47112d95459ef881e06f165406a337fd4ef12ab637883fd83a4c60b0a8a2a265ecd4ffead0786247fc4 -DIST bash-5.3_alpha_p20241018-261c6e8cc6c59b63be3a1597aadec72e9cf5ae72.tar.gz 15933785 BLAKE2B 95a5fd2e16e4d7e4b7c0d503887a99c2ba8570d9218d64b66397b063620732d504ce75491e98f9f363144d6ca88c35988c6a724e2253d3b2bac49fb75f6076c2 SHA512 ecd51f3b347377de5007dd3cfc68e37990125ab5a89691a4fbb08461e57066565f31137d3c5876a78300af0cd4cb487b263319c921676e985357cf37439a3b9b -DIST bash-5.3_alpha_p20241022-474743f2da5bc5eb7da4ac9de23f3d52d1bf071e.tar.gz 15937834 BLAKE2B f14dad4008192018d35543959ae8eb70836a6907d2860e2ad9344a8954923cf41058f3dc7209ad89233cc2d9e6e73dfe4c3f1eb84132d7c3cd22658a49f18fd4 SHA512 c21dedbb0c7115185b0c64e52b82d82bc3a605d69dbe3acef0a5bf40e88cfd773a5010780aca430f193385670af81ed41d5288a631eff49dc5a4cfebfaae0a8d -DIST bash-5.3_alpha_p20241026-ee3b91dfd9aaaa2acd60ece9302e7ce6f09e3e73.tar.gz 15942643 BLAKE2B d8af52e9618c9b34eac7e63b38e37cf876a6e3858397ef7c91d1d5959e579f7ab1a7db2b1bf7e8e3c3594fbba3bb80a8b33596b151e5617fc63d714c6b5e61c8 SHA512 13372ceb1b0aeabae0f892bfed9e893ca437b274802d189aa7b388c688620740cfde0dd0320c5ac347e4dd3a6375615f1df878f6200672b97ed3d27027a13b51 -DIST bash-5.3_alpha_p20241028-4917f2859c8624e834f589bbd526a7b707072ce3.tar.gz 15938746 BLAKE2B 120d8ca4b393e1e5775a03e0f09a4d60da44cbd3ad4fcadc89c2469754601bfb7503ec97cfc493be012e3a700d7755fcde46dad7819be5924c4c1a79dc91a70b SHA512 52d64f2e39697659863eb0cdfe2b9b509e85ab1d35accb456246bf34a94a6377db378cebd72440fcbc863ccd7c032daef9b5395780add203ff75d1298c961193 -DIST bash-5.3_alpha_p20241101-fffa5d0e7c05d04731fcb113db46d7f85ac39085.tar.gz 15938486 BLAKE2B cc1db98359f0a7d2fe1598cfda1d67db354696fc2a7a088bf8e231c43107979653f2968826021593d15f13ee1e5144aa49670cb182152c845eee37340fa20be7 SHA512 36a61ac433cd6ce29fe7895837d1f83bb298b4a3ac6d916711c8820ec85219f7fa280cec35b7d845eeacdc6b6ee1bea9a859f61a0c1f1f7363edeed089ebc626 -DIST bash-5.3_alpha_p20241102-bf093e31aec6963c44309274e8ec5b8eca05af95.tar.gz 15717780 BLAKE2B 6898a1a4cc9184f64bcbccc1c5621900c2d196db91be51c7ae462e461e43a288f9a0cf986ffde76390e5c1a9bddf69a5581f91f272f328703fbd18ef90b9a151 SHA512 13b989c01c5abfdfa4456210926911bad2e0fd10a0cd3b73372f4671bcfc51e3f3b0bf39a864bfdd3dce162840dbb1cc33b7f18fb92e47f893a58b234b532f7a -DIST bash-5.3_alpha_p20241104-0075715b29c9c1d984ec243cf3018775ed5612de.tar.gz 15719398 BLAKE2B 23e05c0bc505237e662c7294655c1aac3034856f85ae306e460ce2b8c09e9ab5b7ec8fd7ee68aadd896587273a1d3b8a218f546d1ecde2b787ede2d45f2cce6f SHA512 3b15722cc136bc55f5223c94be630f837d2336dde7bc15fad0b32e53e2b314af6d7ccbd0d5bbad7d13bd289823419f2e452d7e9aead403dd318af919dc2ab7e9 -DIST bash-5.3_alpha_p20241108-b116cfe57df2c061cd953b77a0fc1b738dd5fe94.tar.gz 14937995 BLAKE2B d8a9282ea50a6c02bbe844b4f6c16148d2c63aad6ca54984389465dd91a7bd8d393d9fb18ca97478bec82fe4aa01108226f023e528f1c754bb10c755be206583 SHA512 50a54a6da25bed3fd21fd4976f6378796a39a6a9f6e310f3fdc86b0cbb402f1c990b55ae07d62b96b81c83fd1a66e1fc6efbd87ce66018f48c609da196dd1d17 +DIST bash-5.3_alpha_p20241115-fa68e6da80970c302948674369d278164a33ed39.tar.gz 14947053 BLAKE2B f05df995a93ee010e7867e828d30f2cdd0aa62fa020e632018cb8f3945626e0b0c254e4cb6f6e4de3dbb01994870a39f1edecb8fb30b4d38e6455d0c645ba2c5 SHA512 de33fc8dbf9d4a833220423bdd53627fa67335130442964c88e82f11ddf1c19aab0d166d5f7dba30767b8878b36ce7ddf4deea03633e98fa3459669f99086f5b +DIST bash-5.3_alpha_p20241121-22417e78816237ae66f2da661567dfe5ed3452a1.tar.gz 14888873 BLAKE2B 78f9d15aee593497a2213e9cfcb03a0b5c8d127beacf0a2268f4bbefb79da41e6b2e4b9bf43b46c7b7cf4a276038554f708ee783fbd30f2489881af2fac165cc SHA512 f06e908ec673a605e967f7392aadcdea293bacafeb6991fd286e1b64ef606845c8cd78b01b1bb04a7ae9ad5c049324f51c1299c2fc90fdd3fd38575f9b380c11 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-2.05b_p13.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-2.05b_p13.ebuild index 4d0475f6781..332d2e91577 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-2.05b_p13.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-2.05b_p13.ebuild @@ -101,6 +101,10 @@ src_configure() { # It works fine in bash 4+. Backporting may not be worth it. filter-lto + # bash 5.3 drops unprototyped functions, earlier versions are + # incompatible with C23. + append-cflags -std=gnu17 + local myconf=( --with-installed-readline=. diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-3.0_p22.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-3.0_p22.ebuild index c134eaf7bf9..43224166225 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-3.0_p22.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-3.0_p22.ebuild @@ -106,6 +106,10 @@ src_configure() { # It works fine in bash 4+. Backporting may not be worth it. filter-lto + # bash 5.3 drops unprototyped functions, earlier versions are + # incompatible with C23. + append-cflags -std=gnu17 + local myconf=( --with-installed-readline=. diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-3.1_p23.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-3.1_p23.ebuild index 2912f931bad..7e9fb555445 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-3.1_p23.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-3.1_p23.ebuild @@ -101,6 +101,10 @@ src_configure() { # It works fine in bash 4+. Backporting may not be worth it. filter-lto + # bash 5.3 drops unprototyped functions, earlier versions are + # incompatible with C23. + append-cflags -std=gnu17 + local myconf=( --with-installed-readline=. diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-3.2_p57.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-3.2_p57.ebuild index 48aea043042..c00b1b641c4 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-3.2_p57.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-3.2_p57.ebuild @@ -103,6 +103,10 @@ src_configure() { # It works fine in bash 4+. Backporting may not be worth it. filter-lto + # bash 5.3 drops unprototyped functions, earlier versions are + # incompatible with C23. + append-cflags -std=gnu17 + local myconf=( --with-installed-readline=. diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.0_p44.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.0_p44.ebuild index b54ac9fc658..62b57fd03b0 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.0_p44.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.0_p44.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -97,6 +97,10 @@ src_prepare() { } src_configure() { + # bash 5.3 drops unprototyped functions, earlier versions are + # incompatible with C23. + append-cflags -std=gnu17 + local myconf=( --with-installed-readline=. diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.1_p17.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.1_p17.ebuild index 1bf607050dd..e17891fc9cb 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.1_p17.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.1_p17.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -92,6 +92,10 @@ src_prepare() { } src_configure() { + # bash 5.3 drops unprototyped functions, earlier versions are + # incompatible with C23. + append-cflags -std=gnu17 + local myconf=( --with-installed-readline=. diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.2_p53.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.2_p53.ebuild index 060e93efc14..9736efa4fdb 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.2_p53.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.2_p53.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -104,6 +104,10 @@ src_configure() { # may misbehave at runtime. unset YACC + # bash 5.3 drops unprototyped functions, earlier versions are + # incompatible with C23. + append-cflags -std=gnu17 + local myconf=( --with-installed-readline=. diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.3_p48-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.3_p48-r2.ebuild index 024b3ee7d69..e5cd244c3ac 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.3_p48-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.3_p48-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -113,6 +113,10 @@ src_configure() { # may misbehave at runtime. unset YACC + # bash 5.3 drops unprototyped functions, earlier versions are + # incompatible with C23. + append-cflags -std=gnu17 + local myconf=( --docdir='$(datarootdir)'/doc/${PF} --htmldir='$(docdir)/html' diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.4_p23-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.4_p23-r2.ebuild index e890271eefc..4c094621f6b 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.4_p23-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-4.4_p23-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -124,6 +124,10 @@ src_configure() { # may misbehave at runtime. unset YACC + # bash 5.3 drops unprototyped functions, earlier versions are + # incompatible with C23. + append-cflags -std=gnu17 + local myconf=( --disable-profiling diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.0_p18-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.0_p18-r2.ebuild index 021d8511603..9500f0a8c94 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.0_p18-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.0_p18-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -128,6 +128,10 @@ src_configure() { # may misbehave at runtime. unset YACC + # bash 5.3 drops unprototyped functions, earlier versions are + # incompatible with C23. + append-cflags -std=gnu17 + local myconf=( --disable-profiling diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.1_p16-r13.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.1_p16-r13.ebuild index eb7579fcf21..ddf5fd45402 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.1_p16-r13.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.1_p16-r13.ebuild @@ -173,6 +173,10 @@ src_configure() { # may misbehave at runtime. unset -v YACC + # bash 5.3 drops unprototyped functions, earlier versions are + # incompatible with C23. + append-cflags -std=gnu17 + myconf=( --disable-profiling diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p26-r6.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p26-r6.ebuild deleted file mode 100644 index 0aa7f52a8c7..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p26-r6.ebuild +++ /dev/null @@ -1,402 +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/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 - *_p*) - PLEVEL=${PV##*_p} - ;; - 9999|*_alpha*|*_beta*|*_rc*) - # Set a negative patchlevel to indicate that it's a pre-release. - PLEVEL=-1 - ;; - *) - 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.2_p1" - -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 -else - my_urls=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/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','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}-patches/${my_patch_ver}" ) - MY_PATCHES+=( "${DISTDIR}/${my_patch_ver}" ) - done - - SRC_URI="${my_urls[*]} verify-sig? ( ${my_urls[*]/%/.sig} )" - - 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 - -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" -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" - "${FILESDIR}/${PN}-5.2_p15-random-ub.patch" - "${FILESDIR}/${PN}-5.2_p15-configure-clang16.patch" - "${FILESDIR}/${PN}-5.2_p21-wpointer-to-int.patch" - "${FILESDIR}/${PN}-5.2_p21-configure-strtold.patch" - "${FILESDIR}/${PN}-5.2_p26-memory-leaks.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 - 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 - - 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.bash | newins - 10-gentoo-color.bash - doins "${FILESDIR}"/bashrc.d/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-r6"; then - return - elif ver_test "$old_ver" -lt "5.2" && ver_test "$old_ver" -ge "5.1_p16-r13"; then - return - fi - - while read -r; do ewarn "${REPLY}"; done <<'EOF' -Files situated 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, this array may contain a command -to set the terminal's window title. Those 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 manipulate the window title in the case -that the terminal is controlled by sshd(8), unless screen or tmux are in use. -Those wanting to set the title unconditionally 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.2_p26-r8.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p26-r8.ebuild deleted file mode 100644 index ca58c474007..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p26-r8.ebuild +++ /dev/null @@ -1,402 +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/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 - *_p*) - PLEVEL=${PV##*_p} - ;; - 9999|*_alpha*|*_beta*|*_rc*) - # Set a negative patchlevel to indicate that it's a pre-release. - PLEVEL=-1 - ;; - *) - 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.2_p1" - -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 -else - my_urls=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/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','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}-patches/${my_patch_ver}" ) - MY_PATCHES+=( "${DISTDIR}/${my_patch_ver}" ) - done - - SRC_URI="${my_urls[*]} verify-sig? ( ${my_urls[*]/%/.sig} )" - - 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 - -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" -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" - "${FILESDIR}/${PN}-5.2_p15-random-ub.patch" - "${FILESDIR}/${PN}-5.2_p15-configure-clang16.patch" - "${FILESDIR}/${PN}-5.2_p21-wpointer-to-int.patch" - "${FILESDIR}/${PN}-5.2_p21-configure-strtold.patch" - "${FILESDIR}/${PN}-5.2_p26-memory-leaks.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 - 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 - - 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.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r1.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.2_p37.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p37.ebuild index acb56fbe1e7..b30759530f7 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p37.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p37.ebuild @@ -174,6 +174,10 @@ src_configure() { # may misbehave at runtime. unset -v YACC + # bash 5.3 drops unprototyped functions, earlier versions are + # incompatible with C23. + append-cflags -std=gnu17 + myconf=( --disable-profiling diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241015.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241015.ebuild deleted file mode 100644 index fa68a4aea9f..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241015.ebuild +++ /dev/null @@ -1,411 +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/chetramey.asc -inherit flag-o-matic toolchain-funcs prefix verify-sig - -# Uncomment if we have a patchset. -#GENTOO_PATCH_DEV="sam" -#GENTOO_PATCH_VER="${PV}" - -MY_PV=${PV/_p*} -MY_PV=${MY_PV/_/-} -MY_P=${PN}-${MY_PV} -MY_PATCHES=() - -# Determine the patchlevel. -case ${PV} in - 9999|*_alpha*|*_beta*|*_rc*) - # Set a negative patchlevel to indicate that it's a pre-release. - PLEVEL=-1 - ;; - *_p*) - PLEVEL=${PV##*_p} - ;; - *) - PLEVEL=0 -esac - -# The version of readline this bash normally ships with. Note that we only use -# the bundled copy of readline for pre-releases. -READLINE_VER="8.3_alpha" - -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="3ed028ccec871bc8d3b198c1681374b1e37df7cd" - 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','ftp://ftp.cwru.edu/pub/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','ftp://ftp.cwru.edu/pub/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 - - # wcsnwidth(), substring() issues with -Wlto-type-mismatch, reported - # upstream to Chet by email. - filter-lto - - 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.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r1.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_alpha_p20241018.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241018.ebuild deleted file mode 100644 index c154d562ba4..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241018.ebuild +++ /dev/null @@ -1,411 +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/chetramey.asc -inherit flag-o-matic toolchain-funcs prefix verify-sig - -# Uncomment if we have a patchset. -#GENTOO_PATCH_DEV="sam" -#GENTOO_PATCH_VER="${PV}" - -MY_PV=${PV/_p*} -MY_PV=${MY_PV/_/-} -MY_P=${PN}-${MY_PV} -MY_PATCHES=() - -# Determine the patchlevel. -case ${PV} in - 9999|*_alpha*|*_beta*|*_rc*) - # Set a negative patchlevel to indicate that it's a pre-release. - PLEVEL=-1 - ;; - *_p*) - PLEVEL=${PV##*_p} - ;; - *) - PLEVEL=0 -esac - -# The version of readline this bash normally ships with. Note that we only use -# the bundled copy of readline for pre-releases. -READLINE_VER="8.3_alpha" - -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="261c6e8cc6c59b63be3a1597aadec72e9cf5ae72" - 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','ftp://ftp.cwru.edu/pub/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','ftp://ftp.cwru.edu/pub/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 - - # wcsnwidth(), substring() issues with -Wlto-type-mismatch, reported - # upstream to Chet by email. - filter-lto - - 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.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r1.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_alpha_p20241028.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241028.ebuild deleted file mode 100644 index 839b3c1fc0e..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241028.ebuild +++ /dev/null @@ -1,411 +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/chetramey.asc -inherit flag-o-matic toolchain-funcs prefix verify-sig - -# Uncomment if we have a patchset. -#GENTOO_PATCH_DEV="sam" -#GENTOO_PATCH_VER="${PV}" - -MY_PV=${PV/_p*} -MY_PV=${MY_PV/_/-} -MY_P=${PN}-${MY_PV} -MY_PATCHES=() - -# Determine the patchlevel. -case ${PV} in - 9999|*_alpha*|*_beta*|*_rc*) - # Set a negative patchlevel to indicate that it's a pre-release. - PLEVEL=-1 - ;; - *_p*) - PLEVEL=${PV##*_p} - ;; - *) - PLEVEL=0 -esac - -# The version of readline this bash normally ships with. Note that we only use -# the bundled copy of readline for pre-releases. -READLINE_VER="8.3_alpha" - -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="4917f2859c8624e834f589bbd526a7b707072ce3" - 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','ftp://ftp.cwru.edu/pub/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','ftp://ftp.cwru.edu/pub/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 - - # wcsnwidth(), substring() issues with -Wlto-type-mismatch, reported - # upstream to Chet by email. - filter-lto - - 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.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r1.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_alpha_p20241101.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241101.ebuild deleted file mode 100644 index 663518a91fb..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241101.ebuild +++ /dev/null @@ -1,411 +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/chetramey.asc -inherit flag-o-matic toolchain-funcs prefix verify-sig - -# Uncomment if we have a patchset. -#GENTOO_PATCH_DEV="sam" -#GENTOO_PATCH_VER="${PV}" - -MY_PV=${PV/_p*} -MY_PV=${MY_PV/_/-} -MY_P=${PN}-${MY_PV} -MY_PATCHES=() - -# Determine the patchlevel. -case ${PV} in - 9999|*_alpha*|*_beta*|*_rc*) - # Set a negative patchlevel to indicate that it's a pre-release. - PLEVEL=-1 - ;; - *_p*) - PLEVEL=${PV##*_p} - ;; - *) - PLEVEL=0 -esac - -# The version of readline this bash normally ships with. Note that we only use -# the bundled copy of readline for pre-releases. -READLINE_VER="8.3_alpha" - -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="fffa5d0e7c05d04731fcb113db46d7f85ac39085" - 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','ftp://ftp.cwru.edu/pub/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','ftp://ftp.cwru.edu/pub/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 - - # wcsnwidth(), substring() issues with -Wlto-type-mismatch, reported - # upstream to Chet by email. - filter-lto - - 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.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r1.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_alpha_p20241102.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241102.ebuild deleted file mode 100644 index ed400962cd3..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241102.ebuild +++ /dev/null @@ -1,411 +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/chetramey.asc -inherit flag-o-matic toolchain-funcs prefix verify-sig - -# Uncomment if we have a patchset. -#GENTOO_PATCH_DEV="sam" -#GENTOO_PATCH_VER="${PV}" - -MY_PV=${PV/_p*} -MY_PV=${MY_PV/_/-} -MY_P=${PN}-${MY_PV} -MY_PATCHES=() - -# Determine the patchlevel. -case ${PV} in - 9999|*_alpha*|*_beta*|*_rc*) - # Set a negative patchlevel to indicate that it's a pre-release. - PLEVEL=-1 - ;; - *_p*) - PLEVEL=${PV##*_p} - ;; - *) - PLEVEL=0 -esac - -# The version of readline this bash normally ships with. Note that we only use -# the bundled copy of readline for pre-releases. -READLINE_VER="8.3_alpha" - -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="bf093e31aec6963c44309274e8ec5b8eca05af95" - 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','ftp://ftp.cwru.edu/pub/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','ftp://ftp.cwru.edu/pub/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 - - # wcsnwidth(), substring() issues with -Wlto-type-mismatch, reported - # upstream to Chet by email. - filter-lto - - 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.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r1.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_alpha_p20241104.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241104.ebuild deleted file mode 100644 index 7bdfbbe020a..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241104.ebuild +++ /dev/null @@ -1,411 +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/chetramey.asc -inherit flag-o-matic toolchain-funcs prefix verify-sig - -# Uncomment if we have a patchset. -#GENTOO_PATCH_DEV="sam" -#GENTOO_PATCH_VER="${PV}" - -MY_PV=${PV/_p*} -MY_PV=${MY_PV/_/-} -MY_P=${PN}-${MY_PV} -MY_PATCHES=() - -# Determine the patchlevel. -case ${PV} in - 9999|*_alpha*|*_beta*|*_rc*) - # Set a negative patchlevel to indicate that it's a pre-release. - PLEVEL=-1 - ;; - *_p*) - PLEVEL=${PV##*_p} - ;; - *) - PLEVEL=0 -esac - -# The version of readline this bash normally ships with. Note that we only use -# the bundled copy of readline for pre-releases. -READLINE_VER="8.3_alpha" - -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="0075715b29c9c1d984ec243cf3018775ed5612de" - 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','ftp://ftp.cwru.edu/pub/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','ftp://ftp.cwru.edu/pub/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 - - # wcsnwidth(), substring() issues with -Wlto-type-mismatch, reported - # upstream to Chet by email. - filter-lto - - 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.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r1.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_alpha_p20241108.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241108.ebuild deleted file mode 100644 index aa808e0803a..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241108.ebuild +++ /dev/null @@ -1,411 +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/chetramey.asc -inherit flag-o-matic toolchain-funcs prefix verify-sig - -# Uncomment if we have a patchset. -#GENTOO_PATCH_DEV="sam" -#GENTOO_PATCH_VER="${PV}" - -MY_PV=${PV/_p*} -MY_PV=${MY_PV/_/-} -MY_P=${PN}-${MY_PV} -MY_PATCHES=() - -# Determine the patchlevel. -case ${PV} in - 9999|*_alpha*|*_beta*|*_rc*) - # Set a negative patchlevel to indicate that it's a pre-release. - PLEVEL=-1 - ;; - *_p*) - PLEVEL=${PV##*_p} - ;; - *) - PLEVEL=0 -esac - -# The version of readline this bash normally ships with. Note that we only use -# the bundled copy of readline for pre-releases. -READLINE_VER="8.3_alpha" - -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="b116cfe57df2c061cd953b77a0fc1b738dd5fe94" - 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','ftp://ftp.cwru.edu/pub/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','ftp://ftp.cwru.edu/pub/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 - - # wcsnwidth(), substring() issues with -Wlto-type-mismatch, reported - # upstream to Chet by email. - filter-lto - - 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.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r1.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_alpha_p20241022.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241115.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241022.ebuild rename to sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241115.ebuild index d20127554ef..c87c442d5a0 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241022.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241115.ebuild @@ -45,7 +45,7 @@ elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then # 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="474743f2da5bc5eb7da4ac9de23f3d52d1bf071e" + BASH_COMMIT="fa68e6da80970c302948674369d278164a33ed39" 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 diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241026.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241121.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241026.ebuild rename to sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241121.ebuild index d16b7e25a4c..b12b39124fd 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241026.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_alpha_p20241121.ebuild @@ -45,7 +45,7 @@ elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then # 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="ee3b91dfd9aaaa2acd60ece9302e7ce6f09e3e73" + BASH_COMMIT="22417e78816237ae66f2da661567dfe5ed3452a1" 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 diff --git a/sdk_container/src/third_party/portage-stable/app-text/asciidoc/asciidoc-10.2.1.ebuild b/sdk_container/src/third_party/portage-stable/app-text/asciidoc/asciidoc-10.2.1.ebuild index 589c1733f9c..05447dff31c 100644 --- a/sdk_container/src/third_party/portage-stable/app-text/asciidoc/asciidoc-10.2.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-text/asciidoc/asciidoc-10.2.1.ebuild @@ -17,7 +17,7 @@ SRC_URI="https://github.com/asciidoc-py/asciidoc-py/releases/download/${PV}/${P} 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 ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" RDEPEND=" app-text/docbook-xml-dtd:4.5 diff --git a/sdk_container/src/third_party/portage-stable/dev-build/autoconf-archive/Manifest b/sdk_container/src/third_party/portage-stable/dev-build/autoconf-archive/Manifest index cb72a29e289..b4fb9cc470f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/autoconf-archive/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-build/autoconf-archive/Manifest @@ -1,2 +1,3 @@ DIST autoconf-archive-2023.02.20.tar.xz 678184 BLAKE2B a72469e61a6ef702cbf4e30712c7dbe36369da7dad6e2312eb7026af41a989a47ded0a27975349486b69155f9e8199f89720dc57f98440b2766294a0f8755ee6 SHA512 a744f5aa0c1a813b81ad1528aebf7511bde7f470f34626d2057ed6664127120182e031fec5d22027d4a204544266135f202b8ef453bff70a3b0315c506c82528 +DIST autoconf-archive-2024.10.16-patches.tar.xz 9604 BLAKE2B e180322ec49f39aa456756c5451b15c73485a8583b9a770be14f3940fa0c580db720a1d8ea1eef0f16071d4f77f0763a798ddd685ed213070d4ac609dd36c580 SHA512 d34459c4e9707163626368f612392552b0f5421d304a4a53b691ffd5e65378ed6b2a0dbfad70a7358f71da17f67240d95eee2311eb0f458b82e6f77df7066a64 DIST autoconf-archive-2024.10.16.tar.xz 677768 BLAKE2B 64554b7258c527f2e6bb115bec08e358bd4f10b940cdbe58c073fb3bdeccab78897250766e600b7e5fd79a76d633135d1caf2c7e81893bd68cab704073cac2c5 SHA512 91140cb666447f12a1d39d7d42f5fe6ea3601bb586f466381c9e949087aafa06aed8d061a4f5d020a3d234eb710e4bb47cd25380bcffd8c423fa1a7af05e988b diff --git a/sdk_container/src/third_party/portage-stable/dev-build/autoconf-archive/autoconf-archive-2024.10.16-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/autoconf-archive/autoconf-archive-2024.10.16-r1.ebuild new file mode 100644 index 00000000000..763868552b9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-build/autoconf-archive/autoconf-archive-2024.10.16-r1.ebuild @@ -0,0 +1,25 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="GNU Autoconf Macro Archive" +HOMEPAGE="https://www.gnu.org/software/autoconf-archive/" +SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" +# Temporary patchset for 2024.10.16 because a snapshot is too awkward to make +# Can be dropped on next release +SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-patches.tar.xz" + +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" + +# File collisions, bug #540246 +RDEPEND=" + !=gnome-base/gnome-common-3.14.0-r0 + !>=gnome-base/gnome-common-3.14.0-r1[-autoconf-archive(+)] +" + +PATCHES=( + "${WORKDIR}"/${P}-patches +) diff --git a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.72-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.72-r1.ebuild index 768fab2c95f..d006b810190 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.72-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.72-r1.ebuild @@ -29,7 +29,7 @@ else S="${WORKDIR}"/${MY_P} if [[ ${PV} != *_beta* ]] && ! [[ $(ver_cut 3) =~ [a-z] ]] ; then - KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi BDEPEND="verify-sig? ( sec-keys/openpgp-keys-zackweinberg )" diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/Manifest b/sdk_container/src/third_party/portage-stable/dev-build/cmake/Manifest index 65aa19b92cd..f350590e14e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-build/cmake/Manifest @@ -12,7 +12,13 @@ DIST cmake-3.30.2.tar.gz 11500719 BLAKE2B 85873311000831d2a8acb2c9d7f107e7fcef9d DIST cmake-3.30.5-SHA-256.txt 1646 BLAKE2B a91c0663dd11a6f854a4acdc5902b67811a311fd5161dc86140f1a39fb1f3aadce0df348e27569936c6e51def096ab6572635e00ce3d2b7554fadea4a3d4287f SHA512 a5a2285049fae435f53d0dfdfaea9a740d2f6e08dd1b149ab1f0d5e3ddc8afb2c3fac4a8018a7eb24ec90155535362160abe5ca2681808a96d19d191a3aa3713 DIST cmake-3.30.5-SHA-256.txt.asc 833 BLAKE2B cb7db2d0263d77cbc6798aa916a4584ccc7e7e9724c362c1471cda4b87c53ed1d1cbacf84573768844d16c3356ad32dae4500a6704fc22b8b1e824e2be6a0435 SHA512 fdd31e5b872c3dba1c66dd2ae077721f7054f6df9f261548fce86f9d4d4d403130511c4ce7ce57bcb3501abd87ab506177b513d160592db6e09d70d34e4a24e5 DIST cmake-3.30.5.tar.gz 11502354 BLAKE2B 47eb5abcd9d634b10053b2052dae11fc85e74f78ca2489d72088eba8ca84ecaf22a248b27a92bf50666b76e8cba40ba9b952d3d76d8e57112d136e26087f5696 SHA512 968ad4769e869378049b1d82ace98db25a6cb234b6362a51737f0d2978b8914ad42967ba112741850b23631e73b8a8876cd4f99dd0285b9da1c2bb5ea4c4ee4e +DIST cmake-3.30.6-SHA-256.txt 1646 BLAKE2B 370ec5fecb60a7ee6bf36503553a7478b66cfabbd48ea2ab17ae44841b371f5892c33bc9c64388ac84ea07e86f3bee9a82b9dc378ff4624f3a7c5025716b82bf SHA512 6049a237f0904a48c4658352ea0f0fb007bccd30886a1eb9e026ba85d15d892502e2ed6763023c61712e370d68b209f83e7e6c7d236f169603fc85e0f8c286ef +DIST cmake-3.30.6-SHA-256.txt.asc 833 BLAKE2B 73b841a2eb1d476696506706d95f371e5c46c2b777c012bf1d930f072c242bb431cde282ab371bf62a7845c92ba014270e3599d3c30d8503335ce249aa3ecb5c SHA512 34374445ecb012c4607fcf65fc6719dda16af189c0d2d38898a5cd506fc6c24462437556810c693ca45773cb8824cd0a03445ee07b69e010d1b7c509e32c617d +DIST cmake-3.30.6.tar.gz 11503061 BLAKE2B a381bea86b7cedb5dfae3598a4a243e74b0b34e78c105fe7ee17343593700c30f1dc42b06cbd872894a043f68e23853e7b1fdc6cb2161584f57e4aa89515e23a SHA512 8349d522ae098d72df625ef44700b672a5f85e7bd6c44ee9c0c3ba3f07561348f715f4d5a6f4a9b0e92bd9984e590473bc684160841f94842b5ee128fcc0bb07 DIST cmake-3.31.0-SHA-256.txt 1646 BLAKE2B 3f82f31d598cf395574d858f219e50d9b611b83a2c08ec2f441f59466bd56190659391718184e2f68dd9fdbb33845814e65423fb75386f8648ba9f62c6dc1d73 SHA512 e9e71a48d58bf50febcb19432bee658f5b12594fe926c9bc732e7d408bb8258504734244a91f052e43948fa082cc065ca9d6e1c39c79d6f9b264498f17383de9 DIST cmake-3.31.0-SHA-256.txt.asc 833 BLAKE2B 31bd06104df08c5117626c59c1acaca46b36af96e27491ec742cdc5cd3f34e29dea31bca43ff8156f1eca155ffe353c538eb081886cf12966083f6fb41187005 SHA512 c935472c4b5f99aa0a60bea9b0d691ae29a5d1ea5a9770cedd9c809fa463d2887984aa2e3fcfe46a953fd9258d20a1bb482aeb992c248183baebfeaacdb99b7a DIST cmake-3.31.0-docs.tar.xz 562756 BLAKE2B ef1d145658fd197ea515f05fbbad54b213bf458f3068829634242bc43bdb4f97bd45fcc45c9958919d2a78276ffc1d14d507822831f44fe9be5080ecc62e75fe SHA512 b4025633a0f42003005dfacdaea55c67e08d8f9082c8c6c564540b4d536246acedece41adb76cb00042d2f25f85b3817d23f70e393eb22a0857693d51ca60748 DIST cmake-3.31.0.tar.gz 11699894 BLAKE2B 9f9b5b15e5c9b19865cd00e3034fadf3a8ce4c21985cd5c9ab89d2920815948471885831bc29141f3179f401ba100f0d3ca95f8b72e1b8c84d80504f28957fb4 SHA512 feea7e7e86cfbc228d83c96b84502146516d003a753a2daeeaabb4d2dedefae881c44de7e1e9b424680b0047568c12632472a0030c5ce8413033f94f9b361700 +DIST cmake-3.31.1-SHA-256.txt 1646 BLAKE2B 5574526bb53edfdca53903ca03c0963d47eee40d180a2433eedffcfd55bc4a954a5ce2f1199b4fc11f48aaee228da1295689033d5bd2cb2f60df5177f4ed6cac SHA512 0f6b3cdee4874c4f7a89fe60e5cdb63e9317e561d86997720f2bcba7f66eb7dd49dcac4acce3ce3827f7c8bf733936511e34f350dd8d161ae5984e87ea2f09b8 +DIST cmake-3.31.1-SHA-256.txt.asc 833 BLAKE2B 3ece95f1d5bf575417bd6e77b1b29a1aa2a8db04cb4707d181fe98c7da1a2b60a6af6ea3c9a497d1bdc995fe6c61eac14f60fec540e504a5b019506cf8c2db56 SHA512 a0904d0f25ba03a874ebe63c7a82176684574fedcf5e61d796248024cfb3d3a39b7d6c135802c3ece0da0e2fec04894215427646026a91d526d526e91c54e2be +DIST cmake-3.31.1.tar.gz 11704421 BLAKE2B ff98ac838d670db8ec3bf289b8ca313cde73809770fb343d189c172ad0a9ed5b983f5a39a86fa966309ee262f7d108d8e3ad3887bc7fea45716a7e7d00487854 SHA512 9c4664792b32b1fa76aa66c5211e8a0a1fed380eb48ff605adb516d056ae3ab94859cf4103d86b83e220baba3ec5b763b454b6866d6bd606fc558fa3da75b146 diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.30.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.30.6.ebuild new file mode 100644 index 00000000000..e9982cd799b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.30.6.ebuild @@ -0,0 +1,293 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs +# Set to 1 if prebuilt, 0 if not +# (the construct below is to allow overriding from env for script) +: ${CMAKE_DOCS_PREBUILT:=1} + +CMAKE_DOCS_PREBUILT_DEV=sam +CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 +# Default to generating docs (inc. man pages) if no prebuilt; overridden later +# See bug #784815 +CMAKE_DOCS_USEFLAG="+doc" + +# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja +# ... but seems fine as of 3.22.3? +# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759. +CMAKE_MAKEFILE_GENERATOR="emake" +CMAKE_REMOVE_MODULES_LIST=( none ) +inherit bash-completion-r1 cmake flag-o-matic multiprocessing \ + toolchain-funcs xdg-utils + +MY_P="${P/_/-}" + +DESCRIPTION="Cross platform Make" +HOMEPAGE="https://cmake.org/" +if [[ ${PV} == 9999 ]] ; then + CMAKE_DOCS_PREBUILT=0 + + EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git" + inherit git-r3 +else + SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz" + + if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then + SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )" + fi + + if [[ ${PV} != *_rc* ]] ; then + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc + inherit verify-sig + + SRC_URI+=" verify-sig? ( + https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt + https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc + )" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20230817 )" + fi +fi + +[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc" + +S="${WORKDIR}/${MY_P}" + +LICENSE="BSD" +SLOT="0" +IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses qt6 test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=app-arch/libarchive-3.3.3:= + app-crypt/rhash:0= + >=dev-libs/expat-2.0.1 + >=dev-libs/jsoncpp-1.9.2-r2:0= + >=dev-libs/libuv-1.10.0:= + >=net-misc/curl-7.21.5[ssl] + sys-libs/zlib + virtual/pkgconfig + dap? ( dev-cpp/cppdap ) + gui? ( + !qt6? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + ) + qt6? ( dev-qt/qtbase:6[gui,widgets] ) + ) + ncurses? ( sys-libs/ncurses:= ) +" +DEPEND="${RDEPEND}" +BDEPEND+=" + doc? ( + dev-python/requests + dev-python/sphinx + ) + test? ( app-arch/libarchive[zstd] ) +" + +SITEFILE="50${PN}-gentoo.el" + +PATCHES=( + # Prefix + "${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch + "${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch + # Misc + "${FILESDIR}"/${PN}-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch + "${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch + "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch + # Cuda + "${FILESDIR}/${PN}-3.30.3-cudahostld.patch" + + # Upstream fixes (can usually be removed with a version bump) +) + +cmake_src_bootstrap() { + # disable running of cmake in bootstrap command + sed -i \ + -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \ + bootstrap || die "sed failed" + + # execinfo.h on Solaris isn't quite what it is on Darwin + if [[ ${CHOST} == *-solaris* ]] ; then + sed -i -e 's/execinfo\.h/blablabla.h/' \ + Source/kwsys/CMakeLists.txt || die + fi + + # bootstrap script isn't exactly /bin/sh compatible + tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ + --prefix="${T}/cmakestrap/" \ + --parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \ + || die "Bootstrap failed" +} + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then + default + else + cd "${DISTDIR}" || die + + # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature + verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc} + verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz + + cd "${WORKDIR}" || die + + default + fi +} + +src_prepare() { + cmake_src_prepare + + if [[ ${CHOST} == *-darwin* ]] ; then + # Disable Xcode hooks, bug #652134 + sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \ + Source/CMakeLists.txt || die + sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \ + -e '/cmGlobalXCodeGenerator.h/d' \ + Source/cmake.cxx || die + # Disable system integration, bug #933744 + sed -i -e 's/__APPLE__/__DISABLED__/' \ + Source/cmFindProgramCommand.cxx \ + Source/CPack/cmCPackGeneratorFactory.cxx || die + sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \ + Source/cmMachO.cxx || die + sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \ + Source/CMakeLists.txt || die + + # Disable isysroot usage with GCC, we've properly instructed + # where things are via GCC configuration and ldwrapper + sed -i -e '/cmake_gnu_set_sysroot_flag/d' \ + Modules/Platform/Apple-GNU-*.cmake || die + # Disable isysroot usage with clang as well + sed -i -e '/_SYSROOT_FLAG/d' \ + Modules/Platform/Apple-Clang.cmake || die + # Don't set a POSIX standard, system headers don't like that, #757426 + sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ + Source/cmLoadCommandCommand.cxx \ + Source/cmStandardLexer.h \ + Source/cmSystemTools.cxx \ + Source/cmTimestamp.cxx + sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ + Source/cmStandardLexer.h + fi + + # Add gcc libs to the default link paths + sed -i \ + -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \ + -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \ + -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \ + Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed" + + ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must* + ## handle them as part of bootstrapping, sadly. + + # Fix linking on Solaris + [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl + + # ODR warnings, bug #858335 + # https://gitlab.kitware.com/cmake/cmake/-/issues/20740 + filter-lto + + if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then + CMAKE_BINARY="${S}/Bootstrap.cmk/cmake" + cmake_src_bootstrap + fi +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_USE_SYSTEM_LIBRARIES=ON + -DCMake_ENABLE_DEBUGGER=$(usex dap) + -DCMAKE_DOC_DIR=/share/doc/${PF} + -DCMAKE_MAN_DIR=/share/man + -DCMAKE_DATA_DIR=/share/${PN} + -DSPHINX_MAN=$(usex doc) + -DSPHINX_HTML=$(usex doc) + -DBUILD_CursesDialog="$(usex ncurses)" + -DBUILD_TESTING=$(usex test) + -DBUILD_QtDialog=$(usex gui) + ) + + use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=$(usex qt6 6 5) ) + + cmake_src_configure +} + +src_test() { + # Fix OutDir and SelectLibraryConfigurations tests + # these are altered thanks to our eclass + sed -i -e 's:^#_cmake_modify_IGNORE ::g' \ + "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \ + || die + + unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS + + pushd "${BUILD_DIR}" > /dev/null || die + + # Excluded tests: + # BootstrapTest: we actualy bootstrap it every time so why test it. + # BundleUtilities: bundle creation broken + # CMakeOnly.AllFindModules: pthread issues + # CTest.updatecvs: which fails to commit as root + # Fortran: requires fortran + # RunCMake.CompilerLauncher: also requires fortran + # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because + # debugedit binary is not in the expected location + # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because + # it can't find a deb package that owns libc + # TestUpload, which requires network access + # RunCMake.CMP0125, known failure reported upstream (bug #829414) + local myctestargs=( + --output-on-failure + -E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \ + ) + + local -x QT_QPA_PLATFORM=offscreen + + cmake_src_test +} + +src_install() { + cmake_src_install + + # If USE=doc, there'll be newly generated docs which we install instead. + if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then + doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8] + fi + + insinto /usr/share/vim/vimfiles/syntax + doins Auxiliary/vim/syntax/cmake.vim + + insinto /usr/share/vim/vimfiles/indent + doins Auxiliary/vim/indent/cmake.vim + + insinto /usr/share/vim/vimfiles/ftdetect + doins "${FILESDIR}/${PN}.vim" + + dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack} +} + +pkg_postinst() { + if use gui; then + xdg_icon_cache_update + xdg_desktop_database_update + xdg_mimeinfo_database_update + fi +} + +pkg_postrm() { + if use gui; then + xdg_icon_cache_update + xdg_desktop_database_update + xdg_mimeinfo_database_update + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.1.ebuild new file mode 100644 index 00000000000..e9982cd799b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.1.ebuild @@ -0,0 +1,293 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs +# Set to 1 if prebuilt, 0 if not +# (the construct below is to allow overriding from env for script) +: ${CMAKE_DOCS_PREBUILT:=1} + +CMAKE_DOCS_PREBUILT_DEV=sam +CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 +# Default to generating docs (inc. man pages) if no prebuilt; overridden later +# See bug #784815 +CMAKE_DOCS_USEFLAG="+doc" + +# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja +# ... but seems fine as of 3.22.3? +# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759. +CMAKE_MAKEFILE_GENERATOR="emake" +CMAKE_REMOVE_MODULES_LIST=( none ) +inherit bash-completion-r1 cmake flag-o-matic multiprocessing \ + toolchain-funcs xdg-utils + +MY_P="${P/_/-}" + +DESCRIPTION="Cross platform Make" +HOMEPAGE="https://cmake.org/" +if [[ ${PV} == 9999 ]] ; then + CMAKE_DOCS_PREBUILT=0 + + EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git" + inherit git-r3 +else + SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz" + + if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then + SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )" + fi + + if [[ ${PV} != *_rc* ]] ; then + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc + inherit verify-sig + + SRC_URI+=" verify-sig? ( + https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt + https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc + )" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20230817 )" + fi +fi + +[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc" + +S="${WORKDIR}/${MY_P}" + +LICENSE="BSD" +SLOT="0" +IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses qt6 test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=app-arch/libarchive-3.3.3:= + app-crypt/rhash:0= + >=dev-libs/expat-2.0.1 + >=dev-libs/jsoncpp-1.9.2-r2:0= + >=dev-libs/libuv-1.10.0:= + >=net-misc/curl-7.21.5[ssl] + sys-libs/zlib + virtual/pkgconfig + dap? ( dev-cpp/cppdap ) + gui? ( + !qt6? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + ) + qt6? ( dev-qt/qtbase:6[gui,widgets] ) + ) + ncurses? ( sys-libs/ncurses:= ) +" +DEPEND="${RDEPEND}" +BDEPEND+=" + doc? ( + dev-python/requests + dev-python/sphinx + ) + test? ( app-arch/libarchive[zstd] ) +" + +SITEFILE="50${PN}-gentoo.el" + +PATCHES=( + # Prefix + "${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch + "${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch + # Misc + "${FILESDIR}"/${PN}-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch + "${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch + "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch + # Cuda + "${FILESDIR}/${PN}-3.30.3-cudahostld.patch" + + # Upstream fixes (can usually be removed with a version bump) +) + +cmake_src_bootstrap() { + # disable running of cmake in bootstrap command + sed -i \ + -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \ + bootstrap || die "sed failed" + + # execinfo.h on Solaris isn't quite what it is on Darwin + if [[ ${CHOST} == *-solaris* ]] ; then + sed -i -e 's/execinfo\.h/blablabla.h/' \ + Source/kwsys/CMakeLists.txt || die + fi + + # bootstrap script isn't exactly /bin/sh compatible + tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ + --prefix="${T}/cmakestrap/" \ + --parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \ + || die "Bootstrap failed" +} + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then + default + else + cd "${DISTDIR}" || die + + # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature + verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc} + verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz + + cd "${WORKDIR}" || die + + default + fi +} + +src_prepare() { + cmake_src_prepare + + if [[ ${CHOST} == *-darwin* ]] ; then + # Disable Xcode hooks, bug #652134 + sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \ + Source/CMakeLists.txt || die + sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \ + -e '/cmGlobalXCodeGenerator.h/d' \ + Source/cmake.cxx || die + # Disable system integration, bug #933744 + sed -i -e 's/__APPLE__/__DISABLED__/' \ + Source/cmFindProgramCommand.cxx \ + Source/CPack/cmCPackGeneratorFactory.cxx || die + sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \ + Source/cmMachO.cxx || die + sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \ + Source/CMakeLists.txt || die + + # Disable isysroot usage with GCC, we've properly instructed + # where things are via GCC configuration and ldwrapper + sed -i -e '/cmake_gnu_set_sysroot_flag/d' \ + Modules/Platform/Apple-GNU-*.cmake || die + # Disable isysroot usage with clang as well + sed -i -e '/_SYSROOT_FLAG/d' \ + Modules/Platform/Apple-Clang.cmake || die + # Don't set a POSIX standard, system headers don't like that, #757426 + sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ + Source/cmLoadCommandCommand.cxx \ + Source/cmStandardLexer.h \ + Source/cmSystemTools.cxx \ + Source/cmTimestamp.cxx + sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ + Source/cmStandardLexer.h + fi + + # Add gcc libs to the default link paths + sed -i \ + -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \ + -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \ + -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \ + Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed" + + ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must* + ## handle them as part of bootstrapping, sadly. + + # Fix linking on Solaris + [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl + + # ODR warnings, bug #858335 + # https://gitlab.kitware.com/cmake/cmake/-/issues/20740 + filter-lto + + if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then + CMAKE_BINARY="${S}/Bootstrap.cmk/cmake" + cmake_src_bootstrap + fi +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_USE_SYSTEM_LIBRARIES=ON + -DCMake_ENABLE_DEBUGGER=$(usex dap) + -DCMAKE_DOC_DIR=/share/doc/${PF} + -DCMAKE_MAN_DIR=/share/man + -DCMAKE_DATA_DIR=/share/${PN} + -DSPHINX_MAN=$(usex doc) + -DSPHINX_HTML=$(usex doc) + -DBUILD_CursesDialog="$(usex ncurses)" + -DBUILD_TESTING=$(usex test) + -DBUILD_QtDialog=$(usex gui) + ) + + use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=$(usex qt6 6 5) ) + + cmake_src_configure +} + +src_test() { + # Fix OutDir and SelectLibraryConfigurations tests + # these are altered thanks to our eclass + sed -i -e 's:^#_cmake_modify_IGNORE ::g' \ + "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \ + || die + + unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS + + pushd "${BUILD_DIR}" > /dev/null || die + + # Excluded tests: + # BootstrapTest: we actualy bootstrap it every time so why test it. + # BundleUtilities: bundle creation broken + # CMakeOnly.AllFindModules: pthread issues + # CTest.updatecvs: which fails to commit as root + # Fortran: requires fortran + # RunCMake.CompilerLauncher: also requires fortran + # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because + # debugedit binary is not in the expected location + # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because + # it can't find a deb package that owns libc + # TestUpload, which requires network access + # RunCMake.CMP0125, known failure reported upstream (bug #829414) + local myctestargs=( + --output-on-failure + -E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \ + ) + + local -x QT_QPA_PLATFORM=offscreen + + cmake_src_test +} + +src_install() { + cmake_src_install + + # If USE=doc, there'll be newly generated docs which we install instead. + if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then + doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8] + fi + + insinto /usr/share/vim/vimfiles/syntax + doins Auxiliary/vim/syntax/cmake.vim + + insinto /usr/share/vim/vimfiles/indent + doins Auxiliary/vim/indent/cmake.vim + + insinto /usr/share/vim/vimfiles/ftdetect + doins "${FILESDIR}/${PN}.vim" + + dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack} +} + +pkg_postinst() { + if use gui; then + xdg_icon_cache_update + xdg_desktop_database_update + xdg_mimeinfo_database_update + fi +} + +pkg_postrm() { + if use gui; then + xdg_icon_cache_update + xdg_desktop_database_update + xdg_mimeinfo_database_update + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/libtool/Manifest b/sdk_container/src/third_party/portage-stable/dev-build/libtool/Manifest index ca7d3789110..8d83e556484 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/libtool/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-build/libtool/Manifest @@ -1,2 +1,3 @@ DIST libtool-2.4.7.tar.xz 1016040 BLAKE2B 5e022586337637dd634bd40578ad944bec6e3b8de41f95d55777b90cc88cbc4badb3d76cbf0e638166ece1ea7de828e83590e1e6bac30c1e4b1c254a11a742f2 SHA512 47f4c6de40927254ff9ba452612c0702aea6f4edc7e797f0966c8c6bf0340d533598976cdba17f0bdc64545572e71cd319bbb587aa5f47cd2e7c1d96f873a3da DIST libtool-2.5.3.tar.xz 1050076 BLAKE2B e7bc3421d2273851f894583b879c897239bddaef00dc335176f00ce971d3c77e4d4304ae3b1d1b97d4b6b1b4fd9859ddc0eb5dcadac2e0de959b68cae973f726 SHA512 7a2b86716b2cbefcd45bda7f65af81fcb0aaa3dce96b09f417d6b94721a4dd9e72a9552862783d998ddf785e509315bb49f65c464dbc949d58e36f0960cf9b1b +DIST libtool-2.5.4.tar.xz 1056924 BLAKE2B 47de3c49a690d44d7ddd5e3b5e4090c91dc5fbb9c40fc4a3963e150fb7329326ee3e21b8c149974726171c4b0380028e0efc7a369c4f04357eea46f69852e1cc SHA512 eed207094bcc444f4bfbb13710e395e062e3f1d312ca8b186ab0cbd22dc92ddef176a0b3ecd43e02676e37bd9e328791c59a38ef15846d4eae15da4f20315724 diff --git a/sdk_container/src/third_party/portage-stable/dev-build/libtool/libtool-2.5.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/libtool/libtool-2.5.4.ebuild new file mode 100644 index 00000000000..3924768b1ef --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-build/libtool/libtool-2.5.4.ebuild @@ -0,0 +1,150 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Please bump with dev-libs/libltdl. + +# bug #225559 +LIBTOOLIZE="true" +WANT_LIBTOOL="none" +inherit autotools flag-o-matic prefix multiprocessing + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/libtool.git" + inherit git-r3 +elif false && ! [[ $(( $(ver_cut 2) % 2 )) -eq 0 ]] ; then + SRC_URI="https://alpha.gnu.org/gnu/${PN}/${P}.tar.xz" +else + SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +DESCRIPTION="A shared library tool for developers" +HOMEPAGE="https://www.gnu.org/software/libtool/" + +LICENSE="GPL-2" +SLOT="2" +IUSE="vanilla" + +RDEPEND=" + sys-devel/gnuconfig + >=dev-build/autoconf-2.69:* + >=dev-build/automake-1.13:* +" +DEPEND="${RDEPEND}" +[[ ${PV} == *9999 ]] && BDEPEND="sys-apps/help2man" + +# Note that we have more patches in https://gitweb.gentoo.org/proj/elt-patches.git/ +# for package builds. The patches here are just those which are definitely fine +# for the system-wide libtool installation as well. +PATCHES=( + # bug #109105 + "${FILESDIR}"/${PN}-2.4.3-use-linux-version-in-fbsd.patch + # bug #581314 + "${FILESDIR}"/${PN}-2.4.6-ppc64le.patch + + "${FILESDIR}"/${PN}-2.2.6a-darwin-module-bundle.patch + "${FILESDIR}"/${PN}-2.4.6-darwin-use-linux-version.patch +) + +src_prepare() { + if [[ ${PV} == *9999 ]] ; then + eapply "${FILESDIR}"/${PN}-2.4.6-pthread.patch # bug #650876 + ./bootstrap || die + else + PATCHES+=( + "${FILESDIR}"/${PN}-2.4.6-pthread_bootstrapped.patch # bug #650876 + ) + fi + + # WARNING: File build-aux/ltmain.sh is read-only; trying to patch anyway + chmod +w build-aux/ltmain.sh || die + + if use vanilla ; then + eapply_user + return 0 + else + default + fi + + if use prefix ; then + # seems that libtool has to know about EPREFIX a little bit + # better, since it fails to find prefix paths to search libs + # from, resulting in some packages building static only, since + # libtool is fooled into thinking that libraries are unavailable + # (argh...). This could also be fixed by making the gcc wrapper + # return the correct result for -print-search-dirs (doesn't + # include prefix dirs ...). + eapply "${FILESDIR}"/${PN}-2.2.10-eprefix.patch + eprefixify m4/libtool.m4 + fi + + pushd libltdl >/dev/null || die + AT_NOELIBTOOLIZE=yes eautoreconf + popd >/dev/null || die + AT_NOELIBTOOLIZE=yes eautoreconf + + # Make sure timestamps don't trigger a rebuild of man pages. #556512 + if [[ ${PV} != *9999 ]] ; then + touch doc/*.1 || die + export HELP2MAN=true + fi +} + +src_configure() { + # the libtool script uses bash code in it and at configure time, tries + # to find a bash shell. if /bin/sh is bash, it uses that. this can + # cause problems for people who switch /bin/sh on the fly to other + # shells, so just force libtool to use /bin/bash all the time. + # Do not bother hardcoding the full path to sed. + # Just rely on $PATH. bug #574550 + export CONFIG_SHELL="${EPREFIX}"/bin/bash + export ac_cv_path_SED="sed" + export ac_cv_path_EGREP="grep -E" + export ac_cv_path_EGREP_TRADITIONAL="grep -E" + export ac_cv_path_FGREP="grep -F" + export ac_cv_path_GREP="grep" + export ac_cv_path_lt_DD="dd" + + local myeconfargs=( + # Split into dev-libs/libltdl + --disable-ltdl-install + + # Tests break otherwise (when porting to EAPI 8) + # https://lists.gnu.org/archive/html/bug-libtool/2014-10/msg00013.html + --enable-static + ) + + [[ ${CHOST} == *-darwin* ]] && myeconfargs+=( "--program-prefix=g" ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +src_test() { + ( + # The testsuite is sensitive to warnings, expects static + # archives to really be archives (not compiler IR), etc. + strip-flags + filter-flags -fno-semantic-interposition + filter-flags '-Wstrict-aliasing=*' '-Werror=*' + filter-lto + + emake -Onone check \ + CFLAGS="${CFLAGS}" \ + CXXFLAGS="${CXXFLAGS}" \ + FFLAGS="${FFLAGS}" \ + FCFLAGS="${FCFLAGS}" \ + LDFLAGS="${LDFLAGS}" \ + TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)" + ) +} + +src_install() { + default + + local x + while read -d $'\0' -r x ; do + ln -sf "${EPREFIX}"/usr/share/gnuconfig/${x##*/} "${x}" || die + done < <(find "${ED}" '(' -name config.guess -o -name config.sub ')' -print0) +} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/make/make-4.4.1-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/make/make-4.4.1-r100.ebuild index 6448da8acac..816b0630462 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/make/make-4.4.1-r100.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/make/make-4.4.1-r100.ebuild @@ -18,7 +18,7 @@ elif [[ $(ver_cut 3) -ge 90 || $(ver_cut 4) -ge 90 ]] ; then else SRC_URI="mirror://gnu/make/${P}.tar.lz" SRC_URI+=" verify-sig? ( mirror://gnu/make/${P}.tar.lz.sig )" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi LICENSE="GPL-3+" diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.5.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.5.2.ebuild index 88ff2ab0850..9f62c49303a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.5.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.5.2.ebuild @@ -33,7 +33,7 @@ else VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jpakkane.gpg if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha amd64 ~arm ~arm64 hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 ~arm ~arm64 hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi fi diff --git a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/Manifest b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/Manifest index 5d66a13b30d..ed269ba97fb 100644 --- a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/Manifest @@ -1,8 +1,4 @@ -DIST sqlite-doc-3450300.zip 10759906 BLAKE2B 3ad2307d4c5de10f20d0cb58bb673b291a63bf0328c3f1e40e37a4823fadda82e0f1fbfe7c9c76925ab1d1448e76cc4cbce4d4ad15c732f134f1b4b4caee9543 SHA512 8f865302137684c31c4f54d6cbe4ee82126394887930ec50501fb811023bc612878d2dc1c2317e960fe818a277b008a9835475e7a47822fc5ece5fe37aa61e31 -DIST sqlite-doc-3460000.zip 10842823 BLAKE2B 4b4b36d78ba540abaa39bb510465e23e39cabcce97d19e4cb1374d941183ea05e1150356d15c99dbdf5513adebe2e9b06cbc59bd268fe6ce17905523488ec682 SHA512 22748bf113ff96320c90227ba104ff081bf1761550944afbc78b6768d6677b13982d7e759c5f67eb7ba7ed0dcbffee500bc39fc9929d28f86b2a269145fefebd DIST sqlite-doc-3460100.zip 10851427 BLAKE2B 7462e83ca84e3e9aac7236f575fd2bdddac7744ae700a63fe8fdc9d2df3157c59fd374d99a0526bd4d9f742005ee7a90f3d78057861d3c3fcba9f897630e48db SHA512 1ad7dfc938d182f69ea9367b4f5ead1d48b991626521249e8b58c9fb4c2553e348ce402de9cc81b0ad699d4c45c467de56a98ee39f9c3555c6fafff15fba41ce DIST sqlite-doc-3470000.zip 10937359 BLAKE2B 3fc349e4b2b0cd3fc59147519062133261463e09933419f330cd18e6b120d3498c10a1864c85c2de144430f1dbf7f9a867aba47ab77dbe2aa0b5128e0742dddf SHA512 20c126551a95905e63e99930e3f7964b6e3fc8b72fbbedf5484f669817af2a8384f05fce89d6117a5e232ba71f5469894d4bb22ba7abd796b24fd624372c7c17 -DIST sqlite-src-3450300.zip 14160555 BLAKE2B 1c16a9b26587ed6b50dcd8373d4328266da0a47da7ffff15d505eddc8df74850a5bca3330bd9ee2b52036ccff9fb8aeebea02ef5713cc933753b4d8a4c15b2e8 SHA512 8f44ffdefd2cf09e7edb7cd78d5416fe7b42e01fe4b4e4803ce9d34c7b1b2971ec170a908a94b4bb11737dd3888675c8ff101ff2b41c53b8db05b5954e947cc9 -DIST sqlite-src-3460000.zip 14275927 BLAKE2B 8f8c7da56226cfbc669bc5cce7c897849dd0c6088189be2fc972fdc58bbc2933df979f040066a1cb9aea942117867eb31c9c97e7074e17215bfe747f9024a6c2 SHA512 441c51943e77655652409965b831df5af8662b4c585134be7fcd9bb5755a495170f37bd6510a80c18c42de72dda23536b583e84e58f042d342dd9e4139ae3327 DIST sqlite-src-3460100.zip 14276926 BLAKE2B df16ea944e317df8ed64fdfab289e3699ec71725ce55e2b30450adaeb41c061b4fba1eb8c41ba638b0edcd12b23264a1f9e413b69fd593c2b65fb1037d3fc8b2 SHA512 6d32a0db9f95d3cec34f02f3fd45b453bf7c422d4d4d9570790f641e7d190b8b31be8e8715afacc1b6e4417f15a4d15a0b28e608ae0b4b5f3054b075783b916e DIST sqlite-src-3470000.zip 14408459 BLAKE2B c8e883410fdf9f020bc55ef01d7c2c5b7f1744d3475e7755f2395b24b2d5397302aac2eb7912161cbc2a705a1d7a94b1fa5e8f4e5dbf374c31de56228cbc9e5d SHA512 294d718fb1ebb23e2a4d6e8b7f498d7a7d922e6af5e36452fae075c0d48f4d4f64b5f235ab561b1e47fb7722efc647dfe541164cc385ddc0e2ec0dbce1f40b01 diff --git a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.45.2-tests-x86.patch b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.45.2-tests-x86.patch deleted file mode 100644 index 153dd82c1e1..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.45.2-tests-x86.patch +++ /dev/null @@ -1,112 +0,0 @@ -https://sqlite.org/forum/forumpost/7dfd585ce1 -https://sqlite.org/src/info/d0fbe779bc2460e1 - -Index: test/func4.test -================================================================== ---- a/test/func4.test -+++ b/test/func4.test -@@ -1,6 +1,6 @@ --# 2013 March 10 -+# 2023-03-10 - # - # The author disclaims copyright to this source code. In place of - # a legal notice, here is a blessing: - # - # May you do good and not evil. -@@ -7,11 +7,14 @@ - # May you find forgiveness for yourself and forgive others. - # May you share freely, never taking more than you give. - # - #*********************************************************************** - # This file implements regression tests for SQLite library. The focus of --# this file is testing the tointeger() and toreal() functions. -+# this file is testing the tointeger() and toreal() functions that are -+# part of the "totype.c" extension. This file does not test the core -+# SQLite library. Failures of tests in this file are related to the -+# ext/misc/totype.c extension. - # - # Several of the toreal() tests are disabled on platforms where floating - # point precision is not high enough to represent their constant integer - # expression arguments as double precision floating point values. - # -@@ -21,10 +24,24 @@ - set tcl_precision 0 - load_static_extension db totype - - set highPrecision(1) [expr \ - {[db eval {SELECT tointeger(9223372036854775807 + 1);}] eq {{}}}] -+set highPrecision(2) [expr \ -+ {[db eval {SELECT toreal(-9223372036854775808 + 1);}] eq {{}}}] -+ -+# highPrecision(3) is only known to be false on i586 with gcc-13 and -O2. -+# It is true on the exact same platform with -O0. Both results seem -+# reasonable, so we'll just very the expectation accordingly. -+# -+set highPrecision(3) [expr \ -+ {[db eval {SELECT toreal(9007199254740992 + 1);}] eq {{}}}] -+ -+if {!$highPrecision(1) || !$highPrecision(2) || !$highPrecision(3)} { -+ puts "NOTICE: use_long_double: [use_long_double] \ -+ highPrecision: $highPrecision(1) $highPrecision(2) $highPrecision(3)" -+} - - do_execsql_test func4-1.1 { - SELECT tointeger(NULL); - } {{}} - do_execsql_test func4-1.2 { -@@ -193,12 +210,10 @@ - do_execsql_test func4-1.55 { - SELECT tointeger(18446744073709551616 + 1); - } {{}} - - ifcapable floatingpoint { -- set highPrecision(2) [expr \ -- {[db eval {SELECT toreal(-9223372036854775808 + 1);}] eq {{}}}] - - do_execsql_test func4-2.1 { - SELECT toreal(NULL); - } {{}} - do_execsql_test func4-2.2 { -@@ -339,14 +354,18 @@ - SELECT toreal(9007199254740992 - 1); - } {9007199254740991.0} - do_execsql_test func4-2.45 { - SELECT toreal(9007199254740992); - } {9007199254740992.0} -- if {$highPrecision(2)} { -+ if {$highPrecision(3)} { -+ do_execsql_test func4-2.46 { -+ SELECT toreal(9007199254740992 + 1); -+ } {{}} -+ } else { - do_execsql_test func4-2.46 { - SELECT toreal(9007199254740992 + 1); -- } {{}} -+ } {9007199254740992.0} - } - do_execsql_test func4-2.47 { - SELECT toreal(9007199254740992 + 2); - } {9007199254740994.0} - do_execsql_test func4-2.48 { -@@ -624,14 +643,18 @@ - SELECT tointeger(toreal(9007199254740992 - 1)); - } {9007199254740991} - do_execsql_test func4-5.22 { - SELECT tointeger(toreal(9007199254740992)); - } {9007199254740992} -- if {$highPrecision(2)} { -+ if {$highPrecision(3)} { - do_execsql_test func4-5.23 { - SELECT tointeger(toreal(9007199254740992 + 1)); - } {{}} -+ } else { -+ do_execsql_test func4-5.23 { -+ SELECT tointeger(toreal(9007199254740992 + 1)); -+ } {9007199254740992} - } - do_execsql_test func4-5.24 { - SELECT tointeger(toreal(9007199254740992 + 2)); - } {9007199254740994} - if {$highPrecision(1)} { - - diff --git a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.47.0-buildtclext.patch b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.47.0-buildtclext.patch new file mode 100644 index 00000000000..491674f5e99 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/files/sqlite-3.47.0-buildtclext.patch @@ -0,0 +1,122 @@ +# https://sqlite.org/forum/forumpost/0683a49cb02f31a1 +# https://bugs.gentoo.org/942918 +# Compiled from https://sqlite.org/forum/forumpost/6fd4ca69e86eafc6, https://www.sqlite.org/src/info/38136b33f9536b63 and https://www.sqlite.org/src/info/2f6e5946cf34e094 + +--- a/tool/buildtclext.tcl ++++ b/tool/buildtclext.tcl +@@ -140,12 +140,13 @@ + if {[string length $OPTS]>1} { + append LDFLAGS $OPTS + } +- set CMD [subst $cmd] + if {$TCLMAJOR>8} { + set OUT libtcl9sqlite$VERSION.$SUFFIX + } else { + set OUT libsqlite$VERSION.$SUFFIX + } ++ set @ $OUT; # workaround for https://sqlite.org/forum/forumpost/6b1af7eb10884373 ++ set CMD [subst $cmd] + } + + # Show information about prior installs + +From b03592c324a4d066e12c3af945dd510dc28b6d65 Mon Sep 17 00:00:00 2001 +From: stephan +Date: Sat, 16 Nov 2024 14:33:01 +0000 +Subject: [PATCH] Add DESTDIR support to the tclextension-install target, via + [67a3ca0c013b] and [d1663cf05f7d]. + +--- a/Makefile.in ++++ b/Makefile.in +@@ -1600,7 +1600,7 @@ tclextension: tclsqlite3.c + # to find it. + # + tclextension-install: tclsqlite3.c +- $(TCLSH_CMD) $(TOP)/tool/buildtclext.tcl --cc "$(CC)" $(CFLAGS) $(OPT_FEATURE_FLAGS) $(OPTS) ++ $(TCLSH_CMD) $(TOP)/tool/buildtclext.tcl --destdir "$(DESTDIR)" --cc "$(CC)" $(CFLAGS) $(OPT_FEATURE_FLAGS) $(OPTS) + + # Install the SQLite TCL extension that is used by $TCLSH_CMD + # ++38136b33f9536b63520d3810f397a3b4b5372028b31108806f84fe44bf338425 +--- a/tool/buildtclext.tcl ++++ b/tool/buildtclext.tcl +@@ -15,6 +15,7 @@ Options: + --info Show info on existing SQLite TCL extension installs + --install-only Install an extension previously build + --uninstall Uninstall the extension ++ --destdir DIR Installation root (used by "make install DESTDIR=...") + + Other options are retained and passed through into the compiler.} + +@@ -25,6 +26,7 @@ set uninstall 0 + set infoonly 0 + set CC {} + set OPTS {} ++set DESTDIR ""; # --destdir "$(DESTDIR)" + for {set ii 0} {$ii<[llength $argv]} {incr ii} { + set a0 [lindex $argv $ii] + if {$a0=="--install-only"} { +@@ -42,6 +44,9 @@ for {set ii 0} {$ii<[llength $argv]} {incr ii} { + } elseif {$a0=="--cc" && $ii+1<[llength $argv]} { + incr ii + set CC [lindex $argv $ii] ++ } elseif {$a0=="--destdir" && $ii+1<[llength $argv]} { ++ incr ii ++ set DESTDIR [lindex $argv $ii] + } elseif {[string match -* $a0]} { + append OPTS " $a0" + } else { +@@ -245,7 +250,7 @@ package ifneeded sqlite3 $VERSION \\ + + if {$install} { + # Install the extension +- set DEST2 $DEST/sqlite$VERSION ++ set DEST2 ${DESTDIR}$DEST/sqlite$VERSION + file mkdir $DEST2 + puts "installing $DEST2/pkgIndex.tcl" + file copy -force pkgIndex.tcl $DEST2 + +From 375552f224813c7e2fac0e67dd13ecd6ba3a3571 Mon Sep 17 00:00:00 2001 +From: stephan +Date: Sat, 16 Nov 2024 17:12:17 +0000 +Subject: [PATCH] Handle DESTDIR at an earlier phase in buildtclext.tcl to + account for the is-writable-dir check and to filter out //zipfs: dirs as + (im)possible installation targets. +--- a/tool/buildtclext.tcl ++++ b/tool/buildtclext.tcl +@@ -198,7 +198,15 @@ if {$install} { + # + set DEST {} + foreach dir $auto_path { +- if {[file writable $dir]} { ++ if {[string match //*:* $dir]} { ++ # We can't install to //zipfs: paths ++ continue ++ } elseif {"" ne $DESTDIR && ![file writable $DESTDIR]} { ++ continue ++ } ++ set dir ${DESTDIR}$dir ++ if {[file writable $dir] || "" ne $DESTDIR} { ++ # the dir will be created later ^^^^^^^^ + set DEST $dir + break + } elseif {[glob -nocomplain $dir/sqlite3*/pkgIndex.tcl]!=""} { +@@ -216,7 +224,7 @@ if {$install} { + puts "to work around this problem.\n" + puts "These are the (unwritable) \$auto_path directories:\n" + foreach dir $auto_path { +- puts " * $dir" ++ puts " * ${DESTDIR}$dir" + } + exit 1 + } +@@ -250,7 +258,7 @@ package ifneeded sqlite3 $VERSION \\ + + if {$install} { + # Install the extension +- set DEST2 ${DESTDIR}$DEST/sqlite$VERSION ++ set DEST2 $DEST/sqlite$VERSION + file mkdir $DEST2 + puts "installing $DEST2/pkgIndex.tcl" + file copy -force pkgIndex.tcl $DEST2 + diff --git a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.45.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.45.3.ebuild deleted file mode 100644 index 8b654b69e51..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.45.3.ebuild +++ /dev/null @@ -1,427 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools flag-o-matic multilib-minimal toolchain-funcs - -DESCRIPTION="SQL database engine" -HOMEPAGE="https://sqlite.org/" - -# On version updates, make sure to read the forum (https://sqlite.org/forum/forum) -# for hints regarding test failures, backports, etc. -if [[ ${PV} == 9999 ]]; then - S="${WORKDIR}"/${PN} - PROPERTIES="live" -else - printf -v SRC_PV "%u%02u%02u%02u" $(ver_rs 1- " ") - DOC_PV="${SRC_PV}" - #printf -v DOC_PV "%u%02u%02u00" $(ver_rs 1-3 " ") - - SRC_URI=" - https://sqlite.org/2024/${PN}-src-${SRC_PV}.zip - doc? ( https://sqlite.org/2024/${PN}-doc-${DOC_PV}.zip ) - " - S="${WORKDIR}/${PN}-src-${SRC_PV}" - - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -fi - -LICENSE="public-domain" -SLOT="3" -IUSE="debug doc icu +readline secure-delete static-libs tcl test tools" -RESTRICT="!test? ( test )" - -RDEPEND=" - sys-libs/zlib:=[${MULTILIB_USEDEP}] - icu? ( dev-libs/icu:=[${MULTILIB_USEDEP}] ) - readline? ( sys-libs/readline:=[${MULTILIB_USEDEP}] ) - tcl? ( dev-lang/tcl:=[${MULTILIB_USEDEP}] ) - tools? ( dev-lang/tcl:= ) -" -DEPEND=" - ${RDEPEND} - test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] ) -" -BDEPEND=">=dev-lang/tcl-8.6:0" -if [[ ${PV} == 9999 ]]; then - BDEPEND+=" dev-vcs/fossil" -else - BDEPEND+=" app-arch/unzip" -fi - -PATCHES=( - "${FILESDIR}"/${PN}-3.45.1-ppc64-ptr.patch - "${FILESDIR}"/${PN}-3.45.2-tests-x86.patch -) - -_fossil_fetch() { - local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}" - local repo_id="${1}" - local repo_uri="${2}" - - local -x FOSSIL_HOME="${HOME}" - - mkdir -p "${T}/fossil/${repo_id}" || die - pushd "${T}/fossil/${repo_id}" > /dev/null || die - - if [[ -n "${EVCS_OFFLINE}" ]]; then - if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then - die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\"" - fi - else - if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then - einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" - fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die - echo - else - cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die - einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" - fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die - echo - fi - - ( - addwrite "${distdir}" - mkdir -p "${distdir}/fossil-src/${repo_id}" || die - cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die - ) - fi - - popd > /dev/null || die -} - -_fossil_checkout() { - local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}" - local repo_id="${1}" - local branch_or_commit="${2}" - local target_directory="${3}" - - local -x FOSSIL_HOME="${HOME}" - - if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then - die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\"" - fi - - if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then - mkdir -p "${T}/fossil/${repo_id}" || die - cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die - fi - - mkdir "${target_directory}" || die - pushd "${target_directory}" > /dev/null || die - - einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" - fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die - echo - - popd > /dev/null || die -} - -fossil_fetch() { - local repo_id="${1}" - local repo_uri="${2}" - local target_directory="${3}" - - local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}" - - _fossil_fetch "${repo_id}" "${repo_uri}" - _fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}" -} - -src_unpack() { - if [[ ${PV} == 9999 ]]; then - fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}" - if use doc; then - fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc" - fi - else - default - fi -} - -src_prepare() { - default - - eautoreconf - multilib_copy_sources -} - -multilib_src_configure() { - local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" - local options=() - - options+=( - --enable-load-extension - --enable-threadsafe - ) - - # Support detection of misuse of SQLite API. - # https://sqlite.org/compile.html#enable_api_armor - append-cppflags -DSQLITE_ENABLE_API_ARMOR - - # Support bytecode and tables_used virtual tables. - # https://sqlite.org/compile.html#enable_bytecode_vtab - # https://sqlite.org/bytecodevtab.html - append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB - - # Support column metadata functions. - # https://sqlite.org/compile.html#enable_column_metadata - # https://sqlite.org/c3ref/column_database_name.html - append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA - - # Support sqlite_dbpage virtual table. - # https://sqlite.org/compile.html#enable_dbpage_vtab - # https://sqlite.org/dbpage.html - append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB - - # Support dbstat virtual table. - # https://sqlite.org/compile.html#enable_dbstat_vtab - # https://sqlite.org/dbstat.html - append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB - - # Support sqlite3_serialize() and sqlite3_deserialize() functions. - # https://sqlite.org/compile.html#enable_deserialize - # https://sqlite.org/c3ref/serialize.html - # https://sqlite.org/c3ref/deserialize.html - append-cppflags -DSQLITE_ENABLE_DESERIALIZE - - # Support comments in output of EXPLAIN. - # https://sqlite.org/compile.html#enable_explain_comments - append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS - - # Support Full-Text Search versions 3, 4 and 5. - # https://sqlite.org/compile.html#enable_fts3 - # https://sqlite.org/compile.html#enable_fts3_parenthesis - # https://sqlite.org/compile.html#enable_fts4 - # https://sqlite.org/compile.html#enable_fts5 - # https://sqlite.org/fts3.html - # https://sqlite.org/fts5.html - append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4 - options+=( --enable-fts5 ) - - # Support hidden columns. - append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS - - # Support memsys5 memory allocator. - # https://sqlite.org/compile.html#enable_memsys5 - # https://sqlite.org/malloc.html#memsys5 - append-cppflags -DSQLITE_ENABLE_MEMSYS5 - - # Support sqlite3_normalized_sql() function. - # https://sqlite.org/c3ref/expanded_sql.html - append-cppflags -DSQLITE_ENABLE_NORMALIZE - - # Support sqlite_offset() function. - # https://sqlite.org/compile.html#enable_offset_sql_func - # https://sqlite.org/lang_corefunc.html#sqlite_offset - append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC - - # Support pre-update hook functions. - # https://sqlite.org/compile.html#enable_preupdate_hook - # https://sqlite.org/c3ref/preupdate_count.html - append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK - - # Support Resumable Bulk Update extension. - # https://sqlite.org/compile.html#enable_rbu - # https://sqlite.org/rbu.html - append-cppflags -DSQLITE_ENABLE_RBU - - # Support R*Trees. - # https://sqlite.org/compile.html#enable_rtree - # https://sqlite.org/compile.html#enable_geopoly - # https://sqlite.org/rtree.html - # https://sqlite.org/geopoly.html - append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY - - # Support Session extension. - # https://sqlite.org/compile.html#enable_session - # https://sqlite.org/sessionintro.html - append-cppflags -DSQLITE_ENABLE_SESSION - - # Support scan status functions. - # https://sqlite.org/compile.html#enable_stmt_scanstatus - # https://sqlite.org/c3ref/stmt_scanstatus.html - # https://sqlite.org/c3ref/stmt_scanstatus_reset.html - append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS - - # Support sqlite_stmt virtual table. - # https://sqlite.org/compile.html#enable_stmtvtab - # https://sqlite.org/stmt.html - append-cppflags -DSQLITE_ENABLE_STMTVTAB - - # Support unknown() function. - # https://sqlite.org/compile.html#enable_unknown_sql_function - append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION - - # Support unlock notification. - # https://sqlite.org/compile.html#enable_unlock_notify - # https://sqlite.org/c3ref/unlock_notify.html - # https://sqlite.org/unlock_notify.html - append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY - - # Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements. - # https://sqlite.org/compile.html#enable_update_delete_limit - # https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses - # https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses - append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT - - # Support soundex() function. - # https://sqlite.org/compile.html#soundex - # https://sqlite.org/lang_corefunc.html#soundex - append-cppflags -DSQLITE_SOUNDEX - - # Support URI filenames. - # https://sqlite.org/compile.html#use_uri - # https://sqlite.org/uri.html - append-cppflags -DSQLITE_USE_URI - - options+=( $(use_enable debug) ) - - if use icu; then - # Support ICU extension. - # https://sqlite.org/compile.html#enable_icu - append-cppflags -DSQLITE_ENABLE_ICU - sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed" - fi - - options+=( - --disable-editline - $(use_enable readline) - ) - - if use readline; then - options+=( --with-readline-inc="-I${ESYSROOT}/usr/include/readline" ) - fi - - if use secure-delete; then - # Enable secure_delete pragma by default. - # https://sqlite.org/compile.html#secure_delete - # https://sqlite.org/pragma.html#pragma_secure_delete - append-cppflags -DSQLITE_SECURE_DELETE - fi - - options+=( $(use_enable static-libs static) ) - - # tcl, test, tools USE flags. - if use tcl || use test || { use tools && multilib_is_native_abi; }; then - options+=( - --enable-tcl - --with-tcl="${ESYSROOT}/usr/$(get_libdir)" - ) - else - options+=( --disable-tcl ) - fi - - if [[ "${ABI}" == "x86" ]]; then - if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then - append-cflags -mfpmath=sse - else - append-cflags -ffloat-store - fi - fi - - econf "${options[@]}" -} - -multilib_src_compile() { - emake HAVE_TCL="$(usev tcl 1)" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" - - if use tools && multilib_is_native_abi; then - emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh - fi - - if [[ ${PV} == 9999 ]] && use doc && multilib_is_native_abi; then - emake tclsqlite3.c - - local build_directory="$(pwd)" - build_directory="${build_directory##*/}" - - mkdir "${WORKDIR}/${PN}-doc-build" || die - pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die - - emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc - rmdir doc/matrix{/*,} || die - - popd > /dev/null || die - fi -} - -multilib_src_test() { - if [[ "${EUID}" -eq 0 ]]; then - ewarn "Skipping tests due to root permissions" - return - fi - - local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}" - - # e_uri.test tries to open files in /. - # bug #839798 - local SANDBOX_PREDICT=${SANDBOX_PREDICT} - addpredict "/test.db" - addpredict "/ÿ.db" - - emake -Onone HAVE_TCL="$(usex tcl 1 "")" $(usex debug 'fulltest' 'test') -} - -multilib_src_install() { - emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install - - if use tools && multilib_is_native_abi; then - install_tool() { - if [[ -f ".libs/${1}" ]]; then - newbin ".libs/${1}" "${2}" - else - newbin "${1}" "${2}" - fi - } - - install_tool changeset sqlite3-changeset - install_tool dbdump sqlite3-db-dump - install_tool dbhash sqlite3-db-hash - install_tool dbtotxt sqlite3-db-to-txt - install_tool index_usage sqlite3-index-usage - install_tool rbu sqlite3-rbu - install_tool scrub sqlite3-scrub - install_tool showdb sqlite3-show-db - install_tool showjournal sqlite3-show-journal - install_tool showshm sqlite3-show-shm - install_tool showstat4 sqlite3-show-stat4 - install_tool showwal sqlite3-show-wal - install_tool sqldiff sqlite3-diff - install_tool sqlite3_analyzer sqlite3-analyzer - install_tool sqlite3_checker sqlite3-checker - install_tool sqlite3_expert sqlite3-expert - install_tool sqltclsh sqlite3-tclsh - - unset -f install_tool - fi -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - doman sqlite3.1 - - if use doc; then - if [[ ${PV} == 9999 ]]; then - pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die - else - pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die - fi - - find "(" -name "*.db" -o -name "*.txt" ")" -delete || die - if [[ ${PV} != 9999 ]]; then - rm search search.d/admin || die - rmdir search.d || die - find -name "*~" -delete || die - fi - - ( - docinto html - dodoc -r * - ) - - popd > /dev/null || die - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.46.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.46.0.ebuild deleted file mode 100644 index 820e9f2fdd8..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.46.0.ebuild +++ /dev/null @@ -1,426 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools flag-o-matic multilib-minimal toolchain-funcs - -DESCRIPTION="SQL database engine" -HOMEPAGE="https://sqlite.org/" - -# On version updates, make sure to read the forum (https://sqlite.org/forum/forum) -# for hints regarding test failures, backports, etc. -if [[ ${PV} == 9999 ]]; then - S="${WORKDIR}"/${PN} - PROPERTIES="live" -else - printf -v SRC_PV "%u%02u%02u%02u" $(ver_rs 1- " ") - DOC_PV="${SRC_PV}" - #printf -v DOC_PV "%u%02u%02u00" $(ver_rs 1-3 " ") - - SRC_URI=" - https://sqlite.org/2024/${PN}-src-${SRC_PV}.zip - doc? ( https://sqlite.org/2024/${PN}-doc-${DOC_PV}.zip ) - " - S="${WORKDIR}/${PN}-src-${SRC_PV}" - - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -fi - -LICENSE="public-domain" -SLOT="3" -IUSE="debug doc icu +readline secure-delete static-libs tcl test tools" -RESTRICT="!test? ( test )" - -RDEPEND=" - sys-libs/zlib:=[${MULTILIB_USEDEP}] - icu? ( dev-libs/icu:=[${MULTILIB_USEDEP}] ) - readline? ( sys-libs/readline:=[${MULTILIB_USEDEP}] ) - tcl? ( dev-lang/tcl:=[${MULTILIB_USEDEP}] ) - tools? ( dev-lang/tcl:= ) -" -DEPEND=" - ${RDEPEND} - test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] ) -" -BDEPEND=">=dev-lang/tcl-8.6:0" -if [[ ${PV} == 9999 ]]; then - BDEPEND+=" dev-vcs/fossil" -else - BDEPEND+=" app-arch/unzip" -fi - -PATCHES=( - "${FILESDIR}"/${PN}-3.45.1-ppc64-ptr.patch -) - -_fossil_fetch() { - local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}" - local repo_id="${1}" - local repo_uri="${2}" - - local -x FOSSIL_HOME="${HOME}" - - mkdir -p "${T}/fossil/${repo_id}" || die - pushd "${T}/fossil/${repo_id}" > /dev/null || die - - if [[ -n "${EVCS_OFFLINE}" ]]; then - if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then - die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\"" - fi - else - if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then - einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" - fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die - echo - else - cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die - einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" - fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die - echo - fi - - ( - addwrite "${distdir}" - mkdir -p "${distdir}/fossil-src/${repo_id}" || die - cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die - ) - fi - - popd > /dev/null || die -} - -_fossil_checkout() { - local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}" - local repo_id="${1}" - local branch_or_commit="${2}" - local target_directory="${3}" - - local -x FOSSIL_HOME="${HOME}" - - if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then - die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\"" - fi - - if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then - mkdir -p "${T}/fossil/${repo_id}" || die - cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die - fi - - mkdir "${target_directory}" || die - pushd "${target_directory}" > /dev/null || die - - einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" - fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die - echo - - popd > /dev/null || die -} - -fossil_fetch() { - local repo_id="${1}" - local repo_uri="${2}" - local target_directory="${3}" - - local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}" - - _fossil_fetch "${repo_id}" "${repo_uri}" - _fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}" -} - -src_unpack() { - if [[ ${PV} == 9999 ]]; then - fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}" - if use doc; then - fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc" - fi - else - default - fi -} - -src_prepare() { - default - - eautoreconf - multilib_copy_sources -} - -multilib_src_configure() { - local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" - local options=() - - options+=( - --enable-load-extension - --enable-threadsafe - ) - - # Support detection of misuse of SQLite API. - # https://sqlite.org/compile.html#enable_api_armor - append-cppflags -DSQLITE_ENABLE_API_ARMOR - - # Support bytecode and tables_used virtual tables. - # https://sqlite.org/compile.html#enable_bytecode_vtab - # https://sqlite.org/bytecodevtab.html - append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB - - # Support column metadata functions. - # https://sqlite.org/compile.html#enable_column_metadata - # https://sqlite.org/c3ref/column_database_name.html - append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA - - # Support sqlite_dbpage virtual table. - # https://sqlite.org/compile.html#enable_dbpage_vtab - # https://sqlite.org/dbpage.html - append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB - - # Support dbstat virtual table. - # https://sqlite.org/compile.html#enable_dbstat_vtab - # https://sqlite.org/dbstat.html - append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB - - # Support sqlite3_serialize() and sqlite3_deserialize() functions. - # https://sqlite.org/compile.html#enable_deserialize - # https://sqlite.org/c3ref/serialize.html - # https://sqlite.org/c3ref/deserialize.html - append-cppflags -DSQLITE_ENABLE_DESERIALIZE - - # Support comments in output of EXPLAIN. - # https://sqlite.org/compile.html#enable_explain_comments - append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS - - # Support Full-Text Search versions 3, 4 and 5. - # https://sqlite.org/compile.html#enable_fts3 - # https://sqlite.org/compile.html#enable_fts3_parenthesis - # https://sqlite.org/compile.html#enable_fts4 - # https://sqlite.org/compile.html#enable_fts5 - # https://sqlite.org/fts3.html - # https://sqlite.org/fts5.html - append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4 - options+=( --enable-fts5 ) - - # Support hidden columns. - append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS - - # Support memsys5 memory allocator. - # https://sqlite.org/compile.html#enable_memsys5 - # https://sqlite.org/malloc.html#memsys5 - append-cppflags -DSQLITE_ENABLE_MEMSYS5 - - # Support sqlite3_normalized_sql() function. - # https://sqlite.org/c3ref/expanded_sql.html - append-cppflags -DSQLITE_ENABLE_NORMALIZE - - # Support sqlite_offset() function. - # https://sqlite.org/compile.html#enable_offset_sql_func - # https://sqlite.org/lang_corefunc.html#sqlite_offset - append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC - - # Support pre-update hook functions. - # https://sqlite.org/compile.html#enable_preupdate_hook - # https://sqlite.org/c3ref/preupdate_count.html - append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK - - # Support Resumable Bulk Update extension. - # https://sqlite.org/compile.html#enable_rbu - # https://sqlite.org/rbu.html - append-cppflags -DSQLITE_ENABLE_RBU - - # Support R*Trees. - # https://sqlite.org/compile.html#enable_rtree - # https://sqlite.org/compile.html#enable_geopoly - # https://sqlite.org/rtree.html - # https://sqlite.org/geopoly.html - append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY - - # Support Session extension. - # https://sqlite.org/compile.html#enable_session - # https://sqlite.org/sessionintro.html - append-cppflags -DSQLITE_ENABLE_SESSION - - # Support scan status functions. - # https://sqlite.org/compile.html#enable_stmt_scanstatus - # https://sqlite.org/c3ref/stmt_scanstatus.html - # https://sqlite.org/c3ref/stmt_scanstatus_reset.html - append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS - - # Support sqlite_stmt virtual table. - # https://sqlite.org/compile.html#enable_stmtvtab - # https://sqlite.org/stmt.html - append-cppflags -DSQLITE_ENABLE_STMTVTAB - - # Support unknown() function. - # https://sqlite.org/compile.html#enable_unknown_sql_function - append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION - - # Support unlock notification. - # https://sqlite.org/compile.html#enable_unlock_notify - # https://sqlite.org/c3ref/unlock_notify.html - # https://sqlite.org/unlock_notify.html - append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY - - # Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements. - # https://sqlite.org/compile.html#enable_update_delete_limit - # https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses - # https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses - append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT - - # Support soundex() function. - # https://sqlite.org/compile.html#soundex - # https://sqlite.org/lang_corefunc.html#soundex - append-cppflags -DSQLITE_SOUNDEX - - # Support URI filenames. - # https://sqlite.org/compile.html#use_uri - # https://sqlite.org/uri.html - append-cppflags -DSQLITE_USE_URI - - options+=( $(use_enable debug) ) - - if use icu; then - # Support ICU extension. - # https://sqlite.org/compile.html#enable_icu - append-cppflags -DSQLITE_ENABLE_ICU - sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed" - fi - - options+=( - --disable-editline - $(use_enable readline) - ) - - if use readline; then - options+=( --with-readline-inc="-I${ESYSROOT}/usr/include/readline" ) - fi - - if use secure-delete; then - # Enable secure_delete pragma by default. - # https://sqlite.org/compile.html#secure_delete - # https://sqlite.org/pragma.html#pragma_secure_delete - append-cppflags -DSQLITE_SECURE_DELETE - fi - - options+=( $(use_enable static-libs static) ) - - # tcl, test, tools USE flags. - if use tcl || use test || { use tools && multilib_is_native_abi; }; then - options+=( - --enable-tcl - --with-tcl="${ESYSROOT}/usr/$(get_libdir)" - ) - else - options+=( --disable-tcl ) - fi - - if [[ "${ABI}" == "x86" ]]; then - if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then - append-cflags -mfpmath=sse - else - append-cflags -ffloat-store - fi - fi - - econf "${options[@]}" -} - -multilib_src_compile() { - emake HAVE_TCL="$(usev tcl 1)" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" - - if use tools && multilib_is_native_abi; then - emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh - fi - - if [[ ${PV} == 9999 ]] && use doc && multilib_is_native_abi; then - emake tclsqlite3.c - - local build_directory="$(pwd)" - build_directory="${build_directory##*/}" - - mkdir "${WORKDIR}/${PN}-doc-build" || die - pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die - - emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc - rmdir doc/matrix{/*,} || die - - popd > /dev/null || die - fi -} - -multilib_src_test() { - if [[ "${EUID}" -eq 0 ]]; then - ewarn "Skipping tests due to root permissions" - return - fi - - local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}" - - # e_uri.test tries to open files in /. - # bug #839798 - local SANDBOX_PREDICT=${SANDBOX_PREDICT} - addpredict "/test.db" - addpredict "/ÿ.db" - - emake -Onone HAVE_TCL="$(usex tcl 1 "")" $(usex debug 'fulltest' 'test') -} - -multilib_src_install() { - emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install - - if use tools && multilib_is_native_abi; then - install_tool() { - if [[ -f ".libs/${1}" ]]; then - newbin ".libs/${1}" "${2}" - else - newbin "${1}" "${2}" - fi - } - - install_tool changeset sqlite3-changeset - install_tool dbdump sqlite3-db-dump - install_tool dbhash sqlite3-db-hash - install_tool dbtotxt sqlite3-db-to-txt - install_tool index_usage sqlite3-index-usage - install_tool rbu sqlite3-rbu - install_tool scrub sqlite3-scrub - install_tool showdb sqlite3-show-db - install_tool showjournal sqlite3-show-journal - install_tool showshm sqlite3-show-shm - install_tool showstat4 sqlite3-show-stat4 - install_tool showwal sqlite3-show-wal - install_tool sqldiff sqlite3-diff - install_tool sqlite3_analyzer sqlite3-analyzer - install_tool sqlite3_checker sqlite3-checker - install_tool sqlite3_expert sqlite3-expert - install_tool sqltclsh sqlite3-tclsh - - unset -f install_tool - fi -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - doman sqlite3.1 - - if use doc; then - if [[ ${PV} == 9999 ]]; then - pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die - else - pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die - fi - - find "(" -name "*.db" -o -name "*.txt" ")" -delete || die - if [[ ${PV} != 9999 ]]; then - rm search search.d/admin || die - rmdir search.d || die - find -name "*~" -delete || die - fi - - ( - docinto html - dodoc -r * - ) - - popd > /dev/null || die - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.46.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.46.1.ebuild index 4b7f5f5373a..543da1453a0 100644 --- a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.46.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.46.1.ebuild @@ -24,7 +24,7 @@ else " S="${WORKDIR}/${PN}-src-${SRC_PV}" - KEYWORDS="~alpha amd64 ~arm ~arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~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="public-domain" diff --git a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.47.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.47.0-r1.ebuild index c7033bdf266..b3dd1b416b6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.47.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.47.0-r1.ebuild @@ -54,6 +54,7 @@ PATCHES=( "${FILESDIR}"/${PN}-3.45.1-ppc64-ptr.patch "${FILESDIR}"/${PN}-3.47.0-nonbash.patch "${FILESDIR}"/${PN}-3.47.0-allocator-mismatch.patch + "${FILESDIR}"/${PN}-3.47.0-buildtclext.patch ) _fossil_fetch() { diff --git a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.47.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.47.0.ebuild deleted file mode 100644 index f2269f2a942..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.47.0.ebuild +++ /dev/null @@ -1,427 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools flag-o-matic multilib-minimal toolchain-funcs - -DESCRIPTION="SQL database engine" -HOMEPAGE="https://sqlite.org/" - -# On version updates, make sure to read the forum (https://sqlite.org/forum/forum) -# for hints regarding test failures, backports, etc. -if [[ ${PV} == 9999 ]]; then - S="${WORKDIR}"/${PN} - PROPERTIES="live" -else - printf -v SRC_PV "%u%02u%02u%02u" $(ver_rs 1- " ") - DOC_PV="${SRC_PV}" - #printf -v DOC_PV "%u%02u%02u00" $(ver_rs 1-3 " ") - - SRC_URI=" - https://sqlite.org/2024/${PN}-src-${SRC_PV}.zip - doc? ( https://sqlite.org/2024/${PN}-doc-${DOC_PV}.zip ) - " - S="${WORKDIR}/${PN}-src-${SRC_PV}" - - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -fi - -LICENSE="public-domain" -SLOT="3" -IUSE="debug doc icu +readline secure-delete static-libs tcl test tools" -RESTRICT="!test? ( test )" - -RDEPEND=" - sys-libs/zlib:=[${MULTILIB_USEDEP}] - icu? ( dev-libs/icu:=[${MULTILIB_USEDEP}] ) - readline? ( sys-libs/readline:=[${MULTILIB_USEDEP}] ) - tcl? ( dev-lang/tcl:=[${MULTILIB_USEDEP}] ) - tools? ( dev-lang/tcl:= ) -" -DEPEND=" - ${RDEPEND} - test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] ) -" -BDEPEND=">=dev-lang/tcl-8.6:0" -if [[ ${PV} == 9999 ]]; then - BDEPEND+=" dev-vcs/fossil" -else - BDEPEND+=" app-arch/unzip" -fi - -PATCHES=( - "${FILESDIR}"/${PN}-3.45.1-ppc64-ptr.patch - "${FILESDIR}"/${PN}-3.47.0-nonbash.patch -) - -_fossil_fetch() { - local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}" - local repo_id="${1}" - local repo_uri="${2}" - - local -x FOSSIL_HOME="${HOME}" - - mkdir -p "${T}/fossil/${repo_id}" || die - pushd "${T}/fossil/${repo_id}" > /dev/null || die - - if [[ -n "${EVCS_OFFLINE}" ]]; then - if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then - die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\"" - fi - else - if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then - einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" - fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die - echo - else - cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die - einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" - fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die - echo - fi - - ( - addwrite "${distdir}" - mkdir -p "${distdir}/fossil-src/${repo_id}" || die - cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die - ) - fi - - popd > /dev/null || die -} - -_fossil_checkout() { - local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}" - local repo_id="${1}" - local branch_or_commit="${2}" - local target_directory="${3}" - - local -x FOSSIL_HOME="${HOME}" - - if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then - die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\"" - fi - - if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then - mkdir -p "${T}/fossil/${repo_id}" || die - cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die - fi - - mkdir "${target_directory}" || die - pushd "${target_directory}" > /dev/null || die - - einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" - fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die - echo - - popd > /dev/null || die -} - -fossil_fetch() { - local repo_id="${1}" - local repo_uri="${2}" - local target_directory="${3}" - - local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}" - - _fossil_fetch "${repo_id}" "${repo_uri}" - _fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}" -} - -src_unpack() { - if [[ ${PV} == 9999 ]]; then - fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}" - if use doc; then - fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc" - fi - else - default - fi -} - -src_prepare() { - default - - eautoreconf - multilib_copy_sources -} - -multilib_src_configure() { - local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" - local options=() - - options+=( - --enable-load-extension - --enable-threadsafe - ) - - # Support detection of misuse of SQLite API. - # https://sqlite.org/compile.html#enable_api_armor - append-cppflags -DSQLITE_ENABLE_API_ARMOR - - # Support bytecode and tables_used virtual tables. - # https://sqlite.org/compile.html#enable_bytecode_vtab - # https://sqlite.org/bytecodevtab.html - append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB - - # Support column metadata functions. - # https://sqlite.org/compile.html#enable_column_metadata - # https://sqlite.org/c3ref/column_database_name.html - append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA - - # Support sqlite_dbpage virtual table. - # https://sqlite.org/compile.html#enable_dbpage_vtab - # https://sqlite.org/dbpage.html - append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB - - # Support dbstat virtual table. - # https://sqlite.org/compile.html#enable_dbstat_vtab - # https://sqlite.org/dbstat.html - append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB - - # Support sqlite3_serialize() and sqlite3_deserialize() functions. - # https://sqlite.org/compile.html#enable_deserialize - # https://sqlite.org/c3ref/serialize.html - # https://sqlite.org/c3ref/deserialize.html - append-cppflags -DSQLITE_ENABLE_DESERIALIZE - - # Support comments in output of EXPLAIN. - # https://sqlite.org/compile.html#enable_explain_comments - append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS - - # Support Full-Text Search versions 3, 4 and 5. - # https://sqlite.org/compile.html#enable_fts3 - # https://sqlite.org/compile.html#enable_fts3_parenthesis - # https://sqlite.org/compile.html#enable_fts4 - # https://sqlite.org/compile.html#enable_fts5 - # https://sqlite.org/fts3.html - # https://sqlite.org/fts5.html - append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4 - options+=( --enable-fts5 ) - - # Support hidden columns. - append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS - - # Support memsys5 memory allocator. - # https://sqlite.org/compile.html#enable_memsys5 - # https://sqlite.org/malloc.html#memsys5 - append-cppflags -DSQLITE_ENABLE_MEMSYS5 - - # Support sqlite3_normalized_sql() function. - # https://sqlite.org/c3ref/expanded_sql.html - append-cppflags -DSQLITE_ENABLE_NORMALIZE - - # Support sqlite_offset() function. - # https://sqlite.org/compile.html#enable_offset_sql_func - # https://sqlite.org/lang_corefunc.html#sqlite_offset - append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC - - # Support pre-update hook functions. - # https://sqlite.org/compile.html#enable_preupdate_hook - # https://sqlite.org/c3ref/preupdate_count.html - append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK - - # Support Resumable Bulk Update extension. - # https://sqlite.org/compile.html#enable_rbu - # https://sqlite.org/rbu.html - append-cppflags -DSQLITE_ENABLE_RBU - - # Support R*Trees. - # https://sqlite.org/compile.html#enable_rtree - # https://sqlite.org/compile.html#enable_geopoly - # https://sqlite.org/rtree.html - # https://sqlite.org/geopoly.html - append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY - - # Support Session extension. - # https://sqlite.org/compile.html#enable_session - # https://sqlite.org/sessionintro.html - append-cppflags -DSQLITE_ENABLE_SESSION - - # Support scan status functions. - # https://sqlite.org/compile.html#enable_stmt_scanstatus - # https://sqlite.org/c3ref/stmt_scanstatus.html - # https://sqlite.org/c3ref/stmt_scanstatus_reset.html - append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS - - # Support sqlite_stmt virtual table. - # https://sqlite.org/compile.html#enable_stmtvtab - # https://sqlite.org/stmt.html - append-cppflags -DSQLITE_ENABLE_STMTVTAB - - # Support unknown() function. - # https://sqlite.org/compile.html#enable_unknown_sql_function - append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION - - # Support unlock notification. - # https://sqlite.org/compile.html#enable_unlock_notify - # https://sqlite.org/c3ref/unlock_notify.html - # https://sqlite.org/unlock_notify.html - append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY - - # Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements. - # https://sqlite.org/compile.html#enable_update_delete_limit - # https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses - # https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses - append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT - - # Support soundex() function. - # https://sqlite.org/compile.html#soundex - # https://sqlite.org/lang_corefunc.html#soundex - append-cppflags -DSQLITE_SOUNDEX - - # Support URI filenames. - # https://sqlite.org/compile.html#use_uri - # https://sqlite.org/uri.html - append-cppflags -DSQLITE_USE_URI - - options+=( $(use_enable debug) ) - - if use icu; then - # Support ICU extension. - # https://sqlite.org/compile.html#enable_icu - append-cppflags -DSQLITE_ENABLE_ICU - sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed" - fi - - options+=( - --disable-editline - $(use_enable readline) - ) - - if use readline; then - options+=( --with-readline-inc="-I${ESYSROOT}/usr/include/readline" ) - fi - - if use secure-delete; then - # Enable secure_delete pragma by default. - # https://sqlite.org/compile.html#secure_delete - # https://sqlite.org/pragma.html#pragma_secure_delete - append-cppflags -DSQLITE_SECURE_DELETE - fi - - options+=( $(use_enable static-libs static) ) - - # tcl, test, tools USE flags. - if use tcl || use test || { use tools && multilib_is_native_abi; }; then - options+=( - --enable-tcl - --with-tcl="${ESYSROOT}/usr/$(get_libdir)" - ) - else - options+=( --disable-tcl ) - fi - - if [[ "${ABI}" == "x86" ]]; then - if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then - append-cflags -mfpmath=sse - else - append-cflags -ffloat-store - fi - fi - - econf "${options[@]}" -} - -multilib_src_compile() { - emake HAVE_TCL="$(usev tcl 1)" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" - - if use tools && multilib_is_native_abi; then - emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh - fi - - if [[ ${PV} == 9999 ]] && use doc && multilib_is_native_abi; then - emake tclsqlite3.c - - local build_directory="$(pwd)" - build_directory="${build_directory##*/}" - - mkdir "${WORKDIR}/${PN}-doc-build" || die - pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die - - emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc - rmdir doc/matrix{/*,} || die - - popd > /dev/null || die - fi -} - -multilib_src_test() { - if [[ "${EUID}" -eq 0 ]]; then - ewarn "Skipping tests due to root permissions" - return - fi - - local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}" - - # e_uri.test tries to open files in /. - # bug #839798 - local SANDBOX_PREDICT=${SANDBOX_PREDICT} - addpredict "/test.db" - addpredict "/ÿ.db" - - emake -Onone $(usex debug 'fulltest' 'test') -} - -multilib_src_install() { - emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install - - if use tools && multilib_is_native_abi; then - install_tool() { - if [[ -f ".libs/${1}" ]]; then - newbin ".libs/${1}" "${2}" - else - newbin "${1}" "${2}" - fi - } - - install_tool changeset sqlite3-changeset - install_tool dbdump sqlite3-db-dump - install_tool dbhash sqlite3-db-hash - install_tool dbtotxt sqlite3-db-to-txt - install_tool index_usage sqlite3-index-usage - install_tool rbu sqlite3-rbu - install_tool scrub sqlite3-scrub - install_tool showdb sqlite3-show-db - install_tool showjournal sqlite3-show-journal - install_tool showshm sqlite3-show-shm - install_tool showstat4 sqlite3-show-stat4 - install_tool showwal sqlite3-show-wal - install_tool sqldiff sqlite3-diff - install_tool sqlite3_analyzer sqlite3-analyzer - install_tool sqlite3_checker sqlite3-checker - install_tool sqlite3_expert sqlite3-expert - install_tool sqltclsh sqlite3-tclsh - - unset -f install_tool - fi -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - doman sqlite3.1 - - if use doc; then - if [[ ${PV} == 9999 ]]; then - pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die - else - pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die - fi - - find "(" -name "*.db" -o -name "*.txt" ")" -delete || die - if [[ ${PV} != 9999 ]]; then - rm search search.d/admin || die - rmdir search.d || die - find -name "*~" -delete || die - fi - - ( - docinto html - dodoc -r * - ) - - popd > /dev/null || die - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2-r100.ebuild index 8f0efb92394..84b680ba31c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2-r100.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2-r100.ebuild @@ -8,7 +8,7 @@ EAPI=8 GUILE_COMPAT=( 2-2 3-0 ) PYTHON_COMPAT=( python3_{10..13} ) -inherit flag-o-matic guile-single python-single-r1 strip-linguas toolchain-funcs +inherit flag-o-matic guile-single linux-info python-single-r1 strip-linguas toolchain-funcs export CTARGET=${CTARGET:-${CHOST}} @@ -75,7 +75,7 @@ LICENSE="GPL-3+ LGPL-2.1+" SLOT="0" IUSE="cet debuginfod guile lzma multitarget nls +python +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" + 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} ) @@ -126,6 +126,20 @@ PATCHES=( ) pkg_setup() { + local CONFIG_CHECK + + if kernel_is -ge 6.11.3 ; then + # https://forums.gentoo.org/viewtopic-p-8846891.html + # + # Either CONFIG_PROC_MEM_ALWAYS_FORCE or CONFIG_PROC_MEM_FORCE_PTRACE + # should be okay, but not CONFIG_PROC_MEM_NO_FORCE. + CONFIG_CHECK+=" + ~!PROC_MEM_NO_FORCE + " + fi + + linux-info_pkg_setup + use guile && guile-single_pkg_setup use python && python-single-r1_pkg_setup } diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2.ebuild index 0a390dda249..c4ff9f7ebdd 100644 --- a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2.ebuild @@ -74,7 +74,7 @@ LICENSE="GPL-3+ LGPL-2.1+" SLOT="0" IUSE="cet debuginfod guile lzma multitarget nls +python +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" + 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="python? ( ${PYTHON_REQUIRED_USE} )" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-9999.ebuild index 02518991189..7c3816fa9eb 100644 --- a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-9999.ebuild @@ -8,7 +8,7 @@ EAPI=8 GUILE_COMPAT=( 2-2 3-0 ) PYTHON_COMPAT=( python3_{10..13} ) -inherit flag-o-matic guile-single python-single-r1 strip-linguas toolchain-funcs +inherit flag-o-matic guile-single linux-info python-single-r1 strip-linguas toolchain-funcs export CTARGET=${CTARGET:-${CHOST}} @@ -126,6 +126,20 @@ PATCHES=( ) pkg_setup() { + local CONFIG_CHECK + + if kernel_is -ge 6.11.3 ; then + # https://forums.gentoo.org/viewtopic-p-8846891.html + # + # Either CONFIG_PROC_MEM_ALWAYS_FORCE or CONFIG_PROC_MEM_FORCE_PTRACE + # should be okay, but not CONFIG_PROC_MEM_NO_FORCE. + CONFIG_CHECK+=" + ~!PROC_MEM_NO_FORCE + " + fi + + linux-info_pkg_setup + use guile && guile-single_pkg_setup use python && python-single-r1_pkg_setup } diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/strace/Manifest b/sdk_container/src/third_party/portage-stable/dev-debug/strace/Manifest index ee9bc1b7055..27341f74ccc 100644 --- a/sdk_container/src/third_party/portage-stable/dev-debug/strace/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-debug/strace/Manifest @@ -2,6 +2,8 @@ DIST strace-6.10.tar.xz 2600864 BLAKE2B acb26ed66fbfcb1bc6403441b632df2f7af01834 DIST strace-6.10.tar.xz.asc 801 BLAKE2B 81b0bc033c5c8a34835b9fec8ab043879a1a2ba3a557fb3309b53254a92ab5abffac32b4d97b45aedbc045a882b69d7f26b186c6e9413599583976080f788e17 SHA512 058672503e8ae2444271e5c220a3bd29450c1badb06ec1a6e06e0f1f4d609af3730bc2a71e7f9cefeeed936e89d4d37e439f41da353388b885d49a204887fb91 DIST strace-6.11.tar.xz 2610440 BLAKE2B 5ea511cd0d2f287ec4c979af7306b29ca39975a4a08f6a1123ae562db5331f7ebb1f23ff2a24ce01fd96c000d094c4d810f2b4bca3ce8adac26fbee57da7f92c SHA512 c639ae7097d418f8b815bd008de9423079dad70829a5eb392d3c5def81243b8a9133c10251a7c00a4991f580cff5b62466f8b53b4b8e425a009548fb3582bdb0 DIST strace-6.11.tar.xz.asc 801 BLAKE2B bc60367dafb08551510bf64c384315aadc3027ed256fbfa5a6e23139800ad01f12b7ebdc09e7845b202260ec38b4a5de70e5701abd9dddc0c5f3c4c32bd6c97b SHA512 bdb86f8fa9b168240b892814037660456ee7beed547e6f5bbcb61431e6fd8d6544b8b169cc794e084c3c11f2f62aff36de410294c609c0a9ea8781fa1ddf57aa +DIST strace-6.12.tar.xz 2628804 BLAKE2B 8077a9ae0b05065cf2de7a2bd630a6275735bd77765a5654cb34f17c93b3fda69d77743c5eb8e75efcc1f6ec8707698642d30bd62cc3aa4355bec0d5a00eec89 SHA512 ae28f0b6b6fdc980898f11d1903aacb5a31760a07d63bd7cbc8f9b5f337d9db6b40464d6b61a9b03ba6442b476edb78afc91348f539f7780cdd98b174c6a9a1d +DIST strace-6.12.tar.xz.asc 801 BLAKE2B 0c3d81747128039c2304c2c6509f14d868c49b1d7036128ab58a2df7690ea40ab643a54f274c0fecbae4bbc4e90ee5d05037630525db828aa4995199ab415cba SHA512 7b8d6148f3160e39033016d17a54f0b0e0a67fb20ab688486db401521d45ba5197d4a8106f6b173f08a787e59d88147a71ee88435afe0a545fc8f75f621bee79 DIST strace-6.6.tar.xz 2420364 BLAKE2B f1465fec58ac20ccce6a88441a34b1402e5c51f0bb4b7963f69b5ab5019a8c8722e3406c6f93c10c1eea11d17de7f9874895d6f4df24cf9ec42a18f36267687b SHA512 77ea45c72e513f6c07026cd9b2cc1a84696a5a35cdd3b06dd4a360fb9f9196958e3f6133b4a9c91e091c24066ba29e0330b6459d18a9c390caae2dba97ab399b DIST strace-6.6.tar.xz.asc 801 BLAKE2B 1bd72fc586f4338da1ae31181d28103ff3168322c07508699261b5ec4627ed3bdf7e20b4557182a258f22e83537712f20413aa9c5c4b335c75f3772e71888478 SHA512 b9eb6fc5c2f3bd8fced37fb81435087df95d9f23f0697afab8a3e359709c95238e50aafe2a3ba8cd698aeae75a4f8e28b6dce49a26878a961c2c06790458d228 DIST strace-6.7.tar.xz 2434880 BLAKE2B 249c149a9140fc79be1365e4e8697b46f6558334eefac11b51c96d2d2e67bb82cb2eac3c38c2fa31f40fc5e0ad3c52967e15a034c01c12ed041d51f006a194ae SHA512 da28fd9fb987044782e6fd6f5e90e2cea2ab8e536cbd3893ef4c9b11c9b3185f073ca3d8ca0eade49e9a2af8efbda8c2b66b8988be7ebc463dc45e8f48ca1256 diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.12.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.12.ebuild new file mode 100644 index 00000000000..3b7b6412119 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.12.ebuild @@ -0,0 +1,117 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools edo flag-o-matic toolchain-funcs verify-sig + +DESCRIPTION="Useful diagnostic, instructional, and debugging tool" +HOMEPAGE="https://strace.io/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/strace/strace.git" + inherit git-r3 +else + SRC_URI=" + https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz + verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz.asc ) + " + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +fi + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc + +LICENSE="LGPL-2.1+ test? ( GPL-2+ )" +SLOT="0" +IUSE="aio perl selinux static test unwind elfutils" +RESTRICT="!test? ( test )" +REQUIRED_USE="?? ( unwind elfutils )" + +BDEPEND=" + virtual/pkgconfig + verify-sig? ( >=sec-keys/openpgp-keys-strace-20151021 ) +" +LIB_DEPEND=" + unwind? ( sys-libs/libunwind[static-libs(+)] ) + elfutils? ( dev-libs/elfutils[static-libs(+)] ) + selinux? ( sys-libs/libselinux[static-libs(+)] ) +" +# strace only uses the header from libaio to decode structs +DEPEND=" + static? ( ${LIB_DEPEND} ) + aio? ( >=dev-libs/libaio-0.3.106 ) + sys-kernel/linux-headers +" +RDEPEND=" + !static? ( ${LIB_DEPEND//\[static-libs(+)]} ) + perl? ( dev-lang/perl ) +" + +PATCHES=( + "${FILESDIR}/${PN}-6.5-static.patch" +) + +src_prepare() { + default + + if [[ ! -e configure ]] ; then + # git generation + sed /autoreconf/d -i bootstrap || die + edo ./bootstrap + [[ ! -e CREDITS ]] && cp CREDITS{.in,} + fi + + eautoreconf + + # Stub out the -k test since it's known to be flaky. bug #545812 + sed -i '1iexit 77' tests*/strace-k.test || die +} + +src_configure() { + # Set up the default build settings, and then use the names strace expects. + tc-export_build_env BUILD_{CC,CPP} + local v bv + for v in CC CPP {C,CPP,LD}FLAGS ; do + bv="BUILD_${v}" + export "${v}_FOR_BUILD=${!bv}" + done + + filter-lfs-flags # configure handles this sanely + + export ac_cv_header_libaio_h=$(usex aio) + use elibc_musl && export ac_cv_header_stdc=no + + local myeconfargs=( + --disable-gcc-Werror + + # Don't require mpers support on non-multilib systems. #649560 + --enable-mpers=check + + $(use_enable static) + $(use_with unwind libunwind) + $(use_with elfutils libdw) + $(use_with selinux libselinux) + ) + econf "${myeconfargs[@]}" +} + +src_test() { + if has usersandbox ${FEATURES} ; then + # bug #643044 + ewarn "Test suite is known to fail with FEATURES=usersandbox -- skipping ..." + return 0 + fi + + default +} + +src_install() { + default + + if use perl ; then + exeinto /usr/bin + doexe src/strace-graph + fi + + dodoc CREDITS +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/Manifest b/sdk_container/src/third_party/portage-stable/dev-lang/python/Manifest index 94e87ed2a59..44f5e2b6618 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 @@ -12,17 +12,23 @@ DIST Python-3.13.0.tar.xz 22532980 BLAKE2B 4a4e397199402de8c9fe8e4d63443ed972cbe DIST Python-3.13.0.tar.xz.asc 963 BLAKE2B d05f02692a9fea42b73dbfe5dc42bd6533555e5ecb848510d2b94bb7f0e55d4a0f89bcd20b073ed2c7f7a68be35b12cb6dbff6bc16fc9a4592ded2c339ada7fd SHA512 1b8bb0fe4eb93e31ec1770e90b94d44b5864c0391aad5dcba3a30d8e505d9b17107385414353c0060007f8a536254f49b8e919f36ddf6421a6e4330f817f1a3e DIST Python-3.14.0a1.tar.xz 22613224 BLAKE2B 1427d8a8e500bceb667852dd227bf00d1dc77cde6513e3202d5e0fb8e0019b4f214ac1ee1686e833d52f4200c667da573e84bea6eb19f463d018d484b82cfa9f SHA512 f96e8923662c1ba5ffb99673e59f5ce2366b13ea853e21e5a5c74efcf0a36f20d00612a9b882caf6482d2179b7315ae0331dcb45be19b7b9676f0ed4bf2256b8 DIST Python-3.14.0a1.tar.xz.sigstore 4799 BLAKE2B 79c271a133e49f46aa478f9645a9c6998081538a05bd20395155c9b490cf13e11c47bb72a60f82b8297fb870af1c67922af648c9ba8fab6e3b31f7040991c39f SHA512 5115325d0a2f43bd0cc3d0888cad78deb90dfb36976c3341f0c237b15334883d1df3fee1dce53af7fe70ff9d630a98c9df4c2524f36183f61a74dd69f69e6257 +DIST Python-3.14.0a2.tar.xz 22696948 BLAKE2B e639838b44c0bc58522cc5344004ea6b1c6fc020eed48165a59693e34b0d5328fb861fb97b05008f04131335c138ee2dd569036b628b933deaf08e005e8e5259 SHA512 face78a7ef5d1a14b7e8c478125c660fe9745e793a5443932684c8426f0023324236c67ad73198e4286ba8793628452ae4d4d6332f007c009b285ba83ca1fc48 +DIST Python-3.14.0a2.tar.xz.sigstore 5035 BLAKE2B b97954a40f640170e049a62082be0cf77dc38ceb6bb2f0c8a122592b5bab4b71b17ad42496538d90703e81127d26e41f2f2522cef745837751fb62fa3590fd56 SHA512 1f5eba0cb8dffb73b351c91072dc91cfdb55f9c833c431b484f8f443a4913d94813e04f81f1dded4df989673dbd91abda8e8ebd6f4f00464725a634477452770 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.20.tar.xz 19648968 BLAKE2B 80a337ff406130599b8320068d11bc275d23473cedd7c85fcb9e40134f0f2d533be6e712139e788a6423cdc74cea938f306aa37c2a5099e3051f3e390159279c SHA512 c828f33edf1704e3149499d6d34e89264cb5cdb2b09ff05561641b359716d7996f0fe928629e09f006b1fd7850fdaf937275919c7fdd83f5efc32707c64d814b DIST Python-3.9.20.tar.xz.asc 833 BLAKE2B bcd5a612281bf8e057e19db9105b199cb7e44050441b19832843e8149088d277f4b625421099b09d4ed6fac5578505f46dbfea13b041d157d695eaf668c3a7de SHA512 f21c012f4f642542479ba329da9654589e5a7f7305c39fb1b6f136b578316bdb115cef9773c9a9fe4e195677af01cb80af05780613cca83f42fae131862a9584 DIST python-gentoo-patches-2.7.18_p16.tar.xz 35448 BLAKE2B 0139c0944f62f9cdd236f6a8557e0ed19704c7d72869af1cb7d8bd3e646a746cd4a0201e1b44232a5e78ef49f254db20b0d0271bf744fbfd4fe0f1e99b8f3e6c SHA512 810be590d0e06fab4b2165e6852ca49662f09dcd7e20b47a29f613ad7653252c8dfac3f0eb228d77c8a914efa7c08788b2fbd552a4b47504f5fd0ec17450c48f DIST python-gentoo-patches-3.10.15_p1.tar.xz 24048 BLAKE2B 191c28ad9bc781d6f3077870e8d40ff98a47a64009ecfbbd10fe2b3c5330692181837fd3e9b336fd01f936a39160fc12761b2ef9bc00843248ab978cda2e2767 SHA512 4461e351c991694415e2812e558d6c3d3f79295358623dc955bc0839691a170d95a3efd31c0bf9f0d6191e4184d7b55fdb485b948d591782fef5b060d7660cce +DIST python-gentoo-patches-3.10.15_p2.tar.xz 25284 BLAKE2B 24ecd523dba88915db130b174a5d692b9218decf81db7617ba016d4e21555cefa807e344a490110bcd3992637a95d0ce3179b219911417d29d008b4e2b5d7b33 SHA512 e1017b80272c57c18dbf7e1515d50fe13ead8de028d1ccaf1339a93ad4b0286f758979ee6f27011fa12350855cefdbdf049927bf2dd185905d4f3fe146c5bd68 DIST python-gentoo-patches-3.11.10_p1.tar.xz 10592 BLAKE2B 1cc02d22b55cb76beba133c37e6db3b9ba12b11cd8776acb064f14431842405cbc9efb5a06319cff1c73d9178ddbbe2e340829d4628c88a9589aa2fc1d308f80 SHA512 7ddb08e4d8a9173a26fa18de687a4c85c3d460e2bc595da6f4b15cfe3be264ccdc7d61d5fed1e7a82f256d21caf3ea7de87f774fde61a9d37bed15f86f546adb DIST python-gentoo-patches-3.12.6_p2.tar.xz 8144 BLAKE2B 2f36ce972e0b3e2884c9df629e3aeb1af05e4c77dffb866ff28e08a0a7df3c7cf36a9de250d148d909c07fd5bad483c95b3267818657c04e7d0d6fe512e21f9a SHA512 caa86c6cf693f9293b3aa8944452d117b78c1c3f8d6a6aa658cb5c2d2ffb0cecc6cf14b293872bd2101766ee7167ba88183904b2814090f8cbc64c1fa3b771be DIST python-gentoo-patches-3.12.6_p4-r1.tar.xz 9072 BLAKE2B 831f6c4284035832e0536ad3211d10c078e6c356e1fa593dd45984b29253deaf703bcb71e1b488508992dd37d5a140591c9193f1620bb966e39b048e4d5c6746 SHA512 9c61e0396c98fb45f3dccad9165e3f2b7bbeabd4a6fe88cc6e05a9d3012e39068571e63527dc831efaf24cb0e8fee75f60454481b2d1a0a44bedba69a7ed5c95 DIST python-gentoo-patches-3.12.7_p1-r1.tar.xz 10552 BLAKE2B c71ffbbaa4dccd012fced7979c54f2b895ac207a892fd4b0118ab9ef678931c5449f6205855bf5fab9bc7fb5e5af0fc7c5b89bab608e5539855db571bb9d3aa4 SHA512 62207e2eb44e4eeb464ba4bdcefe15b3e03793793cbd033c153cdbf1c9a861779f3bb7259dc09e786c183450123ea283583d9870eca9d6c7b25e5f3dba6f89d6 DIST python-gentoo-patches-3.13.0.tar.xz 8316 BLAKE2B 8fb8ba8f41f310140ad7066b614952023112d5043e5d82058364125611785144c1843e87eecb7669bcbab51c40d0694069526219f7419a7009517ce0821b74ba SHA512 0eb31ebfa3411020aa70b3b66fd7eec98b4b7a686b0e8f1f7ed76a8186a7c1ee85ccd9565a86a1d7ec13b975855eeb7303036af05e2dfdce3d64e4ad99299df4 DIST python-gentoo-patches-3.14.0a1-r2.tar.xz 6008 BLAKE2B bb833fb522e008eb79355fd13952c4fc3efc4684e9a2f26680d57b2bb137d25b461ce34ac7cbf0a7c64a558fa2cd63ad393f23cb90f620395efefd1c01bf01f5 SHA512 60568f83765f8045c789391b1f44ab6ac633a00ca84a6c93afb6067294093dd87a262feb6ea1d0879ed90bcdfa7d02054da5974cb9218686fbe629bdf11d0792 +DIST python-gentoo-patches-3.14.0a2.tar.xz 6032 BLAKE2B 60f5b702feca8c967b0baff906d31b8d2e9788fed0a717292d73d7c2497972d785257ba58248815af10608ef4f5491f11e42715e84885c1548e7744cba4d2bee SHA512 306fd779e139994a3bd64d4ac638f5473b8998739363b5fc2ea2e89caef5b02192226a53c8ea9a03438657733db81c87d31ee4ecb3b3c2f86a9643a3f64b498c DIST python-gentoo-patches-3.8.20_p2.tar.xz 42296 BLAKE2B c0f2c4d0adcb6c10eb68342b911016666cb68308717a5ca1369100a39229ce16c6e9dfdf9e1b4cffe0191d03ca5ee7d9568cd24885fd0f4f32f14e2e8c0a96a3 SHA512 cb9e98c0dd823b6e4f8a60e9095ab58e596cd9411b675678a0d4adefc92b37e14cecc7cecb82e287ac34a9ce1d4595f261b0736bcc9fc62c43c7d8c0b3be70e7 +DIST python-gentoo-patches-3.8.20_p4.tar.xz 43816 BLAKE2B 9bbc86a49816b79e52cfa90e0a136faead48ad0c8017858fb380da752d6e801e18fe08a0c4c492560c79c1e70778daed2fa5bba8dd92f2b23bd45acd518e5c84 SHA512 59bcfc8c98fe9c5740d031697a04dcee6994e7dfbc9d1920bc4782b539525bcd8b006e971fc1e473ffc2dc0aba12564dc6240048dd64ab244c5c8d11ce42f946 DIST python-gentoo-patches-3.9.20_p1.tar.xz 34944 BLAKE2B 332454661adc03033c7e8a5fcc91081b7d405826e9bf89bb2c2e178a0795e4415c9e87ae923756470ee973441f242e194b397354964b8f43dadd4965d210a4f4 SHA512 19bf7227535526a733633723b75d49786dfd8738595c1115b4e05665bc13a1ea70cbf0cc62cb27e81c75f5db2aa56ab985eaa5abde6243697caccb2cb5288005 +DIST python-gentoo-patches-3.9.20_p2.tar.xz 36140 BLAKE2B af0a9e08f3bfd8eb631760d100ec8f54db968a6bd201820192c4ea63ec88e0f83ffe77c709fcf4da43ad8d44eeb239ca1984561c3e7846e3fe4edd757d2321a4 SHA512 d451b41401de631eed996c34f40f2146d4d2f11bfa04fffa762c9b654e690d0ef95be0f51224a964a7c33784bb9b21e58434f6fee17cf39c20b5af34200569d5 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.15_p2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.15_p2.ebuild new file mode 100644 index 00000000000..c1e3463af7a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.15_p2.ebuild @@ -0,0 +1,595 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic multiprocessing pax-utils +inherit prefix python-utils-r1 toolchain-funcs verify-sig + +MY_PV=${PV/_rc/rc} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" +IUSE=" + bluetooth build debug +ensurepip examples gdbm libedit + +ncurses pgo +readline +sqlite +ssl test tk valgrind +" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + dev-libs/mpdecimal:= + dev-python/gentoo-common + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + ensurepip? ( dev-python/ensurepip-wheels ) + 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 ) + valgrind? ( dev-debug/valgrind ) + test? ( app-arch/xz-utils ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + dev-build/autoconf-archive + app-alternatives/awk + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-python ) +" +RDEPEND+=" + !build? ( app-misc/mime-types ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +pkg_pretend() { + use test && check-reqs_pkg_pretend +} + +pkg_setup() { + use test && check-reqs_pkg_setup +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + rm -r Modules/expat || die + rm -r Modules/_ctypes/libffi* || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # https://bugs.gentoo.org/850151 + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs) + sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST=${BUILD_LDFLAGS} + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS=${LDFLAGS_NODIST} + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 and bug #864911. + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross. + --without-lto + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. + PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \ + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Avoid as many dependencies as possible for the cross build. + cat >> Makefile <<-EOF || die + MODULE_NIS=disabled + MODULE__DBM=disabled + MODULE__GDBM=disabled + MODULE__DBM=disabled + MODULE__SQLITE3=disabled + MODULE__HASHLIB=disabled + MODULE__SSL=disabled + MODULE__CURSES=disabled + MODULE__CURSES_PANEL=disabled + MODULE_READLINE=disabled + MODULE__TKINTER=disabled + MODULE_PYEXPAT=disabled + MODULE_ZLIB=disabled + EOF + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the Python it was pointed to + # immediately. + PYTHON_DISABLE_MODULES+=" _ctypes _crypt" emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + local disable + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + export PYTHON_DISABLE_MODULES="${disable}" + + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi + + append-flags -fwrapv + 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=( + -x test_gdb + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + powerpc64-*) # big endian + COMMON_TEST_SKIPS+=( + -x test_descr + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + -x test_descr + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_concurrent_futures + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + profile_task_flags+=( + -x test_os + ) + ;; + hppa*) + profile_task_flags+=( + -x test_descr + # bug 931908 + -x test_exceptions + -x test_os + ) + ;; + powerpc64-*) # big endian + profile_task_flags+=( + # bug 931908 + -x test_exceptions + ) + ;; + riscv*) + profile_task_flags+=( + -x test_statistics + ) + ;; + esac + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + local -x PROFILE_TASK="${profile_task_flags[*]}" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-ffi + --with-system-libmpdec + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + + $(use_with debug assertions) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with valgrind) + ) + + # disable implicit optimization/debugging flags + local -x OPT= + + # https://bugs.gentoo.org/700012 + if tc-is-lto; then + append-cflags $(test-flags-CC -ffat-lto-objects) + myeconfargs+=( + --with-lto + ) + fi + + if tc-is-cross-compiler ; then + build_cbuild_python + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}" + fi + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + if use ncurses; then + append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + fi + + hprefixify setup.py + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi + + # install epython.py as part of stdlib + echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + # Prevent using distutils bundled by setuptools. + # https://bugs.gentoo.org/823728 + export SETUPTOOLS_USE_DISTUTILS=stdlib + + # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't + # end up writing bytecode & violating sandbox. + # bug #831897 + local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} + + # Gentoo hack to disable accessing system site-packages + export GENTOO_CPYTHON_BUILD=1 + + if use pgo ; then + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/tmp + fi + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Restore saved value from above. + local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + local test_opts=( + --verbose3 + -u-network + -j "$(makeopts_jobs)" + "${COMMON_TEST_SKIPS[@]}" + ) + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/tmp + + nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local ret=${?} + + [[ ${ret} -eq 0 ]] || die "emake test failed" +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + emake DESTDIR="${D}" TEST_MODULES=no altinstall + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + rm -r "${libdir}"/ensurepip/_bundled || die + if ! use ensurepip; then + rm -r "${libdir}"/ensurepip || die + fi + if ! use sqlite; then + rm -r "${libdir}/"sqlite3 || die + fi + if ! use tk; then + rm -r "${ED}/usr/bin/idle${PYVER}" || die + rm -r "${libdir}/"{idlelib,tkinter} || die + fi + + ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$( + printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | + emake --no-print-directory -s -f - 2>/dev/null + ) + newins Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local EPYTHON=python${PYVER} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die + # 2to3, pydoc + ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die + ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.7_p1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.7_p1.ebuild index 2cddd912764..830a9bb0f57 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.7_p1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.7_p1.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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_alpha2-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_alpha2-r100.ebuild new file mode 100644 index 00000000000..b65bf6ea04f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_alpha2-r100.ebuild @@ -0,0 +1,662 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +LLVM_COMPAT=( 18 ) +LLVM_OPTIONAL=1 +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic linux-info llvm-r1 +inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs +inherit verify-sig + +MY_PV=${PV/_alpha/a} +MY_P="Python-${MY_PV%_p*}" +PYVER="$(ver_cut 1-2)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/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +IUSE=" + bluetooth build debug +ensurepip examples gdbm jit + libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind +" +REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + >=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 ' + sys-devel/clang:${LLVM_SLOT} + sys-devel/llvm:${LLVM_SLOT} + ') + ) + verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 ) +" +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_METHOD=sigstore +VERIFY_SIG_CERT_IDENTITY=hugo@python.org +VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER%t} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +declare -rgA PYTHON_KERNEL_CHECKS=( + ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 + ["DNOTIFY"]="test_fcntl" # bug 938662 +) + +pkg_pretend() { + if use pgo || use test; then + check-reqs_pkg_pretend + fi + + ewarn "Freethreading build is considered experimental upstream. Using it" + ewarn "could lead to unexpected breakage, including race conditions" + ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" + ewarn "you can reproduce the problem with dev-lang/python. Instead," + ewarn "please consider reporting freethreading problems upstream." +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]]; then + 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 + + append-flags -fwrapv + 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 + ) + ;; + 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 + + # Fails in profiling run, passes in src_test(). + -x test_capi + -x test_embed + -x test_external_inspection + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + profile_task_flags+=( + -x test_os + ) + ;; + hppa*) + profile_task_flags+=( + -x test_descr + # bug 931908 + -x test_exceptions + -x test_os + ) + ;; + powerpc64-*) # big endian + profile_task_flags+=( + # bug 931908 + -x test_exceptions + ) + ;; + riscv*) + profile_task_flags+=( + -x test_statistics + ) + ;; + esac + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + local -x PROFILE_TASK="${profile_task_flags[*]}" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --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 jit experimental-jit) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with valgrind) + ) + + # https://bugs.gentoo.org/700012 + if tc-is-lto; then + append-cflags $(test-flags-CC -ffat-lto-objects) + 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=/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=/tmp + + nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local ret=${?} + + [[ ${ret} -eq 0 ]] || die "emake test failed" +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + # -j1 hack for now for bug #843458 + emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + # Fix collision with GIL-enabled build. + rm "${ED}/usr/bin/python${PYVER%t}" || die + mv "${ED}"/usr/bin/pydoc{${PYVER%t},${PYVER}} || die + mv "${ED}"/usr/share/man/man1/python{${PYVER%t},${PYVER}}.1 || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + rm -r "${libdir}"/ensurepip/_bundled || die + if ! use sqlite; then + rm -r "${libdir}/"sqlite3 || die + fi + if use tk; then + # rename to avoid collision with dev-lang/python + mv "${ED}"/usr/bin/idle{${PYVER%t},${PYVER}} || die + else + rm -r "${ED}/usr/bin/idle${PYVER%t}" || die + rm -r "${libdir}/"{idlelib,tkinter} || die + fi + + ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$( + printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | + emake --no-print-directory -s -f - 2>/dev/null + ) + newins Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local EPYTHON=python${PYVER} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die + # pydoc + ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_alpha2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_alpha2.ebuild new file mode 100644 index 00000000000..40e8f686e93 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_alpha2.ebuild @@ -0,0 +1,654 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +LLVM_COMPAT=( 18 ) +LLVM_OPTIONAL=1 +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic linux-info llvm-r1 +inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs +inherit verify-sig + +MY_PV=${PV/_alpha/a} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +IUSE=" + bluetooth build debug +ensurepip examples gdbm jit + libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind +" +REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + >=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 ' + sys-devel/clang:${LLVM_SLOT} + sys-devel/llvm:${LLVM_SLOT} + ') + ) + verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 ) +" +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_METHOD=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 + + append-flags -fwrapv + 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 + ) + ;; + 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 + + # Fails in profiling run, passes in src_test(). + -x test_capi + -x test_embed + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + profile_task_flags+=( + -x test_os + ) + ;; + hppa*) + profile_task_flags+=( + -x test_descr + # bug 931908 + -x test_exceptions + -x test_os + ) + ;; + powerpc64-*) # big endian + profile_task_flags+=( + # bug 931908 + -x test_exceptions + ) + ;; + riscv*) + profile_task_flags+=( + -x test_statistics + ) + ;; + esac + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + local -x PROFILE_TASK="${profile_task_flags[*]}" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-libmpdec + --with-platlibdir=lib + --with-pkg-config=yes + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + --enable-gil + + $(use_with debug assertions) + $(use_enable jit experimental-jit) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with valgrind) + ) + + # https://bugs.gentoo.org/700012 + if tc-is-lto; then + append-cflags $(test-flags-CC -ffat-lto-objects) + 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= + 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= + + nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local ret=${?} + + [[ ${ret} -eq 0 ]] || die "emake test failed" +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + # -j1 hack for now for bug #843458 + emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + rm -r "${libdir}"/ensurepip/_bundled || die + if ! use sqlite; then + rm -r "${libdir}/"sqlite3 || die + fi + if ! use tk; then + rm -r "${ED}/usr/bin/idle${PYVER}" || die + rm -r "${libdir}/"{idlelib,tkinter} || die + fi + + ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$( + printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | + emake --no-print-directory -s -f - 2>/dev/null + ) + newins Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local EPYTHON=python${PYVER} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die + # pydoc + ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.8.20_p4.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.8.20_p4.ebuild new file mode 100644 index 00000000000..5a6371cd1d0 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.8.20_p4.ebuild @@ -0,0 +1,491 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" +WANT_LIBTOOL="none" + +inherit autotools flag-o-matic multiprocessing pax-utils +inherit prefix python-utils-r1 toolchain-funcs verify-sig + +MY_PV=${PV/_rc/rc} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" +IUSE=" + bluetooth build debug +ensurepip examples gdbm +ncurses pgo + +readline +sqlite +ssl test tk valgrind +" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + dev-libs/mpdecimal:= + dev-python/gentoo-common + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + ensurepip? ( dev-python/ensurepip-wheels ) + gdbm? ( sys-libs/gdbm:=[berkdb] ) + kernel_linux? ( sys-apps/util-linux:= ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( >=sys-libs/readline-4.1:= ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) +" +# bluetooth requires headers from bluez +DEPEND=" + ${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( app-arch/xz-utils ) + valgrind? ( dev-debug/valgrind ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + dev-build/autoconf-archive + app-alternatives/awk + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-python ) +" +RDEPEND+=" + !build? ( app-misc/mime-types ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc + +QA_PKGCONFIG_VERSION=${PYVER} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + rm -r Modules/expat || die + rm -r Modules/_ctypes/libffi* || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # https://bugs.gentoo.org/850151 + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs) + sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + rm Lib/distutils/command/wininst*.exe || die + + eautoreconf +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + local disable + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + export PYTHON_DISABLE_MODULES="${disable}" + + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi + + append-flags -fwrapv + 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=( + -x test_gdb + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + powerpc64-*) # big endian + COMMON_TEST_SKIPS+=( + -x test_descr + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + -x test_descr + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-ffi + --with-system-libmpdec + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + + $(use_with debug assertions) + $(use_with valgrind) + ) + + # disable implicit optimization/debugging flags + local -x OPT= + + # https://bugs.gentoo.org/700012 + if tc-is-lto; then + append-cflags $(test-flags-CC -ffat-lto-objects) + myeconfargs+=( + --with-lto + ) + fi + + if tc-is-cross-compiler ; then + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST=${BUILD_LDFLAGS} + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS=${LDFLAGS_NODIST} + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 and bug #864911. + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross. + --without-lto + --disable-optimizations + ) + + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}" + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. + PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \ + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Avoid as many dependencies as possible for the cross build. + cat >> Makefile <<-EOF || die + MODULE_NIS=disabled + MODULE__DBM=disabled + MODULE__GDBM=disabled + MODULE__DBM=disabled + MODULE__SQLITE3=disabled + MODULE__HASHLIB=disabled + MODULE__SSL=disabled + MODULE__CURSES=disabled + MODULE__CURSES_PANEL=disabled + MODULE_READLINE=disabled + MODULE__TKINTER=disabled + MODULE_PYEXPAT=disabled + MODULE_ZLIB=disabled + EOF + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the Python it was pointed to + # immediately. + PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake + popd &> /dev/null || die + fi + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + if use ncurses; then + append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + fi + + hprefixify setup.py + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi + + # install epython.py as part of stdlib + echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + # Prevent using distutils bundled by setuptools. + # https://bugs.gentoo.org/823728 + export SETUPTOOLS_USE_DISTUTILS=stdlib + + # Gentoo hack to disable accessing system site-packages + export GENTOO_CPYTHON_BUILD=1 + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + local test_opts=( + --verbose3 + -u-network + -j "$(makeopts_jobs)" + "${COMMON_TEST_SKIPS[@]}" + ) + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/tmp + + nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local ret=${?} + + [[ ${ret} -eq 0 ]] || die "emake test failed" +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + emake DESTDIR="${D}" altinstall + + # Remove static library + rm "${ED}"/usr/$(get_libdir)/libpython*.a || die + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + rm -r "${libdir}"/ensurepip/_bundled || die + if ! use ensurepip; then + rm -r "${libdir}"/ensurepip || die + fi + if ! use sqlite; then + rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die + fi + if ! use tk; then + rm -r "${ED}/usr/bin/idle${PYVER}" || die + rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die + fi + + ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$( + printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | + emake --no-print-directory -s -f - 2>/dev/null + ) + newins Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local EPYTHON=python${PYVER} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die + # 2to3, pydoc + ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die + ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.20_p2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.20_p2.ebuild new file mode 100644 index 00000000000..aa65518937f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.20_p2.ebuild @@ -0,0 +1,584 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic multiprocessing pax-utils +inherit prefix python-utils-r1 toolchain-funcs verify-sig + +MY_PV=${PV/_rc/rc} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" +IUSE=" + bluetooth build debug +ensurepip examples gdbm +ncurses pgo + +readline +sqlite +ssl test tk valgrind +" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + dev-libs/mpdecimal:= + dev-python/gentoo-common + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + ensurepip? ( dev-python/ensurepip-wheels ) + gdbm? ( sys-libs/gdbm:=[berkdb] ) + kernel_linux? ( sys-apps/util-linux:= ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( >=sys-libs/readline-4.1:= ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) +" +# bluetooth requires headers from bluez +DEPEND=" + ${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( app-arch/xz-utils ) + valgrind? ( dev-debug/valgrind ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + dev-build/autoconf-archive + app-alternatives/awk + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-python ) +" +RDEPEND+=" + !build? ( app-misc/mime-types ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +pkg_pretend() { + use test && check-reqs_pkg_pretend +} + +pkg_setup() { + use test && check-reqs_pkg_setup +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + rm -r Modules/expat || die + rm -r Modules/_ctypes/libffi* || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # https://bugs.gentoo.org/850151 + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs) + sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + eautoreconf +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + local disable + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + export PYTHON_DISABLE_MODULES="${disable}" + + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi + + append-flags -fwrapv + 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=( + -x test_gdb + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + powerpc64-*) # big endian + COMMON_TEST_SKIPS+=( + -x test_descr + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + -x test_descr + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_concurrent_futures + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + profile_task_flags+=( + -x test_os + ) + ;; + hppa*) + profile_task_flags+=( + -x test_descr + # bug 931908 + -x test_exceptions + -x test_os + ) + ;; + powerpc64-*) # big endian + profile_task_flags+=( + # bug 931908 + -x test_exceptions + ) + ;; + riscv*) + profile_task_flags+=( + -x test_statistics + ) + ;; + esac + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + local -x PROFILE_TASK="${profile_task_flags[*]}" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-ffi + --with-system-libmpdec + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + + $(use_with debug assertions) + $(use_enable pgo optimizations) + $(use_with valgrind) + ) + + # disable implicit optimization/debugging flags + local -x OPT= + + # https://bugs.gentoo.org/700012 + if tc-is-lto; then + append-cflags $(test-flags-CC -ffat-lto-objects) + myeconfargs+=( + --with-lto + ) + fi + + if tc-is-cross-compiler ; then + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST=${BUILD_LDFLAGS} + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS=${LDFLAGS_NODIST} + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 and bug #864911. + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross. + --without-lto + --disable-optimizations + ) + + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}" + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. + PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \ + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Avoid as many dependencies as possible for the cross build. + cat >> Makefile <<-EOF || die + MODULE_NIS=disabled + MODULE__DBM=disabled + MODULE__GDBM=disabled + MODULE__DBM=disabled + MODULE__SQLITE3=disabled + MODULE__HASHLIB=disabled + MODULE__SSL=disabled + MODULE__CURSES=disabled + MODULE__CURSES_PANEL=disabled + MODULE_READLINE=disabled + MODULE__TKINTER=disabled + MODULE_PYEXPAT=disabled + MODULE_ZLIB=disabled + EOF + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the Python it was pointed to + # immediately. + PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake + popd &> /dev/null || die + fi + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + if use ncurses; then + append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + fi + + hprefixify setup.py + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi + + # install epython.py as part of stdlib + echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + # Prevent using distutils bundled by setuptools. + # https://bugs.gentoo.org/823728 + export SETUPTOOLS_USE_DISTUTILS=stdlib + + # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't + # end up writing bytecode & violating sandbox. + # bug #831897 + local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} + + # Gentoo hack to disable accessing system site-packages + export GENTOO_CPYTHON_BUILD=1 + + if use pgo ; then + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/tmp + fi + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Restore saved value from above. + local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + local test_opts=( + --verbose3 + -u-network + -j "$(makeopts_jobs)" + "${COMMON_TEST_SKIPS[@]}" + ) + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/tmp + + nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local ret=${?} + + [[ ${ret} -eq 0 ]] || die "emake test failed" +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + emake DESTDIR="${D}" altinstall + + # Remove static library + rm "${ED}"/usr/$(get_libdir)/libpython*.a || die + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + rm -r "${libdir}"/ensurepip/_bundled || die + if ! use ensurepip; then + rm -r "${libdir}"/ensurepip || die + fi + if ! use sqlite; then + rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die + fi + if ! use tk; then + rm -r "${ED}/usr/bin/idle${PYVER}" || die + rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die + fi + + ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$( + printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | + emake --no-print-directory -s -f - 2>/dev/null + ) + newins Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local EPYTHON=python${PYVER} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die + # 2to3, pydoc + ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die + ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/Manifest b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/Manifest new file mode 100644 index 00000000000..57f186586c3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/Manifest @@ -0,0 +1,278 @@ +DIST rust-1.71.1-aarch64-unknown-linux-gnu.tar.xz 209839296 BLAKE2B da65e966a6bd8c6a8a13e5ab747da2a8d9b55f90fc20c1bd041ccc1a2f4e2d11d50d2ed9cc7f3a470e7f886ec8b891ef98ea1295491414d5afeae7f83fa3a555 SHA512 a2ea1383a6ea965e4b0c3a7c648bb357fb531a6984418756abcff3c526ccd9221a28aeedd11b65180fd166575e07a00151460dbc15e3b132a0bcac643911d242 +DIST rust-1.71.1-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 52d1fbdba32db7ac2578615fd10a3db1da84441274bb190624e517aec67279c7330f7c6b7fa0835d8e1cd8f578d34952813228a6a221e41c4193e9a079cc6fb6 SHA512 63cbbdd9a73f0223444565b60f59765a734633ef8e93843639969b96fb67550b85fe58079d486a927174f95619f0d6fdfe3f3b84d871f776bc48986be7965238 +DIST rust-1.71.1-aarch64-unknown-linux-musl.tar.xz 193170880 BLAKE2B 26384119108f4503d35f79fc5401c46e1eee326eca4dc6cc282949d2f195928fda5d3bf56c0509b04fdaa3e7c3c47f4ba44b2b82a60b02f7bc520360b0433efe SHA512 3e79692cd4dba512516eb48970dc9711448c33e1d7a5ebe7c5fadaed7f053ae9c1a8e6efcd1713f87dd84107a37b0fb21b1246e0d5c3e0dab677e5c7ed210825 +DIST rust-1.71.1-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 223d21586b07645d5860a3a023f42a191fc2490ad9e5736c3b2335565227780aa1f87174060cd6f87c4c873b965bb32b1556fb60fe70a7dc0f753409adabb024 SHA512 197197752e5ce110a1a96ecab8d1ae3aa82769a199c51b42a14b1f0749045a280f00aea0dd0653211bb941b80fbf43960d1e11766cf2dc35be3a34445e336423 +DIST rust-1.71.1-arm-unknown-linux-gnueabi.tar.xz 173870064 BLAKE2B 3c2e440e22199e081f6121513cf2a86b22ba0da08569d0b95edd1a69d890e191bda150429f4329c9932d45c44d49e8dfe1902513bb379b039dabfeb8bca36a44 SHA512 c59b1ba5d8bc29a2d1bb57f19e584af28ac92d8bbf889b80d443684e09a6249453bea429226078c9ffcc4d04a7a03f3605d82e3d8b412ca83720cabf5595a8e5 +DIST rust-1.71.1-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 38a5fe9e5e67298909d6a36e625b990128649975d47e544847a2d6067ff88fa63cc0c3e1c8e2c8697f0a0f39584b4e60cb8f29390cc6abad721c681a4cf183e2 SHA512 a7230aa7f507e5e4d71d2701fd5c1abe29e3c53109d67a5133fc32ea32018c6ea6dfe512a0e58acfa8d2c39dbaeee2cafe420aef4979e95ce9d62b7520b9b01c +DIST rust-1.71.1-arm-unknown-linux-gnueabihf.tar.xz 174277632 BLAKE2B c317f946f4fa7b4e5c4e39bf4035108ff1a6085420f932eaa532cb89f15babf4b80a5c231f9980300d4ea18b6dd369bcda33bdceeb7065b03fdde41a01165e76 SHA512 ff4b6ac0e6691820f525a84505a3556a729cb189700209c084e9fe981bd076ad7ec30fb748666b7f51ee901ac039d596670bf782c60018590980ff1e61cd396b +DIST rust-1.71.1-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 2fa6e24ac4cd9ec4772655c5e8b135a0118c38ebb41462940669df0c65c0091e60306a5a09cb020dcdaf06aca7b2c8cdff904dd2a5f4ca87acfbc5775adf2b6c SHA512 c9cf9c1f8e19fe0576dd805f21ed8afd1d3536fa8ba00fcd39d6e6638198fca51114a8d99cd62164d8a0aee6bdf37831e678f08241fb8ba63ccdd6e8c7225717 +DIST rust-1.71.1-armv7-unknown-linux-gnueabihf.tar.xz 178239136 BLAKE2B ae0ca46260aa4bb60760812f50e606ecc18fc14b3dfa56135cb6a83249c0cd5e0544d29ef5eb34d3ce45e53552f736c8db2928b3d65d847a9b3d61be7e863ee2 SHA512 56c63d4e9dd99ba3604bec5c0f0d8c2a51a93c0d11beed721d99cca05b20310f4439c049ee5b3ddb6e723381e315ac991d9a7327cea86e852b6cfca4cc7f9a0d +DIST rust-1.71.1-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B d5cea850a1930a316574c977542e7026eed67dc244d8857c720d9de168f39b5437912634cd5ebefb63e8d58200e7b11d69b8c6ea0e257642a0df7c1ae8026c80 SHA512 2d06f90f916e4f184d536b695d123628a28f452ad4fb3da53dd3fcf5e013df594e8ee6eb1819268bc5b20ceb1c05d6d3b68a4021e60c73c7da934fc05014d2c1 +DIST rust-1.71.1-i686-unknown-linux-gnu.tar.xz 202188608 BLAKE2B 153f94771d68ab8bc25d1e38afea206cdd182a1ca0b7ea8616b932617c2368acaffda959ce3220506d7b2601b5120ce65ab83fbef167429b1b8a76108f3137b6 SHA512 e835354cee992f751d994943718d8908bc687a540b91b4b296962ceb0047d447e5b12a7cfc6661de8a4ee9c90722f8274c3e6a37f6842e8012f883cff32ac2aa +DIST rust-1.71.1-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d2e47ce2eaf7d8c16a12630778cffb25fdbbe23d978ff46d02fb6363f6ce45a6295cb948f7b20c9a966d14f832a38e3c53018188b54fcfaac7b2df85508990a9 SHA512 2e5d191ba550965de6962c595c5dd063f96603522eff467433f3cffb31539e3406c1a62e3fd37a66c4eeaff2c1200a33439c6ca5133dc00930c89c7713ecb0ee +DIST rust-1.71.1-loongarch64-unknown-linux-gnu.tar.xz 158000652 BLAKE2B 6ca5a251202330755f53eff6151abb724cbfbdf190e19d15df009e33cb17795b74a491e8a6c040ea69fcb603d19b7baf6f1f47afb5a984bcbb6239640748e003 SHA512 be33401e6f02669102e51524ecb2a4bcb75a539084ed0e04f80bd389be8432a7f3952304b21397fc1d6894d86a263da40831625a04b72536dd2af79b0d2e1845 +DIST rust-1.71.1-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5b744b2bd11ff69ac0c66af93a80c0c9f4d6aec465109033a8ffc63d2a1a8bb0e9cde1d3e9aa65e27287105673230acd07511e58112b7c5beb0c452323cea72a SHA512 a5d71f2555bfda22c0366a35032ab902071e3c75e781d1b1c5d090b6b6dac78046b31b789f71f9ed4adf80523903add324c1eb8e8f8a7b744d6a7d8cc6d3be68 +DIST rust-1.71.1-mips-unknown-linux-gnu.tar.xz 152451900 BLAKE2B 86804480dec985aecedec561707ce7dd2dff5e85b25da940051c2d89ae905b630ed7bb0df9e9bf6373917c5f6f513049b8be4b0b673d7c0dd77d8095700e6103 SHA512 0d3069e17c23e6651bc6dc2f7dd4de6b5b54e24ade5aa81a8ddbaa5f4f13c26084c3a04d246181d49fbb15cedede2a5d8f3e4a21080654a257c1b4285dcdef27 +DIST rust-1.71.1-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 217ca15420e4ccce2ea287913eaee07b90a1ec534a805b899032a8ba18f7b6a75feba873b8fa773efef32cbb0b265da08ff026e6d387c824e63000b04e7419b5 SHA512 2e0355d8364a9e6b711012fc8e1f227c76290804d967def666ae30e899f52197da06dc1498191f6b9de6868730eb8883ca0849351981efd82a5b9d12da9681d0 +DIST rust-1.71.1-mips64-unknown-linux-gnuabi64.tar.xz 150685836 BLAKE2B 90496f5f9b3af09d9da3b45913a57ac2b1035838cf4940d3a6d4c2fb6bd1c5dacc86b144e8be851a35bcce19100ed2cc800d840c3182b01ea1954353060d56d4 SHA512 af97988af615c7cfe08db0424169cb133f97914fcc75a76356ae3b0eeac2c8eed436208694d218a75879db163963d87523d23d6ce5ccc91688679950536c13df +DIST rust-1.71.1-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 04665afa887c047d2e888ee4275faab1efda5f7dbeb4222c056af53c756a00ccfa5cd0f5a792df4bff325cb870f50ce6cb09e713afeeec201050eaa14dd6b0da SHA512 560d1e474e177cdc28cf94b10f72785ccc0db748a185b5bee8ab0c9598d3ef7152f79bffa7f11594be06ae07c3d56bc8176bfbd40284a6888d20e77bd036b9e6 +DIST rust-1.71.1-mips64el-unknown-linux-gnuabi64.tar.xz 153800316 BLAKE2B 63787c2fd44406d45de5f153259237df8116aa5419d241c92c5e9509db1fdea6fbfa0b119bca83cbc23a2abdfd50365de7c7e3f37bb0f7d402382657c97ad226 SHA512 a6c8399f2f4e56340d1712c71f03ac87ecb8f3694f0c4f1ce64a1f810de850f5ece7361cd93e8881d83cea2094a82a51f0d54cb795c4d02a5a1d94ed49b8f0cf +DIST rust-1.71.1-mips64el-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B b69e13a4dd21447d7a39c24f96e9416c7b68bdb4af08c1ee7e312d78d2b064d1d67e397c0f04f9f8c68498ff3934350729021c9a4ee521967bdb63f53ab08c17 SHA512 9bcf27125cdf776719c87adb2947b1b9965dd3dcb231293a225e2424906e759f97ce2972d2f7ecaf69d708266303b8dc776c3e119c070e1c21ef59fb90405050 +DIST rust-1.71.1-mipsel-unknown-linux-gnu.tar.xz 155924032 BLAKE2B a4862cfd02053dc8303de9158929da634980c15d8fe32b7b51b316e6aa83de1f0d075ea4acd250d5bb210cb269bff373613bd45eba003f38439e22831b433dc2 SHA512 96708e1481c4790d5c2938ce7664cf83c2b9295023af017345ab0c9afa37bd43c2db93b9e8097d8d1aa6c913bab0db9324f057ecb25aa65bc16295cc625f2bdd +DIST rust-1.71.1-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 90063d27ffb9071f6c10cc54d17073ea79436dab947b7f8f0a8f2d7c0671edc66f7e45d5954af77f30f8c3a005d2951af56f129d311cf328c9987bd5a5ea9802 SHA512 a2bc87f7c1baaf6f245b1d008162a1e5f52b6f949a3e06f69a7ae22315fc7770403ace7289830cfa60f6e66fabbb23352fabb5f0c24be05d58f4f891a8d6e956 +DIST rust-1.71.1-powerpc-unknown-linux-gnu.tar.xz 172809692 BLAKE2B dd6e3c96d168dc2ad4b3bca38a42a2b3c5c0ec5555f042ffb9a7e1d6430bce3659953c2c6c5454843ab41e648e479c5cef2645f2ce0bafe72892ff1ed014787d SHA512 bc2a8b9fc8494cdbab89364c15212f7f8e9af416639f9dd05cc57f0ffe18288be7ec489d18061387c43a2f8f4ab1273bcd7de58126546b59a42ae80e9a2c45d8 +DIST rust-1.71.1-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 620a63d1732cc0cccdc3bf6b141e2467c0ba50668d72be44cf04becfa9e0c30e5a5a4a7f5ae39fd1321130703bc6522c78e9bfdb23e7b3354fd760eb4d118991 SHA512 f6467c3ab3694fb89db06c67e6fb8afde75b4ab86752d9c918c89ca6bcc8914bf45da71076142eeea2dd10910edea42ab0d8144ff7b769b22edcf9bdb447e381 +DIST rust-1.71.1-powerpc64-unknown-linux-gnu.tar.xz 172399116 BLAKE2B ebc82664a4e9f651e9111e862a9cc341615526c6e7af2b181a653eb7d6a0c52156bf1cd35671c6e5aea41fa2653f042a9c865212bef6e8844a88fb9bb7a8891a SHA512 94395abdeb1615f594e4fc86d8bad85a01bbab05893bc8af7890ec509a2006d51c1a8723d3cc8082a214ee851fe4ba06707e01c3f009ed340d791d35e034341a +DIST rust-1.71.1-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6d3565b8d9ec5b6d719dbe06120469e2a6f1ac42708bd7ef9705e796f0a4c528929a3984a7090a4da6521b09a53b48db119dc388d66f782f01a1ebfa61c8df21 SHA512 847fa662ddf9234a4a6b73e9d515b06fd0af0f098a826463ddb7df406dfdb25ca7b37110e90ff07f0a58cdf2c42755ccac70f057243b44f3b733ddc449cbde2a +DIST rust-1.71.1-powerpc64le-unknown-linux-gnu.tar.xz 183620460 BLAKE2B f8c562813364a2ddcad26287f227ea93af4d91fb083998835e469a676c9be1c0262e88d0cb7e06cdd1293ba8807334744d4e4000c58d9f34c07fc851b0e31e5b SHA512 f8f627d847e405c9960a01f59eb1e14aa647e42004cbeaabe734c110827921f019cc01bea13f2ea0b5b3c2e4391f60b6ccbe4298182593564169cce0db6c9ae6 +DIST rust-1.71.1-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 2c09621ed09918bcebc6561f7f12e387be7919568929d0215a6bc5333610c158acca2998ff8c918956d8289da2f3e2ed4850c0ce45a9f1d85a304063eb8d5671 SHA512 5f5361a954d4b0510d48cf5b2f2bd0722f9d99a7b28aab8f3dfea9303489d9b60f6e20ee4fc61b74619d3c0fd298ab9bb903b3509f55c448886e428ba9e28d71 +DIST rust-1.71.1-riscv64gc-unknown-linux-gnu.tar.xz 164813572 BLAKE2B f86f7443da64afd416ea3119933a05a7638ee41576e9d761f491376b781e9362992223186109a6b930ee8a012dac5c37547448dcb903bd5bc480b66f8fef3123 SHA512 525a345dcb09141e4f4f5ef911c8f8dd63180fab956752ce0e9f5e2821c89603a2896e7042e019f61ae8807052e96b52bec492f49508dad2a351ce1a9c6de79b +DIST rust-1.71.1-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6d37bd643caa5780e80a51876228bd12175132af89f1fd35dbd55f8c5544afd21c3e844027083d9cd5ba48bd41c3dc8c1427b400c2141dc3e1d128a6f5672ba2 SHA512 ee22b054810c12dbd48e9ac4006d74f2545c5fa090b80f831673e0850e16122569376380d1edea6c6195bf76441c0751ab52c6a143a643e656af0880c12578c5 +DIST rust-1.71.1-s390x-unknown-linux-gnu.tar.xz 195515792 BLAKE2B e8618c69ccc350c7e63461080a3768bf4d7b26f57e75a98a6e62625cb0deed8cf93dc00e485051d01b9996c6b48d3d1a84f88d5194b618d06e926c5543524071 SHA512 7915806421c07b70acf31bab86086981dcabee08e826668c8225db68c4f895fd16ba3e16b710416d2b96de3c30a9dcd137107a04ced21972d3fe52500e56178e +DIST rust-1.71.1-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 4266dea5182a07d4ea1f28e6a362a2233df684836af9b5d2b78e87aea2626575d3af6716868b1cc10d2f38d77910d845c3997da7bf93fe865d8486d63dbc9e1b SHA512 a70d2d4592021294734ca9e069ce1f22e2531323524e4bc6477efae074026e0685e31c1d06328e2b17eb87a27dd7ec6793804c87280a002733b87a676c374729 +DIST rust-1.71.1-sparc64-unknown-linux-gnu.sam.tar.xz 57363076 BLAKE2B f1332698c8d36a853f11a2a5b7b9ecf6461bf7b505c08c1fbb6da3e851251f1b081969beeedb20eda3214d08054a8fdd544fa084a69d259b6b71b4dc1f4e1721 SHA512 1614523649f8d27569440ea03e9f4ad40eaa6ae826bf89f6616dc1106c99897c197e56017d16843a1b5bead40fa1f16d8603b91f28e41e6bc38ccf7544618ce9 +DIST rust-1.71.1-x86_64-unknown-linux-gnu.tar.xz 161080376 BLAKE2B 40bf80551c032dd62e19bae5a235575c5d8894ea75f77dd34510499b4f4e779e27da0faa98aaeacb57f73e9632ee90ff0f60f167108529ade67198841215d109 SHA512 15c5ff75b02357beefe717a36e7755d2841778ce4e39020d2b920239e4c8d0adfc17ee65de7bf42493d287bdfca194189f3276adc0374ac3d1a6af63270ef954 +DIST rust-1.71.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ce029d9af59f26535a3fa121f20672f7eaad5019934457ac7ddc059dafcb2c3a37e5683923d4bba3f3a735805f11092189cf84d0a6352a5f9f475bd3eb00cdf5 SHA512 0376b16b9c845738c3c291ab2a73a3ecb20cbb8bdd0820568a0683c84b211e639413b3046d756e607a0f1b23695c9dcb351711fcc474e6faa8fe3098b1fefefd +DIST rust-1.71.1-x86_64-unknown-linux-musl.tar.xz 232096648 BLAKE2B 7f4deafa57baa300f037ce3d9dbd101d5d28cf29368c4b2fc8e51799e59382155076aa0a3c0b6fa0c076693fd43dfaf80ad7685cd44233d7c31037c091a90224 SHA512 55b507a30d62a36aece4a2c2cab985e09d9552ae331c1cab51d949777261600e61d4f05ca1e81fe8b37591fb91939b1cdb55e6930d70e5126eea1a78caa74eb4 +DIST rust-1.71.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B d4a9f89274bf4b0004248764c07c7f82f8708f81a826d7509611b75e51d280707a75ff2c9d6b372e79259f7086b3e962afe51c3f0b98dd3fdd4feb683783c9fb SHA512 8be13b63b48740bec80772a826f06a012de58b1294f87374d7b4c844c90f3093ffe86bd3f1d989987696aa095302cc4644e3137fa2c9e1363c9ae8c3e1a05268 +DIST rust-1.74.1-aarch64-unknown-linux-gnu.tar.xz 216291888 BLAKE2B 522c2f2b27f9ff81968d7aa536d2f909bca4e4ca6bb341c08227c87e7f25d9808ea6da74ae1bcf3a7bce4165f1d374fef21d352bff37b7241d19d50a624a08e2 SHA512 57486ce7f4ab8fa6f8091817790396df5b9cd31b4c9901b9969fe5407908458fb384423097ee27485c03dbd30d0cb15c3e8f0e5c15ef4ad17662d91685e8caad +DIST rust-1.74.1-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a60c4878f4441029f1f23e6a9a29046fa2d62c1aa8bf33c5ae4c0e986d67ea64688a3fd22bfdc01e99635cc567d87a94fc9ccdb8e512cc4dc8f0378d22eabbfc SHA512 3b2c3d1ccbe5d18c4b8bad62337ddec6306bc0ab654fd75962403f79b86f669ede6f8754327f8375cd4a12f74f3f4df4e183a85f8459de015e6543e17ca80767 +DIST rust-1.74.1-aarch64-unknown-linux-musl.tar.xz 196804076 BLAKE2B c866cef7698da867e8389bc6d460f67486e52822bec516256a8170380d8a2693732c18cc18729b980278fbe3c6fd2d21f1470fea449e66458d5481ac00728824 SHA512 54b9574f624dbb1b8399747e855eccca38dee76c2b59d71fbe41bfb05c1a784bc38d383e7aff0ffb0b8c2c5878bd0f8806e03d1a3c2a6bc4a1a9483d711641ce +DIST rust-1.74.1-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 3be239b8961901836a9431a3084e106651b08da7cada74e3ba8f69ad026e7bd88aff25dab307eaff81c85dc7b5477ce5085a56f2aaaa6fba20d6b3ac5db3829b SHA512 b7e09b1ca04732a04a9f0b63cd24d4cc88e26535c5974d00ed511b76c547fef1fce4f4105fdb3d60cd11dec6a579f55a97fa388085fcb8bb3f51f41d96db666f +DIST rust-1.74.1-arm-unknown-linux-gnueabi.tar.xz 180529732 BLAKE2B a61ecef80c1541df30b247b95d565d29222afd4915e32c64af67971e966ed1d4af3f28debddb2f21f16524013e20309f3226b3a18414fd1cf2311aaa07447570 SHA512 2f0e0ac1e10224e49cccd636c00463d009f1c99ffb742dd9774e3722e421f90d9ee207b78ae348a0c2f7703b9538c85db3fd2eca160e2098079fe061fb2006e4 +DIST rust-1.74.1-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 72a01b04050ab3dcd841df10a08c8f9fb7a2c66000b3b035718e4b9cf4ed59ce7c3223f11f9f9ef3dee00260752b0ccae99e70eaa5f3a7e6d2d9457400eb74a3 SHA512 5b399b963c5a3fb0ae0b90523cfc02ea7bb5a5966a48355c937167ecc291c23f4ee8186f09952c913dadab2c9d29f2464e3aeaf077f03aa85964815d1cc27e89 +DIST rust-1.74.1-arm-unknown-linux-gnueabihf.tar.xz 180572504 BLAKE2B 9d94a722a432ddb86276b097fc54926a88b6d9be8e891c84ab43be5c5da0e8b9b9a50c6143959878a479833ec4b85227bddac42bdd391a285ff5c6478345b3f5 SHA512 80882828ebb0d1f609fadcad6e8678ade6dca57dff9c5967ed18b6efb508f4b843b020c83f0fa52f21e506353fbb9eaf7073263662dd75725e85484b9b171804 +DIST rust-1.74.1-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 4536b990d631d2e6874112e9dbba7cf3a618be577037ac37f2a11e0188eaadafcd552a21d8239d8560e0ab3308a5a2bd4d289055cb58a29aa5d11ba08cc7929a SHA512 6166bdc50e94eac125b66ad6b3d44d162515ce851d67fc93d312d0e16b5bd9e924cba35367d6bf89c223589c80bbb5562cd1c4e7c7b7bb5df51297f766f0b6db +DIST rust-1.74.1-armv7-unknown-linux-gnueabihf.tar.xz 184280672 BLAKE2B d5b409d2d287b95b4e5cff334c9f56a0f357be479d4dbf428b1c631a783eb694b857099f04b3fe7bd73e20372df3d5ea9afa9ec87d56600962fa1c43f822eaa3 SHA512 208c82013ba23716fcf2187cad300c35bdc5ee90a646e6dd2e1c72f3a5722dc21e7e5578f6a56f5644c0641b10fada7f837618e0b1ad68a71ba8efeff8a735bb +DIST rust-1.74.1-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B ef11fcfd18f023ea32aa48f09bebb967c0f1d738c04d4b407ec2955e67f364ae420899ffab3d177491d97102f28bb37eaa32615942fcb7e0c14a2823affa7538 SHA512 7f2a556b0bd294a4ac826e6d3f7b0fea161b36d9c87eb44270cf024d341ba4dfaa6899bf07a24ce3cb9ee37ad568b3b74d017681d386030c22515645444617b3 +DIST rust-1.74.1-i686-unknown-linux-gnu.tar.xz 211724720 BLAKE2B d48ba506d42406277c2d33cfc8d6c98775b58d7eb1c04cd9597dcf87d58116d1043468ddef3bd05e30fe3ead09df696c2f1d2143b9f0c5a244d51950a1c1c30b SHA512 ac0cd4f60f7f1c526bfc9aff310436764661c15789ba75dc3fd3b9454d357e805cd9fca49af4bb4c16136b72e6bf706d4a3b3957209e667832105adf8b7fa795 +DIST rust-1.74.1-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a89f1f8b7da7bc5598cb3ca9c257e8660592761ff4ca98221e160a14aa2a4ef55bae03c38c6ba898c432c5b6819045c29a3db41ef8c104694cd7d9e4d0857e10 SHA512 f2e29365922a18bb0a1d6f3664787b26b4950efcd5ca288f6ea3895c4c436c29d870a7aded83b6f6d9ad8603a7f5a1a5e1867df3a34de6c9252c1bbfa20b6034 +DIST rust-1.74.1-loongarch64-unknown-linux-gnu.tar.xz 161665796 BLAKE2B 2675081def9896306644c949c623643d999b3f608ef4745160a8f8c8d9de92c1762e4910dd2da44d07cef6ec9357dcfcf52d1a9291866ce2321c67698f0fc615 SHA512 fe43e4a65d47d1066f4b363b1b3e83029704ec61a13f052fd2f85a5da914c4d76dd2bfc9e58364f3e833a3b966ecc2c3ce3157480555911939497a5ace1e6a75 +DIST rust-1.74.1-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 85aaf2be268183b23b1e7917e062f3699634d4a0aa939951c9863e74b03d3d55ed5d6ef40def86352e82b32a95224009d27a557f8c432665dc299aa6d44bdd7c SHA512 a7633c018385ef65b3ef897e5b55769c3abf4178e1307ac81e3f18ec5dc72837a22635388a436861c5527aacd391da45b87de62f4a6284ed30630f00cc4b615c +DIST rust-1.74.1-powerpc-unknown-linux-gnu.tar.xz 176968064 BLAKE2B 5cd80269770368ad29b772aa40a34350ff11d3d931df82975506ab52604f8b12d1982ab420f9375d9758c829d89f18713317ae6c0d8a8cb37da1fc941ed20046 SHA512 2443cf5d22bb9bb0f435b3370f9bea2e1322e3f929b0dcf99bb2515a63215015701645e50af67045201256ccdfe3b1f8d0f713475e03c79a3bc5f3001299d382 +DIST rust-1.74.1-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0dbf00765b035a629cf044e64b5c4819bc1c7eecf919dcfab6db764aeea972a93382308e1815756016c22eeac22a0db75d4f584b7704ec57de9b984c1e52a2a9 SHA512 d1eb882c2faea41255b3d7241a441402f45d3ea177bc8853ad0e7d07a15f00ef0a2dec7390126cf3d24ee6b875aa11a26557368ee0ebcae63c7312761b118c89 +DIST rust-1.74.1-powerpc64-unknown-linux-gnu.tar.xz 176582892 BLAKE2B 21582bfe0011448b43cb7fa88fca9e98cd4a555ae1d147f86f7b33c8f5eb065bf7ed83f0b8bd44bee04c8d58a3116660a2e0edd85fa9af7000c3778365390487 SHA512 d95a2803a5c386c8575c242684688c078557976998c48b13f619f710cd4c29b962a1d257878fe2a1de16cf7002d885fe99fe6787e8a12837355dcd10b3a070a9 +DIST rust-1.74.1-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7d5a67e75e37d1d0ca47e31fa71128b906bf135056cf775bf04bc9667b1bd92fe1eabe7890fd1328aaee9ba5dd1ea2de06dcccae88a1c8a1aaa3b9c68bc94832 SHA512 72caa7f82862c85561b27079c3c1ed31372ec31f9692474a43a91fd6dd84e1172db0dcf215be95d27569139dffb7207c0dbc2f80a9c7e19dc6aa19d960a7c7d0 +DIST rust-1.74.1-powerpc64le-unknown-linux-gnu.tar.xz 187570092 BLAKE2B 5319e9c159452264f9b1a5982541e3cbed2c3b7279f6942424621f75d1c7cc3e67cb85df1ad0e8d34bb6009cdeb8796879570611ebdee4791b7b269c4735c8a3 SHA512 62f0c8667a2b93a043b87fd455464e476c8c05c4ec693e0d0159fc7b75a14b45fbbd6510f92d4d99dde90d59e0c430f200e8795405849db2caa09de53fabab04 +DIST rust-1.74.1-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 24b84c25550c8920eea2cef557f9980e3a8e18895eb08ee97837e61738f27e1e3d20a4926ee3f614c16c720044a0576da12957c15c7e9a6fb7b0facca62f33a6 SHA512 4cf7398718303920dee59ab43d391c09b81d636b04d760b759890b0231680a5a97d99bcf838b9f26529e5ed1980a94f4c58b2984096d86cdd5bdcb9d48c7a134 +DIST rust-1.74.1-riscv64gc-unknown-linux-gnu.tar.xz 181803248 BLAKE2B cd007830f59175b7e63e13688caf53a12d48aa2df9871dd24f5e412068864440a084baa9e927ee2bb6a008d4c586f19f149db9a9eabd6cfdc1e7ac9ec3ba4316 SHA512 3c05427de5214fd542a45ddef906fa179d487deec68a860776279d90ca644e1182cd98fa639b13df11cc2db495007abafd004a681ff13927bf6a7490c4fe494b +DIST rust-1.74.1-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d19edec415037449fa52b80a804fb505767803a805943d0acf1a9216964d7ec7ca108b3b578621f10c23c37cf71decac0a1451c49525d2d7850d52f18e883b95 SHA512 b00a20e466125faec270ffdddd3f96f07133488aa1c9e2e706e0408f3d7ad350812b2b5831226c77657bc5a8d4fc55e5bd13085ea9e33fab88e32b469f9c2179 +DIST rust-1.74.1-s390x-unknown-linux-gnu.tar.xz 200997424 BLAKE2B 31ba7d46ffc5388b5ebd4be9b2c74873ebaf6a8301d5211823a0677492de4e2ed0562971e41a3825dcbfe4311588091ce062fe1432ed441eb736d64c73f5f0c5 SHA512 76bfe267e4b6b59b823f29be175e9c63102f2dc5df060b9b7b5bca2a883c57c113416c531c9fcbf3ceaea0b8955ef864f572e64604b4b816c8e3b3d8d68c7ac1 +DIST rust-1.74.1-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6ea21dedc092abab913973752e6875f6b5a437ea4107d6245d2104c443c8af0f4af64d06211305968fc14ed15a628cee6a5b86701a1da42fcb2ea5afd166bfa9 SHA512 e155a6e7936f649eba413fbb07516e21216fdf9183f02eaef040002e2ccaaedbb399003b00dded7d7b54507182296a54455eeeee4b0ab48aae77e7939678a233 +DIST rust-1.74.1-sparc64-unknown-linux-gnu.tar.xz 56648912 BLAKE2B ca6b367c1f938e48686880b40eea92edc8e2f22668541de99318bff0812416f6fad02ac381785270bc212e43d578094ae3e34f8c59b648183620e1823de64bbc SHA512 617c1c222f8c2e50c90dfed81a64da8c3bc2079f926ab75d022e3e2fadf7cbda3893ced595ac8235c2e919a98ced5ee7f02163a9d165cff976190749c298e912 +DIST rust-1.74.1-x86_64-unknown-linux-gnu.tar.xz 155438320 BLAKE2B e33ac5c6f913e0eba2f92d46fbac255ef3a06a77324cffb1994b713a1b114f008514fd4ad6d9e7fa2ee860e168d90c574b80769f585a6f1f36e0c57313056e82 SHA512 08fdce8c9b35ab30e67d7ba932a105edf3a8cddb618dc2e7c5928d01afd086018732dcb87d66d1cab4b1468bd6e0a516459e39beb0514f2b78dd418ce530ecaf +DIST rust-1.74.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5bcfcc084bb7c4e3e95fbd55a8a0d6b64565f50a64e203862b8607eeb6d74cb5d0a6e16b9100a96286b937452b87b56554235a39da2739e7c71933560dcee74f SHA512 e39b200fcef34fc359deb9b0c104853fd33714ca8c417274ff6e2aa5ed76dc98500365455edc4defb4f55172e33912674c2c657eaa40b3d8451e75b7a23b38ba +DIST rust-1.74.1-x86_64-unknown-linux-musl.tar.xz 235698028 BLAKE2B e392e83b7ccade6cddff9c964162836552f90b8f3fd821348bfc0f72137f99e0c29a82b45c74893d22e0a42861c9413b29b97a85802737bfe363b1e694fd4e81 SHA512 8fb65ea5538c4a0865ac75561bb8df71d3703f1d4ed603f51752844f1bea02a9a52858587f3ee776a5ec27e793762a1b7c9cd845bceedd8a313d7ce2ad476ca1 +DIST rust-1.74.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B d410ff0019f43eca1dcf374803905921978e13c3c85a3597792a860056ffdaaad3a9503a0780080fa6ea8044cd542a2fec74b253b3b7838cb72be2385430dbc7 SHA512 68cbaa9828003431341b8d4a0b8451689c5eaac2a97633738c3f0eb957fd985e792b87a3a0d107f05d5bc59be9a08d047854b107cf2d2a23f31cd722251bfc4b +DIST rust-1.75.0-aarch64-unknown-linux-gnu.tar.xz 215543948 BLAKE2B 6d5de2260e4720275bc8c0ce23865840886e27a3cc539ff90c7b8c3a9c04368f2c2a2955dd7c3fe2fe5471492a7ecdf4c2e5a749789a059ad8178a0d70dc32f1 SHA512 7ccd4d605c97cc5a7dfc443ecaee23b4d7c58b0e9673ebd0f9174a4a123639213eb85ed25f19479ea6a818859190e673e0479ee80235a7e35a2d971a636872be +DIST rust-1.75.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ee4d716d905f654932ef70d65c3e83c573d9076c447b4e5831d1dd657be407621890d7a9858fee1ca8ab869420edd267f71d73948abc5861315ed4dc0880d18c SHA512 007e9b45b3b3957a8da7d01c45c5cc7d2d49942dac39067038e74b414ff32e810fd902b8dc7f7563b18c565c782b4e701f23f6d1cea397959241d3cdfd6421fd +DIST rust-1.75.0-aarch64-unknown-linux-musl.tar.xz 195703332 BLAKE2B a662f9402ede618e78c9899c9b01c2138b927286c0269e847ff4fd389a07029eaa4dd5242576457c8ed67b6b46eef26396d079d1dc2749884cb05334676435b9 SHA512 eceececb90e3c2fb19866e58619237b416777399c6212362bc09f784138df83edd9160dd29906ed928a50e0359b2d9471868b594d765d35c1c7d8d22760c4f1e +DIST rust-1.75.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B c37dd733fdd13617f6c4be580631dc78e40684c4f47d1e90f575e8aa1c122b36c1fd7182773944cf8cd873c84299a484c9f50a48ff70c7cf54e4b5becb6355cf SHA512 5c35f04cc4a58cd29c1d6e9a5616937492f584fca29db099ed1d59442e76700b83583b1d41e7ce4815187c7092af2eb6f307a959e8b7a647818c9ebe84cf4c8a +DIST rust-1.75.0-arm-unknown-linux-gnueabi.tar.xz 179835780 BLAKE2B c532fc00e99c6428947e5335efe73fb979e66fd8d52f60e9cac7040d253ef15543171f74c4841ad740d2d334c0b2305f59925e42420ea0658307ad434186a715 SHA512 9d2b398cf97ccf8b70a82c1d03322c1e432f9bd4885d8a42ec26d0d6d6095b783630d83b8a9287c77d8d57b7bc648410273460ed6339e9d254d1bcb81191a578 +DIST rust-1.75.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 5ab700ba8898ab1211b20bf1d1a89bf3e4223eccad6b0e816b113254f7d44f23a03cb7fa9fe68386b0b18ca57d71f39b28b4328f072037058c301526d760b063 SHA512 12d5791f0c1d092b52862786ba6b80031607ed819568734d904e553bc24677b583c64e93cc0cd05fad2eddc7357b21c5d15ef68d720b0ab037c7787f2a47eea0 +DIST rust-1.75.0-arm-unknown-linux-gnueabihf.tar.xz 179907476 BLAKE2B 6ed49db0214fd8b35e4d184337b38dc8393f8baf2958bb62308125e6f8e2126f0aa19c8d44fed3475b7818b001447d69267504ab3c96136e257c37db5d2c2285 SHA512 61d555d9c33c8e1647338fdfe24fdfbb42e194ce4995939a58bda6c46f4b857a058e344e714b88435a7bdcc5ee4a086bbaa9c670bc01de45249ca8376ec47c80 +DIST rust-1.75.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 9d5ae3c83985aafdfd1dda6c1db4bf849b4ebaf91ca71ac7249cc8c89de2b3135e752c21850b20c45c5570bb188db1f8513e1df072ebbdd700c37b3ef5f22051 SHA512 6481cfbf21e108d440c8836963d752496eebdf6018b7439459ea079ca82fa05bfc0bd423594e3537c7b522dce05546e59c125eb0cb24ef4db13ed36413c2c1e3 +DIST rust-1.75.0-armv7-unknown-linux-gnueabihf.tar.xz 184210428 BLAKE2B ef329f05d143590d91cba77e7b9a90a977c316e9ae2d8593e7f0247a5db00ca0115c6d468da5394b36e6ce64b2716a51827f39fdc4a34dc16c9220bf5690f042 SHA512 77bfae1f170cd4b2e85a6cc0e02c6f9d621f386a4c0709a2e99c4383479f8979e067d0e92ee7d267150bbf36bc7134bc053afdff7dc0ad66f289aa182755b1d6 +DIST rust-1.75.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B d0a3ebb883641272211478bec1a8089929be0107b05b0f499d71f96515941f7d1e18870c8685f77ef2375251e6f1484f675bd04d5fc0d544854f15ba6402f0e6 SHA512 79e631dd0c44905732ee312486a7c8233440120abeaf40172172e9d5ef0c9687469bac2693ccc2aeb63030590167d88e0fb7d912663dbef655e54ee4cbe9a323 +DIST rust-1.75.0-i686-unknown-linux-gnu.tar.xz 209938900 BLAKE2B 0c9afda24a93f3f35dd779c08d65d6c2366c916a8a3ce6633cd5502bcdbbba537743d95b76daa29d0b4ed3a822915cd5516e864b911bf354e7436745d5a17021 SHA512 242775555d7d38d9aed83018f0d0f8f5f03347c07ee92751de445826c08bc66c24f8601d83eb79729d001d63e81a5b1e27dbb5fac724d80d49e6430685052ba5 +DIST rust-1.75.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9b7d778b75c2d0a6f43f48345cb4735a9d00d457a1b4d868f777eb16db040daf246459620ec478b0632ee0428e6215e5c39d819608ca800dd065b6e95b13a77d SHA512 f307db41c5e380dd023cfa3e91eda98dd1af8004d062fcaa759c4913464ee01abcf168f19a9fdbdda6dec7f718083f4765eb4296614de4c1fb6fa06144116297 +DIST rust-1.75.0-loongarch64-unknown-linux-gnu.tar.xz 160649540 BLAKE2B c96a90d28e6b71e2e5a5bea8f591e6b472f63bbcc59f181800e87d4400e647c8a18110ec50c7d6d10c8f460589386e1fbde6273ccbccea9373813c80f6612a2b SHA512 04b601e96e1fa6a7bc00c7d8463e7ad1fc4fb1bb46383e797189ecb972e23535ff864e5379c56fac400dcaf4c42923b8a5c4fd9aa08adb52bc1db8341f5254f1 +DIST rust-1.75.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9da9a6da9b631e72484a3360d692860e98dc77b74e55cf24d6a6a271e9eaa4787ea2f30c38dba483b18890500704319c1dd34b185adf2cf6aee6730bda8d239f SHA512 d6e20fca261aa2c81c019fffe46c7708b58146f9488041419b84a381761a2cd27606d78fd0f6b5e5e79945e1dd76776d54c335ddb453172deab8bac2c3fdf904 +DIST rust-1.75.0-powerpc-unknown-linux-gnu.tar.xz 174918688 BLAKE2B ff7c03e23f8d21dd8f4e0ebaa958fb97ac7779459ad318304070da0c1d98d832200d20d9331f758a33d6131da387af830392e8b34c33c4d220ae49bc93d7c060 SHA512 7a836a7d2ba883388025693044e59af34b2c41a4ffe93def5ed161bf012fbcba7da81cb521217da142852da05503b18df9a965537ba6ba33ef92f52cada8b7d6 +DIST rust-1.75.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B aa30bfeea014f600b1e3c387476a28af619bd8d63f5b6f10801cc15ee42deca5ab34d3470ec4f07fdfe2b8548f580ff6a63a89c74e1c53c7ef8cd73ddfb69272 SHA512 7efb2c4540a4be9f712698e7a9a905462b2fec70ddd65b9a6ffd28119eb595514366451932c888abe1ffbf93aa8b05c33bb0560c47b478f5122bc87be1c3bd96 +DIST rust-1.75.0-powerpc64-unknown-linux-gnu.tar.xz 174640484 BLAKE2B 768ae78a073b1a7614594ec1f6c381d7a4a9b4be14e548cd5031ea011600755c1934c442795e05f95a720a38c155cd18be188cf7e4b6417d924edc9c2a9076aa SHA512 f83ee23aa8eb7a511984b096876cce60415943d729c77ef4b4cdf0b0f9f8088082058d10881d5866d81a0e94c8515b3966de5a41dc8916d75392650715a844c0 +DIST rust-1.75.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 2bcdf4419fbf491fedcb32a7b54bf2ceb2aaffe0319d9e15f7eb07997646e11283535c5b2024f2785398bbdcaf586aee0ada7128a47b9b8fbd8ffa9e7d0607b5 SHA512 89a0eb5762d49351cfbadcbe098243095a62d41381ea48ebe8a3bf322998c6a46a59ea30da29c03291738fb3d04cafb3c1f57ad1e9ffedd68b4bc1516fdef66f +DIST rust-1.75.0-powerpc64le-unknown-linux-gnu.tar.xz 186507032 BLAKE2B 49bfbc50e087874b844a7292fefabc0df5217751e2391c44827baf3e83bc0e6a6ce9b392cca58c5b8df6f7f8503110609667fcd9b34e84122016fd0d8df29058 SHA512 536210c00f9cf4bcdcd5bac308954afa4a1e7145844914a5b614745a9023c04273a58ba4ef83214663d69a0a6fc941cd4011349d54e55d84bc090628a7624874 +DIST rust-1.75.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b7a48197f9159a6c5d46306808d4ebd17b492669745a941b5db380d76d5ca78095f4bf396804caf7b55bdf47d79b5e88fa2f74aad999306f586e62851d7de029 SHA512 27d86a35df7985a626b64ae7ec05b803a7ef5feefad476c3eddc2d89fad44fe4e520ab29bb27cac8be0a0f3aff7da85e45ae8fef15f2afceeed4962933869e0d +DIST rust-1.75.0-riscv64gc-unknown-linux-gnu.tar.xz 179877936 BLAKE2B 210b84fe6b0729f52c2dde492b4408f33a7661ea9a40daeb1b2b312788f2c4dc80ce54ca72f08098e8575215e7fa7500694142c0448460bf8a82b2761c236290 SHA512 7cc11f07552cc50e78a2e90c0d0da1a62fb0547f56aa6facac4791ef81e7d62a2d66f3cd079cda91e0db1564c2931074ae40c8c142dc9cede1f9c374379fe49c +DIST rust-1.75.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 8230c219c9cc22c93fc25f023729e87bf5e725f0613cc0a1a205a671c24beecc48997f824e128b56e4242369328666e355fb5e630cefa6339b39ddab61ca273f SHA512 75820f06aea67b3731777d5b7a0cb907a829b65dcabb4ce2fd55bff52837f6929239be6f8c6b303b86a352ecab16d38afde3ef9683cf7d5c4b4046231c9988c0 +DIST rust-1.75.0-s390x-unknown-linux-gnu.tar.xz 199359500 BLAKE2B fffc6c690c4ad8a9985ce8d2b3e6518787b474e47cf1d5a634f38b5d9d4017ac8f5f69206a9229298dd504d2ed2648dacd2d09a8512c008678033608231c2d7c SHA512 bae263c19a59347705959bf2d285420d2074836adcb92a74d2ec922be2ce2f8aff6f758509701a2136473301654bf528b7c1c2522fd7388f5669d1ed94324c50 +DIST rust-1.75.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 74cca56622367225f8326b60540c3738adb2ab12a5e320bc85b448e1cd2111983a0816188dd8767d2f20db0f9120d5d1bcc5393548f1a18c828a55f99e4c50e6 SHA512 00e0181fbf6ea1ba2035b368f3ea143f270f8a3c5e41e441593cf3cf072c31b3874146de8c2c51e3eef5c8f0ce8594132a39516d3f614d8d5f0863b546dfb746 +DIST rust-1.75.0-sparc64-unknown-linux-gnu.tar.xz 56499524 BLAKE2B f2a801f8f6fbff49f0f344c6c6d9bc3d5d6b98d030ee8c3d2080b24c6dfdf1992e32f91758954b57b34188856c86474a04f38e23bd2c287e5043c1854f59cfdd SHA512 464f55e76db139d43f4f1f22f1591f774fb2063d35410dbf0008fbe51a7d7b65f04a8839eaa869a1c1ffa061df344c29f41ac35777aff85d84d737cd536f162b +DIST rust-1.75.0-x86_64-unknown-linux-gnu.tar.xz 156249584 BLAKE2B e6ac90854f589c2fb15144bb4db07a9b05b72196febd07c9de223c74c05c2637c832505f1135faceed14fe8c8bcad0a5205005540faa2bdf0f42949d934107c5 SHA512 86d1a5686f826c8f43f876c4cef42e9483785a37b1aaead73dc64a1ff64e7a025a6771d2e642771c6c847d717c25c6bd2560a2b8b59516a55dece589580b2534 +DIST rust-1.75.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6614cb3ef782c917e8f7fdc990c5b82e8fcffa71e075f10f9726f405ff566fd963bec64cde4dd7252d9d78e09a184b8ba22d15cc87662ad987cdd37c881d8288 SHA512 bfaeef4cd7643879991955fd33f4cdc4c34afb1202cb77c0736434fb735bd215d18d1a11c25f04a7f2514640858a36832e5805a5f85e92d8b7076aa18607ffc3 +DIST rust-1.75.0-x86_64-unknown-linux-musl.tar.xz 234151836 BLAKE2B 9461afbdf26dea19e118b35ea7ef1ee60c22f601501ae6a08950658598a74a6b3179cbdfd9dc4748a0c2485af721b371e5fb523f27e7d7d702f94b532a70437f SHA512 7d650a29c5d14023a3d7d606b7bac4be6ef7988a82525f02d7af9cf3895bb88284442b8042d27be69689f4bddaa5c5370ef7609d18849986860eafcdf89d2d69 +DIST rust-1.75.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B c222d0989518602c0ecde9d21dbca97e9e60d81083804d1d8b2c6bffc8114af78570fd384eb58e5dba1bf249b99300e7f3f4067c1a66c0cd9fac60443f56f751 SHA512 6f78913e34402cedb37f4a54491c65a8bfe79e535e4e40516f2381bc27783cc7655e9252e7701813578c8ffcaf6b301e61ad32917a475d4388fa472733b21b12 +DIST rust-1.77.1-aarch64-unknown-linux-gnu.tar.xz 214607592 BLAKE2B 6ebeef47a62eea181808cb2df8d4d01bf1804189bc67e95f1e2091b4c95a7a6d26c4f4c822c312c9e5686e9a15b425f74e345f26e962045b7844b90154a56f53 SHA512 8a3114dbe43744bfec68e24f0f302704e887587b4ff8d22bfc59067f5e952f7ff1984b8f4a663ed8f89001629b82d620fa6b79bc316a6778c968767a12dda592 +DIST rust-1.77.1-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0d0878a65ac1d2bf84cb614d56ad45e6d18a12ea6ec009839711074e64f9a42825163996ab370456d62005457441b6270c0cf995a0b7f7d32adf718442bff72e SHA512 70f2912c72af705a71d3402e755a8fd2fa8d3a21c2577b8e804a5f35ded57b93520a8c155542acf27022325e2cd7357c0dcf465627934fb23e731c961ca28123 +DIST rust-1.77.1-aarch64-unknown-linux-musl.tar.xz 195295732 BLAKE2B 9a1f0a9de62102dcfe17140cc181f960bfd80f4f84aa6b6f33fe7ec53db20f3819fe27381dbf2cd173db04111a6bee1c062edcfb186ecdddafe4692b5a3e5e63 SHA512 50ebc645127bc3503b97a74343f588bc70c8d24faa553390bd4849570be45dea7f113bbf28da70520bc33ef0be987d4390e6c5eb0955578530cda94c8334cb59 +DIST rust-1.77.1-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 6ad11b9ffbfef668fcc5a3e7536965412e89c1f3051a0410145838813380ebfb475d60d4079ff3acce497e497f4c923fe43d6814473833a6365778860f8318cc SHA512 9cd1617e9f416a70ede723d6809ad6a6afefda5f1cdebfcf62f80b4757c4fe0a90f1977828f707e7d77d0b581d7f170a304cd0a4fa062b5ca78e3a32da03c30c +DIST rust-1.77.1-arm-unknown-linux-gnueabi.tar.xz 179516112 BLAKE2B b7bf27ee951924461e0d6f98a8d41a2e2ebcbbdfaec5f2c3dd096854c375d68a11eab3fdc1a23a5755138fced76d3d8e2ca53b97e376d93b780bf6e2f21743ac SHA512 5501efe3f2c6bbe5c5955b589244e3a3b12e9537290d8970abedd23336b7ec528e006a4c0951ca80eff83a2da5bdf4238138c72ff421e098a90fb9a473e379e8 +DIST rust-1.77.1-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B e039e3fe7562ef30e45c7402bc356c7a335db6c27f94acf5051ed56fa552edb0e44399988cad183670ba4a5e561a0c5e5fddc5856f0641ce9d685d441ea31958 SHA512 b1250d89e28c5c7abee8f35b733a760decd5e1de910f26d4147eb7472df6d870fe214536560bb58103403b014f3a9402a0095f23bd0529f2ef409bc6f711c8d2 +DIST rust-1.77.1-arm-unknown-linux-gnueabihf.tar.xz 179417532 BLAKE2B 8efd8342a96fb4a284cf65a6f834f7d03f15d4c3ff9fcb80bc12f510bf8a423b723a574086b2e6752aaaf15e15e256530cf560b4f9fd437b3d101b2cacb7c77e SHA512 8fc8703ec59aded64f3dc687686d94749133fb80a8a53b77ffa961826d86cc13e2d18ed34f61dd9f92b9027f8b52882f386e397b6f344ec1f0c3bbbaa01b2818 +DIST rust-1.77.1-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B b7beddcc42687bd1f39cc45c9737ae9403143fdad39d9b9a4cd3594842cdd435547607d24e3ea8f574595d8228974f75772d8d1fabffc22097d3fd1ea0b69bca SHA512 b367086c7a97d672d537e88e185e8af53f11888f674af04dc43eb71d77d482d97b2fe2dda006bc1ed073bfc58a5b8fee19e471b0239c0f41f683c46d6d675b15 +DIST rust-1.77.1-armv7-unknown-linux-gnueabihf.tar.xz 182039096 BLAKE2B cfd58b2abe077e74320742526331c4375aaaf631fd821a461fec9933a163eb8f51132bbbaa872b88efa3ca43355e4d439dcd643d01afb1e5dfa888f2cc6f80fe SHA512 6149118714f8cbd95c55f6e70a9112ec44e73bc51b9d5a0cd646abe04bdd005c901d7a0bd79a79ac2a03fafcd5cdf05fe5f32a297462a434cc33dd24995c2a66 +DIST rust-1.77.1-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B e396676162b17b94a06bf8258662689979f202fefe9ae49d34c33fb58e7b64cfc8034489c05a242193f78c416dabbc134489696e283f75af3592445648b56de5 SHA512 e5570b86cc3c028354cfdda656286471df1b8df244d08549835880706c46b6703c61dafbc761a1e58580b72b215d6d0fde32fbe3c5d001aa5688a6394bf0466c +DIST rust-1.77.1-i686-unknown-linux-gnu.tar.xz 209041164 BLAKE2B 43f3857319ca1aecee7630358966f8ec96c9806015639190813fe95083a9e49bca0ffea86ba55577b80a72a0e12fd5ddf654f62ed2a8daf7154f753d07d9355d SHA512 807520c014c1923198a2386f4b547cc7718f3b048132462b739c062a19bd7f4cf989bd6245de901fa15bcf71dd7fd0d82c9e25a8f27b244a6ec8cb20f92120d2 +DIST rust-1.77.1-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 42e9770b586134523f377283dc29289786b33b499232110e827f9f091f633f066bc68d3cd56468971766538a4a677b8f8b4c72b0d9e61526047d6d2b0a018a32 SHA512 c2062713dc0f6326d48bfc725aafa596eed7350f1d1ff6ef371394ed10f4e2fa8aae92a3ff3f8e1f3b93a5d36c9d4104c1af19d9923e09ddff74135625217837 +DIST rust-1.77.1-loongarch64-unknown-linux-gnu.tar.xz 161096296 BLAKE2B e7b6d7a4dd579754f0b894d52b579a2dcba9a50cc6107d24abff67c97fdd3b12125a6743f243009b1ce411a4cd8c51bcc68afebad3765e90343695fdd13146f1 SHA512 bbe1a250c475ea7a27ac28c3ba7b75890c1598cf4dc780d32f4363172d1547e3a1d9f8a32c3d0d480c8bd585b663b259a825ea9b9c83910f6889bda497ae4fa6 +DIST rust-1.77.1-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B cc17b68e9361996d1ea57f090aad8e522faa1ce3037353957e46e8d96378c4b049e209928e4585355368e2396dd82923b3942ec719e616c33146f09a3bc27d87 SHA512 aafdce196d69feb10126edb145c45ee27e913ff289d4b72d78b007dac923bb187d3cc65cfe84025982fef438232677f8b7cf26137a00bae6b5accb7afedfc912 +DIST rust-1.77.1-mips-unknown-linux-gnu.tar.xz 68417260 BLAKE2B e011b698ebaf49d1f0ddedc789e3bf185d11b1980876bb01152d8bba18131a0ac6b3851061080ade5d112bd9ee985be837bc8e4576de668c2d72bfd4e54a01ab SHA512 4437ba0a183fcd7e054197a488b0ccac93732d3c170e6e6b23675c3642992a0b3c8188bd439877aa54e07789a7432a1324c6f079a9867faee16f82e9d873b47e +DIST rust-1.77.1-mips64-unknown-linux-gnuabi64.tar.xz 70368652 BLAKE2B 817338a8101103cfb96f71919a5392c910b9ddd4f8dc47253b3f48e2cd4c2130b7b6507b5ec943b2ea5b52be92f727b7b727722c1b3512c63e0b8c064ed95f4e SHA512 c7966b3152edf1e201926dbe3fc5760342c5fa92ab78dcc9c2ca70a553520b2d249e317d4dc47455468d99ab5ae9617ef44166947610e6733b9a09ddecdf0dea +DIST rust-1.77.1-mips64el-unknown-linux-gnuabi64.tar.xz 70121872 BLAKE2B b5956d7eda42961e9bf6e1393db737189d672d7104ede410c135884b56e1b7578af2224f22fa857a8c7627e290a1e1008a83202503f1be146c036b2cb41590c3 SHA512 6d14456e11b1c1923c3a1643ff0a15cd93ef2be9282e6e2611235f82b25ad28e1d0e8396fc815052e70373d835a94ee351ebc6d7563676a7d4dcb535cb6dd9ed +DIST rust-1.77.1-mipsel-unknown-linux-gnu.tar.xz 67429256 BLAKE2B c835aefaabcdac20953b430f4b8e6bba87b7d0073b6f70f6d4e1ff81b6dc88b74c058e55d414d9f67a28b217905552ba2cbe1a91b87dd4d0bed2029f7834cd1a SHA512 dcc37cb47a80bfc6a872c720a801093b43508c6fa65c77473371d9e2e4c2733da65171554a770e58521bdffdb56955a459284e95be07c4b9b0e874a2931c77f5 +DIST rust-1.77.1-powerpc-unknown-linux-gnu.tar.xz 176227252 BLAKE2B 98a7d31aae91114dea653181a708024a7d0ebd2f2baedffb7539d2415da2eeb745f777ae3fc2977d9416444a41b9b676dcb5fb6dfeed894dc512e37c42b612cd SHA512 a509b7ea39d760d5ab7ed5d7f73774e5df40a8d8dda169939c81573ec01ad9c03743e28064797cf2a730718d800d5189b4c9c3af1660794fd0dd48221b24ac5b +DIST rust-1.77.1-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c1f2709f17791f5da597df027d5f4104624a002f196b544f1e0fa679e78a019342e74fb13a013439390d0e768a53dba9ce84cfc3753e42c9dddf8f9fe18a8006 SHA512 554080d462a9d414f6d469b861679280abd267217c8e2c08f1b8f774d88cb06129c5aa6308be0cedda0974dd2e5d1204c2285fb097e8a0e1231c2af420e4f6a8 +DIST rust-1.77.1-powerpc64-unknown-linux-gnu.tar.xz 176465264 BLAKE2B 351c7c27e442caef9d71ed2b05d128750ddc179eadb45cb647482215f1573c0903710e5f9930bd916134a9f499c907c087eb784c619f35b0fe2ffd7c8ca5524a SHA512 78370d4cf9a6990da9ac1482439c2b44b7e45704d739fd46bd3623524014fb734d2798bc5903a501dad0de1945f926099e22473db8823ca25d47dd6e7ef3b9be +DIST rust-1.77.1-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B dd1a1de2274b1f17ff1758df380e26dfb3a8df1fde67a058bb738219e4f33894fde19878e9d230c041016f40a0f2d5d9fd0042dd02e95e7d05cd581b5083f31a SHA512 aaae0135f2a09e9065c27978f26b15f9506c6441fa76ccff50d75f55d5d40f06858f2f1bfb18c3a85fc8dd74659f66b65c60bd0aa23f1f572ca2448d747eec91 +DIST rust-1.77.1-powerpc64le-unknown-linux-gnu.tar.xz 186319612 BLAKE2B def73f2313e3e220b11de9c864512766b5d6cb30f7966307d7671f4ba871515bd6572dc86d8840a9071adae3a28b062ad23e7cff2cfd172800e4c126d9f49f5f SHA512 1b608054eba33ad1d2aad7b17899365b57781e50c7a5283786edad434fa2c36e41ed886cd6ef8926f53cd1b843391fc86d1400a75df924948ce0a8e62eaf8378 +DIST rust-1.77.1-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 092e491e900b0b06dbda931ebf34ceec088b89f9a4663c3d0f2c5d9838cd266deb7d714ca835785db0c2435e7a5572424495e2e9e165c67d83d9b3612924c3bd SHA512 5631fb073ab69bfd7576637417bf2d1cb316407d53dc58228cf1bcfe5111e5db83f6851c07c109aad0c408bc6b00579f6a8f1eb56304055b1faea7fb7b73acfc +DIST rust-1.77.1-riscv64gc-unknown-linux-gnu.tar.xz 182255808 BLAKE2B 5d23ca6bdb745d991987145d123e206ed21695f3999f78a8bf1d41710a772ab4059ce280a10c275b9c3c6e01729befc2cc3ef977e1a55d1ca356d2c01e0ffd3e SHA512 cdaf9e9d23be2106fb5bc41ce5bf2ad224cb80a1a1377cd580147ffe39f8bd59699af5bbccdf3e4ba174458047f6c62b168c8d5d2375537cde8d02b1fc856920 +DIST rust-1.77.1-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5326f241da004b358001258ca8a791610fc30a149d053788ff2513a1e470a074b2cf65974391b3f5983ca1a13c08cb5ba3be18ff39c6607d4a71dfbf7d29b044 SHA512 7ba8c061b30d99b535f1e581aa25784ebc97c25491d3648546eb8557b2ad29193e9eb86ed2f0a36b032951b98d7d4a2c7cb39cbb086b28b84038c63bf48fbb3c +DIST rust-1.77.1-s390x-unknown-linux-gnu.tar.xz 198879112 BLAKE2B 793aef5f0f9b9bda3f928e9eb333334b4e052cfdb1e63f8da31068d79ac7d2244732381198a737fb681dab9e4baa3f03287f7a8835fd069a188bebab68dab3d5 SHA512 20801402fcbad781e0e8adc7871bb21fbc9b2a8e6424616c8a12f70ddc1241b260a7f369fc52b8cb3bd2cda55c6394fd0fbfe5ef377e40e595da854bdeb5be41 +DIST rust-1.77.1-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 058d22ae20cfe466db1c0f684bd16059123d2a440c9c48fae88d2aef34a6996a8025d7a92b1af033f3503cf0de8fbfe20840f544118172117a4ad08bb31ec3e9 SHA512 c55dd529ab66181eecc50efe04a74337a90c50f2c6c27e62cff23d0b874d7cc02e92fa5399145e308e749733b91ebc1a938e576ff9e3d4827473def9b976e17c +DIST rust-1.77.1-sparc64-unknown-linux-gnu.tar.xz 57708276 BLAKE2B 715c1a42c92e547fa288eedc3ef6994aee4681b59efb718470ba2cf76c224afcfa2018e498ee839207b1fa053734f42b61a61fb18dd8fc082572587a609c8762 SHA512 0af8fa0817dc9b419ee280ed7531f74ba89b424937dc6bfdb66f0499d0d70e86457c5c64111b88d75aee30b40bd61d445aefb1c37f9d6b59e8cf5d05edc2f3e8 +DIST rust-1.77.1-x86_64-unknown-linux-gnu.tar.xz 159040536 BLAKE2B ccfc6a96f1a40efc905d9f8ed59f2d5283be404d433e5242876c62102786c36988a5337b909f288f2289f89e2034643dc88f22f1d895107aceb3b32ef89c8b1d SHA512 60c941aa6f48404409deef014993ea42bc0c3ceb7636cbd84a390f6dbb31ae12c6766324ee3f96739f54b9677bc1e77c20da9d5adb87120236254d3b5898fbd0 +DIST rust-1.77.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1adeaa22c0a80e6b9132fe290272c7713fe03902649fd6a41ccf46fbaa4d6a986540defa7bf34b2b0456bd8eab28a088a30fa23abb82a2cf110d1338aa6a623c SHA512 1d4ad50a386c3f03214439bc8067f2a721c30b9d4aa47a4494f0db32e242293dbf19ae1c5388315eccf377cfa947b2b40084bcba48fbc55a55be673b74074d5d +DIST rust-1.77.1-x86_64-unknown-linux-musl.tar.xz 234990960 BLAKE2B badccc8785af974d02b63998ff7b4f4b9235cb181cfa44ec35ad682a5c741d3621f4306ad874f11ac14301079558c162088da85414f335b67760f22475d67c2c SHA512 addb62f012787b391403bb25297c0b620c6beb431bd8ef3287a547ba7c31b4e3ccb29decddddf8a34ae849433f64334309b574dcd8743bf8da0efa38feda771f +DIST rust-1.77.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B f1e69cba4d762b98e615b6ddee831193ee915b8a797c48395bff7af3abe13a791267f2fb3b1e1b7df06e6e89497606064dc2fa60ec417bcb67ccc4de7cf5900b SHA512 1aa346a14b8a357b7f747a56d2e718fc15ef3a5095ec6dcaf3381b2d57b170e8b0b604d885d54cd39fad4602928612ddb8754010b4e27060123c67a23def4bd3 +DIST rust-1.79.0-aarch64-unknown-linux-gnu.tar.xz 224366944 BLAKE2B bd890cfad2348f7bf1d97adde1a5ab244665474ea4d77dfc2cec60679829f84c30378f2a979acc3dddc51ce563b03ff86d04903602a079a85684d98a86ffa4ce SHA512 0cf80ea35cb501f406323a438ecca348fb957cd4a57a4c7ff42bbaa0c736d16a99187b821e29d2e51519e1cb76e533af7c5893c6204fc0736f8e2186235742e3 +DIST rust-1.79.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c249d0badfd29130477841602b385e1d152488d43799e9e3b77cf92234b197501182edf59536f77b02b49f806a7dcd748f352458f97f15af6c8f0580659d3eb4 SHA512 2cd2fdde6ad1acd769af2a3ca97bff3e4cf3b57a3a7d1890ab592d2abb85be17f7c3f27cc1b994e70f9f6cd52e8e44314d1d182aafbf68fea4d52df1c9482afd +DIST rust-1.79.0-aarch64-unknown-linux-musl.tar.xz 205404384 BLAKE2B 21dd98d62bc965e24b3a60c0e48fdc907e2bd6919a90923f26cb833218d6e1f23d3385c7e67d96d7651d65ef963f668abd9f1c9e4d3e80aeb726b50d09a2ca80 SHA512 358e8b8a76e1a48d6829735f04b2d3cd3ddae86684ba10c778a9f96ce4bb0f080c0d706bcf5c6d141d1d52685a8e92a48d8020008320ec8aa158fa911745678a +DIST rust-1.79.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 99fcb4bb3818cf56ab9686aaede04dc104d156cb8c7989c3355974901cf7b84d9182239b526bc0208d7f4bbd80f959f896934796d1d431336820e10477c271c6 SHA512 9ce170419411e08bdb80aaad72c559fd0d81d7e5c2f088359ba2994dbc9a1f25bd6a35b2e3a02ac2ead12be6dac3d8cdb48764e85f8aea3babc031e242d66a5d +DIST rust-1.79.0-arm-unknown-linux-gnueabi.tar.xz 189377704 BLAKE2B 6d2e12a9fd86d41dce2946404130fc314ce291e1610f1bdbe13214e04ccf91ef36b373d49bb06d4f871da1bf99568d194d27aaecde841634fab1fd222e44563f SHA512 630973e33a82d4dc27ef6ec07084bbb0c6555add6fe1324b0a743c39902ce02ad1b3142b3e56b6b37678b523ff37fdaf0f60518a83500ceb4db9544e7f60ac7d +DIST rust-1.79.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 26045e38094ef9e424bd7050819c43998f9ddcd54f52c08b2f9d538e2729b1af1015847b55501a55d43db073f63324aaa594ba3ac27989665cb0855f58275b22 SHA512 73a365ab6ba6938f21e2f29d2ee8992e32998d159572a137621d451837dfb05b6f0bea8985165c6c22f16ce66d6f732393c8dc7680f2ac31df006b0cc2d26533 +DIST rust-1.79.0-arm-unknown-linux-gnueabihf.tar.xz 189222624 BLAKE2B c9ce961bd7f7bd8fdb05781096162f89bb2aa374963dad03f764a69570efb634a5c0fb3f776755869649a69ac1a95830a78e638f6e06d4840f1b2c2dadcac2fc SHA512 787e02c3b6415ed337964ff4db0d0e8cf5642f65ff733c6d70119c3ef328e9507ff66c5b2e4191bc0bcd1dd6755b656efd3d46b7629f3d20079f06d8fadcc10d +DIST rust-1.79.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B c5729c56ee5a3efed7f8f5af46e459a844f67a87c71c9e280efc07771964fd06838263f254a19801bd6d072d98f3d326691add5495c62a8d06f74a39375557eb SHA512 0b1d5c144d8a9bc8d370052ddafe7d6a5b8fdc00038bcb2581c5e4787a1c8419c628bdd12398cdac94178cd6c876f10e23b5660755274e0f1648b86e54d78477 +DIST rust-1.79.0-armv7-unknown-linux-gnueabihf.tar.xz 194892388 BLAKE2B 82113120753281bab2e52dde18b399e878bc1c055e2a1123c7bf5e0432c39ce04cb24886ebfde6094683046af94a8e80d456647980632df8da65268c4461e857 SHA512 d923042c4c9db09ff62444e6222bb4c404f322b2c43722514bc4c126fe1f9988cc8c38191bd66f8f24c535509c683e9fa30b3091d40a118b3366062135aef7e3 +DIST rust-1.79.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 2cc6281091bd0dd012fe0d229aa0691fc3698ebac5bd77d8c2d811907d1a6d8fe73f19d4b456bc9619f6e7cc403e8d55c46fd02140103a72f5b82c2c2c3986a0 SHA512 4aa5854d7430b07550d72f3aa3d8b5f27d8d11542c9bc22c8088624fa1dcb2a6d194cf058e741b1a0eebbf04874aa844ee89511ca14ddf73568eccbc404d6a43 +DIST rust-1.79.0-i686-unknown-linux-gnu.tar.xz 220956232 BLAKE2B ab8bfc213938a0c512177765f4d5bb2333f5533506fb28ecc70744c545595a7e534d7e5dad5afdd6b7d6570bc0602ed7ed68de7df4d7a210c606e23cde5fb6e2 SHA512 7238d0102625d82f7595bf4346dc49cb83daa0ea0ab456b6526f4995d20e5ce7f10517bbc3de09937eb10a4c537edeb2636127f9f8aa7d45c7577a665d70820f +DIST rust-1.79.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 838bd51b74f1f6c77a5ad10cf992f3e398f2f68510685d1146ea3b15bdb2ab7a994aec3e96b5b3a1a14a82c082a87c8cbfc77f01609bde2e096f1934a1fa61eb SHA512 f8a2aa8271348761c5c8c93406c65fdc05502c8d21d67fff82f1a706770891a820bd05acf8d3e8401a44a66c35a11f40e3594d5b42b6554060b3bb58a0dc6afd +DIST rust-1.79.0-loongarch64-unknown-linux-gnu.tar.xz 171612592 BLAKE2B d06003c1817a191d8aea38068ad03449090538962aa9ae74423343032b2e1aae4784daa702fdee4f4b089341fcbac1d03048783b7cf082eee46df1a2b6323b31 SHA512 86c39ca2b43fd58893e490008c99ce7f8e8c8e087701b90838de8f589a3e5b5b0d3b20c86ea9803da2ed72301d44b68866fe219b65a5af9f0e7e3120b3d9b994 +DIST rust-1.79.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6f826cc05d126b8c6422674c9dfb496a61424144d7a76bf4e5225d7bc782c0d63dd55ea03c534494b633601bd027a922458d9f06dec5f5cf701c8907fe53cbf6 SHA512 c443a8a08ae2e65e3ff46e4b5f910ac24b8dda0ba62b67dd41888cf1504a78e9a6ff9415480b8c684a7f9390bf7b279e3fb7a7a22bc4139d6a91457753df4131 +DIST rust-1.79.0-mips-unknown-linux-gnu.tar.xz 70170340 BLAKE2B d9283d882f7206ec4cbfc18ca3df426e224a65773744738fa526d076cbb39e3c5b70b9f05c0a56d8f12acf1341aca21956326e8ce1351ae3d96b8f5519540545 SHA512 344e1285e19aab88091e74c13ded45a796243dc80f87bd67d3af42c2f0c6dfae4d2504dbd3ddc576f31354b3145f7b8d6028a0ca1eeb279ba116b8a4ad37eecc +DIST rust-1.79.0-mips64-unknown-linux-gnuabi64.tar.xz 70583384 BLAKE2B 352e491cbd7c24ea39431ac835d86a8587abe64b1bb675522b7ad710c70a25ec461d63d3aee7e764f171731b8b568d618e9cda374ac2f9552a0713f7f2ade50c SHA512 ad844420ad95ee20713cecfa3e97e9e9bfbb31de74b17afc66a4e1be6b174d00cb2b5948c89ccb574ad1cc37cc1b6e8d161c72931420f617d6db7c65eb7d4764 +DIST rust-1.79.0-mips64el-unknown-linux-gnuabi64.tar.xz 72593292 BLAKE2B 2643741c2fb44bc2b2509d00ebd5818a6bfa6b77f4c79e2039ba46c41938036707423fa4d92e6fc412ce160c657ef75efaea0910cd4350a96c4fd88a49494cb5 SHA512 d9a5aff946452b459a01fd0bcc2f900ac2d6665b0285d3fa8913e7e0c481cd527089e4eef4616939796df6d892ef2369af1f87552e6f5a1571576592cd76c6e4 +DIST rust-1.79.0-mipsel-unknown-linux-gnu.tar.xz 72133948 BLAKE2B 0eb5a697129d053142f77e5c84dabdc8d0183c61396d7b4a18ddeb2c8c008c790e25382ed320292e9516e80d55d683697752001a435315a3aec5b81fec2f96a6 SHA512 5051499a4a468761a22e3887a2de114a328c8f82ba3f8044134b8c257ed773a4c980dc8c91e91fd4897aa23ce64277686a87565baab5b4cb8139c73396761ced +DIST rust-1.79.0-powerpc-unknown-linux-gnu.tar.xz 184251688 BLAKE2B 372338527063379f922bb3ea83c98f21b2201cf0e75f61cb0a42c1c1c6b651eeab1532d972af72a2afdc7afb5e7a96c40b0482c248350b7886a1274c869d2a08 SHA512 e1a26ddaf53b070edaa630bfcf6ba94659f841804e2feb90fab05e8856cc616d413f5af45b67cab57fea2483221c8caa52e373e7e7d29039541ab2142c4187a3 +DIST rust-1.79.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 22c2867d40f0fe13888112294ea2571718064a30983903f7ce8b13a4a13684c34ac224990ebb0254e262686c097bed6e46d9a70e86bb282c447c9e690ef551d8 SHA512 68ea8142bb72430fadf274549d1830a8348ba74a02a52bdab1cf1b811e70592896f8cf9d34687bacc34aaa06603f89e5794211227c573a4f29ed34744b0f5a2d +DIST rust-1.79.0-powerpc64-unknown-linux-gnu.tar.xz 182063040 BLAKE2B 0bf5d662cf69bff1a345dc54525319dfec98b2743744eb03712e9a2cce8cd45d968b9cc67ffa33a5b5a5a47f3a0a5568103d4e3de3efc7c2d837453dcdc077c7 SHA512 f65745bdb3c98f20c37c7bbe737ebd3b1107868fd56f1a9c42a4adfc14592e853cdd19217354070e5d18d31145be18c3b10681768d9f025b5846488937bd8a78 +DIST rust-1.79.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 80be893561f5021b4e57843a5a6c9db7f97d9e31a0748c2ef1768fe0074f29401a39de781d1eadadfe760e8d7f9a286045c6bec2bee1b2a889ccfb9625ae8477 SHA512 843e1cdda3dbceb93cd0b345ef0f551946cc37dc5085f52cfcc3c9f6e31f8d4d6b176afdf1c255f5bd7283473b717963aa0e6bd905c2eb89f3543cf5e88dfff0 +DIST rust-1.79.0-powerpc64le-unknown-linux-gnu.tar.xz 192753084 BLAKE2B ba53cdb229484dca210de50bc7cd493fae04b4c664551fb5b7f7bd6bc7dc3bbb59b79d183f20a9dada393d586eb49956fda1a358bb5b5761fe8d65f7ab58b3a1 SHA512 d8db247ecfb154247d7243e8caaab0680bb81e11aa0ed3e627b6a0d96a21a0a2099a7bdcdacb57a8b84910d6716754843d80a9149a8ee02fdbb6bc411a352112 +DIST rust-1.79.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3e5ce77c7a2afdf0ddc4d8d53bf7ccaf8506986c1cf196837a3a6d82d648b4515b4c8cbeedb2998df233a1c5428ccfd82865482c0d0493248fb0631e100d4986 SHA512 5e63caeb8b20c7dde37099cdc0c246694b67dc2380104c83d3cbff7810cac521104d4d6cf6763559e13cc9e4bb5387bad761e79fc7bacf48536db1918b59246d +DIST rust-1.79.0-riscv64gc-unknown-linux-gnu.tar.xz 195616336 BLAKE2B a17b0f9022681233e23ae3c3eaaf93da6d730ba604a9d327cd4a2553cd8c7321929e294de27866e995a591554db4f31f2b9f371747e4b45e473ac2c2a466ba63 SHA512 8a8c6be44ecf5d4cf35bdb32c2a56136fb007e9502f7f42980b5cec135bc481252b890be74d6ba638c2d885d1fb9bea58349e6ba67dbbb8efccdfe7bd6c7009d +DIST rust-1.79.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a20afcbcc4814988594537e0ef1ded539c29987941044d2174c5f16b84286d3d8b29321bcd205f5081dcc8ed487d21f88396a0420a7fc3626748b8ad1e0ca2be SHA512 cee5e0ebd5e7fd00ddda6549f749603376284071db7f806175b1913b39a94a5540cf535f30d45afd06ae95ea42b0fc6b71517bede7f09dc0221d5516abf32450 +DIST rust-1.79.0-riscv64gc-unknown-linux-musl.tar.xz 77667868 BLAKE2B 004083faaffc342458cc90ddf34a56f4e3091beb1c4e3e5fd1872f3bfe7488b64da5c9ce7995483b5e4dbdf138c007ce1d08879ad3046587dc498687d3fbb538 SHA512 f14610a48d5898f0c47f1a3896fbb3abe85d57a062388f532e1150e3585f8c099c345c972d7f187bbb56074828f6f6e7ee54221127c5425f98856f62fd16b361 +DIST rust-1.79.0-s390x-unknown-linux-gnu.tar.xz 208109368 BLAKE2B 8c110bff01f7a7456a6044a782198c74a793af0fe4acf6881fb9af4c8193cb6c513cbcc8113320fee027a6eb046a0ca4319d014379c6f670f915314448fb927a SHA512 07de1f7da8d8d23c63ed081cd56c96a9becbd4b7149f87636918bce8155a25ea95579ef8694adf6e455ba6cdc19776677f430713a6ef6c607a7efd26db4658a8 +DIST rust-1.79.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 28a2586c96e2ee2263cae8c2dcd21a0017d09969114cc905a37408717c412a162fed12023df801497906a6aa77b294121699a56d05e270b28e2831796a15f4e8 SHA512 64c85ecf772b73e2e6f2002053a8bf659d518e7be2a9d0056fe38e991e47304471372206a8e45250d6a143086b3b1f4fc68f4e19388c040735e8475c981fd8a0 +DIST rust-1.79.0-sparc64-unknown-linux-gnu.tar.xz 62007828 BLAKE2B 7348970911c9661b2099f2c5d3309efb25e2906b0c560828c1bd877f145350d4aed594e52a7cee078abd523fcee13a0783b655696378d0119ebdf265606b40d0 SHA512 0afbd7cde595eb9a3c80ccc0943c1b5676cd1db9a2e78fb8e6af375424d8f7e67690ea9799961ea356f77dce15a347eedd5332dfc07dd8aa74b2aa2e6b5beb81 +DIST rust-1.79.0-x86_64-unknown-linux-gnu.tar.xz 165014992 BLAKE2B abd9f73c8439f6f4f9ea1b586cb0b2d3ddf3351e42dd49e01e2267d1bc2f9dc27dbbe9b866d5a571a983e3c537f003ea9a6570258af64edc26cb86fdd8e64d86 SHA512 c027a015cc6544d288b51bad6ebf8a9afd40932a06972cf61bf64bfe4997dda7ecaa2d53c4f4fb2200bcf1a7df16c3a44ade1b8366a32ce9a4c85357cc76dd0c +DIST rust-1.79.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9cd1a51580d9f70f96c83b603716a5edbd8e1c4d4c2f53c07aa9d37c6c47f3bd252c0a1cf26b77bcd60842fb83ed74cd7b6e4ab3a039c3938423372485f8c1f4 SHA512 b65621f91085f4a5c6f84ed5e530fe56502ca12c5b18486afb1197156c5f6087110578647d428a58a1a6c04765569a28c38ae40a14c72fd41f39948349e8115d +DIST rust-1.79.0-x86_64-unknown-linux-musl.tar.xz 247326760 BLAKE2B 36bf6787c69971ba7c445d1895001c005af0aeb48aaa3309e971237125a2b6de3ef5f1534572f8a3f4c1bc024962a8fd030e91b63c02f03444b5aec1a3ed2e5a SHA512 02e5c2a67f5470f3320b04e7c4f0a6f5dbd361d5a97aee7e5860d04224683166b21375794c94ae040a2cc6fc119380be9d3465b8c5e1798abd4142d621cf9f99 +DIST rust-1.79.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 6dde2d3096f7e47d31b1e13e7e5f41cf278e770dcb8a222d76ab5b93b2ca8a6d9e5b45515e097e5285bd2d76130546b3eb302a8391102460c4564e654c88f03c SHA512 4618852fdd81684ddf5bd8758d2551f1c800ef1614fed8ba91a9a1d29b3b51a0b9bf169c499dd8890347f999d002e5aba7b49a98eb819f20bdfe82fa375ed45a +DIST rust-1.80.1-aarch64-unknown-linux-gnu.tar.xz 226220216 BLAKE2B 41c7a5ba5108da3ae79fc6d6fa229d2a91e6e217c92bbcbe37fe35d48418e0c787a29c43ffb406acabd410efcca0464da325120f925dfd6d1ee0822f0041f517 SHA512 4279028abc347ff1436d055f79523a24f98d94938dd7eb73516bcf39dbbfbd941418d4b1227576870c75a7c0b4c23c74b0528e1c5b8a39d54422af1ee2abb74f +DIST rust-1.80.1-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 20c46e31535278145d143f619851edf151feb786b6d3112022b63e9dc882aad300665af16ba9dc600554f3d8f95d4ed7715bab5b57fab3e33a2c81fd7cd664a7 SHA512 dc104a9a30945d8f3d3a74cbc31b87ac4cffb81b4dd80a53b3e86432058830d4287542166db273895d9758bbfc36814c384c35a98b360ecf18938c6ebf6beb05 +DIST rust-1.80.1-aarch64-unknown-linux-musl.tar.xz 206752364 BLAKE2B 924f6c1f6b01c048ee9f1fc632e74abf1f5c11936effeb797d45fd500b1ce5a1638cc8061226018dd3e5a910e1d20a7645efbd25dbc5e3b2336cb3d20817fece SHA512 74a9846b328f2a79a75f7cb4c795a78c40ec1c30ac864e20046fa39324800e40ec13737bc580d5949dca92472c1512c747f67d8b67cd5e3e9048b22e2a8b7866 +DIST rust-1.80.1-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 49100a62a57a4147c13379bee868f5725b96f4dfa59c83c6d3a1a67eed86b0ed02bb0684b096dd557d07f54d0c3fb32bace38c81aed55cea7a0c001d53049897 SHA512 955d39f554413d51da50d2c66a8e9dd57aa28c850f12410b58a8ae1d8d768b7b5d2687bc6b88218f800f3e4242e282d6fc8d2e76616c30c926af1f9a461b2d9e +DIST rust-1.80.1-arm-unknown-linux-gnueabi.tar.xz 190441552 BLAKE2B 2907546fe513550e8bb79eb60382503ae55dab8420be41be6d57ef04e9582362324de8639a43671181e439223cf2c677ee4f4819455a264c2eb34ce6e79bfef1 SHA512 1ec38d348e1c888cbbc7b391571e84a3026a5c59fe065d79e5769241c6af9f39c0f689c981695846a9109ab3c9baee9b225316868dd2fed18d15f4f1c81cb5f2 +DIST rust-1.80.1-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 106a856965e94aa260258aa8bb973a513cd13aef7b15f0c5794a699fbfa5445dbdd3628084d7a913849f0dd274075a28bad25a758e031ce851a6afe463dcc882 SHA512 ce34d38c05e8b4a7df9f0a79fe107b7d313bc467b1cf82cac43b8ab9b6ae3e4d3c1f4428f3a627110ce3b66f89086982cc95d0b2b2e85187095f66338aa92d0c +DIST rust-1.80.1-arm-unknown-linux-gnueabihf.tar.xz 190747600 BLAKE2B 481473bfac35b8a45c4c3a5593b76abf88fe6eb50f0b2a424b1c5ed846e56234c2faa22910623514d0f6804d13f78d28cc3e4cff956ae558ac1dd655a0b62057 SHA512 540f74fe1f43ad8c407620ec47eae1ac4a3c4ddc8497cb79d0784393d17581c41576df7e114efbd6541a8626802c7961c998cd0895618b254814b66efc3bb01d +DIST rust-1.80.1-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B f1d4aa5cbe123f566d63c3f9165766622048f463c78c0d9635949ac46d6910c1b9c59b0d8c7fce034c1b070416e1ac3f998c4b0c91c796e18669f9294a75bc89 SHA512 f4a75d28a245eaea7deabbbe282cad493175c303f9f0744a248728a7753603ba7e4acf488b3e8e3478a8f7160ed92963d255f0216b1fb598b66a91eb51c30a6f +DIST rust-1.80.1-armv7-unknown-linux-gnueabihf.tar.xz 195804620 BLAKE2B f279fd6944aaa76a7a35007e0521003140e4a3569cd36e57d7fa4ed7f72b37ffb7d03412588d1b0671677fd95bd6b6626eb9603d55b81971e148ad0137bbbc2d SHA512 487aa0be4230659db1c5cf2436c65062f1c3061fa085f38ec84dce029a6ef3614657ba407d1aa13c1e5ff2cf6e87f7ffc0c1a1947c3dc641a5b6843cdde85615 +DIST rust-1.80.1-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 15b450c4743e45c4c2eb9a1ec6afd448a30ad64e9a885bbedd7f8a7f59db45926e7ae4b1b0f350a783adafe93ccecec40f6436b62c8063eac5ad4e91c5418576 SHA512 b5ce5e78cacafd3f0ccfa2797aebecb360bbf56140cf1a1f3dc6c200e7a6ac7d3eceefc0f3cd3fd109ff1b8755b7828c2808ac9bf53f23a3e49c27d6c6050e8c +DIST rust-1.80.1-i686-unknown-linux-gnu.tar.xz 221151480 BLAKE2B 01c4a29b5cdc47b0070b031984daa5d6f77844cb3ab9a82a40440b5c4a7a1f6bdccd4b8f46e3ab13bc194997c4a1341de484319ad3e8f642c67f7b8d8481c846 SHA512 2c0cc27407265f686d5b3a5e9f00f751924ae47f3d6a5cc044c56278843ee76ba3cedd63575447feb5cda0a2b1d2a26d7a78e0c558e2f47b7cb09f40aa6b8425 +DIST rust-1.80.1-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 549b27298fbed09727ae6c6086127aab9c0ebf9a6fce70c2e102fd29e983e31b1907f3a2e7c18800ff7b2efcd6f49c36aa11a5021fb9f57e6148e62628cc56a2 SHA512 c20ea2b577aa263e70211198a9fe896b9d560b737d74d640ee107a89dd9d5b31bc843e2fdda75bf21318fd3aaaea58c4ee918d003f7bf7636aa5636fb657133a +DIST rust-1.80.1-loongarch64-unknown-linux-gnu.tar.xz 172528232 BLAKE2B d308b0aab1ef8dc338025d9a106920f507035efdc04390e9618b6a936ec117b70c791d14d5a73aeb0533f1e8d1952ae36bc3d4e624239d5a64ecfaefa70aa5ab SHA512 1c6d689e43cad549f2f8aa96fd5bf52080276c1de386b771206c7533feb11a47bf515ea72dc7f406852ca7dc5632f1436dde69014d8bf35bd0f25bcc85c3cfa0 +DIST rust-1.80.1-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 92b347907616b18ae06d85a1380d01bd078c3ea4a03fdf808b79794ffeb1d6661057688050130aec61d29062f07a030ebcf15fe3d866cb411325c44a2c393a33 SHA512 7245d91fc398d787e8bfa2e0bbceda9aa30665699f01bc5490f29f690fc1f8fd5d5ee8d4a941d38f0dc5c4cb7c275bf4b6d4bd3727b1bad65326594101f90cf4 +DIST rust-1.80.1-mips-unknown-linux-gnu.tar.xz 71930732 BLAKE2B 5e0bf58d3080f7250ebab43548ae90ed948237e6169852c18fb488c7f8b7c0d5eaaa2746627fe991b5344cdd7249e94c4fa71ff42a6055e505d4a99c59fbc643 SHA512 838ccea7a5c7a81af5c35901e574b8525978bb1afa8263ee266d0a2acaf7d62aa3da045b1451d6c068b5c25e97813b429fb79d1f62628d6f41e254fb94c1f38e +DIST rust-1.80.1-mips64-unknown-linux-gnuabi64.tar.xz 71570392 BLAKE2B b36ba5ccd967bf4c99dcc66f9331f805e14a95465eff69b9bfadadac9f65ddf92f2dcf4b955c8faa8ff872b0cad42f1716074e23ff0aac6ef6f9740fe588119b SHA512 80e930c81d0f0febf61a5ce082967ce519711b18fbf7f7ea6665697caf3de345a690fa618d46ebe5b0068f0d578f23b9424af2d59afd47ed42f1649d9488d77a +DIST rust-1.80.1-mips64el-unknown-linux-gnuabi64.tar.xz 75794060 BLAKE2B 26bb87e1be2ee3c311cba20df47da1728c2c5a395b366707ac2a5e5ff602b99ce24fdb0fb5495f687a1489b1889153bc764820ef481ecd9db19ff9d8e34a5bc6 SHA512 8781deaf66d84e87ed5d7fc10988c9417d98c45dae2cde2bfba817c74020faa9daf512c141fe92753a53113c96a4ece06738d7dbad626b901aaaad835df6d300 +DIST rust-1.80.1-mipsel-unknown-linux-gnu.tar.xz 71170176 BLAKE2B 26f3833281d3d0acbfd8e0c5bbe5f9fdd77e76d16080d23fbf81d4b8abfd7940bd73657afba835be4f584161e1e147406072cc77fe3e4be797848983fcce075a SHA512 f909b5e630dc155ef807e248e620c29ffcc18ef5bb4b2c5aa836afd754974f10dcf82efdda3b47c58778d1ab63fe98095fa4a051885763645b27fcce46dc0718 +DIST rust-1.80.1-powerpc-unknown-linux-gnu.tar.xz 185400364 BLAKE2B 2b37d052d0fc4f612c298e87be9a0afcac3ef8548f3914530737d0435cbdf270e0c3b8422c08f84f96192f89805a9bff9d3fe570eb056afc1fd902202a806025 SHA512 1350aa8c105555778231b4ef7ce1c4c8850cc112ccc2f72621bbb3c011a0733da91df7521bbab0aa3269b4ad61231a631660593d7608d017083cd7af375fde30 +DIST rust-1.80.1-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B da5dfb8d287b7a30a32443b0edb80a3994c68f732ce02a6f6d735d589db2c273962e02925fa88311698672eca10441850066c2f1ab2e48ded8ca33109e298509 SHA512 f0d381594d6b164e068cb80e39a508774633db64abd4a9ba68eba48fd627fbda6c0cdf849137f61e196ab44e0f93eba5d08f3dd60fe5820259b8d9fafdd51407 +DIST rust-1.80.1-powerpc64-unknown-linux-gnu.tar.xz 183179096 BLAKE2B 0b7b7af392b8aa1a1df14ea4f53fd231c5c475eddbadd2105a5222393162b187109201f96dbb30c9877ff1c684af48b9868d17dbf26113193cab572d8ea40852 SHA512 67ce98a6f89997c13f576493644634f8ee5055952500e4f6d6ae096fee9570d6e5938c483892e76325905fec35184ff7f7edc21e4ec30199e821017890825289 +DIST rust-1.80.1-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b5b296291d031d254a4be6f000abade2b5d67cea8cecb332505469af3ec3ed1e21454ba41f96ed4e77dc2324c339f136ad04f034191a639394e6d9390065ac19 SHA512 9ddacb0ccd9da29fb93c66a2d701a03af6a4a2e9911c06a09d9fd5bde2647931e6c61e623d418200038e232227010206561e431331ef866324e9020dfba4597b +DIST rust-1.80.1-powerpc64-unknown-linux-musl.tar.xz 74338592 BLAKE2B efa136a4510c20928dad1a15271620515f57d43473bcb9e0d4c5935e4dfbb535a6ddfd0d26576d3b0b354014a4d54606900afc32485cdf60be61bb6cb100ef18 SHA512 d330b0c1a046b754400e7ba48e9657c07ccb3f0aaace45600ca4649bb8df5aaf01664b8b967940e5e992347e05ed7249e5ed179536896e63a1a0ba6f21c1db0b +DIST rust-1.80.1-powerpc64le-unknown-linux-gnu.tar.xz 194097292 BLAKE2B 1134beec940443b111594c86f912b2bf26bf3ace83cab3f0176175a6e891d047701e08e8ebc62094fdb4bd7b4d2de115ba0125ecd5ff6b3a20906db30c86c480 SHA512 4275343153b6acec8ba3a25dd4e85abc3ea7872a9cca4cea6f394fc24db6461db7fe7c047d158b61bb0635983a6a033f25da39f5fa1d6d9ee6d3eb956799dafa +DIST rust-1.80.1-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 280558f7b575a5b79c7367715e74f333b7e9bb0d4f6ffd9939ed9daf33899dfc19cf59eca2cfafdd2ad1d6d71ea58486d04931fc3d089c9c491c8374985a1960 SHA512 6c784aa10878531b44e5927b2cab5a81efd4767a5e723747e4a9c506b4c48141b44c98ce364459db47ad8f03f4f066fe96d070806695d76a6abc9e0c7a53a09c +DIST rust-1.80.1-powerpc64le-unknown-linux-musl.tar.xz 76407768 BLAKE2B be93308a381a7d96d5bfcb6cfbdcf722d8b4a8c5a497f12bad8557758efb2e62e35332486cf9fcb5c29874fe172cf696d0370158e1a139f77d637490422ba7ff SHA512 cd5c6dd81997923c7bf719852fad819be7f24bbbc97a6fcd8d463a38e26784d3bf19aae62a3d2ee3643571b78829b78602746007128d9e160b26f293b13381f3 +DIST rust-1.80.1-riscv64gc-unknown-linux-gnu.tar.xz 194141700 BLAKE2B e174c185d35d3974c923233807ff1a27f6736af2a8b97f92153c0518aad4f46653d5e5bab219b51ee1b58cac7216a29e5ad6499a982de8f52f6871903a307b71 SHA512 4d69bfd0fdd2de634a3ab873e8e2929c53baec12e4edcb220b8054c672324dba7a94d06a9c35474b8ba74b2e408d7b42a857ad11a4b7a346509b5fde23e8c779 +DIST rust-1.80.1-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 274048978581a816fd8a9c396e7adffa509004121d5e9dc8df53a9f4a850dc7a0bca8652760c1f27c1c0dd57be5a91ff60e2d39ad7681b17efdea91312d0fc40 SHA512 5c34ff90acd4307a57733f8371abf4712c3ca06bf9db88f1d3e3ed9dda1c16a7775d713804ec4f1bc46089428b6b5472ab7e416f10e21d33f10b84b1a33d1957 +DIST rust-1.80.1-riscv64gc-unknown-linux-musl.tar.xz 83359176 BLAKE2B 27ed3232a01fe69a7ebb6c18c7caede9d5ca6f755b52ca0f4a2f3faa073762638b13cec4f4c63602ec709d70d3c4333db5bdb97468e77a3c3a491b44060c484b SHA512 858f2366104e368efc5564228c9247d110b57fc3a196b4c56077fccda104fd8ed87f93a6e3ba2291203d05041c819555f87736c1ff3f5b494f47bdccc1a0874a +DIST rust-1.80.1-s390x-unknown-linux-gnu.tar.xz 209785288 BLAKE2B 01792daab79e7abed8bdeca53295928429b6814672aa4e0426316ec790d22b22abf25d3d5513582206d18f53147e60d252a0557ab9cca3b594c89ad603d94ea7 SHA512 66b20f5d001e978e2db5277da5f01271f0500a59877a849ccadebd5823eaeee35066abdd5d449e024cd5ae8ee41dd60fad77a00648cac1db62137d6722729fd6 +DIST rust-1.80.1-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5c0a1a6036d3c3e9af835c281fd347a842cea15bea5f3d5f109f4080a2f93020d5e1c1a7de1894c03e8a2c87c6560f792a0c8024e68eb55d10e50da098f1e621 SHA512 7bbc3e8d3b039b522e62101714f5edb85046cfc06375df4b49c9ece891f8fc57e86027e1fd12a5837be7623c9137840551389e7dec4b2700e1dac0ae69121729 +DIST rust-1.80.1-sparc64-unknown-linux-gnu.tar.xz 69671332 BLAKE2B ae9d7c680dc77bb2beec0e80aaf59768a21091814247b74ac1930a7c66f7b6426fa35e772b97e2aa1983cbaf37981df47e39c5b940ba4288e1791ede7b1a0bae SHA512 dbc895498ae43921d6a15c4d36d9e35756ae8660782a07cacd607d1ebdb75982d67ef78ae2803160c07c2f9067b608aebbec7812799cb45bb893c936379fa9a7 +DIST rust-1.80.1-x86_64-unknown-linux-gnu.tar.xz 167553060 BLAKE2B abc6430cfbbea5dd0ea42a6a3e2796b6f499d5a8343616d310ed22b541bdb15803d882dca9be743a81768bdf55f78c7a803bb594844d7dc3d2bdf09bd3f3d312 SHA512 73e6000af98efe5d90ab484ad88f455f07ccdabe49400d25ac16eeaa51327a5d17eaaae5ef3eb0b04b9aba2015c379eeb2a00076d82ba959e53e3dba470a228b +DIST rust-1.80.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B bb52100a14bfa2775ca7cab5cd0f9dbc489ec3b26a8687876c97b666435c44ce58d86fd9f11d4f4832e79c05fa3ddefd7157edc91a3da25ffeba07da61fbddf9 SHA512 08aad912e47341bff29ee1d1b52cd02df8e609747f7061e61ed6a401d798140a8587378aa992b0d52af955a44d2284eefa00f27a6e94b4ed561c06eed60ad6fe +DIST rust-1.80.1-x86_64-unknown-linux-musl.tar.xz 248220632 BLAKE2B 7f0954379658df0a5cb0bb4bd49fdd1d216bfa5a200789124667d13ad97f0a5278f57e5b6278a969558c834de43a5d7e3f5ad3e331cc5a4c428dc097453a9394 SHA512 079cd3384c0b7f85d5fb2f02f27febe423ff533d71463097fbaa90449a955699fc25d8e4ae16489f7d7920c34c318c0f2e8185eeb9c6fd64c0851e4366c5eca2 +DIST rust-1.80.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B bad9fdebe33c251b8802ecb0150a074e86becac00874137f793b1805bf36373903fbcfd4744b1086851fd1357c6c81262a7eb321685640d856dc2ee3a37917a7 SHA512 405de0a8676755a63a4fc1e61dd358960efc90e4fd2417cfb4311bfaab5a744397e1f751afbe6a9515c1d92626a79fc782272261eed2f72b37b88fd77a84d7c0 +DIST rust-1.81.0-aarch64-unknown-linux-gnu.tar.xz 230690876 BLAKE2B b037b62f61558f1e26a2d56042a8423480e79f582f9f20248181730518782f55371e6bac982bce532310f939f1c562541fcc93f6f5ea17f6f9a03972fa4c52d0 SHA512 de2e9da3461eba35fef1f22dd4ea90668b8e3d121b1acb3a9d862c291c6784ce6b2ffd9dc5f1bed99625e746ef9ad7a65d74142479fe1d6bd6b678fdeee6cc15 +DIST rust-1.81.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1979ad9d4c2aa30f963565a7058b3251edabd972d80d368d69074d975606962991b23a2ae9f7ebe7225adf06789b0090da48b0a6418e82ae45b2a3e67065714d SHA512 cf6a64e759b2118ce5fc5489f543cbef34900aec37f5416c0836f8990a589677a02f3fe8ca02898089c770507fb61c36a48b21a4f50acd38f1350f077a95a44d +DIST rust-1.81.0-aarch64-unknown-linux-musl.tar.xz 208644312 BLAKE2B e732d3a4d3ddf0b1fdaac1324567bcea86bbb36dcdc921409bf8484a116dab346e3e5d6cdba0bed82d29f6d144a97db8b471c5c4bf2b339ef0ff86109dda66af SHA512 874cd6bcf870a3f416768a029ee2a32a88fd396e4fbf1150214281379db9f599f68b3dc9eb7c9152e9c17933ab11cfbbc80e19c1a8083343e583bc3994feca17 +DIST rust-1.81.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B ded7ede2657f16f9e054aae69b8bf2f50606674259b258f1acae75c5275966cbde256d957028b7220ff23ee83ea366aa80e6ad059e5880a76031a466aba4e528 SHA512 b31e6a06c8bec7d955bc73a6275535bbf6bf864f55abb1604ff3a78d26bc2a5d384f34df36336164b0dd3a475281949429bca75e736f1e8dccd48d7f84174ee7 +DIST rust-1.81.0-arm-unknown-linux-gnueabi.tar.xz 192297828 BLAKE2B d1ac0b2649039f3b13568906b97627e6dc0e9e0df4c9d784192240e86e1424fb0fc0816c88d45b7baa6c473f175d4765e62a64994bf5b58031a40a6a1fa864ae SHA512 bd64fbac076bf31da5acadd1d3a85adb692d58644c3fcc1f338473eb6ead3bcf4463ec1d7d46b5fb1d55498ff7684958f4b1591425c2aa8184405d01fae261a4 +DIST rust-1.81.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B d2c507d2480665a8a983b5eb2f2eb85265ab1e8aecf278ca44d9f2ca7b5b2cb76577962df6866e81e6daa3912942df3fe0c4bfa75fe18173c4a6c05284bd0393 SHA512 6ca22e556388877bb9be06144ffcafad07126cfedbf77a27c6c3ede0be3ab6803df7d6d3e55cbdb0f210c02a02c7dfd26a3c3e5fd48338b4b7fc71fcb469242e +DIST rust-1.81.0-arm-unknown-linux-gnueabihf.tar.xz 192357588 BLAKE2B 5236afdc2fb725b2be3a2cab4d66a6ec518038e1a557ea4950f683fe3ec716a6ca0e6ebdf99b8068856c90c3e60220a5f8d1140c23c1c6a5e1f8d0c96fc80d9c SHA512 03d2709ad7ccb87161b65771b4b7882163c9a80a814684ac8687780d5f9da031c9e667bd35baa3af89c3d7275e377c50d36b47fac585454c623acf6f8bab8cf7 +DIST rust-1.81.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B e819b6a30627c1af87f18dcdeff40eccd70249509f07b8157cceee047f756afe0ede798243a0b7a0b9842e42af5833e5a23c3b31771a1f4371711942b744b6ce SHA512 8eeaa15f932b9202acfd4d9210207d231a63cd5f3b77da4001e0d04a2e4f004c259150c83b608a5f84f59b29fe7933455409eb20b66739e3c238e13332e2273a +DIST rust-1.81.0-armv7-unknown-linux-gnueabihf.tar.xz 197884288 BLAKE2B 060bc7c00c438011ecaad2a51b9edd2e96ac46bb1be602f14fd0eafebb2ef6d4bce979678d9ee7f99c6490565bb57b3f1abd1b3e2f387d247957763762b19082 SHA512 ad149183fa630b3b5c5258fb5b6ad993960c1fee979c4586206463bf76694ddba4854e451b79139a9455503bb3839b1efc92e9c27996f6557b7416078708b1a2 +DIST rust-1.81.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B f61a7fc711100cba3ae558eab15f165ac5c539c7adb1f82b4c83bc82b7a6c5eb294bcc43e351cb28e7886582b9f996b909e55896c267fa1456bc97d9accf34e2 SHA512 fb6851bf3cdc3c3c83ae9e3fdd04cdccbc6f1661c0656f4d9562c1d911c2e82f16854e88ac434d93804587697319545b6c659b68712198d7a62ba3877b4dedde +DIST rust-1.81.0-i686-unknown-linux-gnu.tar.xz 224016868 BLAKE2B cbc147e42563ba1cd9e39e313d824c78d20e308c95e02bffef02d25b08e92309d5db0e5c0d5e0bfb30d593235bd3a58e6b4614043b3c12a6619406861c48a25b SHA512 b48d934b6644cce7f34db35ae69a4ddc9c9e71851dd1ca221e86d3a6cc107f29e0070515cec3d548e422161a031528927b93d4499e47eeefa87488dfb23591bf +DIST rust-1.81.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3cfb29d5ff9f00e5f14631466a3a5bc5ae0a3dadeed3e2b22ee000ebc57bf02ca6db5f2ac01756a6fdc753bb4cd83e5e6ed8fd9e356b6325f5b7eb17e7714d7e SHA512 1fd1ca2016876f2456eb832bc9c6d1ab2be237a619d5f6fd4e1ee0f31bdad3d3c1c95d5f45069512d0c8a140115a594be3d1f888fd9b5a342ddd7cda1d5e5ce7 +DIST rust-1.81.0-loongarch64-unknown-linux-gnu.tar.xz 200885152 BLAKE2B 46b23442632d7c3368454a031643a795cf54b732d2c180960008e38be97070708a433d1094f529aa78479fbd89adf1c4ceac38af919f28577e8f766029cf40c3 SHA512 2e090423c8c5ddc1dc29d5ad19cdaebb9abad45bc7a229f911385f50cd2951b587a187ed8deb01aa41aa643465d7c7ac2b91d94c80265c03362de39b99eba82e +DIST rust-1.81.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 70aa0a550992b32ef666751336ebe2c81f3834d4117942cdc7f8b1eeadb1e5efa5fc63e283517e5535f406ff0e36b4577e559e24281e388a362463ed046fa340 SHA512 70c85d06e5b29968b6efb10efbece2761f81697395bf037581adf9e3aec0141266ae59644b6951e646749bcc23b038d5601b804c6d389b64c87b4be24847db42 +DIST rust-1.81.0-mips-unknown-linux-gnu.tar.xz 73640352 BLAKE2B 91f833acb8378361428112a802b1ca3a92a08ac86922161bf7d8c5f5f8c2fa13f5f8eee655363dcdcb853211e4575b3d1161f4b914d7dc8ba005f4fd681198e7 SHA512 abb641fbd5c0f895e2401045cdaba390445af5004e04f090218bb8a098e487e6844280cd162873a0664e7fbaf25227477f2ccf6da9c20568dcf332d9ad713ede +DIST rust-1.81.0-mips64-unknown-linux-gnuabi64.tar.xz 73301608 BLAKE2B f9190465942a0b85d810e3a16f4f1850b70d29409743496b22a01621640a86213c82cbffc45d630ee604aba34fe5ee0783cf018af85b037660c4ca61a57ce9b7 SHA512 51305596f1a2462b03c74c7c0789c5d2c4f7094caef5753a1cefab8b4371ca57cd0d91528b1a6e957151b2484cff5b45f3341a48196bd095212657483ce94f6a +DIST rust-1.81.0-mips64el-unknown-linux-gnuabi64.tar.xz 74961740 BLAKE2B 6a712c1c1485be3e7f8a2599c13c0f296c38c77771d635d1099608a3ee1fe6ed3474876f5518c6a417456ac8087b0f4b415fde371873f81d9d3bd778721bf917 SHA512 5eefdf363f13afee128745cdde805794a88bb63151b6f18598096c3ba0f826aae2519cfc61f93b458de5da1d0765d9e48beb844f226346f54dedadfc19f3840d +DIST rust-1.81.0-mipsel-unknown-linux-gnu.tar.xz 75296988 BLAKE2B e0f030e08fe4aaeade0637e601c5c71dd49dc65ba1b9a8a9cffe48b66b6c38547b745cc2d2802232e914fa1e8d01725b57a7b92a5b5986b752fe5e6c480de080 SHA512 90bf79b7f83eeec7729b8fb4cadad33c1ce7c911457fae8d2c4d0e2ade68675e4aad484fe8f41163065e7a9096d36f0045c95aa24bb097e00122ed31a1c24544 +DIST rust-1.81.0-powerpc-unknown-linux-gnu.tar.xz 213304904 BLAKE2B b9d126cc787323ec18e978aaccbb8f92ccf753314fcc6a5d2d496400f4bc7885b543bd7ecae782a6c1dba737708358be26be68f69b47e982617e9a80af47d279 SHA512 a84bdad9877f7c8df2cd495447cca2a0e1448a8a13ee0fbcd2ca6f662317cbebf9425238edf3b5a1277b723b9c44eb4d363339c00a35e0ff86b6a568b61ec2f2 +DIST rust-1.81.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d2fba08b5be0026227e071993272a12e0d27af3b8e3b2fbd039a9c9a229317e9014d2e0f2c981387e6b46907e258e309424c2aef22d3512743d28ce035a85dc3 SHA512 156319d1904834794476d80a3b047a4099b983cb950ab3e9882ff34c0451eddff7cad8b160406abf23df40d195fdce925052177de2243ec8e8415edaac3c643c +DIST rust-1.81.0-powerpc64-unknown-linux-gnu.tar.xz 210257620 BLAKE2B 686cb5e08befb0d4a19a7e34478c6916abd6aa7a05f09d83a7f8c4fcf59e144371a7442a1f14cd34b149dd056df119d5748ece4311d69af79725cb9b3b662126 SHA512 14f5feaeba8cb9e0a3326e5d74cba9be832fe6570308d5735f7fe7486fe240ef0f3cd2396c853bf34cc784f05fedd7a975dcb922775c59f3262a67fac1383839 +DIST rust-1.81.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d30e35436bbe3869278f4936b2b132d0a243bf0288470e837246a59239c2813025757f684f23c639517836e25895835a7ab0fd488834e2f53cfd1155e1c8a2fd SHA512 3b302c6c999df3e9aa0ab1a0638692cb6f88d44598e00bc862ecd2c384afffb259b8072738055800efc9f0c5b8de07a0fe3de1cab1bde28a9faf1951411a9bf6 +DIST rust-1.81.0-powerpc64-unknown-linux-musl.tar.xz 76312476 BLAKE2B ab03fcae936cce1f2d4890d91e2e10b21ebdde72fbfb3d766436dc2ed18946e498e90c68158182c949ab92f0be02276fdd21d33ed17439d6bcc50526db1c386c SHA512 5812da254dbffa39c6ec6d2208d5223d7a2b57adc597fff2980c9f7f40ef7b9614ea43354840acd87f8349165b7df2d79974f0acb7ef71046bbba86653c982c1 +DIST rust-1.81.0-powerpc64le-unknown-linux-gnu.tar.xz 224307656 BLAKE2B 3891f93aa2bfb62fe23b463cdbd7db50182bb175cfadf2969b32d093897f517afb7dd97ecaefe90f220998f7436d41651c32e5a46957c2114d1ebc70834dd917 SHA512 9f6fa6bf0d5ba935b9ad5661287ad8aad5fc8d6b28fdbce6cd81730539d087ea512dba7b0133de08761d12b580b8b1c5d7ca35a4f1277a8bb683c109177ce83a +DIST rust-1.81.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e96b56de2542596db2db9030382e8d87a9fee884888b58c0050b81487eaf22c2e6d62d11dfc7763a1f647318c2bd0b29e03dcbbe1809ea8162432874758caa7c SHA512 0e568a763276ca4e9c359d6dfc32d1f369ee04e160026c7660ff5f14175022175d23589df9c03c0c8c270d7e74a5e54754d23c8a1b0545b67b6d6c3d3ee82628 +DIST rust-1.81.0-powerpc64le-unknown-linux-musl.tar.xz 78549196 BLAKE2B 09c359d64f54a6fd4a2ed2e05007bb18ac9abd5223486c8ecd3f08c4f6a0c0de5e22e5f2bd8ba7759949945045e9c84074cb9a133802f3f5a8fe10d97b3e777d SHA512 6345439d1f8e93a47b41593b3a815e23087b77d20722531f05d197e6a96e1699955aac48846a94caa6580e8fc5f30ea7f6edc45fa2e3c5308dc95728c12813e0 +DIST rust-1.81.0-riscv64gc-unknown-linux-gnu.tar.xz 223006516 BLAKE2B 5627ee83ed51726bcdb50757393f2333d76d705e18d65681c1872df6dd3e2beb9a18910b4d5e7da5c30f83b4c9f80117f2ef9c212cdd92eebc6cfce182ef579f SHA512 57cf209d364d43164402cddeed0ebe41b3e3ca69f79cec4f83055cf999493ed1cd87bc852b90707b2809cacceb39a83c4236712220105cd6a71be30250d4ae6e +DIST rust-1.81.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0eaff43543493165dd86a2ffa30a4039b599302970e5c4380e8640c8c61881480c86b2ef98159ccf464c2fe39e23d14191aa11fccecb8ea8f56feebabfcd0d2a SHA512 4b5b7f01801692aa4087b5f010993d4b14b73be9c2dc964555ba140a939e434400cb4ed4756238725dcb2ab66e5ed67bb1d4688a92fcbc6c8af23f21fdaee568 +DIST rust-1.81.0-riscv64gc-unknown-linux-musl.tar.xz 83775176 BLAKE2B 6022f9c9ca652de040157434052dbe6079b03e1fce14880b3484599da0a217bd1da8e829e7fd1ec2f783a84873fd8b93138a5824e3628d6099ed92f47963f799 SHA512 16441a47b6cf4b7291d42d9ac07ad1e6a1cfc36d394d533517866f3ac66d240cbcd40bfde157de1b3161d55cf54b285cd36dc4758592c073cb6b8ed3e4d7cab8 +DIST rust-1.81.0-s390x-unknown-linux-gnu.tar.xz 212322092 BLAKE2B 11237159a0e70c84e296cd54ac52721a887057ad12269328cf67483d55e603df3f55381c4413871b83fe58a26a52c32ba5e77e7b3426016eb35a207275598c29 SHA512 1ca177d52cd897da497191c4ff869ad9e22047d37f4955e134d51a8ac5a5c24d9ff109a6e955e71df0ac0fa1776939ee39ae384f2fa12ac4740e2aecf92dfd61 +DIST rust-1.81.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a982e7308aca7fac8a93d299a9dcb00f5bea71e1b7061fada84fdf2cbe1cc5bf7ea65abff857a234896b950e06e1bc76c0e796a9570039b2314ac17dc4e9f4ea SHA512 cf8cfdecaeb589db64df6ff0418d68332c8b516d401f0e9bccf9651bb085f57d3bef4941fa60788ca372a9a2407a406dfb24c153a64549925a47c15196815683 +DIST rust-1.81.0-sparc64-unknown-linux-gnu.tar.xz 71498356 BLAKE2B f987c017bc779fda3d74cf8bb845ae5bb5e1ffb146a0ee58e413ce6b726f475d457d2ab95cf0342d48ba6e74aeb43ed94a200fcf8f4dda8a86d4f796d7c6a152 SHA512 7c88530c718e377c44a54399af0f1b954e86b3040eb49b2a1ae7caa08e33a43073d65b1a027147675fb81f7ae983cff5eb27230bd5da33a9c16689a924606b43 +DIST rust-1.81.0-x86_64-unknown-linux-gnu.tar.xz 170439044 BLAKE2B 5377d8972a729b0135c2461adcdc179719a0af99e8e9656b3c9eb487144c306d49dd42737d71195773e4b03e4287215955a7bab34094c19a9f07fba04a706a62 SHA512 a648b735d91348dfda6a66b4ca09f3449ff4abbd1d727fce8c91ec409a82bfc873988b06aa0907e145c486d035df12c68fa14466ccd2148ac0a99d5934335ae2 +DIST rust-1.81.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9f39dedf33efd6fe4d66e10e3cb064851b1637a50e97d3bc19c48bf989e1e94d694df493eb437d2c2e58989933dbb05a7d25c276b26331475f44ea2d9d52909c SHA512 37908051e511cf223e92379ecf577ee1644d6aa13583b622b78d445367ca9e8a4253d77a5237831eeef15607c71e99ae3ef42451803466fad303bb523e13475c +DIST rust-1.81.0-x86_64-unknown-linux-musl.tar.xz 251142276 BLAKE2B da30177914f8574ff896b64a60279913d48330818c6e96e10d3180964ed542697f29c6ca7e7c81fb1b814e1d9ceb8bbf6e119596b59564a64a08e30ce72ce4b8 SHA512 3b772269362556bebbff72a13abf05f745fd88128367ab1e5879ed3c0f3f5a1f7370faec1b2bce521a38662d58d94a8e4eb6b085c8e0f166979af490492e17c8 +DIST rust-1.81.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B e13afc29a5a06bd9453db22a6bc6894d8fb671ad9e3989852c9348ded5a22c908ec58ddc20b0f2d94e6bd291eb0e9fec09277f95ba9528bb7d333748ebb79959 SHA512 da0689376503be19af92d88e2731296c6a5286cec60d42dcebd4738b23e3e1a1bb303982e2a9e6bc14a8f7a8872321b9e9c25915cde43fa1772ddfdb149997c7 +DIST rust-1.82.0-aarch64-unknown-linux-gnu.tar.xz 236675048 BLAKE2B ea27b8520ec4c7b75db4d0843ed4c33eeadf6aa417ae9cf577c958ecee8d1620483dda7a8cce2ec7ce525b3564e564adc480c772101829de79020f690ee9f6d5 SHA512 2011ea683c2ded92a22c5321985dd73e5296bf8b5d8935c089684fba59bc8542ad1e8f5c119e550df619f8d7674c1a05821a53cadd277be4031bd5e1a76b32b4 +DIST rust-1.82.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b068fdb9ebef6cd2210898f84084ae428a2975cc916051c7a6f716901503174d06fe135892f8cb343abe266ba3392f8ff2e2a8e72e10c8555e86e332159cdd5b SHA512 6e64a2359c2d828a1c5cee588ac6e2d2f3cee87b8c553c99c563e1fe4e82baa8b853ac3790f522f301258686ce4b63713589c8ce0d58f8c8430783e106989126 +DIST rust-1.82.0-aarch64-unknown-linux-musl.tar.xz 214134084 BLAKE2B 03323e1444ecee145fa3138d10e30480074b43bbcb70257bc7e29a221798db76464ee450548d9351f1cf4a0b913eb42cb9e4babe5798c8fc49871a3ae7168ca2 SHA512 3a36915bf1c75c4d274bd08455c5fa292d183c9594aee5f8660ea5998c7b7d840dc3ee022353e0017bc9187d9a83920ff8982de18d5367ecbf7fbde474d004be +DIST rust-1.82.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 4cb9bab4e205031eef5699e4ec06fd26437c092242df0a13ec1163a6e131a75b9e8a752cea98319bf1c28796a9112332de6d692d50bf28f521a49679bfe09b44 SHA512 670723d16f2d1ff0cfc139f3ad2437769289faca678b7e0da824e4a0b68cc17e8e5b27464c28dc7b8a1a45582d89bce8dc001ada40801c6ca1330b2749eef51e +DIST rust-1.82.0-arm-unknown-linux-gnueabi.tar.xz 198513416 BLAKE2B d54076fdd62ce6954d71105eb7ff26856bcf533b506f2b21e26aa3cc6e502b58a77d31289d394664ad256eeea6c00637cf27619c857202ac0b83b80eea1060f9 SHA512 2c1a158bbe5535247289b32f1f3bbb34ba4184e04afcef8b022a92ef3b2c7cc545018e16bf26552812de90793746c1723849e738fc37f6ee5106631af35b73db +DIST rust-1.82.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 64aeca55022cea8033b5c62511965818f66fc06c099e38c39dcf8c18c2f3eac771f99af340709eb36e04c3b7edb8d9a2ee4e36bb4e5873361af2ec017e9e81d0 SHA512 8352ede01a57d9690ff8d01229a097638f590b66c4f232cedf6c832a64a720f79ddfd92a8bdf4a300cb73015bc79bfba549d610ddc8dc6f90195ae4301e084dd +DIST rust-1.82.0-arm-unknown-linux-gnueabihf.tar.xz 198915552 BLAKE2B c4fdf16f8d8d7037b22cbf1982b444c46686239a63cc3b4c837678fc4b0fecd26800a645b1797b482e5439660304d7d4679f2371d9574fea2bc0255cd80c4f00 SHA512 5ce2ad2548a55de504ba9c06d1aeaea431afebf264387d757d4c70aee9a0244f6b12c5e06d3b4231e8ce8339a698c4f6f94a3e9d35c5e8a66d432e088a1ac984 +DIST rust-1.82.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B d529ec55e5eca6c19e9c3f43e429f39047624893aff07b4cd9b1e777e52feaf068c53838aefcbbd318c97a0390a5e69f6b649cdff5d93f124571342b398d0c98 SHA512 2f976bb05184b0fec8ae9531b0fd21f581244d731dc624410cefb704e2089fef57a1e1ec1d9069e8d89759c4ec934e32947f975afedbc7a09e527a24d763f41f +DIST rust-1.82.0-armv7-unknown-linux-gnueabihf.tar.xz 204665884 BLAKE2B b402bec97e364a01226d28c5b5551474e2023e841946e82ec621634d062388db9bd0bb51925d8c5880cd5581c961c282e66fb7c29746b6081031cdadd138c7c3 SHA512 6dee6ac941191b765cfc4523268d10aa825be99f07f3014671a7ba134eedcdc93cf8161c6a251b3588ddf5d45b41d105c268e0cb8e210291ebce45e9f637cadd +DIST rust-1.82.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 49098feb74ef521224204e38976036968b6c94eadcd677e64aced8f9d78fae19f3036c935ef2f71d0da329b7d905115d4f840a54712d15f0b1508b5b8ee89757 SHA512 5ba449fc4ff34bfe8e849fdfca3c1f49ed011bd0ddf20c0f5db402073932fb9c5158cde57e03a263413b895b23fe71416fdc9264042bd8a3ea2e3930dfcf0539 +DIST rust-1.82.0-i686-unknown-linux-gnu.tar.xz 232183760 BLAKE2B ce60a1471dee7552de1a3b48e8db313ed740816bf73214139f8901a0e3b9b85a50bd6bf6c3fba23bde2f2a87d4990b8b02aee0b849e29d5c72b74b371f992926 SHA512 cc2931ade9d9f88a187d338134e9cbc1aa4b8237f854044cf913a54248c6444bd85439c8b3a8c48de51a5d4436f018e5de24fe013d7f4947f0e61a59d4c36010 +DIST rust-1.82.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0deea40e9b63bd697756d46c1810938c03c9eab4401ca63d7294f991ec4e084ca51dc71853f5e9a7c32c895ae07a010ca2c9b83c78ec538ac3ca0306388a4884 SHA512 92eac1413e2af6e209ae03f43e642410e324bf043fb1ea152c60505adfa00100d205fb0175d63361633594a4ebb6e6c9494d73493aaafbf991afe7305bc76e21 +DIST rust-1.82.0-loongarch64-unknown-linux-gnu.tar.xz 214922428 BLAKE2B 73ddfe865cbd529ca7c1550b989e173542aed51a27e20c2a29cb7c93b3b19e6a30c3eccddf123dbaa8d58672a13aff3443ab34e4634a9f98f7c572ac49ff7af1 SHA512 c75039a73becfe8c0990105ff16fab5ea16db30dfeb1eb85b3778ba070acaaab120bfa9e326b621a6fb34a5576cc829d76153d3376be9c5db74c3ee933571780 +DIST rust-1.82.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 402210132f85edb9c31eda041a9978a3ec60eac8b31bfbd4742fb47afce36979e89de544f88aed7205a97e36ca9dec8d7d4a71890f197fdf93a0b3e252c2eb6c SHA512 53ccce83866480bb36b0fdda23ca1dade3f9bfac05b1ab49a8df3e5076d9acca57dd474e1587bcd91b4f286ed38738b5826bb355c903edd2ac257a9daf5d8442 +DIST rust-1.82.0-mips-unknown-linux-gnu.tar.xz 75893764 BLAKE2B aef2ccf94b0e4dcbbd369abfe9bbe3045e62fa0ce1fae3ddc34c9dc3af2828be0b6c18d265b0cdded27fa4ca5449f03fb53a4f5e7a0e5b410723e6ddf42b31dc SHA512 9289961d0542aa0f78195a976b3d8d9791d048883cff1d0c2d597f2a2eb53bc107bf2ff646124e3dc60f9bfca10c417b54623f2308e56b61525d7e607ac697d6 +DIST rust-1.82.0-mips64-unknown-linux-gnuabi64.tar.xz 75620212 BLAKE2B d016e3c1a58e3354b33731b90f33bb36edb49fd3fd7f2cba842dd5ca7a8dcf62741c5ef9a6715ca0a7dae027bd5ec8949000cb1f1ff35f9323b7c6dd5c76708c SHA512 5b2e28010648506846d3eb9ebbb98e405d2e8d982d193aed963f43461ec4b7181e62fe0aed0fd9d95352dfa5504420684ed3edbc7ae27190ab847c8fd68ba5a2 +DIST rust-1.82.0-mips64el-unknown-linux-gnuabi64.tar.xz 77251292 BLAKE2B b07ed9b53fb157b2d7d938d376e88cdc394b1cb40e2c46e3211b0885edb474e54cfa1f0a00bdabef179285415fb62ad22066682becfb86c577a819a21d13bed2 SHA512 ca7c0cc9c755e0bcd7a754f5f9f729583bbe396fa740feaad3d8d711ec0f5b802fe3cda7ac17d84ed4ce43e3e436f11240a2914d9f03097d78557a56fc103efc +DIST rust-1.82.0-mipsel-unknown-linux-gnu.tar.xz 77645292 BLAKE2B 8e7c8c8976a89b5787f721fdf1731426caf6895a744265ee79cf91e1c8a32071dcde73a2e3c36b6bb06ca830343534ff0018c0f6058337d2ea729dd5592916ec SHA512 20452b798f29078e2f8fb676808dd1472f6b6f794b4338522af55e095afc7d97d96bfaa8e547c6a050fba0603387201ab7dc0b5cae1233063987f5df137d978b +DIST rust-1.82.0-powerpc-unknown-linux-gnu.tar.xz 220809284 BLAKE2B 3f87e36e6e635be68329e80a4273c1f538ee912c8cc29572a2b06cb04920239385f93ed2aa364667599df17962d3ca0b2625448643445921c44afbe3a718efad SHA512 59fb1570d46b717a118d832fc1f4928337ed525128dca72104ec2ab59f424b665bb7676a6757faf50f81e5365f332d409dcd01a8f49b57c834c875aaafa5c8ba +DIST rust-1.82.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 4058694cec8383fb53982cc6a7c05e476b5460a5d43fdbbb95b07e36006cbf9eac7536002295853df5f14cdba0f25cbcfba96f527592fb6f6089e58e7aafb8f8 SHA512 3965cdcdf359cf62b8ead06d0720093c3853242555afa83a8b0f48876d623db1259e5373b7c96b550f7203abeec6f5f697fd24d56f178ce969816d583119fc1a +DIST rust-1.82.0-powerpc64-unknown-linux-gnu.tar.xz 218119856 BLAKE2B 82c61658d4cd4d755dc4c058c15826a1ac0167da8b4c0ba842ee4f709cba4b584b9f505a816c7bd4cb49258a037ac3f34bb7a7dc0f52e32d57b2545e3a4c607f SHA512 9d2bf19f84c0cd03307be7b7b3687364966c2cfc646b8a9b21a6cd7b6424978c3559a26db6f46818cad543eac556689ba2ede976ab5efa63062cd4421b097dfe +DIST rust-1.82.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a38307a4e0ccdc64632a688b2e5fb9448e63e26045fca2af4fbf72de6dcf6b201dafb4df4c56ac20832738959ca13abb56901cf5f718d7d4046ca13d600b6c5d SHA512 c821fab5da52e50e95253d4aff61292b5155c736df75b27095c8ea40d6893cc2786dd148db71f68e1b0635eb740cbba6de0cbee01b5e4a603ce61a7abc3fbc28 +DIST rust-1.82.0-powerpc64-unknown-linux-musl.tar.xz 78453804 BLAKE2B bd6bef9a710d6c0aba9bfec0a77f6442e48124a195a02f6d1d76b3d1c3bce18c9a748fe463420ea50ae097601e9cf0885b953b0ff548313d1fbb7bc818270e79 SHA512 4db950c8d0ef642e9a1177c0a2691b7f6107b243ae163423c25f3eac1cf443356ae91c43328e7d30ce4990e3b094c4145674728da6ac08c501172907a917bb4d +DIST rust-1.82.0-powerpc64le-unknown-linux-gnu.tar.xz 230915544 BLAKE2B 74d5bc710e370775a7b83232dae5442d251e6c02516dec8ef3bbf33f81cd877448f66b760f27705bdaf9c9637bd43f2c38502c5186c6582c4bc541e2c2c1d1a2 SHA512 1f82a50445e08eff5101c6c2a4b4d03d288bd6d8331ce2e36a2a8c826a93a1267c333b14bac84e6b943c9fe1ade6706e793dbed8ca158f184c3f74b3f116e0d8 +DIST rust-1.82.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5287810a0750010ca193a713591fe95bf7ff9f706116caceba0d44763d9263b6e783defa1b9de543cecab36521168f78ed4166d13ac2638e1c18b317ed29531d SHA512 f3b4a607cc1d07bce086073caf3245335c0b03a9847922dac36491b5c3d7f6cf2b156bdc8cc0cf99c513057928a7931a82ccab077cfdd2620e0a77426b88a1c8 +DIST rust-1.82.0-powerpc64le-unknown-linux-musl.tar.xz 80767512 BLAKE2B bfb617107f03e9feb94df00570662727c44c14973ba7b88691a53b40778d8946ab95792fce0951e4e62143b6158b71e0c46a2836c7ff229fc0f49f40700285f3 SHA512 750d243dece6d9a6d1c16ef34cfddbb2632c8b65459b0eea1e13f695e9e92e622de7b9e7e8cb068fe45e1b1d5415bac6f2b24fa3a869341cd13f7e46d5e7fc5d +DIST rust-1.82.0-riscv64gc-unknown-linux-gnu.tar.xz 217304308 BLAKE2B bc2a2af8119892842d188db23576f3952243f3a798e23f22d07444063a997223d11a23b1c256a665fd04aa608083d4f26a97c72c4ac36cedcd99a6ca157140a9 SHA512 9ba01e196be7ce7c62fc7c2ee9041e2cb30553f376eb6b3dce97121cc6052632f8867869383edfb02b47ce848d19a137b19787454eb424bd69c7749d10282731 +DIST rust-1.82.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e41f6fcf79b8f017e60a0c3383f2619b857a1e9c74e45b3978a5e54de3804e2873a1a3a511bfdcd7b7bafc95de692ae2a02abe54153c97188e8a663f95c03967 SHA512 c99d3aa7c94c3a8e170f6eba054382d39ba35d4f83e5d1c550efa97b72060a198167da984ad301b304d0fe2f5145655498986571df27c102df25620db2e80ee6 +DIST rust-1.82.0-riscv64gc-unknown-linux-musl.tar.xz 82214464 BLAKE2B 37e4e2da7208df74daf9bc7293d22cdeba225d3824203cd6b5e2512522b10b9ba0ce3ec4a0b7ac41a5b3f27a6a363c5691087d11327eac62eb96f102a29673f9 SHA512 e0fc51143b85881218766adb777634cf1c5dc22ca65aa07616d903f6b8be294aa497331ed68300dc04ad7d2eaeaeb460c429172dbb313b7aad3fe76f4234db1f +DIST rust-1.82.0-s390x-unknown-linux-gnu.tar.xz 219317068 BLAKE2B fbad24615d53a5d3ff9761f976d43aa969b208bde2ae87857c7389a97252de00df5f54bcd9b06c53c38ac3a6a49e1a47a06de3788c9a7693e937b3e12864c671 SHA512 1fa0cae2d2c857955c4fe981bf042cc20062b8c1805c2839a37825f2f914858ce7915f706a73a851d90cbb5de7446deafadfbe6d68ba01c0a03e2687d5dfd06e +DIST rust-1.82.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 577b5759c302865372cbb882bce2160036a3d30cdd3852e7893f35a0c798e0292becf04ea8243f2c2fdc571cbe62693b2ead64635d8d15e943a72fab09dbb6bb SHA512 cf1e235feb153cc305af741f3fe3d23e90aed9b586cecfdbca94289a9673dcd844d471cb63d9222634a387b08919d8b9b48d30c9538ab4ffc4fcdbba00382b85 +DIST rust-1.82.0-sparc64-unknown-linux-gnu.tar.xz 73813440 BLAKE2B f0708d1425e59d533ed49e10581e5e1440a6e40b72c518caa5ab25d14a6970b38030f52661c22baf6968a0170e854e33ffeb61fe6e9890c05048f6158f7314fd SHA512 1c226cc73e87ea3635e5f0321ed3949f2bb1f77f62c1ee5ebf3c7619c516b2994f6a8347cbbb74f19d2b375d7f8c3df0d62b59929e79ef444f5ad33a7931d218 +DIST rust-1.82.0-x86_64-unknown-linux-gnu.tar.xz 178075016 BLAKE2B 799dba2583b40f8b43cbc1370d32fddbd6c65787b601a5fa60eb3ae4113057a6c1bfb8f54046fb5c004d7e200d47a42f5bb1cca8382d7536b4b02462d1f00f6d SHA512 63f0b35fbbfef024ce2901aef4c924858f50246d682e4d11f93154f33267662319b043003a48fc9fe0631dd8385a6a4172399ad0257167b148ced4ac5eb62494 +DIST rust-1.82.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0506992a71455ce0d4f76d4e6af6ef687ad772e75f9b251b4ecd1b6482b2abf0f7b32267795d7d87bba07d7f38e1612c0281c87ba0d07156c90e44175ab3a11c SHA512 59c56ceefc1228cff372cc4f3ae40e04da58f90abd6647fe4b0a11e760c21902f58dbafbb48e7ad868ecb26b162ec3641587ff8b5366c16cdd6e28f4f457390b +DIST rust-1.82.0-x86_64-unknown-linux-musl.tar.xz 258823060 BLAKE2B 71e284a1a62944677792a8f9b9c78eb1750afea218f9846859de52dfe24a98c467a8d1787a0d5d72f761c36ba20f4000e1ed193e11db28d7ca3ccccbeac51f0b SHA512 eac9e504c3dc230a3923cbfab01d4ce3d5639f7c8213d8c8c3e007fa6045e1f56a4f5e6ddbe2e6259fbbac2a3944e8b351d270d4f8ce20aa8e4843a7572e8931 +DIST rust-1.82.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B b96af58187ab367c80c75f3f529e18a4288a5b468c8fb3f61d46fcd69c6fec118db361cf480cfea84c2eb7d3e5a94d2dbee6c5d4291fc0b896073344bc5464ff SHA512 40a95d2b0eb27e9f7340a8a30efd59ee8fc2a310f195978238cc25a38c48db7229fad25bd82433481699e57ba409a84aca0258052c520c94ef6c1687c6b2ac23 +DIST rust-src-1.71.1.tar.xz 2460244 BLAKE2B e3a5b5bfb808310f96e760aab55310c7a790fa551d248c9c5dbb407e0a80653563d8df73a9e0973aa63d3286aad6c755b78098dd8db2dc1a2ed3cadb926b40e1 SHA512 659cc46e1ece2ddbcf5ab748bae48843bd36353cc633b59e4ac062d843af66919e8d5c39ccb72ebdbf94a0e26a8056ade6bd1c8fe9a936469bd405122a8ae35d +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.77.1.tar.xz 2618128 BLAKE2B d36f74d3b826a071de8e8a92cfab65348bf1ed7f5fbcabf1994b5e2c99d1fd6d2a936e49aaabb59c44e664a4559cc3c062291cbb381462b9c516fa7ed9d6107d SHA512 a719435636a52b4436afd6dafad7b8112c94b097e2c632fde536155b9977bbffffa8fcb90c6c53675c4d793225917087e5637d36fe250c539e3d7463d90ce28a +DIST rust-src-1.79.0.tar.xz 2855740 BLAKE2B 2701e3de018e044b5cc83b8d1b8e509127e3603654ad4893cb22a4701ccb19b2305d22382286e40171c8b8188804136156c0ff2c4c67714b53269067cd17fda2 SHA512 a4489864ab4a0fc05210365be02cc2cdf9f52b20513b57fafc93f025bc1ea5d7df9a4ee0dd23aa02dba1510c5d2cff7269071aa5cb17a946dcb913e0ea35e1aa +DIST rust-src-1.80.1.tar.xz 2870456 BLAKE2B 9096fab01b38cc3ea2a32a2ab2e9052e5988d25e92965ebf174c4823c7b3c722196ca25e0dabcfc6db208d1c07434f06594d85fc673b6b9d4e0070ed445215e2 SHA512 bb9fdc593f33c6d94c28569a1820f0fd2413c31e650ddf82903214845adec664cac9d7b10b07e096a36432dd815de96c6aec81709ed13e99f381cd53cb87fd89 +DIST rust-src-1.81.0.tar.xz 2901440 BLAKE2B 7ad2855c21728cc323108f7e45416a425a222e550c132818b302dc2b9fabc1281e560b0f097e1fc41e682f52b4524c69737096e12cc9e97a677828efab96dc2b SHA512 d38b1afc17a4cc7ba67d2e1b7d3dfbcc2a61ad96e87b130064d6788538817c27bce06c9fd7a4733de5b5862ff5f6aa441bf71ebaaae9ff80a86c354a6ec05e14 +DIST rust-src-1.82.0.tar.xz 2966368 BLAKE2B 4162e7393ac21a095ac1541ea7b62fafa561ce2153bdd2b3723d0f2e0130fb2fb1325ac8583d87d64b6cf6b76400d12aaac144c781e89a177483adb46854c81b SHA512 4f7817eb16dbddf15ab09206738569370c42abe117086b085a7cc8f7174f9c2b42571707558642c72597236610eeeca32575b665acbc2cbc4f7709e624c16cc4 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/metadata.xml b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/metadata.xml new file mode 100644 index 00000000000..2f9b2fef5b9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/metadata.xml @@ -0,0 +1,30 @@ + + + + + randy@electronsweatshop.com + Randy Barlow + + + navi@vlhl.dev + Anna Figueiredo Gomes + + + matoro_gentoo@matoro.tk + Matoro Mahri + + + rust@gentoo.org + Rust Project + + + Install clippy, Rust code linter + Build the profiler runtime and rust-demangler tool (needed for '-C profile-generate' or '-C instrument-coverage' codegen opts) + Install rustfmt, Rust code formatter + Install rust-analyzer, A Rust compiler front-end for IDEs (language server) + Install rust-src, needed by developer tools and for build-std (cross) + + + rust-lang/rust + + diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.71.1-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.71.1-r100.ebuild new file mode 100644 index 00000000000..50dd03400a4 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.71.1-r100.ebuild @@ -0,0 +1,234 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 16 ) +LLVM_OPTIONAL="yes" + +inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-08-03/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Language empowering everyone to build reliable and efficient software" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) +" +# Keep this separate to allow easy commenting out if not yet built +SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz -> ${MY_P}-sparc64-unknown-linux-gnu.sam.tar.xz ) " + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA" +SLOT="${PV}" +KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" +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 + sys-devel/gcc:* + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +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/${P}/bin/.* + opt/${P}/lib/.*.so + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/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/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # 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 + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +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 +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use rustfmt && components="${components},rustfmt-preview" + use rust-analyzer && components="${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" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}/bin/bash") + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" + find "${ED}/opt/${P}/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-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + $(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-${P}" + /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 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/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end 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 dev-debug/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 + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.71.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.71.1.ebuild new file mode 100644 index 00000000000..f33217b1513 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.71.1.ebuild @@ -0,0 +1,230 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-08-03/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Language empowering everyone to build reliable and efficient software" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) +" +# Keep this separate to allow easy commenting out if not yet built +SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz -> ${MY_P}-sparc64-unknown-linux-gnu.sam.tar.xz ) " + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA" +SLOT="stable" +KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" +IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" + +DEPEND="" + +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + dev-libs/openssl + sys-apps/lsb-release + sys-devel/gcc:* +" + +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +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/${P}/bin/.* + opt/${P}/lib/.*.so + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/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/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # 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 + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +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 +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use rustfmt && components="${components},rustfmt-preview" + use rust-analyzer && components="${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" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}/bin/bash") + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" + find "${ED}/opt/${P}/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-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib" + MANPATH="${EPREFIX}/usr/lib/rust/man" + $(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-${P}" + /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 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/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end 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 + + elog "Rust installs a helper script for calling GDB now," + elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}." + + if has_version app-editors/emacs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.74.1-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.74.1-r100.ebuild new file mode 100644 index 00000000000..78aa2f6cfdb --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.74.1-r100.ebuild @@ -0,0 +1,244 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 17 ) +LLVM_OPTIONAL="yes" + +inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-12-07/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Language empowering everyone to build reliable and efficient software" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) +" +# Keep this separate to allow easy commenting out if not yet built +SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " +#SRC_URI+=" mips? ( +# abi_mips_o32? ( +# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) +# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) +# ) +# abi_mips_n64? ( +# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) +# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) +# ) +#)" + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV}" +KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86" +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 + sys-devel/gcc:* + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +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/${P}/bin/.* + opt/${P}/lib/.*.so + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/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/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # 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 + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +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 +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use rustfmt && components="${components},rustfmt-preview" + use rust-analyzer && components="${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" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}/bin/bash") + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" + find "${ED}/opt/${P}/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-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + $(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-${P}" + /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 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/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end 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 dev-debug/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 + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.74.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.74.1.ebuild new file mode 100644 index 00000000000..d2bd0f6eb5a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.74.1.ebuild @@ -0,0 +1,240 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-12-07/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Language empowering everyone to build reliable and efficient software" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) +" +# Keep this separate to allow easy commenting out if not yet built +SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " +#SRC_URI+=" mips? ( +# abi_mips_o32? ( +# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) +# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) +# ) +# abi_mips_n64? ( +# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) +# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) +# ) +#)" + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="stable" +KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86" +IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" + +DEPEND="" + +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + dev-libs/openssl + sys-apps/lsb-release + sys-devel/gcc:* +" + +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +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/${P}/bin/.* + opt/${P}/lib/.*.so + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/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/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # 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 + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +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 +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use rustfmt && components="${components},rustfmt-preview" + use rust-analyzer && components="${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" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}/bin/bash") + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" + find "${ED}/opt/${P}/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-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib" + MANPATH="${EPREFIX}/usr/lib/rust/man" + $(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-${P}" + /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 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/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end 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 + + elog "Rust installs a helper script for calling GDB now," + elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}." + + if has_version app-editors/emacs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.75.0-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.75.0-r100.ebuild new file mode 100644 index 00000000000..d2250c3b37a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.75.0-r100.ebuild @@ -0,0 +1,244 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 17 ) +LLVM_OPTIONAL="yes" + +inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-12-28/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Language empowering everyone to build reliable and efficient software" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) +" +# Keep this separate to allow easy commenting out if not yet built +SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " +#SRC_URI+=" mips? ( +# abi_mips_o32? ( +# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) +# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) +# ) +# abi_mips_n64? ( +# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) +# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) +# ) +#)" + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV}" +KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86" +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 + sys-devel/gcc:* + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +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/${P}/bin/.* + opt/${P}/lib/.*.so + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/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/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # 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 + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +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 +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use rustfmt && components="${components},rustfmt-preview" + use rust-analyzer && components="${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" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" + find "${ED}/opt/${P}/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-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + $(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-${P}" + /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 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/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end 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 dev-debug/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 + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.75.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.75.0.ebuild new file mode 100644 index 00000000000..30174fe2be2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.75.0.ebuild @@ -0,0 +1,240 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-12-28/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Language empowering everyone to build reliable and efficient software" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) +" +# Keep this separate to allow easy commenting out if not yet built +SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " +#SRC_URI+=" mips? ( +# abi_mips_o32? ( +# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) +# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) +# ) +# abi_mips_n64? ( +# big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) +# !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) +# ) +#)" + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="stable" +KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86" +IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" + +DEPEND="" + +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + dev-libs/openssl + sys-apps/lsb-release + sys-devel/gcc:* +" + +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +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/${P}/bin/.* + opt/${P}/lib/.*.so + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/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/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # 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 + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +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 +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use rustfmt && components="${components},rustfmt-preview" + use rust-analyzer && components="${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" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" + find "${ED}/opt/${P}/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-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib" + MANPATH="${EPREFIX}/usr/lib/rust/man" + $(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-${P}" + /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 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/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end 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 + + elog "Rust installs a helper script for calling GDB now," + elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}." + + if has_version app-editors/emacs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.77.1-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.77.1-r100.ebuild new file mode 100644 index 00000000000..0e64474657e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.77.1-r100.ebuild @@ -0,0 +1,246 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 17 ) +LLVM_OPTIONAL="yes" + +inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-03-28/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) +" +# Keep this separate to allow easy commenting out if not yet built +SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " +SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) +)" + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV}" +KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" +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 + sys-devel/gcc:* + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +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/${P}/bin/.* + opt/${P}/lib/.*.so + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/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/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # 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 + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +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 +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,rust-demangler-preview,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use rustfmt && components="${components},rustfmt-preview" + use rust-analyzer && components="${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" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" + find "${ED}/opt/${P}/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-demangler + 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-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + $(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-${P}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-demangler + /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 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/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end 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 dev-debug/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 + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.77.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.77.1.ebuild new file mode 100644 index 00000000000..3849d013666 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.77.1.ebuild @@ -0,0 +1,245 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-03-28/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) +" +# Keep this separate to allow easy commenting out if not yet built +SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " +SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) +)" + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="stable" +KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" +IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix profiler rust-analyzer rust-src rustfmt" + +DEPEND="" + +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + dev-libs/openssl + sys-apps/lsb-release + sys-devel/gcc:* +" + +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +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/${P}/bin/.* + opt/${P}/lib/.*.so + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/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/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # 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 + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +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 +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use profiler && components="${components},rust-demangler-preview" + use rustfmt && components="${components},rustfmt-preview" + use rust-analyzer && components="${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" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" + find "${ED}/opt/${P}/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 profiler && symlinks+=( rust-demangler ) + 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-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib" + MANPATH="${EPREFIX}/usr/lib/rust/man" + $(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-${P}" + /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 use profiler; then + echo /usr/bin/rust-demangler >> "${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/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end 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 + + elog "Rust installs a helper script for calling GDB now," + elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}." + + if has_version app-editors/emacs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.79.0-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.79.0-r100.ebuild new file mode 100644 index 00000000000..08058a9d05c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.79.0-r100.ebuild @@ -0,0 +1,249 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 18 ) +LLVM_OPTIONAL="yes" + +inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-06-13/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) +" +# Keep this separate to allow easy commenting out if not yet built +SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " +SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) +)" +SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz ) +)" + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV}" +KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" +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 + sys-devel/gcc:* + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +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/${P}/bin/.* + opt/${P}/lib/.*.so* + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/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/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # 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 + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +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 +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,rust-demangler-preview,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use rustfmt && components="${components},rustfmt-preview" + use rust-analyzer && components="${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" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" + find "${ED}/opt/${P}/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-demangler + 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-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + $(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-${P}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-demangler + /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 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/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end 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 dev-debug/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 + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.79.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.79.0.ebuild new file mode 100644 index 00000000000..aedec2e6829 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.79.0.ebuild @@ -0,0 +1,248 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-06-13/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) +" +# Keep this separate to allow easy commenting out if not yet built +SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " +SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) +)" +SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz ) +)" + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="stable" +KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" +IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix profiler rust-analyzer rust-src rustfmt" + +DEPEND="" + +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + dev-libs/openssl + sys-apps/lsb-release + sys-devel/gcc:* +" + +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +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/${P}/bin/.* + opt/${P}/lib/.*.so* + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/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/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # 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 + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +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 +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use profiler && components="${components},rust-demangler-preview" + use rustfmt && components="${components},rustfmt-preview" + use rust-analyzer && components="${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" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" + find "${ED}/opt/${P}/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 profiler && symlinks+=( rust-demangler ) + 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-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib" + MANPATH="${EPREFIX}/usr/lib/rust/man" + $(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-${P}" + /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 use profiler; then + echo /usr/bin/rust-demangler >> "${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/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end 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 + + elog "Rust installs a helper script for calling GDB now," + elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}." + + if has_version app-editors/emacs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.80.1-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.80.1-r100.ebuild new file mode 100644 index 00000000000..80683713c41 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.80.1-r100.ebuild @@ -0,0 +1,253 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 18 ) +LLVM_OPTIONAL="yes" + +inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-08-08/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) +" +# Keep this separate to allow easy commenting out if not yet built +SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " +SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) +)" +SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz ) +)" +SRC_URI+=" ppc64? ( elibc_musl? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64-unknown-linux-musl.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64le-unknown-linux-musl.tar.xz ) +) )" + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV}" +KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" +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 + sys-devel/gcc:* + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +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/${P}/bin/.* + opt/${P}/lib/.*.so* + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/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/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # 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 + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +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 +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,rust-demangler-preview,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use rustfmt && components="${components},rustfmt-preview" + use rust-analyzer && components="${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" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" + find "${ED}/opt/${P}/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-demangler + 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-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + $(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-${P}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-demangler + /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 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/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end 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 dev-debug/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 + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.80.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.80.1.ebuild new file mode 100644 index 00000000000..47fc367f294 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.80.1.ebuild @@ -0,0 +1,252 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-08-08/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) +" +# Keep this separate to allow easy commenting out if not yet built +SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " +SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) +)" +SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz ) +)" +SRC_URI+=" ppc64? ( elibc_musl? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64-unknown-linux-musl.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64le-unknown-linux-musl.tar.xz ) +) )" + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="stable" +KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" +IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix profiler rust-analyzer rust-src rustfmt" + +DEPEND="" + +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + dev-libs/openssl + sys-apps/lsb-release + sys-devel/gcc:* +" + +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +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/${P}/bin/.* + opt/${P}/lib/.*.so* + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/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/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # 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 + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +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 +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use profiler && components="${components},rust-demangler-preview" + use rustfmt && components="${components},rustfmt-preview" + use rust-analyzer && components="${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" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" + find "${ED}/opt/${P}/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 profiler && symlinks+=( rust-demangler ) + 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-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib" + MANPATH="${EPREFIX}/usr/lib/rust/man" + $(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-${P}" + /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 use profiler; then + echo /usr/bin/rust-demangler >> "${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/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end 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 + + elog "Rust installs a helper script for calling GDB now," + elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}." + + if has_version app-editors/emacs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.81.0-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.81.0-r100.ebuild new file mode 100644 index 00000000000..7d63e6e075b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.81.0-r100.ebuild @@ -0,0 +1,251 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 18 ) +LLVM_OPTIONAL="yes" + +inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-09-05/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) +" +# Keep this separate to allow easy commenting out if not yet built +SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " +SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) +)" +SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz ) +)" +SRC_URI+=" ppc64? ( elibc_musl? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64-unknown-linux-musl.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64le-unknown-linux-musl.tar.xz ) +) )" + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV}" +KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" +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 + sys-devel/gcc:* + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +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/${P}/bin/.* + opt/${P}/lib/.*.so* + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/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/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # 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 + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +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 +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use rustfmt && components="${components},rustfmt-preview" + use rust-analyzer && components="${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" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" + find "${ED}/opt/${P}/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-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + $(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-${P}" + /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 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/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end 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 dev-debug/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.81.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.81.0.ebuild new file mode 100644 index 00000000000..73ab615c566 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.81.0.ebuild @@ -0,0 +1,245 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-09-05/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) +" +# Keep this separate to allow easy commenting out if not yet built +SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " +SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) +)" +SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz ) +)" +SRC_URI+=" ppc64? ( elibc_musl? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64-unknown-linux-musl.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64le-unknown-linux-musl.tar.xz ) +) )" + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="stable" +KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" +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 + sys-devel/gcc:* +" + +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +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/${P}/bin/.* + opt/${P}/lib/.*.so* + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/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/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # 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 + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +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 +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use rustfmt && components="${components},rustfmt-preview" + use rust-analyzer && components="${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" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" + find "${ED}/opt/${P}/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-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib" + MANPATH="${EPREFIX}/usr/lib/rust/man" + $(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-${P}" + /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 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/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end 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 + + elog "Rust installs a helper script for calling GDB now," + elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}." + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.82.0-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.82.0-r100.ebuild new file mode 100644 index 00000000000..7dbc27333e5 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.82.0-r100.ebuild @@ -0,0 +1,253 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 19 ) +LLVM_OPTIONAL="yes" + +inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-10-17/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) +" +# Keep this separate to allow easy commenting out if not yet built +SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " +SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) +)" +SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz ) +)" +SRC_URI+=" ppc64? ( elibc_musl? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64-unknown-linux-musl.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64le-unknown-linux-musl.tar.xz ) +) )" + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV}" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +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 + sys-devel/gcc:* + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +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/${P}/bin/.* + opt/${P}/lib/.*.so* + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/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/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # 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 + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +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 +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use rustfmt && components="${components},rustfmt-preview" + use rust-analyzer && components="${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" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + 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/${P}/bin" + find "${ED}/opt/${P}/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-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}" + $(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-${P}" + /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 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/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end 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 dev-debug/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.82.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.82.0.ebuild new file mode 100644 index 00000000000..5ed18f6e45d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.82.0.ebuild @@ -0,0 +1,247 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-10-17/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) +" +# Keep this separate to allow easy commenting out if not yet built +SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " +SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) +)" +SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz ) +)" +SRC_URI+=" ppc64? ( elibc_musl? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64-unknown-linux-musl.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64le-unknown-linux-musl.tar.xz ) +) )" + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="stable" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +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 + sys-devel/gcc:* +" + +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +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/${P}/bin/.* + opt/${P}/lib/.*.so* + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/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/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # 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 + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +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 +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use rustfmt && components="${components},rustfmt-preview" + use rust-analyzer && components="${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" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + 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/${P}/bin" + find "${ED}/opt/${P}/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-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib" + MANPATH="${EPREFIX}/usr/lib/rust/man" + $(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-${P}" + /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 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/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end 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 + + elog "Rust installs a helper script for calling GDB now," + elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}." + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.71.1-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.71.1-r100.ebuild index d6cb947db40..78f8d663cf0 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.71.1-r100.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.71.1-r100.ebuild @@ -6,8 +6,11 @@ EAPI=8 LLVM_COMPAT=( 16 ) PYTHON_COMPAT=( python3_{10..12} ) +RUST_MAX_VER=${PV} +RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" + inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing \ - multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig + multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *beta* ]]; then betaver=${PV//*beta} @@ -20,18 +23,14 @@ else KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86" fi -S="${WORKDIR}/${MY_P}-src" - -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" - DESCRIPTION="Language empowering everyone to build reliable and efficient software" HOMEPAGE="https://www.rust-lang.org/" SRC_URI=" https://static.rust-lang.org/dist/${SRC} verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) " +S="${WORKDIR}/${MY_P}-src" # keep in sync with llvm ebuild of the same version as bundled one. ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai LoongArch Mips MSP430 @@ -42,7 +41,7 @@ LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA" SLOT="${PV}" -IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation @@ -52,29 +51,12 @@ done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'sys-devel/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}')" ) -# to bootstrap we need at least exactly previous version, or same. -# most of the time previous versions fail to bootstrap with newer -# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok, -# but it fails to bootstrap with 1.48.x -# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json -RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*" -RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*" -BOOTSTRAP_DEPEND="|| - ( - =dev-lang/rust-"${RUST_DEP_PREV}" - =dev-lang/rust-bin-"${RUST_DEP_PREV}" - =dev-lang/rust-"${RUST_DEP_CURR}" - =dev-lang/rust-bin-"${RUST_DEP_CURR}" - ) -" - BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( >=sys-devel/gcc-4.7 >=sys-devel/clang-3.5 ) - system-bootstrap? ( ${BOOTSTRAP_DEPEND} ) !system-llvm? ( >=dev-build/cmake-3.13.4 app-alternatives/ninja @@ -158,32 +140,8 @@ toml_usex() { usex "${1}" true false } -bootstrap_rust_version_check() { - # never call from pkg_pretend. eselect-rust may be not installed yet. - [[ ${MERGE_TYPE} == binary ]] && return - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))" - local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))" - local rustc_version=( $(eselect --brief rust show 2>/dev/null) ) - rustc_version=${rustc_version[0]#rust-bin-} - rustc_version=${rustc_version#rust-} - - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output" - - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then - eerror "Rust >=${rustc_wanted} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too old" - elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then - eerror "Rust <${rustc_toonew} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too new" - else - einfo "Using rust ${rustc_version} to build" - fi -} - pre_build_checks() { - local M=8192 + 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 )) @@ -206,7 +164,6 @@ pre_build_checks() { M=$(( 15 * ${M} / 10 )) fi eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) M=$(( $(usex doc 256 0) + ${M} )) CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} } @@ -236,7 +193,7 @@ pkg_setup() { export LIBGIT2_NO_PKG_CONFIG=1 #749381 - use system-bootstrap && bootstrap_rust_version_check + rust_pkg_setup if use system-llvm; then llvm-r1_pkg_setup @@ -247,38 +204,6 @@ pkg_setup() { fi } -esetup_unwind_hack() { - # https://bugs.gentoo.org/870280 - # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system. - # it should trigger for internal bootstrap or system-bootstrap with rust-bin. - # the whole idea is for stage0 to bootstrap with fake libgcc_s. - # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler. - local fakelib="${T}/fakelib" - mkdir -p "${fakelib}" || die - # we need both symlinks, one for cargo runtime, other for linker. - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die - export LD_LIBRARY_PATH="${fakelib}" - export RUSTFLAGS+=" -L${fakelib}" - # this is a literally magic variable that gets through cargo cache, without it some - # crates ignore RUSTFLAGS. - # this variable can not contain leading space. - export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}" -} - -src_prepare() { - if ! use system-bootstrap; then - has_version sys-devel/gcc || esetup_unwind_hack - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die - fi - - default -} - src_configure() { filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 @@ -306,14 +231,7 @@ src_configure() { use rust-analyzer && tools+=',"rust-analyzer"' use rust-src && tools+=',"src"' - local rust_stage0_root - if use system-bootstrap; then - local printsysroot - printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")" - rust_stage0_root="${printsysroot}" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - 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" @@ -706,12 +624,49 @@ src_install() { fi } +pkg_preinst() { + # 943308 and friends; basically --keep-going can forget to unmerge old rust + # but the soft blocker allows us to install conflicting files. + # This results in duplicated .{rlib,so} files which confuses rustc and results in + # the need for manual intervention. + if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then + # we need to find all .{rlib,so} files in the old rust lib directory + # and store them in an array for later use + readarray -d '' old_rust_libs < <( + find "${EROOT}/usr/lib/rust/${PV}/lib/rustlib" \ + -type f \( -name '*.rlib' -o -name '*.so' \) -print0) + export old_rust_libs + if [[ ${#old_rust_libs[@]} -gt 0 ]]; then + einfo "Found old .rlib and .so files in the old rust lib directory" + else + die "Found no old .rlib and .so files but old rust version is installed. Bailing!" + fi + fi +} + pkg_postinst() { + + if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then + # Be _extra_ careful here as we're removing files from the live filesystem + local f + for f in "${old_rust_libs[@]}"; do + [[ -f ${f} ]] || die "old_rust_libs array contains non-existent file" + local base_name="${f%-*}" + local ext="${f##*.}" + local matching_files=("${base_name}"-*.${ext}) + if [[ ${#matching_files[@]} -ne 2 ]]; then + die "Expected exactly two files matching ${base_name}-\*.rlib, but found ${#matching_files[@]}" + fi + einfo "Removing old .rlib file ${f}" + rm "${f}" || die + done + fi + eselect rust update if has_version dev-debug/gdb || has_version dev-debug/lldb; then - elog "Rust installs a helper script for calling GDB and LLDB," - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." + 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.74.1-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.74.1-r100.ebuild index bd474794968..7d362a51d3e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.74.1-r100.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.74.1-r100.ebuild @@ -6,8 +6,11 @@ EAPI=8 LLVM_COMPAT=( 17 ) PYTHON_COMPAT=( python3_{10..12} ) +RUST_MAX_VER=${PV} +RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" + inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing \ - multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig + multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *beta* ]]; then betaver=${PV//*beta} @@ -20,15 +23,12 @@ else KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv sparc x86" fi -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" - DESCRIPTION="Language empowering everyone to build reliable and efficient software" HOMEPAGE="https://www.rust-lang.org/" SRC_URI=" https://static.rust-lang.org/dist/${SRC} verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) " S="${WORKDIR}/${MY_P}-src" @@ -43,7 +43,7 @@ LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" -IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation @@ -53,29 +53,12 @@ done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'sys-devel/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}')" ) -# to bootstrap we need at least exactly previous version, or same. -# most of the time previous versions fail to bootstrap with newer -# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok, -# but it fails to bootstrap with 1.48.x -# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json -RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*" -RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*" -BOOTSTRAP_DEPEND="|| - ( - =dev-lang/rust-"${RUST_DEP_PREV}" - =dev-lang/rust-bin-"${RUST_DEP_PREV}" - =dev-lang/rust-"${RUST_DEP_CURR}" - =dev-lang/rust-bin-"${RUST_DEP_CURR}" - ) -" - BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( >=sys-devel/gcc-4.7 >=sys-devel/clang-3.5 ) - system-bootstrap? ( ${BOOTSTRAP_DEPEND} ) !system-llvm? ( >=dev-build/cmake-3.13.4 app-alternatives/ninja @@ -164,32 +147,8 @@ toml_usex() { usex "${1}" true false } -bootstrap_rust_version_check() { - # never call from pkg_pretend. eselect-rust may be not installed yet. - [[ ${MERGE_TYPE} == binary ]] && return - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))" - local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))" - local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) ) - rustc_version=${rustc_version[0]#rust-bin-} - rustc_version=${rustc_version#rust-} - - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output" - - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then - eerror "Rust >=${rustc_wanted} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too old" - elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then - eerror "Rust <${rustc_toonew} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too new" - else - einfo "Using rust ${rustc_version} to build" - fi -} - pre_build_checks() { - local M=8192 + 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 )) @@ -212,7 +171,6 @@ pre_build_checks() { M=$(( 15 * ${M} / 10 )) fi eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) M=$(( $(usex doc 256 0) + ${M} )) CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} } @@ -242,19 +200,13 @@ pkg_setup() { export LIBGIT2_NO_PKG_CONFIG=1 #749381 if tc-is-cross-compiler; then - export PKG_CONFIG_ALLOW_CROSS=1 - export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig" - export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include" - export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)" - - use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling" 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 - use system-bootstrap && bootstrap_rust_version_check + rust_pkg_setup if use system-llvm; then llvm-r1_pkg_setup @@ -265,46 +217,14 @@ pkg_setup() { fi } -esetup_unwind_hack() { - # https://bugs.gentoo.org/870280 - # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system. - # it should trigger for internal bootstrap or system-bootstrap with rust-bin. - # the whole idea is for stage0 to bootstrap with fake libgcc_s. - # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler. - local fakelib="${T}/fakelib" - mkdir -p "${fakelib}" || die - # we need both symlinks, one for cargo runtime, other for linker. - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die - export LD_LIBRARY_PATH="${fakelib}" - export RUSTFLAGS+=" -L${fakelib}" - # this is a literally magic variable that gets through cargo cache, without it some - # crates ignore RUSTFLAGS. - # this variable can not contain leading space. - export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}" -} - -src_prepare() { - # Clear vendor checksums for crates that we patched to bump libc. - # NOTE: refresh this on each bump. - #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \ - # terminal_size tracing-tree; do - # clear_vendor_checksums "${i}" - #done - - if ! use system-bootstrap; then - has_version sys-devel/gcc || esetup_unwind_hack - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die +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 - default -} - -src_configure() { filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 local rust_target="" rust_targets="" arch_cflags @@ -331,14 +251,7 @@ src_configure() { use rust-analyzer && tools+=',"rust-analyzer"' use rust-src && tools+=',"src"' - local rust_stage0_root - if use system-bootstrap; then - local printsysroot - printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")" - rust_stage0_root="${printsysroot}" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - 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" @@ -688,7 +601,7 @@ src_install() { # symlinks to switch components to active rust in eselect dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}" - dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}" + use rust-analyzer && dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}" dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}" dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}" dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" @@ -712,7 +625,6 @@ src_install() { /usr/bin/rust-lldb /usr/lib/rustlib /usr/lib/rust/lib - /usr/lib/rust/libexec /usr/lib/rust/man /usr/share/doc/rust _EOF_ @@ -730,9 +642,9 @@ src_install() { 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-${P}" @@ -742,12 +654,49 @@ src_install() { fi } +pkg_preinst() { + # 943308 and friends; basically --keep-going can forget to unmerge old rust + # but the soft blocker allows us to install conflicting files. + # This results in duplicated .{rlib,so} files which confuses rustc and results in + # the need for manual intervention. + if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then + # we need to find all .{rlib,so} files in the old rust lib directory + # and store them in an array for later use + readarray -d '' old_rust_libs < <( + find "${EROOT}/usr/lib/rust/${PV}/lib/rustlib" \ + -type f \( -name '*.rlib' -o -name '*.so' \) -print0) + export old_rust_libs + if [[ ${#old_rust_libs[@]} -gt 0 ]]; then + einfo "Found old .rlib and .so files in the old rust lib directory" + else + die "Found no old .rlib and .so files but old rust version is installed. Bailing!" + fi + fi +} + pkg_postinst() { + + if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then + # Be _extra_ careful here as we're removing files from the live filesystem + local f + for f in "${old_rust_libs[@]}"; do + [[ -f ${f} ]] || die "old_rust_libs array contains non-existent file" + local base_name="${f%-*}" + local ext="${f##*.}" + local matching_files=("${base_name}"-*.${ext}) + if [[ ${#matching_files[@]} -ne 2 ]]; then + die "Expected exactly two files matching ${base_name}-\*.rlib, but found ${#matching_files[@]}" + fi + einfo "Removing old .rlib file ${f}" + rm "${f}" || die + done + fi + eselect rust update if has_version dev-debug/gdb || has_version dev-debug/lldb; then - elog "Rust installs a helper script for calling GDB and LLDB," - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." + 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.75.0-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.75.0-r100.ebuild index 0517e38b84f..6a5b34dda65 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.75.0-r100.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.75.0-r100.ebuild @@ -6,8 +6,11 @@ EAPI=8 LLVM_COMPAT=( 17 ) PYTHON_COMPAT=( python3_{10..12} ) +RUST_MAX_VER=${PV} +RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" + inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing \ - multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig + multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *beta* ]]; then betaver=${PV//*beta} @@ -20,18 +23,14 @@ else KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv sparc x86" fi -S="${WORKDIR}/${MY_P}-src" - -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" - DESCRIPTION="Language empowering everyone to build reliable and efficient software" HOMEPAGE="https://www.rust-lang.org/" SRC_URI=" https://static.rust-lang.org/dist/${SRC} verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) " +S="${WORKDIR}/${MY_P}-src" # 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 @@ -43,7 +42,7 @@ LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" -IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation @@ -53,29 +52,12 @@ done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'sys-devel/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}')" ) -# to bootstrap we need at least exactly previous version, or same. -# most of the time previous versions fail to bootstrap with newer -# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok, -# but it fails to bootstrap with 1.48.x -# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json -RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*" -RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*" -BOOTSTRAP_DEPEND="|| - ( - =dev-lang/rust-"${RUST_DEP_PREV}" - =dev-lang/rust-bin-"${RUST_DEP_PREV}" - =dev-lang/rust-"${RUST_DEP_CURR}" - =dev-lang/rust-bin-"${RUST_DEP_CURR}" - ) -" - BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( >=sys-devel/gcc-4.7 >=sys-devel/clang-3.5 ) - system-bootstrap? ( ${BOOTSTRAP_DEPEND} ) !system-llvm? ( >=dev-build/cmake-3.13.4 app-alternatives/ninja @@ -167,32 +149,8 @@ toml_usex() { usex "${1}" true false } -bootstrap_rust_version_check() { - # never call from pkg_pretend. eselect-rust may be not installed yet. - [[ ${MERGE_TYPE} == binary ]] && return - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))" - local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))" - local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) ) - rustc_version=${rustc_version[0]#rust-bin-} - rustc_version=${rustc_version#rust-} - - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output" - - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then - eerror "Rust >=${rustc_wanted} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too old" - elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then - eerror "Rust <${rustc_toonew} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too new" - else - einfo "Using rust ${rustc_version} to build" - fi -} - pre_build_checks() { - local M=8192 + 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 )) @@ -215,7 +173,6 @@ pre_build_checks() { M=$(( 15 * ${M} / 10 )) fi eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) M=$(( $(usex doc 256 0) + ${M} )) CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} } @@ -245,19 +202,13 @@ pkg_setup() { export LIBGIT2_NO_PKG_CONFIG=1 #749381 if tc-is-cross-compiler; then - export PKG_CONFIG_ALLOW_CROSS=1 - export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig" - export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include" - export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)" - - use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling" 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 - use system-bootstrap && bootstrap_rust_version_check + rust_pkg_setup if use system-llvm; then llvm-r1_pkg_setup @@ -268,46 +219,14 @@ pkg_setup() { fi } -esetup_unwind_hack() { - # https://bugs.gentoo.org/870280 - # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system. - # it should trigger for internal bootstrap or system-bootstrap with rust-bin. - # the whole idea is for stage0 to bootstrap with fake libgcc_s. - # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler. - local fakelib="${T}/fakelib" - mkdir -p "${fakelib}" || die - # we need both symlinks, one for cargo runtime, other for linker. - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die - export LD_LIBRARY_PATH="${fakelib}" - export RUSTFLAGS+=" -L${fakelib}" - # this is a literally magic variable that gets through cargo cache, without it some - # crates ignore RUSTFLAGS. - # this variable can not contain leading space. - export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}" -} - -src_prepare() { - # Clear vendor checksums for crates that we patched to bump libc. - # NOTE: refresh this on each bump. - #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \ - # terminal_size tracing-tree; do - # clear_vendor_checksums "${i}" - #done - - if ! use system-bootstrap; then - has_version sys-devel/gcc || esetup_unwind_hack - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die +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 - default -} - -src_configure() { filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 local rust_target="" rust_targets="" arch_cflags @@ -334,14 +253,7 @@ src_configure() { use rust-analyzer && tools+=',"rust-analyzer"' use rust-src && tools+=',"src"' - local rust_stage0_root - if use system-bootstrap; then - local printsysroot - printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")" - rust_stage0_root="${printsysroot}" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - 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" @@ -691,7 +603,7 @@ src_install() { # symlinks to switch components to active rust in eselect dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}" - dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}" + use rust-analyzer && dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}" dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}" dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}" dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" @@ -715,7 +627,6 @@ src_install() { /usr/bin/rust-lldb /usr/lib/rustlib /usr/lib/rust/lib - /usr/lib/rust/libexec /usr/lib/rust/man /usr/share/doc/rust _EOF_ @@ -733,9 +644,9 @@ src_install() { 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-${P}" @@ -745,12 +656,49 @@ src_install() { fi } +pkg_preinst() { + # 943308 and friends; basically --keep-going can forget to unmerge old rust + # but the soft blocker allows us to install conflicting files. + # This results in duplicated .{rlib,so} files which confuses rustc and results in + # the need for manual intervention. + if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then + # we need to find all .{rlib,so} files in the old rust lib directory + # and store them in an array for later use + readarray -d '' old_rust_libs < <( + find "${EROOT}/usr/lib/rust/${PV}/lib/rustlib" \ + -type f \( -name '*.rlib' -o -name '*.so' \) -print0) + export old_rust_libs + if [[ ${#old_rust_libs[@]} -gt 0 ]]; then + einfo "Found old .rlib and .so files in the old rust lib directory" + else + die "Found no old .rlib and .so files but old rust version is installed. Bailing!" + fi + fi +} + pkg_postinst() { + + if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then + # Be _extra_ careful here as we're removing files from the live filesystem + local f + for f in "${old_rust_libs[@]}"; do + [[ -f ${f} ]] || die "old_rust_libs array contains non-existent file" + local base_name="${f%-*}" + local ext="${f##*.}" + local matching_files=("${base_name}"-*.${ext}) + if [[ ${#matching_files[@]} -ne 2 ]]; then + die "Expected exactly two files matching ${base_name}-\*.rlib, but found ${#matching_files[@]}" + fi + einfo "Removing old .rlib file ${f}" + rm "${f}" || die + done + fi + eselect rust update if has_version dev-debug/gdb || has_version dev-debug/lldb; then - elog "Rust installs a helper script for calling GDB and LLDB," - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." + 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.77.1-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.77.1-r100.ebuild index a6e6f0023b7..2aa9d06c541 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.77.1-r100.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.77.1-r100.ebuild @@ -6,8 +6,11 @@ EAPI=8 LLVM_COMPAT=( 17 ) PYTHON_COMPAT=( python3_{10..12} ) +RUST_MAX_VER=${PV} +RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" + inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing \ - multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig + multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *beta* ]]; then betaver=${PV//*beta} @@ -19,9 +22,6 @@ else SRC="${MY_P}-src.tar.xz" KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv sparc x86" fi -S="${WORKDIR}/${MY_P}-src" - -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" @@ -29,8 +29,8 @@ HOMEPAGE="https://www.rust-lang.org/" SRC_URI=" https://static.rust-lang.org/dist/${SRC} verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) " +S="${WORKDIR}/${MY_P}-src" # 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 @@ -42,7 +42,7 @@ LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" -IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation @@ -52,29 +52,12 @@ done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'sys-devel/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}')" ) -# to bootstrap we need at least exactly previous version, or same. -# most of the time previous versions fail to bootstrap with newer -# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok, -# but it fails to bootstrap with 1.48.x -# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json -RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*" -RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*" -BOOTSTRAP_DEPEND="|| - ( - =dev-lang/rust-"${RUST_DEP_PREV}" - =dev-lang/rust-bin-"${RUST_DEP_PREV}" - =dev-lang/rust-"${RUST_DEP_CURR}" - =dev-lang/rust-bin-"${RUST_DEP_CURR}" - ) -" - BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( >=sys-devel/gcc-4.7 >=sys-devel/clang-3.5 ) - system-bootstrap? ( ${BOOTSTRAP_DEPEND} ) !system-llvm? ( >=dev-build/cmake-3.13.4 app-alternatives/ninja @@ -164,32 +147,8 @@ toml_usex() { usex "${1}" true false } -bootstrap_rust_version_check() { - # never call from pkg_pretend. eselect-rust may be not installed yet. - [[ ${MERGE_TYPE} == binary ]] && return - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))" - local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))" - local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) ) - rustc_version=${rustc_version[0]#rust-bin-} - rustc_version=${rustc_version#rust-} - - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output" - - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then - eerror "Rust >=${rustc_wanted} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too old" - elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then - eerror "Rust <${rustc_toonew} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too new" - else - einfo "Using rust ${rustc_version} to build" - fi -} - pre_build_checks() { - local M=8192 + 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 )) @@ -212,7 +171,6 @@ pre_build_checks() { M=$(( 15 * ${M} / 10 )) fi eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) M=$(( $(usex doc 256 0) + ${M} )) CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} } @@ -242,19 +200,13 @@ pkg_setup() { export LIBGIT2_NO_PKG_CONFIG=1 #749381 if tc-is-cross-compiler; then - export PKG_CONFIG_ALLOW_CROSS=1 - export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig" - export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include" - export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)" - - use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling" 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 - use system-bootstrap && bootstrap_rust_version_check + rust_pkg_setup if use system-llvm; then llvm-r1_pkg_setup @@ -265,46 +217,14 @@ pkg_setup() { fi } -esetup_unwind_hack() { - # https://bugs.gentoo.org/870280 - # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system. - # it should trigger for internal bootstrap or system-bootstrap with rust-bin. - # the whole idea is for stage0 to bootstrap with fake libgcc_s. - # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler. - local fakelib="${T}/fakelib" - mkdir -p "${fakelib}" || die - # we need both symlinks, one for cargo runtime, other for linker. - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die - export LD_LIBRARY_PATH="${fakelib}" - export RUSTFLAGS+=" -L${fakelib}" - # this is a literally magic variable that gets through cargo cache, without it some - # crates ignore RUSTFLAGS. - # this variable can not contain leading space. - export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}" -} - -src_prepare() { - # Clear vendor checksums for crates that we patched to bump libc. - # NOTE: refresh this on each bump. - #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \ - # terminal_size tracing-tree; do - # clear_vendor_checksums "${i}" - #done - - if ! use system-bootstrap; then - has_version sys-devel/gcc || esetup_unwind_hack - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die +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 - default -} - -src_configure() { filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 local rust_target="" rust_targets="" arch_cflags @@ -331,14 +251,7 @@ src_configure() { use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' use rust-src && tools+=',"src"' - local rust_stage0_root - if use system-bootstrap; then - local printsysroot - printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")" - rust_stage0_root="${printsysroot}" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - 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" @@ -689,7 +602,7 @@ src_install() { # symlinks to switch components to active rust in eselect dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}" - dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}" + use rust-analyzer && dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}" dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}" dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}" dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" @@ -713,7 +626,6 @@ src_install() { /usr/bin/rust-lldb /usr/lib/rustlib /usr/lib/rust/lib - /usr/lib/rust/libexec /usr/lib/rust/man /usr/share/doc/rust _EOF_ @@ -731,9 +643,9 @@ src_install() { 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-${P}" @@ -743,12 +655,49 @@ src_install() { fi } +pkg_preinst() { + # 943308 and friends; basically --keep-going can forget to unmerge old rust + # but the soft blocker allows us to install conflicting files. + # This results in duplicated .{rlib,so} files which confuses rustc and results in + # the need for manual intervention. + if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then + # we need to find all .{rlib,so} files in the old rust lib directory + # and store them in an array for later use + readarray -d '' old_rust_libs < <( + find "${EROOT}/usr/lib/rust/${PV}/lib/rustlib" \ + -type f \( -name '*.rlib' -o -name '*.so' \) -print0) + export old_rust_libs + if [[ ${#old_rust_libs[@]} -gt 0 ]]; then + einfo "Found old .rlib and .so files in the old rust lib directory" + else + die "Found no old .rlib and .so files but old rust version is installed. Bailing!" + fi + fi +} + pkg_postinst() { + + if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then + # Be _extra_ careful here as we're removing files from the live filesystem + local f + for f in "${old_rust_libs[@]}"; do + [[ -f ${f} ]] || die "old_rust_libs array contains non-existent file" + local base_name="${f%-*}" + local ext="${f##*.}" + local matching_files=("${base_name}"-*.${ext}) + if [[ ${#matching_files[@]} -ne 2 ]]; then + die "Expected exactly two files matching ${base_name}-\*.rlib, but found ${#matching_files[@]}" + fi + einfo "Removing old .rlib file ${f}" + rm "${f}" || die + done + fi + eselect rust update if has_version dev-debug/gdb || has_version dev-debug/lldb; then - elog "Rust installs a helper script for calling GDB and LLDB," - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." + 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.79.0-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.79.0-r100.ebuild index bf13cf11984..392cc8f2684 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.79.0-r100.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.79.0-r100.ebuild @@ -6,8 +6,11 @@ EAPI=8 LLVM_COMPAT=( 18 ) PYTHON_COMPAT=( python3_{10..13} ) +RUST_MAX_VER=${PV} +RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" + inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing \ - multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig + multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *beta* ]]; then betaver=${PV//*beta} @@ -20,15 +23,12 @@ else KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86" fi -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" - DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" SRC_URI=" https://static.rust-lang.org/dist/${SRC} verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) " S="${WORKDIR}/${MY_P}-src" @@ -42,7 +42,7 @@ LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" -IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation @@ -52,29 +52,12 @@ done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'sys-devel/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}')" ) -# to bootstrap we need at least exactly previous version, or same. -# most of the time previous versions fail to bootstrap with newer -# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok, -# but it fails to bootstrap with 1.48.x -# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json -RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*" -RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*" -BOOTSTRAP_DEPEND="|| - ( - =dev-lang/rust-"${RUST_DEP_PREV}" - =dev-lang/rust-bin-"${RUST_DEP_PREV}" - =dev-lang/rust-"${RUST_DEP_CURR}" - =dev-lang/rust-bin-"${RUST_DEP_CURR}" - ) -" - BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( >=sys-devel/gcc-4.7 >=sys-devel/clang-3.5 ) - system-bootstrap? ( ${BOOTSTRAP_DEPEND} ) !system-llvm? ( >=dev-build/cmake-3.13.4 app-alternatives/ninja @@ -164,32 +147,8 @@ toml_usex() { usex "${1}" true false } -bootstrap_rust_version_check() { - # never call from pkg_pretend. eselect-rust may be not installed yet. - [[ ${MERGE_TYPE} == binary ]] && return - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))" - local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))" - local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) ) - rustc_version=${rustc_version[0]#rust-bin-} - rustc_version=${rustc_version#rust-} - - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output" - - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then - eerror "Rust >=${rustc_wanted} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too old" - elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then - eerror "Rust <${rustc_toonew} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too new" - else - einfo "Using rust ${rustc_version} to build" - fi -} - pre_build_checks() { - local M=8192 + 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 )) @@ -212,7 +171,6 @@ pre_build_checks() { M=$(( 15 * ${M} / 10 )) fi eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) M=$(( $(usex doc 256 0) + ${M} )) CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} } @@ -242,19 +200,13 @@ pkg_setup() { export LIBGIT2_NO_PKG_CONFIG=1 #749381 if tc-is-cross-compiler; then - export PKG_CONFIG_ALLOW_CROSS=1 - export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig" - export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include" - export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)" - - use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling" 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 - use system-bootstrap && bootstrap_rust_version_check + rust_pkg_setup if use system-llvm; then llvm-r1_pkg_setup @@ -265,46 +217,14 @@ pkg_setup() { fi } -esetup_unwind_hack() { - # https://bugs.gentoo.org/870280 - # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system. - # it should trigger for internal bootstrap or system-bootstrap with rust-bin. - # the whole idea is for stage0 to bootstrap with fake libgcc_s. - # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler. - local fakelib="${T}/fakelib" - mkdir -p "${fakelib}" || die - # we need both symlinks, one for cargo runtime, other for linker. - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die - export LD_LIBRARY_PATH="${fakelib}" - export RUSTFLAGS+=" -L${fakelib}" - # this is a literally magic variable that gets through cargo cache, without it some - # crates ignore RUSTFLAGS. - # this variable can not contain leading space. - export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}" -} - -src_prepare() { - # Clear vendor checksums for crates that we patched to bump libc. - # NOTE: refresh this on each bump. - #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \ - # terminal_size tracing-tree; do - # clear_vendor_checksums "${i}" - #done - - if ! use system-bootstrap; then - has_version sys-devel/gcc || esetup_unwind_hack - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die +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 - default -} - -src_configure() { filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 local rust_target="" rust_targets="" arch_cflags @@ -331,14 +251,7 @@ src_configure() { use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' use rust-src && tools+=',"src"' - local rust_stage0_root - if use system-bootstrap; then - local printsysroot - printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")" - rust_stage0_root="${printsysroot}" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - 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" @@ -691,7 +604,7 @@ src_install() { # symlinks to switch components to active rust in eselect dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}" - dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}" + use rust-analyzer && dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}" dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}" dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}" dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" @@ -715,7 +628,6 @@ src_install() { /usr/bin/rust-lldb /usr/lib/rustlib /usr/lib/rust/lib - /usr/lib/rust/libexec /usr/lib/rust/man /usr/share/doc/rust _EOF_ @@ -733,9 +645,9 @@ src_install() { 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-${P}" @@ -746,12 +658,49 @@ src_install() { fi } +pkg_preinst() { + # 943308 and friends; basically --keep-going can forget to unmerge old rust + # but the soft blocker allows us to install conflicting files. + # This results in duplicated .{rlib,so} files which confuses rustc and results in + # the need for manual intervention. + if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then + # we need to find all .{rlib,so} files in the old rust lib directory + # and store them in an array for later use + readarray -d '' old_rust_libs < <( + find "${EROOT}/usr/lib/rust/${PV}/lib/rustlib" \ + -type f \( -name '*.rlib' -o -name '*.so' \) -print0) + export old_rust_libs + if [[ ${#old_rust_libs[@]} -gt 0 ]]; then + einfo "Found old .rlib and .so files in the old rust lib directory" + else + die "Found no old .rlib and .so files but old rust version is installed. Bailing!" + fi + fi +} + pkg_postinst() { + + if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then + # Be _extra_ careful here as we're removing files from the live filesystem + local f + for f in "${old_rust_libs[@]}"; do + [[ -f ${f} ]] || die "old_rust_libs array contains non-existent file" + local base_name="${f%-*}" + local ext="${f##*.}" + local matching_files=("${base_name}"-*.${ext}) + if [[ ${#matching_files[@]} -ne 2 ]]; then + die "Expected exactly two files matching ${base_name}-\*.rlib, but found ${#matching_files[@]}" + fi + einfo "Removing old .rlib file ${f}" + rm "${f}" || die + done + fi + eselect rust update if has_version dev-debug/gdb || has_version dev-debug/lldb; then - elog "Rust installs a helper script for calling GDB and LLDB," - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." + 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.80.1-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.80.1-r100.ebuild index 782d0f8d92f..72080e2236f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.80.1-r100.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.80.1-r100.ebuild @@ -6,8 +6,11 @@ EAPI=8 LLVM_COMPAT=( 18 ) PYTHON_COMPAT=( python3_{10..13} ) +RUST_MAX_VER=${PV} +RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" + inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing \ - multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig + multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *beta* ]]; then betaver=${PV//*beta} @@ -20,15 +23,12 @@ else KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86" fi -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" - DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" SRC_URI=" https://static.rust-lang.org/dist/${SRC} verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) " S="${WORKDIR}/${MY_P}-src" @@ -42,7 +42,7 @@ LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" -IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation @@ -52,29 +52,12 @@ done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'sys-devel/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}')" ) -# to bootstrap we need at least exactly previous version, or same. -# most of the time previous versions fail to bootstrap with newer -# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok, -# but it fails to bootstrap with 1.48.x -# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json -RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*" -RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*" -BOOTSTRAP_DEPEND="|| - ( - =dev-lang/rust-"${RUST_DEP_PREV}" - =dev-lang/rust-bin-"${RUST_DEP_PREV}" - =dev-lang/rust-"${RUST_DEP_CURR}" - =dev-lang/rust-bin-"${RUST_DEP_CURR}" - ) -" - BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( >=sys-devel/gcc-4.7 >=sys-devel/clang-3.5 ) - system-bootstrap? ( ${BOOTSTRAP_DEPEND} ) !system-llvm? ( >=dev-build/cmake-3.13.4 app-alternatives/ninja @@ -163,32 +146,8 @@ toml_usex() { usex "${1}" true false } -bootstrap_rust_version_check() { - # never call from pkg_pretend. eselect-rust may be not installed yet. - [[ ${MERGE_TYPE} == binary ]] && return - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))" - local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))" - local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) ) - rustc_version=${rustc_version[0]#rust-bin-} - rustc_version=${rustc_version#rust-} - - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output" - - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then - eerror "Rust >=${rustc_wanted} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too old" - elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then - eerror "Rust <${rustc_toonew} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too new" - else - einfo "Using rust ${rustc_version} to build" - fi -} - pre_build_checks() { - local M=8192 + 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 )) @@ -211,7 +170,6 @@ pre_build_checks() { M=$(( 15 * ${M} / 10 )) fi eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) M=$(( $(usex doc 256 0) + ${M} )) CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} } @@ -241,19 +199,13 @@ pkg_setup() { export LIBGIT2_NO_PKG_CONFIG=1 #749381 if tc-is-cross-compiler; then - export PKG_CONFIG_ALLOW_CROSS=1 - export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig" - export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include" - export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)" - - use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling" 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 - use system-bootstrap && bootstrap_rust_version_check + rust_pkg_setup if use system-llvm; then llvm-r1_pkg_setup @@ -264,46 +216,14 @@ pkg_setup() { fi } -esetup_unwind_hack() { - # https://bugs.gentoo.org/870280 - # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system. - # it should trigger for internal bootstrap or system-bootstrap with rust-bin. - # the whole idea is for stage0 to bootstrap with fake libgcc_s. - # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler. - local fakelib="${T}/fakelib" - mkdir -p "${fakelib}" || die - # we need both symlinks, one for cargo runtime, other for linker. - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die - export LD_LIBRARY_PATH="${fakelib}" - export RUSTFLAGS+=" -L${fakelib}" - # this is a literally magic variable that gets through cargo cache, without it some - # crates ignore RUSTFLAGS. - # this variable can not contain leading space. - export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}" -} - -src_prepare() { - # Clear vendor checksums for crates that we patched to bump libc. - # NOTE: refresh this on each bump. - #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \ - # terminal_size tracing-tree; do - # clear_vendor_checksums "${i}" - #done - - if ! use system-bootstrap; then - has_version sys-devel/gcc || esetup_unwind_hack - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die +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 - default -} - -src_configure() { filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 local rust_target="" rust_targets="" arch_cflags @@ -330,14 +250,7 @@ src_configure() { use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' use rust-src && tools+=',"src"' - local rust_stage0_root - if use system-bootstrap; then - local printsysroot - printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")" - rust_stage0_root="${printsysroot}" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - 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" @@ -663,7 +576,6 @@ src_install() { rust-gdb rust-gdbgui rust-lldb - rust-demangler ) use clippy && symlinks+=( clippy-driver cargo-clippy ) @@ -690,7 +602,7 @@ src_install() { # symlinks to switch components to active rust in eselect dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}" - dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}" + use rust-analyzer && dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}" dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}" dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}" dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" @@ -708,13 +620,11 @@ src_install() { cat <<-_EOF_ > "${T}/provider-${P}" /usr/bin/cargo /usr/bin/rustdoc - /usr/bin/rust-demangler /usr/bin/rust-gdb /usr/bin/rust-gdbgui /usr/bin/rust-lldb /usr/lib/rustlib /usr/lib/rust/lib - /usr/lib/rust/libexec /usr/lib/rust/man /usr/share/doc/rust _EOF_ @@ -732,9 +642,9 @@ src_install() { 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-${P}" @@ -745,12 +655,49 @@ src_install() { fi } +pkg_preinst() { + # 943308 and friends; basically --keep-going can forget to unmerge old rust + # but the soft blocker allows us to install conflicting files. + # This results in duplicated .{rlib,so} files which confuses rustc and results in + # the need for manual intervention. + if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then + # we need to find all .{rlib,so} files in the old rust lib directory + # and store them in an array for later use + readarray -d '' old_rust_libs < <( + find "${EROOT}/usr/lib/rust/${PV}/lib/rustlib" \ + -type f \( -name '*.rlib' -o -name '*.so' \) -print0) + export old_rust_libs + if [[ ${#old_rust_libs[@]} -gt 0 ]]; then + einfo "Found old .rlib and .so files in the old rust lib directory" + else + die "Found no old .rlib and .so files but old rust version is installed. Bailing!" + fi + fi +} + pkg_postinst() { + + if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then + # Be _extra_ careful here as we're removing files from the live filesystem + local f + for f in "${old_rust_libs[@]}"; do + [[ -f ${f} ]] || die "old_rust_libs array contains non-existent file" + local base_name="${f%-*}" + local ext="${f##*.}" + local matching_files=("${base_name}"-*.${ext}) + if [[ ${#matching_files[@]} -ne 2 ]]; then + die "Expected exactly two files matching ${base_name}-\*.rlib, but found ${#matching_files[@]}" + fi + einfo "Removing old .rlib file ${f}" + rm "${f}" || die + done + fi + eselect rust update if has_version dev-debug/gdb || has_version dev-debug/lldb; then - elog "Rust installs a helper script for calling GDB and LLDB," - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." + 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.81.0-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.81.0-r100.ebuild index a6316b4e46f..54695b7209d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.81.0-r100.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.81.0-r100.ebuild @@ -6,8 +6,11 @@ EAPI=8 LLVM_COMPAT=( 18 ) PYTHON_COMPAT=( python3_{10..13} ) +RUST_MAX_VER=${PV} +RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" + inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ - multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig + multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *beta* ]]; then betaver=${PV//*beta} @@ -21,14 +24,12 @@ else fi RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).1" - DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" SRC_URI=" https://static.rust-lang.org/dist/${SRC} verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) " S="${WORKDIR}/${MY_P}-src" @@ -42,7 +43,7 @@ LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" -IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation @@ -52,29 +53,12 @@ done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'sys-devel/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}')" ) -# to bootstrap we need at least exactly previous version, or same. -# most of the time previous versions fail to bootstrap with newer -# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok, -# but it fails to bootstrap with 1.48.x -# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json -RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*" -RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*" -BOOTSTRAP_DEPEND="|| - ( - =dev-lang/rust-"${RUST_DEP_PREV}" - =dev-lang/rust-bin-"${RUST_DEP_PREV}" - =dev-lang/rust-"${RUST_DEP_CURR}" - =dev-lang/rust-bin-"${RUST_DEP_CURR}" - ) -" - BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( >=sys-devel/gcc-4.7 >=sys-devel/clang-3.5 ) - system-bootstrap? ( ${BOOTSTRAP_DEPEND} ) !system-llvm? ( >=dev-build/cmake-3.13.4 app-alternatives/ninja @@ -166,32 +150,8 @@ toml_usex() { usex "${1}" true false } -bootstrap_rust_version_check() { - # never call from pkg_pretend. eselect-rust may be not installed yet. - [[ ${MERGE_TYPE} == binary ]] && return - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))" - local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))" - local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) ) - rustc_version=${rustc_version[0]#rust-bin-} - rustc_version=${rustc_version#rust-} - - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output" - - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then - eerror "Rust >=${rustc_wanted} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too old" - elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then - eerror "Rust <${rustc_toonew} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too new" - else - einfo "Using rust ${rustc_version} to build" - fi -} - pre_build_checks() { - local M=8192 + 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 )) @@ -214,7 +174,6 @@ pre_build_checks() { M=$(( 15 * ${M} / 10 )) fi eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) M=$(( $(usex doc 256 0) + ${M} )) CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} } @@ -244,19 +203,13 @@ pkg_setup() { export LIBGIT2_NO_PKG_CONFIG=1 #749381 if tc-is-cross-compiler; then - export PKG_CONFIG_ALLOW_CROSS=1 - export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig" - export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include" - export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)" - - use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling" 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 - use system-bootstrap && bootstrap_rust_version_check + rust_pkg_setup if use system-llvm; then llvm-r1_pkg_setup @@ -267,46 +220,14 @@ pkg_setup() { fi } -esetup_unwind_hack() { - # https://bugs.gentoo.org/870280 - # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system. - # it should trigger for internal bootstrap or system-bootstrap with rust-bin. - # the whole idea is for stage0 to bootstrap with fake libgcc_s. - # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler. - local fakelib="${T}/fakelib" - mkdir -p "${fakelib}" || die - # we need both symlinks, one for cargo runtime, other for linker. - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die - export LD_LIBRARY_PATH="${fakelib}" - export RUSTFLAGS+=" -L${fakelib}" - # this is a literally magic variable that gets through cargo cache, without it some - # crates ignore RUSTFLAGS. - # this variable can not contain leading space. - export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}" -} - -src_prepare() { - # Clear vendor checksums for crates that we patched to bump libc. - # NOTE: refresh this on each bump. - #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \ - # terminal_size tracing-tree; do - # clear_vendor_checksums "${i}" - #done - - if ! use system-bootstrap; then - has_version sys-devel/gcc || esetup_unwind_hack - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die +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 - default -} - -src_configure() { filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 local rust_target="" rust_targets="" arch_cflags @@ -333,14 +254,7 @@ src_configure() { use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' use rust-src && tools+=',"src"' - local rust_stage0_root - if use system-bootstrap; then - local printsysroot - printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")" - rust_stage0_root="${printsysroot}" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - 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" @@ -692,7 +606,7 @@ src_install() { # symlinks to switch components to active rust in eselect dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}" - dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}" + use rust-analyzer && dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}" dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}" dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}" dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" @@ -715,7 +629,6 @@ src_install() { /usr/bin/rust-lldb /usr/lib/rustlib /usr/lib/rust/lib - /usr/lib/rust/libexec /usr/lib/rust/man /usr/share/doc/rust _EOF_ @@ -733,9 +646,9 @@ src_install() { 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-${P}" @@ -746,12 +659,49 @@ src_install() { fi } +pkg_preinst() { + # 943308 and friends; basically --keep-going can forget to unmerge old rust + # but the soft blocker allows us to install conflicting files. + # This results in duplicated .{rlib,so} files which confuses rustc and results in + # the need for manual intervention. + if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then + # we need to find all .{rlib,so} files in the old rust lib directory + # and store them in an array for later use + readarray -d '' old_rust_libs < <( + find "${EROOT}/usr/lib/rust/${PV}/lib/rustlib" \ + -type f \( -name '*.rlib' -o -name '*.so' \) -print0) + export old_rust_libs + if [[ ${#old_rust_libs[@]} -gt 0 ]]; then + einfo "Found old .rlib and .so files in the old rust lib directory" + else + die "Found no old .rlib and .so files but old rust version is installed. Bailing!" + fi + fi +} + pkg_postinst() { + + if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then + # Be _extra_ careful here as we're removing files from the live filesystem + local f + for f in "${old_rust_libs[@]}"; do + [[ -f ${f} ]] || die "old_rust_libs array contains non-existent file" + local base_name="${f%-*}" + local ext="${f##*.}" + local matching_files=("${base_name}"-*.${ext}) + if [[ ${#matching_files[@]} -ne 2 ]]; then + die "Expected exactly two files matching ${base_name}-\*.rlib, but found ${#matching_files[@]}" + fi + einfo "Removing old .rlib file ${f}" + rm "${f}" || die + done + fi + eselect rust update if has_version dev-debug/gdb || has_version dev-debug/lldb; then - elog "Rust installs a helper script for calling GDB and LLDB," - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." + 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.82.0-r100.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.82.0-r100.ebuild index 6cba749daef..714ff39f1a8 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.82.0-r100.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.82.0-r100.ebuild @@ -6,8 +6,11 @@ EAPI=8 LLVM_COMPAT=( 19 ) PYTHON_COMPAT=( python3_{10..13} ) +RUST_MAX_VER=${PV} +RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" + inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ - multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig + multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *beta* ]]; then betaver=${PV//*beta} @@ -20,15 +23,12 @@ else KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" fi -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" - DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" SRC_URI=" https://static.rust-lang.org/dist/${SRC} verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) " S="${WORKDIR}/${MY_P}-src" @@ -42,7 +42,7 @@ LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" -IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation @@ -52,29 +52,12 @@ done LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'sys-devel/lld:${LLVM_SLOT}') )" ) LLVM_DEPEND+=( " $(llvm_gen_dep 'sys-devel/llvm:${LLVM_SLOT}')" ) -# to bootstrap we need at least exactly previous version, or same. -# most of the time previous versions fail to bootstrap with newer -# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok, -# but it fails to bootstrap with 1.48.x -# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json -RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*" -RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*" -BOOTSTRAP_DEPEND="|| - ( - =dev-lang/rust-"${RUST_DEP_PREV}" - =dev-lang/rust-bin-"${RUST_DEP_PREV}" - =dev-lang/rust-"${RUST_DEP_CURR}" - =dev-lang/rust-bin-"${RUST_DEP_CURR}" - ) -" - BDEPEND="${PYTHON_DEPS} app-eselect/eselect-rust || ( >=sys-devel/gcc-4.7 >=sys-devel/clang-3.5 ) - system-bootstrap? ( ${BOOTSTRAP_DEPEND} ) !system-llvm? ( >=dev-build/cmake-3.13.4 app-alternatives/ninja @@ -152,7 +135,6 @@ PATCHES=( "${FILESDIR}"/1.74.1-cross-compile-libz.patch #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh "${FILESDIR}"/1.67.0-doc-wasm.patch - "${FILESDIR}"/1.79.0-revert-8c40426.patch ) clear_vendor_checksums() { @@ -163,32 +145,8 @@ toml_usex() { usex "${1}" true false } -bootstrap_rust_version_check() { - # never call from pkg_pretend. eselect-rust may be not installed yet. - [[ ${MERGE_TYPE} == binary ]] && return - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))" - local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))" - local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) ) - rustc_version=${rustc_version[0]#rust-bin-} - rustc_version=${rustc_version#rust-} - - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output" - - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then - eerror "Rust >=${rustc_wanted} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too old" - elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then - eerror "Rust <${rustc_toonew} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too new" - else - einfo "Using rust ${rustc_version} to build" - fi -} - pre_build_checks() { - local M=8192 + 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 )) @@ -211,7 +169,6 @@ pre_build_checks() { M=$(( 15 * ${M} / 10 )) fi eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) M=$(( $(usex doc 256 0) + ${M} )) CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} } @@ -241,19 +198,13 @@ pkg_setup() { export LIBGIT2_NO_PKG_CONFIG=1 #749381 if tc-is-cross-compiler; then - export PKG_CONFIG_ALLOW_CROSS=1 - export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig" - export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include" - export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)" - - use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling" 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 - use system-bootstrap && bootstrap_rust_version_check + rust_pkg_setup if use system-llvm; then llvm-r1_pkg_setup @@ -264,54 +215,26 @@ pkg_setup() { fi } -esetup_unwind_hack() { - # https://bugs.gentoo.org/870280 - # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system. - # it should trigger for internal bootstrap or system-bootstrap with rust-bin. - # the whole idea is for stage0 to bootstrap with fake libgcc_s. - # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler. - local fakelib="${T}/fakelib" - mkdir -p "${fakelib}" || die - # we need both symlinks, one for cargo runtime, other for linker. - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die - export LD_LIBRARY_PATH="${fakelib}" - export RUSTFLAGS+=" -L${fakelib}" - # this is a literally magic variable that gets through cargo cache, without it some - # crates ignore RUSTFLAGS. - # this variable can not contain leading space. - export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}" -} - src_prepare() { - # Clear vendor checksums for crates that we patched to bump libc. - # NOTE: refresh this on each bump. - #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \ - # terminal_size tracing-tree; do - # clear_vendor_checksums "${i}" - #done - # Rust baselines to Pentium4 on x86, this patch lowers the baseline to i586 when sse2 is not set. if use x86; then if ! use cpu_flags_x86_sse2; then eapply "${FILESDIR}/1.82.0-i586-baseline.patch" - grep -rl cmd.args.push\(\"-march=i686\" . | xargs sed -i 's/march=i686/-march=i586/g' || die + #grep -rl cmd.args.push\(\"-march=i686\" . | xargs sed -i 's/march=i686/-march=i586/g' || die fi fi - if ! use system-bootstrap; then - has_version sys-devel/gcc || esetup_unwind_hack - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die - 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 + filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 local rust_target="" rust_targets="" arch_cflags @@ -338,14 +261,7 @@ src_configure() { use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' use rust-src && tools+=',"src"' - local rust_stage0_root - if use system-bootstrap; then - local printsysroot - printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")" - rust_stage0_root="${printsysroot}" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - 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" @@ -699,7 +615,7 @@ src_install() { # symlinks to switch components to active rust in eselect dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}" - dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}" + use rust-analyzer && dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}" dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}" dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}" dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" @@ -722,7 +638,6 @@ src_install() { /usr/bin/rust-lldb /usr/lib/rustlib /usr/lib/rust/lib - /usr/lib/rust/libexec /usr/lib/rust/man /usr/share/doc/rust _EOF_ @@ -740,6 +655,7 @@ src_install() { 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 @@ -753,12 +669,49 @@ src_install() { fi } +pkg_preinst() { + # 943308 and friends; basically --keep-going can forget to unmerge old rust + # but the soft blocker allows us to install conflicting files. + # This results in duplicated .{rlib,so} files which confuses rustc and results in + # the need for manual intervention. + if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then + # we need to find all .{rlib,so} files in the old rust lib directory + # and store them in an array for later use + readarray -d '' old_rust_libs < <( + find "${EROOT}/usr/lib/rust/${PV}/lib/rustlib" \ + -type f \( -name '*.rlib' -o -name '*.so' \) -print0) + export old_rust_libs + if [[ ${#old_rust_libs[@]} -gt 0 ]]; then + einfo "Found old .rlib and .so files in the old rust lib directory" + else + die "Found no old .rlib and .so files but old rust version is installed. Bailing!" + fi + fi +} + pkg_postinst() { + + if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then + # Be _extra_ careful here as we're removing files from the live filesystem + local f + for f in "${old_rust_libs[@]}"; do + [[ -f ${f} ]] || die "old_rust_libs array contains non-existent file" + local base_name="${f%-*}" + local ext="${f##*.}" + local matching_files=("${base_name}"-*.${ext}) + if [[ ${#matching_files[@]} -ne 2 ]]; then + die "Expected exactly two files matching ${base_name}-\*.rlib, but found ${#matching_files[@]}" + fi + einfo "Removing old .rlib file ${f}" + rm "${f}" || die + done + fi + eselect rust update if has_version dev-debug/gdb || has_version dev-debug/lldb; then - elog "Rust installs a helper script for calling GDB and LLDB," - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." + 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/tcl/tcl-8.6.15.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/tcl/tcl-8.6.15.ebuild index d5937675afa..ba493ce1c42 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/tcl/tcl-8.6.15.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/tcl/tcl-8.6.15.ebuild @@ -18,7 +18,7 @@ S="${SPARENT}"/unix LICENSE="tcltk Spencer-99" 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" +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="debug +threads" RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/cyrus-sasl/cyrus-sasl-2.1.28-r5.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/cyrus-sasl/cyrus-sasl-2.1.28-r5.ebuild index 53a7bb02f62..fd1da2a4626 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/cyrus-sasl/cyrus-sasl-2.1.28-r5.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/cyrus-sasl/cyrus-sasl-2.1.28-r5.ebuild @@ -15,7 +15,7 @@ SRC_URI+=" https://dev.gentoo.org/~grobian/distfiles/${MY_PATCH_VER}.tar.xz" LICENSE="BSD-with-attribution" SLOT="2" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~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 ~mips ~ppc ~ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="authdaemond berkdb gdbm kerberos ldapdb openldap mysql pam postgres sample selinux sqlite srp ssl static-libs urandom" REQUIRED_USE="ldapdb? ( openldap )" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.6.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.6.4.ebuild index 5f80573e713..d30100cfed7 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.6.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.6.4.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://github.com/libexpat/libexpat/releases/download/R_${PV//\./_}/ex LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ~ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="examples static-libs test unicode" RESTRICT="!test? ( test )" BDEPEND="unicode? ( ${AUTOTOOLS_DEPEND} )" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/gmp/gmp-6.3.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/gmp/gmp-6.3.0-r1.ebuild index 1e060d527db..2cef81b66de 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/gmp/gmp-6.3.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/gmp/gmp-6.3.0-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -96,6 +96,8 @@ multilib_src_configure() { # 6.3.0 says it now supports LTO, but needs retesting on a variety # of platforms. Fix was maybe https://gmplib.org/repo/gmp-6.3/rev/9c324044f4b5. filter-lto + # https://gmplib.org/list-archives/gmp-bugs/2024-November/005550.html + append-cflags -std=gnu17 # Because of our 32-bit userland, 1.0 is the only HPPA ABI that works # https://gmplib.org/manual/ABI-and-ISA.html#ABI-and-ISA (bug #344613) 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 582ba35e41c..5f6b3ef8717 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/json-c/json-c-0.18.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/json-c/json-c-0.18.ebuild @@ -14,7 +14,7 @@ if [[ ${PV} == 9999 ]] ; then else SRC_URI="https://s3.amazonaws.com/json-c_releases/releases/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos" + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos" fi LICENSE="MIT" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libffi/files/libffi-3.4.6-c23-tests.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libffi/files/libffi-3.4.6-c23-tests.patch new file mode 100644 index 00000000000..dc53b120cd9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libffi/files/libffi-3.4.6-c23-tests.patch @@ -0,0 +1,38 @@ +https://github.com/libffi/libffi/commit/0859f8431242d5adff21420b9cab538d2af527b5 + +From 0859f8431242d5adff21420b9cab538d2af527b5 Mon Sep 17 00:00:00 2001 +From: Joseph Myers +Date: Thu, 24 Oct 2024 18:26:58 +0000 +Subject: [PATCH] Fix testsuite for C23 `va_start` (#861) + +In the C23 revision of the C standard, `va_start` ignores its second +argument, which is no longer required (previously the last named +function parameter - which the compiler knows anyway, so it's +redundant information). + +This has the consequence for the libffi testsuite, when making GCC +default to `-std=gnu23`, of making two tests fail with warnings about +an unused function argument (only passed to `va_start` and not +otherwise used). Fix those test failures by explicitly casting the +argument to `void`. +--- a/testsuite/libffi.call/va_struct2.c ++++ b/testsuite/libffi.call/va_struct2.c +@@ -33,6 +33,7 @@ test_fn (int n, ...) + struct small_tag s2; + struct large_tag l; + ++ (void) n; + va_start (ap, n); + s1 = va_arg (ap, struct small_tag); + l = va_arg (ap, struct large_tag); +--- a/testsuite/libffi.call/va_struct3.c ++++ b/testsuite/libffi.call/va_struct3.c +@@ -33,6 +33,7 @@ test_fn (int n, ...) + struct small_tag s2; + struct large_tag l; + ++ (void) n; + va_start (ap, n); + s1 = va_arg (ap, struct small_tag); + l = va_arg (ap, struct large_tag); + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libffi/libffi-3.4.6-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libffi/libffi-3.4.6-r2.ebuild index 2235dc0d702..61fa9d5ad84 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libffi/libffi-3.4.6-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libffi/libffi-3.4.6-r2.ebuild @@ -44,6 +44,7 @@ PATCHES=( "${FILESDIR}"/${P}-asan.patch "${FILESDIR}"/${P}-tests.patch "${FILESDIR}"/${P}-regenerate-autotools.patch + "${FILESDIR}"/${P}-c23-tests.patch ) src_prepare() { diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/Manifest index ebb2837e331..a7417773ca1 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/Manifest @@ -6,3 +6,5 @@ DIST libgpg-error-1.49.tar.bz2 1081175 BLAKE2B f1d7ce3c8b32a1a98495576b4ed7bf938 DIST libgpg-error-1.49.tar.bz2.sig 238 BLAKE2B ff9b3adbbd587afc09e4b7bc58bfa63446f92b7a42baa541e564ee52d88434bca621686f6db6312e8cd8b81f458ce9ee6307c0e6700ab3dc7d7a46d003c934cc SHA512 39d45939c17755e3dd126506d758a1a86f66827616f270c5b663df50e55692e2ef4f27e6e12a7eb1dbe44afc03b415f1fcb3160990b75980cafe6d9cd5a55ed2 DIST libgpg-error-1.50.tar.bz2 1082003 BLAKE2B 621d9a604585daa1fbd08aaa94f3b177f6265046ccf452317e126e73079c567c555cbb8ab8b63e09b76bdf4f11a1aad7effd118651fe9e9cbcf01229f20ab297 SHA512 96e466d892a50843af6d7c08c0da602518bc6a28836bfc35f0a28cde74d368f57c5c70c65f0f41edb4fc1ca5ebd00f2ece531d8b3eb1bd6db566adbb29bc61ff DIST libgpg-error-1.50.tar.bz2.sig 119 BLAKE2B ee3a8e9221d4df8b37ceef70240ecf79efef045cfbde67f6a8bbc0f58dfa4955ed5a75e3cd31de7644707049919b154c1d9607e370dec7e8f2b0b6cb1b997beb SHA512 02e29838be3225f4894bcebd2c53355a98f5857baa4e9f8a78227a03f849677c35b1d2d009610badd6540dcfe5378b5365abcae77d29ba2d95dd252e9c93c893 +DIST libgpg-error-1.51.tar.bz2 1085510 BLAKE2B 8727a993fb5e589beceafce9d06d843b28ceff80398c33a5655608bdcd3d92ee363389bc209a1dff675b9f78d56f13b78d77e55696c0736612b09275ae0da7f3 SHA512 4489f615c6a0389577a7d1fd7d3917517bb2fe032abd9a6d87dfdbd165dabcf53f8780645934020bf27517b67a064297475888d5b368176cf06bc22f1e735e2b +DIST libgpg-error-1.51.tar.bz2.sig 119 BLAKE2B 34bacbe1923aebc015ea1b975616836dd80278c8edc293474f83633fef59326edfe4043419729de4c8f26c49a6292f7d13a23c3ccda8aea3d1923913df616a5e SHA512 fc793d674c0f5b26efdc71a4420e9743e9dcf8ab646577be3561dc46f15343be42991cf3fe5c49d049f49e929618e7c05dbd32f9e4ceb1d58b90263058621a9e diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/libgpg-error-1.51.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/libgpg-error-1.51.ebuild new file mode 100644 index 00000000000..1ef94303304 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/libgpg-error-1.51.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintainers should: +# 1. Join the "Gentoo" project at https://dev.gnupg.org/project/view/27/ +# 2. Subscribe to release tasks like https://dev.gnupg.org/T6159 +# (find the one for the current release then subscribe to it + +# any subsequent ones linked within so you're covered for a while.) + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc +inherit libtool multilib-minimal toolchain-funcs verify-sig + +DESCRIPTION="Contains error handling functions used by GnuPG software" +HOMEPAGE="https://www.gnupg.org/related_software/libgpg-error/" +SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2" +SRC_URI+=" verify-sig? ( mirror://gnupg/${PN}/${P}.tar.bz2.sig )" + +LICENSE="GPL-2 LGPL-2.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="common-lisp nls static-libs test" +RESTRICT="!test? ( test )" + +RDEPEND="nls? ( >=virtual/libintl-0-r1[${MULTILIB_USEDEP}] )" +DEPEND="${RDEPEND}" +BDEPEND=" + nls? ( sys-devel/gettext ) + verify-sig? ( sec-keys/openpgp-keys-gnupg ) +" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/gpg-error.h + /usr/include/gpgrt.h +) + +MULTILIB_CHOST_TOOLS=( + /usr/bin/gpg-error-config + /usr/bin/gpgrt-config +) + +src_prepare() { + default + elibtoolize + + if use prefix ; then + # don't hardcode /usr/xpg4/bin/sh as shell on Solaris + sed -i -e 's:INSTALLSHELLPATH=/usr/xpg4/bin/sh:INSTALLSHELLPATH=/bin/sh:g' configure.ac configure || die + fi + + # This check breaks multilib + cat <<-EOF > src/gpg-error-config-test.sh.in || die + #!@INSTALLSHELLPATH@ + exit 0 + EOF + + # only necessary for as long as we run eautoreconf, configure.ac + # uses ./autogen.sh to generate PACKAGE_VERSION, but autogen.sh is + # not a pure /bin/sh script, so it fails on some hosts + #sed -i -e "1s:.*:#\!${BASH}:" autogen.sh || die + #eautoreconf +} + +multilib_src_configure() { + local myeconfargs=( + $(multilib_is_native_abi || echo --disable-languages) + $(use_enable common-lisp languages) + $(use_enable nls) + # required for sys-power/suspend[crypt], bug 751568 + $(use_enable static-libs static) + $(use_enable test tests) + + # See bug #699206 and its duplicates wrt gpgme-config + # Upstream no longer install this by default and we should + # seek to disable it at some point. + --enable-install-gpg-error-config + + --enable-threads + CC_FOR_BUILD="$(tc-getBUILD_CC)" + $("${S}/configure" --help | grep -o -- '--without-.*-prefix') + ) + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_install_all() { + einstalldocs + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libltdl/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/libltdl/Manifest index ca7d3789110..8d83e556484 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libltdl/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libltdl/Manifest @@ -1,2 +1,3 @@ DIST libtool-2.4.7.tar.xz 1016040 BLAKE2B 5e022586337637dd634bd40578ad944bec6e3b8de41f95d55777b90cc88cbc4badb3d76cbf0e638166ece1ea7de828e83590e1e6bac30c1e4b1c254a11a742f2 SHA512 47f4c6de40927254ff9ba452612c0702aea6f4edc7e797f0966c8c6bf0340d533598976cdba17f0bdc64545572e71cd319bbb587aa5f47cd2e7c1d96f873a3da DIST libtool-2.5.3.tar.xz 1050076 BLAKE2B e7bc3421d2273851f894583b879c897239bddaef00dc335176f00ce971d3c77e4d4304ae3b1d1b97d4b6b1b4fd9859ddc0eb5dcadac2e0de959b68cae973f726 SHA512 7a2b86716b2cbefcd45bda7f65af81fcb0aaa3dce96b09f417d6b94721a4dd9e72a9552862783d998ddf785e509315bb49f65c464dbc949d58e36f0960cf9b1b +DIST libtool-2.5.4.tar.xz 1056924 BLAKE2B 47de3c49a690d44d7ddd5e3b5e4090c91dc5fbb9c40fc4a3963e150fb7329326ee3e21b8c149974726171c4b0380028e0efc7a369c4f04357eea46f69852e1cc SHA512 eed207094bcc444f4bfbb13710e395e062e3f1d312ca8b186ab0cbd22dc92ddef176a0b3ecd43e02676e37bd9e328791c59a38ef15846d4eae15da4f20315724 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libltdl/libltdl-2.5.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libltdl/libltdl-2.5.4.ebuild new file mode 100644 index 00000000000..b367c10d5e4 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libltdl/libltdl-2.5.4.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Please bump with dev-build/libtool. + +inherit multilib-minimal flag-o-matic + +MY_P="libtool-${PV}" + +DESCRIPTION="A shared library tool for developers" +HOMEPAGE="https://www.gnu.org/software/libtool/" +if false && ! [[ $(( $(ver_cut 2) % 2 )) -eq 0 ]] ; then + SRC_URI="https://alpha.gnu.org/gnu/libtool/${MY_P}.tar.xz" +else + SRC_URI="mirror://gnu/libtool/${MY_P}.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +S="${WORKDIR}"/${MY_P}/libltdl + +LICENSE="GPL-2" +SLOT="0" +IUSE="static-libs" +# libltdl doesn't have a testsuite. Don't bother trying. +RESTRICT="test" + +BDEPEND="app-arch/xz-utils" + +multilib_src_configure() { + # bug #907427 + filter-lto + + append-lfs-flags + ECONF_SOURCE="${S}" \ + econf \ + --enable-ltdl-install \ + $(use_enable static-libs static) +} + +multilib_src_install() { + emake DESTDIR="${D}" install + + # While the libltdl.la file is not used directly, the m4 ltdl logic + # keys off of its existence when searching for ltdl support. # bug #293921 + #use static-libs || find "${D}" -name libltdl.la -delete +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libuv/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/libuv/Manifest index fd05c8a4976..0182ccc2ccb 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libuv/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libuv/Manifest @@ -1,7 +1,5 @@ DIST libuv-1.48.0.tar.gz 1314877 BLAKE2B 7595797ab732109516ce280fa2efa3474e82e78890087408c7f5b1457ce8f44e53878581bb8d473795e298d7390dd8a269dd2e8970e10b50a2c0bbe1cce187cc SHA512 7ae3a4c02f654a26056db1541e52ccc4c54aaea39c33585f0cf6949af997d0a0a29f30a294c8df6e92f6f6af7ce64c2766b1a2cc67f342e3e139cd55b7326c94 DIST libuv-1.48.0.tar.gz.sig 833 BLAKE2B f0982f7723fa81afe3fe668fc4497fb182a6093f38b185aba4f7359a3248062e7953acaba3f7fd739c9ff5b590664e4b7b81ee138442ffccd46c989c0a10345b SHA512 3a6441bb250badb7bb54a102dd7a1cf47ee4e0ed93ff0369c5b6a4b1e5440e613d85530f19c9ebdc586a97dfe1e06af09e2f90c13448e875dbaee1c703efa955 -DIST libuv-1.49.0.tar.gz 1331420 BLAKE2B f939df07e7e120cdb5c489a6146b220d9d85aa511342c1d2c143b6754eeeea8435e9410891bd281c6ddccdcb5921239cac0950e5fb7c0dc7f258ed7fdc096187 SHA512 36da82ff3f9b54ebfc8bdbf668ef2ae8845591a9fd01daf4f1ea4d1ac4db93c3f7877f6fc5f0a542eb4ff1eade5fd747a0905d98fe1c55a6effabc1f4131d59d -DIST libuv-1.49.0.tar.gz.sig 833 BLAKE2B aa37c82779d2e904b5b1cdac802573fe30a570f83a818f94eed87d4b7a45a83e6fa02f0f2a06e24a8b01561bbe1b647bc931670c78af79301ba0aa08e6c0c708 SHA512 ad86a158179f5b8961aba701f0fdc16906383158cceb1ab2e23a7d5caa31ee4d87e9260ba6d04aa16719254e9b8d9e85066e2352d02006d231f4898235525fe6 DIST libuv-1.49.1.tar.gz 1332225 BLAKE2B 7a56817c94060629456a53026c142d74d72d2777a4e433bd370d76c93c8ae7a775d9cb9362241ce563948dd01a2b4bbe5d3bc10c014687fa9aff38b2fde98ccf SHA512 f0a55fd5e91b87418ec22b0bd607a9b46510296c8a33600878a6454033b0d1bc7b4b674255007e94b38057635c024f7cbff187e7c0f0e0d627604636c3ad3497 DIST libuv-1.49.1.tar.gz.sig 833 BLAKE2B 826f6c97806a474c6b1f77b11b553d5f26d1c25261d9f25f4318552e1e4291cff56a4d5c9a7059ad938dc792e7015eab11d84132553e66c4ac164a847eb9d6dd SHA512 49ffdb678afb5c1c899745102e7d884d4a7bb933e88066cff82ef7c939bdbde5b2fa8e22094cdb75ed77697eef559dfa7f22d66d6a65b3a43a8a9d2cca4d7fd3 DIST libuv-1.49.2.tar.gz 1331024 BLAKE2B a4a3367053ab3d5b87c502ef4a25b569fc829b3580005333adf2d3f02a799e6fefec9b6c2cf354eb0e8fe003eff4d3bd5d0f91980dd44702595bfdc54a9fad66 SHA512 ecb94edb9393d1f3ace1e01e89a3f693fb813c1ed21a3c706409bdfd8821885e7713f8d6b043d97ab202cbea9edc99ad6672d1144858802dc92031800ffba1a1 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.49.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.49.0.ebuild deleted file mode 100644 index 859c1fae34d..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.49.0.ebuild +++ /dev/null @@ -1,62 +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/libuv.asc -inherit autotools verify-sig - -DESCRIPTION="Cross-platform asychronous I/O" -HOMEPAGE="https://github.com/libuv/libuv" - -if [[ ${PV} = 9999* ]]; then - EGIT_REPO_URI="https://github.com/libuv/libuv.git" - inherit git-r3 -else - SRC_URI=" - https://dist.libuv.org/dist/v${PV}/libuv-v${PV}.tar.gz -> ${P}.tar.gz - verify-sig? ( https://dist.libuv.org/dist/v${PV}/libuv-v${PV}.tar.gz.sign -> ${P}.tar.gz.sig ) - " - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" - S="${WORKDIR}/${PN}-v${PV}" -fi - -LICENSE="BSD BSD-2 ISC MIT" -SLOT="0/1" - -BDEPEND=" - dev-build/libtool - virtual/pkgconfig - verify-sig? ( sec-keys/openpgp-keys-libuv ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-1.48.0-test-thread-priority-portage.patch -) - -src_prepare() { - default - - if [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] ; then - eapply "${FILESDIR}"/${PN}-1.41.0-darwin.patch - fi - - # Upstream fails to ship a configure script and has missing m4 file. - echo "m4_define([UV_EXTRA_AUTOMAKE_FLAGS], [serial-tests])" \ - > m4/libuv-extra-automake-flags.m4 || die - eautoreconf -} - -src_configure() { - local myeconfargs=( - cc_cv_cflags__g=no - ) - - econf "${myeconfargs[@]}" -} - -src_install() { - default - - find "${ED}" -name '*.la' -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.49.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.49.2.ebuild index 859c1fae34d..4cdc0a2a72d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.49.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.49.2.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 f22d2a5fec7..c8251f4b5d4 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 @@ -5,6 +5,7 @@ DIST libxml2-2.12.8.tar.xz 2643728 BLAKE2B d26fe61e913e73c923eb8140a9080d6b70078 DIST libxml2-2.12.9.tar.xz 2643456 BLAKE2B 769ff564e62c1c0167e5334879ac9e912491c651b6d48a9d21db569002ae86bc4e4490098710a614bc90bbefc44a9dd0af6b02958041dd3bffccf8b5ddc0f7ca SHA512 6e4544ed3ab36d6cb7481d465ceabf223444739d7f41de3e1927309b8716a5eac85520b9bbaf69913f53e052fbfaf68bf27372074daaa24dca9463ce728b4173 DIST libxml2-2.13.1.tar.xz 2579424 BLAKE2B 93cbd3943b0a7a7a07036a3ce01740c37049b44c20f43aaee96ef9a36e86bc108914950d7532740be87995b8eb5c1e6fbb4464c6af0a20233c8a1a206b9a5b83 SHA512 28d280eb5e2f3af9df5adcccced730602e6951fd181b8d00256dbb2138abfe32a4b145fdc00ed8c77a6d322e0929bcb3d5128ad4622877d7f8a059d4b6e011a6 DIST libxml2-2.13.4.tar.xz 2582156 BLAKE2B 6b143fb192625bb1168ecb1e25295761a062923018b39bcabeae07f422c9bb6c7f11e7de8ce728c0d474271407e0777b9e2e5ad30b47e79b9fb79c12beaadf1c SHA512 27bfaa63431798d3aa725b36af2005bda70a20b270e601cc3c8a07cc9fd02a080cb3d2b023eb42606a57b9786469488a7c09b71bdff1a518a0b4271c78c3f940 +DIST libxml2-2.13.5.tar.xz 2586872 BLAKE2B 46c280630638e2c8009c593bbbcf90ccbfffe9ddcc99987c4d91c2223043759f2b4d6511b31b2357c5250ac3b40d96ef05c17b4d2adc61972665f8a0d899dfe8 SHA512 acaecd4e3e95136d1c621f9e5f33976ebca87dfbf83859459e339597c3c57fbc47508a7de16af7fbf0e7e7c59fd6f9a82b2e732e1dd12efd79d666bac64ecf4e DIST xmlts20130923.tar.gz 641522 BLAKE2B 63a47bc69278ef510cd0b3779aed729e1b309e30efa0015d28ed051cc03f9dfddb447ab57b07b3393e8f47393d15473b0e199c34cb1f5f746b15ddfaa55670be SHA512 d5c4d26b324ed21f4e0641cd7f8b76dbf9de80df8b519982e44d41c960df29fd03618e02e9693b2d11ad06d19c4a965274c95a048ec3b9653eacb919a7f8b733 DIST xsts-2002-01-16.tar.gz 6894439 BLAKE2B 1e9ec63d2c104655e64249e07440a04d862fcbcd4d4e19745d81b34994319b510a531c9d6df1491fae1e90b5d0764f0f1a827251ca8df5d613178b0eab01ef25 SHA512 43300af6d39c1e2221b0ed7318fe14c7464eeb6eb030ed1e22eb29b4ab17f014e2a4c8887c3a46ae5d243e3072da27f00f4e285498ae6f1288177d38d1108288 DIST xsts-2004-01-14.tar.gz 2761085 BLAKE2B 41545995fb3a65d053257c376c07d45ffd1041a433bfbdb46d4dd87a5afb60c18c8629a3d988323f9e7a1d709775b5a7e5930276a7121c0725a22705c0976e36 SHA512 32854388d7e720ad67156baf50bf2bae7bd878ca3e35fd7e44e57cad3f434f69d56bbbedd61509f8a1faf01c9eae74a078df8fe130780b182c05c05cb1c39ebe diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.12.8.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.12.8.ebuild index f7921a43e49..b18992816fd 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.12.8.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.12.8.ebuild @@ -23,7 +23,7 @@ if [[ ${PV} == 9999 ]] ; then inherit autotools git-r3 else inherit gnome.org libtool - 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.13.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.13.5.ebuild new file mode 100644 index 00000000000..e27b1966092 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.13.5.ebuild @@ -0,0 +1,190 @@ +# Copyright 1999-2024 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_{10..13} ) +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 +) + +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/libxslt/libxslt-1.1.39.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxslt/libxslt-1.1.39-r1.ebuild similarity index 98% rename from sdk_container/src/third_party/portage-stable/dev-libs/libxslt/libxslt-1.1.39.ebuild rename to sdk_container/src/third_party/portage-stable/dev-libs/libxslt/libxslt-1.1.39-r1.ebuild index 271c7b528bf..ab5e6b57c5f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libxslt/libxslt-1.1.39.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxslt/libxslt-1.1.39-r1.ebuild @@ -25,7 +25,7 @@ REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" BDEPEND=">=virtual/pkgconfig-1" RDEPEND=" - >=dev-libs/libxml2-2.9.11:2[${MULTILIB_USEDEP}] + =dev-libs/libgcrypt-1.5.3:0=[${MULTILIB_USEDEP}] ) python? ( ${PYTHON_DEPS} ) " diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/npth/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/npth/Manifest index 528f8a186b8..9d9d0029d58 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/npth/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/npth/Manifest @@ -1,2 +1,3 @@ DIST npth-1.6.tar.bz2 300486 BLAKE2B 665fdb2f4cbe59750b6b4b7c2701ee80a23a122df10c9f8be47c4af5f3bf5968f709637ab3f4878bb68609752fbb6ce1364e109fdfeba64e4db258733a33f3fc SHA512 2ed1012e14a9d10665420b9a23628be7e206fd9348111ec751349b93557ee69f1176bcf7e6b195b35b1c44a5e0e81ee33b713f03d79a33d1ecd9037035afeda2 DIST npth-1.7.tar.bz2 313213 BLAKE2B 39bc5857fb61a4264bef6ff23c28755d2a3b3ceef93034aefd5cf1c2ad905adf696c6753ebd5cea5e0a875df4ecb97db03e023a50a27f51ec0641bbc36b54089 SHA512 8893023bcf953a3f7c490cf8116bed323a9d4af2bea35277e919f437916fda8b8e68ded28ec1777717cf9187c504892556159cbdb8bc02ed4a8b30b3d897d244 +DIST npth-1.8.tar.bz2 317739 BLAKE2B 554620f6a45f57bb958d245f7464abffd565b592941f0c404ce384c854be57ee35754a78dcf6afac751ee87e1df230bf3d2b78fb37cb1ef3e5ea534ddfd4ef2a SHA512 34fdeea3d8a7a594d8fdbcc6d5d389b5c8e282e8e84c1491b1e51960c0fa007df6a1d62543f0107f0772f3215557d4b25c2a9c7067cb0ae2f8de7b4d63d09fb4 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/npth/npth-1.8.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/npth/npth-1.8.ebuild new file mode 100644 index 00000000000..b83032c047d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/npth/npth-1.8.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic + +DESCRIPTION="New GNU Portable Threads Library" +HOMEPAGE="https://git.gnupg.org/cgi-bin/gitweb.cgi?p=npth.git" +SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2" + +LICENSE="LGPL-2.1+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="test" +RESTRICT="!test? ( test )" + +src_prepare() { + default + eautoreconf +} + +src_configure() { + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + + econf \ + $(use_enable test tests) \ + --enable-install-npth-config +} + +src_install() { + default + + # no static archives + find "${ED}" -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/oniguruma/files/oniguruma-6.9.9-c23.patch b/sdk_container/src/third_party/portage-stable/dev-libs/oniguruma/files/oniguruma-6.9.9-c23.patch new file mode 100644 index 00000000000..e5ced7df213 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/oniguruma/files/oniguruma-6.9.9-c23.patch @@ -0,0 +1,170 @@ +https://github.com/kkos/oniguruma/issues/312 +https://github.com/kkos/oniguruma/commit/5f1408dee4a01dee60c4cd67f2e2e46484ef50a5 +https://github.com/kkos/oniguruma/commit/b803288174dcef9b56836aee1ee78a4f3256d8f6 + +From 5f1408dee4a01dee60c4cd67f2e2e46484ef50a5 Mon Sep 17 00:00:00 2001 +From: "K.Kosako" +Date: Mon, 18 Nov 2024 00:18:12 +0900 +Subject: [PATCH] fix #312: Build failure with GCC 15 (C23) + +--- + src/regparse.c | 44 ++++++++++++++++++++++++++++++++++++-------- + src/st.h | 9 +-------- + 2 files changed, 37 insertions(+), 16 deletions(-) + +diff --git a/src/regparse.c b/src/regparse.c +index 24bcbaac..9acdd6e2 100644 +--- a/src/regparse.c ++++ b/src/regparse.c +@@ -793,8 +793,13 @@ onig_print_names(FILE* fp, regex_t* reg) + #endif /* ONIG_DEBUG */ + + static int +-i_free_name_entry(UChar* key, NameEntry* e, void* arg ARG_UNUSED) ++i_free_name_entry(st_data_t akey, st_data_t ae, st_data_t arg ARG_UNUSED) + { ++ UChar* key; ++ NameEntry* e; ++ ++ key = (UChar* )akey; ++ e = (NameEntry* )ae; + xfree(e->name); + if (IS_NOT_NULL(e->back_refs)) xfree(e->back_refs); + xfree(key); +@@ -850,8 +855,14 @@ typedef struct { + } INamesArg; + + static int +-i_names(UChar* key ARG_UNUSED, NameEntry* e, INamesArg* arg) ++i_names(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t aarg) + { ++ NameEntry* e; ++ INamesArg* arg; ++ ++ e = (NameEntry* )ae; ++ arg = (INamesArg* )aarg; ++ + int r = (*(arg->func))(e->name, + e->name + e->name_len, + e->back_num, +@@ -883,9 +894,14 @@ onig_foreach_name(regex_t* reg, + } + + static int +-i_renumber_name(UChar* key ARG_UNUSED, NameEntry* e, GroupNumMap* map) ++i_renumber_name(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t amap) + { + int i; ++ NameEntry* e; ++ GroupNumMap* map; ++ ++ e = (NameEntry* )ae; ++ map = (GroupNumMap* )amap; + + if (e->back_num > 1) { + for (i = 0; i < e->back_num; i++) { +@@ -1374,9 +1390,14 @@ static int CalloutNameIDCounter; + #ifdef USE_ST_LIBRARY + + static int +-i_free_callout_name_entry(st_callout_name_key* key, CalloutNameEntry* e, +- void* arg ARG_UNUSED) ++i_free_callout_name_entry(st_data_t akey, st_data_t ae, st_data_t arg ARG_UNUSED) + { ++ st_callout_name_key* key; ++ CalloutNameEntry* e; ++ ++ key = (st_callout_name_key* )akey; ++ e = (CalloutNameEntry* )ae; ++ + if (IS_NOT_NULL(e)) { + xfree(e->name); + } +@@ -1870,10 +1891,14 @@ typedef intptr_t CalloutTagVal; + #define CALLOUT_TAG_LIST_FLAG_TAG_EXIST (1<<0) + + static int +-i_callout_callout_list_set(UChar* key, CalloutTagVal e, void* arg) ++i_callout_callout_list_set(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t arg) + { + int num; +- RegexExt* ext = (RegexExt* )arg; ++ CalloutTagVal e; ++ RegexExt* ext; ++ ++ e = (CalloutTagVal )ae; ++ ext = (RegexExt* )arg; + + num = (int )e - 1; + ext->callout_list[num].flag |= CALLOUT_TAG_LIST_FLAG_TAG_EXIST; +@@ -1926,8 +1951,11 @@ onig_callout_tag_is_exist_at_callout_num(regex_t* reg, int callout_num) + } + + static int +-i_free_callout_tag_entry(UChar* key, CalloutTagVal e, void* arg ARG_UNUSED) ++i_free_callout_tag_entry(st_data_t akey, st_data_t e ARG_UNUSED, st_data_t arg ARG_UNUSED) + { ++ UChar* key; ++ ++ key = (UChar* )akey; + xfree(key); + return ST_DELETE; + } +diff --git a/src/st.h b/src/st.h +index 5efee8bb..70798dc5 100644 +--- a/src/st.h ++++ b/src/st.h +@@ -34,13 +34,6 @@ enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK}; + #ifndef _ + # define _(args) args + #endif +-#ifndef ANYARGS +-# ifdef __cplusplus +-# define ANYARGS ... +-# else +-# define ANYARGS +-# endif +-#endif + + st_table *st_init_table _((struct st_hash_type *)); + st_table *st_init_table_with_size _((struct st_hash_type *, int)); +@@ -52,7 +45,7 @@ int st_delete _((st_table *, st_data_t *, st_data_t *)); + int st_delete_safe _((st_table *, st_data_t *, st_data_t *, st_data_t)); + int st_insert _((st_table *, st_data_t, st_data_t)); + int st_lookup _((st_table *, st_data_t, st_data_t *)); +-int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t)); ++int st_foreach _((st_table *, int (*)(st_data_t, st_data_t, st_data_t), st_data_t)); + void st_add_direct _((st_table *, st_data_t, st_data_t)); + void st_free_table _((st_table *)); + void st_cleanup_safe _((st_table *, st_data_t)); + +From b803288174dcef9b56836aee1ee78a4f3256d8f6 Mon Sep 17 00:00:00 2001 +From: "K.Kosako" +Date: Tue, 19 Nov 2024 00:01:17 +0900 +Subject: [PATCH] follow up previous fix + +--- + src/regparse.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/regparse.c b/src/regparse.c +index 9acdd6e2..1d00b82a 100644 +--- a/src/regparse.c ++++ b/src/regparse.c +@@ -758,10 +758,14 @@ typedef st_data_t HashDataType; /* 1.6 st.h doesn't define st_data_t type */ + + #ifdef ONIG_DEBUG + static int +-i_print_name_entry(UChar* key, NameEntry* e, void* arg) ++i_print_name_entry(st_data_t akey, st_data_t ae, st_data_t arg) + { + int i; +- FILE* fp = (FILE* )arg; ++ FILE* fp; ++ NameEntry* e; ++ ++ e = (NameEntry* )ae; ++ fp = (FILE* )arg; + + fprintf(fp, "%s: ", e->name); + if (e->back_num == 0) diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/oniguruma/oniguruma-6.9.9-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/oniguruma/oniguruma-6.9.9-r1.ebuild new file mode 100644 index 00000000000..97b563b60da --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/oniguruma/oniguruma-6.9.9-r1.ebuild @@ -0,0 +1,59 @@ +# Copyright 2003-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +inherit multilib-minimal + +if [[ "${PV}" == "9999" ]]; then + inherit autotools git-r3 + + EGIT_REPO_URI="https://github.com/kkos/oniguruma" +fi + +DESCRIPTION="Regular expression library for different character encodings" +HOMEPAGE="https://github.com/kkos/oniguruma" +if [[ "${PV}" == "9999" ]]; then + SRC_URI="" +else + SRC_URI="https://github.com/kkos/${PN}/releases/download/v${PV}/onig-${PV}.tar.gz" +fi + +LICENSE="BSD-2" +SLOT="0/5" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="crnl-as-line-terminator static-libs" + +BDEPEND="" +DEPEND="" +RDEPEND="" + +if [[ "${PV}" != "9999" ]]; then + S="${WORKDIR}/onig-${PV}" +fi + +DOCS=(AUTHORS HISTORY README{,_japanese} doc/{API,CALLOUTS.API,CALLOUTS.BUILTIN,FAQ,RE}{,.ja} doc/{SYNTAX.md,UNICODE_PROPERTIES}) + +PATCHES=( + "${FILESDIR}"/${P}-c23.patch +) + +src_prepare() { + default + + if [[ "${PV}" == "9999" ]]; then + eautoreconf + fi +} + +multilib_src_configure() { + ECONF_SOURCE="${S}" econf \ + --enable-posix-api \ + $(use_enable crnl-as-line-terminator) \ + $(use_enable static-libs static) +} + +multilib_src_install_all() { + einstalldocs + find "${ED}" -name "*.la" -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/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 index e9367b1e3d5..5a720cc0b9d 100644 --- 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 @@ -12,4 +12,4 @@ HOMEPAGE="https://github.com/tree-sitter/tree-sitter-bash" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos" +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.23.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.23.0.ebuild index 55dd51a2da3..1d00b3ac739 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.23.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.23.0.ebuild @@ -12,7 +12,7 @@ if [[ ${PV} == *9999* ]]; then EGIT_REPO_URI="https://github.com/${PN}/${PN}" else SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos" + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos" fi LICENSE="MIT" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/userspace-rcu/userspace-rcu-0.14.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/userspace-rcu/userspace-rcu-0.14.1.ebuild index 7c2c9700c59..9b87191a875 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/userspace-rcu/userspace-rcu-0.14.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/userspace-rcu/userspace-rcu-0.14.1.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://lttng.org/files/urcu/${P}.tar.bz2" LICENSE="LGPL-2.1" SLOT="0/8" # subslot = soname version -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="static-libs test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/Manifest index 978a522f6f4..0f26608bfba 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/Manifest @@ -1,2 +1,3 @@ DIST xmlsec1-1.3.4.tar.gz 2435656 BLAKE2B b398f970e5b201971419b537125e9a7430c8d7c1c57e193b2592ee3f01ce797993607a210e87ad44e99bc0ef49ac4c350492268a3ac3bedbb81d937d99837468 SHA512 959a97ed7d7cbdc3e5ef037b2cb4f05bda299274c09ed3dfe24f7203d97e3dfc13bf480e15a2d15bcc7893569d341204884de58cc9b462b6c29306b67672e9c7 DIST xmlsec1-1.3.5.tar.gz 2451506 BLAKE2B 4a265793a7499c4f6421c6d60552bd2ea18f06e3c28435520188c0a7c36a4de8aa40f20658949b93d826a8f6fb20bd8f2be1a78e6d103ae573e6353a2a5380a7 SHA512 69e9f18e2bc6b1b9acaf475a534a666965a561eec6a5a152185d264a4110d97d233af302153577a414e232a8880c6afc66b563118d889e670204d93819fcfdb5 +DIST xmlsec1-1.3.6.tar.gz 2453984 BLAKE2B 217817ef0f7003247b7173a6581ba6428e623ff4e464b4ea08bd93d07c0aaba8ee379cbdd6309e3c2c6f07f5022fe55a51dc1afc001525bf219eff9f06ff5aad SHA512 f38ccc7af0026973a94b1b6f95accd70a2a2c4398985a0002c66d7b43bff6d6bcfb09ae62046cbdac82a0890622aead2df710cb0ab373c3bdf6159797613cdaa diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.5.ebuild index f0324bc0861..819741295b9 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.5.ebuild @@ -13,7 +13,7 @@ S="${WORKDIR}/${PN}1-${PV}" LICENSE="MIT" # Upstream consider major version bumps to be changes in either X or Y in X.Y.Z SLOT="0/$(ver_cut 1-2)" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86" IUSE="doc gcrypt gnutls http nss +openssl static-libs test" RESTRICT="!test? ( test )" REQUIRED_USE=" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.6.ebuild new file mode 100644 index 00000000000..f0324bc0861 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/xmlsec/xmlsec-1.3.6.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +DESCRIPTION="Command line tool for signing, verifying, encrypting and decrypting XML" +HOMEPAGE="https://www.aleksey.com/xmlsec" +SRC_URI="https://www.aleksey.com/xmlsec/download/${PN}1-${PV}.tar.gz" +S="${WORKDIR}/${PN}1-${PV}" + +LICENSE="MIT" +# Upstream consider major version bumps to be changes in either X or Y in X.Y.Z +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="doc gcrypt gnutls http nss +openssl static-libs test" +RESTRICT="!test? ( test )" +REQUIRED_USE=" + || ( gnutls nss openssl ) +" + +RDEPEND=" + >=dev-libs/libxml2-2.7.4 + >=dev-libs/libxslt-1.0.20 + dev-libs/libltdl + gcrypt? ( >=dev-libs/libgcrypt-1.4.0:= ) + gnutls? ( >=net-libs/gnutls-3.6.13:= ) + nss? ( + >=dev-libs/nspr-4.4.1 + >=dev-libs/nss-3.9 + ) + openssl? ( dev-libs/openssl:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + test? ( + nss? ( + >=dev-libs/nss-3.9[utils] + ) + ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.3.0-optimisation.patch +) + +src_prepare() { + default + + eautoreconf +} + +src_configure() { + local myeconfargs=( + $(use_enable doc docs) + $(use_enable static-libs static) + $(use_with gcrypt) + $(use_with gnutls) + $(use_with nss nspr) + $(use_with nss) + $(use_with openssl) + + --disable-werror + --enable-mans + --enable-pkgconfig + + --enable-concatkdf + --enable-pbkdf2 + --enable-ec + --enable-dh + --enable-sha3 + + --enable-files + $(use_enable http) + --disable-ftp + ) + + # Bash because of bug #721128 + CONFIG_SHELL="${BROOT}"/bin/bash econf "${myeconfargs[@]}" +} + +src_test() { + # See https://github.com/lsh123/xmlsec/issues/280 for TZ=UTC + TZ=UTC SHELL="${BROOT}"/bin/bash emake TMPFOLDER="${T}" check +} + +src_install() { + default + + find "${ED}" -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/Manifest index 294d6becd17..7453c370ad8 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/Manifest @@ -1,2 +1 @@ -DIST cachecontrol-0.14.0.tar.gz 28899 BLAKE2B 158d70333b8e5cbbee31db788c9737a92592c3c342d17e4e1ff4826759e3fe14eb855556f9363c122fbf3fd68ca43a78b34b3327260fe51a15b30dde01302508 SHA512 4bb43475d43a2b83f9196cf02af7a881ab37da3b481777f1ae6b24df0f7dab54629fcdf9e07b00e1226a7707f5c92b0473481ef7cbbcaa4275665a41487c903f DIST cachecontrol-0.14.1.tar.gz 28928 BLAKE2B 9f01bc35c905f0fb489e796f96ccc0063a475bacc24b980ee67f8053412a52d9167b4b96495a8a7f7c561e2485a1b6fcb4ec94b1408ea5111f8661fea59394fd SHA512 f99463ee08199058d0f84a173d6a85276cfe6caec0bec6692e5af74f4c8e684a68ab6910c6c85cbd1f4515c7044ee2fbf149cfd85e4ce9d9ac97e9850698c07f diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/cachecontrol-0.14.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/cachecontrol-0.14.0.ebuild deleted file mode 100644 index 00b7217135e..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/cachecontrol-0.14.0.ebuild +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 2022-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYTHON_COMPAT=( python3_{10..13} pypy3 ) - -inherit distutils-r1 pypi - -DESCRIPTION="httplib2 caching for requests" -HOMEPAGE=" - https://pypi.org/project/CacheControl/ - https://github.com/psf/cachecontrol/ -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86" - -RDEPEND=" - =dev-python/msgpack-0.5.2[${PYTHON_USEDEP}] - >=dev-python/requests-2.16.0[${PYTHON_USEDEP}] -" -BDEPEND=" - test? ( - dev-python/cherrypy[${PYTHON_USEDEP}] - >=dev-python/filelock-3.8.0[${PYTHON_USEDEP}] - ) -" - -distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/cachecontrol-0.14.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/cachecontrol-0.14.1.ebuild index c5c6239d1e3..00b7217135e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/cachecontrol-0.14.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/cachecontrol/cachecontrol-0.14.1.ebuild @@ -16,7 +16,7 @@ HOMEPAGE=" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86" RDEPEND=" src/hatch/_version.py || die + local -x PYTHONPATH="src:${PYTHONPATH}" + + # do not require uv for portability, sigh + mkdir "${T}/bin" || die + cat > "${T}/bin/uv" <<-EOF || die + #!/bin/sh + exit 127 + EOF + chmod +x "${T}/bin/uv" || die + local -x PATH=${T}/bin:${PATH} + + # tests mock cargo subprocess call but the backend raises if CARGO + # is not set and shutil.which() can't find it + local -x CARGO=cargo + + distutils-r1_src_test +} + +python_test() { + if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then + einfo "Skipping tests on ${EPYTHON}" + return + fi + + local -x EPYTEST_DESELECT=( + # most of these run uv to install stuff + # the few remaining tests aren't worth running + tests/backend/dep/test_core.py + # broken if CARGO is set + tests/backend/builders/test_binary.py::TestBuildBootstrap::test_no_cargo + ) + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest -p pytest_mock tests/backend +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/jinja2/jinja2-3.1.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/jinja2/jinja2-3.1.4.ebuild index b89e9480443..abbf2c5a1c9 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/jinja2/jinja2-3.1.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/jinja2/jinja2-3.1.4.ebuild @@ -45,7 +45,7 @@ src_prepare() { } pkg_postinst() { - if ! has_version dev-python/Babel; then - elog "For i18n support, please emerge dev-python/Babel." + if ! has_version dev-python/babel; then + elog "For i18n support, please emerge dev-python/babel." fi } diff --git a/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/Manifest index 77683b86ac9..d8e71345210 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/Manifest @@ -1,2 +1 @@ -DIST MarkupSafe-2.1.5.tar.gz 19384 BLAKE2B d6ae0e1864983f4ab92f2fd9b58a012a8c76e6f47957681d4acc362b2129d63fe4f4625600a89081afe0e99f868eb604d6c75fec88de9a18ebb32c15f091681b SHA512 3ba5af43d23c266377f5d32b11e1faa7955ea8c67eb1c32886c308527f93e75e387294d0eec7794c0c20aad0c705b27f3d1f86b04202f3b63068d12d4053cc71 DIST markupsafe-3.0.2.tar.gz 20537 BLAKE2B ffccc47eb4b8048aee98b61a3b9dee28eb31323563b943ad96293541467ddb3d0d63906fbbc876ee30947a10afcb580456a10d502874601ba7c4e4d63594f114 SHA512 26946b928b001933f08a5dd90c5fe424a1d9e2bccfbf7194955d031a3df54a03eb48e4e47ea9564a25da33efeb62a043a53008f551fa1e8d71321bc276e19ce2 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/markupsafe-2.1.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/markupsafe-2.1.5.ebuild deleted file mode 100644 index ccc7079aebf..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/markupsafe-2.1.5.ebuild +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=setuptools -PYPI_NO_NORMALIZE=1 -PYPI_PN="MarkupSafe" -PYTHON_COMPAT=( python3_{10..13} pypy3 ) - -inherit distutils-r1 pypi - -DESCRIPTION="Implements a XML/HTML/XHTML Markup safe string for Python" -HOMEPAGE=" - https://palletsprojects.com/p/markupsafe/ - https://github.com/pallets/markupsafe/ - https://pypi.org/project/MarkupSafe/ -" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" - -distutils_enable_tests pytest - -python_test() { - local EPYTEST_DESELECT=() - - case ${EPYTHON} in - python3.13) - EPYTEST_DESELECT+=( - # https://github.com/pallets/markupsafe/issues/445 - tests/test_leak.py::test_markup_leaks - ) - ;; - esac - - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - epytest -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/markupsafe-3.0.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/markupsafe-3.0.2.ebuild index 6c18de7253e..10eb1ecb706 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/markupsafe-3.0.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/markupsafe-3.0.2.ebuild @@ -19,7 +19,7 @@ HOMEPAGE=" LICENSE="BSD" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" IUSE="+native-extensions" distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/packaging/packaging-24.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/packaging/packaging-24.2.ebuild index 63aa9e4ba6c..1f3e1b6b1bf 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/packaging/packaging-24.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/packaging/packaging-24.2.ebuild @@ -17,7 +17,7 @@ HOMEPAGE=" LICENSE="|| ( Apache-2.0 BSD-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" RDEPEND=" !=dev-python/filelock-3.4.0[${PYTHON_USEDEP}] >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}] >=dev-python/jaraco-path-3.2.0[${PYTHON_USEDEP}] - dev-python/jaraco-test[${PYTHON_USEDEP}] + >=dev-python/jaraco-test-5.5[${PYTHON_USEDEP}] dev-python/pip[${PYTHON_USEDEP}] dev-python/pip-run[${PYTHON_USEDEP}] dev-python/pyproject-hooks[${PYTHON_USEDEP}] diff --git a/sdk_container/src/third_party/portage-stable/dev-python/tomli/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/tomli/Manifest index a20b1463096..0bb09ebf4a5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/tomli/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/tomli/Manifest @@ -1,2 +1,4 @@ DIST tomli-2.0.2-py3-none-any.whl.zip 13237 BLAKE2B 642af1b59a2b2bceeee2480208f3680ec699bc9b572bde186ff8c845526e41e2ebc145f78ae4094ae3ee084ebfde561ec635358ff3df9c5609101c96d0b54ded SHA512 ad8278fc99a6913ebb70a618a7cad7acca9737e6ec546c932b4d0c1caddc1e70ef832340a33f2db974235459ff627949308d517b3c3a15b6baf8a4f1b3095e49 DIST tomli-2.0.2.gh.tar.gz 135227 BLAKE2B 1d61fd26793c4f814ed606a60b85edb388bf97d6fd17c830504971be725c84e9e6e67904170cff305fdb7be8196b56d0cc29dd36f8b202798788f4839ba8ddc6 SHA512 3eeea334d6d225590a9e074685c65d052e2f5d5286ca895ff7e9532d7289f0daa31ae67b5076d803e5adad4f20a9831058a0c4599715f049079904934d3d9c25 +DIST tomli-2.1.0-py3-none-any.whl.zip 13750 BLAKE2B 8354ca389e2f45bf87749247fa2a6d84a6a60f6c3c42e89946ffef547f7fe9538bce228a2e2f9b3518c1b29ea2bd0c25989e690de2fd633d5df362dc798bc089 SHA512 cb16271d5321f4f6d4ec20884fbe81f5b1a387a0b751418ebee0652ea827bf54344115c1a9f7ce62be013cb2c623c2cfae7d135476cffeccf0a3768a53447219 +DIST tomli-2.1.0.gh.tar.gz 136173 BLAKE2B b67adb38fcc75d2b8f20578446686fdec61359d35fb958ceb16a9618d5d1dcb7865409b7da3d1d36ab1d9c9b8e5b1612efd9e8280023469a0abccb591e28c5a1 SHA512 472aa86543514257808fc68d5015fa1503e5fd674bbab113de685a07cc5a61e0c74e5840f132da88482e62ae0aa4b27e4b0521100ceb6cebe4e3cb3230d318cb diff --git a/sdk_container/src/third_party/portage-stable/dev-python/tomli/tomli-2.1.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/tomli/tomli-2.1.0.ebuild new file mode 100644 index 00000000000..2ff54bd4c53 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/tomli/tomli-2.1.0.ebuild @@ -0,0 +1,40 @@ +# Copyright 2021-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=no +PYTHON_COMPAT=( python3_{10..13} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="A lil' TOML parser" +HOMEPAGE=" + https://pypi.org/project/tomli/ + https://github.com/hukkin/tomli/ +" +SRC_URI=" + https://github.com/hukkin/tomli/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz + $(pypi_wheel_url --unpack) +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + +BDEPEND=" + app-arch/unzip +" + +distutils_enable_tests unittest + +python_compile() { + python_domodule src/tomli "${WORKDIR}"/*.dist-info +} + +python_install() { + distutils-r1_python_install + python_optimize +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.23.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.23.0-r1.ebuild index 32ade3ffdcb..febfd674df1 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.23.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.23.0-r1.ebuild @@ -22,7 +22,7 @@ S=${WORKDIR}/py-${P} LICENSE="MIT" 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" # setuptools is needed for distutils import DEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/urllib3/urllib3-2.2.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/urllib3/urllib3-2.2.3.ebuild index 713b06d9a5b..31a214a682e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/urllib3/urllib3-2.2.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/urllib3/urllib3-2.2.3.ebuild @@ -34,8 +34,8 @@ 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/pysocks-1.5.8[${PYTHON_USEDEP}] + =dev-python/brotlicffi-0.8.0[${PYTHON_USEDEP}] ) http2? ( /dev/null || sed -i -e 's/rst2man/rst2man.py/g' docs/Makefile || die +} + +bpftool_make() { + # which BPF compiler should we use? + if use clang; then + export CLANG="$(get_llvm_prefix -b)/bin/clang" + export LLVM_STRIP="$(get_llvm_prefix -b)/bin/llvm-strip" + else + # use bpf-toolchain + export CLANG="bpf-unknown-none-gcc" + export LLVM_STRIP="bpf-unknown-none-strip" + fi + + tc-export AR CC LD + + emake \ + ARCH="$(tc-arch-kernel)" \ + HOSTAR="$(tc-getBUILD_AR)" \ + HOSTCC="$(tc-getBUILD_CC)" \ + HOSTLD="$(tc-getBUILD_LD)" \ + bash_compdir="$(get_bashcompdir)" \ + feature-libcap="$(usex caps 1 0)" \ + feature-llvm="$(usex llvm 1 0)" \ + prefix="${EPREFIX}"/usr \ + V=1 \ + "$@" +} + +src_compile() { + bpftool_make -C src + bpftool_make -C docs +} + +src_install() { + bpftool_make DESTDIR="${D}" -C src install + bpftool_make mandir="${ED}"/usr/share/man -C docs install +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-9999.ebuild index 4c6ef01a02a..484a512181c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-9999.ebuild @@ -7,7 +7,7 @@ LLVM_COMPAT=( {15..19} ) LLVM_OPTIONAL=1 PYTHON_COMPAT=( python3_{10..13} ) -inherit bash-completion-r1 linux-info llvm-r1 optfeature python-any-r1 toolchain-funcs +inherit bash-completion-r1 linux-info llvm-r1 python-any-r1 toolchain-funcs DESCRIPTION="Tool for inspection and simple manipulation of eBPF programs and maps" HOMEPAGE="https://github.com/libbpf/bpftool" @@ -41,7 +41,7 @@ fi LICENSE="|| ( GPL-2 BSD-2 )" SLOT="0" -IUSE="caps llvm" +IUSE="caps +clang llvm" REQUIRED_USE="llvm? ( ${LLVM_REQUIRED_USE} )" RDEPEND=" @@ -59,7 +59,8 @@ BDEPEND=" ${PYTHON_DEPS} app-arch/tar dev-python/docutils - $(llvm_gen_dep 'sys-devel/clang:${LLVM_SLOT}[llvm_targets_BPF]') + clang? ( $(llvm_gen_dep 'sys-devel/clang:${LLVM_SLOT}[llvm_targets_BPF]') ) + !clang? ( sys-devel/bpf-toolchain ) " CONFIG_CHECK="~DEBUG_INFO_BTF" @@ -87,16 +88,33 @@ src_prepare() { # remove hardcoded/unhelpful flags from bpftool sed -i -e '/CFLAGS += -O2/d' -e 's/-W //g' -e 's/-Wextra //g' src/Makefile || die + if ! use clang; then + # remove bpf target & add assembly annotations to fix CO-RE feature detection + sed -i -e 's/-target bpf/-dA/' src/Makefile.feature || die + + # remove bpf target from skeleton build + sed -i -e 's/--target=bpf//g' src/Makefile || die + fi + # Use rst2man or rst2man.py depending on which one exists (#930076) type -P rst2man >/dev/null || sed -i -e 's/rst2man/rst2man.py/g' docs/Makefile || die } bpftool_make() { + # which BPF compiler should we use? + if use clang; then + export CLANG="$(get_llvm_prefix -b)/bin/clang" + export LLVM_STRIP="$(get_llvm_prefix -b)/bin/llvm-strip" + else + # use bpf-toolchain + export CLANG="bpf-unknown-none-gcc" + export LLVM_STRIP="bpf-unknown-none-strip" + fi + tc-export AR CC LD emake \ ARCH="$(tc-arch-kernel)" \ - CLANG="$(get_llvm_prefix -b)/bin/clang" \ HOSTAR="$(tc-getBUILD_AR)" \ HOSTCC="$(tc-getBUILD_CC)" \ HOSTLD="$(tc-getBUILD_LD)" \ diff --git a/sdk_container/src/third_party/portage-stable/dev-util/bpftool/metadata.xml b/sdk_container/src/third_party/portage-stable/dev-util/bpftool/metadata.xml index 1e8c354ad0e..9f8d8d0dc0a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/bpftool/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/dev-util/bpftool/metadata.xml @@ -11,6 +11,7 @@ Use sys-libs/libcap to enable unprivileged run support + Use sys-devel/clang instead of sys-devel/bpf-toolchain for BPF CO-RE support Use sys-devel/llvm instead of libbfd (sys-libs/binutils-libs) for JIT disassembly diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/Manifest b/sdk_container/src/third_party/portage-stable/dev-util/perf/Manifest index e2bc9f93960..977f179955c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/perf/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-util/perf/Manifest @@ -1,4 +1,4 @@ -DIST linux-6.10.tar.xz 145142812 BLAKE2B bb243ea7493b9d63aa2df2050a3f1ae2b89ee84a20015239cf157e3f4f51c7ac5efedc8a51132b2d7482f9276ac418de6624831c8a3b806130d9c2d2124c539b SHA512 baa2487954044f991d2ae254d77d14a1f0185dd62c9f0fcaff69f586c9f906823017b8db1c4588f27b076dfa3ebb606929fec859f60ea419e7974330b9289cc2 DIST linux-6.11.tar.xz 146900704 BLAKE2B e7750c0878d71a56a0ce52d4c4c912199dad5bf5e2e8f872585a6494afbb37cbd852e612a6858936d2dc9b7776a3933818f540db408d57e90d18ea5249bba7ab SHA512 329c1f94008742e3f0c2ce7e591a16316d1b2cb9ea4596d4f45604097e07b7aa2f64afa40630a07f321a858455c77aa32ba57b271932ddcf4dc27863f9081cea +DIST linux-6.12.tar.xz 147906904 BLAKE2B b2ec2fc69218cacabbbe49f78384a5d259ca581b717617c12b000b16f4a4c59ee348ea886b37147f5f70fb9a7a01c1e2c8f19021078f6b23f5bc62d1c48d5e5e SHA512 a37b1823df7b4f72542f689b65882634740ba0401a42fdcf6601d9efd2e132e5a7650e70450ba76f6cd1f13ca31180f2ccee9d54fe4df89bc0000ade4380a548 DIST linux-6.7.tar.xz 141406528 BLAKE2B cecdbd19905e43e485ab73b352ced18b37f2a138c97a6956cadcda5d3d271001117dc1cf896b166ff019fc7f405f9539e2ed0d6112b0890efb04d182adf4fd0e SHA512 de06de556191614bd9daf077ae239360352a402bab407748e67f1e5108c92fd933e451707840ab22fe0f9976db3d1e1b60ca9d41cf894f015ca09b3f652b74ad -DIST patch-6.10.4.xz 303168 BLAKE2B d38bbcdd2f730a030add5b38c1ab09c7081c311ed716d3ae976a058dd34b235078700cdff05d79dc93d9badb75c95566a3bdfc39dfa045d54857d82ee2c92e9d SHA512 5f5e8b19d114fed733c8c98a581fe339f8896e05e5da6a37deb1d7d8aa9dd83b3c80a97b1c6f3f51b6f20cca9c435b20c28c2c511da2026980d9fa72624cf420 +DIST patch-6.11.7.xz 669756 BLAKE2B f2ec79bd337eaa61c7203c00ce61b3e5afa9eee38a3e38e63a7fc9270af86674e5c369ca7ddfe4fa5f79601b1c874af1ce732bd8987529c7db2f2f9ca54ba85b SHA512 031c22e2fa7e1c7808f50dc2120a35d10a0b81d30636c5d19146fe12558999517f132213b72c39a32d8cc2c0e14e16ff64cac63ef97f8be0ebe8e709a3de8156 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.10-bpf-capstone.patch b/sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.10-bpf-capstone.patch deleted file mode 100644 index ebae9a3ad08..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.10-bpf-capstone.patch +++ /dev/null @@ -1,456 +0,0 @@ -From a7728af2f25fe99ee72d211bb4ddec17a8601f5f Mon Sep 17 00:00:00 2001 -From: Guilherme Amadio -Date: Tue, 6 Aug 2024 11:34:05 +0200 -Subject: [PATCH] Fix bug #936439. Replay of upstream commit onto v6.10. - -Signed-off-by: Guilherme Amadio ---- - tools/perf/util/Build | 1 + - tools/perf/util/disasm.c | 187 +-------------------------------- - tools/perf/util/disasm_bpf.c | 197 +++++++++++++++++++++++++++++++++++ - tools/perf/util/disasm_bpf.h | 12 +++ - 4 files changed, 211 insertions(+), 186 deletions(-) - create mode 100644 tools/perf/util/disasm_bpf.c - create mode 100644 tools/perf/util/disasm_bpf.h - -diff --git a/tools/perf/util/Build b/tools/perf/util/Build -index da64efd8718f..384c4e06b838 100644 ---- a/tools/perf/util/Build -+++ b/tools/perf/util/Build -@@ -13,6 +13,7 @@ perf-y += copyfile.o - perf-y += ctype.o - perf-y += db-export.o - perf-y += disasm.o -+perf-y += disasm_bpf.o - perf-y += env.o - perf-y += event.o - perf-y += evlist.o -diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c -index 72aec8f61b94..766cbd005f32 100644 ---- a/tools/perf/util/disasm.c -+++ b/tools/perf/util/disasm.c -@@ -15,6 +15,7 @@ - #include "build-id.h" - #include "debug.h" - #include "disasm.h" -+#include "disasm_bpf.h" - #include "dso.h" - #include "env.h" - #include "evsel.h" -@@ -1164,192 +1165,6 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil - return 0; - } - --#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) --#define PACKAGE "perf" --#include --#include --#include --#include --#include --#include --#include -- --#include "bpf-event.h" --#include "bpf-utils.h" -- --static int symbol__disassemble_bpf(struct symbol *sym, -- struct annotate_args *args) --{ -- struct annotation *notes = symbol__annotation(sym); -- struct bpf_prog_linfo *prog_linfo = NULL; -- struct bpf_prog_info_node *info_node; -- int len = sym->end - sym->start; -- disassembler_ftype disassemble; -- struct map *map = args->ms.map; -- struct perf_bpil *info_linear; -- struct disassemble_info info; -- struct dso *dso = map__dso(map); -- int pc = 0, count, sub_id; -- struct btf *btf = NULL; -- char tpath[PATH_MAX]; -- size_t buf_size; -- int nr_skip = 0; -- char *buf; -- bfd *bfdf; -- int ret; -- FILE *s; -- -- if (dso->binary_type != DSO_BINARY_TYPE__BPF_PROG_INFO) -- return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE; -- -- pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__, -- sym->name, sym->start, sym->end - sym->start); -- -- memset(tpath, 0, sizeof(tpath)); -- perf_exe(tpath, sizeof(tpath)); -- -- bfdf = bfd_openr(tpath, NULL); -- if (bfdf == NULL) -- abort(); -- -- if (!bfd_check_format(bfdf, bfd_object)) -- abort(); -- -- s = open_memstream(&buf, &buf_size); -- if (!s) { -- ret = errno; -- goto out; -- } -- init_disassemble_info_compat(&info, s, -- (fprintf_ftype) fprintf, -- fprintf_styled); -- info.arch = bfd_get_arch(bfdf); -- info.mach = bfd_get_mach(bfdf); -- -- info_node = perf_env__find_bpf_prog_info(dso->bpf_prog.env, -- dso->bpf_prog.id); -- if (!info_node) { -- ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF; -- goto out; -- } -- info_linear = info_node->info_linear; -- sub_id = dso->bpf_prog.sub_id; -- -- info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns); -- info.buffer_length = info_linear->info.jited_prog_len; -- -- if (info_linear->info.nr_line_info) -- prog_linfo = bpf_prog_linfo__new(&info_linear->info); -- -- if (info_linear->info.btf_id) { -- struct btf_node *node; -- -- node = perf_env__find_btf(dso->bpf_prog.env, -- info_linear->info.btf_id); -- if (node) -- btf = btf__new((__u8 *)(node->data), -- node->data_size); -- } -- -- disassemble_init_for_target(&info); -- --#ifdef DISASM_FOUR_ARGS_SIGNATURE -- disassemble = disassembler(info.arch, -- bfd_big_endian(bfdf), -- info.mach, -- bfdf); --#else -- disassemble = disassembler(bfdf); --#endif -- if (disassemble == NULL) -- abort(); -- -- fflush(s); -- do { -- const struct bpf_line_info *linfo = NULL; -- struct disasm_line *dl; -- size_t prev_buf_size; -- const char *srcline; -- u64 addr; -- -- addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id]; -- count = disassemble(pc, &info); -- -- if (prog_linfo) -- linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo, -- addr, sub_id, -- nr_skip); -- -- if (linfo && btf) { -- srcline = btf__name_by_offset(btf, linfo->line_off); -- nr_skip++; -- } else -- srcline = NULL; -- -- fprintf(s, "\n"); -- prev_buf_size = buf_size; -- fflush(s); -- -- if (!annotate_opts.hide_src_code && srcline) { -- args->offset = -1; -- args->line = strdup(srcline); -- args->line_nr = 0; -- args->fileloc = NULL; -- args->ms.sym = sym; -- dl = disasm_line__new(args); -- if (dl) { -- annotation_line__add(&dl->al, -- ¬es->src->source); -- } -- } -- -- args->offset = pc; -- args->line = buf + prev_buf_size; -- args->line_nr = 0; -- args->fileloc = NULL; -- args->ms.sym = sym; -- dl = disasm_line__new(args); -- if (dl) -- annotation_line__add(&dl->al, ¬es->src->source); -- -- pc += count; -- } while (count > 0 && pc < len); -- -- ret = 0; --out: -- free(prog_linfo); -- btf__free(btf); -- fclose(s); -- bfd_close(bfdf); -- return ret; --} --#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) --static int symbol__disassemble_bpf(struct symbol *sym __maybe_unused, -- struct annotate_args *args __maybe_unused) --{ -- return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF; --} --#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -- --static int --symbol__disassemble_bpf_image(struct symbol *sym, -- struct annotate_args *args) --{ -- struct annotation *notes = symbol__annotation(sym); -- struct disasm_line *dl; -- -- args->offset = -1; -- args->line = strdup("to be implemented"); -- args->line_nr = 0; -- args->fileloc = NULL; -- dl = disasm_line__new(args); -- if (dl) -- annotation_line__add(&dl->al, ¬es->src->source); -- -- zfree(&args->line); -- return 0; --} -- - #ifdef HAVE_LIBCAPSTONE_SUPPORT - #include - -diff --git a/tools/perf/util/disasm_bpf.c b/tools/perf/util/disasm_bpf.c -new file mode 100644 -index 000000000000..010b961c4ae9 ---- /dev/null -+++ b/tools/perf/util/disasm_bpf.c -@@ -0,0 +1,197 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+ -+#include "util/annotate.h" -+#include "util/disasm_bpf.h" -+#include "util/symbol.h" -+#include -+#include -+ -+#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+#define PACKAGE "perf" -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "util/bpf-event.h" -+#include "util/bpf-utils.h" -+#include "util/debug.h" -+#include "util/dso.h" -+#include "util/map.h" -+#include "util/env.h" -+#include "util/util.h" -+ -+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args) -+{ -+ struct annotation *notes = symbol__annotation(sym); -+ struct bpf_prog_linfo *prog_linfo = NULL; -+ struct bpf_prog_info_node *info_node; -+ int len = sym->end - sym->start; -+ disassembler_ftype disassemble; -+ struct map *map = args->ms.map; -+ struct perf_bpil *info_linear; -+ struct disassemble_info info; -+ struct dso *dso = map__dso(map); -+ int pc = 0, count, sub_id; -+ struct btf *btf = NULL; -+ char tpath[PATH_MAX]; -+ size_t buf_size; -+ int nr_skip = 0; -+ char *buf; -+ bfd *bfdf; -+ int ret; -+ FILE *s; -+ -+ if (dso->binary_type != DSO_BINARY_TYPE__BPF_PROG_INFO) -+ return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE; -+ -+ pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__, -+ sym->name, sym->start, sym->end - sym->start); -+ -+ memset(tpath, 0, sizeof(tpath)); -+ perf_exe(tpath, sizeof(tpath)); -+ -+ bfdf = bfd_openr(tpath, NULL); -+ if (bfdf == NULL) -+ abort(); -+ -+ if (!bfd_check_format(bfdf, bfd_object)) -+ abort(); -+ -+ s = open_memstream(&buf, &buf_size); -+ if (!s) { -+ ret = errno; -+ goto out; -+ } -+ init_disassemble_info_compat(&info, s, -+ (fprintf_ftype) fprintf, -+ fprintf_styled); -+ info.arch = bfd_get_arch(bfdf); -+ info.mach = bfd_get_mach(bfdf); -+ -+ info_node = perf_env__find_bpf_prog_info(dso->bpf_prog.env, -+ dso->bpf_prog.id); -+ if (!info_node) { -+ ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF; -+ goto out; -+ } -+ info_linear = info_node->info_linear; -+ sub_id = dso->bpf_prog.sub_id; -+ -+ info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns); -+ info.buffer_length = info_linear->info.jited_prog_len; -+ -+ if (info_linear->info.nr_line_info) -+ prog_linfo = bpf_prog_linfo__new(&info_linear->info); -+ -+ if (info_linear->info.btf_id) { -+ struct btf_node *node; -+ -+ node = perf_env__find_btf(dso->bpf_prog.env, -+ info_linear->info.btf_id); -+ if (node) -+ btf = btf__new((__u8 *)(node->data), -+ node->data_size); -+ } -+ -+ disassemble_init_for_target(&info); -+ -+#ifdef DISASM_FOUR_ARGS_SIGNATURE -+ disassemble = disassembler(info.arch, -+ bfd_big_endian(bfdf), -+ info.mach, -+ bfdf); -+#else -+ disassemble = disassembler(bfdf); -+#endif -+ if (disassemble == NULL) -+ abort(); -+ -+ fflush(s); -+ do { -+ const struct bpf_line_info *linfo = NULL; -+ struct disasm_line *dl; -+ size_t prev_buf_size; -+ const char *srcline; -+ u64 addr; -+ -+ addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id]; -+ count = disassemble(pc, &info); -+ -+ if (prog_linfo) -+ linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo, -+ addr, sub_id, -+ nr_skip); -+ -+ if (linfo && btf) { -+ srcline = btf__name_by_offset(btf, linfo->line_off); -+ nr_skip++; -+ } else -+ srcline = NULL; -+ -+ fprintf(s, "\n"); -+ prev_buf_size = buf_size; -+ fflush(s); -+ -+ if (!annotate_opts.hide_src_code && srcline) { -+ args->offset = -1; -+ args->line = strdup(srcline); -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ args->ms.sym = sym; -+ dl = disasm_line__new(args); -+ if (dl) { -+ annotation_line__add(&dl->al, -+ ¬es->src->source); -+ } -+ } -+ -+ args->offset = pc; -+ args->line = buf + prev_buf_size; -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ args->ms.sym = sym; -+ dl = disasm_line__new(args); -+ if (dl) -+ annotation_line__add(&dl->al, ¬es->src->source); -+ -+ pc += count; -+ } while (count > 0 && pc < len); -+ -+ ret = 0; -+out: -+ free(prog_linfo); -+ btf__free(btf); -+ fclose(s); -+ bfd_close(bfdf); -+ return ret; -+} -+#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+int symbol__disassemble_bpf(struct symbol *sym __maybe_unused, -+ struct annotate_args *args __maybe_unused) -+{ -+ return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF; -+} -+#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+ -+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args) -+{ -+ struct annotation *notes = symbol__annotation(sym); -+ struct disasm_line *dl; -+ -+ args->offset = -1; -+ args->line = strdup("to be implemented"); -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ dl = disasm_line__new(args); -+ if (dl) -+ annotation_line__add(&dl->al, ¬es->src->source); -+ -+ zfree(&args->line); -+ return 0; -+} -+ -diff --git a/tools/perf/util/disasm_bpf.h b/tools/perf/util/disasm_bpf.h -new file mode 100644 -index 000000000000..2ecb19545388 ---- /dev/null -+++ b/tools/perf/util/disasm_bpf.h -@@ -0,0 +1,12 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+ -+#ifndef __PERF_DISASM_BPF_H -+#define __PERF_DISASM_BPF_H -+ -+struct symbol; -+struct annotate_args; -+ -+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args); -+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args); -+ -+#endif /* __PERF_DISASM_BPF_H */ --- -2.45.2 - diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.10-expr.patch b/sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.10-expr.patch deleted file mode 100644 index b4220a062f6..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.10-expr.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config -index bc980fd..a7f1e1e 100644 ---- a/tools/perf/Makefile.config -+++ b/tools/perf/Makefile.config -@@ -1184,7 +1184,7 @@ ifneq ($(NO_LIBTRACEEVENT),1) - CFLAGS += -DHAVE_LIBTRACEEVENT $(LIBTRACEEVENT_CFLAGS) - LDFLAGS += $(LIBTRACEEVENT_LDFLAGS) - EXTLIBS += ${TRACEEVENTLIBS} -- LIBTRACEEVENT_VERSION := $(shell PKG_CONFIG_PATH=$(LIBTRACEEVENT_DIR) $(PKG_CONFIG) --modversion libtraceevent) -+ LIBTRACEEVENT_VERSION := $(shell PKG_CONFIG_PATH=$(LIBTRACEEVENT_DIR) $(PKG_CONFIG) --modversion libtraceevent).0 - LIBTRACEEVENT_VERSION_1 := $(word 1, $(subst ., ,$(LIBTRACEEVENT_VERSION))) - LIBTRACEEVENT_VERSION_2 := $(word 2, $(subst ., ,$(LIBTRACEEVENT_VERSION))) - LIBTRACEEVENT_VERSION_3 := $(word 3, $(subst ., ,$(LIBTRACEEVENT_VERSION))) -@@ -1198,7 +1198,7 @@ ifneq ($(NO_LIBTRACEEVENT),1) - $(call feature_check,libtracefs) - ifeq ($(feature-libtracefs), 1) - EXTLIBS += -ltracefs -- LIBTRACEFS_VERSION := $(shell $(PKG_CONFIG) --modversion libtracefs) -+ LIBTRACEFS_VERSION := $(shell $(PKG_CONFIG) --modversion libtracefs).0 - LIBTRACEFS_VERSION_1 := $(word 1, $(subst ., ,$(LIBTRACEFS_VERSION))) - LIBTRACEFS_VERSION_2 := $(word 2, $(subst ., ,$(LIBTRACEFS_VERSION))) - LIBTRACEFS_VERSION_3 := $(word 3, $(subst ., ,$(LIBTRACEFS_VERSION))) diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.10.3-bpf-capstone.patch b/sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.10.3-bpf-capstone.patch deleted file mode 100644 index 57b298d8ccd..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.10.3-bpf-capstone.patch +++ /dev/null @@ -1,455 +0,0 @@ -From b382a433e0178d3840a8fb4b05ba3dbecba075fa Mon Sep 17 00:00:00 2001 -From: Guilherme Amadio -Date: Tue, 6 Aug 2024 11:34:05 +0200 -Subject: [PATCH] Fix bug #936439. Replay of upstream commit onto v6.10.3. - -Signed-off-by: Guilherme Amadio ---- - tools/perf/util/Build | 1 + - tools/perf/util/disasm.c | 187 +-------------------------------- - tools/perf/util/disasm_bpf.c | 196 +++++++++++++++++++++++++++++++++++ - tools/perf/util/disasm_bpf.h | 12 +++ - 4 files changed, 210 insertions(+), 186 deletions(-) - create mode 100644 tools/perf/util/disasm_bpf.c - create mode 100644 tools/perf/util/disasm_bpf.h - -diff --git a/tools/perf/util/Build b/tools/perf/util/Build -index da64efd8718f..384c4e06b838 100644 ---- a/tools/perf/util/Build -+++ b/tools/perf/util/Build -@@ -13,6 +13,7 @@ perf-y += copyfile.o - perf-y += ctype.o - perf-y += db-export.o - perf-y += disasm.o -+perf-y += disasm_bpf.o - perf-y += env.o - perf-y += event.o - perf-y += evlist.o -diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c -index e10558b79504..766cbd005f32 100644 ---- a/tools/perf/util/disasm.c -+++ b/tools/perf/util/disasm.c -@@ -15,6 +15,7 @@ - #include "build-id.h" - #include "debug.h" - #include "disasm.h" -+#include "disasm_bpf.h" - #include "dso.h" - #include "env.h" - #include "evsel.h" -@@ -1164,192 +1165,6 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil - return 0; - } - --#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) --#define PACKAGE "perf" --#include --#include --#include --#include --#include --#include --#include -- --#include "bpf-event.h" --#include "bpf-utils.h" -- --static int symbol__disassemble_bpf(struct symbol *sym, -- struct annotate_args *args) --{ -- struct annotation *notes = symbol__annotation(sym); -- struct bpf_prog_linfo *prog_linfo = NULL; -- struct bpf_prog_info_node *info_node; -- int len = sym->end - sym->start; -- disassembler_ftype disassemble; -- struct map *map = args->ms.map; -- struct perf_bpil *info_linear; -- struct disassemble_info info; -- struct dso *dso = map__dso(map); -- int pc = 0, count, sub_id; -- struct btf *btf = NULL; -- char tpath[PATH_MAX]; -- size_t buf_size; -- int nr_skip = 0; -- char *buf; -- bfd *bfdf; -- int ret; -- FILE *s; -- -- if (dso__binary_type(dso) != DSO_BINARY_TYPE__BPF_PROG_INFO) -- return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE; -- -- pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__, -- sym->name, sym->start, sym->end - sym->start); -- -- memset(tpath, 0, sizeof(tpath)); -- perf_exe(tpath, sizeof(tpath)); -- -- bfdf = bfd_openr(tpath, NULL); -- if (bfdf == NULL) -- abort(); -- -- if (!bfd_check_format(bfdf, bfd_object)) -- abort(); -- -- s = open_memstream(&buf, &buf_size); -- if (!s) { -- ret = errno; -- goto out; -- } -- init_disassemble_info_compat(&info, s, -- (fprintf_ftype) fprintf, -- fprintf_styled); -- info.arch = bfd_get_arch(bfdf); -- info.mach = bfd_get_mach(bfdf); -- -- info_node = perf_env__find_bpf_prog_info(dso__bpf_prog(dso)->env, -- dso__bpf_prog(dso)->id); -- if (!info_node) { -- ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF; -- goto out; -- } -- info_linear = info_node->info_linear; -- sub_id = dso__bpf_prog(dso)->sub_id; -- -- info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns); -- info.buffer_length = info_linear->info.jited_prog_len; -- -- if (info_linear->info.nr_line_info) -- prog_linfo = bpf_prog_linfo__new(&info_linear->info); -- -- if (info_linear->info.btf_id) { -- struct btf_node *node; -- -- node = perf_env__find_btf(dso__bpf_prog(dso)->env, -- info_linear->info.btf_id); -- if (node) -- btf = btf__new((__u8 *)(node->data), -- node->data_size); -- } -- -- disassemble_init_for_target(&info); -- --#ifdef DISASM_FOUR_ARGS_SIGNATURE -- disassemble = disassembler(info.arch, -- bfd_big_endian(bfdf), -- info.mach, -- bfdf); --#else -- disassemble = disassembler(bfdf); --#endif -- if (disassemble == NULL) -- abort(); -- -- fflush(s); -- do { -- const struct bpf_line_info *linfo = NULL; -- struct disasm_line *dl; -- size_t prev_buf_size; -- const char *srcline; -- u64 addr; -- -- addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id]; -- count = disassemble(pc, &info); -- -- if (prog_linfo) -- linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo, -- addr, sub_id, -- nr_skip); -- -- if (linfo && btf) { -- srcline = btf__name_by_offset(btf, linfo->line_off); -- nr_skip++; -- } else -- srcline = NULL; -- -- fprintf(s, "\n"); -- prev_buf_size = buf_size; -- fflush(s); -- -- if (!annotate_opts.hide_src_code && srcline) { -- args->offset = -1; -- args->line = strdup(srcline); -- args->line_nr = 0; -- args->fileloc = NULL; -- args->ms.sym = sym; -- dl = disasm_line__new(args); -- if (dl) { -- annotation_line__add(&dl->al, -- ¬es->src->source); -- } -- } -- -- args->offset = pc; -- args->line = buf + prev_buf_size; -- args->line_nr = 0; -- args->fileloc = NULL; -- args->ms.sym = sym; -- dl = disasm_line__new(args); -- if (dl) -- annotation_line__add(&dl->al, ¬es->src->source); -- -- pc += count; -- } while (count > 0 && pc < len); -- -- ret = 0; --out: -- free(prog_linfo); -- btf__free(btf); -- fclose(s); -- bfd_close(bfdf); -- return ret; --} --#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) --static int symbol__disassemble_bpf(struct symbol *sym __maybe_unused, -- struct annotate_args *args __maybe_unused) --{ -- return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF; --} --#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -- --static int --symbol__disassemble_bpf_image(struct symbol *sym, -- struct annotate_args *args) --{ -- struct annotation *notes = symbol__annotation(sym); -- struct disasm_line *dl; -- -- args->offset = -1; -- args->line = strdup("to be implemented"); -- args->line_nr = 0; -- args->fileloc = NULL; -- dl = disasm_line__new(args); -- if (dl) -- annotation_line__add(&dl->al, ¬es->src->source); -- -- zfree(&args->line); -- return 0; --} -- - #ifdef HAVE_LIBCAPSTONE_SUPPORT - #include - -diff --git a/tools/perf/util/disasm_bpf.c b/tools/perf/util/disasm_bpf.c -new file mode 100644 -index 000000000000..c76a7d2be1a7 ---- /dev/null -+++ b/tools/perf/util/disasm_bpf.c -@@ -0,0 +1,196 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+ -+#include "util/annotate.h" -+#include "util/disasm_bpf.h" -+#include "util/symbol.h" -+#include -+#include -+ -+#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+#define PACKAGE "perf" -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "util/bpf-event.h" -+#include "util/bpf-utils.h" -+#include "util/debug.h" -+#include "util/dso.h" -+#include "util/map.h" -+#include "util/env.h" -+#include "util/util.h" -+ -+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args) -+{ -+ struct annotation *notes = symbol__annotation(sym); -+ struct bpf_prog_linfo *prog_linfo = NULL; -+ struct bpf_prog_info_node *info_node; -+ int len = sym->end - sym->start; -+ disassembler_ftype disassemble; -+ struct map *map = args->ms.map; -+ struct perf_bpil *info_linear; -+ struct disassemble_info info; -+ struct dso *dso = map__dso(map); -+ int pc = 0, count, sub_id; -+ struct btf *btf = NULL; -+ char tpath[PATH_MAX]; -+ size_t buf_size; -+ int nr_skip = 0; -+ char *buf; -+ bfd *bfdf; -+ int ret; -+ FILE *s; -+ -+ if (dso__binary_type(dso) != DSO_BINARY_TYPE__BPF_PROG_INFO) -+ return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE; -+ -+ pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__, -+ sym->name, sym->start, sym->end - sym->start); -+ -+ memset(tpath, 0, sizeof(tpath)); -+ perf_exe(tpath, sizeof(tpath)); -+ -+ bfdf = bfd_openr(tpath, NULL); -+ if (bfdf == NULL) -+ abort(); -+ -+ if (!bfd_check_format(bfdf, bfd_object)) -+ abort(); -+ -+ s = open_memstream(&buf, &buf_size); -+ if (!s) { -+ ret = errno; -+ goto out; -+ } -+ init_disassemble_info_compat(&info, s, -+ (fprintf_ftype) fprintf, -+ fprintf_styled); -+ info.arch = bfd_get_arch(bfdf); -+ info.mach = bfd_get_mach(bfdf); -+ -+ info_node = perf_env__find_bpf_prog_info(dso__bpf_prog(dso)->env, -+ dso__bpf_prog(dso)->id); -+ if (!info_node) { -+ ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF; -+ goto out; -+ } -+ info_linear = info_node->info_linear; -+ sub_id = dso__bpf_prog(dso)->sub_id; -+ -+ info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns); -+ info.buffer_length = info_linear->info.jited_prog_len; -+ -+ if (info_linear->info.nr_line_info) -+ prog_linfo = bpf_prog_linfo__new(&info_linear->info); -+ -+ if (info_linear->info.btf_id) { -+ struct btf_node *node; -+ -+ node = perf_env__find_btf(dso__bpf_prog(dso)->env, -+ info_linear->info.btf_id); -+ if (node) -+ btf = btf__new((__u8 *)(node->data), -+ node->data_size); -+ } -+ -+ disassemble_init_for_target(&info); -+ -+#ifdef DISASM_FOUR_ARGS_SIGNATURE -+ disassemble = disassembler(info.arch, -+ bfd_big_endian(bfdf), -+ info.mach, -+ bfdf); -+#else -+ disassemble = disassembler(bfdf); -+#endif -+ if (disassemble == NULL) -+ abort(); -+ -+ fflush(s); -+ do { -+ const struct bpf_line_info *linfo = NULL; -+ struct disasm_line *dl; -+ size_t prev_buf_size; -+ const char *srcline; -+ u64 addr; -+ -+ addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id]; -+ count = disassemble(pc, &info); -+ -+ if (prog_linfo) -+ linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo, -+ addr, sub_id, -+ nr_skip); -+ -+ if (linfo && btf) { -+ srcline = btf__name_by_offset(btf, linfo->line_off); -+ nr_skip++; -+ } else -+ srcline = NULL; -+ -+ fprintf(s, "\n"); -+ prev_buf_size = buf_size; -+ fflush(s); -+ -+ if (!annotate_opts.hide_src_code && srcline) { -+ args->offset = -1; -+ args->line = strdup(srcline); -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ args->ms.sym = sym; -+ dl = disasm_line__new(args); -+ if (dl) { -+ annotation_line__add(&dl->al, -+ ¬es->src->source); -+ } -+ } -+ -+ args->offset = pc; -+ args->line = buf + prev_buf_size; -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ args->ms.sym = sym; -+ dl = disasm_line__new(args); -+ if (dl) -+ annotation_line__add(&dl->al, ¬es->src->source); -+ -+ pc += count; -+ } while (count > 0 && pc < len); -+ -+ ret = 0; -+out: -+ free(prog_linfo); -+ btf__free(btf); -+ fclose(s); -+ bfd_close(bfdf); -+ return ret; -+} -+#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+int symbol__disassemble_bpf(struct symbol *sym __maybe_unused, struct annotate_args *args __maybe_unused) -+{ -+ return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF; -+} -+#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+ -+int -+symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args) -+{ -+ struct annotation *notes = symbol__annotation(sym); -+ struct disasm_line *dl; -+ -+ args->offset = -1; -+ args->line = strdup("to be implemented"); -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ dl = disasm_line__new(args); -+ if (dl) -+ annotation_line__add(&dl->al, ¬es->src->source); -+ -+ zfree(&args->line); -+ return 0; -+} -diff --git a/tools/perf/util/disasm_bpf.h b/tools/perf/util/disasm_bpf.h -new file mode 100644 -index 000000000000..2ecb19545388 ---- /dev/null -+++ b/tools/perf/util/disasm_bpf.h -@@ -0,0 +1,12 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+ -+#ifndef __PERF_DISASM_BPF_H -+#define __PERF_DISASM_BPF_H -+ -+struct symbol; -+struct annotate_args; -+ -+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args); -+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args); -+ -+#endif /* __PERF_DISASM_BPF_H */ --- -2.45.2 - diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.11-bpf-capstone.patch b/sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.11-bpf-capstone.patch deleted file mode 100644 index 7d8b376869f..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.11-bpf-capstone.patch +++ /dev/null @@ -1,469 +0,0 @@ -commit ea59b70a8418a313d6f2ab48a957de015fc33018 -Author: Arnaldo Carvalho de Melo -Date: Wed Jul 31 11:58:56 2024 -0300 - - perf bpf: Move BPF disassembly routines to separate file to avoid clash with capstone bpf headers - - There is a clash of the libbpf and capstone libraries, that ends up - with: - - In file included from /usr/include/capstone/capstone.h:325, - from util/disasm.c:1513: - /usr/include/capstone/bpf.h:94:14: error: ‘bpf_insn’ defined as wrong kind of tag - 94 | typedef enum bpf_insn { - - So far we're just trying to avoid this by not having both headers - included in the same .c or .h file, do it one more time by moving the - BPF diassembly routines from util/disasm.c to util/disasm_bpf.c. - - This is only being hit when building with BUILD_NONDISTRO=1, i.e. - building with binutils-devel, that isn't the in the default build due to - a licencing clash. We need to reimplement what is now isolated in - util/disasm_bpf.c using some other library to have BPF annotation - feature that now only is available with BUILD_NONDISTRO=1. - - Fixes: 6d17edc113de1e21 ("perf annotate: Use libcapstone to disassemble") - Cc: Adrian Hunter - Cc: Ian Rogers - Cc: Jiri Olsa - Cc: Kan Liang - Cc: Namhyung Kim - Link: https://lore.kernel.org/lkml/ZqpUSKPxMwaQKORr@x1 - Signed-off-by: Arnaldo Carvalho de Melo - -diff --git a/tools/perf/util/Build b/tools/perf/util/Build -index 0f18fe81ef0b..b24360c04aae 100644 ---- a/tools/perf/util/Build -+++ b/tools/perf/util/Build -@@ -13,6 +13,7 @@ perf-util-y += copyfile.o - perf-util-y += ctype.o - perf-util-y += db-export.o - perf-util-y += disasm.o -+perf-util-y += disasm_bpf.o - perf-util-y += env.o - perf-util-y += event.o - perf-util-y += evlist.o -diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c -index 410e52cd9cfd..85fb0cfedf94 100644 ---- a/tools/perf/util/disasm.c -+++ b/tools/perf/util/disasm.c -@@ -16,6 +16,7 @@ - #include "build-id.h" - #include "debug.h" - #include "disasm.h" -+#include "disasm_bpf.h" - #include "dso.h" - #include "env.h" - #include "evsel.h" -@@ -1323,192 +1324,6 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil - return 0; - } - --#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) --#define PACKAGE "perf" --#include --#include --#include --#include --#include --#include --#include -- --#include "bpf-event.h" --#include "bpf-utils.h" -- --static int symbol__disassemble_bpf(struct symbol *sym, -- struct annotate_args *args) --{ -- struct annotation *notes = symbol__annotation(sym); -- struct bpf_prog_linfo *prog_linfo = NULL; -- struct bpf_prog_info_node *info_node; -- int len = sym->end - sym->start; -- disassembler_ftype disassemble; -- struct map *map = args->ms.map; -- struct perf_bpil *info_linear; -- struct disassemble_info info; -- struct dso *dso = map__dso(map); -- int pc = 0, count, sub_id; -- struct btf *btf = NULL; -- char tpath[PATH_MAX]; -- size_t buf_size; -- int nr_skip = 0; -- char *buf; -- bfd *bfdf; -- int ret; -- FILE *s; -- -- if (dso__binary_type(dso) != DSO_BINARY_TYPE__BPF_PROG_INFO) -- return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE; -- -- pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__, -- sym->name, sym->start, sym->end - sym->start); -- -- memset(tpath, 0, sizeof(tpath)); -- perf_exe(tpath, sizeof(tpath)); -- -- bfdf = bfd_openr(tpath, NULL); -- if (bfdf == NULL) -- abort(); -- -- if (!bfd_check_format(bfdf, bfd_object)) -- abort(); -- -- s = open_memstream(&buf, &buf_size); -- if (!s) { -- ret = errno; -- goto out; -- } -- init_disassemble_info_compat(&info, s, -- (fprintf_ftype) fprintf, -- fprintf_styled); -- info.arch = bfd_get_arch(bfdf); -- info.mach = bfd_get_mach(bfdf); -- -- info_node = perf_env__find_bpf_prog_info(dso__bpf_prog(dso)->env, -- dso__bpf_prog(dso)->id); -- if (!info_node) { -- ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF; -- goto out; -- } -- info_linear = info_node->info_linear; -- sub_id = dso__bpf_prog(dso)->sub_id; -- -- info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns); -- info.buffer_length = info_linear->info.jited_prog_len; -- -- if (info_linear->info.nr_line_info) -- prog_linfo = bpf_prog_linfo__new(&info_linear->info); -- -- if (info_linear->info.btf_id) { -- struct btf_node *node; -- -- node = perf_env__find_btf(dso__bpf_prog(dso)->env, -- info_linear->info.btf_id); -- if (node) -- btf = btf__new((__u8 *)(node->data), -- node->data_size); -- } -- -- disassemble_init_for_target(&info); -- --#ifdef DISASM_FOUR_ARGS_SIGNATURE -- disassemble = disassembler(info.arch, -- bfd_big_endian(bfdf), -- info.mach, -- bfdf); --#else -- disassemble = disassembler(bfdf); --#endif -- if (disassemble == NULL) -- abort(); -- -- fflush(s); -- do { -- const struct bpf_line_info *linfo = NULL; -- struct disasm_line *dl; -- size_t prev_buf_size; -- const char *srcline; -- u64 addr; -- -- addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id]; -- count = disassemble(pc, &info); -- -- if (prog_linfo) -- linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo, -- addr, sub_id, -- nr_skip); -- -- if (linfo && btf) { -- srcline = btf__name_by_offset(btf, linfo->line_off); -- nr_skip++; -- } else -- srcline = NULL; -- -- fprintf(s, "\n"); -- prev_buf_size = buf_size; -- fflush(s); -- -- if (!annotate_opts.hide_src_code && srcline) { -- args->offset = -1; -- args->line = strdup(srcline); -- args->line_nr = 0; -- args->fileloc = NULL; -- args->ms.sym = sym; -- dl = disasm_line__new(args); -- if (dl) { -- annotation_line__add(&dl->al, -- ¬es->src->source); -- } -- } -- -- args->offset = pc; -- args->line = buf + prev_buf_size; -- args->line_nr = 0; -- args->fileloc = NULL; -- args->ms.sym = sym; -- dl = disasm_line__new(args); -- if (dl) -- annotation_line__add(&dl->al, ¬es->src->source); -- -- pc += count; -- } while (count > 0 && pc < len); -- -- ret = 0; --out: -- free(prog_linfo); -- btf__free(btf); -- fclose(s); -- bfd_close(bfdf); -- return ret; --} --#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) --static int symbol__disassemble_bpf(struct symbol *sym __maybe_unused, -- struct annotate_args *args __maybe_unused) --{ -- return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF; --} --#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -- --static int --symbol__disassemble_bpf_image(struct symbol *sym, -- struct annotate_args *args) --{ -- struct annotation *notes = symbol__annotation(sym); -- struct disasm_line *dl; -- -- args->offset = -1; -- args->line = strdup("to be implemented"); -- args->line_nr = 0; -- args->fileloc = NULL; -- dl = disasm_line__new(args); -- if (dl) -- annotation_line__add(&dl->al, ¬es->src->source); -- -- zfree(&args->line); -- return 0; --} -- - #ifdef HAVE_LIBCAPSTONE_SUPPORT - #include - -diff --git a/tools/perf/util/disasm_bpf.c b/tools/perf/util/disasm_bpf.c -new file mode 100644 -index 000000000000..1fee71c79b62 ---- /dev/null -+++ b/tools/perf/util/disasm_bpf.c -@@ -0,0 +1,195 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+ -+#include "util/annotate.h" -+#include "util/disasm_bpf.h" -+#include "util/symbol.h" -+#include -+#include -+ -+#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+#define PACKAGE "perf" -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "util/bpf-event.h" -+#include "util/bpf-utils.h" -+#include "util/debug.h" -+#include "util/dso.h" -+#include "util/map.h" -+#include "util/env.h" -+#include "util/util.h" -+ -+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args) -+{ -+ struct annotation *notes = symbol__annotation(sym); -+ struct bpf_prog_linfo *prog_linfo = NULL; -+ struct bpf_prog_info_node *info_node; -+ int len = sym->end - sym->start; -+ disassembler_ftype disassemble; -+ struct map *map = args->ms.map; -+ struct perf_bpil *info_linear; -+ struct disassemble_info info; -+ struct dso *dso = map__dso(map); -+ int pc = 0, count, sub_id; -+ struct btf *btf = NULL; -+ char tpath[PATH_MAX]; -+ size_t buf_size; -+ int nr_skip = 0; -+ char *buf; -+ bfd *bfdf; -+ int ret; -+ FILE *s; -+ -+ if (dso__binary_type(dso) != DSO_BINARY_TYPE__BPF_PROG_INFO) -+ return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE; -+ -+ pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__, -+ sym->name, sym->start, sym->end - sym->start); -+ -+ memset(tpath, 0, sizeof(tpath)); -+ perf_exe(tpath, sizeof(tpath)); -+ -+ bfdf = bfd_openr(tpath, NULL); -+ if (bfdf == NULL) -+ abort(); -+ -+ if (!bfd_check_format(bfdf, bfd_object)) -+ abort(); -+ -+ s = open_memstream(&buf, &buf_size); -+ if (!s) { -+ ret = errno; -+ goto out; -+ } -+ init_disassemble_info_compat(&info, s, -+ (fprintf_ftype) fprintf, -+ fprintf_styled); -+ info.arch = bfd_get_arch(bfdf); -+ info.mach = bfd_get_mach(bfdf); -+ -+ info_node = perf_env__find_bpf_prog_info(dso__bpf_prog(dso)->env, -+ dso__bpf_prog(dso)->id); -+ if (!info_node) { -+ ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF; -+ goto out; -+ } -+ info_linear = info_node->info_linear; -+ sub_id = dso__bpf_prog(dso)->sub_id; -+ -+ info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns); -+ info.buffer_length = info_linear->info.jited_prog_len; -+ -+ if (info_linear->info.nr_line_info) -+ prog_linfo = bpf_prog_linfo__new(&info_linear->info); -+ -+ if (info_linear->info.btf_id) { -+ struct btf_node *node; -+ -+ node = perf_env__find_btf(dso__bpf_prog(dso)->env, -+ info_linear->info.btf_id); -+ if (node) -+ btf = btf__new((__u8 *)(node->data), -+ node->data_size); -+ } -+ -+ disassemble_init_for_target(&info); -+ -+#ifdef DISASM_FOUR_ARGS_SIGNATURE -+ disassemble = disassembler(info.arch, -+ bfd_big_endian(bfdf), -+ info.mach, -+ bfdf); -+#else -+ disassemble = disassembler(bfdf); -+#endif -+ if (disassemble == NULL) -+ abort(); -+ -+ fflush(s); -+ do { -+ const struct bpf_line_info *linfo = NULL; -+ struct disasm_line *dl; -+ size_t prev_buf_size; -+ const char *srcline; -+ u64 addr; -+ -+ addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id]; -+ count = disassemble(pc, &info); -+ -+ if (prog_linfo) -+ linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo, -+ addr, sub_id, -+ nr_skip); -+ -+ if (linfo && btf) { -+ srcline = btf__name_by_offset(btf, linfo->line_off); -+ nr_skip++; -+ } else -+ srcline = NULL; -+ -+ fprintf(s, "\n"); -+ prev_buf_size = buf_size; -+ fflush(s); -+ -+ if (!annotate_opts.hide_src_code && srcline) { -+ args->offset = -1; -+ args->line = strdup(srcline); -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ args->ms.sym = sym; -+ dl = disasm_line__new(args); -+ if (dl) { -+ annotation_line__add(&dl->al, -+ ¬es->src->source); -+ } -+ } -+ -+ args->offset = pc; -+ args->line = buf + prev_buf_size; -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ args->ms.sym = sym; -+ dl = disasm_line__new(args); -+ if (dl) -+ annotation_line__add(&dl->al, ¬es->src->source); -+ -+ pc += count; -+ } while (count > 0 && pc < len); -+ -+ ret = 0; -+out: -+ free(prog_linfo); -+ btf__free(btf); -+ fclose(s); -+ bfd_close(bfdf); -+ return ret; -+} -+#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+int symbol__disassemble_bpf(struct symbol *sym __maybe_unused, struct annotate_args *args __maybe_unused) -+{ -+ return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF; -+} -+#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT) -+ -+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args) -+{ -+ struct annotation *notes = symbol__annotation(sym); -+ struct disasm_line *dl; -+ -+ args->offset = -1; -+ args->line = strdup("to be implemented"); -+ args->line_nr = 0; -+ args->fileloc = NULL; -+ dl = disasm_line__new(args); -+ if (dl) -+ annotation_line__add(&dl->al, ¬es->src->source); -+ -+ zfree(&args->line); -+ return 0; -+} -diff --git a/tools/perf/util/disasm_bpf.h b/tools/perf/util/disasm_bpf.h -new file mode 100644 -index 000000000000..2ecb19545388 ---- /dev/null -+++ b/tools/perf/util/disasm_bpf.h -@@ -0,0 +1,12 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+ -+#ifndef __PERF_DISASM_BPF_H -+#define __PERF_DISASM_BPF_H -+ -+struct symbol; -+struct annotate_args; -+ -+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args); -+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args); -+ -+#endif /* __PERF_DISASM_BPF_H */ diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.11.7-annotate.patch b/sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.11.7-annotate.patch new file mode 100644 index 00000000000..ca6e7bb07cb --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/perf/files/perf-6.11.7-annotate.patch @@ -0,0 +1,19 @@ + +Fix for bug #943203. + +https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5363c306787c88d41a41493f81b4308643696f6e + +diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c +index a18927d792afc5..3bbf173ad822bc 100644 +--- a/tools/perf/util/symbol.c ++++ b/tools/perf/util/symbol.c +@@ -1931,6 +1931,9 @@ int dso__load(struct dso *dso, struct map *map) + if (next_slot) { + ss_pos++; + ++ if (dso__binary_type(dso) == DSO_BINARY_TYPE__NOT_FOUND) ++ dso__set_binary_type(dso, symtab_type); ++ + if (syms_ss && runtime_ss) + break; + } else { diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.10.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.10.ebuild deleted file mode 100644 index 7668df3a67d..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.10.ebuild +++ /dev/null @@ -1,342 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{10..13} ) -inherit bash-completion-r1 estack flag-o-matic linux-info llvm toolchain-funcs python-r1 - -DESCRIPTION="Userland tools for Linux Performance Counters" -HOMEPAGE="https://perf.wiki.kernel.org/" - -LINUX_V="${PV:0:1}.x" -if [[ ${PV} == *_rc* ]] ; then - LINUX_VER=$(ver_cut 1-2).$(($(ver_cut 3)-1)) - PATCH_VERSION=$(ver_cut 1-3) - LINUX_PATCH=patch-${PV//_/-}.xz - SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/testing/${LINUX_PATCH} - https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/testing/v${PATCH_VERSION}/${LINUX_PATCH}" -elif [[ ${PV} == *.*.* ]] ; then - # stable-release series - LINUX_VER=$(ver_cut 1-2) - LINUX_PATCH=patch-${PV}.xz - SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_PATCH}" -else - LINUX_VER=${PV} -fi - -LINUX_SOURCES="linux-${LINUX_VER}.tar.xz" -SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" - -S_K="${WORKDIR}/linux-${LINUX_VER}" -S="${S_K}/tools/perf" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux" -IUSE="abi_mips_o32 abi_mips_n32 abi_mips_n64 audit babeltrace capstone big-endian bpf caps crypt debug +doc gtk java libpfm +libtraceevent +libtracefs lzma numa perl python slang systemtap tcmalloc unwind zstd" - -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} -" - -# setuptools (and Python) are always needed even if not building Python bindings -BDEPEND=" - ${LINUX_PATCH+dev-util/patchutils} - ${PYTHON_DEPS} - >=app-arch/tar-1.34-r2 - dev-python/setuptools[${PYTHON_USEDEP}] - app-alternatives/yacc - app-alternatives/lex - virtual/pkgconfig - doc? ( - app-text/asciidoc - app-text/sgml-common - app-text/xmlto - sys-process/time - ) -" - -RDEPEND=" - audit? ( sys-process/audit ) - babeltrace? ( dev-util/babeltrace:0/1 ) - bpf? ( - dev-libs/libbpf - dev-util/bpftool - dev-util/pahole - sys-devel/clang:= - sys-devel/llvm:= - ) - caps? ( sys-libs/libcap ) - capstone? ( dev-libs/capstone ) - crypt? ( dev-libs/openssl:= ) - gtk? ( x11-libs/gtk+:2 ) - java? ( virtual/jre:* ) - libpfm? ( dev-libs/libpfm:= ) - libtraceevent? ( dev-libs/libtraceevent ) - libtracefs? ( dev-libs/libtracefs ) - lzma? ( app-arch/xz-utils ) - numa? ( sys-process/numactl ) - perl? ( dev-lang/perl:= ) - python? ( ${PYTHON_DEPS} ) - slang? ( sys-libs/slang ) - systemtap? ( dev-debug/systemtap ) - tcmalloc? ( dev-util/google-perftools ) - unwind? ( sys-libs/libunwind:= ) - zstd? ( app-arch/zstd:= ) - dev-libs/elfutils - sys-libs/binutils-libs:= - sys-libs/zlib - virtual/libcrypt -" - -DEPEND="${RDEPEND} - >=sys-kernel/linux-headers-5.10 - java? ( virtual/jdk ) -" - -QA_FLAGS_IGNORED=( - 'usr/bin/perf-read-vdso32' # not linked with anything except for libc - 'usr/libexec/perf-core/dlfilters/.*' # plugins -) - -pkg_pretend() { - if ! use doc ; then - ewarn "Without the doc USE flag you won't get any documentation nor man pages." - ewarn "And without man pages, you won't get any --help output for perf and its" - ewarn "sub-tools." - fi -} - -pkg_setup() { - local CONFIG_CHECK=" - ~DEBUG_INFO - ~FTRACE - ~FTRACE_SYSCALLS - ~FUNCTION_TRACER - ~KALLSYMS - ~KALLSYMS_ALL - ~KPROBES - ~KPROBE_EVENTS - ~PERF_EVENTS - ~UPROBES - ~UPROBE_EVENTS - " - - use bpf && llvm_pkg_setup - # We enable python unconditionally as libbpf always generates - # API headers using python script - python_setup - - if use bpf ; then - CONFIG_CHECK+="~BPF ~BPF_EVENTS ~BPF_SYSCALL ~DEBUG_INFO_BTF ~HAVE_EBPF_JIT" - fi - - linux-info_pkg_setup -} - -# src_unpack and src_prepare are copied to dev-util/bpftool since -# it's building from the same tarball, please keep it in sync with bpftool -src_unpack() { - local paths=( - kernel/bpf tools/{arch,bpf,build,include,lib,perf,scripts} - scripts include lib "arch/*/include" "arch/*/lib" "arch/*/tools" - ) - - # We expect the tar implementation to support the -j option (both - # GNU tar and libarchive's tar support that). - echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}" - gtar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \ - "${paths[@]/#/linux-${LINUX_VER}/}" || die - - if [[ -n ${LINUX_PATCH} ]] ; then - eshopts_push -o noglob - ebegin "Filtering partial source patch" - filterdiff -p1 ${paths[@]/#/-i } -z "${DISTDIR}"/${LINUX_PATCH} \ - > ${P}.patch - eend $? || die "filterdiff failed" - eshopts_pop - fi - - local a - for a in ${A}; do - [[ ${a} == ${LINUX_SOURCES} ]] && continue - [[ ${a} == ${LINUX_PATCH} ]] && continue - unpack ${a} - done -} - -src_prepare() { - default - if [[ -n ${LINUX_PATCH} ]] ; then - pushd "${S_K}" >/dev/null || die - eapply "${WORKDIR}"/${P}.patch - popd || die - fi - - pushd "${S_K}" >/dev/null || die - eapply "${FILESDIR}"/perf-6.4-libtracefs.patch - eapply "${FILESDIR}"/perf-6.10-bpf-capstone.patch - eapply "${FILESDIR}"/perf-6.10-expr.patch - popd || die - - # Drop some upstream too-developer-oriented flags and fix the - # Makefile in general - sed -i \ - -e "s@\$(sysconfdir_SQ)/bash_completion.d@$(get_bashcompdir)@" \ - "${S}"/Makefile.perf || die - # A few places still use -Werror w/out $(WERROR) protection. - sed -i -e 's@-Werror@@' \ - "${S}"/Makefile.perf "${S_K}"/tools/lib/bpf/Makefile \ - "${S_K}"/tools/lib/perf/Makefile || die - - # Avoid the call to make kernelversion - sed -i -e '/PERF-VERSION-GEN/d' Makefile.perf || die - echo "#define PERF_VERSION \"${PV}\"" > PERF-VERSION-FILE - - # The code likes to compile local assembly files which lack ELF markings. - find -name '*.S' -exec sed -i '$a.section .note.GNU-stack,"",%progbits' {} + -} - -puse() { usex $1 "" 1; } -perf_make() { - # The arch parsing is a bit funky. The perf tools package is integrated - # into the kernel, so it wants an ARCH that looks like the kernel arch, - # but it also wants to know about the split value -- i386/x86_64 vs just - # x86. We can get that by telling the func to use an older linux version. - # It's kind of a hack, but not that bad ... - - # LIBDIR sets a search path of perf-gtk.so. Bug 515954 - - local arch=$(tc-arch-kernel) - local java_dir - use java && java_dir="${EPREFIX}/etc/java-config-2/current-system-vm" - - # sync this with the whitelist in tools/perf/Makefile.config - local disable_libdw - if ! use amd64 && ! use x86 && \ - ! use arm && \ - ! use arm64 && \ - ! use ppc && ! use ppc64 \ - ! use s390 && \ - ! use riscv && \ - ! use loong - then - disable_libdw=1 - fi - - # perf directly invokes LD for linking without going through CC, on mips - # it is required to specify the emulation. port of below buildroot patch - # https://patchwork.ozlabs.org/project/buildroot/patch/20170217105905.32151-1-Vincent.Riera@imgtec.com/ - local linker="$(tc-getLD)" - if use mips - then - if use big-endian - then - use abi_mips_n64 && linker+=" -m elf64btsmip" - use abi_mips_n32 && linker+=" -m elf32btsmipn32" - use abi_mips_o32 && linker+=" -m elf32btsmip" - else - use abi_mips_n64 && linker+=" -m elf64ltsmip" - use abi_mips_n32 && linker+=" -m elf32ltsmipn32" - use abi_mips_o32 && linker+=" -m elf32ltsmip" - fi - fi - - # FIXME: NO_CORESIGHT - local emakeargs=( - V=1 VF=1 - HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)" - CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="${linker}" NM="$(tc-getNM)" - CLANG="${CHOST}-clang" - PKG_CONFIG="$(tc-getPKG_CONFIG)" - prefix="${EPREFIX}/usr" bindir_relative="bin" - tipdir="share/doc/${PF}" - EXTRA_CFLAGS="${CFLAGS}" - EXTRA_LDFLAGS="${LDFLAGS}" - ARCH="${arch}" - BUILD_BPF_SKEL=$(usex bpf 1 "") \ - BUILD_NONDISTRO=1 - JDIR="${java_dir}" - CORESIGHT= - GTK2=$(usex gtk 1 "") - feature-gtk2-infobar=$(usex gtk 1 "") - NO_AUXTRACE= - NO_BACKTRACE= - NO_CAPSTONE=$(puse capstone) - NO_DEMANGLE= - NO_JEVENTS=$(puse python) - NO_JVMTI=$(puse java) - NO_LIBAUDIT=$(puse audit) - NO_LIBBABELTRACE=$(puse babeltrace) - NO_LIBBIONIC=1 - NO_LIBBPF=$(puse bpf) - NO_LIBCAP=$(puse caps) - NO_LIBCRYPTO=$(puse crypt) - NO_LIBDW_DWARF_UNWIND="${disable_libdw}" - NO_LIBELF= - NO_LIBNUMA=$(puse numa) - NO_LIBPERL=$(puse perl) - NO_LIBPFM4=$(puse libpfm) - NO_LIBPYTHON=$(puse python) - NO_LIBTRACEEVENT=$(puse libtraceevent) - NO_LIBUNWIND=$(puse unwind) - NO_LIBZSTD=$(puse zstd) - NO_SDT=$(puse systemtap) - NO_SHELLCHECK=1 - NO_SLANG=$(puse slang) - NO_LZMA=$(puse lzma) - NO_ZLIB= - TCMALLOC=$(usex tcmalloc 1 "") - WERROR=0 - DEBUG=$(usex debug 1 "") - LIBDIR="/usr/libexec/perf-core" - libdir="${EPREFIX}/usr/$(get_libdir)" - plugindir="${EPREFIX}/usr/$(get_libdir)/perf/plugins" - "$@" - ) - emake "${emakeargs[@]}" -} - -src_compile() { - filter-lto - - perf_make -f Makefile.perf - use doc && perf_make -C Documentation man -} - -src_test() { - : -} - -src_install() { - _install_python_ext() { - perf_make -f Makefile.perf install-python_ext DESTDIR="${D}" - } - - perf_make -f Makefile.perf install DESTDIR="${D}" - - if use python; then - python_foreach_impl _install_python_ext - fi - - if use gtk; then - local libdir - libdir="$(get_libdir)" - # on some arches it ends up in lib even on 64bit, ppc64 for instance. - [[ -f "${ED}"/usr/lib/libperf-gtk.so ]] && libdir="lib" - mv "${ED}"/usr/${libdir}/libperf-gtk.so \ - "${ED}"/usr/libexec/perf-core || die - fi - - dodoc CREDITS - - dodoc *txt Documentation/*.txt - - # perf needs this decompressed to print out tips for users - docompress -x /usr/share/doc/${PF}/tips.txt - - if use doc ; then - doman Documentation/*.1 - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.11.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.11.7.ebuild similarity index 98% rename from sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.11.ebuild rename to sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.11.7.ebuild index b523d8477bf..9b0cb46b57c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.11.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.11.7.ebuild @@ -34,7 +34,7 @@ S="${S_K}/tools/perf" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="~alpha amd64 ~arm arm64 ~loong ppc ppc64 ~riscv x86 ~amd64-linux ~x86-linux" IUSE="abi_mips_o32 abi_mips_n32 abi_mips_n64 audit babeltrace capstone big-endian bpf caps crypt debug +doc gtk java libpfm +libtraceevent +libtracefs lzma numa perl python slang systemtap tcmalloc unwind zstd" REQUIRED_USE=" @@ -177,11 +177,11 @@ src_prepare() { if [[ -n ${LINUX_PATCH} ]] ; then pushd "${S_K}" >/dev/null || die eapply "${WORKDIR}"/${P}.patch + eapply "${FILESDIR}"/perf-6.11.7-annotate.patch popd || die fi pushd "${S_K}" >/dev/null || die - eapply "${FILESDIR}"/perf-6.11-bpf-capstone.patch popd || die # Drop some upstream too-developer-oriented flags and fix the diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.10.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.12.ebuild similarity index 95% rename from sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.10.4.ebuild rename to sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.12.ebuild index df1101c9dc1..c3d4af9bc2f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.10.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.12.ebuild @@ -3,8 +3,9 @@ EAPI=8 -PYTHON_COMPAT=( python3_{10..13} ) -inherit bash-completion-r1 estack flag-o-matic linux-info llvm toolchain-funcs python-r1 +LLVM_COMPAT=( {16..19} ) +PYTHON_COMPAT=( python3_{10..13} python3_13t) +inherit bash-completion-r1 estack flag-o-matic linux-info llvm-r1 toolchain-funcs python-r1 DESCRIPTION="Userland tools for Linux Performance Counters" HOMEPAGE="https://perf.wiki.kernel.org/" @@ -64,8 +65,10 @@ RDEPEND=" dev-libs/libbpf dev-util/bpftool dev-util/pahole - sys-devel/clang:= - sys-devel/llvm:= + $(llvm_gen_dep ' + sys-devel/clang:${LLVM_SLOT}= + sys-devel/llvm:${LLVM_SLOT}= + ') ) caps? ( sys-libs/libcap ) capstone? ( dev-libs/capstone ) @@ -110,7 +113,9 @@ pkg_pretend() { pkg_setup() { local CONFIG_CHECK=" + ~!SCHED_OMIT_FRAME_POINTER ~DEBUG_INFO + ~FRAME_POINTER ~FTRACE ~FTRACE_SYSCALLS ~FUNCTION_TRACER @@ -119,17 +124,19 @@ pkg_setup() { ~KPROBES ~KPROBE_EVENTS ~PERF_EVENTS + ~STACKTRACE + ~TRACEPOINTS ~UPROBES ~UPROBE_EVENTS " - use bpf && llvm_pkg_setup + use bpf && llvm-r1_pkg_setup # We enable python unconditionally as libbpf always generates # API headers using python script python_setup if use bpf ; then - CONFIG_CHECK+="~BPF ~BPF_EVENTS ~BPF_SYSCALL ~DEBUG_INFO_BTF ~HAVE_EBPF_JIT" + CONFIG_CHECK+="~BPF ~BPF_EVENTS ~BPF_SYSCALL ~DEBUG_INFO_BTF ~HAVE_EBPF_JIT ~UNWINDER_FRAME_POINTER" fi linux-info_pkg_setup @@ -178,9 +185,7 @@ src_prepare() { fi pushd "${S_K}" >/dev/null || die - eapply "${FILESDIR}"/perf-6.4-libtracefs.patch - eapply "${FILESDIR}"/perf-6.10-expr.patch - eapply "${FILESDIR}"/perf-6.10.3-bpf-capstone.patch + # Gentoo patches go here popd || die # Drop some upstream too-developer-oriented flags and fix the diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/Manifest b/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/Manifest index c9337818246..be612f49d31 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/Manifest @@ -1,2 +1,3 @@ DIST pkgcheck-0.10.30.tar.gz 378098 BLAKE2B f80224d707f7656ca45f58932936e1ce780d670be596312532b88940fbe1cfb1c7e14a877a955fc4f21fb003a2ee5c6095c2c6919475cdc95db9be0736050b50 SHA512 078ba2275e39e645eca22a265c9f06c6dd7d1cb310979ab5e48bb86a374b42edc50c0ca8d0bd671a3b51341b7fae80ff2c9adf2dc2eeabd93a545c84373902b4 DIST pkgcheck-0.10.31.tar.gz 379079 BLAKE2B b3e308a8d496c954d649677a41394b1fe1fbab43ce6c629616249306fafaad8e5c2cfa38fc9c838117f7abc381a0c04cea60ba5a2b3ab6a1612bbfc68d858832 SHA512 539cf262c950547dbd85441a7b40e76fcdc0810fdd633ab9042a13c7b19db4826c05ea1bbacf64b50c68884e31fff6a88e6b2baf94b2e6a4b2738123441da6ec +DIST pkgcheck-0.10.32.tar.gz 380032 BLAKE2B a424f49932c1a55d39cb1869aedb2adb5fe25f9edd0d87037b8364dcacb263fba12db601966da983fc62e142f3bc8d07259a05e0be92b6ece5cf26111c0a6db1 SHA512 86aa47bd71c2553e1b9e4fcf7ca1749a7e249e8f2656438fd0d9527583625bb57cae07e64d39e35345ca11831b1cf7d489e9c68d220e2f39e8af01bc8dc37017 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/pkgcheck-0.10.32.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/pkgcheck-0.10.32.ebuild new file mode 100644 index 00000000000..4c4597c93e1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/pkgcheck-0.10.32.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=standalone +PYTHON_COMPAT=( python3_{10..13} ) +inherit elisp-common distutils-r1 optfeature + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/pkgcore/pkgcheck.git + https://github.com/pkgcore/pkgcheck.git" + inherit git-r3 +else + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ~ppc64 ~riscv ~s390 sparc x86 ~x64-macos" + inherit pypi +fi + +DESCRIPTION="pkgcore-based QA utility for ebuild repos" +HOMEPAGE="https://github.com/pkgcore/pkgcheck" + +LICENSE="BSD MIT" +SLOT="0" +IUSE="emacs" + +if [[ ${PV} == *9999 ]]; then + RDEPEND=" + ~dev-python/snakeoil-9999[${PYTHON_USEDEP}] + ~sys-apps/pkgcore-9999[${PYTHON_USEDEP}]" +else + RDEPEND=" + >=dev-python/snakeoil-0.10.8[${PYTHON_USEDEP}] + >=sys-apps/pkgcore-0.12.25[${PYTHON_USEDEP}]" +fi +RDEPEND+=" + >=dev-libs/tree-sitter-bash-0.21.0[python,${PYTHON_USEDEP}] + dev-python/chardet[${PYTHON_USEDEP}] + dev-python/lazy-object-proxy[${PYTHON_USEDEP}] + dev-python/lxml[${PYTHON_USEDEP}] + dev-python/pathspec[${PYTHON_USEDEP}] + >=dev-python/tree-sitter-0.23.0[${PYTHON_USEDEP}] + =app-editors/emacs-24.1:* + app-emacs/ebuild-mode + app-emacs/flycheck + ) +" +BDEPEND="${RDEPEND} + >=dev-python/flit-core-3.8[${PYTHON_USEDEP}] + test? ( + dev-python/requests[${PYTHON_USEDEP}] + dev-vcs/git + ) +" + +SITEFILE="50${PN}-gentoo.el" + +distutils_enable_tests pytest + +export USE_SYSTEM_TREE_SITTER_BASH=1 + +src_compile() { + distutils-r1_src_compile + + if use emacs ; then + pushd "${S}"/contrib/emacs >/dev/null || die + elisp-compile *.el + popd >/dev/null || die + fi +} + +python_install_all() { + local DOCS=( NEWS.rst ) + [[ ${PV} == *9999 ]] || doman build/sphinx/man/* + distutils-r1_python_install_all + + if use emacs ; then + elisp-install ${PN} "${S}"/contrib/emacs/*.el{,c} + elisp-site-file-install "${FILESDIR}/${SITEFILE}" + fi +} + +pkg_postinst() { + use emacs && elisp-site-regen + + optfeature "Network check support" dev-python/requests + optfeature "Perl module version check support" dev-perl/Gentoo-PerlMod-Version +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/re2c/re2c-3.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/re2c/re2c-3.1.ebuild index d9f822703a4..92b5f670063 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/re2c/re2c-3.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/re2c/re2c-3.1.ebuild @@ -13,7 +13,7 @@ SRC_URI="https://github.com/skvadrik/re2c/releases/download/${PV}/${P}.tar.xz" LICENSE="public-domain" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="debug test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.47.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.47.0-r1.ebuild index 0de66a8aadb..02512210c10 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.47.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.47.0-r1.ebuild @@ -8,7 +8,7 @@ GENTOO_DEPEND_ON_PERL=no # bug #329479: git-remote-testgit is not multiple-version aware PYTHON_COMPAT=( python3_{10..13} ) -inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd +inherit flag-o-matic toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN" @@ -326,6 +326,9 @@ git_emake() { } src_configure() { + # https://lore.kernel.org/git/87ed3apy2u.fsf@gentoo.org/ + append-cflags -std=gnu17 + exportmakeopts } diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r1.ebuild index 17a8afd1ac8..39ba0bb5efe 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r1.ebuild @@ -8,7 +8,7 @@ GENTOO_DEPEND_ON_PERL=no # bug #329479: git-remote-testgit is not multiple-version aware PYTHON_COMPAT=( python3_{10..13} ) -inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd +inherit flag-o-matic toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN" @@ -323,6 +323,9 @@ git_emake() { } src_configure() { + # https://lore.kernel.org/git/87ed3apy2u.fsf@gentoo.org/ + append-cflags -std=gnu17 + exportmakeopts } diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r2.ebuild index 17a8afd1ac8..39ba0bb5efe 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r2.ebuild @@ -8,7 +8,7 @@ GENTOO_DEPEND_ON_PERL=no # bug #329479: git-remote-testgit is not multiple-version aware PYTHON_COMPAT=( python3_{10..13} ) -inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd +inherit flag-o-matic toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN" @@ -323,6 +323,9 @@ git_emake() { } src_configure() { + # https://lore.kernel.org/git/87ed3apy2u.fsf@gentoo.org/ + append-cflags -std=gnu17 + exportmakeopts } diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r3.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r3.ebuild index 17a8afd1ac8..39ba0bb5efe 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r3.ebuild @@ -8,7 +8,7 @@ GENTOO_DEPEND_ON_PERL=no # bug #329479: git-remote-testgit is not multiple-version aware PYTHON_COMPAT=( python3_{10..13} ) -inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd +inherit flag-o-matic toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN" @@ -323,6 +323,9 @@ git_emake() { } src_configure() { + # https://lore.kernel.org/git/87ed3apy2u.fsf@gentoo.org/ + append-cflags -std=gnu17 + exportmakeopts } 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 17a8afd1ac8..39ba0bb5efe 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 @@ -8,7 +8,7 @@ GENTOO_DEPEND_ON_PERL=no # bug #329479: git-remote-testgit is not multiple-version aware PYTHON_COMPAT=( python3_{10..13} ) -inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd +inherit flag-o-matic toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN" @@ -323,6 +323,9 @@ git_emake() { } src_configure() { + # https://lore.kernel.org/git/87ed3apy2u.fsf@gentoo.org/ + append-cflags -std=gnu17 + exportmakeopts } 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 7ab8dcae326..357e64e6f75 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 @@ -256,7 +256,7 @@ _distutils_set_globals() { ;; flit_scm) bdep+=' - >=dev-python/flit_scm-1.7.0[${PYTHON_USEDEP}] + >=dev-python/flit-scm-1.7.0[${PYTHON_USEDEP}] ' ;; hatchling) @@ -836,7 +836,7 @@ _distutils-r1_print_package_versions() { flit_scm) packages+=( dev-python/flit-core - dev-python/flit_scm + dev-python/flit-scm dev-python/setuptools-scm ) ;; diff --git a/sdk_container/src/third_party/portage-stable/eclass/fcaps.eclass b/sdk_container/src/third_party/portage-stable/eclass/fcaps.eclass index 477e1e954ab..5cb781a7a75 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/fcaps.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/fcaps.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: fcaps.eclass @@ -66,6 +66,12 @@ esac # # Note: If you override pkg_postinst, you must call fcaps_pkg_postinst yourself. +# @ECLASS_VARIABLE: FCAPS_DENY_WORLD_READ +# @USER_VARIABLE +# @DEFAULT_UNSET +# @DESCRIPTION: +# When set, deny read access on files updated by the fcaps function. + # @FUNCTION: fcaps # @USAGE: [-o ] [-g ] [-m ] [-M ] # @DESCRIPTION: @@ -96,8 +102,13 @@ fcaps() { # Process the user options first. local owner='0' local group='0' - local mode='4711' - local caps_mode='711' + local mode=u+s + local caps_mode= + + if [[ -n ${FCAPS_DENY_WORLD_READ} ]]; then + mode=u+s,go-r + caps_mode=go-r + fi while [[ $# -gt 0 ]] ; do case $1 in @@ -137,9 +148,10 @@ fcaps() { # fs doesn't support it, but abort on all others. debug-print "${FUNCNAME}: setting caps '${caps}' on '${file}'" - # If everything goes well, we don't want the file to be readable - # by people. - chmod ${caps_mode} "${file}" || die + # Remove the read bits if requested. + if [[ -n ${caps_mode} ]]; then + chmod ${caps_mode} "${file}" || die + fi if ! out=$(LC_ALL=C setcap "${caps}" "${file}" 2>&1) ; then case ${out} in @@ -170,9 +182,14 @@ fcaps() { fi # If we're still here, setcaps failed. - debug-print "${FUNCNAME}: setting owner/mode on '${file}'" - chown "${owner}:${group}" "${file}" || die - chmod ${mode} "${file}" || die + if [[ -n ${owner} || -n ${group} ]]; then + debug-print "${FUNCNAME}: setting owner on '${file}'" + chown "${owner}:${group}" "${file}" || die + fi + if [[ -n ${mode} ]]; then + debug-print "${FUNCNAME}: setting mode on '${file}'" + chmod ${mode} "${file}" || die + fi done } diff --git a/sdk_container/src/third_party/portage-stable/eclass/rust.eclass b/sdk_container/src/third_party/portage-stable/eclass/rust.eclass index f293e96d7ce..450911ba2ea 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/rust.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/rust.eclass @@ -13,8 +13,10 @@ # a given Rust slot. To use the eclass: # # 1. If required, set RUST_{MAX,MIN}_SLOT to the range of supported slots. +# # 2. If rust is optional, set RUST_OPTIONAL to a non-empty value then -# appropriately gate ${RUST_DEPEND} +# appropriately gate ${RUST_DEPEND} +# # 3. Use rust_pkg_setup, get_rust_prefix or RUST_SLOT. # Example use for a package supporting Rust 1.72.0 to 1.82.0: @@ -106,7 +108,7 @@ declare -a -g -r _RUST_SLOTS_ORDERED=( # Lowest Rust slot supported by the package. Needs to be set before # rust_pkg_setup is called. If unset, no lower bound is assumed. -# @eclass-variable: RUST_NEEDS_LLVM +# @ECLASS_VARIABLE: RUST_NEEDS_LLVM # @DEFAULT_UNSET # @DESCRIPTION: # If set to a non-empty value generate a llvm_slot_${llvm_slot}? gated @@ -118,7 +120,7 @@ declare -a -g -r _RUST_SLOTS_ORDERED=( # an invalid combination of RUST and LLVM slots is detected; this probably # means that a LLVM slot in LLVM_COMPAT has had all of its Rust slots filtered. -# @eclass-variable: RUST_MULTILIB +# @ECLASS_VARIABLE: RUST_MULTILIB # @DEFAULT_UNSET # @DESCRIPTION: # If set to a non-empty value insert MULTILIB_USEDEP into the generated diff --git a/sdk_container/src/third_party/portage-stable/eclass/toolchain.eclass b/sdk_container/src/third_party/portage-stable/eclass/toolchain.eclass index 1f043de0b54..13f3298fea9 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/toolchain.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/toolchain.eclass @@ -333,6 +333,7 @@ if [[ ${PN} != kgcc64 && ${PN} != gcc-* ]] ; then # it was disabled in 13. tc_version_is_at_least 14.0.0_pre20230423 ${PV} && IUSE+=" rust" TC_FEATURES+=( rust ) tc_version_is_at_least 14.2.1_p20241026 ${PV} && IUSE+=" time64" + tc_version_is_at_least 15.0.0_pre20241124 ${PV} && IUSE+=" libdiagnostics" fi if tc_version_is_at_least 10; then @@ -575,6 +576,19 @@ toolchain_pkg_pretend() { _tc_use_if_iuse objc++ && \ ewarn 'Obj-C++ requires a C++ compiler, disabled due to USE="-cxx"' fi + + # Do the check for pure source builds only, since the override + # cannot work with binary packages, see https://bugs.gentoo.org/944198 + if [[ ${BUILD_TYPE} == source ]] && in_iuse time64 && ! use time64 && + has_version -r "${CATEGORY}/${PN}[time64(-)]" && + [[ ! ${TC_FORCE_TIME32} ]] + then + eerror "Attempting to build USE=-time64 version of gcc when at least" + eerror "one USE=time64 version is installed. Did you accidentally" + eerror "switch back to a non-time64 profile? If this is really" + eerror "desirable, set TC_FORCE_TIME32=1 to force the build." + die "Attempting to build USE=-time64 on a USE=time64 system" + fi } #---->> pkg_setup <<---- @@ -1065,7 +1079,7 @@ toolchain_src_configure() { downgrade_arch_flags gcc_do_filter_flags - if tc_version_is_at_least 14.2.1_p20241026 ${PV}; then + if [[ ${PN} != kgcc64 && ${PN} != gcc-* ]] && tc_version_is_at_least 14.2.1_p20241026 ${PV}; then append-cppflags "-D_GENTOO_TIME64_FORCE=$(usex time64 1 0)" fi @@ -1185,11 +1199,13 @@ toolchain_src_configure() { if grep -q "experimental" gcc/DEV-PHASE ; then # Tell users about the non-obvious behavior here so they don't think # e.g. the next GCC release is super slow to compile things. - ewarn "Unreleased GCCs default to extra runtime checks even with USE=-debug," - ewarn "matching upstream default behavior. We recommend keeping these enabled." - ewarn "The checks (sometimes substantially) increase build time but provide important protection" - ewarn "from potential miscompilations (wrong code) by turning them into build-time errors." - ewarn "To override (not recommended), set: GCC_CHECKS_LIST=\"release\"." + if ! use debug ; then + ewarn "Unreleased GCCs default to extra runtime checks even with USE=-debug," + ewarn "matching upstream default behavior. We recommend keeping these enabled." + ewarn "The checks (sometimes substantially) increase build time but provide important protection" + ewarn "from potential miscompilations (wrong code) by turning them into build-time errors." + ewarn "To override (not recommended), set: GCC_CHECKS_LIST=\"release\"." + fi # - USE=debug for pre-releases: yes,extra,rtl (stornger than USE=debug for releases) # - USE=-debug for pre-releases: yes,extra (following upstream default) @@ -1588,6 +1604,7 @@ toolchain_src_configure() { enable_cet_for 'x86_64' 'gnu' 'cet' enable_cet_for 'aarch64' 'gnu' 'standard-branch-protection' + [[ ${CTARGET} == i[34567]86-* ]] && confgcc+=( --disable-cet ) fi if in_iuse systemtap ; then @@ -1729,8 +1746,8 @@ toolchain_src_configure() { gcc_shell="${BROOT}"/bin/sh fi - if is_jit ; then - einfo "Configuring JIT gcc" + if is_jit || _tc_use_if_iuse libdiagnostics ; then + einfo "Configuring shared gcc for JIT/libdiagnostics" local confgcc_jit=( "${confgcc[@]}" @@ -1754,8 +1771,10 @@ toolchain_src_configure() { --disable-nls --disable-objc-gc --disable-systemtap + --enable-host-shared --enable-languages=jit + # Might be used for the just-built GCC. Easier to just # respect USE=graphite here in case the user passes some # graphite flags rather than try strip them out. @@ -1764,6 +1783,10 @@ toolchain_src_configure() { --with-system-zlib ) + if tc_version_is_at_least 15.0.0_pre20241124 ${PV} ; then + confgcc_jit+=( $(use_enable libdiagnostics) ) + fi + if tc_version_is_at_least 13.1 ; then confgcc_jit+=( --disable-fixincludes ) fi @@ -1956,6 +1979,7 @@ gcc_do_filter_flags() { if ver_test -lt 15.1 ; then filter-flags -fdiagnostics-explain-harder -fdiagnostics-details + filter-flags -fdiagnostics-set-output=text:experimental-nesting=yes fi if is_d ; then @@ -2267,10 +2291,6 @@ toolchain_src_test() { GCC_TESTS_CFLAGS+=" -fno-stack-clash-protection" GCC_TESTS_CXXFLAGS+=" -fno-stack-clash-protection" - # configure defaults to '-O2 -g' and some tests expect it - # accordingly. - GCC_TESTS_CFLAGS+=" -g" - # TODO: Does this handle s390 (-m31) correctly? # TODO: What if there are multiple ABIs like x32 too? # XXX: Disabled until validate_failures.py can handle 'variants' 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 index b5669bf7bc5..4ace5f1cac5 100644 --- 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 @@ -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/net-analyzer/netperf/netperf-2.7.0_p20210121.ebuild b/sdk_container/src/third_party/portage-stable/net-analyzer/netperf/netperf-2.7.0_p20210121.ebuild index 554d1e93064..35ba7901bc3 100644 --- a/sdk_container/src/third_party/portage-stable/net-analyzer/netperf/netperf-2.7.0_p20210121.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-analyzer/netperf/netperf-2.7.0_p20210121.ebuild @@ -13,7 +13,7 @@ S="${WORKDIR}/${PN}-${COMMIT}" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86" +KEYWORDS="~alpha amd64 arm64 ~hppa ppc ppc64 ~riscv sparc x86" IUSE="demo sctp" RDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.29-r2.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.29-r2.ebuild index 61873bd17aa..d0dbaebdee2 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.29-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.29-r2.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 dnsrps 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/c-ares/Manifest b/sdk_container/src/third_party/portage-stable/net-dns/c-ares/Manifest index ba13462a82d..108221619ec 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-dns/c-ares/Manifest @@ -2,19 +2,9 @@ DIST c-ares-1.28.1.tar.gz 1312102 BLAKE2B 2d0f12aeb4b947f76fe6c45e2bb0a7401c5d3a DIST c-ares-1.28.1.tar.gz.asc 488 BLAKE2B 90f3aedc3b56f31519a9b2746e528bb952364748b6053ecebaa3edf4269aab6b3badad459a14e8afe623340b294fd072b13c60af540eb59d7f4d82eb5204be83 SHA512 62659e3c41ea7158c7fdaab3246fee6a6a1502dec12d322efd353e5a0fb1b0aa4c1caf7ace37e1d3ea0b2937522814fdf66af2d19a501e9b9995b86e2369410d DIST c-ares-1.29.0.tar.gz 1329299 BLAKE2B 7dd6a0dc85d3383087726cd48e75b481f4ef7551a41590de21b7f30f9e588d7bef87c852203b91f281b0fbf44dca75f0ae538f6a3c17fe8ff29c802d05d36189 SHA512 0287fd59aa6d831e0d1705deb6b4b1ab3b97a28c5c42feeeaa1eeab55ffb429998c7f0735f15cf5eaeb9177cb77800e6b0b01107bd28fb082cf737f8c12766d0 DIST c-ares-1.29.0.tar.gz.asc 488 BLAKE2B 3d955b0a130dce562436d9629f1403e30ee5ebd2e981a9c2220b51d129222c3760d6bd8a681cab6115e3f2ef0bcf8e8d600792fc498bc0c05638ce7fcac0d509 SHA512 a379f3c5338073810b7bf932fecf0ce1f0b382cfbc75521f4b135cb78d0a9fd418b06f7affd747fa00d11479186db248fe8ef8120858de2b8f562b56cc41ecb2 -DIST c-ares-1.31.0.tar.gz 1012373 BLAKE2B d302862148998fbfb737e5f78826a3152b299fbbf04db4d80580daeaade77e4ea1a9513f4d194746733c33a35474f39dce43dd0562b3faa8673b366a2190c87c SHA512 571d2555b4aaf3bf9cd7b5c89be8448ca26fe0ea1f3d664b07a01b42d28af4f5412b30485ef01d4bacc4e08de487dc6eeda98acf212a6a08edec6805f17210cc -DIST c-ares-1.31.0.tar.gz.asc 228 BLAKE2B 41d35804e4f5d0e11c2c6c192453a0d48f779be999a3f9c1bd8066c547e0ed9959083d953b7735ca15699444913bcdd7d43c3871e11a381e9c8ee508086fc3d8 SHA512 ea2decdec5913f25e690e6c7437fad1682b2df807397e4b764ebb2a8b010804f77b91a889e8aa00471cd1bba3b96c5f90d815ffa677598e9b516909e29b7f960 -DIST c-ares-1.32.0.tar.gz 1021855 BLAKE2B b60c924581ba7db1d87350929d22b5e15684484579e0a7d46068438ca8a953bfb7945cb38cad42f008631bb7ea51e10acb074053d485cd91a52eef742f09fdc1 SHA512 15b9dc967f66a355095f68ef84238776f6ed826fc9077702ffbb6b136be1befadcb9da1f07956079efe593434c1e912993f6e93e948291668b806be50f03136c -DIST c-ares-1.32.0.tar.gz.asc 228 BLAKE2B d9cf726e42d79ccdaeca2aafc028c1d03aa56acd1cf03b118070968a31655046a3d609e8ea529f03465341d6decaa7f8eace4310487e7028e3a1ad355d25fa4c SHA512 7554b37e470a57ad0175050c1966e1b72bf67791aa860b113a66688ac28e525b93a633a472dd43c8a16bddb366e918b202760efab5ab311c4b6ee63e72869552 -DIST c-ares-1.32.1.tar.gz 1022052 BLAKE2B 662f15e7f1ae39614f0212745fe7883bbf831da667905e4595e011922b37c95b2037423dde96b0a62122a304d6edd04d36e99e428bdbf8f89d6ff9ecb4cfd712 SHA512 20339b92c5355c01f71a0ab5fe4b823b41ad09269dbdaf4f1567324735d7e90812c9f3f7ce197247be0bd793df35b85aa1747675762a2344e4f506346466d349 -DIST c-ares-1.32.1.tar.gz.asc 228 BLAKE2B d3d44263673c79b2dae594f5a2b3be076528c9c9f3c672e9c5cf3db68eb1b7da6ba74f8ae44605d783440f3bbada4033073e4feeee8ed9833226f76068022dc4 SHA512 3a1dc1f1066bb4d35024ef9e7246c2f630d309a1843e32574f29c07ce01e0461176dd9d53b1a7d2df279959a8b13c10cb4396ee7fafbac534e1b4d44bcefc47a -DIST c-ares-1.32.2.tar.gz 1026293 BLAKE2B 1acd4d90d0e9d8abcbc49561db8ae2e55295398353896a7ab0108c1ac8718eb08c655dff8aa6c0efa138524805972ac4033d0c49cfcebaeca1a019021073e981 SHA512 f552dbe9cb7f7b28ed05d93ee866a161e77c841453cde3659cb1e0bf6d501894bf5f6b8db308f7397e6ead4b42f34ce17e1c2ef307352de50f2aad25e4610de8 -DIST c-ares-1.32.2.tar.gz.asc 228 BLAKE2B 6a09ff532d1334f994f9e9365ce6074aae4227b27c0a5ef40e441192b6b23c728772278fec7c8c34fc93d20309b04b9e31802d4491dc3e1313818eadbe8a4afc SHA512 385ca9bd72a2131f2eb51c035e50d21d816361872a0db42c6a9dc60a1a3971d464f34c2518c759e01e6c88b5bf100ddaa87862e877187a9b59800070b2bef7af -DIST c-ares-1.33.0.tar.gz 1040626 BLAKE2B 730ca3ca9ebb03228fc17d87f1a659f77f91d2a4cc840fa21d7bf083878cc2714a2695808f53de2182e3cf2be367a95bb9625473cfbace40536cb3a33fd0d338 SHA512 3cf1b94d6e8e53742703a679d7e35d3f985320720f41fa58189a0bcad4aca80405c73c4689abe7879df292dbe8f3ddca34b2d48429af5afcc9d2933edb075788 -DIST c-ares-1.33.0.tar.gz.asc 228 BLAKE2B 945ebedb47c998aa917aebc6180cc9f601bc4f10c648955cc9af84e09d5832e06cf7c7afa7ddc1591474f23758c7d269c722d4dce34e4680edc69ce93be483ad SHA512 bd6386a917d072ac41adb604affa314b8e05e8cfeff5ade7e9d6f520baf4d73d7adf68cff35f4748aeee45d4d646ca6d6cf438e75e1c7125f1ababd561809e8c DIST c-ares-1.33.1.tar.gz 1044943 BLAKE2B d8084db84da252ced8cc91b4ed523a5309dbc788bf25f1ab46f3e4817b4c12a3d3d4565179287b7542ac8a7b4f812c20dcc44d9f7284153a9e43765ca7aaf996 SHA512 b5ec4f08539be552f01d49f03327e3999754b940d83c63fbd934c2ed34cf7f05c3f90c9eb64a78a3d7862280bf75765296576a70a6029257daaf90e3e35ab3e4 DIST c-ares-1.33.1.tar.gz.asc 228 BLAKE2B 4908cc70133d75f926387873b0bf7b274c8ab162391b73da2a9f25658bda52763f41ffb1aa4236cdc14efa7bcbbba32d3b0be8bd95161654901c304a4f14f6f8 SHA512 f9c8c8965046176104487939b04a38f3f6e68693ff1ef239ce988cf4c56dfacf2766482857d480a4022d6101c2591c013d8687d4bbf009e40863c1d7a95c2fad -DIST c-ares-1.34.1.tar.gz 1008224 BLAKE2B 7094cf3a3fba4df6367d56c1d251d1f682b37b1f094c66286951c8e2b2d519935b58a039aa926869de90bf0674fec2c6e127327820ae3f50b4d27fdf0c560947 SHA512 193a4b304dd81dcaf9854ae26662868187521eddd3514a7ba32b2f4f45dc158081bf5829b07e36436e2f16344120e83fe1b9369a11d701ad053824d0b03371bb -DIST c-ares-1.34.1.tar.gz.asc 228 BLAKE2B 9d5dd6858e5686420c73ed269d6c5d3376f6fefe09122f993800c93682633995eb90e30a244e435f209a8014c32279949cfd044aa755852408ffa1b869431df8 SHA512 a198cae7cd010f31034835ae0b35d828aeccd443e56d3d04d18eb0fd2bcfa71847d3c3da66d8d15700400bd9576a2ee73aee08f3af2ee77f6d2219b2ff45e565 DIST c-ares-1.34.2.tar.gz 1008432 BLAKE2B 4879de256a35e33bbe37cfc3e7af14a6998821a36efbac6b26f265b6f8d782ee22016b92e9285efc745f6a667336c8c1c0b51b380fe9fbee295f73f62331e579 SHA512 ddcda2f4c82ece7d670d0beb11485253a0f0db1f01131164e7253a20405c081844d2c69e366300c76ca0419a025e0fed516ee54314443afc39d55ce292354ad9 DIST c-ares-1.34.2.tar.gz.asc 228 BLAKE2B 6338c1726907e893ae63927eb2ba31211f31857640d4c9659bc9b8ef84278bc873f0b744f1c449452bd6283ebd945eafc87135830f3b603363a63274c8e3f11c SHA512 f37cca24c2fcb3310ebfa4996a86a59a5b714005e42bb0019f590c70f60f0e0ececab0bbbb0826b5bed7423b8c18c23fa6efc16ab03420b154163917bf4e43c4 +DIST c-ares-1.34.3.tar.gz 997244 BLAKE2B fb66f4c8ae4c2e03e8f75ee72259dbe83d7bed5e72a7936f785121c3d02267375f67c734bae7213ec48bac9277d48e3bed4225fd03ba69dacd120b97dcc3e421 SHA512 f122d27cc76c20b41f9659b8bc662a8d82b857f8c066b1216b0349228d996224e42a7a0535bcdd6a3928b437c67d18726bfcb51c93f3a9801eebda6574e39c78 +DIST c-ares-1.34.3.tar.gz.asc 228 BLAKE2B 40e76fbc23a8aece1749a66499e469299e9df8174923ceeac788dd0ef0a8f029e79c550db1e8850e472b0d584215b52e3cedb5b7c4d3eb1daad8fc96864ad536 SHA512 f6ffcd6ef2571f51899f138d0f13003243e3031a2e4a1f96878c4fdd114c8682ee24c2826f9cfaa2022750058a2e11cb188972e9f369b87974b5abc351a5bc7b diff --git a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.31.0.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.31.0.ebuild deleted file mode 100644 index dc3ab06507e..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.31.0.ebuild +++ /dev/null @@ -1,93 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Both Daniel and Brad are listed as possible signers on the homepage -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradhouse.asc -inherit edo multilib-minimal verify-sig - -DESCRIPTION="C library that resolves names asynchronously" -HOMEPAGE="https://c-ares.org/" -SRC_URI=" - https://github.com/c-ares/c-ares/releases/download/v${PV}/${P}.tar.gz - verify-sig? ( https://github.com/c-ares/c-ares/releases/download/v${PV}/${P}.tar.gz.asc ) -" - -# ISC for lib/{bitncmp.c,inet_ntop.c,inet_net_pton.c} (bug #912405) -LICENSE="MIT ISC" -# Subslot = SONAME of libcares.so.2 -SLOT="0/2" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="static-libs test" -RESTRICT="!test? ( test )" - -BDEPEND=" - test? ( dev-cpp/gtest ) - verify-sig? ( sec-keys/openpgp-keys-bradhouse ) -" - -DOCS=( AUTHORS README.md RELEASE-NOTES.md ) - -MULTILIB_WRAPPED_HEADERS=( - /usr/include/ares_build.h -) - -A__QA_CONFIG_IMPL_DECL_SKIP=( - # Checking for obsolete headers - malloc - calloc - free - - # Non-existent on Linux - closesocket - CloseSocket - ioctlsocket - bitncmp - ConvertInterfaceIndexToLuid - ConvertInterfaceLuidToNameA -) - -multilib_src_configure() { - local myeconfargs=( - --enable-symbol-hiding - $(use_enable static-libs static) - $(use_enable test tests) - ) - - # Needed for running unit tests only - # Violates sandbox and tests pass fine without - export ax_cv_uts_namespace=no - export ax_cv_user_namespace=no - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" -} - -multilib_src_test() { - cd "${BUILD_DIR}"/test || die - - # We're skipping the "real" network tests with the filter - # see https://github.com/c-ares/c-ares/tree/main/test - local network_tests=( - # Most live tests have Live in the name - *Live* - # These don't but are still in ares-test-live.cc => live - *GetTCPSock* - *TimeoutValue* - *GetSock* - *GetSock_virtualized* - *VerifySocketFunctionCallback* - # Seems flaky, even run manually - # https://github.com/c-ares/c-ares/commit/9e542a8839f81c990bb0dff14beeaf9aa6bcc18d - *MockUDPMaxQueriesTest.GetHostByNameParallelLookups* - ) - - # The format for disabling test1, test2, and test3 looks like: - # -test1:test2:test3 - edo ./arestest --gtest_filter=-$(echo $(IFS=:; echo "${network_tests[*]}")) -} - -multilib_src_install_all() { - einstalldocs - - find "${ED}" -name "*.la" -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.32.0.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.32.0.ebuild deleted file mode 100644 index dc3ab06507e..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.32.0.ebuild +++ /dev/null @@ -1,93 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Both Daniel and Brad are listed as possible signers on the homepage -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradhouse.asc -inherit edo multilib-minimal verify-sig - -DESCRIPTION="C library that resolves names asynchronously" -HOMEPAGE="https://c-ares.org/" -SRC_URI=" - https://github.com/c-ares/c-ares/releases/download/v${PV}/${P}.tar.gz - verify-sig? ( https://github.com/c-ares/c-ares/releases/download/v${PV}/${P}.tar.gz.asc ) -" - -# ISC for lib/{bitncmp.c,inet_ntop.c,inet_net_pton.c} (bug #912405) -LICENSE="MIT ISC" -# Subslot = SONAME of libcares.so.2 -SLOT="0/2" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="static-libs test" -RESTRICT="!test? ( test )" - -BDEPEND=" - test? ( dev-cpp/gtest ) - verify-sig? ( sec-keys/openpgp-keys-bradhouse ) -" - -DOCS=( AUTHORS README.md RELEASE-NOTES.md ) - -MULTILIB_WRAPPED_HEADERS=( - /usr/include/ares_build.h -) - -A__QA_CONFIG_IMPL_DECL_SKIP=( - # Checking for obsolete headers - malloc - calloc - free - - # Non-existent on Linux - closesocket - CloseSocket - ioctlsocket - bitncmp - ConvertInterfaceIndexToLuid - ConvertInterfaceLuidToNameA -) - -multilib_src_configure() { - local myeconfargs=( - --enable-symbol-hiding - $(use_enable static-libs static) - $(use_enable test tests) - ) - - # Needed for running unit tests only - # Violates sandbox and tests pass fine without - export ax_cv_uts_namespace=no - export ax_cv_user_namespace=no - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" -} - -multilib_src_test() { - cd "${BUILD_DIR}"/test || die - - # We're skipping the "real" network tests with the filter - # see https://github.com/c-ares/c-ares/tree/main/test - local network_tests=( - # Most live tests have Live in the name - *Live* - # These don't but are still in ares-test-live.cc => live - *GetTCPSock* - *TimeoutValue* - *GetSock* - *GetSock_virtualized* - *VerifySocketFunctionCallback* - # Seems flaky, even run manually - # https://github.com/c-ares/c-ares/commit/9e542a8839f81c990bb0dff14beeaf9aa6bcc18d - *MockUDPMaxQueriesTest.GetHostByNameParallelLookups* - ) - - # The format for disabling test1, test2, and test3 looks like: - # -test1:test2:test3 - edo ./arestest --gtest_filter=-$(echo $(IFS=:; echo "${network_tests[*]}")) -} - -multilib_src_install_all() { - einstalldocs - - find "${ED}" -name "*.la" -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.32.1.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.32.1.ebuild deleted file mode 100644 index dc3ab06507e..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.32.1.ebuild +++ /dev/null @@ -1,93 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Both Daniel and Brad are listed as possible signers on the homepage -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradhouse.asc -inherit edo multilib-minimal verify-sig - -DESCRIPTION="C library that resolves names asynchronously" -HOMEPAGE="https://c-ares.org/" -SRC_URI=" - https://github.com/c-ares/c-ares/releases/download/v${PV}/${P}.tar.gz - verify-sig? ( https://github.com/c-ares/c-ares/releases/download/v${PV}/${P}.tar.gz.asc ) -" - -# ISC for lib/{bitncmp.c,inet_ntop.c,inet_net_pton.c} (bug #912405) -LICENSE="MIT ISC" -# Subslot = SONAME of libcares.so.2 -SLOT="0/2" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="static-libs test" -RESTRICT="!test? ( test )" - -BDEPEND=" - test? ( dev-cpp/gtest ) - verify-sig? ( sec-keys/openpgp-keys-bradhouse ) -" - -DOCS=( AUTHORS README.md RELEASE-NOTES.md ) - -MULTILIB_WRAPPED_HEADERS=( - /usr/include/ares_build.h -) - -A__QA_CONFIG_IMPL_DECL_SKIP=( - # Checking for obsolete headers - malloc - calloc - free - - # Non-existent on Linux - closesocket - CloseSocket - ioctlsocket - bitncmp - ConvertInterfaceIndexToLuid - ConvertInterfaceLuidToNameA -) - -multilib_src_configure() { - local myeconfargs=( - --enable-symbol-hiding - $(use_enable static-libs static) - $(use_enable test tests) - ) - - # Needed for running unit tests only - # Violates sandbox and tests pass fine without - export ax_cv_uts_namespace=no - export ax_cv_user_namespace=no - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" -} - -multilib_src_test() { - cd "${BUILD_DIR}"/test || die - - # We're skipping the "real" network tests with the filter - # see https://github.com/c-ares/c-ares/tree/main/test - local network_tests=( - # Most live tests have Live in the name - *Live* - # These don't but are still in ares-test-live.cc => live - *GetTCPSock* - *TimeoutValue* - *GetSock* - *GetSock_virtualized* - *VerifySocketFunctionCallback* - # Seems flaky, even run manually - # https://github.com/c-ares/c-ares/commit/9e542a8839f81c990bb0dff14beeaf9aa6bcc18d - *MockUDPMaxQueriesTest.GetHostByNameParallelLookups* - ) - - # The format for disabling test1, test2, and test3 looks like: - # -test1:test2:test3 - edo ./arestest --gtest_filter=-$(echo $(IFS=:; echo "${network_tests[*]}")) -} - -multilib_src_install_all() { - einstalldocs - - find "${ED}" -name "*.la" -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.33.0.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.33.0.ebuild deleted file mode 100644 index 6f65e746ad8..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.33.0.ebuild +++ /dev/null @@ -1,109 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Both Daniel and Brad are listed as possible signers on the homepage -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradhouse.asc -inherit edo multilib-minimal verify-sig - -DESCRIPTION="C library that resolves names asynchronously" -HOMEPAGE="https://c-ares.org/" -SRC_URI=" - https://github.com/c-ares/c-ares/releases/download/v${PV}/${P}.tar.gz - verify-sig? ( https://github.com/c-ares/c-ares/releases/download/v${PV}/${P}.tar.gz.asc ) -" - -# ISC for lib/{bitncmp.c,inet_ntop.c,inet_net_pton.c} (bug #912405) -LICENSE="MIT ISC" -# Subslot = SONAME of libcares.so.2 -SLOT="0/2" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="static-libs test" -RESTRICT="!test? ( test )" - -BDEPEND=" - test? ( dev-cpp/gtest ) - verify-sig? ( sec-keys/openpgp-keys-bradhouse ) -" - -DOCS=( AUTHORS README.md RELEASE-NOTES.md ) - -MULTILIB_WRAPPED_HEADERS=( - /usr/include/ares_build.h -) - -A__QA_CONFIG_IMPL_DECL_SKIP=( - # Checking for obsolete headers - malloc - calloc - free - - # Non-existent on Linux - closesocket - CloseSocket - ioctlsocket - bitncmp - ConvertInterfaceIndexToLuid - ConvertInterfaceLuidToNameA -) - -src_prepare() { - default - - if [[ ${CHOST} == *-darwin* ]] ; then - # warnings are default, but enable -std=c90 which doesn't define - # 'bool' which is a type used/assumed in macOS system headers - sed -i -e 's/-std=c90/& -Dbool=int/' configure{.ac,} || die - # sysconfig integration requires deep framework compatibility - # and is not really desired in Prefix - sed -i -e 's/__APPLE__/__DISABLED__/' \ - src/lib/ares_sysconfig_mac.c || die - sed -i -e '/elif defined(__APPLE__)/s/__APPLE__/__DISABLED__/' \ - src/lib/ares_sysconfig.c || die - fi -} - -multilib_src_configure() { - local myeconfargs=( - --enable-symbol-hiding - $(use_enable static-libs static) - $(use_enable test tests) - ) - - # Needed for running unit tests only - # Violates sandbox and tests pass fine without - export ax_cv_uts_namespace=no - export ax_cv_user_namespace=no - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" -} - -multilib_src_test() { - cd "${BUILD_DIR}"/test || die - - # We're skipping the "real" network tests with the filter - # see https://github.com/c-ares/c-ares/tree/main/test - local network_tests=( - # Most live tests have Live in the name - *Live* - # These don't but are still in ares-test-live.cc => live - *GetTCPSock* - *TimeoutValue* - *GetSock* - *GetSock_virtualized* - *VerifySocketFunctionCallback* - # Seems flaky, even run manually - # https://github.com/c-ares/c-ares/commit/9e542a8839f81c990bb0dff14beeaf9aa6bcc18d - *MockUDPMaxQueriesTest.GetHostByNameParallelLookups* - ) - - # The format for disabling test1, test2, and test3 looks like: - # -test1:test2:test3 - edo ./arestest --gtest_filter=-$(echo $(IFS=:; echo "${network_tests[*]}")) -} - -multilib_src_install_all() { - einstalldocs - - find "${ED}" -name "*.la" -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.33.1.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.33.1.ebuild index 50d00053a96..f0fb03d70d0 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.33.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.33.1.ebuild @@ -18,7 +18,7 @@ SRC_URI=" LICENSE="MIT ISC" # Subslot = SONAME of libcares.so.2 SLOT="0/2" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="static-libs test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.34.1.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.34.1.ebuild deleted file mode 100644 index 6f65e746ad8..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.34.1.ebuild +++ /dev/null @@ -1,109 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Both Daniel and Brad are listed as possible signers on the homepage -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradhouse.asc -inherit edo multilib-minimal verify-sig - -DESCRIPTION="C library that resolves names asynchronously" -HOMEPAGE="https://c-ares.org/" -SRC_URI=" - https://github.com/c-ares/c-ares/releases/download/v${PV}/${P}.tar.gz - verify-sig? ( https://github.com/c-ares/c-ares/releases/download/v${PV}/${P}.tar.gz.asc ) -" - -# ISC for lib/{bitncmp.c,inet_ntop.c,inet_net_pton.c} (bug #912405) -LICENSE="MIT ISC" -# Subslot = SONAME of libcares.so.2 -SLOT="0/2" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="static-libs test" -RESTRICT="!test? ( test )" - -BDEPEND=" - test? ( dev-cpp/gtest ) - verify-sig? ( sec-keys/openpgp-keys-bradhouse ) -" - -DOCS=( AUTHORS README.md RELEASE-NOTES.md ) - -MULTILIB_WRAPPED_HEADERS=( - /usr/include/ares_build.h -) - -A__QA_CONFIG_IMPL_DECL_SKIP=( - # Checking for obsolete headers - malloc - calloc - free - - # Non-existent on Linux - closesocket - CloseSocket - ioctlsocket - bitncmp - ConvertInterfaceIndexToLuid - ConvertInterfaceLuidToNameA -) - -src_prepare() { - default - - if [[ ${CHOST} == *-darwin* ]] ; then - # warnings are default, but enable -std=c90 which doesn't define - # 'bool' which is a type used/assumed in macOS system headers - sed -i -e 's/-std=c90/& -Dbool=int/' configure{.ac,} || die - # sysconfig integration requires deep framework compatibility - # and is not really desired in Prefix - sed -i -e 's/__APPLE__/__DISABLED__/' \ - src/lib/ares_sysconfig_mac.c || die - sed -i -e '/elif defined(__APPLE__)/s/__APPLE__/__DISABLED__/' \ - src/lib/ares_sysconfig.c || die - fi -} - -multilib_src_configure() { - local myeconfargs=( - --enable-symbol-hiding - $(use_enable static-libs static) - $(use_enable test tests) - ) - - # Needed for running unit tests only - # Violates sandbox and tests pass fine without - export ax_cv_uts_namespace=no - export ax_cv_user_namespace=no - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" -} - -multilib_src_test() { - cd "${BUILD_DIR}"/test || die - - # We're skipping the "real" network tests with the filter - # see https://github.com/c-ares/c-ares/tree/main/test - local network_tests=( - # Most live tests have Live in the name - *Live* - # These don't but are still in ares-test-live.cc => live - *GetTCPSock* - *TimeoutValue* - *GetSock* - *GetSock_virtualized* - *VerifySocketFunctionCallback* - # Seems flaky, even run manually - # https://github.com/c-ares/c-ares/commit/9e542a8839f81c990bb0dff14beeaf9aa6bcc18d - *MockUDPMaxQueriesTest.GetHostByNameParallelLookups* - ) - - # The format for disabling test1, test2, and test3 looks like: - # -test1:test2:test3 - edo ./arestest --gtest_filter=-$(echo $(IFS=:; echo "${network_tests[*]}")) -} - -multilib_src_install_all() { - einstalldocs - - find "${ED}" -name "*.la" -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.32.2.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.34.3.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.32.2.ebuild rename to sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.34.3.ebuild diff --git a/sdk_container/src/third_party/portage-stable/net-firewall/conntrack-tools/conntrack-tools-1.4.8-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-firewall/conntrack-tools/conntrack-tools-1.4.8-r1.ebuild index ff8d0251fc4..c11278aa667 100644 --- a/sdk_container/src/third_party/portage-stable/net-firewall/conntrack-tools/conntrack-tools-1.4.8-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-firewall/conntrack-tools/conntrack-tools-1.4.8-r1.ebuild @@ -15,7 +15,7 @@ SRC_URI=" LICENSE="GPL-2+" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86" +KEYWORDS="~alpha amd64 ~arm64 ~hppa ppc ppc64 ~riscv x86" IUSE="doc +cthelper +cttimeout systemd" RDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libnetfilter_conntrack/libnetfilter_conntrack-1.1.0.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/libnetfilter_conntrack/libnetfilter_conntrack-1.1.0.ebuild index 59cb76336eb..d2468a2851d 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/libnetfilter_conntrack/libnetfilter_conntrack-1.1.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-libs/libnetfilter_conntrack/libnetfilter_conntrack-1.1.0.ebuild @@ -15,7 +15,7 @@ SRC_URI=" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" RDEPEND=" >=net-libs/libmnl-1.0.3 diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libnftnl/libnftnl-1.2.8.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/libnftnl/libnftnl-1.2.8.ebuild index 9356110ea5b..ec50cf89c56 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/libnftnl/libnftnl-1.2.8.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-libs/libnftnl/libnftnl-1.2.8.ebuild @@ -17,7 +17,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 )" fi diff --git a/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.6.1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.6.1.ebuild index 7805861241c..1827e545020 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.6.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.6.1.ebuild @@ -19,7 +19,7 @@ else SRC_URI+=" verify-sig? ( https://chrony-project.org/releases/${P/_/-}-tar-gz-asc.txt -> ${P/_/-}.tar.gz.asc )" if [[ ${PV} != *_pre* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~sparc ~x86" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ppc ppc64 ~riscv sparc x86" fi fi diff --git a/sdk_container/src/third_party/portage-stable/net-misc/iputils/iputils-20240905.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/iputils/iputils-20240905.ebuild index 9f4e50654ca..15ba4cd93df 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/iputils/iputils-20240905.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/iputils/iputils-20240905.ebuild @@ -12,7 +12,7 @@ if [[ ${PV} == *9999 ]] ; then inherit git-r3 else SRC_URI="https://github.com/iputils/iputils/releases/download/${PV}/${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="Network monitoring tools including ping and ping6" diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.8_p1-r3.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.8_p1-r3.ebuild index 129f86bd6eb..026cf4390af 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.8_p1-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.8_p1-r3.ebuild @@ -20,7 +20,7 @@ S="${WORKDIR}/${PARCH}" LICENSE="BSD GPL-2" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" # Probably want to drop ssl defaulting to on in a future version. IUSE="abi_mips_n32 audit debug kerberos ldns legacy-ciphers libedit livecd pam +pie security-key selinux +ssl static test xmss" diff --git a/sdk_container/src/third_party/portage-stable/net-misc/wget/Manifest b/sdk_container/src/third_party/portage-stable/net-misc/wget/Manifest index e044038e618..b3c356603f5 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/wget/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-misc/wget/Manifest @@ -2,3 +2,5 @@ DIST wget-1.21.4.tar.gz 5059591 BLAKE2B ced6fb9a20343d41e4d8e0c8f171c60535847504 DIST wget-1.21.4.tar.gz.sig 854 BLAKE2B 162c4f358e781bbfb0fa73910191c29dd411f48c9b2c8e8fe00a12741153e624955393d769aa7311b03115d04b6b946a84b636f643d7cdc8c8cd81387b9cf143 SHA512 72603493c2d799dca08700175a2010d8736fd6d3cb9bea3987db8814e9f133ab0fbd1477892115f7fbbd1a7d4d416ec370bdbff6dbe8f00d1eea84f0c4f8d84b DIST wget-1.24.5.tar.lz 2545954 BLAKE2B 8057e5992ddaf39b3daffbde99871ddec1328c6bbafbc6b9f1d3cd294bb928b2a80f813024d4cd664c396f84477f1d93d5a21c60c6fe2932f9196d29bb9aa896 SHA512 d8972e94d9125133d115750542e0f126b85a311634d5563a69d8fe85ecf1200836dcc83528ee4285d56834c58c722be580bfe749b26436158fbe4afc566f5cc0 DIST wget-1.24.5.tar.lz.sig 854 BLAKE2B 395e7da40e33f9a1df4978440f79e69eec951344d6c78a71e2867e4764ce552ccda3a4d34fa211b0d8abf18d87cf15dd8a0c5a8c43ffcc92e1b75c8d3bce9665 SHA512 5bc3e578fe55b7f954aec61101cb2d7f97a9464e61d5500caa47ac8b22048910c91f8ad22966fcb05c62414be76a1275805ac27ed434fa9de4d30f7a3631fd29 +DIST wget-1.25.0.tar.lz 2582072 BLAKE2B 58edd7393b5109804d7a6ce77466d30e1fba3c5ae4b5b8634758c9ebd7fa95cf106d35ad0b4f9151833d88b0221fc488a1005ec0b98417766bf2092309744954 SHA512 79403f594636e5d703817ceec59e5155940cd4734746ef793ef3bdabd100d0014a44c5e24f705656cf1e0762d87003fa1dc3e1b5605fae392bc9d7f121d90bae +DIST wget-1.25.0.tar.lz.sig 854 BLAKE2B 0698971ffdab274ee20d84b84096e9d4bd4a75b57df41643c55304188b3fcce69624a4d7043fb47280a63fb74748c2ce67ff1c6efc929680c8d2aee93498d309 SHA512 06a575b3e16f586c7c7affa2c80b4714bfbcd0aa03305126b16dcc34bd011b1690c71935111cde5f43e0fea214dc11d2da1fb98828c4e913da8c83159d8791e0 diff --git a/sdk_container/src/third_party/portage-stable/net-misc/wget/wget-1.25.0.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/wget/wget-1.25.0.ebuild new file mode 100644 index 00000000000..f3749a93c08 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/wget/wget-1.25.0.ebuild @@ -0,0 +1,121 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} ) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/wget.asc +inherit flag-o-matic python-any-r1 toolchain-funcs unpacker verify-sig + +DESCRIPTION="Network utility to retrieve files from the WWW" +HOMEPAGE="https://www.gnu.org/software/wget/" +SRC_URI="mirror://gnu/wget/${P}.tar.lz" +SRC_URI+=" verify-sig? ( mirror://gnu/wget/${P}.tar.lz.sig )" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="cookie-check debug gnutls idn ipv6 libproxy metalink nls ntlm pcre +ssl static test uuid zlib" +REQUIRED_USE="ntlm? ( !gnutls ssl ) gnutls? ( ssl )" +RESTRICT="!test? ( test )" + +# * Force a newer libidn2 to avoid libunistring deps. #bug #612498 +# * Metalink can use gpgme automagically (so let's always depend on it) +# for signed metalink resources. +LIB_DEPEND=" + cookie-check? ( net-libs/libpsl ) + idn? ( >=net-dns/libidn2-0.14:=[static-libs(+)] ) + libproxy? ( net-libs/libproxy ) + metalink? ( + app-crypt/gpgme + media-libs/libmetalink + ) + pcre? ( dev-libs/libpcre2[static-libs(+)] ) + ssl? ( + gnutls? ( net-libs/gnutls:=[static-libs(+)] ) + !gnutls? ( dev-libs/openssl:=[static-libs(+)] ) + ) + uuid? ( sys-apps/util-linux[static-libs(+)] ) + zlib? ( sys-libs/zlib[static-libs(+)] ) +" +RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )" +DEPEND=" + ${RDEPEND} + static? ( ${LIB_DEPEND} ) +" +BDEPEND=" + $(unpacker_src_uri_depends) + app-arch/xz-utils + dev-lang/perl + sys-apps/texinfo + virtual/pkgconfig + nls? ( sys-devel/gettext ) + test? ( + ${PYTHON_DEPS} + >=dev-perl/HTTP-Daemon-6.60.0 + dev-perl/HTTP-Message + dev-perl/IO-Socket-SSL + ) + verify-sig? ( >=sec-keys/openpgp-keys-wget-20241111 ) +" + +DOCS=( AUTHORS MAILING-LIST NEWS README ) + +# gnulib FPs +QA_CONFIG_IMPL_DECL_SKIP=( unreachable MIN alignof static_assert fpurge ) + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +src_unpack() { + use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${P}.tar.lz{,.sig} + unpacker ${P}.tar.lz +} + +src_prepare() { + default + sed -i -e "s:/usr/local/etc:${EPREFIX}/etc:g" doc/{sample.wgetrc,wget.texi} || die +} + +src_configure() { + # fix compilation on Solaris, we need filio.h for FIONBIO as used in + # the included gnutls -- force ioctl.h to include this header + [[ ${CHOST} == *-solaris* ]] && append-cppflags -DBSD_COMP=1 + + if use static ; then + append-ldflags -static + tc-export PKG_CONFIG + PKG_CONFIG+=" --static" + fi + + # There is no flag that controls this. libunistring-prefix only + # controls the search path (which is why we turn it off below). + # Further, libunistring is only needed w/older libidn2 installs, + # and since we force the latest, we can force off libunistring. # bug #612498 + local myeconfargs=( + ac_cv_libunistring=no + --disable-assert + --disable-pcre + --disable-rpath + --without-included-libunistring + --without-libunistring-prefix + $(use_enable debug) + $(use_enable idn iri) + $(use_enable ipv6) + $(use_enable nls) + $(use_enable ntlm) + $(use_enable pcre pcre2) + $(use_enable ssl digest) + $(use_enable ssl opie) + $(use_with cookie-check libpsl) + $(use_enable idn iri) + $(use_enable libproxy) + $(use_with metalink) + $(use_with ssl ssl $(usex gnutls gnutls openssl)) + $(use_with uuid libuuid) + $(use_with zlib) + ) + + econf "${myeconfargs[@]}" +} diff --git a/sdk_container/src/third_party/portage-stable/net-nds/openldap/openldap-2.6.6-r2.ebuild b/sdk_container/src/third_party/portage-stable/net-nds/openldap/openldap-2.6.6-r2.ebuild index 08d15cbdf45..7375cca5313 100644 --- a/sdk_container/src/third_party/portage-stable/net-nds/openldap/openldap-2.6.6-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-nds/openldap/openldap-2.6.6-r2.ebuild @@ -26,7 +26,7 @@ S="${WORKDIR}"/${PN}-OPENLDAP_REL_ENG_${MY_PV} LICENSE="OPENLDAP GPL-2" # Subslot added for bug #835654 SLOT="0/$(ver_cut 1-2)" -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_DAEMON="argon2 +cleartext crypt experimental minimal samba tcpd" IUSE_OVERLAY="overlays perl autoca" 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 a2555c50fdc..bf9c37c8350 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 @@ -5,7 +5,7 @@ # requires dev-libs/libcss and net-libs/libdom to be keyworded www-client/elinks libcss -# Andrew Ammerlaan (2024-10-08) +# Nowa Ammerlaan (2024-10-08) # Not all required dependencies are keyworded here sys-kernel/dracut test @@ -381,10 +381,6 @@ dev-db/percona-server cjk app-admin/sudo sssd sys-auth/pambase sssd -# Thomas Deutschmann (2018-06-06) -# Needs sys-apps/fakechroot which isn't keyworded -app-arch/rpm test - # Tomáš Mózes (2018-06-05) # Unkeyworded dependencies. app-admin/syslog-ng amqp kafka mongodb 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 fdece9536c3..0aa493afbd7 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.mask @@ -17,6 +17,14 @@ #--- END OF EXAMPLES --- +# Paul Zander (2024-11-16) +# Only available on amd64 for now +media-gfx/openscad -manifold + +# Joonas Niilola (2024-11-16) +# Available on amd64. +www-client/firefox -wasm + # Sam James (2024-10-29) # Only available on amd64 for now dev-libs/elfutils -stacktrace @@ -53,7 +61,7 @@ sys-kernel/installkernel -ugrd # uasm and jwasm include amd64-specific ASM app-arch/7zip -uasm -jwasm -# Andrew Ammerlaan (2024-04-25) +# Nowa Ammerlaan (2024-04-25) # ROCm and Level-Zero are amd64-only at the moment sys-apps/hwloc -rocm -l0 @@ -65,7 +73,7 @@ media-gfx/blender -gnome -oneapi -renderdoc -vulkan # dev-qt/qtlanguageserver:6 is keyworded here dev-qt/qtdeclarative:6 -qmlls -# Andrew Ammerlaan (2024-03-17) +# Nowa Ammerlaan (2024-03-17) # virt-firmware is keyworded here sys-kernel/installkernel -efistub @@ -86,7 +94,7 @@ sys-libs/glibc -cet # net-libs/paho-mqtt-c is only available for amd64 and x86 app-admin/syslog-ng -mqtt -# Andrew Ammerlaan (2024-02-09) +# Nowa Ammerlaan (2024-02-09) # Refind is only available on a subset of arches sys-kernel/installkernel -refind @@ -94,7 +102,7 @@ sys-kernel/installkernel -refind # virtiofsd is available here app-emulation/libvirt -virtiofsd -# Andrew Ammerlaan (2024-01-13) +# Nowa Ammerlaan (2024-01-13) # Unmask only where grub is keyworded sys-kernel/installkernel -grub @@ -102,14 +110,14 @@ sys-kernel/installkernel -grub # Requires dev-libs/level-zero. dev-lang/ispc -gpu -# Andrew Ammerlaan (2023-12-18) +# Nowa Ammerlaan (2023-12-18) # Experimental and only available on a subset of architectures sys-kernel/gentoo-kernel -generic-uki sys-kernel/gentoo-kernel-bin -generic-uki # Ionen Wolkens (2023-12-02) # dev-qt/qtwebengine:6 and dev-qt/qtremoteobjects:6 are keyworded here. -dev-python/PyQt6 -pdfium -remoteobjects +dev-python/pyqt6 -pdfium -remoteobjects # Jimi Huotari (2023-11-22) # Unmask on amd64. @@ -156,7 +164,7 @@ dev-python/pymongo -test-full # net-libs/rustls-ffi is keyworded here www-servers/apache -apache2_modules_tls -# Andrew Ammerlaan (2023-04-22) +# Nowa Ammerlaan (2023-04-22) # snap only works on amd64 gnome-extra/gnome-software -snap kde-plasma/discover -snap @@ -188,7 +196,7 @@ sys-libs/libomp -llvm_targets_AMDGPU # net-libs/rustls-ffi is keyworded here net-misc/curl -rustls -curl_ssl_rustls -# Andrew Ammerlaan (2022-12-06) +# Nowa Ammerlaan (2022-12-06) # Quick Sync Video (through intel-mediasdk or libvpl) is # only keyworded on amd64 media-video/ffmpeg -qsv diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.stable.mask index 7c637e7434d..e51faa8535f 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.stable.mask @@ -19,13 +19,13 @@ # Ionen Wolkens (2024-09-27) # dev-qt/qtremoteobjects:6 has not been stabilized yet. -dev-python/PyQt6 remoteobjects +dev-python/pyqt6 remoteobjects -# Andrew Ammerlaan (2024-07-24) +# Nowa Ammerlaan (2024-07-24) # No stable versions of ROCm at the moment sys-apps/hwloc rocm -# Andrew Ammerlaan (2024-03-17) +# Nowa Ammerlaan (2024-03-17) # Experimental, virt-firmware is keyworded only unstable sys-kernel/installkernel efistub @@ -37,7 +37,7 @@ media-libs/opencv cudnn # Pulls in pandoc with all of its glory (haskell). #921501 www-apps/hugo test -# Andrew Ammerlaan (2023-12-18) +# Nowa Ammerlaan (2023-12-18) # This is still experimental, prebuilt images may not boot on all systems. sys-kernel/gentoo-kernel generic-uki sys-kernel/gentoo-kernel-bin generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/use.mask index 2b5672cf531..653012d0161 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/use.mask @@ -4,6 +4,10 @@ # Unmask the flag which corresponds to ARCH. -amd64 +# Thomas Bettler (2024-11-04) +# media-libs/tiff only keyworded on amd64 +-lerc + # Paul Zander (2024-04-14) # media-libs/quirc is keyworded on amd64 -quirc @@ -28,7 +32,7 @@ # ROCm/HIP works here -hip -# Andrew Ammerlaan (2023-07-11) +# Nowa Ammerlaan (2023-07-11) # Unmask secureboot flag on arches where sbsigntools is keyworded -secureboot @@ -60,7 +64,6 @@ # Michael Orlitzky (2018-01-07) # Oracle database stuff should work on amd64. -oci8 --oci8-instant-client -oracle # Sven Wegener (2017-05-31) diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.mask index d3420293228..29805df0f1e 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.mask @@ -27,14 +27,14 @@ media-libs/intel-hybrid-codec-driver net-analyzer/gsa net-analyzer/gsad -# Andrew Ammerlaan (2022-02-13) +# Nowa Ammerlaan (2022-02-13) # Requires qtwebengine sci-electronics/eagle sci-geosciences/gpsbabel sci-geosciences/qgis sci-geosciences/viking -# Andrew Ammerlaan (2021-09-09) +# Nowa Ammerlaan (2021-09-09) # Jupyterlab and friends require net-libs/nodejs dev-python/jupyterlab dev-python/jupyterlab-lsp @@ -66,13 +66,12 @@ media-gfx/freecad # reverse-dependencies. dev-qt/qtwebengine dev-qt/qtwebview -dev-python/PyQt6-WebEngine -dev-python/PyQtWebEngine +dev-python/pyqt6-webengine +dev-python/pyqtwebengine app-admin/calamares app-text/zeal app-editors/ghostwriter app-editors/retext -app-misc/anki app-office/merkuro app-office/kmymoney app-office/skrooge diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.use.mask index 55395b68f36..f0d01d3ea28 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.use.mask @@ -24,7 +24,7 @@ net-p2p/ktorrent rss # Tests require net-libs/nodejs which is unavailable on amd64/x32. dev-lang/dafny test -# Andrew Ammerlaan (2023-07-20) +# Nowa Ammerlaan (2023-07-20) # depends on dev-python/notebook which depends on nodejs dev-python/ipython notebook dev-python/iminuit test @@ -55,13 +55,13 @@ media-libs/libva-intel-driver hybrid # dev-qt/qtwebengine requires net-libs/nodejs, plus mask all # reverse-dependencies. app-i18n/fcitx-libpinyin dictionary-manager +app-misc/anki gui dev-lang/idris2 test-full dev-python/cloudscraper test games-util/lgogdownloader gui kde-apps/kde-apps-meta pim kde-apps/kdenetwork-meta bittorrent kde-apps/kleopatra pim -kde-apps/umbrello php kde-misc/kio-gdrive share kde-plasma/plasma-nm openconnect net-irc/quassel urlpreview @@ -96,7 +96,7 @@ dev-ruby/tilt test net-analyzer/netdata nodejs www-apps/jekyll test www-apps/xpra-html5 minify -dev-python/QtPy test +dev-python/qtpy test # Davide Pesavento (2011-11-30) # The QML (V4) and JSC JITs do not work on x32 (bug #932192). diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.mask index cf27cc4874a..a394a90b2ff 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.mask @@ -10,7 +10,7 @@ media-libs/opencv java net-misc/plowshare javascript sci-libs/gdal java -# Andrew Ammerlaan (2024-10-08) +# Nowa Ammerlaan (2024-10-08) # Not all required dependencies are keyworded here sys-kernel/dracut test @@ -49,11 +49,11 @@ kde-frameworks/purpose:5 kaccounts app-crypt/pinentry qt6 app-office/libreoffice qt6 -# Andrew Ammerlaan (2024-06-01) +# Nowa Ammerlaan (2024-06-01) # qtnetworkauth not yet keyworded here dev-python/pyside6 network-auth -# Andrew Ammerlaan (2024-03-21) +# Nowa Ammerlaan (2024-03-21) # virt-firmware is keyworded here sys-kernel/installkernel -efistub @@ -81,7 +81,7 @@ media-libs/zita-resampler cpu_flags_arm_neon # No sys-block/nbdkit on arm, yet app-emulation/libvirt nbd -# Andrew Ammerlaan (2024-01-13) +# Nowa Ammerlaan (2024-01-13) # Unmask only where grub is keyworded sys-kernel/installkernel -grub @@ -109,7 +109,7 @@ sys-block/tgt rbd # media-libs/openpgl and media-libs/embree only supports amd64 and arm64 media-gfx/blender embree openpgl -# Andrew Ammerlaan (2023-03-07) +# Nowa Ammerlaan (2023-03-07) # nbval/nbclassic docs require pandoc which is not keyworded here yet dev-python/nbval doc dev-python/nbclassic doc @@ -120,7 +120,7 @@ dev-python/nbclassic doc app-i18n/fcitx-libpinyin dictionary-manager dev-lang/idris2 test-full dev-python/cloudscraper test -dev-python/QtPy test +dev-python/qtpy test games-util/lgogdownloader gui net-irc/quassel urlpreview net-misc/fatrat bittorrent 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 064bda55ee0..022ae0014eb 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 @@ -13,7 +13,7 @@ x11-misc/xdg-utils plasma # media-libs/libplacebo is not stable here media-video/ffmpeg libplacebo -# Andrew Ammerlaan (2024-03-21) +# Nowa Ammerlaan (2024-03-21) # Experimental, virt-firmware is keyworded only unstable sys-kernel/installkernel efistub @@ -94,7 +94,6 @@ media-libs/mesa vulkan-overlay app-text/asciidoc test net-misc/openssh security-key dev-util/geany-plugins markdown -app-arch/rpm test # MichaÅ‚ Górny (2019-09-08) # virtual/jdk is not stable here. diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.mask index 5639e41e50d..dcfc80695b9 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.mask @@ -1,6 +1,14 @@ # Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Alexey Shvetsov (2024-11-21) +# sci-libs/caffe2 is not keyworded on arm64 +sci-chemistry/gromacs nnpot + +# Joonas Niilola (2024-11-16) +# Available on arm64. +www-client/firefox -wasm + # MichaÅ‚ Górny (2024-10-23) # Debug-enabled binary packages are built for a subset of architectures. sys-kernel/gentoo-kernel-bin -debug @@ -13,7 +21,7 @@ sys-cluster/slurm nvml ucx # Unmask the dynarec flag which has arm64 asm. games-emulation/rmg -dynarec -# Andrew Ammerlaan (2024-07-16) +# Nowa Ammerlaan (2024-07-16) # Unmask the ugrd flag for installkernel. It is keyworded here sys-kernel/installkernel -ugrd @@ -39,7 +47,7 @@ x11-libs/libdrm -video_cards_vmware # Supports 64-bit NEON media-libs/opencv -cpu_flags_arm_neon -# Andrew Ammerlaan (2024-03-21) +# Nowa Ammerlaan (2024-03-21) # virt-firmware is keyworded here sys-kernel/installkernel -efistub @@ -63,18 +71,18 @@ media-libs/zita-resampler -cpu_flags_arm_neon # No sys-block/nbdkit on arm, yet app-emulation/libvirt nbd -# Andrew Ammerlaan (2024-01-13) +# Nowa Ammerlaan (2024-01-13) # Unmask only where grub is keyworded sys-kernel/installkernel -grub -# Andrew Ammerlaan (2023-12-18) +# Nowa Ammerlaan (2023-12-18) # Experimental and only available on a subset of architectures sys-kernel/gentoo-kernel -generic-uki sys-kernel/gentoo-kernel-bin -generic-uki # Ionen Wolkens (2023-12-02) # dev-qt/qtwebengine:6 is keyworded here. -dev-python/PyQt6 -pdfium +dev-python/pyqt6 -pdfium # Takuya Wakazono (2023-11-21) # app-crypt/rpm-sequoia is keyworded here. diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.stable.mask index f9768504e9b..94fd9546f29 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.stable.mask @@ -9,15 +9,15 @@ dev-libs/mongo-c-driver test # dev-libs/capstone hasn't been stabilized yet app-emulation/qemu capstone -# Andrew Ammerlaan (2024-03-21) +# Nowa Ammerlaan (2024-03-21) # Experimental, virt-firmware is keyworded only unstable sys-kernel/installkernel efistub # Ionen Wolkens (2024-01-27) # dev-python/pyside6 is not stable here yet -dev-python/QtPy pyside6 +dev-python/qtpy pyside6 -# Andrew Ammerlaan (2023-12-18) +# Nowa Ammerlaan (2023-12-18) # This is still experimental, prebuilt images may not boot on all systems. sys-kernel/gentoo-kernel generic-uki sys-kernel/gentoo-kernel-bin generic-uki @@ -122,10 +122,6 @@ media-plugins/gst-plugins-meta aac dts dv lame libvisual taglib vcd wavpack x11-wm/i3 test dev-python/ipython nbconvert -# Mikle Kolyada (2020-03-19) -# deps not yet stable -kde-apps/umbrello php - # Luke Dashjr (2019-09-21) # iasl is keyworded ~arm64 sys-firmware/seabios debug diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/use.mask index 964b358c1de..1c2ad46544d 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/use.mask @@ -16,7 +16,7 @@ # dev-util/sysprof-capture is keyworded on arm64 -sysprof -# Andrew Ammerlaan (2023-07-11) +# Nowa Ammerlaan (2023-07-11) # Unmask secureboot flag on arches where sbsigntools is keyworded -secureboot 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 c1eddd2ac0f..a78c1a31f6f 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/base/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/base/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Paul Zander (2024-11-16) +# Only available on amd64 for now +media-gfx/openscad manifold + # Sam James (2024-10-29) # Only available on amd64 for now dev-libs/elfutils stacktrace @@ -43,7 +47,7 @@ sys-kernel/installkernel ugrd # uasm and jwasm include amd64-specific ASM app-arch/7zip uasm jwasm -# Andrew Ammerlaan (2024-04-25) +# Nowa Ammerlaan (2024-04-25) # ROCm and Level-Zero are amd64-only at the moment sys-apps/hwloc rocm l0 @@ -59,7 +63,7 @@ dev-qt/qtdeclarative:6 qmlls # Missing keywords on dev-python/looseversion. sys-fs/fuse:3 test -# Andrew Ammerlaan (2024-03-17) +# Nowa Ammerlaan (2024-03-17) # Experimental, only keyworded for amd64 currently sys-kernel/installkernel efistub @@ -72,7 +76,7 @@ media-libs/libplacebo libdovi # net-libs/paho-mqtt-c is only available for amd64 and x86 app-admin/syslog-ng mqtt -# Andrew Ammerlaan (2024-02-09) +# Nowa Ammerlaan (2024-02-09) # Refind is only available on a subset of arches sys-kernel/installkernel refind @@ -80,7 +84,7 @@ sys-kernel/installkernel refind # virtiofsd is only available on some arches app-emulation/libvirt virtiofsd -# Andrew Ammerlaan (2024-01-13) +# Nowa Ammerlaan (2024-01-13) # Unmask only where grub is keyworded sys-kernel/installkernel grub @@ -88,14 +92,14 @@ sys-kernel/installkernel grub # Requires dev-libs/level-zero. dev-lang/ispc gpu -# Andrew Ammerlaan (2023-12-18) +# Nowa Ammerlaan (2023-12-18) # Experimental and only available on a subset of architectures sys-kernel/gentoo-kernel generic-uki sys-kernel/gentoo-kernel-bin generic-uki # Ionen Wolkens (2023-12-02) # dev-qt/qtwebengine:6 and dev-qt/qtremoteobjects:6 have few keywords. -dev-python/PyQt6 pdfium remoteobjects +dev-python/pyqt6 pdfium remoteobjects # Jimi Huotari (2023-11-22) # media-libs/libvpl is only keyworded for amd64 at this time. @@ -138,7 +142,7 @@ dev-python/pymongo test-full # Unkeyworded dependencies www-servers/apache apache2_modules_tls -# Andrew Ammerlaan (2023-04-22) +# Nowa Ammerlaan (2023-04-22) # snap only works on amd64 gnome-extra/gnome-software snap kde-plasma/discover snap @@ -161,7 +165,7 @@ dev-python/tables cpudetection # Unkeyworded dependencies net-misc/curl rustls curl_ssl_rustls -# Andrew Ammerlaan (2022-12-06) +# Nowa Ammerlaan (2022-12-06) # Quick Sync Video (through intel-mediasdk or oneVPL) is # only keyworded on amd64 media-video/ffmpeg qsv diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/base/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/base/use.mask index d511d857840..fb453f1da68 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/base/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/base/use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Thomas Bettler (2024-11-04) +# media-libs/tiff only keyworded on amd64 +lerc + # Paul Zander (2024-04-14) # media-libs/quirc only keyworded on amd64, x86 quirc @@ -17,7 +21,7 @@ jasper # sci-libs/atlas is only supported on specific architectures atlas -# Andrew Ammerlaan (2023-07-11) +# Nowa Ammerlaan (2023-07-11) # Mask secureboot flag on arches where sbsigntools is not keyworded secureboot diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/package.use.mask index 863b9ad67c5..a287a814fae 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/package.use.mask @@ -12,7 +12,7 @@ www-client/elinks libcss # app-i18n/fcitx:5 is not yet keyworded media-libs/libsdl2 fcitx -# Andrew Ammerlaan (2024-10-08) +# Nowa Ammerlaan (2024-10-08) # Not all required dependencies are keyworded here sys-kernel/dracut test diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/package.use.stable.mask index 14afbb12801..c36b38f644f 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/package.use.stable.mask @@ -21,7 +21,7 @@ # Qt 6 not stable here. dev-build/cmake gui -# Andrew Ammerlaan (2024-07-25) +# Nowa Ammerlaan (2024-07-25) # Moved to stable.mask, issue is fixed in unstable v40 # Sam James (2024-06-19) # The systemd implementation of installkernel doesn't currently support @@ -168,7 +168,7 @@ app-misc/mc spell net-nds/openldap smbkrb5passwd # Matt Turner (2020-12-23) -# dev-python/subunit is not stable on hppa +# dev-python/python-subunit is not stable on hppa dev-libs/check subunit # Matt Turner (2020-12-23) diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/loong/package.use.force b/sdk_container/src/third_party/portage-stable/profiles/arch/loong/package.use.force index 9d9e368b610..4953c56c5fa 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/loong/package.use.force +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/loong/package.use.force @@ -1,6 +1,10 @@ # Copyright 2022-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Holger Hoffstätte +# sys-devel/bpf-toolchain not yet kw'ed on loong (#938169) +dev-util/bpftool clang + # Sam James (2024-02-03) # We only have MariaDB on loong, not MySQL. dev-perl/DBD-MariaDB 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 9c6483e3115..1e5ffa7fd1b 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,7 +1,7 @@ # Copyright 2022-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -# Andrew Ammerlaan (2024-10-08) +# Nowa Ammerlaan (2024-10-08) # Not all required dependencies are keyworded here sys-kernel/dracut test @@ -23,7 +23,7 @@ media-libs/assimp collada # Andreas Sturmlechner (2024-09-13) # dev-python/pyside6 isn't keyworded here -dev-python/QtPy pyside6 +dev-python/qtpy pyside6 # Andreas Sturmlechner (2024-09-07) # kde-plasma/plasma-workspace:6 is not keyworded @@ -104,7 +104,7 @@ www-servers/nginx test # We only have MariaDB on loong, not MySQL. dev-perl/DBD-MariaDB mysql -# Andrew Ammerlaan (2024-01-13) +# Nowa Ammerlaan (2024-01-13) # Unmask only where grub is keyworded sys-kernel/installkernel -grub @@ -160,7 +160,7 @@ sys-devel/llvm -debuginfod dev-python/cattrs test dev-python/requests-cache test -# Andrew Ammerlaan (2023-08-30) +# Nowa Ammerlaan (2023-08-30) # Avoid having to keyword more Qt deps dev-python/pyside2 3d datavis location scxml dev-python/pyside6 3d location scxml @@ -245,7 +245,7 @@ net-vpn/openconnect test # WANG Xuerui (2022-12-06) # dev-python/pyside2 not keyworded yet -dev-python/QtPy pyside2 +dev-python/qtpy pyside2 dev-python/qtconsole test # WANG Xuerui (2022-12-05) @@ -302,8 +302,8 @@ dev-libs/boost -context # WANG Xuerui (2022-12-02) # dev-qt/qtlocation:5 fails to compile with gcc-13 for now. -dev-python/PyQt5 location -dev-python/QtPy test +dev-python/pyqt5 location +dev-python/qtpy test # WANG Xuerui (2022-12-01) # Mask GRUB2 platforms not applicable to loong. diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/m68k/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/m68k/package.use.mask index 5351d18a96b..fdf21faab0c 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/m68k/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/m68k/package.use.mask @@ -88,6 +88,7 @@ dev-python/numpydoc test dev-python/objgraph test dev-python/pip-run test dev-python/pytest-regressions test +dev-python/pytest-subprocess test dev-python/requests test dev-python/sphinx test dev-python/urllib3 test diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/mips/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/package.use.mask index 7710390e180..8b1c0571d34 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/mips/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/package.use.mask @@ -9,7 +9,7 @@ # requires dev-libs/libcss and net-libs/libdom to be keyworded www-client/elinks libcss -# Andrew Ammerlaan (2024-10-08) +# Nowa Ammerlaan (2024-10-08) # Not all required dependencies are keyworded here sys-kernel/dracut test diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.mask index 46e3f5c6c54..1c923c402fb 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.mask @@ -46,7 +46,7 @@ mail-mta/postfix mongodb # tests require dev-db/mongodb which is not keyworded dev-libs/mongo-c-driver test -# Andrew Ammerlaan (2024-01-13) +# Nowa Ammerlaan (2024-01-13) # Unmask only where grub is keyworded sys-kernel/installkernel -grub @@ -88,12 +88,12 @@ dev-java/openjdk:17 systemtap # librttopo has not been tested on this arch dev-db/spatialite rttopo -# Andrew Ammerlaan (2023-08-30) +# Nowa Ammerlaan (2023-08-30) # Avoid keywordming more Qt stuff dev-python/pyside2 3d datavis scxml dev-python/pyside6 3d scxml -# Andrew Ammerlaan (2023-03-07) +# Nowa Ammerlaan (2023-03-07) # nbval/nbclassic docs require pandoc which is not keyworded here yet dev-python/nbval doc dev-python/nbclassic doc @@ -119,10 +119,10 @@ app-admin/conky doc # dev-cpp/notcurses not keyworded here media-sound/snd notcurses -# Andrew Ammerlaan (2022-09-23) +# Nowa Ammerlaan (2022-09-23) # pyside2 is not keyworded on powerpc at the moment. # Mask the other Qt4Python implementations -dev-python/QtPy pyside2 pyside6 +dev-python/qtpy pyside2 pyside6 # Matt Turner (2022-04-18) # app-text/nuspell is not keyworded diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.stable.mask index a2533a871ac..dacfb769f01 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.stable.mask @@ -60,7 +60,7 @@ x11-wm/mutter screencast media-sound/abcde replaygain # Andreas Sturmlechner (2018-06-20) -# dev-python/PyQt5 is not stable. +# dev-python/pyqt5 is not stable. dev-python/matplotlib qt5 test net-print/hplip qt5 dev-python/pyudev qt5 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 7791ac8e255..d436252591a 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,13 @@ # Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -# Andreas Sturmlechner (2024-09-04) -# KF6 and media-libs/phonon have dropped ppc keyword -app-office/texstudio video -net-irc/kvirc phonon +# Mike Gilbert (2024-11-17) +# Cannot compile rust-based thin-provisioning-tools (bug #922236). +sys-fs/lvm2 thin + +# Michał Górny (2024-11-16) +# Generated C files are too big for PPC ISA to handle. +dev-python/mypy native-extensions # Matt Jolly (2024-08-14) # QUIC dependencies are not keyworded @@ -21,7 +24,7 @@ x11-misc/xdg-utils plasma # Ionen Wolkens (2024-07-02) # Needs dev-qt/qtquick3d:6 which itself needs media-libs/assimp that # is no longer keyworded here and currently fails tests (bug #935313). -dev-python/PyQt6 quick3d +dev-python/pyqt6 quick3d dev-qt/qtmultimedia:6 qml # Sam James (2024-05-19) @@ -98,10 +101,10 @@ dev-util/diffoscope opendocument pascal pdf R # Fails to compile because of size, bug #829602. sys-devel/clang extra -# Andrew Ammerlaan (2022-09-23) +# Nowa Ammerlaan (2022-09-23) # The corresponding Qt5 modules are not keyworded on ppc, and we don't want to # keyword them solely because of PyQt5 while there are no other in-tree users. -dev-python/PyQt5 bluetooth location speech +dev-python/pyqt5 bluetooth location speech # Arthur Zamarin (2022-08-15) # deps not keyworded 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 17c6e7bac2b..48a6950381d 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 @@ -22,7 +22,7 @@ media-gfx/graphicsmagick jpeg2k # Sam James (2024-03-23) # dev-qt/qtwebengine not available here -dev-python/QtPy webengine test +dev-python/qtpy webengine test # Michal Privoznik (2024-01-21) # virtiofsd is available here 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 554106eb843..7255f28d9dd 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 @@ -19,7 +19,7 @@ # Andreas Sturmlechner (2024-09-12) # dev-python/pyside6 is not stable here -dev-python/QtPy pyside6 +dev-python/qtpy pyside6 # Sam James (2024-04-30) # sys-block/nbdkit is not yet marked stable here @@ -45,10 +45,10 @@ dev-ruby/kramdown unicode # app-emacs/flycheck is not marked stable here yet dev-util/pkgcheck emacs -# Andrew Ammerlaan (2022-09-23) +# Nowa Ammerlaan (2022-09-23) # The corresponding Qt5 modules are not stable keyworded on ppc64, and we don't want to # keyword them solely because of PyQt5 while there are no other in-tree users. -dev-python/PyQt5 bluetooth +dev-python/pyqt5 bluetooth # Sam James (2022-03-07) # sys-cluster/torque not marked stable on ppc64 diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/ppc/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/ppc/package.use.mask index a08711d7484..b77ede00e41 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/ppc/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/ppc/package.use.mask @@ -5,7 +5,7 @@ # media-libs/libavif is not keyworded media-libs/opencv avif -# Andrew Ammerlaan (2024-10-08) +# Nowa Ammerlaan (2024-10-08) # Not all required dependencies are keyworded here sys-kernel/dracut test diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/package.use.mask index 2e47c70d8f4..6d27d353fb2 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/package.use.mask @@ -1,6 +1,10 @@ # Copyright 2019-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Alexey Shvetsov (2024-11-21) +# sci-libs/caffe2 is not keyworded on arm64 +sci-chemistry/gromacs nnpot + # Benda Xu (2024-10-10) # dev-util/nvidia-cuda-toolkit or sys-cluster/ucx are not keyworded on riscv sys-cluster/slurm nvml ucx @@ -52,7 +56,7 @@ media-gfx/openvdb alembic # No sys-block/nbdkit on riscv, yet app-emulation/libvirt nbd -# Andrew Ammerlaan (2024-01-13) +# Nowa Ammerlaan (2024-01-13) # Unmask only where grub is keyworded sys-kernel/installkernel -grub @@ -65,7 +69,7 @@ media-libs/libplacebo -shaderc sys-apps/openrc s6 sys-apps/openrc-navi s6 -# Andrew Ammerlaan (2023-08-30) +# Nowa Ammerlaan (2023-08-30) # Avoid keywording more Qt stuff dev-python/pyside2 datavis @@ -144,7 +148,7 @@ dev-libs/cyrus-sasl berkdb # Avoid dragging in "heavy" parts of dev-qt/* unless/until # somebody needs them. bug #816981, bug #854261. # Unfortunately, tests demand qtwebengine too. -dev-python/QtPy test +dev-python/qtpy test # Marek Szuba (2022-04-30) # net-wireless/sdrplay contains prebuilt binaries, currently available diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/use.mask index 3c391371624..9d3e36ad24d 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/use.mask @@ -11,7 +11,7 @@ -ecl -gcl -# Andrew Ammerlaan (2023-07-11) +# Nowa Ammerlaan (2023-07-11) # Unmask secureboot flag on arches where sbsigntools is keyworded -secureboot diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/s390/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/s390/package.use.mask index d261b48daa8..01624e68db9 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/s390/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/s390/package.use.mask @@ -53,7 +53,7 @@ dev-libs/mongo-c-driver test # net-libs/grpc not keyworded here app-admin/syslog-ng grpc -# Andrew Ammerlaan (2024-01-12) +# Nowa Ammerlaan (2024-01-12) # dracut is not keyworded here sys-kernel/installkernel dracut @@ -244,8 +244,6 @@ app-editors/vim lua # not keyworded yet media-gfx/imagemagick raw dev-db/mariadb numa -# not tested yet -app-arch/rpm test # no ceph keyworded net-analyzer/rrdtool rados 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 2392bf02dd4..c564fac167c 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 @@ -9,7 +9,7 @@ www-client/elinks libcss # Exposes a kernel bug which causes system lockup (bug #899540) sys-libs/liburing test -# Andrew Ammerlaan (2024-10-08) +# Nowa Ammerlaan (2024-10-08) # Not all required dependencies are keyworded here sys-kernel/dracut test @@ -82,7 +82,7 @@ dev-libs/mongo-c-driver test # net-libs/grpc not keyworded here app-admin/syslog-ng grpc -# Andrew Ammerlaan (2024-01-13) +# Nowa Ammerlaan (2024-01-13) # Unmask only where grub is keyworded sys-kernel/installkernel -grub @@ -184,7 +184,7 @@ dev-python/nbval test # Needs dev-db/mariadb for tests, see entry in use.mask dev-python/pymysql test -# Andrew Ammerlaan (2023-03-07) +# Nowa Ammerlaan (2023-03-07) # nbval/nbclassic docs require pandoc which is not keyworded here yet dev-python/nbval doc dev-python/nbclassic doc diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/i486/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/i486/package.use.mask index ce9c6f0cb82..85ffefd06d3 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/i486/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/i486/package.use.mask @@ -1,7 +1,7 @@ # Copyright 2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -# Andrew Ammerlaan (2024-10-08) +# Nowa Ammerlaan (2024-10-08) # Not all required dependencies are keyworded here sys-kernel/dracut test diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.mask index e056ec06816..9fea6b67f3a 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.mask @@ -4,32 +4,3 @@ # Joshua Kinard (2024-02-27) # app-arch/lrzip-next does not support 32-bit arches (#925548) app-arch/lrzip-next - -# Andreas Sturmlechner (2023-02-06) -# Successful build of dev-qt/qtwebengine depends on 64-bit host -# Bug #893234 -dev-qt/qtwebengine -dev-qt/qtwebview -dev-python/PyQtWebEngine -app-text/zeal -app-editors/retext -app-misc/anki -app-office/kmymoney:5 -app-office/skrooge:5 -app-office/texmaker -app-text/bibletime -app-text/cb2bib -app-text/kchmviewer -dev-python/spyder -dev-python/spyder-terminal -dev-python/spyder-unittest -dev-python/spyder-line-profiler -dev-python/spyder-vim -dev-python/spyder-notebook -kde-apps/cantor:5 -media-gfx/luminance-hdr -media-sound/frescobaldi -media-sound/teamspeak-client:3 -net-analyzer/nmapsi -sci-geosciences/qmapshack -www-client/otter 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 9a0897cf523..a6c8ef16e94 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 @@ -60,7 +60,7 @@ dev-tex/abntex lyx # additional dev-qt/qtwebengine revdeps. kde-frameworks/purpose:5 kaccounts -# Andrew Ammerlaan (2024-03-21) +# Nowa Ammerlaan (2024-03-21) # virt-firmware is keyworded here sys-kernel/installkernel -efistub @@ -72,7 +72,7 @@ sys-kernel/installkernel -efistub # net-libs/paho-mqtt-c is only available for amd64 and x86 app-admin/syslog-ng -mqtt -# Andrew Ammerlaan (2024-02-09) +# Nowa Ammerlaan (2024-02-09) # Refind is only available on a subset of arches sys-kernel/installkernel -refind @@ -82,7 +82,7 @@ sys-kernel/installkernel -refind # supporting this arch. net-libs/xrootd xrdec -# Andrew Ammerlaan (2024-01-13) +# Nowa Ammerlaan (2024-01-13) # Unmask only where grub is keyworded sys-kernel/installkernel -grub @@ -137,9 +137,10 @@ media-tv/mythtv nvdec # Successful build of dev-qt/qtwebengine depends on 64-bit host # Bug #893234 app-i18n/fcitx-libpinyin dictionary-manager +app-misc/anki gui dev-lang/idris2 test-full dev-python/cloudscraper test -dev-python/QtPy test +dev-python/qtpy test games-util/lgogdownloader gui kde-apps/kde-apps-meta pim kde-apps/kdenetwork-meta bittorrent diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.stable.mask index ea02d85ddea..f8f0a5b0f58 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.stable.mask @@ -19,7 +19,7 @@ # Andreas Sturmlechner (2024-09-20) # dev-python/pyside6 is not stable here. -dev-python/QtPy pyside6 +dev-python/qtpy pyside6 # Andreas Sturmlechner (2024-09-02) # kde-plasma/plasma-workspace is not stable here. @@ -38,11 +38,11 @@ virtual/notification-daemon kde # sys-block/nbdkit is not yet marked stable here app-emulation/libvirt nbd -# Andrew Ammerlaan (2024-03-21) +# Nowa Ammerlaan (2024-03-21) # Experimental, virt-firmware is keyworded only unstable sys-kernel/installkernel efistub -# Andrew Ammerlaan (2023-12-18) +# Nowa Ammerlaan (2023-12-18) # This is still experimental, prebuilt images may not boot on all systems. sys-kernel/gentoo-kernel generic-uki sys-kernel/gentoo-kernel-bin generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/use.mask index 63c1d355568..9c9ee57d55b 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/use.mask @@ -20,7 +20,7 @@ openimageio # media-libs/jasper works on x86 -jasper -# Andrew Ammerlaan (2023-07-11) +# Nowa Ammerlaan (2023-07-11) # Unmask secureboot flag on arches where sbsigntools is keyworded -secureboot 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 6da238d6942..a5ba2145c04 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,33 @@ # Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Matt Jolly (2024-11-13) +# Force the use of the appropriate llvm_slot_x USE for Rust. +# This is strictly papercut prevention; the ebuild will enforce the correct +# selection via LLVM_REQUIRED_USE. This prevents users from deselecting +# the correct slot by (e.g.) setting -llvm_slot_# globally. +# source ../eclass/rust.eclass +# for slot in ${_RUST_SLOTS_ORDERED[@]}; do +# 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.82.0 llvm_slot_19 +dev-lang/rust-bin:1.82.0 llvm_slot_19 +dev-lang/rust:1.81.0 llvm_slot_18 +dev-lang/rust-bin:1.81.0 llvm_slot_18 +dev-lang/rust:1.80.1 llvm_slot_18 +dev-lang/rust-bin:1.80.1 llvm_slot_18 +dev-lang/rust:1.79.0 llvm_slot_18 +dev-lang/rust-bin:1.79.0 llvm_slot_18 +dev-lang/rust:1.77.1 llvm_slot_17 +dev-lang/rust-bin:1.77.1 llvm_slot_17 +dev-lang/rust:1.75.0 llvm_slot_17 +dev-lang/rust-bin:1.75.0 llvm_slot_17 +dev-lang/rust:1.74.1 llvm_slot_17 +dev-lang/rust-bin:1.74.1 llvm_slot_17 +dev-lang/rust:1.71.1 llvm_slot_16 +dev-lang/rust-bin:1.71.1 llvm_slot_16 + # Sam James (2024-09-30) # gnat-gpl only exists for (bootstrapping) Ada. Until bug #940471 is handled, # force Ada on. Once it is split/moved/gutted, this won't be necessary 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 537ce0d4eff..6ee7306982b 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 @@ -3,6 +3,30 @@ # New entries go on top. +# Andreas Sturmlechner (2024-11-23) +# dev-python/pyside2 last-rites +dev-python/qtpy pyside2 +media-gfx/freecad qt5 + +# Mats Lidell (2024-11-20) +# The dependency x11-libs/dnd blocks gcc-14, is only used by XEmacs, +# and upstream is not sure it even works so dropping use. #908831 +app-editors/xemacs dnd + +# Sam James (2024-11-17) +# The example bindings fail to build. +~sys-libs/ncurses-6.5_p20241109 cxx + +# Joonas Niilola (2024-11-16) +# Wasm support is (currently) only available on amd64 and arm64. +www-client/firefox wasm + +# Matt Jolly (2024-11-11) +# ICU 76.1 is not compatible with Chromium. Bug #943216. +# We'll mask it for a few weeks to use the bundled ICU +# while Google fixes the issue. +www-client/chromium system-icu + # Joonas Niilola (2024-11-07) # Dependency for generating docs not packaged in Gentoo. #942992 dev-util/repolite doc @@ -56,10 +80,6 @@ app-alternatives/yacc reference # Causes crashes with e.g. dlz+samba (bug #938955) net-dns/bind jemalloc -# Andreas Sturmlechner (2024-09-01) -# Prepare for dev-util/kdevelop:5 removal -kde-apps/umbrello:5 php - # Andreas Sturmlechner (2024-08-31) # Prepare for KDE PIM 5 removal and avoid conflicts w/ KDE PIM 6 app-office/kmymoney:5 addressbook diff --git a/sdk_container/src/third_party/portage-stable/profiles/base/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/base/package.use.stable.mask index 02b9f1e3049..2f013f1f828 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/base/package.use.stable.mask @@ -4,10 +4,6 @@ # This file requires eapi 5 or later. New entries go on top. # Please use the same syntax as in package.use.mask -# Michał Górny (2024-10-26) -# Unblock the support in python-exec while the target is masked. -dev-lang/python-exec -python_targets_python3_13 - # Volkmar W. Pogatzki (2024-10-11) # No suitable version of dev-libs/protobuf available. =dev-java/protobuf-java-4.28.1 system-protoc diff --git a/sdk_container/src/third_party/portage-stable/profiles/base/use.mask b/sdk_container/src/third_party/portage-stable/profiles/base/use.mask index b4845b0b52e..8a628cb5aba 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/base/use.mask @@ -4,6 +4,21 @@ # This file is only for generic masks. For arch-specific masks (i.e. # mask everywhere, unmask on arch/*) use arch/base. +# Robin H. Johnson (2024-11-17) +# bug 943698 +# Poor upstream code quality, unmaintained upstream; +# no hardware for testing # anymore. +# https://public-inbox.gentoo.org/gentoo-dev/robbat2-20240529T185323-477923075Z@orbis-terrarum.net/ +lcd_devices_g15 +g15 + +# Michael Orlitzky (2024-11-13) +# The 8.1 slot is masked, so the USE flag that pulls it in has to be +# masked too. The bare "php8-1" is for www-servers/nginx-unit which +# has a non-standard flag name. +php_targets_php8-1 +php8-1 + # Andreas K. Hüttel (2024-10-21) # Mechanism for coping with the time64 transition of 32bit arches # Will be unmasked in the time64 profiles diff --git a/sdk_container/src/third_party/portage-stable/profiles/base/use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/base/use.stable.mask index d1197864f26..e474311a509 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/base/use.stable.mask @@ -14,8 +14,6 @@ llvm_slot_19 # Michał Górny (2024-05-08) # Python implementations without stable keywords. -python_targets_python3_13 -python_single_target_python3_13 python_targets_python3_13t python_single_target_python3_13t python_targets_pypy3 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/gnome/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/gnome/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/gnome/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/gnome/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/gnome/parent new file mode 100644 index 00000000000..d5a56a13f69 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/gnome/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../../targets/desktop/gnome diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/gnome/systemd/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/gnome/systemd/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/gnome/systemd/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/gnome/systemd/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/gnome/systemd/parent new file mode 100644 index 00000000000..288aeccdce8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/gnome/systemd/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../../../targets/desktop/gnome/systemd diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/parent new file mode 100644 index 00000000000..fae96e8d36b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../targets/desktop diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/plasma/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/plasma/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/plasma/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/plasma/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/plasma/parent new file mode 100644 index 00000000000..0317df26cc9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/plasma/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../../targets/desktop/plasma diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/plasma/systemd/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/plasma/systemd/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/plasma/systemd/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/plasma/systemd/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/plasma/systemd/parent new file mode 100644 index 00000000000..5d9d87f6d91 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/desktop/plasma/systemd/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../../../targets/systemd diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/parent new file mode 100644 index 00000000000..e5d746a4ea0 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../features/hardened/x86 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/selinux/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/selinux/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/selinux/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/selinux/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/selinux/parent new file mode 100644 index 00000000000..23c5fe07a24 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/selinux/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../../features/selinux diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/gnome/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/gnome/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/gnome/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/gnome/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/gnome/parent new file mode 100644 index 00000000000..b34bc39063e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/gnome/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../../../targets/desktop/gnome diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/parent new file mode 100644 index 00000000000..b2a33c35daf --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../../targets/desktop diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/plasma/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/plasma/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/plasma/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/plasma/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/plasma/parent new file mode 100644 index 00000000000..04c17e07380 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/desktop/plasma/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../../../targets/desktop/plasma diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/hardened/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/hardened/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/hardened/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/hardened/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/hardened/parent new file mode 100644 index 00000000000..e2f1a20d383 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/hardened/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../../features/hardened/x86 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/hardened/selinux/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/hardened/selinux/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/hardened/selinux/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/hardened/selinux/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/hardened/selinux/parent new file mode 100644 index 00000000000..d148b9ae67c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/hardened/selinux/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../../../features/selinux diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/parent new file mode 100644 index 00000000000..d9e9cc8f6c7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/split-usr/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../features/split-usr diff --git a/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.mask b/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.mask index f37645ffb46..f4e0f77dc13 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.mask @@ -40,7 +40,7 @@ kde-apps/grantlee-editor kde-apps/akregator dev-util/kdevelop dev-qt/qtwebview -dev-python/PyQtWebEngine +dev-python/pyqtwebengine app-text/kchmviewer app-office/merkuro app-editors/ghostwriter diff --git a/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.use.mask index bbde951452d..36f1a652498 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.use.mask @@ -24,7 +24,7 @@ media-plugins/gst-plugins-meta vpx net-p2p/ktorrent rss webengine net-irc/quassel urlpreview kde-apps/kalarm pim -dev-python/QtPy pyqt5 +dev-python/qtpy pyqt5 gnome-base/gnome extras # matoro (2023-11-16) diff --git a/sdk_container/src/third_party/portage-stable/profiles/features/musl/package.mask b/sdk_container/src/third_party/portage-stable/profiles/features/musl/package.mask index 949d2a81b76..49140e594c9 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/musl/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/musl/package.mask @@ -1,6 +1,10 @@ # Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Sam James (2024-11-19) +# Not ported to musl (bug #717252, bug #938613) +sys-apps/dog + # Robert Siebeck (2024-10-30) # musl not supported by upstream app-editors/zed @@ -19,7 +23,7 @@ net-nds/nsscache # Sam James (2024-09-30) # Needs porting to musl (bug #940130) -=sys-auth/elogind-255.5 +=sys-auth/elogind-255.5-r1 # Sam James (2024-08-31) # sys-devel/binutils[gprofng] is masked on musl @@ -213,7 +217,7 @@ www-client/chromium net-misc/netkit-telnetd net-misc/sitecopy -# Andrew Ammerlaan (2024-01-20) +# Nowa Ammerlaan (2024-01-20) # Binary package linked to glibc (rolling mask, use for all such binpkgs) app-admin/awscli-bin app-admin/bitwarden-desktop-bin diff --git a/sdk_container/src/third_party/portage-stable/profiles/features/musl/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/features/musl/package.use.mask index aca87a7d4c8..0440e25ba43 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/musl/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/musl/package.use.mask @@ -1,7 +1,7 @@ # Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -# Andrew Ammerlaan (2024-10-08) +# Nowa Ammerlaan (2024-10-08) # Not all required dependencies are keyworded here sys-kernel/dracut test @@ -19,7 +19,7 @@ gui-apps/wayvnc tracing # Requires sys-libs/libcxx. dev-cpp/benchmark libcxx -# Andrew Ammerlaan (2024-07-25) +# Nowa Ammerlaan (2024-07-25) # Requires systemd-detect-virt app-emulation/virt-firmware test @@ -40,7 +40,7 @@ dev-php/pecl-mongodb test dev-python/pymongo test-full net-analyzer/zmap mongo -# Andrew Ammerlaan (2024-04-25) +# Nowa Ammerlaan (2024-04-25) # No Level-Zero on musl sys-apps/hwloc l0 @@ -87,7 +87,7 @@ sys-devel/binutils gprofng # this, however it seems to be unreliable, see bug #922897. gui-libs/gtk cpu_flags_x86_f16c -# Andrew Ammerlaan (2024-01-12) +# Nowa Ammerlaan (2024-01-12) # The systemd flag is globally masked on musl. But we need # systemd's kernel-install to use systemd-boot which is still # possible on musl via systemd-utils[boot]. @@ -97,7 +97,7 @@ sys-kernel/installkernel -systemd # Requires dev-libs/level-zero. dev-lang/ispc gpu -# Andrew Ammerlaan (2023-12-18) +# Nowa Ammerlaan (2023-12-18) # Requires systemd sys-kernel/gentoo-kernel generic-uki sys-kernel/gentoo-kernel-bin generic-uki 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 8da20c80caf..b2dc38f0dc2 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 @@ -110,7 +110,7 @@ dev-python/pyghmi dev-python/omemo-dr net-im/transwhat dev-python/noiseprotocol -dev-python/mitmproxy_wireguard +dev-python/mitmproxy-wireguard dev-python/magic-wormhole dev-python/magic-wormhole-transit-relay dev-python/magic-wormhole-mailbox-server @@ -122,7 +122,7 @@ dev-python/jupyter-kernel-test dev-python/jellyfish www-apps/novnc dev-python/jsonmerge -dev-python/jinja2_pluralize +dev-python/jinja2-pluralize dev-python/fido2 dev-python/github3-py dev-python/google-auth-oauthlib @@ -130,7 +130,7 @@ dev-python/elasticsearch dev-python/dns-lexicon dev-python/dissononce dev-python/consonance -dev-python/PyGithub +dev-python/pygithub dev-python/adblock dev-python/pysnmp dev-python/pysnmp-mibs @@ -151,6 +151,7 @@ app-text/fblog app-shells/nushell app-misc/rpick app-misc/skim +app-misc/anki app-i18n/yaskkserv2 app-emulation/cloud-init app-forensics/yara-x @@ -177,7 +178,7 @@ app-backup/duply dev-util/bugbite-cli dev-util/cargo-nextest -# Andrew Ammerlaan (2024-03-19) +# Nowa Ammerlaan (2024-03-19) # Requires dev-python/cryptography app-emulation/virt-firmware diff --git a/sdk_container/src/third_party/portage-stable/profiles/features/wd40/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/features/wd40/package.use.mask index 582010e4e3e..d3cabe26cd4 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/wd40/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/wd40/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Mike Gilbert (2024-11-12) +# Requires rust/cargo. +sys-kernel/dracut dracut-cpio + # Michał Górny (2024-11-02) # Optional Rust extensions. dev-python/dulwich native-extensions @@ -48,7 +52,7 @@ app-misc/gramps test app-forensics/volatility3 jsonschema app-emulation/libguestfs test -# Andrew Ammerlaan (2024-03-19) +# Nowa Ammerlaan (2024-03-19) # Requires dev-python/cryptography sys-kernel/installkernel efistub 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 fcc2feaf833..97652ea0ef1 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/package.deprecated +++ b/sdk_container/src/third_party/portage-stable/profiles/package.deprecated @@ -29,7 +29,7 @@ dev-python/sentry-sdk # from the removed cgi module rather than rely on this. dev-python/legacy-cgi -# Andrew Ammerlaan (2024-03-09) +# Nowa Ammerlaan (2024-03-09) # Unmaintained upstream. Does not build with llvm-16 and up, nor with # python-3.12 and up. Please port to Qt6. # Bug: https://bugs.gentoo.org/920544 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 80887c34973..62cfdab33e2 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/package.mask @@ -33,6 +33,135 @@ #--- END OF EXAMPLES --- +# Michał Górny (2024-11-23) +# Implementation detail of dev-python/pyproject-fmt. New versions +# integrate the Rust code into the main package. +# Removal on 2024-12-07. Bug #944782. +dev-python/pyproject-fmt-rust + +# Andreas Sturmlechner (2024-11-23) +# dev-python/pyside2 last-rites, no more revdeps +# Removal on 2024-12-23 +dev-python/pyside2 +dev-python/pyside2-tools +dev-python/shiboken2 + +# Ionen Wolkens (2024-11-19) +# NVIDIA dropped support for the 470.xx branch in September 2024[1]. +# +# Users are free to unmask and keep using, but be warned it is very +# likely to be affected by security issues[2] as NVIDIA does not +# track nor fix these for this branch anymore. +# +# Gentoo will keep it packaged for as long as reasonably possible +# (albeit masked) but no true support will be given nor patches +# for newer kernels. It is recommended to use 6.6.x LTS kernels or +# older (6.6.x will be supported until at least December 2026). +# +# Major issues will lead to removal without further warning, e.g. +# if no usable kernels left in tree, or if broken with a newer Xorg. +# +# >> It is recommended to switch to nouveau[3] drivers (regardless +# of its worse performance), or ideally replace the hardware. +# +# [1] https://nvidia.custhelp.com/app/answers/detail/a_id/3142 +# https://nvidia.custhelp.com/app/answers/detail/a_id/5202 +# [2] https://bugs.gentoo.org/942031#c7 +# [3] https://wiki.gentoo.org/wiki/Nouveau +x11-drivers/nvidia-drivers:0/470 + +# Andreas Sturmlechner (2024-11-18) +# All classes were moved to >=x11-libs/qwt-6.2.0. No revdeps. +# Removal on 2024-12-18. +x11-libs/qwtpolar + +# Robin H. Johnson (2024-11-17) +# bug 943698 +# Poor upstream code quality, unmaintained upstream; +# no hardware for testing # anymore. +# https://public-inbox.gentoo.org/gentoo-dev/robbat2-20240529T185323-477923075Z@orbis-terrarum.net/ +app-misc/g15composer +app-misc/g15daemon +app-misc/g15macro +app-misc/g15message +app-misc/g15mpd +app-misc/g15stats +dev-libs/libg15 +dev-libs/libg15render + +# Michał Górny (2024-11-17) +# Superseded by dev-lang/pypy:3.10. This version is vulnerable. +# Removal on 2024-12-01. +dev-python/pypy3_10 + +# Alfredo Tupone (2024-11-17) +# Included in dev-ml/odoc, the only rdep +# Removal on 2024-12-17. +dev-ml/odoc-parser + +# Matt Turner (2024-11-16) +# Masked for testing +=dev-util/intel_clc-24.3* +=media-libs/mesa-24.3* + +# Andreas K. Hüttel (2024-11-17) +# Needs a header from libusb that doesnt exist anymore. Will never build. +# Furthermore, modern C problems. Bug 874645. No maintainer. +# Removal in 30 days. +dev-util/usb-robot + +# Andreas K. Hüttel (2024-11-17) +# Fails to build on modern compilers, bug 874291. Various open bugs. +# No maintainer. Removal in 30 days. +app-emulation/spim + +# Hans de Graaff (2024-11-16) +# Mask obsolete shoulda-related slots. Use the newer slots instead. +# Removal on 2024-12-16. +dev-ruby/shoulda:3 +dev-ruby/shoulda-context:0 +dev-ruby/shoulda-matchers:3 + +# Hans de Graaff (2024-11-16) +# Mask obsolete Rails 6.1-only slot. Please use the newer slot instead. +# Removal on 2024-12-16. +dev-ruby/database_cleaner-active_record:2.1 + +# Jaco Kroon (2024-11-15) +# clippy exists purely for frr (even comes from the same sources). This +# package split is no longer implemented from frr-9.1.2 onwards, so this +# package is no longer required. +dev-util/clippy + +# Michael Orlitzky (2024-11-13) +# PHP 8.1.x no longer receives bug fixes unless they address security +# issues. That means no build fixes, no updates for modern compilers, +# and no tweaks for newer versions of dependencies. We can't really +# afford to maintain our own little fork of this, so it's time to +# upgrade (sorry). With it goes any unmaintained PECL packages +# that don't support 8.2 or newer. +dev-lang/php:8.1 +dev-php/pecl-dbase +dev-php/pecl-gnupg +dev-php/pecl-http +dev-php/pecl-lzf +dev-php/pecl-mcrypt +dev-php/pecl-memcache +dev-php/pecl-oauth +dev-php/pecl-pam +dev-php/pecl-ps +dev-php/pecl-psr +dev-php/pecl-raphf +dev-php/pecl-timezonedb +dev-php/pecl-translit +dev-php/pecl-uuid +dev-php/pecl-zmq +dev-php/realpath_turbo +dev-php/snuffleupagus +dev-php/swoole +=virtual/httpd-php-8.1 + (2024-11-10) # Fails to build with gcc-14. Horrible code. Not touched by a # maintainer since 2010. Bugs 729134, 870541, 909625, 933773 @@ -229,25 +358,6 @@ dev-python/sentry-sdk # Removal on 2024-11-14. Bug #247500. app-emacs/quilt-el -# Alfredo Tupone (2024-10-14) -# These packages are no more needed. -# Use dev-ml/opam, dev-ml/opam-file-format, -# dev-ml/opam-installer -# that include these -# remove on 2024-11-14. -dev-ml/opam-client -dev-ml/opam-repository -dev-ml/opam-state -dev-ml/opam-format -dev-ml/opam-core -dev-ml/opam-solver - -# Hans de Graaff (2024-10-13) -# Obsolete slots without reverse dependencies. Use a newer slot -# instead. Removal on 2024-11-13. -dev-ruby/io-event:1.2 -dev-ruby/io-event:1.3 - # Holger Hoffstätte (2024-10-11) # Vendors an unreleased libbpf version and generates ABI-breaking code. # Bug #941185. Removal on 2024-12-03. @@ -276,17 +386,12 @@ app-i18n/fcitx-unikey:4 app-i18n/fcitx:4 app-i18n/kcm-fcitx -# Michael Orlitzky (2024-10-09) -# This is the new stable series of webkit-gtk, but it has a new -# less-portable rendering engine, and doesn't yet build on ~riscv for -# reasons unrelated to that. It's easier to play around with it in -# the tree, but it's not ready for end users yet. ->=net-libs/webkit-gtk-2.46.0 - # Ionen Wolkens (2024-10-08) -# Masked for testing and (mostly) to avoid upgrade noise given -# PyQt6-6.7.x is known broken with it and depends on <6.8. Feel -# free to unmask early if not using PyQt6. +# Masked for testing, and odds are (at this point) that 6.8.0 will +# never be unmasked and will skip to 6.8.1 instead given the large +# amount of regressions there's been.. +=dev-python/pyqt6-6.8.0_pre* +=dev-python/pyqt6-webengine-6.8.0_pre* =dev-python/pyside6-6.8.0* =dev-python/pyside6-tools-6.8.0* =dev-python/shiboken6-6.8.0* @@ -323,7 +428,7 @@ app-i18n/kcm-fcitx =dev-qt/qtwebsockets-6.8.0* =dev-qt/qtwebview-6.8.0* -# Andrew Ammerlaan (2024-10-05) +# Nowa Ammerlaan (2024-10-05) # This version is known to break on certain systems. At the # same time it fixes several reported issues. Masked until # we can work out how to resolve the situation. @@ -342,12 +447,6 @@ app-i18n/kcm-fcitx # Beware that if you upgrade to it, you may need to reset your keyrings. >=app-crypt/gnupg-2.5 -# Eli Schwartz (2024-09-19) -# Breaks parallel builds with fatal compiler errors. -# Bug #939798, #939875. ->=dev-python/ensurepip-setuptools-75.1.0 ->=dev-python/setuptools-75.1.0 - # Ulrich Müller (2024-09-12) # Pretest versions, masked for testing. =xfce-base/xfdesktop-4.19 >=xfce-base/xfwm4-4.19 -# Sam James (2024-04-28) -# Masked for testing. Tracker bug: bug #930805. ->=sys-libs/ncurses-6.5 - # Sam James (2024-03-28) # Newer 5.4.x releases were signed by a potentially compromised upstream maintainer. # There is no evidence that these releases contain malicious code, but masked diff --git a/sdk_container/src/third_party/portage-stable/profiles/profiles.desc b/sdk_container/src/third_party/portage-stable/profiles/profiles.desc index 445189fc42e..c6e64424c35 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/profiles.desc +++ b/sdk_container/src/third_party/portage-stable/profiles/profiles.desc @@ -576,6 +576,21 @@ x86 default/linux/x86/23.0/i686/split-usr/prefix exp x86 default/linux/x86/23.0/i686/split-usr/prefix/kernel-2.6.32+ exp x86 default/linux/x86/23.0/i686/split-usr/prefix/kernel-2.6.16+ exp x86 default/linux/x86/23.0/i686/split-usr/prefix/kernel-3.2+ exp +x86 default/linux/x86/23.0/i686/time64 exp +x86 default/linux/x86/23.0/i686/time64/systemd exp +x86 default/linux/x86/23.0/i686/time64/hardened exp +x86 default/linux/x86/23.0/i686/time64/hardened/selinux exp +x86 default/linux/x86/23.0/i686/time64/desktop exp +x86 default/linux/x86/23.0/i686/time64/desktop/gnome exp +x86 default/linux/x86/23.0/i686/time64/desktop/gnome/systemd exp +x86 default/linux/x86/23.0/i686/time64/desktop/plasma exp +x86 default/linux/x86/23.0/i686/time64/desktop/plasma/systemd exp +x86 default/linux/x86/23.0/i686/time64/split-usr exp +x86 default/linux/x86/23.0/i686/time64/split-usr/hardened exp +x86 default/linux/x86/23.0/i686/time64/split-usr/hardened/selinux exp +x86 default/linux/x86/23.0/i686/time64/split-usr/desktop exp +x86 default/linux/x86/23.0/i686/time64/split-usr/desktop/gnome exp +x86 default/linux/x86/23.0/i686/time64/split-usr/desktop/plasma exp x86 default/linux/x86/23.0/i486 stable x86 default/linux/x86/23.0/i486/systemd stable x86 default/linux/x86/23.0/i486/hardened dev diff --git a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/package.use b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/package.use index 0df2c18de1d..b4f3a3a296f 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/package.use +++ b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/package.use @@ -4,7 +4,6 @@ # Andreas Sturmlechner (2024-08-30) # Resolve conflicting REQUIRED_USE defaults (qt5 vs. qt6) media-libs/simage -qt5 -net-p2p/transmission -qt5 # Andreas Sturmlechner (2024-03-07) # Required by kde-frameworks/kio:6 @@ -33,7 +32,7 @@ x11-base/xwayland libei dev-build/cmake -gui -qt6 # Andreas Sturmlechner (2023-07-29) -# Required by dev-python/PyQt5[multimedia] +# Required by dev-python/pyqt5[multimedia] dev-qt/qtmultimedia:5 widgets # Andreas Sturmlechner (2023-05-21) @@ -91,7 +90,7 @@ app-text/xmlto text # Ben de Groot (2015-02-18) # Enable sensible defaults for desktop users (bug #540046) -dev-python/PyQt5 gui multimedia network printsupport widgets +dev-python/pyqt5 gui multimedia network printsupport widgets # Chí-Thanh Christopher Nguyễn (2014-05-08) # Enable x11-libs/libxcb[xkb] as it is needed by x11-libs/libxkbcommon[X] 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 47695fff68d..365fff91265 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 @@ -16,7 +16,7 @@ dev-libs/libjcat gpg pkcs7 # qtwebchannel package is fairly small, and python bindings are # required by some popular desktop packages such as calibre, # qutebrowser, and freecad (or indirectly through PyQt*WebEngine). -dev-python/PyQt6 webchannel +dev-python/pyqt6 webchannel dev-python/pyside6 webchannel # Required by sys-apps/flatpak, a dependency of kde-plasma/discover diff --git a/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2020 b/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2020 index c8acb329539..8d1fd16d86c 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2020 +++ b/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2020 @@ -3,7 +3,7 @@ move dev-python/neovim-python-client dev-python/pynvim move games-action/openastromenace games-action/astromenace move dev-python/pyzor mail-filter/pyzor move dev-python/python-sqlparse dev-python/sqlparse -move dev-python/git-python dev-python/GitPython +move dev-python/git-python dev-python/gitpython move www-servers/automx2 net-mail/automx2 move dev-python/pysnmp-apps net-analyzer/snmpclitools move net-im/slack-bin net-im/slack diff --git a/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2022 b/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2022 deleted file mode 100644 index 552ae3af00d..00000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2022 +++ /dev/null @@ -1,2 +0,0 @@ -move dev-python/textx dev-python/textX -move dev-python/arpeggio dev-python/Arpeggio diff --git a/sdk_container/src/third_party/portage-stable/profiles/updates/3Q-2022 b/sdk_container/src/third_party/portage-stable/profiles/updates/3Q-2022 index ec603251f24..832b2195ef4 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/updates/3Q-2022 +++ b/sdk_container/src/third_party/portage-stable/profiles/updates/3Q-2022 @@ -1,20 +1,17 @@ move dev-python/async_timeout dev-python/async-timeout -move dev-python/configargparse dev-python/ConfigArgParse -move dev-python/frozen-flask dev-python/Frozen-Flask -move dev-python/ipy dev-python/IPy move sci-libs/shapely dev-python/shapely move games-action/brutal-legend games-action/brutal-legend-hb move kde-apps/kdesdk-kioslaves dev-util/kio-perldoc move kde-apps/zeroconf-ioslave net-misc/kio-zeroconf move net-misc/cni-plugins app-containers/cni-plugins move gnome-extra/chrome-gnome-shell gnome-extra/gnome-browser-connector -move dev-python/PyQt6_sip dev-python/PyQt6-sip -move dev-python/PyQt6_WebEngine dev-python/PyQt6-WebEngine +move dev-python/PyQt6_sip dev-python/pyqt6-sip +move dev-python/PyQt6_WebEngine dev-python/pyqt6-webengine move net-p2p/go-ipfs net-p2p/kubo move app-admin/ansible-base app-admin/ansible-core slotmove =dev-ruby/rack-test-2.0.2 1.0 2 move app-office/gnome-todo app-office/endeavour -move dev-python/python-levenshtein dev-python/Levenshtein +move dev-python/python-levenshtein dev-python/levenshtein move mail-mta/protonmail-bridge mail-mta/proton-mail-bridge move app-emulation/distrobox app-containers/distrobox move www-servers/tornado dev-python/tornado diff --git a/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2022 b/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2022 index a21fddfd183..962e6ae4138 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2022 +++ b/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2022 @@ -7,4 +7,3 @@ move dev-python/retworkx dev-python/rustworkx move dev-lang/open-cobol dev-lang/gnucobol move virtual/awk app-alternatives/awk move virtual/yacc app-alternatives/yacc -move dev-python/nuitka dev-python/Nuitka diff --git a/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2024 b/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2024 index aedc958dd30..d8e1f112588 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2024 +++ b/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2024 @@ -4,3 +4,60 @@ slotmove media-sound/kmetronome 5 0 move net-im/sendxmpp-amm net-im/sendxmpp-scala move dev-python/jinja dev-python/jinja2 move dev-python/gmpy dev-python/gmpy2 +move dev-python/tlsh dev-python/python-tlsh +move dev-python/tappy dev-python/tap-py +move dev-python/subunit dev-python/python-subunit +move dev-python/rpy dev-python/rpy2 +move dev-python/qscintilla-python dev-python/qscintilla +move dev-python/python-netlink dev-python/netlink +move dev-python/python-lhafile dev-python/lhafile +move dev-python/pysvg dev-python/pysvg-py3 +move dev-python/libpillowfight dev-python/pypillowfight +move dev-python/cchardet dev-python/faust-cchardet +move dev-python/protobuf-python dev-python/protobuf +move media-libs/oneVPL-intel-gpu media-libs/vpl-gpu-rt +move net-analyzer/RustScan net-analyzer/rustscan +move dev-python/APScheduler dev-python/apscheduler +move dev-python/Arpeggio dev-python/arpeggio +move dev-python/Babel dev-python/babel +move dev-python/BitVector dev-python/bitvector +move dev-python/ConfigArgParse dev-python/configargparse +move dev-python/CppHeaderParser dev-python/cppheaderparser +move dev-python/Events dev-python/events +move dev-python/eyeD3 dev-python/eyed3 +move dev-python/flit_scm dev-python/flit-scm +move dev-python/Faker dev-python/faker +move dev-python/Frozen-Flask dev-python/frozen-flask +move dev-python/GitPython dev-python/gitpython +move dev-python/GridDataFormats dev-python/griddataformats +move dev-python/ipython_genutils dev-python/ipython-genutils +move dev-python/IPy dev-python/ipy +move dev-python/jinja2_pluralize dev-python/jinja2-pluralize +move dev-python/Levenshtein dev-python/levenshtein +move dev-python/MechanicalSoup dev-python/mechanicalsoup +move dev-python/mitmproxy_wireguard dev-python/mitmproxy-wireguard +move dev-python/mypy_extensions dev-python/mypy-extensions +move dev-python/Nuitka dev-python/nuitka +move dev-python/Opcodes dev-python/opcodes +move dev-python/OutputCheck dev-python/outputcheck +move dev-python/PeachPy dev-python/peachpy +move dev-python/requests_download dev-python/requests-download +move dev-python/sphinx_selective_exclude dev-python/sphinx-selective-exclude +move dev-python/txAMQP dev-python/txamqp +move dev-python/textX dev-python/textx +move dev-python/pyClamd dev-python/pyclamd +move dev-python/pyDes dev-python/pydes +move dev-python/pyxDamerauLevenshtein dev-python/pyxdameraulevenshtein +move dev-python/PyGithub dev-python/pygithub +move dev-python/Pyro5 dev-python/pyro5 +move dev-python/PyRSS2Gen dev-python/pyrss2gen +move dev-python/PySDL2 dev-python/pysdl2 +move dev-python/PySocks dev-python/pysocks +move dev-python/QtPy dev-python/qtpy +move dev-python/PyQt-builder dev-python/pyqt-builder +move dev-python/PyQt6-WebEngine dev-python/pyqt6-webengine +move dev-python/PyQt6-sip dev-python/pyqt6-sip +move dev-python/PyQtWebEngine dev-python/pyqtwebengine +move dev-python/PyQt5-sip dev-python/pyqt5-sip +move dev-python/PyQt5 dev-python/pyqt5 +move dev-python/PyQt6 dev-python/pyqt6 diff --git a/sdk_container/src/third_party/portage-stable/profiles/use.desc b/sdk_container/src/third_party/portage-stable/profiles/use.desc index 7b0ba9c60bf..78dc6069505 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/use.desc +++ b/sdk_container/src/third_party/portage-stable/profiles/use.desc @@ -168,6 +168,7 @@ lash - Add LASH Audio Session Handler support latex - Add support for LaTeX (typesetting package) lcms - Add lcms support (color management engine) ldap - Add LDAP support (Lightweight Directory Access Protocol) +lerc - Add LERC suppport (Limited Error Raster Compression) libass - SRT/SSA/ASS (SubRip / SubStation Alpha) subtitle support libcaca - Add support for colored ASCII-art graphics libedit - Use the libedit library (replacement for readline) diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/Manifest index ce0b749d1fa..23616f3e3b3 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/Manifest @@ -1,3 +1,4 @@ DIST bubblewrap-0.10.0.tar.xz 119328 BLAKE2B 2b4b08409612e08c1ee7cde1dabb422cdc3e994f12ad8df94c99ad15c6355e605f73159df6ea32a54a7cf219e72c55a8ad72a73c3138f06b375fca36eff0c53e SHA512 d9e60c1999f8e205d4126cbc0680f6ee6cd316a461ad81563bc0aa606f3b257da5f36d4934b13d6ab1745aa78946224223455d44edff41d16238e8633f0eced9 +DIST bubblewrap-0.11.0.tar.xz 115228 BLAKE2B 753ae172ccceb9de08422f03702922966cb6e6d2da262ffb61e3e207ff616166f4047a1cc47801e091cf9e85d6d179450704b3e99743c81d8f77e9c37094d816 SHA512 4b083ac42410dacfa75ad8764bbb300048ce8f28543ece393b9b7180b152108ee4b337f82539d63196b6f8f5bf194d9e10f49207e3b8417ee2cb4bde88a63eee DIST bubblewrap-0.8.0.tar.xz 149088 BLAKE2B 5853cf42a7ab653540ec5134866c6f2459aa101e9eea724a4f283405cbcae2beb3551b7c1a7aa93d82016d4eb0d12f9c97c47df53a6d9b589db40483696253de SHA512 1cbc33f3c834ff83f4c1808d3ec2555921277d495f903ad152cbd5065a6e100c5420b4b5c62386bb2d303eb1734e074b09625013e55e3bd8631cfb3582d70e1c DIST bubblewrap-0.9.0.tar.xz 118984 BLAKE2B 52a4e87e502da44a25031b6d6044da7712dccb2c58a2debad9a8562fd1e48805d783bec571adc0df8880a63595825a4204ceaaa4f3df2672252c631f7fe5b0c7 SHA512 3a3af355e4fdb19a91c40020d68fd83f7c74ebef92d989c932933293758bc0175fa41220c47fe829b84ba29457a12f0e225c19afe674ecbf983b0826dbc1c878 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/bubblewrap-0.11.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/bubblewrap-0.11.0.ebuild new file mode 100644 index 00000000000..24ced9e9b7f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/bubblewrap-0.11.0.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 linux-info meson + +DESCRIPTION="Unprivileged sandboxing tool, namespaces-powered chroot-like solution" +HOMEPAGE="https://github.com/containers/bubblewrap/" +SRC_URI="https://github.com/containers/${PN}/releases/download/v${PV}/${P}.tar.xz" + +LICENSE="LGPL-2+" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" +IUSE="selinux suid" + +RDEPEND=" + sys-libs/libseccomp + sys-libs/libcap + selinux? ( >=sys-libs/libselinux-2.1.9 ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + app-text/docbook-xml-dtd:4.3 + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + virtual/pkgconfig +" + +# tests require root privileges +RESTRICT="test" + +pkg_setup() { + if [[ ${MERGE_TYPE} != buildonly ]]; then + CONFIG_CHECK="~UTS_NS ~IPC_NS ~USER_NS ~PID_NS ~NET_NS" + linux-info_pkg_setup + fi +} + +src_configure() { + local emesonargs=( + -Dbash_completion=enabled + -Dbash_completion_dir="$(get_bashcompdir)" + -Dman=enabled + -Dtests=false + -Dzsh_completion=enabled + $(meson_feature selinux) + ) + + meson_src_configure +} + +src_install() { + meson_src_install + + if use suid; then + chmod u+s "${ED}"/usr/bin/bwrap + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/dtc/Manifest index 3bca2a9fbcc..df415dd5bae 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/dtc/Manifest @@ -1,3 +1,2 @@ -DIST dtc-1.6.0.tar.xz 158584 BLAKE2B 47b15b5df7f5d87369d6daaad87f2989a80865f2fab19f89d050d390a9f8319bcd86a36e12f7cc8d62947bb4d1335769071d0e3ea0a6e16861aea163e78f4696 SHA512 15433b24f1d6b7ed1f8066d050bd1bcbf988731aa38147564e3dd04b5f69af8d69e03befdc621a768526c620425a9bdd24aad4f9ff135930d6a1eeb0625f7de3 -DIST dtc-1.7.0.tar.xz 165548 BLAKE2B de433a1034b7ef75559bf39f85695d0b275cfd17bf100c12b6186e226a65659053f9b5a053f20e64a5a0670ea3e728edd0e624c26287bd264594569408065bab SHA512 d3ba6902a9a2f2cdbaff55f12fca3cfe4a1ec5779074a38e3d8b88097c7abc981835957e8ce72971e10c131e05fde0b1b961768e888ff96d89e42c75edb53afb DIST dtc-1.7.1.tar.xz 169524 BLAKE2B c9d9d7c60ce13c8e138ab8ddf3e8166d7cf3867ca4e5ea53621bf73514319faf6a6bac09fb96c971554db9f77dd3428e01d53990586041092a64849685d8854b SHA512 3195924b374680e367d7be6b9793691efc0441858068c8bc8d8a908db00bbae781a99184b5c5e272af39045ec58cb0f92adbdd00ff808480b635bd632aa74719 +DIST dtc-1.7.2.tar.xz 169668 BLAKE2B d345027614a4caff9912b39286e35c1a889bbfd88630bac1c9c48223a6171bd6a8661342c89355e63301b395d1c238be82d21d870b0dd5fc05ae5dd552e730a6 SHA512 30f3611175a5c29556282f3f2894701a5837eb869608d89d78c280af448bbc3a5b6c83f51c28f991847c0eb7c42aa57599bbc31433f1b3b2c8d162cb2169b91f diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-1.6.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-1.6.0.ebuild deleted file mode 100644 index 5490e3ded51..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-1.6.0.ebuild +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit toolchain-funcs - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="git://git.kernel.org/pub/scm/utils/dtc/dtc.git" - 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" -fi - -DESCRIPTION="Open Firmware device tree compiler" -HOMEPAGE="https://devicetree.org/ https://git.kernel.org/cgit/utils/dtc/dtc.git/" - -LICENSE="GPL-2" -SLOT="0" -IUSE="static-libs yaml" - -BDEPEND=" - app-alternatives/yacc - app-alternatives/lex - virtual/pkgconfig -" -RDEPEND="yaml? ( dev-libs/libyaml )" -DEPEND="${RDEPEND}" - -DOCS=" - Documentation/dt-object-internal.txt - Documentation/dts-format.txt - Documentation/manual.txt -" - -_emake() { - # valgrind is used only in 'make checkm' - emake \ - NO_PYTHON=1 \ - NO_VALGRIND=1 \ - NO_YAML=$(usex !yaml 1 0) \ - \ - AR="$(tc-getAR)" \ - CC="$(tc-getCC)" \ - PKG_CONFIG="$(tc-getPKG_CONFIG)" \ - \ - V=1 \ - \ - PREFIX="${EPREFIX}/usr" \ - \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - \ - "$@" -} - -src_prepare() { - default - - sed -i \ - -e '/^CFLAGS =/s:=:+=:' \ - -e '/^CPPFLAGS =/s:=:+=:' \ - -e 's:-Werror::' \ - -e 's:-g -Os::' \ - Makefile || die - - tc-export AR CC PKG_CONFIG -} - -src_compile() { - _emake -} - -src_test() { - _emake check -} - -src_install() { - _emake DESTDIR="${D}" install - - use static-libs || find "${ED}" -name '*.a' -delete -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-1.7.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-1.7.2.ebuild similarity index 82% rename from sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-1.7.0.ebuild rename to sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-1.7.2.ebuild index 664c10ab974..29954f8a0e3 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-1.7.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-1.7.2.ebuild @@ -31,9 +31,11 @@ BDEPEND=" " RDEPEND=" python? ( ${PYTHON_DEPS} ) - yaml? ( dev-libs/libyaml ) + yaml? ( >=dev-libs/libyaml-0.2.3[static-libs?] ) +" +DEPEND=" + ${RDEPEND} " -DEPEND="${RDEPEND}" DOCS=( Documentation/dt-object-internal.txt @@ -41,12 +43,6 @@ DOCS=( Documentation/manual.txt ) -PATCHES=( - "${FILESDIR}"/${P}-meson-tests.patch - "${FILESDIR}"/${P}-meson-macos.patch - "${FILESDIR}"/fix-tests-for-Python3.12.patch -) - pkg_setup() { if use python ; then export SETUPTOOLS_SCM_PRETEND_VERSION=${PV} @@ -54,19 +50,12 @@ pkg_setup() { fi } -src_prepare() { - default - - if ! use test ; then - sed -i -e "/subdir('tests')/d" meson.build || die - fi -} - src_configure() { local emesonargs=( -Dtools=true -Dvalgrind=disabled # only used for some tests $(meson_feature python) + $(meson_use test tests) $(meson_feature yaml) ) diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-9999.ebuild index 6da2ddea52c..27573a12263 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/dtc/dtc-9999.ebuild @@ -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" @@ -31,7 +31,7 @@ BDEPEND=" " RDEPEND=" python? ( ${PYTHON_DEPS} ) - yaml? ( >=dev-libs/libyaml-0.2.3 ) + yaml? ( >=dev-libs/libyaml-0.2.3[static-libs?] ) " DEPEND=" ${RDEPEND} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/files/dtc-1.7.0-meson-macos.patch b/sdk_container/src/third_party/portage-stable/sys-apps/dtc/files/dtc-1.7.0-meson-macos.patch deleted file mode 100644 index 473cd9a29e1..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/files/dtc-1.7.0-meson-macos.patch +++ /dev/null @@ -1,39 +0,0 @@ -https://git.kernel.org/pub/scm/utils/dtc/dtc.git/commit/?id=71a8b8ef0adf01af4c78c739e04533a35c1dc89c - -From 71a8b8ef0adf01af4c78c739e04533a35c1dc89c Mon Sep 17 00:00:00 2001 -From: Otavio Salvador -Date: Wed, 31 May 2023 11:41:42 -0300 -Subject: libfdt: meson: Fix linking on macOS linker - --undefined error is the equivalent of --no-undefined for the macOS -linker, but -undefined would also be understood as a valid argument for -GNU ld so we use the supported linker variant. - -Signed-off-by: Otavio Salvador -Signed-off-by: David Gibson ---- a/libfdt/meson.build -+++ b/libfdt/meson.build -@@ -16,10 +16,20 @@ sources = files( - 'fdt_wip.c', - ) - -+link_args = [] -+if cc.has_link_argument('-Wl,--no-undefined') -+ link_args += '-Wl,--no-undefined' -+else -+ # -undefined error is the equivalent of --no-undefined for the macOS linker, -+ # but -undefined would also be understood as a valid argument for GNU ld! -+ link_args += cc.get_supported_link_arguments('-Wl,-undefined,error') -+endif -+ -+link_args += version_script - libfdt = library( - 'fdt', sources, - version: '1.6.0', -- link_args: ['-Wl,--no-undefined', version_script], -+ link_args: link_args, - link_depends: 'version.lds', - install: true, - ) --- -cgit diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/files/dtc-1.7.0-meson-tests.patch b/sdk_container/src/third_party/portage-stable/sys-apps/dtc/files/dtc-1.7.0-meson-tests.patch deleted file mode 100644 index 0bc2d71aea1..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/files/dtc-1.7.0-meson-tests.patch +++ /dev/null @@ -1,27 +0,0 @@ -https://git.kernel.org/pub/scm/utils/dtc/dtc.git/patch/?id=32174a66efa4ad19fc6a2a6422e4af2ae4f055cb - -From 32174a66efa4ad19fc6a2a6422e4af2ae4f055cb Mon Sep 17 00:00:00 2001 -From: David Gibson -Date: Tue, 28 Feb 2023 10:33:58 +1100 -Subject: meson: Fix cell overflow tests when running from meson - -Because meson always builds out-of-tree we need to reference things in the -original source tree via $SRCDIR from run_tests.sh. We forgot a couple of -cases for the cell overflow tests. Fix them. - -Signed-off-by: David Gibson ---- a/tests/run_tests.sh -+++ b/tests/run_tests.sh -@@ -519,8 +519,8 @@ libfdt_tests () { - check_tests "$SRCDIR/phandle-args-overflow.dts" clocks_property - - ## https://github.com/dgibson/dtc/issues/74 -- run_dtc_test -I dts -O dtb -o cell-overflow-results.test.dtb cell-overflow-results.dts -- run_dtc_test -I dts -O dtb -o cell-overflow.test.dtb cell-overflow.dts -+ run_dtc_test -I dts -O dtb -o cell-overflow-results.test.dtb "$SRCDIR/cell-overflow-results.dts" -+ run_dtc_test -I dts -O dtb -o cell-overflow.test.dtb "$SRCDIR/cell-overflow.dts" - run_test dtbs_equal_ordered cell-overflow.test.dtb cell-overflow-results.test.dtb - - # check full tests --- -cgit diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/files/fix-tests-for-Python3.12.patch b/sdk_container/src/third_party/portage-stable/sys-apps/dtc/files/fix-tests-for-Python3.12.patch deleted file mode 100644 index 7a08648f383..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/dtc/files/fix-tests-for-Python3.12.patch +++ /dev/null @@ -1,43 +0,0 @@ -Description: Python3.12 causes breakage for get_mem_rsv in pylibfdt. - - Author: Héctor Orón Martínez - ---- - -Bug: https://github.com/dgibson/dtc/issues/123 -Bug-Debian: https://bugs.debian.org/1061318 -Bug-Ubuntu: https://launchpad.net/bugs/2051399 -Last-Update: 2024-01-30 - ---- device-tree-compiler-1.7.0.orig/tests/pylibfdt_tests.py -+++ device-tree-compiler-1.7.0/tests/pylibfdt_tests.py -@@ -418,9 +418,14 @@ class PyLibfdtBasicTests(unittest.TestCa - def testReserveMap(self): - """Test that we can access the memory reserve map""" - self.assertEqual(2, self.fdt.num_mem_rsv()) -- self.assertEqual([ 0xdeadbeef00000000, 0x100000], -- self.fdt.get_mem_rsv(0)) -- self.assertEqual([123456789, 0o10000], self.fdt.get_mem_rsv(1)) -+ if sys.version_info.major >= 3 and sys.version_info.minor >= 12: -+ self.assertEqual([0, 0xdeadbeef00000000, 0x100000], -+ self.fdt.get_mem_rsv(0)) -+ self.assertEqual([0, 123456789, 0o10000], self.fdt.get_mem_rsv(1)) -+ else: -+ self.assertEqual([0xdeadbeef00000000, 0x100000], -+ self.fdt.get_mem_rsv(0)) -+ self.assertEqual([123456789, 0o10000], self.fdt.get_mem_rsv(1)) - - def testEmpty(self): - """Test that we can create an empty tree""" -@@ -615,7 +620,10 @@ class PyLibfdtSwTests(unittest.TestCase) - - fdt = sw.as_fdt() - self.assertEqual(2, fdt.num_mem_rsv()) -- self.assertEqual([TEST_ADDR_1, TEST_SIZE_1], fdt.get_mem_rsv(0)) -+ if sys.version_info.major >= 3 and sys.version_info.minor >= 12: -+ self.assertEqual([0, TEST_ADDR_1, TEST_SIZE_1], fdt.get_mem_rsv(0)) -+ else: -+ self.assertEqual([TEST_ADDR_1, TEST_SIZE_1], fdt.get_mem_rsv(0)) - - # Make sure we can add a few more things - with sw.add_node('another'): 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.9.ebuild index cb6df20a3a0..cd0bd783b1a 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.9.ebuild @@ -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/iproute2/iproute2-6.11.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.11.0-r2.ebuild index e06e6cd952a..b554a76d881 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.11.0-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.11.0-r2.ebuild @@ -10,7 +10,7 @@ if [[ ${PV} == 9999 ]] ; then inherit git-r3 else SRC_URI="https://www.kernel.org/pub/linux/utils/net/${PN}/${P}.tar.xz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" fi DESCRIPTION="kernel routing and traffic control utilities" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.11.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.11.0.ebuild index 26b79a0d084..debd258b42e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.11.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.11.0.ebuild @@ -10,7 +10,7 @@ if [[ ${PV} == 9999 ]] ; then inherit git-r3 else SRC_URI="https://www.kernel.org/pub/linux/utils/net/${PN}/${P}.tar.xz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" fi DESCRIPTION="kernel routing and traffic control utilities" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.29-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.29-r1.ebuild index c8af4693cfe..7513e15106e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.29-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.29-r1.ebuild @@ -11,7 +11,7 @@ if [[ ${PV} == "9999" ]] ; then else SRC_URI="https://www.kernel.org/pub/linux/utils/kernel/kexec/${P/_/-}.tar.xz" [[ "${PV}" == *_rc* ]] || \ - KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" + KEYWORDS="amd64 ~arm64 ~ppc64 x86" fi DESCRIPTION="Load another kernel from the currently executing Linux kernel" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kmod/kmod-33.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/kmod/kmod-33.ebuild index 739a4ff3a86..6946c9b652f 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/kmod/kmod-33.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kmod/kmod-33.ebuild @@ -13,7 +13,7 @@ if [[ ${PV} == 9999* ]]; then inherit git-r3 else SRC_URI="https://mirrors.edge.kernel.org/pub/linux/utils/kernel/kmod/${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 LICENSE="LGPL-2" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/less/less-668.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/less/less-668.ebuild index 57c09fbfd9a..658d1923edb 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/less/less-668.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/less/less-668.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 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.28.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.28.ebuild index 5b82d68e8a3..61fa4936aaf 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.28.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.28.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/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/portage/Manifest index 5789fe3a82b..add26cb02f0 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/Manifest @@ -1,6 +1,2 @@ -DIST portage-3.0.61.tar.bz2 1178151 BLAKE2B bad3140735b12a18a3108e91cc88146fc5c64ad3e3e056707eec7629927f718483a3e1ccf09f74de510ee7733b4d856c3c53692a6cc0f5fc1a7babf88fd7f06b SHA512 1401392a7bd2bf18e698e82af25a39db2aa9d8d9e8d9c07dea11ba5d5c866d2d3f8a3eccc8568b081aeaf6f668466921c61f58adbdd9dd5ffd9cf632bff2bdbd -DIST portage-3.0.63.tar.bz2 1187961 BLAKE2B 10523150b0eabac97309004c57356c40fa94ebd59f8f76701ae63d13f9424b523ccee2a367174af3a52078d5d9e4338b94e144247f6709c2f7df4418c040b06f SHA512 323adc17254f92e58f22028dad12ebcaaafa25c82567c5d31cc9575c30e0d78224c8f9efe0fcbeee549b08b0797edffb4bbe9c6fbbd8943e3f9dcda25eedd699 -DIST portage-3.0.64.tar.bz2 1187654 BLAKE2B 622cdda85315ab60ca3b1ae7cf1cb1fe479b69c945dafe14655030387d857ae89c0d8326b85fb3d3754ea95ecf2792ae60ba36f1ad9b18d1ac693fdabf9b235e SHA512 26a9fc9532aebd5965c6d62d78914d827ac48df100b5fc518934857881ca19b927e05b2cd9a2bb674b0e1bd5feff2058a083de9c8fb86af16efe8752325c7722 DIST portage-3.0.65.tar.bz2 1193321 BLAKE2B 4734b0a2b17cf0cdbd0bedac9efa6cecb5799460e1faa8b8ab137fa017e17d47d6d5da6382e75322f21d4be77a31acffbacd753c70b43b011613cc5a6332bc96 SHA512 c864bcb3bef11916128852a5f50b161d82529d7316ec970703a9ec948c46a51148419ef1dfde2906f72347dd41d0eebd49f5a1769a228d97145f5517c34dbff8 DIST portage-3.0.66.1.tar.bz2 1198196 BLAKE2B 8dbd1bc17c1a9a3530425efa31a27efba39e1ef5f5457b4084875c64f7128453139aea447c25a642c124438e88ef484a43b1838cbd8c03748017571dd18f9921 SHA512 fcd3d4d3dcfdb67cbcdb0f4854860f073b4a9d41dadc97a3e6f890e3c75091aceec5622e97495741622b5c390309f05dec35b9e951d7ee7a78e28a9b3ed2939d -DIST portage-3.0.66.tar.bz2 1198148 BLAKE2B 77012739f18dfbbf088533fc9ccb64fe870d849ef6dadfdd92855d16fbca5eec08b065f94067898016787c03fd1b338dbe06192d56a97f2ad62681bda37c3be8 SHA512 0b182a2078c1c2b7d2e7148834dd6f2b2ae09bf4c91454e0cae908406abd9ad221a46738869ead17c5595c988bb2c11c462ba29ffb022389b1f2e824f093c853 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/0001-install-qa-checks.d-suppress-some-gnulib-implicit-co.patch b/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/0001-install-qa-checks.d-suppress-some-gnulib-implicit-co.patch deleted file mode 100644 index bc8e2f51fa5..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/0001-install-qa-checks.d-suppress-some-gnulib-implicit-co.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 236a2c7081e2208c817f9a99f012bab0be3d70b2 Mon Sep 17 00:00:00 2001 -From: Eli Schwartz -Date: Fri, 17 May 2024 01:52:53 -0400 -Subject: [PATCH 1/2] install-qa-checks.d: suppress some gnulib implicit - configure declarations - -These happen in tons of GNU packages because of using gnulib, which -pulls in macros that check for some functionality and spit out an -implicit function declaration error if they aren't supported, which is -*expected*. - -Bug: https://bugs.gentoo.org/906027 -Signed-off-by: Eli Schwartz -Closes: https://github.com/gentoo/portage/pull/1323 -Signed-off-by: Sam James ---- - bin/install-qa-check.d/90config-impl-decl | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/bin/install-qa-check.d/90config-impl-decl b/bin/install-qa-check.d/90config-impl-decl -index 7969dff17..adea7d405 100644 ---- a/bin/install-qa-check.d/90config-impl-decl -+++ b/bin/install-qa-check.d/90config-impl-decl -@@ -49,6 +49,15 @@ add_default_skips() { - res_ndestroy - statacl - ) -+ -+ QA_CONFIG_IMPL_DECL_SKIP+=( -+ # Available in c23, these gnulib checks are expected to fail -+ alignof -+ static_assert -+ unreachable -+ # also gnulib, but checks both linux/non-linux headers -+ MIN -+ ) - } - - find_log_targets() { --- -2.44.1 - - -From e01d7fde23c4a0cc9f22e7b1ea28d3deff0331ae Mon Sep 17 00:00:00 2001 -From: Eli Schwartz -Date: Tue, 21 May 2024 19:22:31 -0400 -Subject: [PATCH 2/2] install-qa-checks.d: suppress some gnulib implicit decls - on musl - -These happen in tons of GNU packages because of using gnulib's regex.m4 -specifically, which pulls in a macro that checks for some functionality -and spit out many implicit function declaration errors if regex.h isn't -GNU's specifically. - -The compile tests do fail either way, it's just very dirty in the logs. - -Bug: https://bugs.gentoo.org/906027 -Closes: https://github.com/gentoo/portage/pull/1327 -Signed-off-by: Eli Schwartz ---- - bin/install-qa-check.d/90config-impl-decl | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/bin/install-qa-check.d/90config-impl-decl b/bin/install-qa-check.d/90config-impl-decl -index adea7d405..8768c99c6 100644 ---- a/bin/install-qa-check.d/90config-impl-decl -+++ b/bin/install-qa-check.d/90config-impl-decl -@@ -58,6 +58,18 @@ add_default_skips() { - # also gnulib, but checks both linux/non-linux headers - MIN - ) -+ if [[ ${CHOST} = *musl* ]]; then -+ QA_CONFIG_IMPL_DECL_SKIP+=( -+ # gnulib checks for functions that aren't available on musl. -+ -+ # regex.m4 always emits these warnings, but they are noisy to fix -+ # and the check will correctly fail due to missing macros anyway. -+ re_set_syntax -+ re_compile_pattern -+ re_search -+ re_match -+ ) -+ fi - } - - find_log_targets() { --- -2.44.1 - diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/portage-3.0.64-clang-splitdebug.patch b/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/portage-3.0.64-clang-splitdebug.patch deleted file mode 100644 index 04193241deb..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/portage-3.0.64-clang-splitdebug.patch +++ /dev/null @@ -1,76 +0,0 @@ -https://github.com/gentoo/portage/commit/51f6ad158fc3de14df3f87d1242ff950b2189f05 - -From 51f6ad158fc3de14df3f87d1242ff950b2189f05 Mon Sep 17 00:00:00 2001 -From: "Alex Xu (Hello71)" -Date: Sat, 11 Mar 2023 12:27:23 -0500 -Subject: [PATCH] estrip: Don't use splitdebug for .o files - -As the process_ar comment explained, object files cannot be splitdebug. - -Bug: https://bugs.gentoo.org/787623 ("www-client/firefox[clang]: .gnu_debuglink is busted when using LLD") -Fixes: 51579fb34c19 ("prepstrip: add support for elfutils strip") -Signed-off-by: Alex Xu (Hello71) -Signed-off-by: Sam James ---- a/bin/estrip -+++ b/bin/estrip -@@ -280,9 +280,6 @@ dedup_elf_debug() { - - # Usage: save_elf_debug [splitdebug] - save_elf_debug() { -- ${FEATURES_splitdebug} || return 0 -- ${PORTAGE_RESTRICT_splitdebug} && return 0 -- - debug-print-function "${FUNCNAME}" "$@" - - # NOTE: Debug files must be installed in -@@ -390,7 +387,7 @@ process_elf() { - - if ${strip_this} ; then - # See if we can split & strip at the same time -- if [[ -n ${SPLIT_STRIP_FLAGS} ]] ; then -+ if ${splitdebug} && [[ -n ${SPLIT_STRIP_FLAGS} ]] ; then - local shortname="${x##*/}.debug" - local splitdebug="${tmpdir}/splitdebug/${shortname}.${BASHPID:-$(__bashpid)}" - -@@ -401,7 +398,9 @@ process_elf() { - "${x}" - save_elf_debug "${x}" "${inode_link}_debug" "${splitdebug}" - else -- save_elf_debug "${x}" "${inode_link}_debug" -+ if ${splitdebug} ; then -+ save_elf_debug "${x}" "${inode_link}_debug" -+ fi - ${already_stripped} || ${STRIP} ${strip_flags} "${x}" - fi - fi -@@ -431,7 +430,7 @@ process_ar() { - # There is no concept of splitdebug for objects not yet - # linked in (only for finally linked ELFs), so we have to - # retain the debug info in the archive itself. -- if ! ${FEATURES_splitdebug} || ${PORTAGE_RESTRICT_splitdebug} ; then -+ if ! ${splitdebug} ; then - ${STRIP} -g "${x}" && ${RANLIB} "${x}" - fi - fi -@@ -542,6 +541,12 @@ do - set +o noglob - fi - -+ if ${FEATURES_splitdebug} && ! ${PORTAGE_RESTRICT_splitdebug} ; then -+ splitdebug=true -+ else -+ splitdebug=false -+ fi -+ - # In Prefix we are usually an unprivileged user, so we can't strip - # unwritable objects. Make them temporarily writable for the - # stripping. -@@ -564,6 +569,7 @@ do - ${f} == *"SB shared object"* ]] ; then - process_elf "${x}" "${inode_link}" ${PORTAGE_STRIP_FLAGS} - elif [[ ${f} == *"SB relocatable"* ]] ; then -+ [[ ${x} == *.ko ]] || splitdebug=false - process_elf "${x}" "${inode_link}" ${SAFE_STRIP_FLAGS} - fi - - diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.61-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.61-r2.ebuild deleted file mode 100644 index 3dca5778929..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.61-r2.ebuild +++ /dev/null @@ -1,246 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( pypy3 python3_{10..12} ) -PYTHON_REQ_USE='bzip2(+),threads(+)' -TMPFILES_OPTIONAL=1 - -inherit meson linux-info multiprocessing python-r1 tmpfiles - -DESCRIPTION="The package management and distribution system for Gentoo" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/portage.git - https://github.com/gentoo/portage.git - " - inherit git-r3 -else - SRC_URI="https://gitweb.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2" - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" -fi - -LICENSE="GPL-2" -SLOT="0" -IUSE="apidoc build doc gentoo-dev +ipc +native-extensions +rsync-verify selinux test xattr" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" -RESTRICT="!test? ( test )" - -# setuptools is still needed as a workaround for Python 3.12+ for now. -# https://github.com/mesonbuild/meson/issues/7702 -# -# >=meson-1.2.1-r1 for bug #912051 -BDEPEND=" - ${PYTHON_DEPS} - >=dev-build/meson-1.2.1-r1 - || ( - >=dev-build/meson-1.3.0-r1 - /dev/null ; then - chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog} - fi - - if has_version "<${CATEGORY}/${PN}-2.3.77"; then - elog "The emerge --autounmask option is now disabled by default, except for" - elog "portions of behavior which are controlled by the --autounmask-use and" - elog "--autounmask-license options. For backward compatibility, previous" - elog "behavior of --autounmask=y and --autounmask=n is entirely preserved." - elog "Users can get the old behavior simply by adding --autounmask to the" - elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this" - elog "change, see https://bugs.gentoo.org/658648." - fi -} - -pkg_postinst() { - # Warn about obsolete "enotice" script, bug #867010 - local bashrc=${EROOT}/etc/portage/profile/profile.bashrc - if [[ -e ${bashrc} ]] && grep -q enotice "${bashrc}"; then - eerror "Obsolete 'enotice' script detected!" - eerror "Please remove this from ${bashrc} to avoid problems." - eerror "See bug 867010 for more details." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.63-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.63-r2.ebuild deleted file mode 100644 index 1df6447705d..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.63-r2.ebuild +++ /dev/null @@ -1,250 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( pypy3 python3_{10..12} ) -PYTHON_REQ_USE='bzip2(+),threads(+)' -TMPFILES_OPTIONAL=1 - -inherit meson linux-info multiprocessing python-r1 tmpfiles - -DESCRIPTION="The package management and distribution system for Gentoo" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/portage.git - https://github.com/gentoo/portage.git - " - inherit git-r3 -else - SRC_URI="https://gitweb.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2" - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" -fi - -LICENSE="GPL-2" -SLOT="0" -IUSE="apidoc build doc gentoo-dev +ipc +native-extensions +rsync-verify selinux test xattr" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" -RESTRICT="!test? ( test )" - -# setuptools is still needed as a workaround for Python 3.12+ for now. -# https://github.com/mesonbuild/meson/issues/7702 -# -# >=meson-1.2.1-r1 for bug #912051 -BDEPEND=" - ${PYTHON_DEPS} - >=dev-build/meson-1.2.1-r1 - || ( - >=dev-build/meson-1.3.0-r1 - /dev/null ; then - chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog} - fi - - if has_version "<${CATEGORY}/${PN}-2.3.77"; then - elog "The emerge --autounmask option is now disabled by default, except for" - elog "portions of behavior which are controlled by the --autounmask-use and" - elog "--autounmask-license options. For backward compatibility, previous" - elog "behavior of --autounmask=y and --autounmask=n is entirely preserved." - elog "Users can get the old behavior simply by adding --autounmask to the" - elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this" - elog "change, see https://bugs.gentoo.org/658648." - fi -} - -pkg_postinst() { - # Warn about obsolete "enotice" script, bug #867010 - local bashrc=${EROOT}/etc/portage/profile/profile.bashrc - if [[ -e ${bashrc} ]] && grep -q enotice "${bashrc}"; then - eerror "Obsolete 'enotice' script detected!" - eerror "Please remove this from ${bashrc} to avoid problems." - eerror "See bug 867010 for more details." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.64-r4.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.64-r4.ebuild deleted file mode 100644 index cf7d1234718..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.64-r4.ebuild +++ /dev/null @@ -1,247 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( pypy3 python3_{10..12} ) -PYTHON_REQ_USE='bzip2(+),threads(+)' -TMPFILES_OPTIONAL=1 - -inherit meson linux-info python-r1 tmpfiles - -DESCRIPTION="The package management and distribution system for Gentoo" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/portage.git - https://github.com/gentoo/portage.git - " - inherit git-r3 -else - SRC_URI="https://gitweb.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -fi - -LICENSE="GPL-2" -SLOT="0" -IUSE="apidoc build doc gentoo-dev +ipc +native-extensions +rsync-verify selinux test xattr" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" -RESTRICT="!test? ( test )" - -# setuptools is still needed as a workaround for Python 3.12+ for now. -# https://github.com/mesonbuild/meson/issues/7702 -# -# >=meson-1.2.1-r1 for bug #912051 -BDEPEND=" - ${PYTHON_DEPS} - >=app-arch/tar-1.27 - >=dev-build/meson-1.2.1-r1 - || ( - >=dev-build/meson-1.3.0-r1 - =sys-apps/sed-4.0.5 - sys-devel/patch - !build? ( $(python_gen_impl_dep 'ssl(+)') ) - apidoc? ( - dev-python/sphinx[${PYTHON_USEDEP}] - dev-python/sphinx-epytext[${PYTHON_USEDEP}] - ) - doc? ( - ~app-text/docbook-xml-dtd-4.4 - app-text/xmlto - ) - test? ( - dev-python/pytest-xdist[${PYTHON_USEDEP}] - dev-vcs/git - ) -" -# Require sandbox-2.2 for bug #288863. -# For whirlpool hash, require python[ssl] (bug #425046). -RDEPEND=" - ${PYTHON_DEPS} - acct-user/portage - >=app-arch/tar-1.27 - app-arch/zstd - >=app-misc/pax-utils-0.1.17 - dev-lang/python-exec:2 - >=sys-apps/baselayout-2.9 - >=sys-apps/findutils-4.9 - !build? ( - >=app-admin/eselect-1.2 - app-portage/getuto - >=app-shells/bash-5.0:0 - >=sec-keys/openpgp-keys-gentoo-release-20240703 - >=sys-apps/sed-4.0.5 - rsync-verify? ( - >=app-crypt/gnupg-2.2.4-r2[ssl(-)] - >=app-portage/gemato-14.5[${PYTHON_USEDEP}] - ) - ) - elibc_glibc? ( >=sys-apps/sandbox-2.2 ) - elibc_musl? ( >=sys-apps/sandbox-2.2 ) - kernel_linux? ( sys-apps/util-linux ) - selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] ) - xattr? ( kernel_linux? ( - >=sys-apps/install-xattr-0.3 - ) ) - !/dev/null ; then - chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog} - fi - - if has_version "<${CATEGORY}/${PN}-2.3.77"; then - elog "The emerge --autounmask option is now disabled by default, except for" - elog "portions of behavior which are controlled by the --autounmask-use and" - elog "--autounmask-license options. For backward compatibility, previous" - elog "behavior of --autounmask=y and --autounmask=n is entirely preserved." - elog "Users can get the old behavior simply by adding --autounmask to the" - elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this" - elog "change, see https://bugs.gentoo.org/658648." - fi -} - -pkg_postinst() { - # Warn about obsolete "enotice" script, bug #867010 - local bashrc=${EROOT}/etc/portage/profile/profile.bashrc - if [[ -e ${bashrc} ]] && grep -q enotice "${bashrc}"; then - eerror "Obsolete 'enotice' script detected!" - eerror "Please remove this from ${bashrc} to avoid problems." - eerror "See bug 867010 for more details." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.66.1-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.66.1-r1.ebuild index d3a02fcb418..cc14924f812 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.66.1-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.66.1-r1.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/portage/portage-3.0.66.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.66.1.ebuild deleted file mode 100644 index 5958c3dd1f5..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.66.1.ebuild +++ /dev/null @@ -1,227 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( pypy3 python3_{10..13} ) -PYTHON_REQ_USE='bzip2(+),threads(+)' -TMPFILES_OPTIONAL=1 - -inherit meson linux-info python-r1 tmpfiles - -DESCRIPTION="The package management and distribution system for Gentoo" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/portage.git - https://github.com/gentoo/portage.git - " - inherit git-r3 -else - SRC_URI="https://gitweb.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -fi - -LICENSE="GPL-2" -SLOT="0" -IUSE="apidoc build doc gentoo-dev +ipc +native-extensions +rsync-verify selinux test xattr" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" -RESTRICT="!test? ( test )" - -BDEPEND=" - ${PYTHON_DEPS} - >=app-arch/tar-1.27 - >=dev-build/meson-1.3.0-r1 - >=sys-apps/sed-4.0.5 - sys-devel/patch - !build? ( $(python_gen_impl_dep 'ssl(+)') ) - apidoc? ( - dev-python/sphinx[${PYTHON_USEDEP}] - dev-python/sphinx-epytext[${PYTHON_USEDEP}] - ) - doc? ( - ~app-text/docbook-xml-dtd-4.4 - app-text/xmlto - ) - test? ( - dev-python/pytest-xdist[${PYTHON_USEDEP}] - dev-vcs/git - ) -" -# Require sandbox-2.2 for bug #288863. -# For whirlpool hash, require python[ssl] (bug #425046). -RDEPEND=" - ${PYTHON_DEPS} - acct-user/portage - >=app-arch/tar-1.27 - app-arch/zstd - >=app-misc/pax-utils-0.1.17 - dev-lang/python-exec:2 - >=sys-apps/baselayout-2.9 - >=sys-apps/findutils-4.9 - !build? ( - >=app-admin/eselect-1.2 - app-portage/getuto - >=app-shells/bash-5.0:0 - >=sec-keys/openpgp-keys-gentoo-release-20240703 - >=sys-apps/sed-4.0.5 - rsync-verify? ( - >=app-crypt/gnupg-2.2.4-r2[ssl(-)] - >=app-portage/gemato-14.5[${PYTHON_USEDEP}] - ) - ) - elibc_glibc? ( >=sys-apps/sandbox-2.2 ) - elibc_musl? ( >=sys-apps/sandbox-2.2 ) - kernel_linux? ( sys-apps/util-linux ) - selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] ) - xattr? ( kernel_linux? ( - >=sys-apps/install-xattr-0.3 - ) ) -" -# coreutils-6.4 rdep is for date format in emerge-webrsync #164532 -# NOTE: FEATURES=installsources requires debugedit and rsync -PDEPEND=" - !build? ( - >=net-misc/rsync-2.6.4 - >=sys-apps/coreutils-6.4 - >=sys-apps/file-5.44-r3 - ) -" - -pkg_pretend() { - local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS" - - check_extra_config -} - -src_prepare() { - default - - if use prefix-guest; then - sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \ - -e "s|^\\[gentoo\\]|[gentoo_prefix]|" \ - -e "s|^\(sync-uri = \).*|\\1rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix|" \ - -i cnf/repos.conf || die "sed failed" - fi -} - -src_configure() { - local code_only=false - python_foreach_impl my_src_configure -} - -my_src_configure() { - local emesonargs=( - -Dcode-only=${code_only} - -Deprefix="${EPREFIX}" - -Dportage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}" - -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" - $(meson_use doc) - $(meson_use apidoc) - $(meson_use gentoo-dev) - $(meson_use ipc) - $(meson_use xattr) - ) - - if use native-extensions && [[ "${EPYTHON}" != "pypy3" ]] ; then - emesonargs+=( -Dnative-extensions=true ) - else - emesonargs+=( -Dnative-extensions=false ) - fi - - if use build; then - emesonargs+=( -Drsync-verify=false ) - else - emesonargs+=( $(meson_use rsync-verify) ) - fi - - meson_src_configure - code_only=true -} - -src_compile() { - python_foreach_impl meson_src_compile -} - -src_test() { - local EPYTEST_XDIST=1 - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - python_foreach_impl epytest -} - -src_install() { - python_foreach_impl my_src_install - dotmpfiles "${FILESDIR}"/portage-{ccache,tmpdir}.conf - - local scripts - mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/{bin,sbin}/* || die) - python_replicate_script "${scripts[@]}" -} - -my_src_install() { - local pydirs=( - "${D}$(python_get_sitedir)" - "${ED}/usr/lib/portage/${EPYTHON}" - ) - - meson_src_install - python_fix_shebang "${pydirs[@]}" - python_optimize "${pydirs[@]}" -} - -pkg_preinst() { - if ! use build && [[ -z ${ROOT} ]]; then - python_setup - local sitedir=$(python_get_sitedir) - [[ -d ${D}${sitedir} ]] || die "${D}${sitedir}: No such directory" - env -u DISTDIR \ - -u PORTAGE_OVERRIDE_EPREFIX \ - -u PORTAGE_REPOSITORIES \ - -u PORTDIR \ - -u PORTDIR_OVERLAY \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - "${PYTHON}" -m portage._compat_upgrade.default_locations || die - - env -u BINPKG_COMPRESS -u PORTAGE_REPOSITORIES \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die - - env -u FEATURES -u PORTAGE_REPOSITORIES \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || die - - env -u BINPKG_FORMAT \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_format || die - fi - - # elog dir must exist to avoid logrotate error for bug #415911. - # This code runs in preinst in order to bypass the mapping of - # portage:portage to root:root which happens after src_install. - keepdir /var/log/portage/elog - # This is allowed to fail if the user/group are invalid for prefix users. - if chown portage:portage "${ED}"/var/log/portage{,/elog} 2>/dev/null ; then - chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog} - fi - - if has_version "<${CATEGORY}/${PN}-2.3.77"; then - elog "The emerge --autounmask option is now disabled by default, except for" - elog "portions of behavior which are controlled by the --autounmask-use and" - elog "--autounmask-license options. For backward compatibility, previous" - elog "behavior of --autounmask=y and --autounmask=n is entirely preserved." - elog "Users can get the old behavior simply by adding --autounmask to the" - elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this" - elog "change, see https://bugs.gentoo.org/658648." - fi -} - -pkg_postinst() { - # Warn about obsolete "enotice" script, bug #867010 - local bashrc=${EROOT}/etc/portage/profile/profile.bashrc - if [[ -e ${bashrc} ]] && grep -q enotice "${bashrc}"; then - eerror "Obsolete 'enotice' script detected!" - eerror "Please remove this from ${bashrc} to avoid problems." - eerror "See bug 867010 for more details." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.66.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.66.ebuild deleted file mode 100644 index 5958c3dd1f5..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.66.ebuild +++ /dev/null @@ -1,227 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( pypy3 python3_{10..13} ) -PYTHON_REQ_USE='bzip2(+),threads(+)' -TMPFILES_OPTIONAL=1 - -inherit meson linux-info python-r1 tmpfiles - -DESCRIPTION="The package management and distribution system for Gentoo" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/portage.git - https://github.com/gentoo/portage.git - " - inherit git-r3 -else - SRC_URI="https://gitweb.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -fi - -LICENSE="GPL-2" -SLOT="0" -IUSE="apidoc build doc gentoo-dev +ipc +native-extensions +rsync-verify selinux test xattr" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" -RESTRICT="!test? ( test )" - -BDEPEND=" - ${PYTHON_DEPS} - >=app-arch/tar-1.27 - >=dev-build/meson-1.3.0-r1 - >=sys-apps/sed-4.0.5 - sys-devel/patch - !build? ( $(python_gen_impl_dep 'ssl(+)') ) - apidoc? ( - dev-python/sphinx[${PYTHON_USEDEP}] - dev-python/sphinx-epytext[${PYTHON_USEDEP}] - ) - doc? ( - ~app-text/docbook-xml-dtd-4.4 - app-text/xmlto - ) - test? ( - dev-python/pytest-xdist[${PYTHON_USEDEP}] - dev-vcs/git - ) -" -# Require sandbox-2.2 for bug #288863. -# For whirlpool hash, require python[ssl] (bug #425046). -RDEPEND=" - ${PYTHON_DEPS} - acct-user/portage - >=app-arch/tar-1.27 - app-arch/zstd - >=app-misc/pax-utils-0.1.17 - dev-lang/python-exec:2 - >=sys-apps/baselayout-2.9 - >=sys-apps/findutils-4.9 - !build? ( - >=app-admin/eselect-1.2 - app-portage/getuto - >=app-shells/bash-5.0:0 - >=sec-keys/openpgp-keys-gentoo-release-20240703 - >=sys-apps/sed-4.0.5 - rsync-verify? ( - >=app-crypt/gnupg-2.2.4-r2[ssl(-)] - >=app-portage/gemato-14.5[${PYTHON_USEDEP}] - ) - ) - elibc_glibc? ( >=sys-apps/sandbox-2.2 ) - elibc_musl? ( >=sys-apps/sandbox-2.2 ) - kernel_linux? ( sys-apps/util-linux ) - selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] ) - xattr? ( kernel_linux? ( - >=sys-apps/install-xattr-0.3 - ) ) -" -# coreutils-6.4 rdep is for date format in emerge-webrsync #164532 -# NOTE: FEATURES=installsources requires debugedit and rsync -PDEPEND=" - !build? ( - >=net-misc/rsync-2.6.4 - >=sys-apps/coreutils-6.4 - >=sys-apps/file-5.44-r3 - ) -" - -pkg_pretend() { - local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS" - - check_extra_config -} - -src_prepare() { - default - - if use prefix-guest; then - sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \ - -e "s|^\\[gentoo\\]|[gentoo_prefix]|" \ - -e "s|^\(sync-uri = \).*|\\1rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix|" \ - -i cnf/repos.conf || die "sed failed" - fi -} - -src_configure() { - local code_only=false - python_foreach_impl my_src_configure -} - -my_src_configure() { - local emesonargs=( - -Dcode-only=${code_only} - -Deprefix="${EPREFIX}" - -Dportage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}" - -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" - $(meson_use doc) - $(meson_use apidoc) - $(meson_use gentoo-dev) - $(meson_use ipc) - $(meson_use xattr) - ) - - if use native-extensions && [[ "${EPYTHON}" != "pypy3" ]] ; then - emesonargs+=( -Dnative-extensions=true ) - else - emesonargs+=( -Dnative-extensions=false ) - fi - - if use build; then - emesonargs+=( -Drsync-verify=false ) - else - emesonargs+=( $(meson_use rsync-verify) ) - fi - - meson_src_configure - code_only=true -} - -src_compile() { - python_foreach_impl meson_src_compile -} - -src_test() { - local EPYTEST_XDIST=1 - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - python_foreach_impl epytest -} - -src_install() { - python_foreach_impl my_src_install - dotmpfiles "${FILESDIR}"/portage-{ccache,tmpdir}.conf - - local scripts - mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/{bin,sbin}/* || die) - python_replicate_script "${scripts[@]}" -} - -my_src_install() { - local pydirs=( - "${D}$(python_get_sitedir)" - "${ED}/usr/lib/portage/${EPYTHON}" - ) - - meson_src_install - python_fix_shebang "${pydirs[@]}" - python_optimize "${pydirs[@]}" -} - -pkg_preinst() { - if ! use build && [[ -z ${ROOT} ]]; then - python_setup - local sitedir=$(python_get_sitedir) - [[ -d ${D}${sitedir} ]] || die "${D}${sitedir}: No such directory" - env -u DISTDIR \ - -u PORTAGE_OVERRIDE_EPREFIX \ - -u PORTAGE_REPOSITORIES \ - -u PORTDIR \ - -u PORTDIR_OVERLAY \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - "${PYTHON}" -m portage._compat_upgrade.default_locations || die - - env -u BINPKG_COMPRESS -u PORTAGE_REPOSITORIES \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die - - env -u FEATURES -u PORTAGE_REPOSITORIES \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || die - - env -u BINPKG_FORMAT \ - PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ - "${PYTHON}" -m portage._compat_upgrade.binpkg_format || die - fi - - # elog dir must exist to avoid logrotate error for bug #415911. - # This code runs in preinst in order to bypass the mapping of - # portage:portage to root:root which happens after src_install. - keepdir /var/log/portage/elog - # This is allowed to fail if the user/group are invalid for prefix users. - if chown portage:portage "${ED}"/var/log/portage{,/elog} 2>/dev/null ; then - chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog} - fi - - if has_version "<${CATEGORY}/${PN}-2.3.77"; then - elog "The emerge --autounmask option is now disabled by default, except for" - elog "portions of behavior which are controlled by the --autounmask-use and" - elog "--autounmask-license options. For backward compatibility, previous" - elog "behavior of --autounmask=y and --autounmask=n is entirely preserved." - elog "Users can get the old behavior simply by adding --autounmask to the" - elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this" - elog "change, see https://bugs.gentoo.org/658648." - fi -} - -pkg_postinst() { - # Warn about obsolete "enotice" script, bug #867010 - local bashrc=${EROOT}/etc/portage/profile/profile.bashrc - if [[ -e ${bashrc} ]] && grep -q enotice "${bashrc}"; then - eerror "Obsolete 'enotice' script detected!" - eerror "Please remove this from ${bashrc} to avoid problems." - eerror "See bug 867010 for more details." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.0.ebuild index 89cf567ffe1..75f4dca4c12 100644 --- 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 @@ -18,7 +18,7 @@ else 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" + 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+" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/Manifest index b1bec55aa29..39b9dff69df 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/Manifest @@ -1,2 +1,3 @@ DIST texinfo-7.1.1.tar.xz 5572864 BLAKE2B 64dbd315e65d5b7cb0bb06c918e9924bb15a25a4bb26322db10b7ee98e9e6626b62592f8edd0ff016256f4a84837dabacb5278c3826e34fa3e080a5e8c0fb626 SHA512 05d605fba810f2939cab16ed5ddb341e22d397370648e6e0271c807fa573267e933c75ed7ae682c3c9cfecb568311a8df7abeb8c0556a94ef7169737d5b9c52a DIST texinfo-7.1.90.tar.xz 6694376 BLAKE2B b77771e39f8c73cea9c449c1f4268dcdb9603497b719dda036908122805f2f4f85507ee797d7d9d1f4c3e4de236a7be6837c2985d7f10960e347860d98c49a8c SHA512 ecf6359c256c3c203fac26d211b4fad738e5e7cb142005a73df22eb17888296eac17d4748551243fee1f1cf891e612deeeb85bc841c8b64acb99e7fa49d1c3ad +DIST texinfo-7.1.91.tar.xz 6709648 BLAKE2B 34c7e75ece31919c43292ab00eb2d7160dbdbd5726d63490ae37e17fd7b966e31de3631b66952e3e679bd6b33b5005e2e4799ea282ecf652f31269ae3c2876bd SHA512 8b5bb02c1a4ac77cf8ca59817bf227701a0560d04f5b0ed08e28ed509d66da3bb5b8df677b481d813a529c07a7ebe55b9f2c67ca3cb55678322f13462cc02a5b diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.1.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.1.1.ebuild index 081fa9dce9e..78b068309ad 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.1.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.1.1.ebuild @@ -70,6 +70,10 @@ src_prepare() { } src_configure() { + # https://lists.gnu.org/archive/html/bug-texinfo/2024-08/msg00020.html + # https://git.savannah.gnu.org/cgit/texinfo.git/commit/?id=7e8d0093b411729c8c570b25280bef6b55415594 + append-cflags -std=gnu17 + # Respect compiler and CPPFLAGS/CFLAGS/LDFLAGS for Perl extensions # bug #622576 local -x PERL_EXT_CC="$(tc-getCC)" PERL_EXT_CPPFLAGS="${CPPFLAGS}" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.1.91.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.1.91.ebuild new file mode 100644 index 00000000000..eda59950b46 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.1.91.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Note: if your package uses the texi2dvi utility, it must depend on the +# virtual/texi2dvi package to pull in all the right deps. The tool is not +# usable out-of-the-box because it requires the large tex packages. + +# Keep an eye on the release/$(ver_cut 1-2) branch upstream for backports. + +EAPI=8 + +inherit flag-o-matic toolchain-funcs + +DESCRIPTION="The GNU info program and utilities" +HOMEPAGE="https://www.gnu.org/software/texinfo/" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://git.savannah.gnu.org/git/texinfo.git" + REGEN_BDEPEND=" + >=dev-build/autoconf-2.62 + >=dev-build/automake-1.16 + dev-build/libtool + " +elif [[ $(ver_cut 3) -ge 90 || $(ver_cut 4) -ge 90 ]] ; then + SRC_URI="https://alpha.gnu.org/gnu/${PN}/${P}.tar.xz" + REGEN_BDEPEND="" +else + SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + REGEN_BDEPEND="" +fi + +LICENSE="GPL-3+" +SLOT="0" +IUSE="nls +standalone static" + +RDEPEND=" + >=sys-libs/ncurses-5.2-r2:= + virtual/perl-Data-Dumper + virtual/perl-Encode + virtual/perl-Unicode-Collate + standalone? ( >=dev-lang/perl-5.8.1 ) + !standalone? ( + >=dev-lang/perl-5.8.1:= + dev-libs/libunistring:= + ) + nls? ( virtual/libintl ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + ${REGEN_BDEPEND} + nls? ( >=sys-devel/gettext-0.19.6 ) +" + +src_prepare() { + default + + if [[ ${PV} == 9999 ]]; then + ./autogen.sh || die + fi + + # Needed if a patch touches install-info.c + #touch man/install-info.1 || die + + if use prefix ; then + sed -i -e '1c\#!/usr/bin/env sh' util/texi2dvi util/texi2pdf || die + touch {doc,man}/{texi2dvi,texi2pdf,pdftexi2dvi}.1 || die + fi +} + +src_configure() { + # Respect compiler and CPPFLAGS/CFLAGS/LDFLAGS for Perl extensions + # bug #622576 + local -x PERL_EXT_CC="$(tc-getCC)" PERL_EXT_CPPFLAGS="${CPPFLAGS}" + local -x PERL_EXT_CFLAGS="${CFLAGS}" PERL_EXT_LDFLAGS="${LDFLAGS}" + + use static && append-ldflags -static + + # TODO: + # --with-external-Unicode-EastAsianWidth + # --with-external-Text-Unidecode + # + # Also, 7.0.91 seemed to introduce a included-libunistring w/ USE=-standalone + # but it doesn't seem to do anything? + local myeconfargs=( + --cache-file="${S}"/config.cache + $(use_enable nls) + $(use_enable !standalone perl-xs) + ) + + econf "${myeconfargs[@]}" +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/Manifest index 3914e85a848..6a2785cfee6 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/Manifest @@ -1,2 +1,3 @@ DIST usbutils-016.tar.xz 169000 BLAKE2B 2f3af61e5a7abf48cdf0a4aebc901ca1570007b54d11ae74572e16bdeb2d8e73844d76af54bd812d6d4b84ddaf6e956132ecc9a8a2849a7bffc0643e29115a49 SHA512 4483038bf91c056cd2977f5e7f449c0a62d9152d6f5d64ab7bde438ab9c1c56fe524ba10b35781c2828edd0fe89379dbaed78fa7ffe78903cae0c4e3c460f9a0 DIST usbutils-017.tar.xz 168820 BLAKE2B 868c646ed6d38a38b9bd3ab85ba3a5e9362a97e476aeed6576c1b175caaf4ee688cb2c33756f02c9bf0aef9e7d58657331fc1c3b3314d86145b3d4f37124537e SHA512 eaebbc82eee4d940898f7a8de95ca49846c7c964e65c3d866b38735f8f3c8ccfed2b3a536bf2ef39a835a40a34c2273ac4d82b1012d0c693d4863cff14870d95 +DIST usbutils-018.tar.xz 120168 BLAKE2B 030f45afd5867ee38c8284a0741d1de63653a98746bfef42281390c5bdefbbb99c318d708e88ea2e28810d519d735da3103fe438befa889fc9b5ae9e21200992 SHA512 4f76c7a328746e17892c31d69cbd9a560c4384877e18d80076cef344a25b71b33387d803c98a9c6867b357a61e1a8a1a630884afe32128c3b6393dc186f216c8 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/usbutils-018.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/usbutils-018.ebuild new file mode 100644 index 00000000000..d26898c292e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/usbutils-018.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} ) +inherit meson python-single-r1 + +DESCRIPTION="USB enumeration utilities" +HOMEPAGE=" + https://www.kernel.org/pub/linux/utils/usb/usbutils/ + https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usbutils.git/ +" +SRC_URI="https://www.kernel.org/pub/linux/utils/usb/${PN}/${P}.tar.xz" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="python" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +DEPEND=" + virtual/libusb:1= + virtual/libudev:= +" +RDEPEND=" + ${DEPEND} + python? ( + ${PYTHON_DEPS} + sys-apps/hwdata + ) +" +BDEPEND=" + virtual/pkgconfig + python? ( ${PYTHON_DEPS} ) +" + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +src_prepare() { + default + + use python && python_fix_shebang lsusb.py +} + +src_install() { + meson_src_install + + if ! use python ; then + rm -f "${ED}"/usr/bin/lsusb.py || die + fi +} 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.40.2.ebuild index c7517aac4cf..966071d7eff 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.40.2.ebuild @@ -23,7 +23,7 @@ else inherit verify-sig if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos" + KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos" fi SRC_URI="https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz" diff --git a/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-0.9.0-r4.ebuild b/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-0.9.0-r4.ebuild index d4984e9ed1d..079991be508 100644 --- a/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-0.9.0-r4.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-0.9.0-r4.ebuild @@ -10,7 +10,7 @@ HOMEPAGE="https://github.com/jthornber/thin-provisioning-tools" if [[ ${PV} != *9999 ]]; then SRC_URI="https://github.com/jthornber/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux" else inherit git-r3 EGIT_REPO_URI='https://github.com/jthornber/thin-provisioning-tools.git' diff --git a/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.14-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.14-r2.ebuild similarity index 93% rename from sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.14-r1.ebuild rename to sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.14-r2.ebuild index b7d67783148..eb38acb7a12 100644 --- a/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.14-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.14-r2.ebuild @@ -149,7 +149,7 @@ declare -A GIT_CRATES=( LLVM_COMPAT=( {17..18} ) -inherit llvm-r1 cargo +inherit cargo llvm-r1 DESCRIPTION="A suite of tools for thin provisioning on Linux" HOMEPAGE="https://github.com/jthornber/thin-provisioning-tools" @@ -162,7 +162,7 @@ else https://github.com/jthornber/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz ${CARGO_CRATE_URIS} " - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" + KEYWORDS="amd64 ~arm ~arm64 ~loong ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux" fi LICENSE="GPL-3" @@ -171,6 +171,12 @@ LICENSE+=" Apache-2.0 BSD GPL-3 ISC MIT MPL-2.0 Unicode-DFS-2016" SLOT="0" IUSE="io-uring" +RDEPEND="virtual/libudev:=" +# libdevmapper.h needed for devicemapper-sys crate +DEPEND=" + ${RDEPEND} + sys-fs/lvm2 +" # Needed for bindgen BDEPEND=" $(llvm_gen_dep ' @@ -194,6 +200,11 @@ PATCHES=( "${FILESDIR}/${PN}-1.0.6-build-with-cargo.patch" ) +pkg_setup() { + llvm-r1_pkg_setup + rust_pkg_setup +} + src_unpack() { if [[ ${PV} == 9999 ]] ; then git-r3_src_unpack diff --git a/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.1.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.1.0-r2.ebuild index 226c8272ce4..81f0144b427 100644 --- a/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.1.0-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.1.0-r2.ebuild @@ -150,7 +150,7 @@ declare -A GIT_CRATES=( LLVM_COMPAT=( {17..18} ) -inherit llvm-r1 cargo +inherit cargo llvm-r1 DESCRIPTION="A suite of tools for thin provisioning on Linux" HOMEPAGE="https://github.com/jthornber/thin-provisioning-tools" @@ -163,7 +163,7 @@ else https://github.com/jthornber/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz ${CARGO_CRATE_URIS} " - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" + KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux" fi LICENSE="GPL-3" @@ -201,6 +201,11 @@ PATCHES=( "${FILESDIR}/${PN}-1.0.6-build-with-cargo.patch" ) +pkg_setup() { + llvm-r1_pkg_setup + rust_pkg_setup +} + src_unpack() { if [[ ${PV} == 9999 ]] ; then git-r3_src_unpack diff --git a/sdk_container/src/third_party/portage-stable/sys-boot/gnu-efi/Manifest b/sdk_container/src/third_party/portage-stable/sys-boot/gnu-efi/Manifest index 8399a7affcd..2947d3d6699 100644 --- a/sdk_container/src/third_party/portage-stable/sys-boot/gnu-efi/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-boot/gnu-efi/Manifest @@ -1,3 +1,5 @@ DIST gnu-efi-3.0.15.tar.bz2 159399 BLAKE2B 0df93d8cacfa1e6d4b7731e32287d4386da9375c5e5c5847df8a29c99d70f5c24b14abc5e44ab9d0a39a6ec96682eb2b5e84d81a5a142d44a50a522a4ae0e3c2 SHA512 64d408b6d115bdc6eebae12fbd6cd907ed5f847f54e506c1e8f8ea5de38a95cf6fac66ab1009bd1d0bd2d54ad45ad598d29bcc303926a5899bf5cc25448cbb2f DIST gnu-efi-3.0.17.tar.bz2 165568 BLAKE2B 27f8171b411a6a8a138d44d91c7e4e4291aa399562825d51a398913572119482ffeb303d7508ae13eacd2cd10b8f5098405ab16eb56243587efe93235f661285 SHA512 0893ca234272584f889b1ae1c75341a9ceee60acfd32765daa5d704191ba00450536a287b949304c6d055d1bf125cc29e24fc41df8e5230e0da4f9d944876512 DIST gnu-efi-3.0.18.tar.bz2 167567 BLAKE2B e080fa4c57a281452a6473304871304d1b5c30d42ee728b4c0c084258ed2f6f2099c068ec5841cee81ecf664dd658dee3b94d68324ebaa498cb49cec4f7f7df9 SHA512 39f9fa14b880441a94a04400ff8850efdd9474929e5501dfd05af06e7747b4d0f7cb742ac811c7026cf52d00508efb73018be4d61d63a1211de0cd931cbc473d +DIST gnu-efi-3.0.19.tar.gz 218588 BLAKE2B 78db87904e644406ce2eb1a0ef0f325e7ad0f004dd56199e319985c5d035b4755d545c1a6bcf749da08c7670132de28a3e53ba059956b841034c6b059e39042b SHA512 78a79f51bd271043edbf534427d8fbba3d8099e831a9643019899453e8363ebd4d43f6e5448cdde31d43a6bdb94ec32e73425138bfb614617b8886df90fc1665 +DIST gnu-efi-4.0.0.tar.gz 228852 BLAKE2B 30a22785b43b586596e9b4cfd281815715529185fbfdb800947ee08a94b3dac80ee13e9f2a8f5cf4acc46b7844cef9e92de97e97801d085249dce3afb2b0fcf0 SHA512 737fda41a45a63ab652f3e8dd5c035bc40dd66e839218c33478fe2ce81346f004b1bed79a5ec29cc282f0d699ad21256e0915482a3fa04b880dea21cae9e2b7f diff --git a/sdk_container/src/third_party/portage-stable/sys-boot/gnu-efi/files/gnu-efi-4.0.0-remove-linux-headers.patch b/sdk_container/src/third_party/portage-stable/sys-boot/gnu-efi/files/gnu-efi-4.0.0-remove-linux-headers.patch new file mode 100644 index 00000000000..858200e3010 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-boot/gnu-efi/files/gnu-efi-4.0.0-remove-linux-headers.patch @@ -0,0 +1,14 @@ +https://bugs.gentoo.org/888829 + +--- a/apps/Makefile ++++ b/apps/Makefile +@@ -41,9 +41,7 @@ + + include $(SRCDIR)/../Make.defaults + +-LINUX_HEADERS = /usr/src/sys/build + APPSDIR = $(LIBDIR)/gnuefi/apps +-CPPFLAGS += -D__KERNEL__ -I$(LINUX_HEADERS)/include + + ifneq ($(HAVE_EFI_OBJCOPY),) + ifeq ($(SYSTEM_HAS_EFI_OBJCOPY),0) diff --git a/sdk_container/src/third_party/portage-stable/sys-boot/gnu-efi/gnu-efi-3.0.19.ebuild b/sdk_container/src/third_party/portage-stable/sys-boot/gnu-efi/gnu-efi-3.0.19.ebuild new file mode 100644 index 00000000000..ad0bc6c1ac3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-boot/gnu-efi/gnu-efi-3.0.19.ebuild @@ -0,0 +1,143 @@ +# Copyright 2004-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic toolchain-funcs + +DESCRIPTION="Library for build EFI Applications" +HOMEPAGE="https://sourceforge.net/projects/gnu-efi/" +SRC_URI="https://github.com/ncroxon/gnu-efi/archive/${PV}.tar.gz -> ${P}.tar.gz" + +# inc/, lib/ dirs (README.efilib) +# - BSD-2 +# gnuefi dir: +# - BSD (3-cluase): crt0-efi-ia32.S +# - GPL-2+ : setjmp_ia32.S +LICENSE="GPL-2+ BSD BSD-2" +SLOT="0" +KEYWORDS="-* ~amd64 ~arm ~arm64 ~riscv ~x86" +IUSE="abi_x86_32 abi_x86_64 custom-cflags" +REQUIRED_USE=" + amd64? ( || ( abi_x86_32 abi_x86_64 ) ) + x86? ( || ( abi_x86_32 abi_x86_64 ) ) +" + +# for ld.bfd and objcopy +BDEPEND="sys-devel/binutils" + +# These objects get run early boot (i.e. not inside of Linux), +# so doing these QA checks on them doesn't make sense. +QA_EXECSTACK="usr/*/lib*efi.a:* usr/*/crt*.o" +RESTRICT="strip" + +PATCHES=( + "${FILESDIR}"/${PN}-3.0.18-clang.patch + "${FILESDIR}"/${PN}-3.0.18-remove-linux-headers.patch +) + +check_and_set_objcopy() { + if [[ ${MERGE_TYPE} != "binary" ]]; then + # bug #931792 + # llvm-objcopy does not support EFI target, try to use binutils objcopy or fail + tc-export OBJCOPY + OBJCOPY="${OBJCOPY/llvm-/}" + # Test OBJCOPY to see if it supports EFI targets, and return if it does + LC_ALL=C "${OBJCOPY}" --help | grep -q '\ /dev/null | grep ^install: | cut -f2 -d' ')/include + elif tc-is-clang; then + CPPINCLUDEDIR=$(LC_ALL=C ${CC} -print-resource-dir 2> /dev/null)/include + fi + append-cflags "-nostdinc -isystem ${CPPINCLUDEDIR} -isystem ${ESYSROOT}/usr/include" + + if use amd64 || use x86; then + use abi_x86_32 && CHOST=i686 ABI=x86 efimake + use abi_x86_64 && CHOST=x86_64 ABI=amd64 efimake + else + efimake + fi +} + +src_install() { + if use amd64 || use x86; then + use abi_x86_32 && CHOST=i686 ABI=x86 efimake INSTALLROOT="${D}" install + use abi_x86_64 && CHOST=x86_64 ABI=amd64 efimake INSTALLROOT="${D}" install + else + efimake INSTALLROOT="${D}" install + fi + einstalldocs +} diff --git a/sdk_container/src/third_party/portage-stable/sys-boot/gnu-efi/gnu-efi-4.0.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-boot/gnu-efi/gnu-efi-4.0.0.ebuild new file mode 100644 index 00000000000..991d495bd8d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-boot/gnu-efi/gnu-efi-4.0.0.ebuild @@ -0,0 +1,144 @@ +# Copyright 2004-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic toolchain-funcs + +DESCRIPTION="Library for build EFI Applications" +HOMEPAGE="https://sourceforge.net/projects/gnu-efi/" +SRC_URI="https://github.com/ncroxon/gnu-efi/archive/${PV}.tar.gz -> ${P}.tar.gz" + +# inc/, lib/ dirs (README.efilib) +# - BSD-2 +# gnuefi dir: +# - BSD (3-cluase): crt0-efi-ia32.S +# - GPL-2+ : setjmp_ia32.S +LICENSE="GPL-2+ BSD BSD-2" +SLOT="0" +KEYWORDS="-* ~amd64 ~arm ~arm64 ~riscv ~x86" +IUSE="abi_x86_32 abi_x86_64 custom-cflags" +REQUIRED_USE=" + amd64? ( || ( abi_x86_32 abi_x86_64 ) ) + x86? ( || ( abi_x86_32 abi_x86_64 ) ) +" + +# for ld.bfd and objcopy +BDEPEND="sys-devel/binutils" + +# These objects get run early boot (i.e. not inside of Linux), +# so doing these QA checks on them doesn't make sense. +QA_EXECSTACK="usr/*/lib*efi.a:* usr/*/crt*.o" +RESTRICT="strip" + +PATCHES=( + "${FILESDIR}"/${PN}-4.0.0-remove-linux-headers.patch +) + +DOCS="README* SECURITY* docs/*" + +check_and_set_objcopy() { + if [[ ${MERGE_TYPE} != "binary" ]]; then + # bug #931792 + # llvm-objcopy does not support EFI target, try to use binutils objcopy or fail + tc-export OBJCOPY + OBJCOPY="${OBJCOPY/llvm-/}" + # Test OBJCOPY to see if it supports EFI targets, and return if it does + LC_ALL=C "${OBJCOPY}" --help | grep -q '\ /dev/null | grep ^install: | cut -f2 -d' ')/include + elif tc-is-clang; then + CPPINCLUDEDIR=$(LC_ALL=C ${CC} -print-resource-dir 2> /dev/null)/include + fi + append-cflags "-nostdinc -isystem ${CPPINCLUDEDIR} -isystem ${ESYSROOT}/usr/include" + + if use amd64 || use x86; then + use abi_x86_32 && CHOST=i686 ABI=x86 efimake + use abi_x86_64 && CHOST=x86_64 ABI=amd64 efimake + else + efimake + fi +} + +src_install() { + if use amd64 || use x86; then + use abi_x86_32 && CHOST=i686 ABI=x86 efimake INSTALLROOT="${D}" install + use abi_x86_64 && CHOST=x86_64 ABI=amd64 efimake INSTALLROOT="${D}" install + else + efimake INSTALLROOT="${D}" install + fi + einstalldocs +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.5.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.5.2.ebuild index 5eac04325a1..b010a5f45ec 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.5.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.5.2.ebuild @@ -8,7 +8,7 @@ if [[ ${PV} == 9999 ]]; then inherit git-r3 else SRC_URI="https://dev.gentoo.org/~dilfridge/distfiles/${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="Utility to change the binutils version being used" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.32-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.32-r2.ebuild index 3b4528435b0..30df41aa33d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.32-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.32-r2.ebuild @@ -151,6 +151,8 @@ src_configure() { # Keep things sane strip-flags + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 append-ldflags $(test-flags-CCLD -Wl,--undefined-version) local x diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.33.1-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.33.1-r1.ebuild index 573a527570c..245e22ea045 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.33.1-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.33.1-r1.ebuild @@ -144,6 +144,8 @@ src_configure() { # Keep things sane strip-flags + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 append-ldflags $(test-flags-CCLD -Wl,--undefined-version) local x diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.34-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.34-r2.ebuild index 48ce464c329..12198ae2a21 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.34-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.34-r2.ebuild @@ -141,6 +141,8 @@ src_configure() { # Keep things sane strip-flags + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 append-ldflags $(test-flags-CCLD -Wl,--undefined-version) local x diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.35.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.35.2.ebuild index ffef3022e99..6f2986251b9 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.35.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.35.2.ebuild @@ -158,6 +158,8 @@ src_configure() { # Keep things sane strip-flags + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 append-ldflags $(test-flags-CCLD -Wl,--undefined-version) local x diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.36.1-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.36.1-r2.ebuild index 16544c47a23..2ff454f94f4 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.36.1-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.36.1-r2.ebuild @@ -153,6 +153,8 @@ src_configure() { # Keep things sane strip-flags + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 append-ldflags $(test-flags-CCLD -Wl,--undefined-version) local x diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.37_p1-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.37_p1-r2.ebuild index 884eaa5ad13..e2f0c616eb1 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.37_p1-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.37_p1-r2.ebuild @@ -159,6 +159,8 @@ src_configure() { # Keep things sane strip-flags + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 append-ldflags $(test-flags-CCLD -Wl,--undefined-version) use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.38-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.38-r2.ebuild index 7b86a922666..d3b1576fffa 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.38-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.38-r2.ebuild @@ -164,6 +164,8 @@ src_configure() { # Keep things sane strip-flags + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 append-ldflags $(test-flags-CCLD -Wl,--undefined-version) use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.39-r5.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.39-r5.ebuild index 25b4c34511a..dae998b28ac 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.39-r5.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.39-r5.ebuild @@ -160,6 +160,8 @@ src_configure() { # Keep things sane strip-flags + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 append-ldflags $(test-flags-CCLD -Wl,--undefined-version) use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.40-r9.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.40-r9.ebuild index 3157e859ad3..a619b246dff 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.40-r9.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.40-r9.ebuild @@ -172,6 +172,8 @@ src_configure() { use cet && filter-flags -mindirect-branch -mindirect-branch=* use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 append-ldflags $(test-flags-CCLD -Wl,--undefined-version) local x diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.41-r5.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.41-r5.ebuild index 93bf607238e..fe1544cdd34 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.41-r5.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.41-r5.ebuild @@ -173,6 +173,8 @@ src_configure() { use cet && filter-flags -mindirect-branch -mindirect-branch=* use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 append-ldflags $(test-flags-CCLD -Wl,--undefined-version) local x diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.42-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.42-r2.ebuild index 6e5766f0d3b..8c77bded00d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.42-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.42-r2.ebuild @@ -177,6 +177,8 @@ src_configure() { use cet && filter-flags -mindirect-branch -mindirect-branch=* use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 append-ldflags $(test-flags-CCLD -Wl,--undefined-version) local x diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.43-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.43-r1.ebuild index d55fbb13880..c632b993e7f 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.43-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.43-r1.ebuild @@ -185,6 +185,9 @@ src_configure() { use cet && filter-flags -mindirect-branch -mindirect-branch=* use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 + local x echo for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.43-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.43-r2.ebuild index 18d5aa85e3d..9224db9d995 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.43-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.43-r2.ebuild @@ -185,6 +185,9 @@ src_configure() { use cet && filter-flags -mindirect-branch -mindirect-branch=* use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 + local x echo for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.43.9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.43.9999.ebuild index 06e1d7caa39..7a666a60c36 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.43.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.43.9999.ebuild @@ -185,6 +185,9 @@ src_configure() { use cet && filter-flags -mindirect-branch -mindirect-branch=* use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 + local x echo for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/bison/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-devel/bison/metadata.xml index 2e9f3654b40..559217028b1 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/bison/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-devel/bison/metadata.xml @@ -8,5 +8,6 @@ cpe:/a:gnu:bison akimd/bison + bison 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 32515aca513..b8f5288259a 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 @@ -5,30 +5,29 @@ DIST gcc-11.4.0-musl-patches-2.tar.xz 4308 BLAKE2B a2335e155fc57816fed822a648e0e DIST gcc-11.4.0-patches-12.tar.xz 13824 BLAKE2B e4df9e0dc9512882022aaf325ebf65c540169454c91dd31f913c6f57f6eb291c79ae919671b53db1549799d4a70c09298bf45ed82ad05eb1f961443cc958369d SHA512 87fed0c3f8e28c9f702443db58350bb615110b27ebe334b5de2ea60678e2548c56cd75cffade210d69634e2ac0a9311f5100ddb45d97645aa76d5688bc421a61 DIST gcc-11.5.0.tar.xz 82399864 BLAKE2B f4a61faad32aac9e9cb553c1a1a011df0a057f6e2cac92a13cc7e285d08191dd4a117f41a8faac2359c0e2a16f954c7fef354dda9df8c63bff1c5cefda82602c SHA512 88f17d5a5e69eeb53aaf0a9bc9daab1c4e501d145b388c5485ebeb2cc36178fbb2d3e49ebef4a8c007a05e88471a06b97cf9b08870478249f77fbfa3d4abd9a8 DIST gcc-12-20241031.tar.xz 79916212 BLAKE2B 924acf7048858a5e45fb835e405b7517fd0029e0fd3a565a34c9be9828360449568110bf0844bd29c7de214d62641ec8e8f10211d69560741311fbd0127041b1 SHA512 412b5f24d99a03c045e6ad083be142fcae2e28629ccd755c0eadef40524bd9e8b83ca605112d405cd911cf14a9fc2939449cc8a9403525bd82168aaba66fbc0f -DIST gcc-12-20241107.tar.xz 79905628 BLAKE2B ba8a3e329a6a2a85d8e3d35bb5a7d2f92535266439a0f2c4242b259bf51d7d40291972f813b5aecd2a3a13f1e02841a782a68f604c1839a63970bf672b773bd2 SHA512 a66951b01d064da7a0c2c83db692af466338c2e11b2c50dbbd952ef1868ed30e0cdb883b5ed4ecf3e1246187181fcc457312a2cf6a9ba307f91a767a8b0c7a22 +DIST gcc-12-20241114.tar.xz 79902476 BLAKE2B 0d72464116862319513330c00d680658fd70a3a1b38c88defa0f087651bcff050ea128b15c95de06f2d2aa89488f09347cebbc4d13d3438b75f7f88ba1afa2ad SHA512 dc0af29c2454a7bcdd1b52b61de13845dc49fef3f86d87e0eea876dc5a55d93924e3af8cad58fd89725094520290c3183a4385f988aa556d658225ceb15a37ff +DIST gcc-12-20241121.tar.xz 79909252 BLAKE2B c0ee7abfa350dd8bf3bb763b167eb8d869d0fdf142dc2a06ec447bee6c5721c26f3492d65d383080e2a1fba69a29b72adda68e7c2d3686bd730fd1b7e4f98c47 SHA512 3338652173254f16f7867c6dd2cdb25b20506ce94cd725dc60c630bfe04fad007e2e7b169d0018d7610f57527ed4aa29c191223edc666a9c2006d21ee508a4c2 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.tar.xz 83377372 BLAKE2B 0d5aa9995bf53fa2dc976a846240cfb8fafd125ad6c54f45dc9d770215eae3e9ea0db82a9a4f79c51b4d5f8461a1d730c17db6841bc31bd96dba11d9ed7544ae SHA512 5bd29402cad2deb5d9388d0236c7146414d77e5b8d5f1c6c941c7a1f47691c3389f08656d5f6e8e2d6717bf2c81f018d326f632fb468f42925b40bd217fc4853 DIST gcc-13-20240614.tar.xz 84463660 BLAKE2B a1b551ff633c31d6972fed173f248ba5f6696eb1566801e180b78a7c7e20933b1aaae40839b4f1529d61166de55125395d4f9a812511c088e73f975bf1d2167f SHA512 1a543ddfb56e793367a43895a7ce4f97daeca6ffd5234ce50e8a7ae0f8db1071e01bdd653fda40d00eb7a680faead8f1d8d1295f983086a33a4c75e4affa2ea5 DIST gcc-13-20241025.tar.xz 84501292 BLAKE2B f5ba0a429a43d1936fe717850c81c847c90670204de33261fd476396336a1e1cc34c55d5487ac1871a4019c8a3aff59b6c8fdea3f1b7a161a73dbec8679c4d3a SHA512 a921afd451cdad55ee68bdb36861ca0c525de038d247f6e0ff59dbbdb3b41f03d139e7c2939a0999feb8b2f820f9267171a2c657683df0c86b38f0cb379eb0af -DIST gcc-13-20241101.tar.xz 84502916 BLAKE2B 61c715930fca216b7e4d1a8458ba9ee3b02e532bc8556853d5827e27bae70019a426c56d17bda4974282d4c47c5e860d18435d4ec8701986d65d43d69115560c SHA512 c65531986c7b3887ce9ca97a7b5091ba04dc824799832388fc23168318cb1683b5d1575ea5e723c8731a3ca25f08af64fab55e6dd912d9ac4df2d4258fdde948 -DIST gcc-13-20241108.tar.xz 84499992 BLAKE2B 0d66291dbb5aa35d206ceced1a5e7ffc40c7cb1a2fe50cbbe0d49f82287fa6b607f83cdbc0529c48f64ac1fbd932d9bc2d89db8bc7049e9815266d4aa745ce3b SHA512 95d07285cbafb6f941bf41f691f0f3b9e3acb7459787387c8c53490b18315b0d4aee70a2c4911fe1d81dcdbe3582e65e23cce326a56eb07bccb79c67cc3ea196 +DIST gcc-13-20241115.tar.xz 84481880 BLAKE2B 451c7f74a95889683944617c7d38daa77db9afd7e7877bfa6a380a148b12e2aa813fbda73d6866f207d27600c265b44ce471f9f6bfef40eda2a2e56710820d14 SHA512 db0db01cd3918ec563037c70d3e67243c7c38c3878574047cd7a0aab1e7f13476940b2af4d54f1a20416d9e4e02f79a0722da361ce45ed34244f205cbedb1d37 +DIST gcc-13-20241122.tar.xz 84515040 BLAKE2B 50f64a0d202cbcf27e1c3e31e9fa5eb39238d1247e7b0104ff45d653f7edbffd51404f0bdc1ae9abc2091398c31326cde680e9beb265e54318c92ee99db8b5bd SHA512 f6a304f5c500c28b237a3e423a420689c8c683dc7267040704c639fdd62e0a93a8be25f933b772238aead38b643ae08e4ac275a96212cf132d3141808acab5b0 DIST gcc-13.2.0-musl-patches-2.tar.xz 5292 BLAKE2B c057d6574d03c05854edaa9f3fd40e9149662b04f3ac7a7db3eb078d73a7b535726d1bf52e5b12736dedb2f9898ad731f2e48a6421fcfbf7b90f929dee072fcb SHA512 a691da0c87c443a5e9d23731f4005f27871c5b12bc9102873ffa24d374aa7b9fbd187c4f5635d23fa9ffb17e351e76173c2d3fdf40646e355c4cb314b538de69 DIST gcc-13.2.0-patches-16.tar.xz 44792 BLAKE2B 0b6b584d68e69685638695596b780249ca0119ad362747a82d886fd10f77ceb05d02e033e906a090c67f44b1977f40df6a95206d81a32dd15e2f5413c6c92496 SHA512 324d9e63d16c35d55edde20de049162c01b0d487b4548d06c49f0da04a761ec255bc5e020cc2e7f60d12f5d129768afdcf7c86a59126f71f388ab375c34be6de DIST gcc-13.2.0-patches-3.tar.xz 30956 BLAKE2B 29ce043b46645640ca1e983397af3e158588ad87575f0bc59451ea4a7dd5e3bb5b190ed031de6a22cd790d423ba111e95d222187dd09985dceb12db9f0a2d907 SHA512 4ffecae7be320124ad0c4e71e39e142b7aa8db0e70b5f486f491d7a33ea31efc6464c6abeea77df02a8bd5cf81f08225d625c8af5c27f9afa32c0d7d989f7a3c DIST gcc-13.2.0.tar.xz 87858592 BLAKE2B 0034b29d3d6cc05821f0c4253ce077805943aff7b370729dd203bda57d89c107edd657eeddc2fb1e69ea15c7b0323b961f46516c7f4af89a3ccf7fea84701be2 SHA512 d99e4826a70db04504467e349e9fbaedaa5870766cda7c5cab50cdebedc4be755ebca5b789e1232a34a20be1a0b60097de9280efe47bdb71c73251e30b0862a2 DIST gcc-13.3.0-patches-1.tar.xz 45084 BLAKE2B 4a4b2db25de2f17115e08b50d67449bb16de3296e78c165e2540beda7f84c28f6f3e909856c8b864b378f5e050ed149a60adc580faaf08351b81f4c460656493 SHA512 20e820a3e61f792d380651bb2e40b9c18ce7085962bd9302488ebdad1fff41d3742aea40d712daa5862276ca16d0081de722bf1191e86dcf065af5084271f632 -DIST gcc-14-20241026.tar.xz 88183956 BLAKE2B 9b42070be3235fb78f436f6e4b2b9708f77ebd383906d2c6f6d1eef186351c0b4e53e6d0d631f4432f94c2e09a67f0da1c78bd8a3fb5ae94710a24c7422b8e42 SHA512 18ff215b02e18ea7d49fad5437a7e65166278ea78b35499d4402569c18790d334df9c0b54664460182f74bffa92b7faaa71728956e1d5e1c7be57f8a1045fb7f -DIST gcc-14-20241102.tar.xz 88166448 BLAKE2B 1b56e6cc06d1163ca830d1aad307fce7ba8761a740964ea8b9c5af2a291b1661b1b7f8e7fec7dd4ec226b765063fcb87f82f71e494d0aed0004591c58df2d3c9 SHA512 2e6d3825df5d2e513ef8582876405c1cf4396094fef65c4e2af0a6d59fc6f36a0e960a33a75c549ad111f3174c61302e391c719e32f1803953c0b0d7ae3959d5 -DIST gcc-14-20241109.tar.xz 88149664 BLAKE2B 126e58566d935798f01b173c50949fa92454e57c8edcf3bd5da5871dbb7dba7102d40938be6e47f566bfcfe602274f233baf5aa38b6ad0ba0d6a6a56b272bc46 SHA512 c900157c3729342741d281da28753213c82247bbe957c25e8a185370d787fc2765bebebb998832a820b05f352e3e4de04d36b4a4b49310567147820188c0e91b +DIST gcc-14-20241116.tar.xz 88185956 BLAKE2B 490972004d93d8f44f8d5751674105fca8c37aaaf6a87f42d665e3a2f8b1091e31ddbe827c6b6c54951feb0e45fa180c91d805fb82c7de584c01081bb4c1d529 SHA512 65b85c23083fd07e4d216480f1e0d2e1343bcef38dfdd181f6d0086103a626736d299387e1b06f634155d32b45678d72587b340d85c57c3b5ed9d7f20613edff +DIST gcc-14-20241123.tar.xz 88234244 BLAKE2B 3975c6f6e5adbf8506136c58678a9d136386f6c89f54312ebdcd60b2709fc8502b0969e4f3e80f189ba7934f47bd0738be2d5e6d68a40ea955d5ee7c775ee530 SHA512 bf7d416382c697410cf9358ecfc5c8ff2045f8e3f8b4e5fc41e02fe211aba057c8dc4c660b05b3a57bc113845c85332d588b67dff30e05efeb5d756d401eb8c1 DIST gcc-14.1.0-musl-patches-1.tar.xz 3600 BLAKE2B 4cd920b7ca1f122cae806707564d8e45bfd48e78c88788a12a301f6068b5a5f335d8885e67479ac536c66aeaa81f2ecb7240ae56e9fc821a7246ab66b453711f SHA512 61c48d90a55dfc2129d96aee69d939d6a89f6407f69f7bd12c1a619f28989f471fd219d731958f8e62b0fd650c32300f0ad8dc06d5df23d9fc8c1a77fe210c25 DIST gcc-14.2.0-patches-3.tar.xz 13920 BLAKE2B 5b3efa54671581d97ae664e73629f247c776d84eea0b10f8d3223502582f1d1086fff86a6cde6c35b6b43d134af4dad3135d3de5531cfccb320a7fc884ab39ef SHA512 d47549e902055414142f650c7098f029410549741542553b1d0c0519f046a958561f92552e44f59663a7645d42316af5dab1462f54f50f2205257be6744c2fce -DIST gcc-15-20241027.tar.xz 89784028 BLAKE2B 75f48fac50a19443289e36bee119b1535ca842f0300597ad1f6fbccbe2754cb5b4444f263c7fc3a3ca699fa0179606849c1852849c48faf875082a1dc08ee183 SHA512 7248f040a980062167d5d7518bf212a5d9cd78a3f9aec8d4983dc3d2d2735affcac4d1eff5c38081ec10c7119d85ba3f7dd39327225b1de8b7a95a13268c60ee -DIST gcc-15-20241103.tar.xz 89813036 BLAKE2B 4fd6cd5d8d19f6545ebe1a193fc4464eba0d114126db8e282ed92196e71f84eb2974133a2dd93ab78c8d3f2370e52d4646eefc27bd5962c6e242c8776ec06b64 SHA512 cffb953576efe3ee2afaa11bdde403bb038da4ff4114f19bcc931540546a4f2bfa7148f9f6c989b40814393faecb1bfb0cdac475372bb6ef8de3924fed984c74 -DIST gcc-15-20241110.tar.xz 89853956 BLAKE2B 8fab1b5fc2be9d81f6b75329d20e338264dee82e4cd11152dcaadad07e50e52422a644c716bedea5aaf9c8427c1955f259a1d76dcf0dd00d8f4ca81e4b6b631a SHA512 20493ad0c75dedfc3c145f9ba01ad718e89b5b76a7c8b16df9cc624d4a9041a337d3bde6856dc7764cec23919d437e6d77ad40865b5bcd9d6239ca4cc353d530 +DIST gcc-15-20241117.tar.xz 90065532 BLAKE2B 22ffd82f77871df3c90667d3fbc08ff721586c851aea6e79a34bf065468307c132d62581b7cceaf9b2bc6cc54be8d6ec1dbde241e01454a343e2c48c804a4cea SHA512 70fb8dbdf5a98e3216a5c64c544d9208dd153a71266312e12189ea8ef03abf8b4d29153e0550a556b93e47ef2315e60bf2f5e080db82ffb3c6bb3dc2a3c8aa10 +DIST gcc-15-20241124.tar.xz 90251704 BLAKE2B d9c2a4342ca2229e345e163a8781e7ea8f4682734f5b1f4c9783272e0a362bc4fb0c5b5042363d996ea0473836c53cbf437761389062d076ce5595c1cdb2bcf2 SHA512 36e30e658f45b3b6cd5968cdae15216d6d874349349dce30f7d8c7c7bda1eff841d4d1eb4471956acfab04300c7169872210d26a5d05dd1ae0167d601a2adeed DIST gcc-15.0.0-musl-patches-2.tar.xz 3076 BLAKE2B 0073248fe4f7dd827980559017b5aa1fb5c4c46acc9ad5c410dc152fd1e44966d3066bf7152338573cb45b1c36027de5f0c519abd414d97a37bccef07f6a5281 SHA512 295f1a669020bbe2874e9b03afd46b5d083073b276fca3543f3767a2d74f35df81cf0a67abad50c200cf7a3af36ec98ff9977cb7d5c19f334af7d3bb1926a3de -DIST gcc-15.0.0-patches-21.tar.xz 16832 BLAKE2B 75a781cf9c7d9b2087d598d751fc1d2e4322b801c1864bb03c68c0a419f65051224febedd608473dec5ca76e2cdaf4ba3d3f1bd86eb13a71ceedb61983ecb208 SHA512 2ffac32494c455d969a7bafcdd8f68fb9d1905fdb4a6f966160f8ad89680d57d07361326739828c57b3e7c89138f74616f47522611982bc902466a14b08f0859 -DIST gcc-15.0.0-patches-22.tar.xz 17816 BLAKE2B efe3d36f750bff485886d8ff739e2a3c422c2e00710ef1d20ef78d392637ca0c82dba762db131ba41450fbacc09033b6746d99e8ca12643cf606f6c35bd371a3 SHA512 6fa7647c442755a9b4702ccdd7a6118478998936996a34400c2746f624e2d2dd6e32f23b86a751cdb8d1b2510f31cc5783429dd647ac60697545295337161ec3 +DIST gcc-15.0.0-patches-26.tar.xz 18864 BLAKE2B dc11d5a4d292ae53558601a59a34a619f6e0bbe223e6645a82a04fcd3b83b5788a3a7fdd14ac6fc2fde079302355dbef1a94c283725807425e1ce8d67e28f416 SHA512 14721dffb4dac9394239a82c52e3cbf47094dadc1b310b55a71101ca7ba1a5077fd137f39fbfb89896d324117f6a13c97dc8e8fa8cedecc5c2af4179de7e7f1f +DIST gcc-15.0.0-patches-28.tar.xz 19884 BLAKE2B 36e982dd8c98853e84d977c7be9e7b1decf2ac10f61bdd76d3aed3ba415345039539cb00e03c6f6d86573a890431a39539ca04c54489aa7a3c29cb4b48faa2af SHA512 d95ee81beff83d43f2a42d440c032535e31b9121868b9c18e825e0c0185f5c42173634286274c527668897333104e52137c4b1e0305fee5d86ac4c5be9601b94 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/gcc-15.0.0_pre20241117-PR112556-c-Allow-bool-and-enum-null-pointer-constants.patch b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/gcc-15.0.0_pre20241117-PR112556-c-Allow-bool-and-enum-null-pointer-constants.patch new file mode 100644 index 00000000000..b17c1e04998 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/gcc-15.0.0_pre20241117-PR112556-c-Allow-bool-and-enum-null-pointer-constants.patch @@ -0,0 +1,244 @@ +From 3d525fce70fa0ffa0b22af6e213643e1ceca5ab5 Mon Sep 17 00:00:00 2001 +Message-ID: <3d525fce70fa0ffa0b22af6e213643e1ceca5ab5.1731987909.git.sam@gentoo.org> +From: Joseph Myers +Date: Mon, 18 Nov 2024 22:24:48 +0000 +Subject: [PATCH] c: Allow bool and enum null pointer constants [PR112556] + +As reported in bug 112556, GCC wrongly rejects conversion of null +pointer constants with bool or enum type to pointers in +convert_for_assignment (assignment, initialization, argument passing, +return). Fix the code there to allow BOOLEAN_TYPE and ENUMERAL_TYPE; +it already allowed INTEGER_TYPE and BITINT_TYPE. + +This bug (together with -std=gnu23 meaning false has type bool rather +than int) has in turn resulted in people thinking they need to fix +code using false as a null pointer constant for C23 compatibility. +While such a usage is certainly questionable, it has nothing to do +with C23 compatibility and the right place for warnings about such +usage is -Wzero-as-null-pointer-constant. I think it would be +appropriate to extend -Wzero-as-null-pointer-constant to cover +BOOLEAN_TYPE, ENUMERAL_TYPE and BITINT_TYPE (in all the various +contexts in which that option generates warnings), though this patch +doesn't do anything about that option. + +Bootstrapped with no regressions for x86-64-pc-linux-gnu. + + PR c/112556 + +gcc/c/ + * c-typeck.cc (convert_for_assignment): Allow conversion of + ENUMERAL_TYPE and BOOLEAN_TYPE null pointer constants to pointers. + +gcc/testsuite/ + * gcc.dg/c11-null-pointer-constant-1.c, + gcc.dg/c23-null-pointer-constant-1.c: New tests. +--- + gcc/c/c-typeck.cc | 2 + + .../gcc.dg/c11-null-pointer-constant-1.c | 55 ++++++++ + .../gcc.dg/c23-null-pointer-constant-1.c | 120 ++++++++++++++++++ + 3 files changed, 177 insertions(+) + create mode 100644 gcc/testsuite/gcc.dg/c11-null-pointer-constant-1.c + create mode 100644 gcc/testsuite/gcc.dg/c23-null-pointer-constant-1.c + +diff --git a/gcc/c/c-typeck.cc b/gcc/c/c-typeck.cc +index 26ee0ebf91f0..a701dd090fb8 100644 +--- a/gcc/c/c-typeck.cc ++++ b/gcc/c/c-typeck.cc +@@ -8457,6 +8457,8 @@ convert_for_assignment (location_t location, location_t expr_loc, tree type, + } + else if (codel == POINTER_TYPE + && (coder == INTEGER_TYPE ++ || coder == ENUMERAL_TYPE ++ || coder == BOOLEAN_TYPE + || coder == NULLPTR_TYPE + || coder == BITINT_TYPE)) + { +diff --git a/gcc/testsuite/gcc.dg/c11-null-pointer-constant-1.c b/gcc/testsuite/gcc.dg/c11-null-pointer-constant-1.c +new file mode 100644 +index 000000000000..f463a1a59da3 +--- /dev/null ++++ b/gcc/testsuite/gcc.dg/c11-null-pointer-constant-1.c +@@ -0,0 +1,55 @@ ++/* Test zero with different types as null pointer constant: bug 112556. */ ++/* { dg-do compile } */ ++/* { dg-options "-std=c11 -pedantic-errors -Wno-pointer-compare" } */ ++ ++enum e { ZERO }; ++ ++void *p1 = 0; ++void *p2 = 0LL; ++void *p3 = (char) 0; ++void *p4 = 0UL; ++void *p5 = (_Bool) 0; ++void *p6 = (enum e) ZERO; ++ ++void f (void *); ++ ++void * ++g (void) ++{ ++ p1 = 0; ++ p2 = 0LL; ++ p3 = (char) 0; ++ p4 = 0UL; ++ p5 = (_Bool) 0; ++ p6 = (enum e) ZERO; ++ f (0); ++ f (0ULL); ++ f (0L); ++ f ((char) 0); ++ f ((_Bool) 0); ++ f ((enum e) ZERO); ++ (1 ? p1 : 0); ++ (1 ? p1 : 0L); ++ (1 ? p1 : 0ULL); ++ (1 ? p1 : (char) 0); ++ (1 ? p1 : (_Bool) 0); ++ (1 ? p1 : (enum e) 0); ++ p1 == 0; ++ p1 == 0LL; ++ p1 == 0U; ++ p1 == (char) 0; ++ p1 == (_Bool) 0; ++ p1 == (enum e) 0; ++ p1 != 0; ++ p1 != 0LL; ++ p1 != 0U; ++ p1 != (char) 0; ++ p1 != (_Bool) 0; ++ p1 != (enum e) 0; ++ return 0; ++ return 0UL; ++ return 0LL; ++ return (char) 0; ++ return (_Bool) 0; ++ return (enum e) 0; ++} +diff --git a/gcc/testsuite/gcc.dg/c23-null-pointer-constant-1.c b/gcc/testsuite/gcc.dg/c23-null-pointer-constant-1.c +new file mode 100644 +index 000000000000..71b66cc35d6b +--- /dev/null ++++ b/gcc/testsuite/gcc.dg/c23-null-pointer-constant-1.c +@@ -0,0 +1,120 @@ ++/* Test zero with different types as null pointer constant: bug 112556. */ ++/* { dg-do compile } */ ++/* { dg-options "-std=c23 -pedantic-errors -Wno-pointer-compare" } */ ++ ++enum e { ZERO }; ++enum e2 : bool { BZERO }; ++enum e3 : long { LZERO }; ++ ++void *p1 = 0; ++void *p2 = 0LL; ++void *p3 = (char) 0; ++void *p4 = 0UL; ++void *p5 = (bool) 0; ++void *p6 = (enum e) ZERO; ++void *p7 = false; ++void *p8 = BZERO; ++void *p9 = (enum e2) 0; ++void *p10 = LZERO; ++void *p11 = (enum e3) 0; ++#ifdef __BITINT_MAXWIDTH__ ++void *p12 = 0wb; ++void *p13 = 0uwb; ++#endif ++ ++void f (void *); ++ ++void * ++g (void) ++{ ++ p1 = 0; ++ p2 = 0LL; ++ p3 = (char) 0; ++ p4 = 0UL; ++ p5 = (bool) 0; ++ p6 = (enum e) ZERO; ++ p7 = false; ++ p8 = BZERO; ++ p9 = (enum e2) 0; ++ p10 = LZERO; ++ p11 = (enum e3) 0; ++#ifdef __BITINT_MAXWIDTH__ ++ p12 = 0wb; ++ p13 = 0uwb; ++#endif ++ f (0); ++ f (0ULL); ++ f (0L); ++ f ((char) 0); ++ f ((bool) 0); ++ f ((enum e) ZERO); ++ f (false); ++ f (BZERO); ++ f ((enum e2) 0); ++ f (LZERO); ++ f ((enum e3) 0); ++#ifdef __BITINT_MAXWIDTH__ ++ f (0wb); ++ f (0uwb); ++#endif ++ (1 ? p1 : 0); ++ (1 ? p1 : 0L); ++ (1 ? p1 : 0ULL); ++ (1 ? p1 : (char) 0); ++ (1 ? p1 : (bool) 0); ++ (1 ? p1 : (enum e) 0); ++ (1 ? p1 : false); ++ (1 ? p1 : BZERO); ++ (1 ? p1 : (enum e2) 0); ++ (1 ? p1 : LZERO); ++ (1 ? p1 : (enum e3) 0); ++#ifdef __BITINT_MAXWIDTH__ ++ (1 ? p1 : 0wb); ++ (1 ? p1 : 0uwb); ++#endif ++ p1 == 0; ++ p1 == 0LL; ++ p1 == 0U; ++ p1 == (char) 0; ++ p1 == (bool) 0; ++ p1 == (enum e) 0; ++ p1 == false; ++ p1 == BZERO; ++ p1 == (enum e2) 0; ++ p1 == LZERO; ++ p1 == (enum e3) 0; ++#ifdef __BITINT_MAXWIDTH__ ++ p1 == 0wb; ++ p1 == 0uwb; ++#endif ++ p1 != 0; ++ p1 != 0LL; ++ p1 != 0U; ++ p1 != (char) 0; ++ p1 != (bool) 0; ++ p1 != (enum e) 0; ++ p1 != false; ++ p1 != BZERO; ++ p1 != (enum e2) 0; ++ p1 != LZERO; ++ p1 != (enum e3) 0; ++#ifdef __BITINT_MAXWIDTH__ ++ p1 != 0wb; ++ p1 != 0uwb; ++#endif ++ return 0; ++ return 0UL; ++ return 0LL; ++ return (char) 0; ++ return (bool) 0; ++ return (enum e) 0; ++ return false; ++ return BZERO; ++ return (enum e2) 0; ++ return LZERO; ++ return (enum e3) 0; ++#ifdef __BITINT_MAXWIDTH__ ++ return 0wb; ++ return 0uwb; ++#endif ++} +-- +2.47.0 diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.4.1_p20241107.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.4.1_p20241114.ebuild similarity index 94% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.4.1_p20241107.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.4.1_p20241114.ebuild index ca287572883..e3066d71350 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.4.1_p20241107.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.4.1_p20241114.ebuild @@ -39,7 +39,7 @@ if tc_is_live ; then EGIT_BRANCH=releases/gcc-$(ver_cut 1) elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then # Don't keyword live ebuilds - #KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" + KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" :; fi diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.2.1_p20241102.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.4.1_p20241121.ebuild similarity index 70% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.2.1_p20241102.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.4.1_p20241121.ebuild index 98edff84af5..5845745860b 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.2.1_p20241102.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.4.1_p20241121.ebuild @@ -5,13 +5,25 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="14.2.0" -PATCH_VER="3" +PATCH_GCC_VER="12.4.0" +PATCH_VER="1" MUSL_VER="1" -MUSL_GCC_VER="14.1.0" +MUSL_GCC_VER="12.4.0" PYTHON_COMPAT=( python3_{10..12} ) -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} @@ -26,8 +38,8 @@ if tc_is_live ; then # Needs to be after inherit (for now?), bug #830908 EGIT_BRANCH=releases/gcc-$(ver_cut 1) elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # m68k doesnt build (ICE, bug 932733) - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" :; fi @@ -49,6 +61,5 @@ src_prepare() { toolchain_src_prepare - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch eapply_user } diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.3.1_p20241108.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.3.1_p20241115.ebuild similarity index 93% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.3.1_p20241108.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.3.1_p20241115.ebuild index 6bff7d38217..98f9b64a624 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.3.1_p20241108.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.3.1_p20241115.ebuild @@ -39,7 +39,7 @@ if tc_is_live ; then EGIT_BRANCH=releases/gcc-$(ver_cut 1) elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" :; fi diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.3.1_p20241101.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.3.1_p20241122.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.3.1_p20241101.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.3.1_p20241122.ebuild diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.2.1_p20241026.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.2.1_p20241116.ebuild similarity index 93% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.2.1_p20241026.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.2.1_p20241116.ebuild index ff72d2e6564..f10977e0f7b 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.2.1_p20241026.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.2.1_p20241116.ebuild @@ -27,7 +27,7 @@ if tc_is_live ; then EGIT_BRANCH=releases/gcc-$(ver_cut 1) elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then # m68k doesnt build (ICE, bug 932733) - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" :; fi diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.2.1_p20241109.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.2.1_p20241123.ebuild similarity index 97% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.2.1_p20241109.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.2.1_p20241123.ebuild index 98edff84af5..f85c0a0e44d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.2.1_p20241109.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.2.1_p20241123.ebuild @@ -42,6 +42,7 @@ fi src_prepare() { local p upstreamed_patches=( # add them here + 77_all_m2_docs_sandbox.patch ) for p in "${upstreamed_patches[@]}"; do rm -v "${WORKDIR}/patch/${p}" || die diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.0.0_pre20241110.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.0.0_pre20241110.ebuild deleted file mode 100644 index 784fbf09176..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.0.0_pre20241110.ebuild +++ /dev/null @@ -1,53 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -TOOLCHAIN_PATCH_DEV="sam" -TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="15.0.0" -PATCH_VER="22" -MUSL_VER="2" -MUSL_GCC_VER="15.0.0" -PYTHON_COMPAT=( python3_{10..12} ) - -if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=master -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - :; -fi - -if [[ ${CATEGORY} != cross-* ]] ; then - # Technically only if USE=hardened *too* right now, but no point in complicating it further. - # If GCC is enabling CET by default, we need glibc to be built with support for it. - # bug #830454 - RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" - DEPEND="${RDEPEND}" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.0.0_pre20241103.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.0.0_pre20241117-r2.ebuild similarity index 92% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.0.0_pre20241103.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.0.0_pre20241117-r2.ebuild index a81ef8a63c0..ee327823124 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.0.0_pre20241103.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.0.0_pre20241117-r2.ebuild @@ -6,7 +6,7 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="15.0.0" -PATCH_VER="21" +PATCH_VER="26" MUSL_VER="2" MUSL_GCC_VER="15.0.0" PYTHON_COMPAT=( python3_{10..12} ) @@ -49,5 +49,6 @@ src_prepare() { toolchain_src_prepare + eapply "${FILESDIR}"/${P}-PR112556-c-Allow-bool-and-enum-null-pointer-constants.patch eapply_user } diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.0.0_pre20241027.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.0.0_pre20241124.ebuild similarity index 98% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.0.0_pre20241027.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.0.0_pre20241124.ebuild index a81ef8a63c0..75125b880bd 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.0.0_pre20241027.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.0.0_pre20241124.ebuild @@ -6,7 +6,7 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="15.0.0" -PATCH_VER="21" +PATCH_VER="28" MUSL_VER="2" MUSL_GCC_VER="15.0.0" PYTHON_COMPAT=( python3_{10..12} ) diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/metadata.xml index 853d9657950..eeb3aa4d7aa 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/metadata.xml @@ -77,6 +77,7 @@ Add support for the framework for loop optimizations based on a polyhedral intermediate representation Use accelerated 128-bit IEEE long double ABI (ppc64le only) Enable libgccjit so other applications can embed gcc for Just-In-Time compilation. + Provide libdiagnostics (https://gcc.gnu.org/wiki/libdiagnostics). This also installs the 'sarif-replay' tool. Build SSP support into a dedicated library rather than use the code in the C library (DO NOT ENABLE THIS IF YOU DON'T KNOW WHAT IT DOES) Build using Link Time Optimizations (LTO). diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.22.5-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.22.5-r1.ebuild new file mode 100644 index 00000000000..cbcedaee51d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.22.5-r1.ebuild @@ -0,0 +1,203 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Note: Keep version bumps in sync with dev-libs/libintl. + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gettext.asc +inherit java-pkg-opt-2 libtool multilib-minimal verify-sig toolchain-funcs +inherit flag-o-matic + +DESCRIPTION="GNU locale utilities" +HOMEPAGE="https://www.gnu.org/software/gettext/" + +if [[ ${PV} == *_rc* ]] ; then + SRC_URI=" + https://alpha.gnu.org/gnu/${PN}/${P/_/-}.tar.xz + verify-sig? ( https://alpha.gnu.org/gnu/${PN}/${P/_/-}.tar.xz.sig ) + " + S="${WORKDIR}/${P/_/-}" +else + SRC_URI=" + mirror://gnu/${PN}/${P}.tar.xz + verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig ) + " + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +# Only libasprintf is under the LGPL (and libintl is in a sep package), +# so put that license behind USE=cxx. +LICENSE="GPL-3+ cxx? ( LGPL-2.1+ )" +SLOT="0" +IUSE="acl +cxx doc emacs git java ncurses nls openmp static-libs xattr" + +# Only runtime goes multilib +# +# Note: The version of libxml2 corresponds to the version bundled via gnulib. +# If the build detects too old of a system version, it will end up falling back +# to the bundled copy (bug #596918). +# +# Note: expat lacks a subslot because it is dynamically loaded at runtime. We +# would depend on older subslots if they were available (based on the ABIs that +# are explicitly handled), but expat doesn't currently use subslots. +DEPEND=" + >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] + >=virtual/libintl-0-r2[${MULTILIB_USEDEP}] + >=dev-libs/libxml2-2.9.3:= + dev-libs/expat + acl? ( virtual/acl ) + ncurses? ( sys-libs/ncurses:= ) + java? ( >=virtual/jdk-1.8:* ) + xattr? ( sys-apps/attr ) +" +RDEPEND=" + ${DEPEND} + git? ( dev-vcs/git ) + java? ( >=virtual/jre-1.8:* ) +" +BDEPEND=" + git? ( dev-vcs/git ) + verify-sig? ( sec-keys/openpgp-keys-gettext ) +" +PDEPEND="emacs? ( app-emacs/po-mode )" + +MULTILIB_WRAPPED_HEADERS=( + # only installed for native ABI + /usr/include/gettext-po.h + + /usr/include/autosprintf.h + /usr/include/textstyle.h + /usr/include/textstyle/stdbool.h + /usr/include/textstyle/version.h + /usr/include/textstyle/woe32dll.h +) + +PATCHES=( + "${FILESDIR}"/${PN}-0.21-CVE-2020-12825.patch +) + +QA_SONAME_NO_SYMLINK=".*/preloadable_libintl.so" + +QA_CONFIG_IMPL_DECL_SKIP=( + # bug #898570 + unreachable + MIN + alignof + static_assert +) + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + java-pkg-opt-2_pkg_setup +} + +src_prepare() { + java-pkg-opt-2_src_prepare + + default + + # gettext-0.21.1-java-autoconf.patch changes + # gettext-{runtime,tools}/configure.ac and the corresponding + # configure scripts. Avoid regenerating other autotools output. + #touch -c gettext-{runtime,tools}/{aclocal.m4,Makefile.in,config.h.in,configure} || die + # Makefile.am adds a dependency on gettext-{runtime,tools}/configure.ac + #touch -c configure || die + + elibtoolize + + if use elibc_musl || use elibc_Darwin; then + eapply "${FILESDIR}"/${PN}-0.21-musl-omit_setlocale_lock.patch + fi +} + +multilib_src_configure() { + local myconf=( + # switches common to runtime and top-level + --cache-file="${BUILD_DIR}"/config.cache + #--docdir="\$(datarootdir)/doc/${PF}" + + # Emacs support is now in a separate package + --without-emacs + --without-lispdir + # glib depends on us so avoid circular deps + --with-included-glib + # libcroco depends on glib which ... ^^^ + --with-included-libcroco + # this will _disable_ libunistring (since it is not bundled), + # see bug #326477 + --with-included-libunistring + # Never build libintl since it's in dev-libs/libintl now. + --without-included-gettext + # Never build bundled copy of libxml2. + --without-included-libxml + + --disable-csharp + --without-cvs + + $(use_enable acl) + $(use_enable cxx c++) + $(use_enable cxx libasprintf) + $(use_with git) + $(multilib_native_use_enable java) + $(use_enable ncurses curses) + $(use_enable nls) + $(use_enable openmp) + $(use_enable static-libs static) + $(use_enable xattr attr) + ) + + local ECONF_SOURCE="${S}" + if ! multilib_is_native_abi ; then + # for non-native ABIs, we build runtime only + ECONF_SOURCE+=/gettext-runtime + fi + + # should be gone on next release, for memset_s breakage + [[ ${CHOST} == *-solaris* ]] && append-cppflags -D__STDC_WANT_LIB_EXT1__=1 + + econf "${myconf[@]}" +} + +multilib_src_install() { + emake DESTDIR="${D}" install + + if multilib_is_native_abi ; then + dosym msgfmt /usr/bin/gmsgfmt # bug #43435 + dobin gettext-tools/misc/gettextize + fi + + # 909041 never install libintl which upstream insists on building + rm -f "${ED}"/usr/$(get_libdir)/libintl.* "${ED}"/usr/include/libintl.h +} + +multilib_src_install_all() { + find "${ED}" -type f -name "*.la" -delete || die + + if use java ; then + java-pkg_dojar "${ED}"/usr/share/${PN}/*.jar + rm "${ED}"/usr/share/${PN}/*.jar || die + rm "${ED}"/usr/share/${PN}/*.class || die + if use doc ; then + java-pkg_dojavadoc "${ED}"/usr/share/doc/${PF}/html/javadoc2 + fi + fi + + dodoc AUTHORS ChangeLog NEWS README THANKS + + if use doc ; then + docinto html + dodoc "${ED}"/usr/share/doc/${PF}/*.html + else + rm -rf "${ED}"/usr/share/doc/${PF}/{csharpdoc,examples,javadoc2,javadoc1} + fi + rm "${ED}"/usr/share/doc/${PF}/*.html || die +} + +pkg_preinst() { + java-pkg-opt-2_pkg_preinst +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.22.5.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.22.5.ebuild index 6d6dc3ce388..88afc730dd6 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.22.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.22.5.ebuild @@ -23,7 +23,7 @@ else mirror://gnu/${PN}/${P}.tar.xz verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig ) " - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi # Only libasprintf is under the LGPL (and libintl is in a sep package), diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/m4/m4-1.4.19-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/m4/m4-1.4.19-r2.ebuild index 42c854e636e..93f8c13a49f 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/m4/m4-1.4.19-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/m4/m4-1.4.19-r2.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2023 Gentoo Authors +# 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/m4.asc -inherit verify-sig +inherit flag-o-matic verify-sig DESCRIPTION="GNU macro processor" HOMEPAGE="https://www.gnu.org/software/m4/m4.html" @@ -20,7 +20,7 @@ else KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi -LICENSE="GPL-3" +LICENSE="GPL-3+" SLOT="0" IUSE="examples nls" @@ -65,6 +65,9 @@ src_prepare() { } src_configure() { + # https://savannah.gnu.org/support/index.php?111150 + append-cflags -std=gnu17 + local -a myeconfargs=( --enable-changeword diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/patch/files/patch-2.7.6-configure-mkdir.patch b/sdk_container/src/third_party/portage-stable/sys-devel/patch/files/patch-2.7.6-configure-mkdir.patch new file mode 100644 index 00000000000..b29d7b08753 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/patch/files/patch-2.7.6-configure-mkdir.patch @@ -0,0 +1,14 @@ +https://bugs.gentoo.org/898598 +https://github.com/coreutils/gnulib/commit/3c136a2cc38d71083f123231a8b9ad4b01930789 + +diff '--color=auto' -ruN patch-2.7.6.orig/configure patch-2.7.6/configure +--- patch-2.7.6.orig/configure 2018-02-03 14:41:50.000000000 +0100 ++++ patch-2.7.6/configure 2024-11-19 23:19:08.710565121 +0100 +@@ -17130,6 +17130,7 @@ + /* end confdefs.h. */ + #include + #include ++ #include + + int + main () diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/patch/patch-2.7.6-r6.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/patch/patch-2.7.6-r6.ebuild new file mode 100644 index 00000000000..25168b8c544 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/patch/patch-2.7.6-r6.ebuild @@ -0,0 +1,85 @@ +# 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/patch.asc +inherit flag-o-matic verify-sig + +DESCRIPTION="Utility to apply diffs to files" +HOMEPAGE="https://www.gnu.org/software/patch/patch.html" +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/patch.git" + inherit git-r3 +else + SRC_URI="mirror://gnu/patch/${P}.tar.xz" + SRC_URI+=" verify-sig? ( mirror://gnu/patch/${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 + +LICENSE="GPL-3+" +SLOT="0" +IUSE="static test xattr" +RESTRICT="!test? ( test )" + +RDEPEND="xattr? ( sys-apps/attr )" +DEPEND="${RDEPEND}" +BDEPEND=" + test? ( sys-apps/ed ) + verify-sig? ( sec-keys/openpgp-keys-patch ) +" + +PATCHES=( + "${FILESDIR}"/${P}-fix-test-suite.patch + "${FILESDIR}"/${PN}-2.7.6-fix-error-handling-with-git-style-patches.patch + "${FILESDIR}"/${PN}-2.7.6-CVE-2018-6951.patch + "${FILESDIR}"/${PN}-2.7.6-allow-input-files-to-be-missing-for-ed-style-patches.patch + "${FILESDIR}"/${PN}-2.7.6-CVE-2018-1000156.patch + "${FILESDIR}"/${PN}-2.7.6-CVE-2018-6952.patch + "${FILESDIR}"/${PN}-2.7.6-Do-not-crash-when-RLIMIT_NOFILE-is-set-to-RLIM_INFINITY.patch + "${FILESDIR}"/${PN}-2.7.6-CVE-2018-1000156-fix1.patch + "${FILESDIR}"/${PN}-2.7.6-CVE-2018-1000156-fix2.patch + "${FILESDIR}"/${PN}-2.7.6-CVE-2019-13636.patch + "${FILESDIR}"/${PN}-2.7.6-CVE-2019-13638.patch + "${FILESDIR}"/${PN}-2.7.6-Avoid-invalid-memory-access-in-context-format-diffs.patch + "${FILESDIR}"/${PN}-2.7.6-configure-mkdir.patch +) + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + + cd "${S}" || die + ./bootstrap || die + elif use verify-sig ; then + verify-sig_verify_detached "${DISTDIR}"/${P}.tar.xz{,.sig} + fi + + default +} + +src_configure() { + use static && append-ldflags -static + + local myeconfargs=( + $(use_enable xattr) + # rename to gpatch for better BSD compatibility + --program-prefix=g + ) + # Do not let $ED mess up the search for `ed` 470210. + ac_cv_path_ED=$(type -P ed) \ + econf "${myeconfargs[@]}" +} + +src_test() { + emake check gl_public_submodule_commit= +} + +src_install() { + default + + # symlink to the standard name + dosym gpatch /usr/bin/patch + dosym gpatch.1 /usr/share/man/man1/patch.1 +} diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/Manifest b/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/Manifest index 5c85eac3431..302c8274724 100644 --- a/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/Manifest @@ -1,7 +1,9 @@ DIST intel-microcode-collection-20240526.tar.xz 14673584 BLAKE2B 262f667ac46e190994e86f547c98ac776c73b1576c208fa32df96a2dd60af6cda9bd0b0367ca68bb6b85fd19f75913e73069d0064eb2b4c560068c3da50618c8 SHA512 4227c68ba60aea940b851f10d1006ee42b45d55425eb143210adeb363468238329d4a2720d117f5bdaeb9857ae29a6952a3df22769f4436638a9080ded6793ba DIST intel-microcode-collection-20240815.tar.xz 15458512 BLAKE2B 17b3719961a30d18aecb7b5094de5250e36a6eaa2f880a020ca38762d8a037b7e25f322cc1cbb3000a520007beb0d47d6b4f4940c47fac2082c9c2a3fa3be5d4 SHA512 6faddcac20184424bbe0488dce8df31479b89da9affb5c2f2d93f2bccc045d41105d5a10e3c56ba48cf27853a089334adac6e42a27c5fb63e86f0ed7c51bbc42 DIST intel-microcode-collection-20240915.tar.xz 15384092 BLAKE2B 8f7caf4e7e96544037f25f335a1fd24a04e9613cd397dcd4a299f385647335771bd2218b64b7fd047405e88ac3907f662b4a2d35c5600d488a197152514d0de8 SHA512 975867f7a817e4086c6901329de3c6bff2b6d8ed4719af41b349e87297c8b213a31708804d7216a44358fbe4effc227e96999fb7f9f4599dd83d033eee849a4d +DIST intel-microcode-collection-20241103.tar.xz 17703860 BLAKE2B dd2e88e4b06a54ad5f07b12a842eea0a66f2b8d5bf5fb311bd5d9d955faf6f08d1b025cdf5ba04a6b43b3fb153dca50c2fba1cb40454e9b195c7fe03563c8685 SHA512 f57fc0ba0deced6d852354556429afea0995f1864a73594e92c5900bbec3816ff8d960860f853c788ebeb3ae0f1a44ca3dc9ddc091bdc2753a2f181993eb601d DIST intel-ucode-sig_0x406e3-rev_0xd6.bin 101376 BLAKE2B 66d55867954d69dda1425febd93bb8c89f7aa836d504f8b5fee127f8505bcf2246f4fcc55cc245bc5e532528d60cca2eee278de7ab5174dc2862db7982a2b36f SHA512 248066b521bf512b5d8e4a8c7e921464ce52169c954d6e4ca580d8c172cd789519e22b4cf56c212e452b4191741f0202019f7061d322c9433b5af9ce5413b567 DIST microcode-20240531.tar.gz 12870497 BLAKE2B 6a2c5ee6b6f3543b28f3753b30812e360bad50776b4f81e32a832e2169f38c11f8d5108ce0a81ddcdf1ecf7557baf1fd62c053a365f39a33ded5fd5018580b1f SHA512 fb9d772491f279ebb691248e4a665da45c986ca7b4668ecf311c5fcb91a42400f7a5b35e8bfc31ceb1c9d598e753c817359900e3fa316d825f8ecec21ec63cfe DIST microcode-20240813.tar.gz 12879301 BLAKE2B f6a157de1f2c14e0e4d08ec71304451a52c7a0ffcfc79a1ebce7e8c16c7405587369c9cad994b8bdb0a987d4fe2769b2988948ffd9fe1e7f117eb624cf579b63 SHA512 ba1fa7d9bed7d90756ea959f5878afca0deacc9b1e932a936a15d74a411b7efb6103a4af75dc3731d9cbb2e464439ce9a7d448f75bc6f38b616907ff6dec6ee3 DIST microcode-20240910.tar.gz 12879730 BLAKE2B b4c353dd340ef8004e5be2e596de0ebaf8366684a3371207e14d3d8c0e4bbdc5a9c75d8279d280d1029452368556a0c2e7bf85f3fe75f1b1560e16c953f223b7 SHA512 d996de4f045df33f4eb1a1dabfb2f55bd8941e8dc16241d7a6c361216f4b87b88c34ba57c88ee4d4b7b3cf2b3fac937c43806191681df031fa3d5cdd677a86fe +DIST microcode-20241112.tar.gz 12923653 BLAKE2B 223721ac561b137513653e1b10dc2afabcc4fc9e304f3fc71c252f1ada9554bf1df812c766831ec4b5f66f57f66c3e1cf563d7d24d17e553a4e26adc659f8d76 SHA512 de4ddb0a77e17a4a5b6789537cf71db9ab884c795ef5c77b17d3392fda0fbb4d860cc27bcdbd7512d9412d6f934e6771e889be262b20e77433e0f72d3b6cf1f0 diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/intel-microcode-20241112_p20241103.ebuild b/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/intel-microcode-20241112_p20241103.ebuild new file mode 100644 index 00000000000..947e22ff9bc --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/intel-microcode-20241112_p20241103.ebuild @@ -0,0 +1,338 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dist-kernel-utils linux-info mount-boot + +# Find updates by searching and clicking the first link (hopefully it's the one): +# https://www.intel.com/content/www/us/en/search.html?keyword=Processor+Microcode+Data+File +# +# +# Package Maintenance instructions: +# 1. The ebuild is in the form of intel-microcode-_p.ebuild +# 2. The INTEL_SNAPSHOT upstream is located at: https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files +# 3. The COLLECTION_SNAPSHOT is created manually using the following steps: +# a. Clone the repository https://github.com/platomav/CPUMicrocodes +# b. Rename the Intel directory to intel-microcode-collection- +# c. From the CPUMicrocodes directory tar and xz compress the contents of intel-microcode-collection-: +# tar -cJf intel-microcode-collection-.tar.xz intel-microcode-collection-/ +# d. This file can go in your devspace, add the URL to SRC_URI if it's not there +# https://dev.gentoo.org/~/dist/intel-microcode/intel-microcode-collection-${COLLECTION_SNAPSHOT}.tar.xz +# +# PV: +# * the first date is upstream +# * the second date is snapshot (use last commit date in repo) from intel-microcode-collection + +COLLECTION_SNAPSHOT="${PV##*_p}" +INTEL_SNAPSHOT="${PV/_p*}" +#NUM="28087" + +#https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=${NUM} +#https://downloadmirror.intel.com/${NUM}/eng/microcode-${INTEL_SNAPSHOT}.tgz + +DESCRIPTION="Intel IA32/IA64 microcode update data" +HOMEPAGE="https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files https://github.com/platomav/CPUMicrocodes http://inertiawar.com/microcode/" +SRC_URI=" + https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/archive/microcode-${INTEL_SNAPSHOT}.tar.gz + https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/raw/437f382b1be4412b9d03e2bbdcda46d83d581242/intel-ucode/06-4e-03 -> intel-ucode-sig_0x406e3-rev_0xd6.bin + https://dev.gentoo.org/~mpagano/dist/intel-microcode/intel-microcode-collection-${COLLECTION_SNAPSHOT}.tar.xz + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/intel-microcode-collection-${COLLECTION_SNAPSHOT}.tar.xz +" +S="${WORKDIR}" + +LICENSE="intel-ucode" +SLOT="0" +KEYWORDS="-* ~amd64 ~x86" +IUSE="dist-kernel hostonly +initramfs +split-ucode vanilla" +REQUIRED_USE=" + || ( initramfs split-ucode ) + dist-kernel? ( split-ucode ) +" +RESTRICT="binchecks strip" + +BDEPEND=">=sys-apps/iucode_tool-2.3" +# !/dev/null; then + # new tarball format from GitHub + mv * ../ || die "Failed to move Intel-Linux-Processor-Microcode-Data*" + cd .. || die + rm -r Intel-Linux-Processor-Microcode-Data* || die + fi + + mkdir intel-ucode-old || die + cp "${DISTDIR}"/intel-ucode-sig_0x406e3-rev_0xd6.bin "${S}"/intel-ucode-old/ || die + + # Prevent "invalid file format" errors from iucode_tool + rm -f "${S}"/intel-ucod*/list || die + + # https://gitlab.com/iucode-tool/iucode-tool/-/issues/4 + rm "${S}"/intel-microcode-collection-${COLLECTION_SNAPSHOT}/cpu106C0_plat01_ver00000007_2007-08-24_PRD_923CDFA3.bin || die + + # Remove non-microcode file from list + rm -f "${S}"/intel-microcode-collection-${COLLECTION_SNAPSHOT}/LICENSE || die + rm -f "${S}"/intel-ucode*/LICENSE || die +} + +src_install() { + # This will take ALL of the upstream microcode sources: + # - microcode.dat + # - intel-ucode/ + # In some cases, they have not contained the same content (eg the directory has newer stuff). + MICROCODE_SRC=( + "${S}"/intel-ucode/ + "${S}"/intel-ucode-with-caveats/ + "${S}"/intel-ucode-old/ + ) + + # Allow users who are scared about microcode updates not included in Intel's official + # microcode tarball to opt-out and comply with Intel marketing + if ! use vanilla; then + MICROCODE_SRC+=( "${S}"/intel-microcode-collection-${COLLECTION_SNAPSHOT} ) + fi + + # These will carry into pkg_preinst via env saving. + : ${MICROCODE_BLACKLIST=${MICROCODE_BLACKLIST_DEFAULT}} + : ${MICROCODE_SIGNATURES=${MICROCODE_SIGNATUES_DEFAULT}} + + opts=( + ${MICROCODE_BLACKLIST} + ${MICROCODE_SIGNATURES} + # be strict about what we are doing + --overwrite + --strict-checks + --no-ignore-broken + # we want to install latest version + --no-downgrade + # show everything we find + --list-all + # show what we selected + --list + ) + + # Instruct Dracut on whether or not we want the microcode in initramfs + # Use here 15 instead of 10, intel-microcode overwrites linux-firmware + ( + insinto /usr/lib/dracut/dracut.conf.d + newins - 15-${PN}.conf <<<"early_microcode=$(usex initramfs)" + ) + if use initramfs; then + # Install installkernel/kernel-install hooks for non-dracut initramfs + # generators that don't bundled the microcode + ( + exeinto /usr/lib/kernel/preinst.d + doexe "${FILESDIR}/35-intel-microcode.install" + exeinto /usr/lib/kernel/install.d + doexe "${FILESDIR}/35-intel-microcode-systemd.install" + ) + fi + + # The earlyfw cpio needs to be in /boot because it must be loaded before + # rootfs is mounted. + if ! use dist-kernel && use initramfs; then + dodir /boot && opts+=( --write-earlyfw="${ED}/boot/intel-uc.img" ) + fi + + keepdir /lib/firmware/intel-ucode + opts+=( --write-firmware="${ED}/lib/firmware/intel-ucode" ) + + iucode_tool \ + "${opts[@]}" \ + "${MICROCODE_SRC[@]}" \ + || die "iucode_tool ${opts[@]} ${MICROCODE_SRC[@]}" + + dodoc releasenote.md +} + +pkg_preinst() { + if [[ ${MICROCODE_BLACKLIST} != ${MICROCODE_BLACKLIST_DEFAULT} ]]; then + ewarn "MICROCODE_BLACKLIST is set to \"${MICROCODE_BLACKLIST}\" instead of default \"${MICROCODE_BLACKLIST_DEFAULT}\". You are on your own!" + fi + + if [[ ${MICROCODE_SIGNATURES} != ${MICROCODE_SIGNATURES_DEFAULT} ]]; then + ewarn "Package was created using advanced options:" + ewarn "MICROCODE_SIGNATURES is set to \"${MICROCODE_SIGNATURES}\" instead of default \"${MICROCODE_SIGNATURES_DEFAULT}\"!" + fi + + # Make sure /boot is available if needed. + use initramfs && ! use dist-kernel && mount-boot_pkg_preinst + + local _initramfs_file="${ED}/boot/intel-uc.img" + + if use hostonly; then + # While this output looks redundant we do this check to detect + # rare cases where iucode_tool was unable to detect system's processor(s). + local _detected_processors=$(iucode_tool --scan-system 2>&1) + if [[ -z "${_detected_processors}" ]]; then + ewarn "Looks like iucode_tool was unable to detect any processor!" + else + einfo "Only installing ucode(s) for ${_detected_processors#iucode_tool: system has } due to USE=hostonly ..." + fi + + opts=( + --scan-system + # be strict about what we are doing + --overwrite + --strict-checks + --no-ignore-broken + # we want to install latest version + --no-downgrade + # show everything we find + --list-all + # show what we selected + --list + ) + + # The earlyfw cpio needs to be in /boot because it must be loaded before + # rootfs is mounted. + if ! use dist-kernel && use initramfs; then + opts+=( --write-earlyfw=${_initramfs_file} ) + fi + + if use split-ucode; then + opts+=( --write-firmware="${ED}/lib/firmware/intel-ucode" ) + fi + + opts+=( "${ED}/lib/firmware/intel-ucode-temp" ) + + mv "${ED}"/lib/firmware/intel-ucode{,-temp} || die + keepdir /lib/firmware/intel-ucode + + iucode_tool "${opts[@]}" || die "iucode_tool ${opts[@]}" + + rm -r "${ED}"/lib/firmware/intel-ucode-temp || die + + elif ! use split-ucode; then # hostonly disabled + rm -r "${ED}"/lib/firmware/intel-ucode || die + fi + + # Because it is possible that this package will install not one single file + # due to user selection which is still somehow unexpected we add the following + # check to inform user so that the user has at least a chance to detect + # a problem/invalid select. + local _has_installed_something= + if use initramfs && [[ -s "${_initramfs_file}" ]]; then + _has_installed_something="yes" + elif use split-ucode; then + _has_installed_something=$(find "${ED}/lib/firmware/intel-ucode" -maxdepth 0 -not -empty -exec echo yes \;) + fi + + if use hostonly && [[ -n "${_has_installed_something}" ]]; then + elog "You only installed ucode(s) for all currently available (=online)" + elog "processor(s). Remember to re-emerge this package whenever you" + elog "change the system's processor model." + elog "" + elif [[ -z "${_has_installed_something}" ]]; then + ewarn "WARNING:" + if [[ ${MICROCODE_SIGNATURES} != ${MICROCODE_SIGNATURES_DEFAULT} ]]; then + ewarn "No ucode was installed! Because you have created this package" + ewarn "using MICROCODE_SIGNATURES variable please double check if you" + ewarn "have an invalid select." + ewarn "It's rare but it is also possible that just no ucode update" + ewarn "is available for your processor(s). In this case it is safe" + ewarn "to ignore this warning." + else + ewarn "No ucode was installed! It's rare but it is also possible" + ewarn "that just no ucode update is available for your processor(s)." + ewarn "In this case it is safe to ignore this warning." + fi + + ewarn "" + + if use hostonly; then + ewarn "Unset \"hostonly\" USE flag to install all available ucodes." + ewarn "" + fi + fi +} + +pkg_prerm() { + # Make sure /boot is mounted so that we can remove /boot/intel-uc.img! + use initramfs && ! use dist-kernel && mount-boot_pkg_prerm +} + +pkg_postrm() { + # Don't forget to umount /boot if it was previously mounted by us. + use initramfs && ! use dist-kernel && mount-boot_pkg_postrm +} + +pkg_postinst() { + if use initramfs; then + if use dist-kernel; then + [[ -z ${ROOT} ]] && dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" + else + # Don't forget to umount /boot if it was previously mounted by us. + mount-boot_pkg_postinst + fi + fi + + # We cannot give detailed information if user is affected or not: + # If MICROCODE_BLACKLIST wasn't modified, user can still use MICROCODE_SIGNATURES + # to to force a specific, otherwise blacklisted, microcode. So we + # only show a generic warning based on running kernel version: + if kernel_is -lt 4 14 34; then + ewarn "${P} contains microcode updates which require" + ewarn "additional kernel patches which aren't yet included in kernel <4.14.34." + ewarn "Loading such a microcode through kernel interface from an unpatched kernel" + ewarn "can crash your system!" + ewarn "" + ewarn "Those microcodes are blacklisted per default. However, if you have altered" + ewarn "MICROCODE_BLACKLIST or MICROCODE_SIGNATURES, you maybe have unintentionally" + ewarn "re-enabled those microcodes...!" + ewarn "" + ewarn "Check \"${EROOT}/usr/share/doc/${PN}-*/releasenot*\" if your microcode update" + ewarn "requires additional kernel patches or not." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/metadata.xml index 31efbfe0fea..fb8538f43f9 100644 --- a/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/intel-microcode/metadata.xml @@ -5,6 +5,10 @@ base-system@gentoo.org Gentoo Base System + + mpagano@gentoo.org + Mike Pagano + Install a small initramfs for use with CONFIG_MICROCODE_EARLY Only install ucode(s) supported by currently available (=online) processor(s) diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/seabios-bin/seabios-bin-1.16.3.ebuild b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios-bin/seabios-bin-1.16.3.ebuild index 9b323b614b8..d7f6e504d2c 100644 --- a/sdk_container/src/third_party/portage-stable/sys-firmware/seabios-bin/seabios-bin-1.16.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios-bin/seabios-bin-1.16.3.ebuild @@ -12,7 +12,7 @@ S="${WORKDIR}" LICENSE="LGPL-3 GPL-3" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86" RDEPEND="!sys-firmware/seabios" diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.11.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.11.ebuild index 757755270ab..89de2ab69fa 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.11.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.11.ebuild @@ -26,7 +26,7 @@ else S="${WORKDIR}"/${PN}-${MY_PV} if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" + KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86" fi fi diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mtools/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/mtools/Manifest index 5623d72c531..327d9221fb6 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/mtools/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mtools/Manifest @@ -2,3 +2,4 @@ DIST mtools-4.0.42.tar.bz2 441506 BLAKE2B 07afec0aea49427ec71ae8ddde9c1dceb33b25 DIST mtools-4.0.43.tar.bz2 443673 BLAKE2B d000839bbb6bc647eb5a32b08b40b1350cd0a85fd564f0705ecbfe20f8f4ef21bf2d59cd0ccd7a159c829c019c6c2f3cbdef82ff3f4a9e8828cc13d44ddabd1d SHA512 b70e483688124a653dd333ab127494dab12d413809680a4846dc4ae5c166a0b9938a2ab290e518c1f1a5b18ed96d2c2a29d92d61b16b772a4ab5e495379fe410 DIST mtools-4.0.44.tar.lz 389267 BLAKE2B 1a6a9d257fc07cf27280a535feac873d27690fb02114b293e31d7c8441de6bbdbd57a13f4ba62ce5a5093cd45683776dd8e61ac822b1d3d44eb98cd21f7b9088 SHA512 8977f43b1cd25a0d1052f9f8f140d73d432bd49a7a4737d0b743a9f8ccec5aff6bbbdc07455011ecc49038b1b1dfd6908dda8c46d06389b1511875f9bc654f84 DIST mtools-4.0.45.tar.lz 389733 BLAKE2B bb23b310fea5d10e5f0c0ed543e0f8cbac9ba4177128419b6e05fb4a06896a64ddccb27c932eb41c339a0167706e729c2f209837874fe4ac4d165a534802031c SHA512 dd5869fee6f376deab2beb3d5168045a6abc7bbfdea35a274369420c99771ee89477629364a8c677dfba56e0df5c7d2760b6cbfba2d425a89a7b8c21f2b6e538 +DIST mtools-4.0.46.tar.lz 391300 BLAKE2B 997e766b215aebefb23d57f357ea0b95db62a7e3b40712597c38aa11c0f9c47dc43b0b6a34bfa2b976ec8298ed221c5d7d81e9f16dbeb0a4812e3a6cbff16a16 SHA512 1af737cc4793a2e6afe14b5595f085f8aa29e58bf4d8ba89454c7b9a10041a0ebe06fd50b525332c38805c7a9b014fc4379ae1cc259da7626974c6b6a061e727 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/mtools/mtools-4.0.46.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/mtools/mtools-4.0.46.ebuild new file mode 100644 index 00000000000..95a421fafd1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/mtools/mtools-4.0.46.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic unpacker + +DESCRIPTION="Utilities to access MS-DOS disks from Unix without mounting them" +HOMEPAGE="https://www.gnu.org/software/mtools/ https://savannah.gnu.org/projects/mtools" +SRC_URI="mirror://gnu/${PN}/${P}.tar.lz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos ~x64-solaris" +IUSE="gui" + +RDEPEND=" + virtual/libiconv + gui? ( + x11-libs/libICE + x11-libs/libXau + x11-libs/libSM + x11-libs/libX11 + x11-libs/libXt + ) +" +DEPEND="${RDEPEND}" +BDEPEND="$(unpacker_src_uri_depends)" + +src_configure() { + if ! use elibc_glibc && ! use elibc_musl ; then + # bug #447688 + append-libs "-liconv" + fi + + local myeconfargs=( + --sysconfdir="${EPREFIX}"/etc/mtools + $(use_with gui x) + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + local -a DOCS=( README* Release.notes ) + + default + + insinto /etc/mtools + doins mtools.conf + + # Default is fine + sed -i -e '/^SAMPLE FILE$/s:^:#:' "${ED}"/etc/mtools/mtools.conf || die +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/udisks/udisks-2.10.1-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/udisks/udisks-2.10.1-r1.ebuild index d2f4f213c1b..d0175b0d780 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/udisks/udisks-2.10.1-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/udisks/udisks-2.10.1-r1.ebuild @@ -10,7 +10,7 @@ SRC_URI="https://github.com/storaged-project/udisks/releases/download/${P}/${P}. LICENSE="LGPL-2+ GPL-2+" SLOT="2" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc64 ~riscv x86" IUSE="acl +daemon debug elogind +introspection lvm nls selinux systemd" REQUIRED_USE=" 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 index 30de84a18b5..697b783fdc8 100644 --- 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 @@ -11,7 +11,7 @@ SRC_URI="https://www.kernel.org/pub/linux/utils/fs/xfs/${PN}/${P}.tar.xz" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" IUSE="icu libedit nls selinux static-libs" RDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.34-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.34-r2.ebuild index 844737990ff..952c057bfa8 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.34-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.34-r2.ebuild @@ -54,6 +54,9 @@ pkgversion() { } multilib_src_configure() { + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 + filter-lto local myconf=( diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.35.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.35.2.ebuild index d9a5e70a913..c4443d6f5e5 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.35.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.35.2.ebuild @@ -56,6 +56,9 @@ pkgversion() { } multilib_src_configure() { + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 + filter-lto local myconf=( diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.36.1-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.36.1-r2.ebuild index 3e2319ca786..ed7215c3e33 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.36.1-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.36.1-r2.ebuild @@ -54,6 +54,9 @@ pkgversion() { } multilib_src_configure() { + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 + filter-lto local myconf=( diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.37_p1-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.37_p1-r2.ebuild index 80a2ccfbaf8..2434f02290e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.37_p1-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.37_p1-r2.ebuild @@ -55,6 +55,9 @@ pkgversion() { } multilib_src_configure() { + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 + filter-lto local myconf=( diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.38-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.38-r2.ebuild index 64d59c99a5f..95b5e398f89 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.38-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.38-r2.ebuild @@ -69,6 +69,9 @@ pkgversion() { } multilib_src_configure() { + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 + filter-lto local myconf=( diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.39-r5.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.39-r5.ebuild index 6e0753ca216..143416d9fb8 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.39-r5.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.39-r5.ebuild @@ -69,6 +69,9 @@ pkgversion() { } multilib_src_configure() { + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 + filter-lto local myconf=( diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.40-r7.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.40-r7.ebuild index f57205fd73f..9fd6d71b339 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.40-r7.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.40-r7.ebuild @@ -73,6 +73,9 @@ pkgversion() { } multilib_src_configure() { + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 + filter-lto local myconf=( diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.41-r5.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.41-r5.ebuild index f298f4f1f57..a7571995914 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.41-r5.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.41-r5.ebuild @@ -75,6 +75,9 @@ pkgversion() { } multilib_src_configure() { + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 + filter-lto local myconf=( diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.42-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.42-r2.ebuild index c49fead1d74..a24ffb52464 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.42-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.42-r2.ebuild @@ -75,6 +75,9 @@ pkgversion() { } multilib_src_configure() { + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 + filter-lto # Workaround for lld-17 (bug #914640) diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.43-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.43-r2.ebuild index 9bb3ae91aca..bd0b6b20c16 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.43-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.43-r2.ebuild @@ -80,11 +80,10 @@ pkgversion() { } multilib_src_configure() { - filter-lto + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 - # Workaround for lld-17 (bug #914640) - # Should be able to drop this w/ >=binutils-2.43 - append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + filter-lto local myconf=( # portage's econf() does not detect presence of --d-d-t diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.43-r3.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.43-r3.ebuild index b0746db92b9..fd43efffc99 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.43-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-2.43-r3.ebuild @@ -80,11 +80,10 @@ pkgversion() { } multilib_src_configure() { - filter-lto + # https://sourceware.org/PR32372 + append-cflags -std=gnu17 - # Workaround for lld-17 (bug #914640) - # Should be able to drop this w/ >=binutils-2.43 - append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + filter-lto local myconf=( # portage's econf() does not detect presence of --d-d-t diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-9999.ebuild index dd6e1b4c739..fa2530d553b 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/binutils-libs/binutils-libs-9999.ebuild @@ -127,10 +127,6 @@ pkgversion() { multilib_src_configure() { filter-lto - # Workaround for lld-17 (bug #914640) - # Should be able to drop this w/ >=binutils-2.43 - append-ldflags $(test-flags-CCLD -Wl,--undefined-version) - local myconf=( # portage's econf() does not detect presence of --d-d-t # because it greps only top-level ./configure. But not diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/efivar/Manifest index afd23f75ab3..7f8a29329c9 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-libs/efivar/Manifest @@ -1,2 +1 @@ -DIST efivar-38.tar.bz2 320221 BLAKE2B 0b96f3d71ddc2246e6a11a5cd32af3d007823c4a283186a428c3f145cd74425a31bd22c4671ad1ab252a3c572991bb1698381cb8bdf51efcbebd62befdc6c070 SHA512 c2f17297c863ece134a9dd758d237fd2df8c8d072f87af1d0bf2bcf9acfc7a53c25597f03fd4fb8cc664b205743d4ffa0ef1b068d0f73c58fa573d40993f3155 DIST efivar-39.tar.gz 463349 BLAKE2B 73ea4b3293cd708923bcd4332a8c7a5a8bbf539d81300c502a764a2ac205ba7cdf1e30b3432c42a101f56c0b6e31af2907a6a38ada69ace3b0d60e90515094cd SHA512 04493c30efbfc2773abac9a3dd93aa13403c05e29e3bfc72877d2054930811fae99119aadcb1729b6ca85abf5a24db786ea0c27c16d5458ef1b19e74696f5ff7 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/efivar-38.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/efivar/efivar-38.ebuild deleted file mode 100644 index 271b9b2d75d..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/efivar-38.ebuild +++ /dev/null @@ -1,75 +0,0 @@ -# Copyright 2014-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit toolchain-funcs - -DESCRIPTION="Tools and library to manipulate EFI variables" -HOMEPAGE="https://github.com/rhinstaller/efivar" -SRC_URI="https://github.com/rhinstaller/efivar/releases/download/${PV}/${P}.tar.bz2" - -LICENSE="GPL-2" -SLOT="0/1" -KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86" -IUSE="test" -RESTRICT="!test? ( test )" - -BDEPEND=" - app-text/mandoc - test? ( sys-boot/grub:2 ) -" -RDEPEND=" - dev-libs/popt -" -DEPEND="${RDEPEND} - >=sys-kernel/linux-headers-3.18 - virtual/pkgconfig -" - -src_prepare() { - local PATCHES=( - "${FILESDIR}"/efivar-38-march-native.patch - "${FILESDIR}"/efivar-38-Makefile-dep.patch - "${FILESDIR}"/efivar-38-binutils-2.36.patch - "${FILESDIR}"/efivar-38-ld-locale.patch - "${FILESDIR}"/efivar-38-glibc-2.36.patch - "${FILESDIR}"/efivar-38-lld-fixes.patch - "${FILESDIR}"/efivar-38-efisecdb-musl.patch - "${FILESDIR}"/efivar-38-efisecdb-optarg.patch - "${FILESDIR}"/efivar-38-64bit-off_t.patch - - # Rejected upstream, keep this for ia64 support - "${FILESDIR}"/efivar-38-ia64-relro.patch - ) - default -} - -src_configure() { - unset CROSS_COMPILE - export COMPILER=$(tc-getCC) - export HOSTCC=$(tc-getBUILD_CC) - - tc-ld-disable-gold - - export libdir="/usr/$(get_libdir)" - - # https://bugs.gentoo.org/562004 - unset LIBS - - # Avoid -Werror - export ERRORS= - - if [[ -n ${GCC_SPECS} ]]; then - # The environment overrides the command line. - GCC_SPECS+=":${S}/src/include/gcc.specs" - fi - - # Used by tests/Makefile - export GRUB_PREFIX=grub -} - -src_test() { - # https://bugs.gentoo.org/924370 - emake -j1 test -} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-64bit-off_t.patch b/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-64bit-off_t.patch deleted file mode 100644 index d06868b2258..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-64bit-off_t.patch +++ /dev/null @@ -1,46 +0,0 @@ -https://bugs.gentoo.org/905930 - -From 914c686cc54b2405dab08bff77cd60827aab54b1 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 14 Dec 2022 16:55:51 -0800 -Subject: [PATCH] Use off_t instead of off64_t - -Pass _FILE_OFFSET_BITS=64 to ensure 64bit off_t - -This helps building efivar for 32bit arches on systems using musl C -library. It works with glibc since _GNU_SOURCE defines -_LARGEFILE64_SOURCE as well, this feature test macro enables the 64bit -interfaces which were done as intermediate steps when transition to -66-bit off_t was done as part olf LFS64 support. - -Signed-off-by: Khem Raj ---- - src/error.c | 2 +- - src/include/defaults.mk | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/error.c b/src/error.c -index fcbba0d6..9530e22c 100644 ---- a/src/error.c -+++ b/src/error.c -@@ -191,7 +191,7 @@ dbglog_write(void *cookie, const char *buf, size_t size) - } - - static int --dbglog_seek(void *cookie UNUSED, off64_t *offset, int whence) -+dbglog_seek(void *cookie UNUSED, off_t *offset, int whence) - { - FILE *log = efi_errlog ? efi_errlog : stderr; - int rc; -diff --git a/src/include/defaults.mk b/src/include/defaults.mk -index 42bd3d6e..bb9c997f 100644 ---- a/src/include/defaults.mk -+++ b/src/include/defaults.mk -@@ -34,6 +34,7 @@ CPPFLAGS ?= - override _CPPFLAGS := $(CPPFLAGS) - override CPPFLAGS = $(_CPPFLAGS) -DLIBEFIVAR_VERSION=$(VERSION) \ - -D_GNU_SOURCE \ -+ -D_FILE_OFFSET_BITS=64 \ - -I$(TOPDIR)/src/include/ - CFLAGS ?= $(OPTIMIZE) $(DEBUGINFO) $(WARNINGS) $(ERRORS) - CFLAGS_GCC ?= -specs=$(TOPDIR)/src/include/gcc.specs \ diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-Makefile-dep.patch b/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-Makefile-dep.patch deleted file mode 100644 index 64e3f4e0b7c..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-Makefile-dep.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 847856cd72088fd5f2349be858745c632c46b6c8 Mon Sep 17 00:00:00 2001 -From: Mike Gilbert -Date: Mon, 17 Jan 2022 11:42:53 -0500 -Subject: [PATCH] Adjust dependency for libefivar and libefiboot objects - -Depending on 'prep' causes all objects to be rebuilt every time 'make' -is invoked. - -Depending on '$(GENERATED_SOURCES)' causes a build failure because -guid-symbols.c gets passed to the compiler due to a rule in rules.mk. - -Depend on 'include/efivar/efivar-guids.h' directly to avoid these -issues. - -Fixes: https://github.com/rhboot/efivar/issues/199 -Signed-off-by: Mike Gilbert ---- - src/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/Makefile b/src/Makefile -index 0e423c44..c6006ebf 100644 ---- a/src/Makefile -+++ b/src/Makefile -@@ -85,7 +85,7 @@ $(MAKEGUIDS_OUTPUT) : guids.txt - - prep : makeguids $(GENERATED_SOURCES) - --$(LIBEFIVAR_OBJECTS) $(LIBEFIBOOT_OBJECTS) : prep -+$(LIBEFIVAR_OBJECTS) $(LIBEFIBOOT_OBJECTS) : include/efivar/efivar-guids.h - - libefivar.a : | $(GENERATED_SOURCES) - libefivar.a : $(patsubst %.o,%.static.o,$(LIBEFIVAR_OBJECTS)) diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-binutils-2.36.patch b/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-binutils-2.36.patch deleted file mode 100644 index df0575de7f3..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-binutils-2.36.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 197a0874ea4010061b98b4b55eff65b33b1cd741 Mon Sep 17 00:00:00 2001 -From: Robbie Harwood -Date: Mon, 17 Jan 2022 12:34:55 -0500 -Subject: [PATCH] Add -T workaround for GNU ld 2.36 - -Signed-off-by: Robbie Harwood -Resolves: #195 ---- - src/include/workarounds.mk | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/include/workarounds.mk b/src/include/workarounds.mk -index 31188342..143e7902 100644 ---- a/src/include/workarounds.mk -+++ b/src/include/workarounds.mk -@@ -4,12 +4,12 @@ - - LD_FLAVOR := $(shell $(LD) --version | grep -E '^(LLD|GNU ld)'|sed 's/ .*//g') - LD_VERSION := $(shell $(LD) --version | grep -E '^(LLD|GNU ld)'|sed 's/.* //') --# I haven't tested 2.36 here; 2.35 is definitely broken and 2.37 seems to work -+# 2.35 is definitely broken and 2.36 seems to work - LD_DASH_T := $(shell \ - if [ "x${LD_FLAVOR}" = xLLD ] ; then \ - echo '-T' ; \ - elif [ "x${LD_FLAVOR}" = xGNU ] ; then \ -- if echo "${LD_VERSION}" | grep -q -E '^2\.3[789]|^2\.[456789]|^[3456789]|^[[:digit:]][[:digit:]]' ; then \ -+ if echo "${LD_VERSION}" | grep -q -E '^2\.3[6789]|^2\.[456789]|^[3456789]|^[[:digit:]][[:digit:]]' ; then \ - echo '-T' ; \ - else \ - echo "" ; \ diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-efisecdb-musl.patch b/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-efisecdb-musl.patch deleted file mode 100644 index a1bfa631aae..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-efisecdb-musl.patch +++ /dev/null @@ -1,179 +0,0 @@ -From cece3ffd5be2f8641eb694513f2b73e5eb97ffd3 Mon Sep 17 00:00:00 2001 -From: Natanael Copa -Date: Fri, 28 Jan 2022 12:13:30 +0100 -Subject: [PATCH] efisecdb: fix build with musl libc - -Refactor code to use POSIX atexit(3) instead of the GNU specific -on_exit(3). - -Resolves: #197 -Resolves: #202 -Signed-off-by: Natanael Copa ---- - src/compiler.h | 2 -- - src/efisecdb.c | 68 +++++++++++++++++++------------------------------- - 2 files changed, 26 insertions(+), 44 deletions(-) - -diff --git a/src/compiler.h b/src/compiler.h -index e2f18f0b..d95fb014 100644 ---- a/src/compiler.h -+++ b/src/compiler.h -@@ -7,8 +7,6 @@ - #ifndef COMPILER_H_ - #define COMPILER_H_ - --#include -- - /* GCC version checking borrowed from glibc. */ - #if defined(__GNUC__) && defined(__GNUC_MINOR__) - # define GNUC_PREREQ(maj,min) \ -diff --git a/src/efisecdb.c b/src/efisecdb.c -index f8823737..6bd5ad90 100644 ---- a/src/efisecdb.c -+++ b/src/efisecdb.c -@@ -25,6 +25,10 @@ - extern char *optarg; - extern int optind, opterr, optopt; - -+static efi_secdb_t *secdb = NULL; -+static list_t infiles; -+static list_t actions; -+ - struct hash_param { - char *name; - efi_secdb_type_t algorithm; -@@ -187,12 +191,11 @@ add_action(list_t *list, action_type_t action_type, const efi_guid_t *owner, - } - - static void --free_actions(int status UNUSED, void *actionsp) -+free_actions(void) - { -- list_t *actions = (list_t *)actionsp; - list_t *pos, *tmp; - -- for_each_action_safe(pos, tmp, actions) { -+ for_each_action_safe(pos, tmp, &actions) { - action_t *action = list_entry(pos, action_t, list); - - list_del(&action->list); -@@ -202,12 +205,11 @@ free_actions(int status UNUSED, void *actionsp) - } - - static void --free_infiles(int status UNUSED, void *infilesp) -+free_infiles(void) - { -- list_t *infiles = (list_t *)infilesp; - list_t *pos, *tmp; - -- for_each_ptr_safe(pos, tmp, infiles) { -+ for_each_ptr_safe(pos, tmp, &infiles) { - ptrlist_t *entry = list_entry(pos, ptrlist_t, list); - - list_del(&entry->list); -@@ -216,27 +218,12 @@ free_infiles(int status UNUSED, void *infilesp) - } - - static void --maybe_free_secdb(int status UNUSED, void *voidp) -+maybe_free_secdb(void) - { -- efi_secdb_t **secdbp = (efi_secdb_t **)voidp; -- -- if (secdbp == NULL || *secdbp == NULL) -+ if (secdb == NULL) - return; - -- efi_secdb_free(*secdbp); --} -- --static void --maybe_do_unlink(int status, void *filep) --{ -- char **file = (char **)filep; -- -- if (status == 0) -- return; -- if (file == NULL || *file == NULL) -- return; -- -- unlink(*file); -+ efi_secdb_free(secdb); - } - - static void -@@ -323,15 +310,6 @@ parse_input_files(list_t *infiles, char **outfile, efi_secdb_t **secdb, - return status; - } - --/* -- * These need to be static globals so that they're not on main's stack when -- * on_exit() fires. -- */ --static efi_secdb_t *secdb = NULL; --static list_t infiles; --static list_t actions; --static char *outfile = NULL; -- - int - main(int argc, char *argv[]) - { -@@ -351,6 +329,7 @@ main(int argc, char *argv[]) - bool do_sort_data = false; - bool sort_descending = false; - int status = 0; -+ char *outfile = NULL; - - const char sopts[] = ":aAc:dfg:h:i:Lo:rs:t:v?"; - const struct option lopts[] = { -@@ -376,10 +355,9 @@ main(int argc, char *argv[]) - INIT_LIST_HEAD(&infiles); - INIT_LIST_HEAD(&actions); - -- on_exit(free_actions, &actions); -- on_exit(free_infiles, &infiles); -- on_exit(maybe_free_secdb, &secdb); -- on_exit(maybe_do_unlink, &outfile); -+ atexit(free_actions); -+ atexit(free_infiles); -+ atexit(maybe_free_secdb); - - /* - * parse the command line. -@@ -587,24 +565,30 @@ main(int argc, char *argv[]) - outfd = open(outfile, flags, 0600); - if (outfd < 0) { - char *tmpoutfile = outfile; -- if (errno == EEXIST) -- outfile = NULL; -+ if (errno != EEXIST) -+ unlink(outfile); - err(1, "could not open \"%s\"", tmpoutfile); - } - - rc = ftruncate(outfd, 0); -- if (rc < 0) -+ if (rc < 0) { -+ unlink(outfile); - err(1, "could not truncate output file \"%s\"", outfile); -+ } - - void *output; - size_t size = 0; - rc = efi_secdb_realize(secdb, &output, &size); -- if (rc < 0) -+ if (rc < 0) { -+ unlink(outfile); - secdb_err(1, "could not realize signature list"); -+ } - - rc = write(outfd, output, size); -- if (rc < 0) -+ if (rc < 0) { -+ unlink(outfile); - err(1, "could not write signature list"); -+ } - - close(outfd); - xfree(output); diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-efisecdb-optarg.patch b/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-efisecdb-optarg.patch deleted file mode 100644 index 612395efbe1..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-efisecdb-optarg.patch +++ /dev/null @@ -1,51 +0,0 @@ -From df09b472419466987f2f30176dd00937e640aa9a Mon Sep 17 00:00:00 2001 -From: Natanael Copa -Date: Fri, 28 Jan 2022 12:29:00 +0100 -Subject: [PATCH] efisecdb: do not free optarg - -The *outfile passed to parse_input_files can only be either set to -optarg or be NULL. optarg should not be free'd and NULL does not need -to. - -Since we no longer use on_exit to unlink outfile we also don't need to -set *outfile to NULL. - -Fixes commit d91787035bc1 (efisecdb: add efisecdb) - -Signed-off-by: Natanael Copa ---- - src/efisecdb.c | 7 ++----- - 1 file changed, 2 insertions(+), 5 deletions(-) - -diff --git a/src/efisecdb.c b/src/efisecdb.c -index 6bd5ad90..70fa1847 100644 ---- a/src/efisecdb.c -+++ b/src/efisecdb.c -@@ -255,8 +255,7 @@ list_guids(void) - * failure. - */ - static int --parse_input_files(list_t *infiles, char **outfile, efi_secdb_t **secdb, -- bool dump) -+parse_input_files(list_t *infiles, efi_secdb_t **secdb, bool dump) - { - int status = 0; - list_t *pos, *tmp; -@@ -297,8 +296,6 @@ parse_input_files(list_t *infiles, char **outfile, efi_secdb_t **secdb, - if (!dump) - exit(1); - status = 1; -- xfree(*outfile); -- *outfile = NULL; - break; - } - } -@@ -528,7 +525,7 @@ main(int argc, char *argv[]) - efi_secdb_set_bool(secdb, EFI_SECDB_SORT_DATA, do_sort_data); - efi_secdb_set_bool(secdb, EFI_SECDB_SORT_DESCENDING, sort_descending); - -- status = parse_input_files(&infiles, &outfile, &secdb, dump); -+ status = parse_input_files(&infiles, &secdb, dump); - if (status == 0) { - for_each_action_safe(pos, tmp, &actions) { - action_t *action = list_entry(pos, action_t, list); diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-glibc-2.36.patch b/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-glibc-2.36.patch deleted file mode 100644 index 0a7e5f2e099..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-glibc-2.36.patch +++ /dev/null @@ -1,46 +0,0 @@ -https://github.com/rhboot/efivar/commit/bc65d63ebf8fe6ac8a099ff15ca200986dba1565 -https://bugs.gentoo.org/863230 - -From: Robbie Harwood -Date: Thu, 28 Jul 2022 16:11:24 -0400 -Subject: [PATCH] Fix glibc 2.36 build (mount.h conflicts) - -glibc has decided that sys/mount.h and linux/mount.h are no longer -usable at the same time. This broke the build, since linux/fs.h itself -includes linux/mount.h. For now, fix the build by only including -sys/mount.h where we need it. - -See-also: https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E -Resolves: #227 -Signed-off-by: Robbie Harwood ---- a/src/gpt.c -+++ b/src/gpt.c -@@ -17,6 +17,7 @@ - #include - #include - #include -+#include - #include - #include - #include ---- a/src/linux.c -+++ b/src/linux.c -@@ -20,6 +20,7 @@ - #include - #include - #include -+#include - #include - #include - #include ---- a/src/util.h -+++ b/src/util.h -@@ -23,7 +23,6 @@ - #include - #include - #include --#include - #include - #include - #include - diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-ld-locale.patch b/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-ld-locale.patch deleted file mode 100644 index b1dd699a446..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-ld-locale.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 01de7438520868650bfaa1ef3e2bfaf00cacbcc6 Mon Sep 17 00:00:00 2001 -From: Mike Gilbert -Date: Fri, 24 Jun 2022 17:00:33 -0400 -Subject: [PATCH] Set LC_ALL=C to force English output from ld - -If the user has a different locale set, ld --version may not contain the -string "GNU ld". - -For example, in Italian, ld --version outputs "ld di GNU". - -Signed-off-by: Mike Gilbert ---- - src/include/workarounds.mk | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/include/workarounds.mk b/src/include/workarounds.mk -index 143e7902..b72fbaf6 100644 ---- a/src/include/workarounds.mk -+++ b/src/include/workarounds.mk -@@ -2,8 +2,8 @@ - # - # workarounds.mk - workarounds for weird stuff behavior - --LD_FLAVOR := $(shell $(LD) --version | grep -E '^(LLD|GNU ld)'|sed 's/ .*//g') --LD_VERSION := $(shell $(LD) --version | grep -E '^(LLD|GNU ld)'|sed 's/.* //') -+LD_FLAVOR := $(shell LC_ALL=C $(LD) --version | grep -E '^(LLD|GNU ld)'|sed 's/ .*//g') -+LD_VERSION := $(shell LC_ALL=C $(LD) --version | grep -E '^(LLD|GNU ld)'|sed 's/.* //') - # 2.35 is definitely broken and 2.36 seems to work - LD_DASH_T := $(shell \ - if [ "x${LD_FLAVOR}" = xLLD ] ; then \ diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-lld-fixes.patch b/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-lld-fixes.patch deleted file mode 100644 index c0fbee802ed..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-lld-fixes.patch +++ /dev/null @@ -1,345 +0,0 @@ -https://bugs.gentoo.org/831472 - -From b23aba1469de8bb7a115751f9cd294ad3aaa6680 Mon Sep 17 00:00:00 2001 -From: Ali Abdel-Qader -Date: Tue, 31 May 2022 11:53:32 -0400 -Subject: [PATCH] Remove deprecated --add-needed linker flag - -Resolves #204 -Signed-off-by: Ali Abdel-Qader ---- - src/include/defaults.mk | 2 -- - src/include/gcc.specs | 2 +- - 2 files changed, 1 insertion(+), 3 deletions(-) - -diff --git a/src/include/defaults.mk b/src/include/defaults.mk -index b8cc590c..42bd3d6e 100644 ---- a/src/include/defaults.mk -+++ b/src/include/defaults.mk -@@ -51,7 +51,6 @@ LDFLAGS ?= - override _CCLDFLAGS := $(CCLDFLAGS) - override _LDFLAGS := $(LDFLAGS) - override LDFLAGS = $(CFLAGS) -L. $(_LDFLAGS) $(_CCLDFLAGS) \ -- -Wl,--add-needed \ - -Wl,--build-id \ - -Wl,--no-allow-shlib-undefined \ - -Wl,--no-undefined-version \ -@@ -98,7 +97,6 @@ override _HOST_LDFLAGS := $(HOST_LDFLAGS) - override _HOST_CCLDFLAGS := $(HOST_CCLDFLAGS) - override HOST_LDFLAGS = $(HOST_CFLAGS) -L. \ - $(_HOST_LDFLAGS) $(_HOST_CCLDFLAGS) \ -- -Wl,--add-needed \ - -Wl,--build-id \ - -Wl,--no-allow-shlib-undefined \ - -Wl,-z,now \ -diff --git a/src/include/gcc.specs b/src/include/gcc.specs -index ef28e2bb..d85e8658 100644 ---- a/src/include/gcc.specs -+++ b/src/include/gcc.specs -@@ -5,4 +5,4 @@ - + %{!shared:%{!static:%{!r:-pie}}} %{static:-Wl,-no-fatal-warnings -Wl,-static -static -Wl,-z,relro,-z,now} -grecord-gcc-switches - - *link: --+ %{!static:--fatal-warnings} --no-undefined-version --no-allow-shlib-undefined --add-needed -z now --build-id %{!static:%{!shared:-pie}} %{shared:-z relro} %{static:% -Date: Wed, 29 Jun 2022 21:44:29 +0200 -Subject: [PATCH] LLD: fix detection and remove not needed workarounds -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Tomasz Paweł Gajc ---- - src/include/workarounds.mk | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/include/workarounds.mk b/src/include/workarounds.mk -index b72fbaf6..57394edd 100644 ---- a/src/include/workarounds.mk -+++ b/src/include/workarounds.mk -@@ -2,12 +2,12 @@ - # - # workarounds.mk - workarounds for weird stuff behavior - --LD_FLAVOR := $(shell LC_ALL=C $(LD) --version | grep -E '^(LLD|GNU ld)'|sed 's/ .*//g') --LD_VERSION := $(shell LC_ALL=C $(LD) --version | grep -E '^(LLD|GNU ld)'|sed 's/.* //') -+LD_FLAVOR := $(shell LC_ALL=C $(LD) --version | grep -E '^((.* )?LLD|GNU ld)'|sed 's/.* LLD/LLD/;s/ .*//g') -+LD_VERSION := $(shell LC_ALL=C $(LD) --version | grep -E '^((.* )?LLD|GNU ld)'|sed 's/.* LLD/LLD/;s/.* //') - # 2.35 is definitely broken and 2.36 seems to work - LD_DASH_T := $(shell \ - if [ "x${LD_FLAVOR}" = xLLD ] ; then \ -- echo '-T' ; \ -+ echo "" ; \ - elif [ "x${LD_FLAVOR}" = xGNU ] ; then \ - if echo "${LD_VERSION}" | grep -q -E '^2\.3[6789]|^2\.[456789]|^[3456789]|^[[:digit:]][[:digit:]]' ; then \ - echo '-T' ; \ -@@ -15,7 +15,7 @@ LD_DASH_T := $(shell \ - echo "" ; \ - fi ; \ - else \ -- echo "Your linker is not supported" ; \ -+ echo "Your linker ${LD_FLAVOR} version ${LD_VERSION} is not supported" ; \ - exit 1 ; \ - fi) - -From cfd686de51494d3e34be896a91835657ccab37d4 Mon Sep 17 00:00:00 2001 -From: Nicholas Vinson -Date: Mon, 10 Oct 2022 14:22:36 -0400 -Subject: [PATCH] Revamp efi_well_known_* variable handling - -The current implementation attempts to use the linker to create aliases -for efi_well_known_guids and efi_well_known_names. It also tries to use -the linker to generate the variables efi_well_known_guids_end and -efi_well_known_names_end. - -When building with clang, the generated linker result results in a -broken libefivar.so that causes programs to segfault when linked against -it. This change does away with linker script hacker and instead -introduces pointers to store the locations of efi_well_known_guids_end -and efi_well_known_names_end. - -Additionally, efi_well_known_guids and efi_well_known_names are now -created as pointers that point to the beginning of their respective -arrays. - -Signed-off-by: Nicholas Vinson -Fixes: #234 ---- - src/Makefile | 7 ++-- - src/include/rules.mk | 5 +-- - src/include/workarounds.mk | 24 ------------- - src/makeguids.c | 72 +++++++++++++------------------------- - 4 files changed, 27 insertions(+), 81 deletions(-) - delete mode 100644 src/include/workarounds.mk - -diff --git a/src/Makefile b/src/Makefile -index e04357a7..ec1eabe6 100644 ---- a/src/Makefile -+++ b/src/Makefile -@@ -4,7 +4,6 @@ include $(TOPDIR)/src/include/deprecated.mk - include $(TOPDIR)/src/include/version.mk - include $(TOPDIR)/src/include/rules.mk - include $(TOPDIR)/src/include/defaults.mk --include $(TOPDIR)/src/include/workarounds.mk - - LIBTARGETS=libefivar.so libefiboot.so libefisec.so - STATICLIBTARGETS=libefivar.a libefiboot.a libefisec.a -@@ -30,7 +29,7 @@ EFISECDB_OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(EFISECDB_SOURCES))) - GENERATED_SOURCES = include/efivar/efivar-guids.h guid-symbols.c - MAKEGUIDS_SOURCES = makeguids.c util-makeguids.c - MAKEGUIDS_OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(MAKEGUIDS_SOURCES))) --MAKEGUIDS_OUTPUT = $(GENERATED_SOURCES) guids.lds -+MAKEGUIDS_OUTPUT = $(GENERATED_SOURCES) - - util-makeguids.c : util.c - cp util.c util-makeguids.c -@@ -84,7 +83,7 @@ $(MAKEGUIDS_OUTPUT) : guids.txt - if [ "$${missing}" != "no" ]; then \ - exit 1 ; \ - fi -- ./makeguids $(LD_DASH_T) guids.txt guid-symbols.c include/efivar/efivar-guids.h guids.lds -+ ./makeguids guids.txt guid-symbols.c include/efivar/efivar-guids.h - - prep : makeguids $(GENERATED_SOURCES) - -@@ -96,7 +95,6 @@ libefivar.a : $(patsubst %.o,%.static.o,$(LIBEFIVAR_OBJECTS)) - libefivar.so : $(LIBEFIVAR_OBJECTS) - libefivar.so : | $(GENERATED_SOURCES) libefivar.map - libefivar.so : LIBS=dl --libefivar.so : LDSCRIPTS=guids.lds - libefivar.so : MAP=libefivar.map - - efivar : $(EFIVAR_OBJECTS) | libefivar.so -@@ -137,7 +135,6 @@ deps : $(ALL_SOURCES) - clean : - @rm -rfv *~ *.o *.a *.E *.so *.so.* *.pc *.bin .*.d *.map \ - makeguids guid-symbols.c include/efivar/efivar-guids.h \ -- guids.lds \ - $(TARGETS) $(STATICTARGETS) - @# remove the deps files we used to create, as well. - @rm -rfv .*.P .*.h.P *.S.P include/efivar/.*.h.P -diff --git a/src/include/rules.mk b/src/include/rules.mk -index f309f863..8d0b68a2 100644 ---- a/src/include/rules.mk -+++ b/src/include/rules.mk -@@ -3,7 +3,6 @@ default : all - .PHONY: default all clean install test - - include $(TOPDIR)/src/include/version.mk --include $(TOPDIR)/src/include/workarounds.mk - - comma:= , - empty:= -@@ -36,9 +35,7 @@ family = $(foreach FAMILY_SUFFIX,$(FAMILY_SUFFIXES),$($(1)_$(FAMILY_SUFFIX))) - $(CCLD) $(CCLDFLAGS) $(CPPFLAGS) -o $@ $(sort $^) $(LDLIBS) - - %.so : -- $(CCLD) $(CCLDFLAGS) $(CPPFLAGS) $(SOFLAGS) \ -- $(foreach LDS,$(LDSCRIPTS),$(LD_DASH_T) $(LDS)) \ -- -o $@ $^ $(LDLIBS) -+ $(CCLD) $(CCLDFLAGS) $(CPPFLAGS) $(SOFLAGS) -o $@ $^ $(LDLIBS) - ln -vfs $@ $@.1 - - %.abixml : %.so -diff --git a/src/include/workarounds.mk b/src/include/workarounds.mk -deleted file mode 100644 -index 57394edd..00000000 ---- a/src/include/workarounds.mk -+++ /dev/null -@@ -1,24 +0,0 @@ --# SPDX-License-Identifier: SPDX-License-Identifier: LGPL-2.1-or-later --# --# workarounds.mk - workarounds for weird stuff behavior -- --LD_FLAVOR := $(shell LC_ALL=C $(LD) --version | grep -E '^((.* )?LLD|GNU ld)'|sed 's/.* LLD/LLD/;s/ .*//g') --LD_VERSION := $(shell LC_ALL=C $(LD) --version | grep -E '^((.* )?LLD|GNU ld)'|sed 's/.* LLD/LLD/;s/.* //') --# 2.35 is definitely broken and 2.36 seems to work --LD_DASH_T := $(shell \ -- if [ "x${LD_FLAVOR}" = xLLD ] ; then \ -- echo "" ; \ -- elif [ "x${LD_FLAVOR}" = xGNU ] ; then \ -- if echo "${LD_VERSION}" | grep -q -E '^2\.3[6789]|^2\.[456789]|^[3456789]|^[[:digit:]][[:digit:]]' ; then \ -- echo '-T' ; \ -- else \ -- echo "" ; \ -- fi ; \ -- else \ -- echo "Your linker ${LD_FLAVOR} version ${LD_VERSION} is not supported" ; \ -- exit 1 ; \ -- fi) -- --export LD_DASH_T -- --# vim:ft=make -diff --git a/src/makeguids.c b/src/makeguids.c -index 376bffba..bfdee12e 100644 ---- a/src/makeguids.c -+++ b/src/makeguids.c -@@ -107,51 +107,46 @@ write_guidnames(FILE *out, const char *listname, - gn->symbol, gn->name, gn->description); - } - fprintf(out, "};\n"); -+ fprintf(out, "const struct efivar_guidname\n" -+ "\t__attribute__((__visibility__ (\"default\")))\n" -+ "\t* const %s = %s_;\n", listname, listname); -+ fprintf(out, "const struct efivar_guidname\n" -+ "\t__attribute__((__visibility__ (\"default\")))\n" -+ "\t* const %s_end = %s_\n\t+ %zd;\n", -+ listname, listname, n - 1); - } - - int - main(int argc, char *argv[]) - { - int rc; -- int argstart = 0; -- FILE *symout, *header, *ldsout; -- int dash_t = 0; -+ FILE *symout, *header; - -- if (argc < 5) { -+ if (argc < 4) { - errx(1, "Not enough arguments.\n"); -- } else if (argc > 5 && !strcmp(argv[1],"-T")) { -- argstart = 1; -- dash_t = 1; -- } else if (argc > 5) { -+ } else if (argc > 4) { - errx(1, "Too many arguments.\n"); - } - -- symout = fopen(argv[argstart + 2], "w"); -+ symout = fopen(argv[2], "w"); - if (symout == NULL) -- err(1, "could not open \"%s\"", argv[argstart + 2]); -- rc = chmod(argv[argstart + 2], 0644); -+ err(1, "could not open \"%s\"", argv[2]); -+ rc = chmod(argv[2], 0644); - if (rc < 0) -- warn("chmod(%s, 0644)", argv[argstart + 2]); -+ warn("chmod(%s, 0644)", argv[2]); - -- header = fopen(argv[argstart + 3], "w"); -+ header = fopen(argv[3], "w"); - if (header == NULL) -- err(1, "could not open \"%s\"", argv[argstart + 3]); -- rc = chmod(argv[argstart + 3], 0644); -- if (rc < 0) -- warn("chmod(%s, 0644)", argv[argstart + 3]); -- -- ldsout = fopen(argv[argstart + 4], "w"); -- if (ldsout == NULL) -- err(1, "could not open \"%s\"", argv[argstart + 4]); -- rc = chmod(argv[argstart + 4], 0644); -+ err(1, "could not open \"%s\"", argv[3]); -+ rc = chmod(argv[3], 0644); - if (rc < 0) -- warn("chmod(%s, 0644)", argv[argstart + 4]); -+ warn("chmod(%s, 0644)", argv[3]); - - struct guidname_index *guidnames = NULL; - -- rc = read_guids_at(AT_FDCWD, argv[argstart + 1], &guidnames); -+ rc = read_guids_at(AT_FDCWD, argv[1], &guidnames); - if (rc < 0) -- err(1, "could not read \"%s\"", argv[argstart + 1]); -+ err(1, "could not read \"%s\"", argv[1]); - - struct efivar_guidname *outbuf; - -@@ -243,12 +238,11 @@ struct efivar_guidname {\n\ - fprintf(header, - "extern const struct efivar_guidname\n" - "\t__attribute__((__visibility__ (\"default\")))\n" -- "\tefi_well_known_guids[%d];\n", -- i); -+ "\t* const efi_well_known_guids;\n"); - fprintf(header, - "extern const struct efivar_guidname\n" - "\t__attribute__((__visibility__ (\"default\")))\n" -- "\tefi_well_known_guids_end;\n"); -+ "\t* const efi_well_known_guids_end;\n"); - fprintf(header, - "extern const uint64_t\n" - "\t__attribute__((__visibility__ (\"default\")))\n" -@@ -256,12 +250,11 @@ struct efivar_guidname {\n\ - fprintf(header, - "extern const struct efivar_guidname\n" - "\t__attribute__((__visibility__ (\"default\")))\n" -- "\tefi_well_known_names[%d];\n", -- i); -+ "\t* const efi_well_known_names;\n"); - fprintf(header, - "extern const struct efivar_guidname\n" - "\t__attribute__((__visibility__ (\"default\")))\n" -- "\tefi_well_known_names_end;\n"); -+ "\t* const efi_well_known_names_end;\n"); - fprintf(header, - "extern const uint64_t\n" - "\t__attribute__((__visibility__ (\"default\")))\n" -@@ -310,23 +303,6 @@ struct efivar_guidname {\n\ - - fclose(symout); - -- fprintf(ldsout, -- "SECTIONS\n" -- "{\n" -- " .data :\n" -- " {\n" -- " efi_well_known_guids = efi_well_known_guids_;\n" -- " efi_well_known_guids_end = efi_well_known_guids_ + %zd;\n" -- " efi_well_known_names = efi_well_known_names_;\n" -- " efi_well_known_names_end = efi_well_known_names_ + %zd;\n" -- " }\n" -- "}%s;\n", -- (line - 1) * sizeof(struct efivar_guidname), -- (line - 1) * sizeof(struct efivar_guidname), -- dash_t ? " INSERT AFTER .data" : ""); -- -- fclose(ldsout); -- - free(guidnames->strtab); - free(guidnames); - diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-march-native.patch b/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-march-native.patch deleted file mode 100644 index a970d8d6de6..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/efivar/files/efivar-38-march-native.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 43d19f297548208ce549fd87faa41e6bb86bf9c3 Mon Sep 17 00:00:00 2001 -From: Mike Gilbert -Date: Mon, 17 Jan 2022 10:13:31 -0500 -Subject: [PATCH] Drop "-march=native" from HOST flags - -GCC does not support -march=native on some targets (ia64, riscv). -The performance enhancement for makeguids isn't worth the trouble it -causes. - -Bug: https://bugs.gentoo.org/831334 -Signed-off-by: Mike Gilbert ---- - src/include/defaults.mk | 8 +------- - 1 file changed, 1 insertion(+), 7 deletions(-) - -diff --git a/src/include/defaults.mk b/src/include/defaults.mk -index 632b1551..9024a3a1 100644 ---- a/src/include/defaults.mk -+++ b/src/include/defaults.mk -@@ -71,16 +71,10 @@ override SOFLAGS = $(_SOFLAGS) \ - -Wl,--version-script=$(MAP) \ - $(call family,SOFLAGS) - --HOST_ARCH=$(shell uname -m) --ifneq ($(HOST_ARCH),ia64) -- HOST_MARCH=-march=native --else -- HOST_MARCH= --endif - HOST_CPPFLAGS ?= $(CPPFLAGS) - override _HOST_CPPFLAGS := $(HOST_CPPFLAGS) - override HOST_CPPFLAGS = $(_HOST_CPPFLAGS) \ -- -DEFIVAR_BUILD_ENVIRONMENT $(HOST_MARCH) -+ -DEFIVAR_BUILD_ENVIRONMENT - HOST_CFLAGS_GCC ?= - HOST_CFLAGS_CLANG ?= - HOST_CFLAGS ?= $(CFLAGS) $(call family,HOST_CFLAGS) diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/gdbm/gdbm-1.24.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/gdbm/gdbm-1.24.ebuild index 187ddbe1493..122b7b2c809 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/gdbm/gdbm-1.24.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/gdbm/gdbm-1.24.ebuild @@ -4,7 +4,7 @@ EAPI=8 VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gdbm.asc -inherit libtool multilib-minimal multiprocessing verify-sig +inherit flag-o-matic libtool multilib-minimal multiprocessing verify-sig DESCRIPTION="Standard GNU database libraries" HOMEPAGE="https://www.gnu.org/software/gdbm/" @@ -35,6 +35,9 @@ src_prepare() { } multilib_src_configure() { + # https://puszcza.gnu.org.ua/bugs/index.php?642 + append-cflags -std=gnu17 + # gdbm doesn't appear to use either of these libraries export ac_cv_lib_dbm_main=no ac_cv_lib_ndbm_main=no diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libnvme/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/libnvme/Manifest index a15cd0ada6d..b084f510e78 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libnvme/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libnvme/Manifest @@ -1,3 +1,4 @@ DIST libnvme-1.10.gh.tar.gz 720737 BLAKE2B eb5941cbdec1ccf5782c3e438b55dd09ddd2c3b9ac1079d5642896d0d80d75ece3149ebe9d965c2783a5ae2ddfad64ae0051f9c63822a739108d53eb44a583db SHA512 44e8a407c9fda8c296163832c14ba167caab53eab315bd2dee94275458532429f12a35e0adef1356420d83127e658a354ce65ac946acaa53bef2d46a8189054c +DIST libnvme-1.11.1.gh.tar.gz 740327 BLAKE2B eb9a731ce4886e7a76170d4be916e850548710dbbc135bbe94c5ff0c2f3da5e2cb162a6c8ea857d6b9b609ffafba34487cd3419fc4981e9e549419c2bb757568 SHA512 8720f2907a3d13af44fb3deec883cd6eb247d5861c4459b5fe0e67ff9ecfb565462a5faf39d43e08b5284f3e8ca8e72d41b333984beaa45d3287b1a258f3e59d DIST libnvme-1.11.gh.tar.gz 740365 BLAKE2B c4d5950b0d0769f1aaddc6d82364ad14ae3b1b6e2b5d16225c8599833e51516c14b8802b77562b08cbb54c15b8e5814d7f5b059939c197b87375afba899ffe3d SHA512 5c1d00fe57ff699be01c326e24612da25e1772578928e2c70fb5f67e8a9fe0fa4c95e18f58d4abefa0e163e99c9e37b1109298e805e174b033e749d19865336b DIST libnvme-1.9.tar.gz 657952 BLAKE2B e9d655709770f7c1d9c916cc9539b8ea096b0d5bf6b12079c2db494f070c98b6c388e2a79ed27a4932994a00d44da93fa3119ee224c48d40347a483548397349 SHA512 39a3346805143f93a17d00cfcb6fb75f82154658db6079134c09dfa989995ac5de79b1ce1ac091b4e997523d3216829ce9eac44110c9f59f9fd21636529c8b25 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libnvme/libnvme-1.11.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libnvme/libnvme-1.11.1.ebuild new file mode 100644 index 00000000000..874a7a0f583 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libnvme/libnvme-1.11.1.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} python3_13t ) +inherit python-r1 meson + +DESCRIPTION="C Library for NVM Express on Linux" +HOMEPAGE="https://github.com/linux-nvme/libnvme" +SRC_URI="https://github.com/linux-nvme/libnvme/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz" + +LICENSE="LGPL-2.1+" +SLOT="0/1" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="dbus +json keyutils python ssl test +uuid" +RESTRICT="!test? ( test )" + +REQUIRED_USE=" + python? ( ${PYTHON_REQUIRED_USE} ) +" + +DEPEND=" + json? ( dev-libs/json-c:= ) + keyutils? ( sys-apps/keyutils:= ) + dbus? ( sys-apps/dbus:= ) + python? ( ${PYTHON_DEPS} ) + ssl? ( >=dev-libs/openssl-1.1:= ) + uuid? ( sys-apps/util-linux:= ) +" +RDEPEND=" + ${DEPEND} +" +BDEPEND=" + dev-lang/swig +" + +src_configure() { + local emesonargs=( + -Dpython=disabled + $(meson_use test tests) + $(meson_feature json json-c) + $(meson_feature dbus libdbus) + $(meson_feature keyutils) + $(meson_feature ssl openssl) + ) + meson_src_configure +} + +python_compile() { + local emesonargs=( + -Dpython=enabled + ) + meson_src_configure --reconfigure + meson_src_compile +} + +src_compile() { + meson_src_compile + + if use python; then + python_copy_sources + python_foreach_impl python_compile + fi +} + +python_install() { + meson_src_install + use python && python_optimize +} + +src_install() { + use python && python_foreach_impl python_install + + meson_src_install +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libseccomp/libseccomp-2.5.5-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libseccomp/libseccomp-2.5.5-r2.ebuild index 3baf6b3db7a..ae8ba3daf71 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libseccomp/libseccomp-2.5.5-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libseccomp/libseccomp-2.5.5-r2.ebuild @@ -24,7 +24,7 @@ else SRC_URI="https://github.com/seccomp/libseccomp/releases/download/v${PV}/${P}.tar.gz experimental-loong? ( https://github.com/matoro/libseccomp/compare/v${PV}..loongarch-r1.patch -> ${P}-loongarch-r1.patch )" - KEYWORDS="-* ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux" + KEYWORDS="-* amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux" fi LICENSE="LGPL-2.1" diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/Manifest index 46bc58b003a..adc0b5c660d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/Manifest @@ -155,6 +155,43 @@ DIST ncurses-6.5-20240608.patch.gz 51416 BLAKE2B 8bb8141fe13e770837d1f2fee3902e4 DIST ncurses-6.5-20240608.patch.gz.asc 729 BLAKE2B 2788a5172f7ee437be0aa61fadf04a62c459777e33f150500c32bc29c80c0dee83cb267f3e8174a316363a196bd415401c5e8f56049487855eff814f8047e88c SHA512 ab2162f9cb7e587ff2d049dd1c50b36cfb4cc4914b9c53067dbbca8cbbb63dfe47a690385ae72c2feb5a73dee965e844b4d76ce31463ee0e0f052e4706d4f4ed DIST ncurses-6.5-20240615.patch.gz 10195 BLAKE2B 0bfb266ebeb1c92b48ce2c2d2e193671dccb26e90d4bb61a4394360b8b3029087eb65be05e3ab20c665da82a8619354fa5c2b99ce6e3bab6e27b4029e8e5919a SHA512 d72e9334b58ff800ee189a20713c7be65a78aad05aae16f537355e5e48495f1658291552569454c744b9c5d9af3199d892ecf8d41a9917bd83b81238c87c5564 DIST ncurses-6.5-20240615.patch.gz.asc 729 BLAKE2B 1e7179beb1908ae8c9733c0f55e5e027d2e6bab5265603f3d61063bd5a746a395c75e6f134bc2314277735e881a828790901e735e17bdef54b7cbd54e4d2d72d SHA512 ecc1adb886abb8364c93c0155412198e4e64955643de38ebbc3bff77c6675d537b135a138f68b6c216f6b50df8ccca0b63b83f32cad7c20a5d552305f103c0f8 +DIST ncurses-6.5-20240622.patch.gz 39926 BLAKE2B e4e9cb212e0e5544475e0c9a775772af599370f52b2c1b5af96129c978e5976c78f126694db5ae740cb2dd1c58447658df6b161498c2968280be7ef44bfcf8fd SHA512 1b62e19d6dd5bab3f9e4194262faa8bcb4c09bd013dfe4fc2828471481c835b89b1036c5c72d3051ac989f90db8c7de931b61132535242bea0a5d4946df168e2 +DIST ncurses-6.5-20240622.patch.gz.asc 729 BLAKE2B 1e19a9b7e6454d038a3544e1ad3789a5838d88dd648b1150ad8e76ac918a24fee4bc3cc837aa86a20af01b555521041b2fc1b886cfe72502c658ffff64141419 SHA512 588d791f6e10b83d4b3e5d2c48328654931e6b29309e428a34e3bd8fb4748113800ac08cff88901e30699f30cfdbc495226d33bb826145daa2512564d0e99b58 +DIST ncurses-6.5-20240629.patch.gz 5900 BLAKE2B 72467fe7281f4feb8fa2b680c13fbd65423cd8f901aaf4083e43d5f151108c661280b810f1a52a653c8f50908df8e4a7fae37a7534b37319a1e8fdde48db7308 SHA512 d732b90822e4fe12db0e1137c7bb4aa3e4413d3c1567314d9197151f936b89fb03492e5d2b1eac39d1a59cc74a753f5600b937d3a9e4c25d697f877a323e162b +DIST ncurses-6.5-20240629.patch.gz.asc 729 BLAKE2B 7698deeae21ce812400eab55b8297d49195d9e327cc9a6c0879b18f9af2a93500b71dc58795e42784c658eeaee34c4345257b669eefe912986b83ca443cad943 SHA512 094732e2ef0fbbc2f50b772d188f3d91a7a881ead8357acfb435005750db150af70c9373ab858711ec1484f836e496518de8fd0a0bab42d0922c6007ff326f49 +DIST ncurses-6.5-20240706.patch.gz 207005 BLAKE2B 48adb97d3b239659caab53b6fd3218f5792292eb883164ae9de1216c9e0240cd4f7d659627e236800d75a27a0352bf8cc276497828c868c286b70b433b6b5f3a SHA512 3c5509279fd7462b34044bd88bac025319d920f1191e1359ad67f3c393d0ac2c96ebb0b1cbf4152f17a5283ffc35ce5621114bf988a41e7422eb95b2699c7c31 +DIST ncurses-6.5-20240706.patch.gz.asc 729 BLAKE2B b41d5f1c2c657dd24fdf6a40dc21a1857b0084ae36e64ae85707489240281d7d3141ff39742dafe40cbdc3f370cd148eb1477831a412d9e95e67c7e969d53abe SHA512 d8061bbb0478329c8939315fb4c1fa370abfb3cfb04286143d7bdfb49d5070e867ce4841d196179d2ed24c53ec463b88900ac2a75a161a5f074d1a47b034e019 +DIST ncurses-6.5-20240713.patch.gz 2449 BLAKE2B 9ffa48394997717af01c6c51f5c1fe5ecb6b160c839811432eba31961bc6b1403f91fe37357c710a4092693dd097088da8d5a8bdb8139e1e78fe4f62f3f1869f SHA512 61f2bbdc2cd2d577ccff6f6df32fc8b75f8a88e1fa83af187ac1d34a0b05fca814a7697a94ef2abc45c4ed548431ecfde14c88542b3f51e21ab862137d1a4978 +DIST ncurses-6.5-20240713.patch.gz.asc 729 BLAKE2B eeaa43f32112e05968090ef4aac7891310be6ca10c290407d2bff0cc4cd503f369a9cf5ae26b9deb1dfd70d86dae0398a964c789e122c00a9df65f976e7485de SHA512 208fa796bbb99444050206c756714602cf205b7224d3ed0ed1f98633b9e8eb713cfa9bfdaf3f7d5793139fac3451518605e00b339619fdfb71bc51fce7248f23 +DIST ncurses-6.5-20240720.patch.gz 39097 BLAKE2B 21f740519d43f63a3ae81d17fa3aab983adfecb02bd29e86386f396f62f0471ea6492b460164fd7c1dbadacd923e6a46db5493cc6bc2a6e99c1965796a6f54d5 SHA512 7c853907bcbdf4f40e4840eea9a23169e483a4ae745cda96d13f59a13e3a00d2014420304a7fc9248eda78fbc2a737136ec68122e1d7b8c306efe2414c74cfb9 +DIST ncurses-6.5-20240720.patch.gz.asc 729 BLAKE2B f11bd9c44bb3a83ebeae3e23c20952fe2ae22f02d5e4e633320f6e3bd954ae34dbd1647e86f5a8cbc7eb5f68c3192019e73865490edf81d9b5f1415bb77bc3dd SHA512 b2e767124a5f6fe0f2236463129e846f9732da26453daf744ff8fd7d03cee5a99b482beb24c400142053a7a157b68b5979dffbd1976a7dcf93f247ac24f96c47 +DIST ncurses-6.5-20240727.patch.gz 63193 BLAKE2B 1f4cf97a2cf72fc2701faed1992cdd819c7eb9953fd29d20ddb73fd4ec9096e86ee4213dee72b4670c283acd258a362d2ac7338224bb848a5e2f0d41b3eea8aa SHA512 a334877ad690f115cb4e713227886cbdbbb53be0a36144879f3de379ed914d5eba0e0da3f23a229ef9ae7e34fbc067df58cab6ed3d7021c011001cb8c1735229 +DIST ncurses-6.5-20240727.patch.gz.asc 729 BLAKE2B 40ad3e1ced4cc3295a8d2c3106afd61ca70016336fbd5f87f93dcab881850760299288b1a7efa900dc09bca927da02e2cf28dfd3369effef319dae0bc43cbc2e SHA512 ac813066599989a014aea3d969aa494be518f8703d9a7d42be665c584dd1896bae974f4b16d3a19974422768c37a1215e33e429f2079a05a40df03c9ab432e1e +DIST ncurses-6.5-20240810.patch.gz 201729 BLAKE2B b201c1d45fcf5624588fbf527447383b2df4cb63db25eb790b32c6d48fd713897a0945a3c01367e8b4447d94766fdad05f7075b140bbf134d3dd25841dc9624c SHA512 d92c644e32102cd07aa3017f8a8834eb0ff22b74ee69f8c883b693dda5437b83cd2696796656fb42b9ca89e17750b7ba3aeacdcdb4ac8f8d9cfbbc64c7a5c5b0 +DIST ncurses-6.5-20240810.patch.gz.asc 729 BLAKE2B 6a100e4869acdac426de92f70a0417c0a36400bfee70ac9be827b72168ca2bd8b83dc161be718738b919af2110ed2666e5480792afc854546130f2e6efc90557 SHA512 3f53f9223de96d996c6dd34392223cba9e0f092eb1d77cefc605a6c98d44cf3c01f372a0665aa04d405be65adc3c4af5e89adb085bd1e6447b71e01d47a1c910 +DIST ncurses-6.5-20240817.patch.gz 216360 BLAKE2B 605e180fef6d63d4a6264f31889817f0572201ab682be5e52f6b28f6769ab3b5895ef81fd5a3cb65350a7402b9310358846bcc8b7bd02d38c619007922c47bf1 SHA512 8bb65c7559052e95e69ab02ba741634a3c4a35a38f3486369be98ffdf11f592d5db911c74804ae6b63f82c2084b02fa2ba19cf9b0268d03eeb6ae74d9787549e +DIST ncurses-6.5-20240817.patch.gz.asc 729 BLAKE2B 958af03dd5a4fe9d55424375955779b863f60bfe447b658e308725a2a028f328904ee23410462d1cf77bda62a7b1878355f0d5311149a9141677a59b69b0078e SHA512 2d22b140f3014856f9bc2334532c90feff9badcbb26d2e6a938614e41a3c389dffd19634ca3d995120fbf531d2bece1d3a82e20cc10d24b544559559d928165a +DIST ncurses-6.5-20240824.patch.gz 3629 BLAKE2B ac6048c076f71b094eedf5362b7aa07f20e042785411ebb571f49ea23f42f251b0787d8a34436939b350afde7120f60ce106ff0b27339db62be53ca2272a7d6f SHA512 f3cd9052a956149df24629e9279912ba628a9905921aae6b6c9ad5f75069dc9feddbcb415dd15df083c42f846b79456f4dc5cebbb45cdcb0c4eb45bdc205705c +DIST ncurses-6.5-20240824.patch.gz.asc 729 BLAKE2B 99102e7aae310f0384ba6355871697d01e75e5d24558aa5246196931ab66d507a8e3edabe0961f12f6be4f78b7572a672cff5f258eb0bda1926ac2156f55a5f8 SHA512 58b0322baddae5525b5ab6841598101b6b01324070f6b14998eb985c9ba177df7ada4319581e8f9a826607fc70a2ec2262320d01be8d5b5f0088e4dde74d129d +DIST ncurses-6.5-20240831.patch.gz 7435 BLAKE2B 3fddad4a06fc417808c9a870c137ac3d1bb9ed9b267e73f5b8aea0fac84a83c574ae631a0b9406fbda069b94308d345a4db12b4ec357254c0128fd93983937c6 SHA512 b7461a6a882835886a8125dfa3c1668520684dbb0476000f9a55f7d60a05508d773efa398094be0f0e5beaa229467acc817450c7989d659ace8b74a658534908 +DIST ncurses-6.5-20240831.patch.gz.asc 729 BLAKE2B 364956498e80789288fc95630e5dacd388de6c052a3995fdb2d266183b77749ebd237489ba0130196e332fd6ec1d73e6118f82ae02a3378d7cc26e5a7059c487 SHA512 fc2b71715ab33556a22d26c9e6eac35c156dc86dddf42be6f5f60393100b5373eda482f5ae4519deb1e0acbf4e5ac21880350904948aab533355d8d1e89356a5 +DIST ncurses-6.5-20240914.patch.gz 95552 BLAKE2B a03862fa2fb6ba9a64f46b67c2e1d03ec2efc93a10d7c696587a1b8af8c4b1c8af1584fdac7513978fe2214e89d99c3de14f4344b76491d1224e4bf25290f685 SHA512 5656865e0355e79217f0936240bfa3ad0537f2ec4d02f36e188069e5404d33b8794654f9116d86cea0f997dfcfbfb54a326d8548d572911e3543a91605166db4 +DIST ncurses-6.5-20240914.patch.gz.asc 729 BLAKE2B 2343a2a2a56d5fe34a2b30f40902c67e2ca146071f6a76a6f42e0194b38b922b1f06df12268504e1a3eaa06fb003ea67e9cdd9996a6734029488f6c8bdce8cf1 SHA512 18193febd93325293aa79f2edf526e52ec6b40bbde06f5daa4cbcfccc031168c1975b751cdc468a1dfbc890e47bdb090d050002f56c389fc95dc21cd97520943 +DIST ncurses-6.5-20240922.patch.gz 42088 BLAKE2B 8fb47aad3f778c47cab3ed7252dc57d3c22db803975a6a9f123147a4fea82fb18484dde032d0683364160ee3ca4367b4ae190842a399464d0330783b4ae214dc SHA512 955c25cec3177a576d3f4e252a6b95e712e768c38d527ec4e4a4ea2fe1900f4426c6f3fdab8b6d82eca9ca1cab10264ff46494e3d025d82c2f86c830a48a846e +DIST ncurses-6.5-20240922.patch.gz.asc 729 BLAKE2B dc90e464d8662898f6db1216777c7bb79494d9c55eec718ee193214fa6313e483526cd6fc7189f89f5d92affc234e75ce67dc10bdd63c9233bbc65684a118192 SHA512 81f97e331b1aa49582b6a1a099ead2e64dbad9ab81bb981be8bd27deb3f30157afef9b3db18b808932ad1b3bb22dcf6ede1db0121a356272892ccff0c74c0b81 +DIST ncurses-6.5-20240928.patch.gz 4544 BLAKE2B 73cbd50198382a626c496ea038a4d2a286d79430f18abb8b0cef31e531ae88811af101b9d92de05a7425a88208dbda4c79358effe3fb9b5a60832908b18ee1a4 SHA512 6f00a3e30928c2b9fca3eae90a4f86bafece113e412bdae6fcdaaa331f672df1d6fe93ada2ecda65880a79027b27e091a3cadc2dd2d109dc87dca6deda104348 +DIST ncurses-6.5-20240928.patch.gz.asc 729 BLAKE2B 32ac76684b17a7d74e6cd00c6f3ceb033db5ef83a30994153260ceeeba2fb406ca88b9a1dbad33194eea91dafe2bff3aed9ca8f681016354f2b30ad832c68df3 SHA512 91510d055c955682b4de7fc7e829a4c81ae81b01bee476d37d49214eb5ad01866adec7160da3f582c7ed24b96bd87376217fa89ca2f3cfb06accf1aaf16bf487 +DIST ncurses-6.5-20241006.patch.gz 23396 BLAKE2B 30e00d9bd8efdc383ec99b30250d15ab4af04232243228206290331efae604cfc6710cdd27d734d542c4ba8266deabfe8d69875a00c396511e31485ef9c4677e SHA512 2be071ecee521965921d3682524e898c8e15f088e153143652a5dc6bb46cefc9dbca9d152ec47a4bd49b63cf42f0fdd805bc6f152a1238a924f35c4958396023 +DIST ncurses-6.5-20241006.patch.gz.asc 729 BLAKE2B e47af5f28189144c4cd66577980810ecd9232040e9eae109f601f39fa7633dd3a3c0a9b009dc99c9ad64a035d79333c4051036f29d0f7fcc8517792abf70be70 SHA512 9cce0638adff94016839fc7cbc83d95f547f486eb84da0b058e22171a2d288c76b4e616e3a4eba78cbdb84d510917202131a95372fe6176c1aa097f526172924 +DIST ncurses-6.5-20241019.patch.gz 10461 BLAKE2B ed95e8a0f01c6461d15f85e226fdc8f84daea3b7f6bd2fedfcd598e70319a433f2ba0d83594ee7d826d242894d32877dc56f6ac49757b13d08b8c132ab56015b SHA512 07906b9ac767ee5430850b0bdb57f33c0f33289a4c76d5695b4fc59dbcd359763213696ffad4ca8a04985496116048d2480db5cbfa7e38a172cd4df2642e649b +DIST ncurses-6.5-20241019.patch.gz.asc 729 BLAKE2B c3f173103e50dde5e3afdae1b6bc9665eb6dc02707a943bfed7839f350e87967be80e4375c9c8b71304e63abfe950b18a82f5de7684511307f791a16cfa08fa9 SHA512 b208f2ff067f47f3ee223fcc9aa520fdcf5074a40e563b92ba350582b63fe4768e1cdcc675586f9223c73c7afae2d0d40b75bc7dceb1f8078bf05bec44cf22ef +DIST ncurses-6.5-20241026.patch.gz 3835 BLAKE2B 1c7ce989eb4d8ea41ee793041fa461fbd69d619b07557694098a1a8030e839c91982f1e2f78128e7cec15f210aac2c0cd1b626888b22046d23611ec061d4a34b SHA512 665eb70d79a85f65dbaf69ab188c3ceba10b2ba58e13cca374c058443c1a770cb867d6172e45438222a77b16afc26c1c770bf950b06bf20b2c792ab6d031977f +DIST ncurses-6.5-20241026.patch.gz.asc 729 BLAKE2B ec732d87e533340958e46a23646b1cebe549c8bace59e11cefc93c5e67a69af014338842de00bb34522b422688f6e01c03bc3b4ac3a01e2abdb6f664e692f7d1 SHA512 531eeaf46de000d20f24f5761bfccd8b5cf75cd8d5935fe6e70db09289b656606ccd9b7af7f30fd5b29014d758e2fef5250879d7bb36b255c6736fae5ea71af0 +DIST ncurses-6.5-20241102.patch.gz 3571 BLAKE2B 265fabae05675a01039569dab957e8cae7f705cb1cb3d8098bffaa4c9b971adb31ac129f8ca0eacb6571b6eb202e0ceb430c03801e0e3d3b35db168ce48ee0c0 SHA512 f62a348827db9dc0114cd040e94c607627707c3e3047e718f396f7a5ed63049b0fa782bf05f7bbd339bd8b0efe3dd10554a9d37e4e434f92e3496ce0f5dca4e0 +DIST ncurses-6.5-20241102.patch.gz.asc 729 BLAKE2B a35bc58064361f8e7527d3af3ef08dcaf8b3e70442d280797b6260458dd8d258d42214c25cb5f329851a88ea8cb32a293a3abd93f64d971a0d3b0ade7e04228d SHA512 9695c1a4cdb66cd8f64880b937dbbe7caa5746b754056359e48118b75deb9d6338f270bb5f252b9e52d6de14278a8435e2d4799e0fbda9ef5b76d5569ea8c6bd +DIST ncurses-6.5-20241109.patch.gz 121789 BLAKE2B 3626c3fb1332d12558e53545bb0aec0ad315ffbfb0f64514f30fb15ce21b80b73228feec4569a9545c6115ca59db70f85d99830733ede3958f220627416cfebf SHA512 a15b6ee70ea10bb8a10a70ab9c74f437eceb60a7313a688ad04e0c3a9e097824b642f259c728fc7831d60322b1a0957d19a5fe73cbf68fd21a623ddf9d9c0ef4 +DIST ncurses-6.5-20241109.patch.gz.asc 729 BLAKE2B af2c1bd38031bff8e5465340fbd5dbff875939ff62fa4e805d2fdd869a15a25e135aaaca98510ddb308e532f3b58209b4ad0d8e75bc792149972470809a42df4 SHA512 8946e1e84baf9c48129460a83a5ef679b427c0147ca7fd4701aca3fa23b260c8ed8fb08fd2996676f149ffeec4ca960358d7df6a0b7774c4b49b2bb66800237f DIST ncurses-6.5.tar.gz 3688489 BLAKE2B d0a05c218b5f320ba9abe2f322787baef1d15d764e503c81d49772b54b2927d28ecbeb500c8e514996226b41f69445b4de44ff423cec25b61847307fe61682ec SHA512 fc5a13409d2a530a1325776dcce3a99127ddc2c03999cfeb0065d0eee2d68456274fb1c7b3cc99c1937bc657d0e7fca97016e147f93c7821b5a4a6837db821e8 DIST ncurses-6.5.tar.gz.sig 438 BLAKE2B 5789b47932ec97d3863c7a65306369f0a36cb5b1a35c1e009b5174f50941edceafc22e6f07db3843a096773663a0ca602c0ecb9465e6042d9a78d76ae5008215 SHA512 96ce61a3d529e48e249acecbf4bb9eae2d9f2f67506e92ffa3182f5e98040c38babf0c2c15d92fc5d96e1181e72be1b29fdbff7bee859dfe2ae387f9b8883092 DIST ncurses-6.5_p20240615-patches.tar.xz 63232 BLAKE2B c7fdc496bb3b055b6766ea8a8b5edaba08cecbe9dfe1b3035e55067bce958eb2bf235f226058e30712f14bf6401112901c3add42093216e3b6b42b4ffd438f67 SHA512 a4d9d09c6110a2971bed0facab87c7e255b4c3e34bfa3b8faddd86af9c95fea89833cd14286fd690db138ca60c0fcff818f11d30a6aa820136899619a4e7f95a +DIST ncurses-6.5_p20241109-patches.tar.xz 63676 BLAKE2B 9981b740fcec18cc794074ccc93ae1dbe175e52449af2bddfd10a6fb1d5dfe9b545bd19fce5e601d2d85008425fd5cd6fc33042d7bcc854363b0642b9c880efe SHA512 076d2d39c46cf9236e5e65472e10182da2dffffa936c7567b11e23323d64f9739bb3818d4fdbdd75a14fd3f5b202dcdb7aaa6813afb5e303f81c094339824162 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20241109.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20241109.ebuild new file mode 100644 index 00000000000..df1dda20055 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20241109.ebuild @@ -0,0 +1,452 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# sys-libs/ncurses-compat can be bumped with sys-libs/ncurses as upstream +# provide a configure option for the ABI version. + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/thomasdickey.asc +inherit flag-o-matic toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript verify-sig + +MY_PV="${PV:0:3}" +MY_P="${PN}-${MY_PV}" +DESCRIPTION="Console display library" +HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/" +# Keep invisible-mirror.net here as some users reported 403 forbidden with invisible-island.net +SRC_URI=" + mirror://gnu/ncurses/${MY_P}.tar.gz + https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz + https://invisible-mirror.net/archives/${PN}/${MY_P}.tar.gz + verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig ) +" + +GENTOO_PATCH_DEV=sam +GENTOO_PATCH_PV=6.5_p20241109 +GENTOO_PATCH_NAME=${PN}-${GENTOO_PATCH_PV}-patches + +# Populated below in a loop. Do not add patches manually here. +UPSTREAM_PATCHES=() + +if [[ ${PV} == *_p* ]] ; then + # Sometimes, after releases, there's no megapatch available yet. + # + # From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/: + # + # "At times (generally to mark a relatively stable point), I create a rollup + # patch, which consists of all changes from the release through the current date." + # + # Also, from https://lists.gnu.org/archive/html/bug-ncurses/2019-08/msg00039.html, + # the patches are considered to be acceptable to use after some testing. They + # are both for development but also bug fixes. + # + # This array should contain a list of all the snapshots since the last + # release if there's no megapatch available yet. + PATCH_DATES=( + 20240504 + 20240511 + 20240518 + 20240519 + 20240525 + 20240601 + 20240608 + 20240615 + 20240622 + 20240629 + 20240706 + 20240713 + 20240720 + 20240727 + 20240810 + 20240817 + 20240824 + 20240831 + 20240914 + 20240922 + 20240928 + 20241006 + 20241019 + 20241026 + 20241102 + + # Latest patch is just _pN = $(ver_cut 4) + $(ver_cut 4) + ) + + if [[ -z ${PATCH_DATES[@]} ]] ; then + SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz" + SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz.asc" + + # If we have a rollup patch, use that instead of the individual ones. + UPSTREAM_PATCHES+=( patch.sh ) + else + # We use a mirror as well because we've had reports of 403 forbidden for some users. + upstream_url_base="https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-" + upstream_m_url_base="https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-" + + # Prefix each date with the upstream location (https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}) + mangled_patches=( "${PATCH_DATES[@]/#/${upstream_url_base}}" ) + # Suffix each with .patch.gz + mangled_patches=( "${mangled_patches[@]/%/.patch.gz}" ) + mangled_patches_sig=( "${mangled_patches[@]/%/.asc}" ) + # Repeat for .patch.gz.asc for verify-sig + SRC_URI+=" ${mangled_patches[@]}" + SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]} )" + + # For all of the URLs, chuck in invisible-island.net too: + SRC_URI+=" ${mangled_patches[@]/${upstream_url_base}/${upstream_m_url_base}}" + SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]/${upstream_url_base}/${upstream_m_url_base}} )" + + UPSTREAM_PATCHES=( "${PATCH_DATES[@]/%/.patch}" ) + + unset upstream_url_base upstream_m_url_base mangled_patches mangled_patches_sig + fi +fi + +SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${GENTOO_PATCH_NAME}.tar.xz" +S="${WORKDIR}/${MY_P}" + +LICENSE="MIT" +# The subslot reflects the SONAME. +SLOT="0/6" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="ada +cxx debug doc gpm minimal profile split-usr +stack-realign static-libs test tinfo trace" +RESTRICT="!test? ( test )" + +# TODO: ncurses allows (and we take advantage of this, even) passing +# the SONAME for dlopen() use, so only the header is needed at build time. +# Maybe we should bundle a copy of gpm.h so we can move gpm to PDEPEND +# which would be far nicer UX-wise. +DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )" +# Block the older ncurses that installed all files w/SLOT=5, bug #557472 +RDEPEND=" + ${DEPEND} + !<=sys-libs/ncurses-5.9-r4:5 + !& /dev/null \ + || lbuildflags="${dbuildflags}" + + # We can't re-use the multilib BUILD_DIR because we run outside of it. + BUILD_DIR="${WORKDIR}" \ + CC=${BUILD_CC} \ + CXX=${BUILD_CXX} \ + CPP=${BUILD_CPP} \ + CHOST=${CBUILD} \ + CFLAGS=${BUILD_CFLAGS} \ + CXXFLAGS=${BUILD_CXXFLAGS} \ + CPPFLAGS=${BUILD_CPPFLAGS} \ + LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \ + do_configure cross --without-shared --with-normal --with-progs --without-ada + fi + multilib-minimal_src_configure +} + +multilib_src_configure() { + if [[ ${ABI} == x86 ]] ; then + # For compatibility with older binaries at slight performance cost. + # bug #616402 + use stack-realign && append-flags -mstackrealign + fi + + local t + for t in "${NCURSES_TARGETS[@]}" ; do + do_configure "${t}" + done +} + +do_configure() { + local target=$1 + shift + + mkdir "${BUILD_DIR}/${target}" || die + cd "${BUILD_DIR}/${target}" || die + + local conf=( + # We need the basic terminfo files in /etc, bug #37026. We will + # add '--with-terminfo-dirs' and then populate /etc/terminfo in + # src_install() ... + --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo" + + # Enable installation of .pc files. + --enable-pc-files + # This path is used to control where the .pc files are installed. + --with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig" + + # Now the rest of the various standard flags. + --with-shared + --enable-fvisibility + # (Originally disabled until bug #245417 is sorted out, but now + # just keeping it off for good, given nobody needed it until now + # (2022) and we're trying to phase out bdb.) + --without-hashed-db + $(use_with ada) + $(use_with cxx) + $(use_with cxx cxx-binding) + --with-cxx-shared + $(use_with debug) + $(use_with profile) + # The configure script uses ldd to parse the linked output which + # is flaky for cross-compiling/multilib/ldd versions/etc... + $(use_with gpm gpm libgpm.so.1) + + # bug #930806 + --disable-setuid-environ + # TODO: Maybe do these for USE=hardened + #--disable-root-access + #--disable-root-environ + + --disable-term-driver + --disable-termcap + --enable-symlinks + --with-manpage-format=normal + --enable-const + --enable-colorfgbg + --enable-hard-tabs + --enable-echo + $(use_enable !ada warnings) + $(use_with debug assertions) + $(use_enable !debug leaks) + $(use_with debug expanded) + $(use_with !debug macros) + $(multilib_native_with progs) + $(use_with test tests) + $(use_with trace) + $(use_with tinfo termlib) + --disable-stripping + --disable-pkg-ldflags + ) + + if [[ ${target} == ncurses*w ]] ; then + conf+=( --enable-widec ) + else + conf+=( --disable-widec ) + fi + if [[ ${target} == ncursest* ]] ; then + conf+=( --with-{pthread,reentrant} ) + else + conf+=( --without-{pthread,reentrant} ) + fi + + # Make sure each variant goes in a unique location. + if [[ ${target} == "ncurses" ]] ; then + # "ncurses" variant goes into "${EPREFIX}"/usr/include + # It is needed on Prefix because the configure script appends + # "ncurses" to "${prefix}/include" if "${prefix}" is not /usr. + conf+=( --enable-overwrite ) + else + conf+=( --includedir="${EPREFIX}"/usr/include/${target} ) + fi + # See comments in src_configure. + if [[ ${target} != "cross" ]] ; then + local cross_path="${WORKDIR}/cross" + [[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic" + fi + + ECONF_SOURCE="${S}" econf "${conf[@]}" "$@" +} + +src_compile() { + # See comments in src_configure. + if ! has_version -b "~sys-libs/${P}:0" ; then + BUILD_DIR="${WORKDIR}" do_compile cross -C progs tic$(get_exeext) + fi + + multilib-minimal_src_compile +} + +multilib_src_compile() { + local t + for t in "${NCURSES_TARGETS[@]}" ; do + do_compile "${t}" + done +} + +do_compile() { + local target=$1 + shift + + cd "${BUILD_DIR}/${target}" || die + + # A little hack to fix parallel builds ... they break when + # generating sources so if we generate the sources first (in + # non-parallel), we can then build the rest of the package + # in parallel. This is not really a perf hit since the source + # generation is quite small. + emake -j1 sources + + # For some reason, sources depends on pc-files which depends on + # compiled libraries which depends on sources which ... + # Manually delete the pc-files file so the install step will + # create the .pc files we want. + rm -f misc/pc-files || die + emake "$@" +} + +multilib_src_install() { + local target + for target in "${NCURSES_TARGETS[@]}" ; do + emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install + done + + # Move main libraries into /. + if multilib_is_native_abi ; then + gen_usr_ldscript -a \ + "${NCURSES_TARGETS[@]}" \ + $(usex tinfo 'tinfow tinfo' '') + fi + + # Don't delete '*.dll.a', needed for linking, bug #631468 + if ! use static-libs; then + find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die + fi + + # Build fails to create this ... + # -FIXME- + # Ugly hackaround for riscv having two parts libdir (bug #689240) + # Replace this hack with an official solution once we have one... + # -FIXME- + dosym $(sed 's@[^/]\+@..@g' <<< $(get_libdir))/share/terminfo \ + /usr/$(get_libdir)/terminfo + + # Remove obsolete libcurses symlink that is created by the build + # system. Technically, this could be also achieved + # via --disable-overwrite but it also moves headers implicitly, + # and we do not want to do this yet. + # bug #836696 + rm "${ED}"/usr/$(get_libdir)/libcurses* || die +} + +multilib_src_install_all() { + local terms=( + # Dumb/simple values that show up when using the in-kernel VT. + ansi console dumb linux + vt{52,100,102,200,220} + # [u]rxvt users used to be pretty common. Probably should drop this + # since upstream is dead and people are moving away from it. + rxvt{,-unicode}{,-256color} + # xterm users are common, as is terminals re-using/spoofing it. + xterm xterm-{,256}color + # screen is common (and reused by tmux). + screen{,-256color} + screen.xterm-256color + ) + if use split-usr ; then + local x + # We need the basic terminfo files in /etc for embedded/recovery, bug #37026 + einfo "Installing basic terminfo files in /etc..." + for x in "${terms[@]}"; do + local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null) + local basedir=$(basename "$(dirname "${termfile}")") + + if [[ -n ${termfile} ]] ; then + dodir "/etc/terminfo/${basedir}" + mv "${termfile}" "${ED}/etc/terminfo/${basedir}/" || die + dosym "../../../../etc/terminfo/${basedir}/${x}" \ + "/usr/share/terminfo/${basedir}/${x}" + fi + done + + echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" | newenvd - 50ncurses + + use minimal && rm -r "${ED}"/usr/share/terminfo* + # Because ncurses5-config --terminfo returns the directory we keep it + # bug #245374 + keepdir /usr/share/terminfo + elif use minimal ; then + # Keep only the basic terminfo files + find "${ED}"/usr/share/terminfo/ \ + \( -type f -o -type l \) ${terms[*]/#/! -name } -delete , \ + -type d -empty -delete || die + fi + + cd "${S}" || die + dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc + if use doc ; then + docinto html + dodoc -r doc/html/ + fi +} + +pkg_preinst() { + preserve_old_lib /$(get_libdir)/libncurses.so.5 + preserve_old_lib /$(get_libdir)/libncursesw.so.5 +} + +pkg_postinst() { + preserve_old_lib_notify /$(get_libdir)/libncurses.so.5 + preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5 +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/readline/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/readline/Manifest index 2415fff9712..d7a4e2a56e4 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/readline/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-libs/readline/Manifest @@ -5,7 +5,6 @@ DIST readline-8.2.tar.gz 3043952 BLAKE2B 7974322b9c092a756a79e537df08e8532f8e0fc DIST readline-8.2.tar.gz.sig 95 BLAKE2B dc510459c0c47782ca87364a6677b4d8f0b68a984143122c08bd15aef08a71bff59ac92d3c3ada518dad09f189c144748e840175041eb619f679e2d8b95dc2aa SHA512 0effd273689e5f7fe7e049c8f2c5f3c97149f198a90d053231ee4de34901560a465ab0d4fd71fd07c7d7e233caed7f42e5b668bffaf1e23a7eb373c8f9e150fe DIST readline-8.3-alpha.tar.gz 3091427 BLAKE2B f40e1db1ea39bbf4183901688733df0c67666eb58a33333f9b57ea7ba5399956f5523748ecce9bc5b6dc1954647c0bceb6ebbb4fe93b0085a595047650ad7c7e SHA512 d3aacd82826f1d1adc7ea846d8b8e70726da925e74a8bb1d141a9093e0d5e375236d1c745f0609f8ba3aff9f5266b1cf3da31d76e414a284b6ed798d92a1a1f6 DIST readline-8.3-alpha.tar.gz.sig 95 BLAKE2B c11d1b4dd8f453bc5f7d19dd25901bfa4796825efa4f07f2043aa94d556a39bc1c928aed7fdc09ed6325c6ef017f72df18bbdd461a52a7122ccdf9b58a345c17 SHA512 fb070ae3dbafa042f591d8a5c24f48b40a672843e41e78f5d6a5ded5228046fe75893be6b10a9634d8852617bfa8b675e68a4c808f06ee95f07a40536fc63769 -DIST readline-8.3_alpha_p20241011-4d34c34b3aa955f65e79bfbf7b7426344a3c2840.tar.gz 3179300 BLAKE2B ea4bab2b8e4da4590caedef5f3b7fccd4a9aef0fff4d150ef15c4185ee2609c29aab43777084e270226d8641c91cbab92da55e77c27c42dcfc360a6abf7df9bb SHA512 93617234b7ab080ed1f8c52cfc79fd6e54ac818ed29a3016915b51ccc6c8f5ece5e0ee0ba9668e6ed2ba64bacc82c164d19846bcc2bb78933b2927b4f2a2d968 DIST readline-8.3_alpha_p20241104-3c16957f8914425966b31e7348048b129b2317ad.tar.gz 3458233 BLAKE2B e9fc8c34ffd2a81c903daa64881893c5e092ba45c846b1e1b141905997a61a93a9dfd79ad9f0606b54d84d529665937bdaa2c166786808dc0ce223b1a1b2f535 SHA512 a37759b9d22687255de0c8f52dae106d01bec2b89784d972d35e3fdee1cb8d8fb9c12142a2de0e190c70f2571542a0f7f0cb00ae9e12757f150f9532a9529102 DIST readline81-001 2454 BLAKE2B 7ec4e5c39a224a70643b44b88bcfef5198e199c76f2a34f0b0ce24f1747dd46be49ddf93871c474cda64322b4358127fec4c2401d19422f84934546bbe1f3bf2 SHA512 cfbef10bdeb562a302ccf214878d02ebadf799343b3d2d7996a282f81bcfde83997ba6dcc9a8477af4dd7c73bca74105ca00a81e42ed13321672bd2930550e54 DIST readline81-001.sig 95 BLAKE2B 7d523d0fc21772cb03aa4b5d66ea58c1a99a6c0e4a8625e89cad015cbff63cd68e08207ca5150819225300ac864806032888104bbbea64ca38ebf89e28c24b7e SHA512 7fa3747e388aecb26f2d4f8346b89b367710ea99a14618c625066b820901dc467bd156ec37340fde1f86f0fe0d6b33044c1ed5768cf8ed1a25386d32dc6419a6 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/readline/files/readline-8.2-c23.patch b/sdk_container/src/third_party/portage-stable/sys-libs/readline/files/readline-8.2-c23.patch new file mode 100644 index 00000000000..4792bc923a2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/readline/files/readline-8.2-c23.patch @@ -0,0 +1,20 @@ +HAVE_STDARG_H isn't defined for readline consumers externally so we always +end up using the ancient non-prototypes. Fix that as all compilers we care +about since forever in Gentoo will support this path. + +This in particular shows up with rl_message in consumers: +https://bugs.gentoo.org/943820 +https://bugs.gentoo.org/944059 +https://bugs.gentoo.org/944300 +https://bugs.gentoo.org/944344 +--- a/rlstdc.h ++++ b/rlstdc.h +@@ -44,7 +44,7 @@ + + /* Moved from config.h.in because readline.h:rl_message depends on these + defines. */ +-#if defined (__STDC__) && defined (HAVE_STDARG_H) ++#if defined (__STDC__) + # define PREFER_STDARG + # define USE_VARARGS + #else diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.1_p2-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.1_p2-r2.ebuild index f9b41e5237e..34d9c847392 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.1_p2-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.1_p2-r2.ebuild @@ -142,6 +142,10 @@ src_prepare() { } src_configure() { + # readline-8.3 drops unprototyped functions, earlier versions are + # incompatible with C23. + append-cflags -std=gnu17 + # fix implicit decls with widechar funcs append-cppflags -D_GNU_SOURCE # https://lists.gnu.org/archive/html/bug-readline/2010-07/msg00013.html diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.2_p10.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.2_p13-r1.ebuild similarity index 95% rename from sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.2_p10.ebuild rename to sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.2_p13-r1.ebuild index 84cc9eb84cb..45b13024661 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.2_p10.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.2_p13-r1.ebuild @@ -83,7 +83,7 @@ fi LICENSE="GPL-3+" SLOT="0/8" # subslot matches SONAME major if is_release ; 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="static-libs +unicode utils" @@ -97,6 +97,8 @@ PATCHES=( "${FILESDIR}"/${PN}-7.0-headers.patch "${FILESDIR}"/${PN}-8.0-headers.patch "${WORKDIR}"/${PN}-8.1-rlfe-c99.patch + # Not needed with 8.3 which drops < C89 compat + "${FILESDIR}"/${PN}-8.2-c23.patch # TODO: rebase #"${FILESDIR}"/${PN}-8.0-darwin-shlib-versioning.patch @@ -166,6 +168,10 @@ src_prepare() { } src_configure() { + # readline-8.3 drops unprototyped functions, earlier versions are + # incompatible with C23. + append-cflags -std=gnu17 + # Fix implicit decls with widechar funcs append-cppflags -D_GNU_SOURCE # https://lists.gnu.org/archive/html/bug-readline/2010-07/msg00013.html diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.2_p13.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.2_p13.ebuild index c24a357c4e8..de76373ce83 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.2_p13.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.2_p13.ebuild @@ -83,7 +83,7 @@ fi LICENSE="GPL-3+" SLOT="0/8" # subslot matches SONAME major if is_release ; 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="static-libs +unicode utils" @@ -166,6 +166,10 @@ src_prepare() { } src_configure() { + # readline-8.3 drops unprototyped functions, earlier versions are + # incompatible with C23. + append-cflags -std=gnu17 + # Fix implicit decls with widechar funcs append-cppflags -D_GNU_SOURCE # https://lists.gnu.org/archive/html/bug-readline/2010-07/msg00013.html diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.3_alpha_p20241011.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.3_alpha_p20241011.ebuild deleted file mode 100644 index a5ecc024b54..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.3_alpha_p20241011.ebuild +++ /dev/null @@ -1,265 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# There's no standard way of versioning the point releases upstream -# make anyway, so while this was added for RC versions, it's fine -# in general. -QA_PKGCONFIG_VERSION=$(ver_cut 1-2) -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chetramey.asc -inherit flag-o-matic multilib multilib-minimal preserve-libs toolchain-funcs verify-sig - -# Official patches -# See ftp://ftp.cwru.edu/pub/bash/readline-8.1-patches/ -PLEVEL="${PV##*_p}" -MY_PV="${PV/_p*}" -MY_PV="${MY_PV/_/-}" -MY_P="${PN}-${MY_PV}" -MY_PATCHES=() - -# Determine the patchlevel. -case ${PV} in - 9999|*_alpha*|*_beta*|*_rc*) - # Set a negative patchlevel to indicate that it's a pre-release. - PLEVEL=-1 - ;; - *_p*) - PLEVEL=${PV##*_p} - ;; - *) - PLEVEL=0 -esac - -DESCRIPTION="Another cute console display library" -HOMEPAGE="https://tiswww.case.edu/php/chet/readline/rltop.html https://git.savannah.gnu.org/cgit/readline.git" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://git.savannah.gnu.org/git/readline.git" - EGIT_BRANCH=devel - inherit git-r3 -elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then - # It can be useful to have snapshots in the pre-release period once - # the first alpha is out, as various bugs get reported and fixed from - # the alpha, and the next pre-release is usually quite far away. - # - # i.e. if it's worth packaging the alpha, it's worth packaging a followup. - READLINE_COMMIT="4d34c34b3aa955f65e79bfbf7b7426344a3c2840" - SRC_URI="https://git.savannah.gnu.org/cgit/readline.git/snapshot/readline-${READLINE_COMMIT}.tar.gz -> ${P}-${READLINE_COMMIT}.tar.gz" - S=${WORKDIR}/${PN}-${READLINE_COMMIT} -else - SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz" - SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.gz.sig )" - S="${WORKDIR}/${MY_P}" - - if [[ ${PLEVEL} -gt 0 ]] ; then - # bash-5.1 -> bash51 - my_p=${PN}$(ver_rs 1-2 '' $(ver_cut 1-2)) - - patch_url= - my_patch_index= - - upstream_url_base="mirror://gnu/readline" - mirror_url_base="ftp://ftp.cwru.edu/pub/readline" - - for ((my_patch_index=1; my_patch_index <= ${PLEVEL} ; my_patch_index++)) ; do - printf -v mangled_patch_ver ${my_p}-%03d ${my_patch_index} - patch_url="${upstream_url_base}/${MY_P}-patches/${mangled_patch_ver}" - - SRC_URI+=" ${patch_url}" - SRC_URI+=" verify-sig? ( ${patch_url}.sig )" - - # Add in the mirror URL too. - SRC_URI+=" ${patch_url/${upstream_url_base}/${mirror_url_base}}" - SRC_URI+=" verify-sig? ( ${patch_url/${upstream_url_base}/${mirror_url_base}}.sig )" - - MY_PATCHES+=( "${DISTDIR}"/${mangled_patch_ver} ) - done - - unset my_p patch_url my_patch_index upstream_url_base mirror_url_base - fi -fi - -LICENSE="GPL-3+" -SLOT="0/8" # subslot matches SONAME major -if (( PLEVEL >= 0 )); then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -fi -IUSE="static-libs +unicode utils" - -RDEPEND=">=sys-libs/ncurses-5.9-r3:=[static-libs?,unicode(+)?,${MULTILIB_USEDEP}]" -DEPEND="${RDEPEND}" -BDEPEND=" - virtual/pkgconfig - verify-sig? ( sec-keys/openpgp-keys-chetramey ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-5.0-no_rpath.patch - "${FILESDIR}"/${PN}-7.0-headers.patch - "${FILESDIR}"/${PN}-8.0-headers.patch - - # TODO: rebase - #"${FILESDIR}"/${PN}-8.0-darwin-shlib-versioning.patch -) - -src_unpack() { - local patch - - if [[ ${PV} == 9999 ]]; then - git-r3_src_unpack - elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then - default - else - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig} - - for patch in "${MY_PATCHES[@]}"; do - verify-sig_verify_detached "${patch}"{,.sig} - done - fi - - unpack "${MY_P}.tar.gz" - - if [[ ${GENTOO_PATCH_VER} ]]; then - unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz" - fi - fi -} - -src_prepare() { - (( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}" - - default - - #(( PLEVEL < 0 )) && eautoreconf - - if use prefix && [[ ! -x "${BROOT}"/usr/bin/pkg-config ]] ; then - # If we're bootstrapping, make a guess. We don't have pkg-config - # around yet. bug #818103. - # Incorrectly populating this leads to underlinked libreadline. - local ncurses_libs - local ncurses_libs_suffix=$(usex unicode w '') - - ncurses_libs="-lncurses${ncurses_libs_suffix}" - - if has_version "sys-libs/ncurses[tinfo(+)]" ; then - ncurses_libs+=" -ltinfo${ncurses_libs_suffix}" - fi - else - # Force ncurses linking, bug #71420. - # Use pkg-config to get the right values, bug #457558. - local ncurses_libs=$($(tc-getPKG_CONFIG) ncurses$(usex unicode w '') --libs) - fi - - sed -i \ - -e "/^SHLIB_LIBS=/s:=.*:='${ncurses_libs}':" \ - support/shobj-conf || die - sed -i \ - -e "/^[[:space:]]*LIBS=.-lncurses/s:-lncurses:${ncurses_libs}:" \ - examples/rlfe/configure || die - - # Fix building under Gentoo/FreeBSD; upstream FreeBSD deprecated - # objformat for years, so we don't want to rely on that. - sed -i -e '/objformat/s:if .*; then:if true; then:' support/shobj-conf || die - - # For local readline headers - ln -s ../.. examples/rlfe/readline || die -} - -src_configure() { - # Fix implicit decls with widechar funcs - append-cppflags -D_GNU_SOURCE - # https://lists.gnu.org/archive/html/bug-readline/2010-07/msg00013.html - append-cppflags -Dxrealloc=_rl_realloc -Dxmalloc=_rl_malloc -Dxfree=_rl_free - - # Make sure configure picks a better ar than `ar`, bug #484866 - export ac_cv_prog_AR="$(tc-getAR)" - - # Force the test since we used sed above to force it. - export bash_cv_termcap_lib=ncurses - - # Control cross-compiling cases when we know the right answer. - # In cases where the C library doesn't support wide characters, readline - # itself won't work correctly, so forcing the answer below should be OK. - if tc-is-cross-compiler ; then - export bash_cv_func_sigsetjmp="present" - export bash_cv_func_ctype_nonascii="yes" - # bug #503312 - export bash_cv_wcwidth_broken="no" - fi - - # This is for rlfe, but we need to make sure LDFLAGS doesn't change - # so we can re-use the config cache file between the two. - append-ldflags -L. - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myeconfargs=( - --cache-file="${BUILD_DIR}"/config.cache - --with-curses - $(use_enable static-libs static) - ) - - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" - - if use utils && multilib_is_native_abi && ! tc-is-cross-compiler ; then - # Code is full of AC_TRY_RUN() - mkdir -p examples/rlfe || die - cd examples/rlfe || die - - ECONF_SOURCE="${S}"/examples/rlfe econf --cache-file="${BUILD_DIR}"/config.cache - fi -} - -multilib_src_compile() { - emake - - if use utils && multilib_is_native_abi && ! tc-is-cross-compiler ; then - # Code is full of AC_TRY_RUN() - cd examples/rlfe || die - local l - for l in readline history ; do - ln -s ../../shlib/lib${l}$(get_libname)* lib${l}$(get_libname) || die - ln -s ../../lib${l}.a lib${l}.a || die - done - emake - fi -} - -multilib_src_install() { - default - - if multilib_is_native_abi ; then - if use utils && ! tc-is-cross-compiler; then - dobin examples/rlfe/rlfe - fi - fi -} - -multilib_src_install_all() { - HTML_DOCS="doc/history.html doc/readline.html doc/rluserman.html" einstalldocs - - dodoc USAGE - docinto ps - dodoc doc/*.ps -} -pkg_preinst() { - # bug #29865 - # Reappeared in bug #595324 with paludis so keeping this for now... - preserve_old_lib \ - /$(get_libdir)/lib{history,readline}$(get_libname 4) \ - /$(get_libdir)/lib{history,readline}$(get_libname 5) \ - /$(get_libdir)/lib{history,readline}$(get_libname 6) \ - /$(get_libdir)/lib{history,readline}$(get_libname 7) -} - -pkg_postinst() { - preserve_old_lib_notify \ - /$(get_libdir)/lib{history,readline}$(get_libname 4) \ - /$(get_libdir)/lib{history,readline}$(get_libname 5) \ - /$(get_libdir)/lib{history,readline}$(get_libname 6) \ - /$(get_libdir)/lib{history,readline}$(get_libname 7) -} diff --git a/sdk_container/src/third_party/portage-stable/sys-process/audit/Manifest b/sdk_container/src/third_party/portage-stable/sys-process/audit/Manifest index 317f73b539b..9031bd69612 100644 --- a/sdk_container/src/third_party/portage-stable/sys-process/audit/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-process/audit/Manifest @@ -1 +1,2 @@ DIST audit-4.0.1.tar.gz 1194961 BLAKE2B 590abf58e672921a432348f48936cfbff0b6ddfa47e77b3b20eaa00e5d1c4ce2fc8d10c1fc1cbc19d44c09a9f7dfbca76778c94d8d340485c2bb1bb3b5a3c95a SHA512 7fbc426d0ddea340a36ceab52ac090e8e3dfb3450ebf50b478324a097f19ab4bb2cf78a2532644acb17e6114b59b8fda718affda9da62fb84181e3abf76039df +DIST audit-4.0.2.tar.gz 1198769 BLAKE2B f34fed7eebbc72d82d1051bbaf5ec29ebb8e1b9fe85dc0a0f8c71a94ede86578d58d16be9d91e643368fabe20e69c208fb7f374e19a70bf6dc7c0ab2448fb30a SHA512 13d4d07b316fc1380d75baefbb1345b34286015d52e758c14b2f82781cf4cffc16b6eb29d999563ff40caa6d005630a5dfc44741e49b71291c9beb84ddc452a4 diff --git a/sdk_container/src/third_party/portage-stable/sys-process/audit/audit-4.0.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-process/audit/audit-4.0.2-r1.ebuild new file mode 100644 index 00000000000..17852abaa96 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-process/audit/audit-4.0.2-r1.ebuild @@ -0,0 +1,196 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# As with sys-libs/libcap-ng, same maintainer in Fedora as upstream, so +# check Fedora's packaging (https://src.fedoraproject.org/rpms/audit/tree/rawhide) +# on bumps (or if hitting a bug) to see what they've done there. + +PYTHON_COMPAT=( python3_{10..13} ) + +inherit autotools multilib-minimal toolchain-funcs python-r1 linux-info systemd usr-ldscript + +DESCRIPTION="Userspace utilities for storing and processing auditing records" +HOMEPAGE="https://people.redhat.com/sgrubb/audit/" +SRC_URI="https://people.redhat.com/sgrubb/audit/${P}.tar.gz" + +LICENSE="GPL-2+ LGPL-2.1+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="gssapi io-uring ldap python static-libs test" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" +RESTRICT="!test? ( test )" + +RDEPEND=" + sys-libs/libcap-ng + gssapi? ( virtual/krb5 ) + ldap? ( net-nds/openldap:= ) + python? ( ${PYTHON_DEPS} ) +" +DEPEND=" + ${RDEPEND} + >=sys-kernel/linux-headers-5 + test? ( dev-libs/check ) +" +BDEPEND=" + python? ( + dev-lang/swig + $(python_gen_cond_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ' python3_12) + ) +" + +CONFIG_CHECK="~AUDIT" + +QA_CONFIG_IMPL_DECL_SKIP=( + # missing on musl. Uses handrolled AC_LINK_IFELSE but fails at link time + # for older compilers regardless. bug #898828 + strndupa +) + +src_prepare() { + # audisp-remote moved in multilib_src_install_all + sed -i \ + -e "s,/sbin/audisp-remote,${EPREFIX}/usr/sbin/audisp-remote," \ + audisp/plugins/remote/au-remote.conf || die + + # Disable installing sample rules so they can be installed as docs. + echo -e '%:\n\t:' | tee rules/Makefile.{am,in} >/dev/null || die + + default + eautoreconf +} + +multilib_src_configure() { + local myeconfargs=( + --sbindir="${EPREFIX}"/sbin + --localstatedir="${EPREFIX}"/var + --runstatedir="${EPREFIX}"/run + $(use_enable gssapi gssapi-krb5) + $(use_enable ldap zos-remote) + $(use_enable static-libs static) + $(use_with arm) + $(use_with arm64 aarch64) + $(use_with io-uring io_uring) + --without-golang + --without-libwrap + --without-python3 + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + + if multilib_is_native_abi && use python; then + python_configure() { + mkdir -p "${BUILD_DIR}" || die + pushd "${BUILD_DIR}" &>/dev/null || die + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" --with-python3 + find . -type f -name 'Makefile' -exec sed -i "s;-I/usr/include/python;-I${SYSROOT}/usr/include/python;g" {} + + + popd &>/dev/null || die + } + + python_foreach_impl python_configure + fi + + # Make target bindings/python/auparse_python.c doesn't get copied to ${BUILD_DIR}. bug #944338 + ln -s "${S}/bindings/python/auparse_python.c" "${BUILD_DIR}/bindings/python/auparse_python.c" || die +} + +src_configure() { + tc-export_build_env BUILD_{CC,CPP} + + local -x CC_FOR_BUILD="${BUILD_CC}" + local -x CPP_FOR_BUILD="${BUILD_CPP}" + + multilib-minimal_src_configure +} + +multilib_src_compile() { + if multilib_is_native_abi; then + default + + local native_build="${BUILD_DIR}" + + python_compile() { + emake -C "${BUILD_DIR}"/bindings/swig top_builddir="${native_build}" + emake -C "${BUILD_DIR}"/bindings/python/python3 top_builddir="${native_build}" + } + + use python && python_foreach_impl python_compile + else + emake -C common + emake -C lib + emake -C auparse + fi +} + +multilib_src_install() { + if multilib_is_native_abi; then + emake DESTDIR="${D}" initdir="$(systemd_get_systemunitdir)" install + + local native_build="${BUILD_DIR}" + + python_install() { + emake -C "${BUILD_DIR}"/bindings/swig DESTDIR="${D}" top_builddir="${native_build}" install + emake -C "${BUILD_DIR}"/bindings/python/python3 DESTDIR="${D}" top_builddir="${native_build}" install + python_optimize + } + + use python && python_foreach_impl python_install + + # Things like shadow use this so we need to be in / + gen_usr_ldscript -a audit auparse + else + emake -C lib DESTDIR="${D}" install + emake -C auparse DESTDIR="${D}" install + fi +} + +multilib_src_install_all() { + dodoc AUTHORS ChangeLog README* THANKS + docinto contrib + dodoc contrib/avc_snap + docinto contrib/plugin + dodoc contrib/plugin/* + docinto rules + dodoc rules/*rules + + newinitd "${FILESDIR}"/auditd-init.d-2.4.3 auditd + newconfd "${FILESDIR}"/auditd-conf.d-2.1.3 auditd + + if [[ -f "${ED}"/sbin/audisp-remote ]] ; then + dodir /usr/sbin + mv "${ED}"/{sbin,usr/sbin}/audisp-remote || die + fi + + # Gentoo rules + insinto /etc/audit + newins "${FILESDIR}"/audit.rules-2.1.3 audit.rules + doins "${FILESDIR}"/audit.rules.stop* + keepdir /etc/audit/rules.d + + # audit logs go here + keepdir /var/log/audit + + find "${ED}" -type f -name '*.la' -delete || die + + # Security + lockdown_perms "${ED}" +} + +pkg_postinst() { + lockdown_perms "${EROOT}" +} + +lockdown_perms() { + # Upstream wants these to have restrictive perms. + # Should not || die as not all paths may exist. + local basedir="${1}" + chmod 0750 "${basedir}"/sbin/au{ditctl,ditd,report,search,trace} 2>/dev/null + chmod 0750 "${basedir}"/var/log/audit 2>/dev/null + chmod 0640 "${basedir}"/etc/audit/{auditd.conf,audit*.rules*} 2>/dev/null +} diff --git a/sdk_container/src/third_party/portage-stable/sys-process/lsof/Manifest b/sdk_container/src/third_party/portage-stable/sys-process/lsof/Manifest index 581bff9bb7c..5bfb74baf17 100644 --- a/sdk_container/src/third_party/portage-stable/sys-process/lsof/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-process/lsof/Manifest @@ -1,3 +1,4 @@ DIST lsof-4.98.0.tar.gz 734232 BLAKE2B 2f4ba4d179e8061e5bcff7dda4a0981616530bd5577fc73904e2699e6e982efee9e4270d3f2d3c68751d73cb98bfed0fd49d4c6bd967d15b4e06dcb72494d024 SHA512 6fde12497ce9cbba698be624b45e8392d551626c3e46b50ec23e661b322438ef7162dbac0d06829d56f074c7d934fa1ca98aa50ee1487125c93bebfe8eb2a2e8 DIST lsof-4.99.0.tar.gz 1127302 BLAKE2B 257f84e01b9530ab3a6c637c13c8e84c2562fa3ecd9048f93e2816bbed36ffd529311bc1424a41cde72383642decbd6f44e680bfdd2594bbae5908b07c466165 SHA512 6fe3039f1167fb3023a7f358dda2b4ea6eace1e50a97d0168af494217581eef73cc1742f544d2fb9f85ded8370c86e63d48104da899396de7b3007997a201825 DIST lsof-4.99.3.tar.gz 1131470 BLAKE2B f2f298d8fe3f03b192984a31bd6b368e08c3ae5b8776625df413b94a0db59258e8aadb8ab4b94b9a3a54803fab463c1b920b524ee0ff512c8cda4b88e89b4c50 SHA512 83f62f62fa273becfdded4e553d398bafebf0186c7f8ac86a800dabf63ef0614c3c546b6dcd6d13f30c97ab33088a82e1e6b66cc8ed61f700c54487cab19d009 +DIST lsof-4.99.4.tar.gz 1128285 BLAKE2B aa8e062f782f3e94688e725f963cc4a907abd49e1b78813ea3639afc284efb0946efd7f14f918f8792e253fb7bfceb6c3d258b84660d2af015a218d7cba16eb7 SHA512 5b04e2d8f26e6f76bcdb3e1282fbe71bb1b9379c76ffd88b05731920d5175595b0d4dbfd41a7ace1bfb4d21fcc7ebc641372af76c24ccb01bc3f5d7149ea4fa3 diff --git a/sdk_container/src/third_party/portage-stable/sys-process/lsof/lsof-4.99.4.ebuild b/sdk_container/src/third_party/portage-stable/sys-process/lsof/lsof-4.99.4.ebuild new file mode 100644 index 00000000000..8c18e3255da --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-process/lsof/lsof-4.99.4.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_P="${P/-/_}" +DESCRIPTION="Lists open files for running Unix processes" +HOMEPAGE="https://github.com/lsof-org/lsof" +SRC_URI="https://github.com/lsof-org/lsof/releases/download/${PV}/${P}.tar.gz" + +LICENSE="lsof" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="rpc selinux" + +RDEPEND=" + rpc? ( net-libs/libtirpc ) + selinux? ( sys-libs/libselinux ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + sys-apps/groff + rpc? ( virtual/pkgconfig ) +" + +# Needs fixing first for sandbox +RESTRICT="test" + +src_configure() { + local myeconfargs=( + $(use_with rpc libtirpc) + $(use_with selinux) + ) + + econf "${myeconfargs[@]}" +} + +src_compile() { + emake DEBUG="" all +} + +src_install() { + default + find "${ED}" -name '*.la' -delete || die +} + +pkg_postinst() { + if [[ ${CHOST} == *-solaris* ]] ; then + einfo "Note: to use lsof on Solaris you need read permissions on" + einfo "/dev/kmem, i.e. you need to be root, or to be in the group sys" + fi +}