diff --git a/.github/workflows/portage-stable-packages-list b/.github/workflows/portage-stable-packages-list index cb68fa1aab..b825817ae6 100644 --- a/.github/workflows/portage-stable-packages-list +++ b/.github/workflows/portage-stable-packages-list @@ -138,7 +138,6 @@ dev-lang/python-exec dev-lang/python-exec-conf dev-lang/yasm -dev-libs/boost dev-libs/cJSON dev-libs/cyrus-sasl dev-libs/elfutils @@ -214,7 +213,6 @@ dev-python/tomli dev-python/typing-extensions dev-python/wheel -dev-util/b2 dev-util/bpftool dev-util/catalyst dev-util/checkbashisms @@ -247,6 +245,7 @@ eclass/autotools.eclass # Still has some Flatcar modifications, will need to upstream it first. # # eclass/bash-completion-r1.eclass +eclass/cargo.eclass eclass/cmake-multilib.eclass eclass/cmake.eclass eclass/desktop.eclass diff --git a/changelog/updates/2023-10-26-weekly-updates.md b/changelog/updates/2023-10-26-weekly-updates.md new file mode 100644 index 0000000000..1a90f3aaf5 --- /dev/null +++ b/changelog/updates/2023-10-26-weekly-updates.md @@ -0,0 +1,8 @@ +- ethtool ([6.5](https://git.kernel.org/pub/scm/network/ethtool/ethtool.git/tree/NEWS?h=v6.5)) +- hwdata ([0.374](https://github.com/vcrhonek/hwdata/commits/v0.374)) +- DEV: iperf ([3.15](https://github.com/esnet/iperf/releases/tag/3.15)) +- iproute2 ([6.5.0](https://marc.info/?l=linux-netdev&m=169401822317373&w=2)) +- protobuf ([21.12](https://github.com/protocolbuffers/protobuf/releases/tag/v21.12) (includes [21.10](https://github.com/protocolbuffers/protobuf/releases/tag/v21.10) and [21.11](https://github.com/protocolbuffers/protobuf/releases/tag/v21.11))) +- DEV, AZURE: python ([3.11.6](https://docs.python.org/release/3.11.6/whatsnew/changelog.html#python-3-11-6)) +- DEV: smartmontools ([7.4](https://www.smartmontools.org/browser/tags/RELEASE_7_4/smartmontools/NEWS)) +- thin-provisioning-tools ([1.0.6](https://github.com/jthornber/thin-provisioning-tools/blob/v1.0.6/CHANGES)) diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-devel/sdk-depends/sdk-depends-0.0.1-r46.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-devel/sdk-depends/sdk-depends-0.0.1-r47.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-devel/sdk-depends/sdk-depends-0.0.1-r46.ebuild rename to sdk_container/src/third_party/coreos-overlay/coreos-devel/sdk-depends/sdk-depends-0.0.1-r47.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-devel/sdk-depends/sdk-depends-0.0.1.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-devel/sdk-depends/sdk-depends-0.0.1.ebuild index c326d07ff7..3a54c61dee 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-devel/sdk-depends/sdk-depends-0.0.1.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-devel/sdk-depends/sdk-depends-0.0.1.ebuild @@ -31,7 +31,6 @@ DEPEND=" dev-libs/gobject-introspection dev-python/setuptools dev-python/six - dev-util/b2 dev-util/catalyst dev-util/checkbashisms dev-util/pahole 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 2d52d88858..368f634630 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 @@ -33,6 +33,9 @@ =dev-embedded/u-boot-tools-2021.04_rc2 ~arm64 =dev-lang/nasm-2.15.05 ~arm64 +# Keep versions on both arches in sync. +=dev-lang/python-3.11.6 ~amd64 + # Accept unstable host Rust compilers. =dev-lang/rust-1.73.0 ~amd64 ~arm64 @@ -66,12 +69,13 @@ =sys-apps/kexec-tools-2.0.24 ~arm64 =sys-apps/policycoreutils-3.1-r4 ~arm64 =sys-apps/semodule-utils-3.1 ~arm64 +=sys-apps/smartmontools-7.4 ~arm64 +=sys-block/thin-provisioning-tools-1.0.6 ~amd64 # Needed to force enable ipvsadm for arm64. =sys-cluster/ipvsadm-1.27-r1 ** # Keep versions on both arches in sync. -=sys-devel/automake-1.16.5-r1 ~arm64 =sys-firmware/edk2-aarch64-18.02 ** =sys-libs/libselinux-3.1-r3 ~arm64 =sys-libs/libsemanage-3.1-r2 ~arm64 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 fde1ca4adf..c7a9ac4288 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 @@ -3,16 +3,11 @@ DIST berkeley-testfloat-3-40619cbb3bf32872df8c53cc457039229428a263.tar.bz2 90086 DIST keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6.tar.bz2 27971 BLAKE2B 0ed69ad24c53bd459c8753565814bcc1cd858f20d3a046c38912a35bcb0ba6d388ef5d2b93157cd028959284b330caf5467d82071c3df56a405dd8e08fd177c7 SHA512 8f2cc14e8bd46cb045e3ebfe32e463793ab7472ebda9b57b8ea0b06fa107a1a99c3ebcacb9c4548e30698d8ec154c0e56f789385201182b680819b8068a103f2 DIST qemu-7.2.0-docs.tar.xz 1984184 BLAKE2B 103900fb7903ed8d75f7f012bf61fa2d6fce345b657c851d0437c3384f5735bd1cfd3129320683ea7846ea0b0940e5af5b2663c9320f12fee74b058523a8ea06 SHA512 a7edd448982865e07533c300d3e44a8b50cefbdde1982b73c24d0b2aa74315439252c59b634c75de312860874c7b06c75aa72629da681b5105f28ee936794585 DIST qemu-7.2.0.tar.xz 122408576 BLAKE2B 415ff621356c59f88b29cfe3ef5db1e282b26bbafbee3d535477c6125ccb060ec9762d9e3ab9f70ce5478804dca0a46a59bcf12c112a2462029a93e578e61530 SHA512 f3cfa00da739ba819a218d7e6e95c77fb79a8e0f487b024ddd281602e785249b81144595e3f8c746c32a4f5c4d1a88c6aebae3c162603edfbb50ae3722d7ed13 -DIST qemu-7.2.1.tar.xz 122400592 BLAKE2B bae1df5d332beaca313c4bac88f06dd5992988d7c1b6fdc6ced4043d858f437339cd7d0009ae667f9e66705117697bee7ee44ec4e911cc203d34eecc3d8f139b SHA512 e286dc66c923a5df77eb02d69235d048e80a7cced638fae52fbed385b4c3cd736cfea66bb3c9843bebf0a33e81ea141fc015e0bd82108df304f148ce59d9ae8a DIST qemu-7.2.3.tar.xz 122395692 BLAKE2B 4e65cac7505a56da85c1d98dc6029d516dd4f07f0211ea5213724d231d448d9b49cc91a3058a2a89908608078854d97da480e6f0bc7ce47d9555c2bb1177fbdc SHA512 09523d456175da47d58d8d56fe9a95416ee3e6fd8aa7766383033396a1e5bd10f7758832f7f2b8662068ef94b21ab6a3a351c9158fb6bde0e1d7d5fb393bf6c7 DIST qemu-7.2.4.tar.xz 121849100 BLAKE2B a9c5ffce9ff0fac4e2d1fa4be1a1dcee2f5d7f793ddf726871c5ae9a68c22f7ba03692a8a5096de3051030d3c2f34e46697d5af2d66c34984b8161ae3bb07b42 SHA512 fa765673833a1f2cbecdb9d47dc7dc29d7613be5a5c8fc63925ae70e1f5aafb4f9f02e45b212a329f17b689351b8a9cdf5f5235ab6adb71bb40e41868898d95b DIST qemu-7.2.6.tar.xz 121322888 BLAKE2B c3f51cc1647f5c75774513f624c2e1a1e4badd7275c9f9a64a175809daf17d0b3c58eab0c36fa98fc46834d4d79f8552d1c9f34e840ee21ddd049cc3adba480a SHA512 534fffe2d751a707a7cf15db8d5b9eddc2468fd7fe875715e79ee879fb20d7370553588384d345b586eeaddf9284de36f2d0d69f747380ee55161cc6eb09bf30 DIST qemu-8.0.0-docs.tar.xz 3218024 BLAKE2B b764a625024e78a39470048355471e12cfb57ab3c34e764dc4200fdf5c1aea635d26095ec961979bf46f177101c5bd38618bacf7e98e04bd64688ab5e29591aa SHA512 d9dfe191372e105fe16fe8f66f41ed793ade4c89b5ab1d84b39459f3419a1ca61bd49422a83981965cc257c05eca7fd49054703f58f179f5c7b656e9473a1054 -DIST qemu-8.0.0.tar.xz 127835148 BLAKE2B 9b54aae10fe09691a26e68374723ded5fdda6409673b4de9461a25ee060cfd03968a16ddeadc21d48b9262e53aa6d4e5eb645376969f97c65807fad19607b04f SHA512 1f31d1e653dec2d35f1b7a5468ee3f471553b48eca8c8afafffcf9243c6b2260e78a5b73da3fe567f9b85d4133573eebd397747b3aec501fb24076263eb07b27 -DIST qemu-8.0.2.tar.xz 126707132 BLAKE2B f2b1a63e10c42aabfe39722c7732d0f04818ad367b769b3deb29c5bf9adcabc3aca1706f3c40fafeeb57ac1f7a61ded5066de32134c483e2fd27bc65b4b7d30a SHA512 4e915d33a662bf55b09247fb85150be376c92270d3764e3d6470c452cb70cc558f54e84de5610dd60a9eb3ea02d5d4277b1ec75c9804967d278fa8361c7f9b9a -DIST qemu-8.0.3.tar.xz 126710536 BLAKE2B 071cc1a35209a02e8c5dd4f43cb112f110b4655adb0f870a04fdf9a6e2c761699574e8c9426f70f60787a99acf252d7a64d94a8e837cdfeda93d89428d7866f3 SHA512 18b2ccb65f7ec2ae92f0e04406539620c881e2b75f63816588c86043a07464bb99d16a83e792ed9508de393f4b694c46d52f4d07edf52741e85224c8b8d5d5c3 DIST qemu-8.0.4.tar.xz 126179324 BLAKE2B dfb98964c629b251f0004b4630ae4500a52465579417d6f5c7dbbb1f672e10d8d7ffb98a4b00e26fb98b3c867208146dbdca026e4d30cbf1752ac733c4d9b915 SHA512 bd5ed682d51f974abd4be93f949701f9b5bfb87fd9929e31df130534da2f2c03b99adc9f924b3efd47d3b254e0e3c0046f4e69fbe9f6d0c4ac1f6babecb29449 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 -DIST qemu-8.1.0.tar.xz 123550284 BLAKE2B b0fd87a19b13d4bbc6526caa46533073cb4dee6004df5d4fbbef204ee3bc8c2f10ec1eaff554adbb25c9f3143dd68abd09d4a0519c4766299a3ff261d03c73f2 SHA512 c5f5e7ce2d8e3c93a02012b136c866e8577df07da4705a0045916c71caeaa21fa1b2d59a4b22a660789a4159b192e12a443e7cbb0724ee85fea258251731724c -DIST qemu-8.1.1.tar.xz 123558860 BLAKE2B 71220fad7c9f74bed6211879f01566ac1e52835feb3d45eaa1b2fe1d5f95d9fa5db53b7aec72b4ef098c03d0c4070076c907fb3e6b839002de6f56ee5ab44340 SHA512 199db58f9a413cbe4449ff557bc362e666c6c0291f9963cb74e5542e8abd1edcd65001fa1fd453b850a376de455f93258707ce6feee5a44bf40753b12a2e956c +DIST qemu-8.1.2.tar.xz 123553328 BLAKE2B 8f48638cd1f0285356aae2d14862f56cc79da09bb9ff9f09e90221fdca851e9c3f8a3d940039f578d24d0b4435baf19cb52a3e927e97bf978ea674d148ecd746 SHA512 d95ba8b294115b86b7f3bd1b438b059e38c7ccc68f14e76b455b355b4b68ec84fb799bef44dbf96befcad7c40a15f4660096b5ad5be4396d54dfeaba34c89db8 diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-7.2.3-CVE-2023-2861.patch b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-7.2.3-CVE-2023-2861.patch deleted file mode 100644 index 9a9c11a41d..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-7.2.3-CVE-2023-2861.patch +++ /dev/null @@ -1,162 +0,0 @@ -https://bugs.gentoo.org/909542 -https://gitlab.com/qemu-project/qemu/-/commit/10fad73a2bf1c76c8aa9d6322755e5f877d83ce5 - -From 10fad73a2bf1c76c8aa9d6322755e5f877d83ce5 Mon Sep 17 00:00:00 2001 -From: Christian Schoenebeck -Date: Wed, 7 Jun 2023 18:29:33 +0200 -Subject: [PATCH] 9pfs: prevent opening special files (CVE-2023-2861) - -The 9p protocol does not specifically define how server shall behave when -client tries to open a special file, however from security POV it does -make sense for 9p server to prohibit opening any special file on host side -in general. A sane Linux 9p client for instance would never attempt to -open a special file on host side, it would always handle those exclusively -on its guest side. A malicious client however could potentially escape -from the exported 9p tree by creating and opening a device file on host -side. - -With QEMU this could only be exploited in the following unsafe setups: - - - Running QEMU binary as root AND 9p 'local' fs driver AND 'passthrough' - security model. - -or - - - Using 9p 'proxy' fs driver (which is running its helper daemon as - root). - -These setups were already discouraged for safety reasons before, -however for obvious reasons we are now tightening behaviour on this. - -Fixes: CVE-2023-2861 -Reported-by: Yanwu Shen -Reported-by: Jietao Xiao -Reported-by: Jinku Li -Reported-by: Wenbo Shen -Signed-off-by: Christian Schoenebeck -Reviewed-by: Greg Kurz -Reviewed-by: Michael Tokarev -Message-Id: -(cherry picked from commit f6b0de53fb87ddefed348a39284c8e2f28dc4eda) -Signed-off-by: Michael Tokarev -(Mjt: drop adding qemu_fstat wrapper for 7.2 where wrappers aren't used) ---- a/fsdev/virtfs-proxy-helper.c -+++ b/fsdev/virtfs-proxy-helper.c -@@ -26,6 +26,7 @@ - #include "qemu/xattr.h" - #include "9p-iov-marshal.h" - #include "hw/9pfs/9p-proxy.h" -+#include "hw/9pfs/9p-util.h" - #include "fsdev/9p-iov-marshal.h" - - #define PROGNAME "virtfs-proxy-helper" -@@ -338,6 +339,28 @@ static void resetugid(int suid, int sgid) - } - } - -+/* -+ * Open regular file or directory. Attempts to open any special file are -+ * rejected. -+ * -+ * returns file descriptor or -1 on error -+ */ -+static int open_regular(const char *pathname, int flags, mode_t mode) -+{ -+ int fd; -+ -+ fd = open(pathname, flags, mode); -+ if (fd < 0) { -+ return fd; -+ } -+ -+ if (close_if_special_file(fd) < 0) { -+ return -1; -+ } -+ -+ return fd; -+} -+ - /* - * send response in two parts - * 1) ProxyHeader -@@ -682,7 +705,7 @@ static int do_create(struct iovec *iovec) - if (ret < 0) { - goto unmarshal_err_out; - } -- ret = open(path.data, flags, mode); -+ ret = open_regular(path.data, flags, mode); - if (ret < 0) { - ret = -errno; - } -@@ -707,7 +730,7 @@ static int do_open(struct iovec *iovec) - if (ret < 0) { - goto err_out; - } -- ret = open(path.data, flags); -+ ret = open_regular(path.data, flags, 0); - if (ret < 0) { - ret = -errno; - } ---- a/hw/9pfs/9p-util.h -+++ b/hw/9pfs/9p-util.h -@@ -13,6 +13,8 @@ - #ifndef QEMU_9P_UTIL_H - #define QEMU_9P_UTIL_H - -+#include "qemu/error-report.h" -+ - #ifdef O_PATH - #define O_PATH_9P_UTIL O_PATH - #else -@@ -112,6 +114,38 @@ static inline void close_preserve_errno(int fd) - errno = serrno; - } - -+/** -+ * close_if_special_file() - Close @fd if neither regular file nor directory. -+ * -+ * @fd: file descriptor of open file -+ * Return: 0 on regular file or directory, -1 otherwise -+ * -+ * CVE-2023-2861: Prohibit opening any special file directly on host -+ * (especially device files), as a compromised client could potentially gain -+ * access outside exported tree under certain, unsafe setups. We expect -+ * client to handle I/O on special files exclusively on guest side. -+ */ -+static inline int close_if_special_file(int fd) -+{ -+ struct stat stbuf; -+ -+ if (fstat(fd, &stbuf) < 0) { -+ close_preserve_errno(fd); -+ return -1; -+ } -+ if (!S_ISREG(stbuf.st_mode) && !S_ISDIR(stbuf.st_mode)) { -+ error_report_once( -+ "9p: broken or compromised client detected; attempt to open " -+ "special file (i.e. neither regular file, nor directory)" -+ ); -+ close(fd); -+ errno = ENXIO; -+ return -1; -+ } -+ -+ return 0; -+} -+ - static inline int openat_dir(int dirfd, const char *name) - { - return openat(dirfd, name, -@@ -146,6 +180,10 @@ again: - return -1; - } - -+ if (close_if_special_file(fd) < 0) { -+ return -1; -+ } -+ - serrno = errno; - /* O_NONBLOCK was only needed to open the file. Let's drop it. We don't - * do that with O_PATH since fcntl(F_SETFL) isn't supported, and openat() --- -GitLab diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-8.0.2-CVE-2023-2861.patch b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-8.0.2-CVE-2023-2861.patch deleted file mode 100644 index 75fa534b4f..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-8.0.2-CVE-2023-2861.patch +++ /dev/null @@ -1,167 +0,0 @@ -https://bugs.gentoo.org/909542 -https://gitlab.com/qemu-project/qemu/-/commit/b9d2887be4e616cdaeedd0b7456bfaa71ee798af - -From b9d2887be4e616cdaeedd0b7456bfaa71ee798af Mon Sep 17 00:00:00 2001 -From: Christian Schoenebeck -Date: Wed, 7 Jun 2023 18:29:33 +0200 -Subject: [PATCH] 9pfs: prevent opening special files (CVE-2023-2861) - -The 9p protocol does not specifically define how server shall behave when -client tries to open a special file, however from security POV it does -make sense for 9p server to prohibit opening any special file on host side -in general. A sane Linux 9p client for instance would never attempt to -open a special file on host side, it would always handle those exclusively -on its guest side. A malicious client however could potentially escape -from the exported 9p tree by creating and opening a device file on host -side. - -With QEMU this could only be exploited in the following unsafe setups: - - - Running QEMU binary as root AND 9p 'local' fs driver AND 'passthrough' - security model. - -or - - - Using 9p 'proxy' fs driver (which is running its helper daemon as - root). - -These setups were already discouraged for safety reasons before, -however for obvious reasons we are now tightening behaviour on this. - -Fixes: CVE-2023-2861 -Reported-by: Yanwu Shen -Reported-by: Jietao Xiao -Reported-by: Jinku Li -Reported-by: Wenbo Shen -Signed-off-by: Christian Schoenebeck -Reviewed-by: Greg Kurz -Reviewed-by: Michael Tokarev -Message-Id: -(cherry picked from commit f6b0de53fb87ddefed348a39284c8e2f28dc4eda) -Signed-off-by: Michael Tokarev ---- a/fsdev/virtfs-proxy-helper.c -+++ b/fsdev/virtfs-proxy-helper.c -@@ -26,6 +26,7 @@ - #include "qemu/xattr.h" - #include "9p-iov-marshal.h" - #include "hw/9pfs/9p-proxy.h" -+#include "hw/9pfs/9p-util.h" - #include "fsdev/9p-iov-marshal.h" - - #define PROGNAME "virtfs-proxy-helper" -@@ -338,6 +339,28 @@ static void resetugid(int suid, int sgid) - } - } - -+/* -+ * Open regular file or directory. Attempts to open any special file are -+ * rejected. -+ * -+ * returns file descriptor or -1 on error -+ */ -+static int open_regular(const char *pathname, int flags, mode_t mode) -+{ -+ int fd; -+ -+ fd = open(pathname, flags, mode); -+ if (fd < 0) { -+ return fd; -+ } -+ -+ if (close_if_special_file(fd) < 0) { -+ return -1; -+ } -+ -+ return fd; -+} -+ - /* - * send response in two parts - * 1) ProxyHeader -@@ -682,7 +705,7 @@ static int do_create(struct iovec *iovec) - if (ret < 0) { - goto unmarshal_err_out; - } -- ret = open(path.data, flags, mode); -+ ret = open_regular(path.data, flags, mode); - if (ret < 0) { - ret = -errno; - } -@@ -707,7 +730,7 @@ static int do_open(struct iovec *iovec) - if (ret < 0) { - goto err_out; - } -- ret = open(path.data, flags); -+ ret = open_regular(path.data, flags, 0); - if (ret < 0) { - ret = -errno; - } ---- a/hw/9pfs/9p-util.h -+++ b/hw/9pfs/9p-util.h -@@ -13,6 +13,8 @@ - #ifndef QEMU_9P_UTIL_H - #define QEMU_9P_UTIL_H - -+#include "qemu/error-report.h" -+ - #ifdef O_PATH - #define O_PATH_9P_UTIL O_PATH - #else -@@ -95,6 +97,7 @@ static inline int errno_to_dotl(int err) { - #endif - - #define qemu_openat openat -+#define qemu_fstat fstat - #define qemu_fstatat fstatat - #define qemu_mkdirat mkdirat - #define qemu_renameat renameat -@@ -108,6 +111,38 @@ static inline void close_preserve_errno(int fd) - errno = serrno; - } - -+/** -+ * close_if_special_file() - Close @fd if neither regular file nor directory. -+ * -+ * @fd: file descriptor of open file -+ * Return: 0 on regular file or directory, -1 otherwise -+ * -+ * CVE-2023-2861: Prohibit opening any special file directly on host -+ * (especially device files), as a compromised client could potentially gain -+ * access outside exported tree under certain, unsafe setups. We expect -+ * client to handle I/O on special files exclusively on guest side. -+ */ -+static inline int close_if_special_file(int fd) -+{ -+ struct stat stbuf; -+ -+ if (qemu_fstat(fd, &stbuf) < 0) { -+ close_preserve_errno(fd); -+ return -1; -+ } -+ if (!S_ISREG(stbuf.st_mode) && !S_ISDIR(stbuf.st_mode)) { -+ error_report_once( -+ "9p: broken or compromised client detected; attempt to open " -+ "special file (i.e. neither regular file, nor directory)" -+ ); -+ close(fd); -+ errno = ENXIO; -+ return -1; -+ } -+ -+ return 0; -+} -+ - static inline int openat_dir(int dirfd, const char *name) - { - return qemu_openat(dirfd, name, -@@ -142,6 +177,10 @@ again: - return -1; - } - -+ if (close_if_special_file(fd) < 0) { -+ return -1; -+ } -+ - serrno = errno; - /* O_NONBLOCK was only needed to open the file. Let's drop it. We don't - * do that with O_PATH since fcntl(F_SETFL) isn't supported, and openat() 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 93729e025f..adb5567952 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 @@ -27,6 +27,7 @@ net-libs/libiscsi instead of indirectly via the Linux block layer that sys-block/open-iscsi does. Enable efficient I/O via sys-libs/liburing. + Support Linux keyrings via sys-apps/keyutils Enable multipath persistent reservation passthrough via sys-fs/multipath-tools. Enable the ncurses-based console diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-7.2.1.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-7.2.1.ebuild deleted file mode 100644 index 2218435d4f..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-7.2.1.ebuild +++ /dev/null @@ -1,972 +0,0 @@ -# Copyright 1999-2023 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_{9,10,11} ) -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-util/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-ovmf-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-ovmf-${EDK2_OVMF_VERSION} - >=sys-firmware/edk2-ovmf-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-util/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] - sys-devel/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 - "${FILESDIR}"/${PN}-7.2.0-linux-headers-6.2-glibc-2.36.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 - - # 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-ovmf-bin'; then - ewarn " $(best_version sys-firmware/edk2-ovmf-bin)" - else - ewarn " $(best_version sys-firmware/edk2-ovmf)" - 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-ovmf-bin'; then - echo " $(best_version sys-firmware/edk2-ovmf-bin)" - else - echo " $(best_version sys-firmware/edk2-ovmf)" - 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-7.2.3-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-7.2.3-r1.ebuild deleted file mode 100644 index ff2370fb88..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-7.2.3-r1.ebuild +++ /dev/null @@ -1,973 +0,0 @@ -# Copyright 1999-2023 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_{9,10,11} ) -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-util/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-ovmf-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-ovmf-${EDK2_OVMF_VERSION} - >=sys-firmware/edk2-ovmf-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-util/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] - sys-devel/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 - "${FILESDIR}"/${PN}-7.2.0-linux-headers-6.2-glibc-2.36.patch - "${FILESDIR}"/${P}-CVE-2023-2861.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 - - # 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-ovmf-bin'; then - ewarn " $(best_version sys-firmware/edk2-ovmf-bin)" - else - ewarn " $(best_version sys-firmware/edk2-ovmf)" - 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-ovmf-bin'; then - echo " $(best_version sys-firmware/edk2-ovmf-bin)" - else - echo " $(best_version sys-firmware/edk2-ovmf)" - 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.0.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.0.0-r1.ebuild deleted file mode 100644 index 3000130b6f..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.0.0-r1.ebuild +++ /dev/null @@ -1,963 +0,0 @@ -# Copyright 1999-2023 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="8.0.0" -# Default to generating docs (inc. man pages) if no prebuilt; overridden later -# bug #830088 -QEMU_DOC_USEFLAG="+doc" - -PYTHON_COMPAT=( python3_{9,10,11} ) -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-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}? ( 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-util/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-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.0" - -X86_FIRMWARE_DEPEND=" - pin-upstream-blobs? ( - ~sys-firmware/edk2-ovmf-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-ovmf-${EDK2_OVMF_VERSION} - >=sys-firmware/edk2-ovmf-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-util/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] - sys-devel/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}-8.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 - "${FILESDIR}"/${PN}-8.0.0-remove-python-meson-check.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 - - # 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-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 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-ovmf-bin'; then - ewarn " $(best_version sys-firmware/edk2-ovmf-bin)" - else - ewarn " $(best_version sys-firmware/edk2-ovmf)" - 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-ovmf-bin'; then - echo " $(best_version sys-firmware/edk2-ovmf-bin)" - else - echo " $(best_version sys-firmware/edk2-ovmf)" - 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.0.2-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.0.2-r2.ebuild deleted file mode 100644 index 78edcdb580..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.0.2-r2.ebuild +++ /dev/null @@ -1,964 +0,0 @@ -# Copyright 1999-2023 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="8.0.0" -# Default to generating docs (inc. man pages) if no prebuilt; overridden later -# bug #830088 -QEMU_DOC_USEFLAG="+doc" - -PYTHON_COMPAT=( python3_{9,10,11} ) -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-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-util/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/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(+)] ) - kernel_linux? ( sys-libs/libcap-ng[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-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.0" - -X86_FIRMWARE_DEPEND=" - pin-upstream-blobs? ( - ~sys-firmware/edk2-ovmf-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-ovmf-${EDK2_OVMF_VERSION} - >=sys-firmware/edk2-ovmf-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-util/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] - sys-devel/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}-8.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 - "${FILESDIR}"/${PN}-8.0.0-remove-python-meson-check.patch - "${FILESDIR}"/${P}-CVE-2023-2861.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 - - # 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-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 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-ovmf-bin'; then - ewarn " $(best_version sys-firmware/edk2-ovmf-bin)" - else - ewarn " $(best_version sys-firmware/edk2-ovmf)" - 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-ovmf-bin'; then - echo " $(best_version sys-firmware/edk2-ovmf-bin)" - else - echo " $(best_version sys-firmware/edk2-ovmf)" - 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.0.2.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.0.2.ebuild deleted file mode 100644 index 11af4686f9..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.0.2.ebuild +++ /dev/null @@ -1,963 +0,0 @@ -# Copyright 1999-2023 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="8.0.0" -# Default to generating docs (inc. man pages) if no prebuilt; overridden later -# bug #830088 -QEMU_DOC_USEFLAG="+doc" - -PYTHON_COMPAT=( python3_{9,10,11} ) -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-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-util/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/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(+)] ) - kernel_linux? ( sys-libs/libcap-ng[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-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.0" - -X86_FIRMWARE_DEPEND=" - pin-upstream-blobs? ( - ~sys-firmware/edk2-ovmf-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-ovmf-${EDK2_OVMF_VERSION} - >=sys-firmware/edk2-ovmf-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-util/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] - sys-devel/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}-8.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 - "${FILESDIR}"/${PN}-8.0.0-remove-python-meson-check.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 - - # 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-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 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-ovmf-bin'; then - ewarn " $(best_version sys-firmware/edk2-ovmf-bin)" - else - ewarn " $(best_version sys-firmware/edk2-ovmf)" - 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-ovmf-bin'; then - echo " $(best_version sys-firmware/edk2-ovmf-bin)" - else - echo " $(best_version sys-firmware/edk2-ovmf)" - 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.0.3.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.0.3.ebuild deleted file mode 100644 index 96f174d6b4..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.0.3.ebuild +++ /dev/null @@ -1,970 +0,0 @@ -# Copyright 1999-2023 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="8.0.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-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-util/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/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(+)] ) - kernel_linux? ( sys-libs/libcap-ng[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-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.0" - -X86_FIRMWARE_DEPEND=" - pin-upstream-blobs? ( - ~sys-firmware/edk2-ovmf-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-ovmf-${EDK2_OVMF_VERSION} - >=sys-firmware/edk2-ovmf-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-util/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] - sys-devel/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}-8.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 - "${FILESDIR}"/${PN}-8.0.0-remove-python-meson-check.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 - - # 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-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 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-ovmf-bin'; then - ewarn " $(best_version sys-firmware/edk2-ovmf-bin)" - else - ewarn " $(best_version sys-firmware/edk2-ovmf)" - 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-ovmf-bin'; then - echo " $(best_version sys-firmware/edk2-ovmf-bin)" - else - echo " $(best_version sys-firmware/edk2-ovmf)" - 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.1.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.1.0-r1.ebuild deleted file mode 100644 index 785f98ee12..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.1.0-r1.ebuild +++ /dev/null @@ -1,966 +0,0 @@ -# Copyright 1999-2023 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-3) -# 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 - subprojects/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 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-util/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(+)] ) - 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.0" - -X86_FIRMWARE_DEPEND=" - pin-upstream-blobs? ( - ~sys-firmware/edk2-ovmf-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-ovmf-${EDK2_OVMF_VERSION} - >=sys-firmware/edk2-ovmf-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-util/meson-0.63.0 - dev-python/pip[${PYTHON_USEDEP}] - 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] - sys-devel/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_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 - - # Verbose builds - MAKEOPTS+=" V=1" - - # Remove bundled modules - rm -r subprojects/dtc 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 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-ovmf-bin'; then - ewarn " $(best_version sys-firmware/edk2-ovmf-bin)" - else - ewarn " $(best_version sys-firmware/edk2-ovmf)" - 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-ovmf-bin'; then - echo " $(best_version sys-firmware/edk2-ovmf-bin)" - else - echo " $(best_version sys-firmware/edk2-ovmf)" - 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.1.1.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.1.2.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.1.1.ebuild rename to sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.1.2.ebuild index 321b56dd29..2ea790325c 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.1.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.1.2.ebuild @@ -55,7 +55,7 @@ SLOT="0" IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG} +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring - jack jemalloc +jpeg + 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 @@ -190,6 +190,7 @@ SOFTMMU_TOOLS_DEPEND=" 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? ( @@ -570,6 +571,7 @@ qemu_src_configure() { $(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) diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9999.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9999.ebuild index 3da439a4b7..cef7e03b44 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9999.ebuild @@ -60,7 +60,7 @@ SLOT="0" IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG} +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring - jack jemalloc +jpeg + 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 @@ -195,6 +195,7 @@ SOFTMMU_TOOLS_DEPEND=" 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? ( @@ -592,6 +593,7 @@ qemu_src_configure() { $(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) diff --git a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/Manifest b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/Manifest index dfcc1e9876..870f7ec80e 100644 --- a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/Manifest @@ -1,2 +1,3 @@ DIST gentoolkit-0.6.1.tar.gz 3195781 BLAKE2B 27e370de77586b375dc70caa1abba4c2bc4207e8f08e0a7ea2953097135506949db71ff9102a0ead198e4dea425440c57b94ac7a811ca2d5e0016fc7e234bb0d SHA512 1ffc466b69a9c53f1bbd40f6f4d1eb33d5f0f4287bb65ba1a7b1b2675ad61ecffa55ed9fda7c1ae8148744f0a77e224315eb1903dfd61a2a3dab1600fc672d2d DIST gentoolkit-0.6.2.tar.bz2 3186974 BLAKE2B 48f388962e70842b7959467b7697b98121ee2a27bca6e2fc2ebb69782ece1df9b63b4451e19ebacf5a627a9c6feb17f7af395229d2eb870d8bbde1da80262593 SHA512 a1c9157758453f214e6131237df2bc91c49c28a4411ecbb0f74768ae0dd7c4fe8272cfc354a424f6acc8cc322d4eaa35ef98147fe749bc41cb680bb3acfdc2ac +DIST gentoolkit-0.6.3.tar.bz2 3186163 BLAKE2B 0f9befac53faa2b578b461a55c7113934a60478fc5d8d5ab0e06cb836ff5a2de75bb290ed797a2b085ec9f33c8494e3c3d5d0d6b643c525fff4dd0a82657118f SHA512 cf51480213fd4bac45d44f5eb5e4be4cb5c5b97ad63ecd832eb54fc7043ab8e974491005431f0897d6c41d251ae0f9fc95cfdfc4d613fc56340630a094bfc61d diff --git a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.6.3.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.6.3.ebuild new file mode 100644 index 0000000000..82c6182f64 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.6.3.ebuild @@ -0,0 +1,121 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} pypy3 ) +PYTHON_REQ_USE="xml(+),threads(+)" + +inherit meson python-r1 tmpfiles + +if [[ ${PV} = 9999* ]]; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/gentoolkit.git" + inherit git-r3 +else + SRC_URI="https://gitweb.gentoo.org/proj/gentoolkit.git/snapshot/${P}.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +DESCRIPTION="Collection of administration scripts for Gentoo" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage-Tools" + +LICENSE="GPL-2" +SLOT="0" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +# Need newer Portage for eclean-pkg API, bug #900224 +DEPEND=" + >=sys-apps/portage-3.0.53[${PYTHON_USEDEP}] +" +RDEPEND=" + ${DEPEND} + ${PYTHON_DEPS} + app-alternatives/awk + sys-apps/gentoo-functions +" + +# setuptools is still needed as a workaround for Python 3.12+ for now. +# https://github.com/mesonbuild/meson/issues/7702 +# +# >=meson-1.2.1-r1 for bug #912051 +BDEPEND=" + ${PYTHON_DEPS} + >=dev-util/meson-1.2.1-r1 + $(python_gen_cond_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ' python3_12) +" + +src_prepare() { + default + if use prefix-guest ; then + # use correct repo name, bug #632223 + sed -i \ + -e "/load_profile_data/s/repo='gentoo'/repo='gentoo_prefix'/" \ + pym/gentoolkit/profile.py || die + fi +} + +src_configure() { + local code_only=false + python_foreach_impl my_src_configure +} + +my_src_configure() { + local emesonargs=( + -Dcode-only=${code_only} + -Deprefix="${EPREFIX}" + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + ) + + meson_src_configure + code_only=true +} + +src_compile() { + python_foreach_impl meson_src_compile +} + +src_test() { + python_foreach_impl meson_src_test --no-rebuild --verbose +} + +src_install() { + python_foreach_impl my_src_install + dotmpfiles data/tmpfiles.d/revdep-rebuild.conf + + local scripts + mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/bin/* || die) + python_replicate_script "${scripts[@]}" +} + +my_src_install() { + local pydirs=( + "${D}$(python_get_sitedir)" + ) + + meson_src_install + python_optimize "${pydirs[@]}" + python_fix_shebang "${pydirs[@]}" +} + +pkg_postinst() { + tmpfiles_process revdep-rebuild.conf + + # Only show the elog information on a new install + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog + elog "For further information on gentoolkit, please read the gentoolkit" + elog "guide: https://wiki.gentoo.org/wiki/Gentoolkit" + elog + elog "Another alternative to equery is app-portage/portage-utils" + elog + elog "Additional tools that may be of interest:" + elog + elog " app-admin/eclean-kernel" + elog " app-portage/diffmask" + elog " app-portage/flaggie" + elog " app-portage/portpeek" + elog " app-portage/smart-live-rebuild" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-9999.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-9999.ebuild index e4a3125c88..82c6182f64 100644 --- a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-9999.ebuild @@ -12,8 +12,8 @@ if [[ ${PV} = 9999* ]]; then EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/gentoolkit.git" inherit git-r3 else - SRC_URI="https://gitweb.gentoo.org/proj/gentoolkit.git/snapshot/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + SRC_URI="https://gitweb.gentoo.org/proj/gentoolkit.git/snapshot/${P}.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi DESCRIPTION="Collection of administration scripts for Gentoo" @@ -25,7 +25,7 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}" # Need newer Portage for eclean-pkg API, bug #900224 DEPEND=" - >=sys-apps/portage-3.0.52[${PYTHON_USEDEP}] + >=sys-apps/portage-3.0.53[${PYTHON_USEDEP}] " RDEPEND=" ${DEPEND} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/lua/files/lua-5.4.6-sparc-tests.patch b/sdk_container/src/third_party/portage-stable/dev-lang/lua/files/lua-5.4.6-sparc-tests.patch new file mode 100644 index 0000000000..29515aad16 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/lua/files/lua-5.4.6-sparc-tests.patch @@ -0,0 +1,44 @@ +https://github.com/lua/lua/commit/6baee9ef9d5657ab582c8a4b9f885ec58ed502d0 +https://bugs.gentoo.org/914562 + +From 6baee9ef9d5657ab582c8a4b9f885ec58ed502d0 Mon Sep 17 00:00:00 2001 +From: Roberto Ierusalimschy +Date: Fri, 8 Sep 2023 16:19:21 -0300 +Subject: [PATCH] Removed test for "corrupted binary dump" + +Test is too non portable. (For instance, it does not work for +different number types.) +--- a/src/lundump.c ++++ b/src/lundump.c +@@ -81,7 +81,7 @@ static size_t loadUnsigned (LoadState *S, size_t limit) { + + + static size_t loadSize (LoadState *S) { +- return loadUnsigned(S, ~(size_t)0); ++ return loadUnsigned(S, MAX_SIZET); + } + + +--- a/tests/calls.lua ++++ b/tests/calls.lua +@@ -342,20 +342,6 @@ do -- another bug (in 5.4.0) + end + + +-do -- another bug (since 5.2) +- -- corrupted binary dump: list of upvalue names is larger than number +- -- of upvalues, overflowing the array of upvalues. +- local code = +- "\x1b\x4c\x75\x61\x54\x00\x19\x93\x0d\x0a\x1a\x0a\x04\x08\x08\x78\x56\z +- \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x77\x40\x00\x86\x40\z +- \x74\x65\x6d\x70\x81\x81\x01\x00\x02\x82\x48\x00\x02\x00\xc7\x00\x01\z +- \x00\x80\x80\x80\x82\x00\x00\x80\x81\x82\x78\x80\x82\x81\x86\x40\x74\z +- \x65\x6d\x70" +- +- assert(load(code)) -- segfaults in previous versions +-end +- +- + x = string.dump(load("x = 1; return x")) + a = assert(load(read1(x), nil, "b")) + assert(a() == 1 and _G.x == 1) diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/lua/lua-5.4.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/lua/lua-5.4.6.ebuild index c7fd115887..8e723e6781 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/lua/lua-5.4.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/lua/lua-5.4.6.ebuild @@ -12,7 +12,7 @@ SRC_URI="https://dev.gentoo.org/~soap/distfiles/${P}.tar.xz" LICENSE="MIT" SLOT="5.4" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~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 ~ia64 ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" IUSE="+deprecated readline" DEPEND=" @@ -22,6 +22,11 @@ DEPEND=" RDEPEND="${DEPEND}" BDEPEND="virtual/pkgconfig" +PATCHES=( + # Backported variant of upstream patch to fix sparc tests, bug #914562 + "${FILESDIR}"/${PN}-5.4.6-sparc-tests.patch +) + src_prepare() { default diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.6.ebuild index 422b9799c4..66f5d73d64 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.6.ebuild @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ~ppc64 ~riscv ~s390 sparc ~x86" IUSE=" bluetooth build debug +ensurepip examples gdbm libedit lto +ncurses pgo +readline +sqlite +ssl test tk valgrind diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.0.ebuild index 1a53a9eb0e..d75c7bf9d4 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.0.ebuild @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ~ppc64 ~riscv ~s390 sparc ~x86" IUSE=" bluetooth build debug +ensurepip examples gdbm libedit lto +ncurses pgo +readline +sqlite +ssl test tk valgrind diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/boost/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/boost/Manifest deleted file mode 100644 index 44f190ebd9..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/boost/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -DIST boost_1_82_0.tar.bz2 121325129 BLAKE2B 16ee164ce7114d8134c861b3652c842750cec63ab0e79e4386d8cb9c56f7a454f9a9cfa75f25d9132a8d8d9e6f39d32a8e7535f83f52f355bbc40ef530163fa5 SHA512 6fddc452ca67f99f5c181e21c73d96feb7346e10886477c91b4abc2cdf447750599e0d42f935ef591222200ef6c033de078a7ad2bb577c81fa56a249b17420cb -DIST boost_1_83_0.tar.bz2 122892751 BLAKE2B c4af1713712da82f964fe08451141ea96905e30b475ee5090bf87ae6e43bcb1f258ab92e16e992fd22405e8cd85a435cef76a22b98788d9960396a4fec8c4c62 SHA512 d133b521bd754dc35a9bd30d8032bd2fd866026d90af2179e43bfd7bd816841f7f3b84303f52c0e54aebc373f4e4edd601a8f5a5e0c47500e0e852e04198a711 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/boost/boost-1.82.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/boost/boost-1.82.0-r1.ebuild deleted file mode 100644 index 8a63f6519d..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/boost/boost-1.82.0-r1.ebuild +++ /dev/null @@ -1,354 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{9..11} ) - -inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal - -MY_PV="$(ver_rs 1- _)" - -DESCRIPTION="Boost Libraries for C++" -HOMEPAGE="https://www.boost.org/" -SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2" -S="${WORKDIR}/${PN}_${MY_PV}" - -LICENSE="Boost-1.0" -SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122 -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python tools zlib zstd" -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" -# the tests will never fail because these are not intended as sanity -# tests at all. They are more a way for upstream to check their own code -# on new compilers. Since they would either be completely unreliable -# (failing for no good reason) or completely useless (never failing) -# there is no point in having them in the ebuild to begin with. -RESTRICT="test" - -RDEPEND=" - bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] ) - icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] ) - !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] ) - lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] ) - mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] ) - python? ( - ${PYTHON_DEPS} - numpy? ( dev-python/numpy[${PYTHON_USEDEP}] ) - ) - zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] ) - zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )" -DEPEND="${RDEPEND}" -BDEPEND=">=dev-util/b2-4.9.2" - -PATCHES=( - "${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch - "${FILESDIR}"/${PN}-1.79.0-context-x32.patch - "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch - # Boost.MPI's __init__.py doesn't work on Py3 - "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch - "${FILESDIR}"/${PN}-1.80.0-fix-mips1-transition.patch - "${FILESDIR}"/${PN}-1.81.0-phoenix-multiple-definitions.patch - - # (upstreamed) - "${FILESDIR}"/${PN}-1.82.0-context-arm64.patch -) - -python_bindings_needed() { - multilib_is_native_abi && use python -} - -tools_needed() { - multilib_is_native_abi && use tools -} - -create_user-config.jam() { - local user_config_jam="${BUILD_DIR}"/user-config.jam - if [[ -s ${user_config_jam} ]]; then - einfo "${user_config_jam} already exists, skipping configuration" - return - else - einfo "Creating configuration in ${user_config_jam}" - fi - - local compiler compiler_version compiler_executable="$(tc-getCXX)" - compiler="gcc" - compiler_version="$(gcc-version)" - - if use mpi; then - local mpi_configuration="using mpi ;" - fi - - cat > "${user_config_jam}" <<- __EOF__ || die - using ${compiler} : ${compiler_version} : ${compiler_executable} : "${CPPFLAGS} ${CFLAGS}" "${CPPFLAGS} ${CXXFLAGS}" "${LDFLAGS}" "$(tc-getAR)" "$(tc-getRANLIB)" ; - ${mpi_configuration} - __EOF__ - - if python_bindings_needed; then - append_to_user_config() { - local py_config - if tc-is-cross-compiler; then - py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;" - else - py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;" - fi - echo "${py_config}" >> "${user_config_jam}" || die - } - python_foreach_impl append_to_user_config - fi - - if python_bindings_needed && use numpy; then - einfo "Enabling support for NumPy extensions in Boost.Python" - else - einfo "Disabling support for NumPy extensions in Boost.Python" - - # Boost.Build does not allow for disabling of numpy - # extensions, thereby leading to automagic numpy - # https://github.com/boostorg/python/issues/111#issuecomment-280447482 - sed \ - -e 's/\[ unless \[ python\.numpy \] : no \]/no/g' \ - -i "${BUILD_DIR}"/libs/python/build/Jamfile || die - fi -} - -pkg_setup() { - # Bail out on unsupported build configuration, bug #456792 - if [[ -f "${EROOT}"/etc/site-config.jam ]]; then - if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then - eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets." - eerror "Boost can not be built in such configuration." - eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it." - die "Unsupported target in ${EROOT}/etc/site-config.jam" - fi - fi -} - -src_prepare() { - default - multilib_copy_sources -} - -ejam() { - create_user-config.jam - - local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" ) - if python_bindings_needed; then - append_to_b2_opts() { - b2_opts+=( python="${EPYTHON#python}" ) - } - python_foreach_impl append_to_b2_opts - else - b2_opts+=( --without-python ) - fi - b2_opts+=( "$@" ) - - echo b2 "${b2_opts[@]}" >&2 - b2 "${b2_opts[@]}" -} - -src_configure() { - # Workaround for too many parallel processes requested, bug #506064 - [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64" - - # We don't want to end up with -L/usr/lib on our linker lines - # which then gives us lots of - # skipping incompatible /usr/lib/libc.a when searching for -lc - # warnings - [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr" - - OPTIONS=( - $(usex debug gentoodebug gentoorelease) - "-j$(makeopts_jobs)" - -q - -d+2 - pch=off - $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off') - $(usev !mpi --without-mpi) - $(usev !nls --without-locale) - $(usev !context '--without-context --without-coroutine --without-fiber') - --without-stacktrace - --boost-build="${BROOT}"/usr/share/b2/src - --layout=system - # building with threading=single is currently not possible - # https://svn.boost.org/trac/boost/ticket/7105 - threading=multi - link=shared - # this seems to be the only way to disable compression algorithms - # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build - -sNO_BZIP2=$(usex bzip2 0 1) - -sNO_LZMA=$(usex lzma 0 1) - -sNO_ZLIB=$(usex zlib 0 1) - -sNO_ZSTD=$(usex zstd 0 1) - ) - - if [[ ${CHOST} == *-darwin* ]]; then - # We need to add the prefix, and in two cases this exceeds, so prepare - # for the largest possible space allocation. - append-ldflags -Wl,-headerpad_max_install_names - fi - - # Use C++17 globally as of 1.80 - append-cxxflags -std=c++17 - - if [[ ${CHOST} != *-darwin* ]]; then - # On modern macOS, file I/O is already 64-bit by default, - # there's no support for special options like O_LARGEFILE. - # Thus, LFS must be disabled. - # - # On other systems, we need to enable LFS explicitly for 64-bit - # offsets on 32-bit hosts (#894564) - append-lfs-flags - fi -} - -multilib_src_compile() { - ejam \ - --prefix="${EPREFIX}"/usr \ - "${OPTIONS[@]}" || die - - if tools_needed; then - pushd tools >/dev/null || die - ejam \ - --prefix="${EPREFIX}"/usr \ - "${OPTIONS[@]}" \ - || die "Building of Boost tools failed" - popd >/dev/null || die - fi -} - -multilib_src_install() { - ejam \ - --prefix="${ED}"/usr \ - --includedir="${ED}"/usr/include \ - --libdir="${ED}"/usr/$(get_libdir) \ - "${OPTIONS[@]}" install || die "Installation of Boost libraries failed" - - if tools_needed; then - dobin dist/bin/* - - insinto /usr/share - doins -r dist/share/boostbook - fi - - # boost's build system truely sucks for not having a destdir. Because for - # this reason we are forced to build with a prefix that includes the - # DESTROOT, dynamic libraries on Darwin end messed up, referencing the - # DESTROOT instread of the actual EPREFIX. There is no way out of here - # but to do it the dirty way of manually setting the right install_names. - if [[ ${CHOST} == *-darwin* ]]; then - einfo "Working around completely broken build-system(tm)" - local d - for d in "${ED}"/usr/lib/*.dylib; do - if [[ -f ${d} ]]; then - # fix the "soname" - ebegin " correcting install_name of ${d#${ED}}" - install_name_tool -id "/${d#${D}}" "${d}" - eend $? - # fix references to other libs - # these paths look like this: - # bin.v2/libs/thread/build/gcc-12.1/gentoorelease/pch-off/ - # threadapi-pthread/threading-multi/visibility-hidden/ - # libboost_thread.dylib - refs=$(otool -XL "${d}" | \ - sed -e '1d' -e 's/^\t//' | \ - grep "libboost_" | \ - cut -f1 -d' ') - local r - for r in ${refs}; do - # strip path prefix from references, so we obtain - # something like libboost_thread.dylib. - local r_basename=${r##*/} - - ebegin " correcting reference to ${r_basename}" - install_name_tool -change \ - "${r}" \ - "${EPREFIX}/usr/lib/${r_basename}" \ - "${d}" - eend $? - done - fi - done - fi -} - -multilib_src_install_all() { - if ! use numpy; then - rm -r "${ED}"/usr/include/boost/python/numpy* || die - fi - - if use python; then - if use mpi; then - move_mpi_py_into_sitedir() { - python_moduleinto boost - python_domodule "${S}"/libs/mpi/build/__init__.py - - python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so - rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die - - python_optimize - } - python_foreach_impl move_mpi_py_into_sitedir - else - rm -r "${ED}"/usr/include/boost/mpi/python* || die - fi - else - rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die - fi - - if ! use nls; then - rm -r "${ED}"/usr/include/boost/locale || die - fi - - if ! use context; then - rm -r "${ED}"/usr/include/boost/context || die - rm -r "${ED}"/usr/include/boost/coroutine{,2} || die - rm "${ED}"/usr/include/boost/asio/spawn.hpp || die - fi - - if use doc; then - # find extraneous files that shouldn't be installed - # as part of the documentation and remove them. - find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die - find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die - find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die - - docinto html - dodoc *.{htm,html,png,css} - dodoc -r doc libs more tools - - # To avoid broken links - dodoc LICENSE_1_0.txt - - dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost - fi -} - -pkg_preinst() { - # Yay for having symlinks that are nigh-impossible to remove without - # resorting to dirty hacks like these. Removes lingering symlinks - # from the slotted versions. - local symlink - for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do - if [[ -L ${symlink} ]]; then - rm -f "${symlink}" || die - fi - done - - # some ancient installs still have boost cruft lying around - # for unknown reasons, causing havoc for reverse dependencies - # Bug: 607734 - rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die -} - -pkg_postinst() { - elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as" - elog - elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation" - elog " ::transform_primary[abi:cxx11](char const*, char const*) const'" - elog - elog "Then you need to recompile Boost and all its reverse dependencies" - elog "using the same toolchain. In general, *every* change of the C++ toolchain" - elog "requires a complete rebuild of the Boost-dependent ecosystem." - elog - elog "See for instance https://bugs.gentoo.org/638138" -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/boost/boost-1.83.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/boost/boost-1.83.0-r1.ebuild deleted file mode 100644 index 939e9e431e..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/boost/boost-1.83.0-r1.ebuild +++ /dev/null @@ -1,356 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Keep an eye on both of these after releases for patches: -# * https://www.boost.org/patches/ -# * https://www.boost.org/users/history/version_${MY_PV}.html -# (e.g. https://www.boost.org/users/history/version_1_83_0.html) -# Note that the latter may sometimes feature patches not on the former too. - -PYTHON_COMPAT=( python3_{10..12} ) - -inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal - -MY_PV="$(ver_rs 1- _)" - -DESCRIPTION="Boost Libraries for C++" -HOMEPAGE="https://www.boost.org/" -SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2" -S="${WORKDIR}/${PN}_${MY_PV}" - -LICENSE="Boost-1.0" -SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122 -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="bzip2 +context debug doc icu lzma +nls mpi numpy python +stacktrace tools zlib zstd" -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" -# the tests will never fail because these are not intended as sanity -# tests at all. They are more a way for upstream to check their own code -# on new compilers. Since they would either be completely unreliable -# (failing for no good reason) or completely useless (never failing) -# there is no point in having them in the ebuild to begin with. -RESTRICT="test" - -RDEPEND=" - bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] ) - icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] ) - !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] ) - lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] ) - mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] ) - python? ( - ${PYTHON_DEPS} - numpy? ( dev-python/numpy[${PYTHON_USEDEP}] ) - ) - zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] ) - zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )" -DEPEND="${RDEPEND}" -BDEPEND=">=dev-util/b2-4.9.2" - -PATCHES=( - "${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch - "${FILESDIR}"/${PN}-1.79.0-context-x32.patch - "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch - # Boost.MPI's __init__.py doesn't work on Py3 - "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch - "${FILESDIR}"/${PN}-1.81.0-phoenix-multiple-definitions.patch -) - -python_bindings_needed() { - multilib_is_native_abi && use python -} - -tools_needed() { - multilib_is_native_abi && use tools -} - -create_user-config.jam() { - local user_config_jam="${BUILD_DIR}"/user-config.jam - if [[ -s ${user_config_jam} ]]; then - einfo "${user_config_jam} already exists, skipping configuration" - return - else - einfo "Creating configuration in ${user_config_jam}" - fi - - local compiler compiler_version compiler_executable="$(tc-getCXX)" - compiler="gcc" - compiler_version="$(gcc-version)" - - if use mpi; then - local mpi_configuration="using mpi ;" - fi - - cat > "${user_config_jam}" <<- __EOF__ || die - using ${compiler} : ${compiler_version} : ${compiler_executable} : "${CPPFLAGS} ${CFLAGS}" "${CPPFLAGS} ${CXXFLAGS}" "${LDFLAGS}" "$(tc-getAR)" "$(tc-getRANLIB)" ; - ${mpi_configuration} - __EOF__ - - if python_bindings_needed; then - append_to_user_config() { - local py_config - if tc-is-cross-compiler; then - py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;" - else - py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;" - fi - echo "${py_config}" >> "${user_config_jam}" || die - } - python_foreach_impl append_to_user_config - fi - - if python_bindings_needed && use numpy; then - einfo "Enabling support for NumPy extensions in Boost.Python" - else - einfo "Disabling support for NumPy extensions in Boost.Python" - - # Boost.Build does not allow for disabling of numpy - # extensions, thereby leading to automagic numpy - # https://github.com/boostorg/python/issues/111#issuecomment-280447482 - sed \ - -e 's/\[ unless \[ python\.numpy \] : no \]/no/g' \ - -i "${BUILD_DIR}"/libs/python/build/Jamfile || die - fi -} - -pkg_setup() { - # Bail out on unsupported build configuration, bug #456792 - if [[ -f "${EROOT}"/etc/site-config.jam ]]; then - if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then - eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets." - eerror "Boost can not be built in such configuration." - eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it." - die "Unsupported target in ${EROOT}/etc/site-config.jam" - fi - fi -} - -src_prepare() { - default - multilib_copy_sources -} - -ejam() { - create_user-config.jam - - local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" ) - if python_bindings_needed; then - append_to_b2_opts() { - b2_opts+=( python="${EPYTHON#python}" ) - } - python_foreach_impl append_to_b2_opts - else - b2_opts+=( --without-python ) - fi - b2_opts+=( "$@" ) - - echo b2 "${b2_opts[@]}" >&2 - b2 "${b2_opts[@]}" -} - -src_configure() { - # Workaround for too many parallel processes requested, bug #506064 - [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64" - - # We don't want to end up with -L/usr/lib on our linker lines - # which then gives us lots of - # skipping incompatible /usr/lib/libc.a when searching for -lc - # warnings - [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr" - - OPTIONS=( - $(usex debug gentoodebug gentoorelease) - "-j$(makeopts_jobs)" - -q - -d+2 - pch=off - $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off') - $(usev !mpi --without-mpi) - $(usev !nls --without-locale) - $(usev !context '--without-context --without-coroutine --without-fiber') - $(usev !stacktrace --without-stacktrace) - --boost-build="${BROOT}"/usr/share/b2/src - --layout=system - # building with threading=single is currently not possible - # https://svn.boost.org/trac/boost/ticket/7105 - threading=multi - link=shared - # this seems to be the only way to disable compression algorithms - # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build - -sNO_BZIP2=$(usex bzip2 0 1) - -sNO_LZMA=$(usex lzma 0 1) - -sNO_ZLIB=$(usex zlib 0 1) - -sNO_ZSTD=$(usex zstd 0 1) - ) - - if [[ ${CHOST} == *-darwin* ]]; then - # We need to add the prefix, and in two cases this exceeds, so prepare - # for the largest possible space allocation. - append-ldflags -Wl,-headerpad_max_install_names - fi - - # Use C++17 globally as of 1.80 - append-cxxflags -std=c++17 - - if [[ ${CHOST} != *-darwin* ]]; then - # On modern macOS, file I/O is already 64-bit by default, - # there's no support for special options like O_LARGEFILE. - # Thus, LFS must be disabled. - # - # On other systems, we need to enable LFS explicitly for 64-bit - # offsets on 32-bit hosts (#894564) - append-lfs-flags - fi -} - -multilib_src_compile() { - ejam \ - --prefix="${EPREFIX}"/usr \ - "${OPTIONS[@]}" || die - - if tools_needed; then - pushd tools >/dev/null || die - ejam \ - --prefix="${EPREFIX}"/usr \ - "${OPTIONS[@]}" \ - || die "Building of Boost tools failed" - popd >/dev/null || die - fi -} - -multilib_src_install() { - ejam \ - --prefix="${ED}"/usr \ - --includedir="${ED}"/usr/include \ - --libdir="${ED}"/usr/$(get_libdir) \ - "${OPTIONS[@]}" install || die "Installation of Boost libraries failed" - - if tools_needed; then - dobin dist/bin/* - - insinto /usr/share - doins -r dist/share/boostbook - fi - - # boost's build system truely sucks for not having a destdir. Because for - # this reason we are forced to build with a prefix that includes the - # DESTROOT, dynamic libraries on Darwin end messed up, referencing the - # DESTROOT instread of the actual EPREFIX. There is no way out of here - # but to do it the dirty way of manually setting the right install_names. - if [[ ${CHOST} == *-darwin* ]]; then - einfo "Working around completely broken build-system(tm)" - local d - for d in "${ED}"/usr/lib/*.dylib; do - if [[ -f ${d} ]]; then - # fix the "soname" - ebegin " correcting install_name of ${d#${ED}}" - install_name_tool -id "/${d#${D}}" "${d}" - eend $? - # fix references to other libs - # these paths look like this: - # bin.v2/libs/thread/build/gcc-12.1/gentoorelease/pch-off/ - # threadapi-pthread/threading-multi/visibility-hidden/ - # libboost_thread.dylib - refs=$(otool -XL "${d}" | \ - sed -e '1d' -e 's/^\t//' | \ - grep "libboost_" | \ - cut -f1 -d' ') - local r - for r in ${refs}; do - # strip path prefix from references, so we obtain - # something like libboost_thread.dylib. - local r_basename=${r##*/} - - ebegin " correcting reference to ${r_basename}" - install_name_tool -change \ - "${r}" \ - "${EPREFIX}/usr/lib/${r_basename}" \ - "${d}" - eend $? - done - fi - done - fi -} - -multilib_src_install_all() { - if ! use numpy; then - rm -r "${ED}"/usr/include/boost/python/numpy* || die - fi - - if use python; then - if use mpi; then - move_mpi_py_into_sitedir() { - python_moduleinto boost - python_domodule "${S}"/libs/mpi/build/__init__.py - - python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so - rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die - - python_optimize - } - python_foreach_impl move_mpi_py_into_sitedir - else - rm -r "${ED}"/usr/include/boost/mpi/python* || die - fi - else - rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die - fi - - if ! use nls; then - rm -r "${ED}"/usr/include/boost/locale || die - fi - - if ! use context; then - rm -r "${ED}"/usr/include/boost/context || die - rm -r "${ED}"/usr/include/boost/coroutine{,2} || die - rm "${ED}"/usr/include/boost/asio/spawn.hpp || die - fi - - if use doc; then - # find extraneous files that shouldn't be installed - # as part of the documentation and remove them. - find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die - find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die - find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die - - docinto html - dodoc *.{htm,html,png,css} - dodoc -r doc libs more tools - - # To avoid broken links - dodoc LICENSE_1_0.txt - - dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost - fi -} - -pkg_preinst() { - # Yay for having symlinks that are nigh-impossible to remove without - # resorting to dirty hacks like these. Removes lingering symlinks - # from the slotted versions. - local symlink - for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do - if [[ -L ${symlink} ]]; then - rm -f "${symlink}" || die - fi - done - - # some ancient installs still have boost cruft lying around - # for unknown reasons, causing havoc for reverse dependencies - # Bug: 607734 - rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die -} - -pkg_postinst() { - elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as" - elog - elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation" - elog " ::transform_primary[abi:cxx11](char const*, char const*) const'" - elog - elog "Then you need to recompile Boost and all its reverse dependencies" - elog "using the same toolchain. In general, *every* change of the C++ toolchain" - elog "requires a complete rebuild of the Boost-dependent ecosystem." - elog - elog "See for instance https://bugs.gentoo.org/638138" -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/boost/boost-1.83.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/boost/boost-1.83.0-r2.ebuild deleted file mode 100644 index 5f671e7f2c..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/boost/boost-1.83.0-r2.ebuild +++ /dev/null @@ -1,357 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Keep an eye on both of these after releases for patches: -# * https://www.boost.org/patches/ -# * https://www.boost.org/users/history/version_${MY_PV}.html -# (e.g. https://www.boost.org/users/history/version_1_83_0.html) -# Note that the latter may sometimes feature patches not on the former too. - -PYTHON_COMPAT=( python3_{10..12} ) - -inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal - -MY_PV="$(ver_rs 1- _)" - -DESCRIPTION="Boost Libraries for C++" -HOMEPAGE="https://www.boost.org/" -SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2" -S="${WORKDIR}/${PN}_${MY_PV}" - -LICENSE="Boost-1.0" -SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122 -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="bzip2 +context debug doc icu lzma +nls mpi numpy python +stacktrace tools zlib zstd" -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" -# the tests will never fail because these are not intended as sanity -# tests at all. They are more a way for upstream to check their own code -# on new compilers. Since they would either be completely unreliable -# (failing for no good reason) or completely useless (never failing) -# there is no point in having them in the ebuild to begin with. -RESTRICT="test" - -RDEPEND=" - bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] ) - icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] ) - !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] ) - lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] ) - mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] ) - python? ( - ${PYTHON_DEPS} - numpy? ( dev-python/numpy[${PYTHON_USEDEP}] ) - ) - zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] ) - zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )" -DEPEND="${RDEPEND}" -BDEPEND=">=dev-util/b2-4.9.2" - -PATCHES=( - "${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch - "${FILESDIR}"/${PN}-1.79.0-context-x32.patch - "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch - # Boost.MPI's __init__.py doesn't work on Py3 - "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch - "${FILESDIR}"/${PN}-1.81.0-phoenix-multiple-definitions.patch - "${FILESDIR}"/${PN}-1.83.0-unordered-uaf.patch -) - -python_bindings_needed() { - multilib_is_native_abi && use python -} - -tools_needed() { - multilib_is_native_abi && use tools -} - -create_user-config.jam() { - local user_config_jam="${BUILD_DIR}"/user-config.jam - if [[ -s ${user_config_jam} ]]; then - einfo "${user_config_jam} already exists, skipping configuration" - return - else - einfo "Creating configuration in ${user_config_jam}" - fi - - local compiler compiler_version compiler_executable="$(tc-getCXX)" - compiler="gcc" - compiler_version="$(gcc-version)" - - if use mpi; then - local mpi_configuration="using mpi ;" - fi - - cat > "${user_config_jam}" <<- __EOF__ || die - using ${compiler} : ${compiler_version} : ${compiler_executable} : "${CPPFLAGS} ${CFLAGS}" "${CPPFLAGS} ${CXXFLAGS}" "${LDFLAGS}" "$(tc-getAR)" "$(tc-getRANLIB)" ; - ${mpi_configuration} - __EOF__ - - if python_bindings_needed; then - append_to_user_config() { - local py_config - if tc-is-cross-compiler; then - py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;" - else - py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;" - fi - echo "${py_config}" >> "${user_config_jam}" || die - } - python_foreach_impl append_to_user_config - fi - - if python_bindings_needed && use numpy; then - einfo "Enabling support for NumPy extensions in Boost.Python" - else - einfo "Disabling support for NumPy extensions in Boost.Python" - - # Boost.Build does not allow for disabling of numpy - # extensions, thereby leading to automagic numpy - # https://github.com/boostorg/python/issues/111#issuecomment-280447482 - sed \ - -e 's/\[ unless \[ python\.numpy \] : no \]/no/g' \ - -i "${BUILD_DIR}"/libs/python/build/Jamfile || die - fi -} - -pkg_setup() { - # Bail out on unsupported build configuration, bug #456792 - if [[ -f "${EROOT}"/etc/site-config.jam ]]; then - if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then - eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets." - eerror "Boost can not be built in such configuration." - eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it." - die "Unsupported target in ${EROOT}/etc/site-config.jam" - fi - fi -} - -src_prepare() { - default - multilib_copy_sources -} - -ejam() { - create_user-config.jam - - local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" ) - if python_bindings_needed; then - append_to_b2_opts() { - b2_opts+=( python="${EPYTHON#python}" ) - } - python_foreach_impl append_to_b2_opts - else - b2_opts+=( --without-python ) - fi - b2_opts+=( "$@" ) - - echo b2 "${b2_opts[@]}" >&2 - b2 "${b2_opts[@]}" -} - -src_configure() { - # Workaround for too many parallel processes requested, bug #506064 - [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64" - - # We don't want to end up with -L/usr/lib on our linker lines - # which then gives us lots of - # skipping incompatible /usr/lib/libc.a when searching for -lc - # warnings - [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr" - - OPTIONS=( - $(usex debug gentoodebug gentoorelease) - "-j$(makeopts_jobs)" - -q - -d+2 - pch=off - $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off') - $(usev !mpi --without-mpi) - $(usev !nls --without-locale) - $(usev !context '--without-context --without-coroutine --without-fiber') - $(usev !stacktrace --without-stacktrace) - --boost-build="${BROOT}"/usr/share/b2/src - --layout=system - # building with threading=single is currently not possible - # https://svn.boost.org/trac/boost/ticket/7105 - threading=multi - link=shared - # this seems to be the only way to disable compression algorithms - # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build - -sNO_BZIP2=$(usex bzip2 0 1) - -sNO_LZMA=$(usex lzma 0 1) - -sNO_ZLIB=$(usex zlib 0 1) - -sNO_ZSTD=$(usex zstd 0 1) - ) - - if [[ ${CHOST} == *-darwin* ]]; then - # We need to add the prefix, and in two cases this exceeds, so prepare - # for the largest possible space allocation. - append-ldflags -Wl,-headerpad_max_install_names - fi - - # Use C++17 globally as of 1.80 - append-cxxflags -std=c++17 - - if [[ ${CHOST} != *-darwin* ]]; then - # On modern macOS, file I/O is already 64-bit by default, - # there's no support for special options like O_LARGEFILE. - # Thus, LFS must be disabled. - # - # On other systems, we need to enable LFS explicitly for 64-bit - # offsets on 32-bit hosts (#894564) - append-lfs-flags - fi -} - -multilib_src_compile() { - ejam \ - --prefix="${EPREFIX}"/usr \ - "${OPTIONS[@]}" || die - - if tools_needed; then - pushd tools >/dev/null || die - ejam \ - --prefix="${EPREFIX}"/usr \ - "${OPTIONS[@]}" \ - || die "Building of Boost tools failed" - popd >/dev/null || die - fi -} - -multilib_src_install() { - ejam \ - --prefix="${ED}"/usr \ - --includedir="${ED}"/usr/include \ - --libdir="${ED}"/usr/$(get_libdir) \ - "${OPTIONS[@]}" install || die "Installation of Boost libraries failed" - - if tools_needed; then - dobin dist/bin/* - - insinto /usr/share - doins -r dist/share/boostbook - fi - - # boost's build system truely sucks for not having a destdir. Because for - # this reason we are forced to build with a prefix that includes the - # DESTROOT, dynamic libraries on Darwin end messed up, referencing the - # DESTROOT instread of the actual EPREFIX. There is no way out of here - # but to do it the dirty way of manually setting the right install_names. - if [[ ${CHOST} == *-darwin* ]]; then - einfo "Working around completely broken build-system(tm)" - local d - for d in "${ED}"/usr/lib/*.dylib; do - if [[ -f ${d} ]]; then - # fix the "soname" - ebegin " correcting install_name of ${d#${ED}}" - install_name_tool -id "/${d#${D}}" "${d}" - eend $? - # fix references to other libs - # these paths look like this: - # bin.v2/libs/thread/build/gcc-12.1/gentoorelease/pch-off/ - # threadapi-pthread/threading-multi/visibility-hidden/ - # libboost_thread.dylib - refs=$(otool -XL "${d}" | \ - sed -e '1d' -e 's/^\t//' | \ - grep "libboost_" | \ - cut -f1 -d' ') - local r - for r in ${refs}; do - # strip path prefix from references, so we obtain - # something like libboost_thread.dylib. - local r_basename=${r##*/} - - ebegin " correcting reference to ${r_basename}" - install_name_tool -change \ - "${r}" \ - "${EPREFIX}/usr/lib/${r_basename}" \ - "${d}" - eend $? - done - fi - done - fi -} - -multilib_src_install_all() { - if ! use numpy; then - rm -r "${ED}"/usr/include/boost/python/numpy* || die - fi - - if use python; then - if use mpi; then - move_mpi_py_into_sitedir() { - python_moduleinto boost - python_domodule "${S}"/libs/mpi/build/__init__.py - - python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so - rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die - - python_optimize - } - python_foreach_impl move_mpi_py_into_sitedir - else - rm -r "${ED}"/usr/include/boost/mpi/python* || die - fi - else - rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die - fi - - if ! use nls; then - rm -r "${ED}"/usr/include/boost/locale || die - fi - - if ! use context; then - rm -r "${ED}"/usr/include/boost/context || die - rm -r "${ED}"/usr/include/boost/coroutine{,2} || die - rm "${ED}"/usr/include/boost/asio/spawn.hpp || die - fi - - if use doc; then - # find extraneous files that shouldn't be installed - # as part of the documentation and remove them. - find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die - find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die - find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die - - docinto html - dodoc *.{htm,html,png,css} - dodoc -r doc libs more tools - - # To avoid broken links - dodoc LICENSE_1_0.txt - - dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost - fi -} - -pkg_preinst() { - # Yay for having symlinks that are nigh-impossible to remove without - # resorting to dirty hacks like these. Removes lingering symlinks - # from the slotted versions. - local symlink - for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do - if [[ -L ${symlink} ]]; then - rm -f "${symlink}" || die - fi - done - - # some ancient installs still have boost cruft lying around - # for unknown reasons, causing havoc for reverse dependencies - # Bug: 607734 - rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die -} - -pkg_postinst() { - elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as" - elog - elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation" - elog " ::transform_primary[abi:cxx11](char const*, char const*) const'" - elog - elog "Then you need to recompile Boost and all its reverse dependencies" - elog "using the same toolchain. In general, *every* change of the C++ toolchain" - elog "requires a complete rebuild of the Boost-dependent ecosystem." - elog - elog "See for instance https://bugs.gentoo.org/638138" -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.79.0-boost-mpi-python-PEP-328.patch b/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.79.0-boost-mpi-python-PEP-328.patch deleted file mode 100644 index 444db2b609..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.79.0-boost-mpi-python-PEP-328.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- a/libs/mpi/build/__init__.py -+++ b/libs/mpi/build/__init__.py -@@ -1,10 +1,12 @@ -+from __future__ import absolute_import -+ - import sys - if sys.platform == 'linux2': - import DLFCN as dl - flags = sys.getdlopenflags() - sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL) -- import mpi -+ from . import mpi - sys.setdlopenflags(flags) - else: -- import mpi -+ from . import mpi - diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.79.0-build-auto_index-tool.patch b/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.79.0-build-auto_index-tool.patch deleted file mode 100644 index ca793b9d06..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.79.0-build-auto_index-tool.patch +++ /dev/null @@ -1,13 +0,0 @@ -Build auto_index tool with USE="tools" -See also: https://bugs.gentoo.org/529066 - ---- a/tools/Jamfile.v2 -+++ b/tools/Jamfile.v2 -@@ -18,6 +18,7 @@ - ; - - TOOLS = -+ auto_index/build//auto_index - bcp//bcp - inspect/build//inspect - quickbook//quickbook diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.79.0-context-x32.patch b/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.79.0-context-x32.patch deleted file mode 100644 index 9ee3d545d6..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.79.0-context-x32.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- a/libs/context/src/asm/jump_i386_sysv_elf_gas.S -+++ b/libs/context/src/asm/jump_i386_sysv_elf_gas.S -@@ -24,6 +24,10 @@ - * * - ****************************************************************************************/ - -+#ifdef __x86_64__ -+#include "jump_x86_64_sysv_elf_gas.S" -+#else -+ - .file "jump_i386_sysv_elf_gas.S" - .text - .globl jump_fcontext -@@ -81,3 +85,5 @@ - - /* Mark that we don't need executable stack. */ - .section .note.GNU-stack,"",%progbits -+ -+#endif ---- a/libs/context/src/asm/make_i386_sysv_elf_gas.S -+++ b/libs/context/src/asm/make_i386_sysv_elf_gas.S -@@ -24,6 +24,10 @@ - * * - ****************************************************************************************/ - -+#ifdef __x86_64__ -+#include "make_x86_64_sysv_elf_gas.S" -+#else -+ - .file "make_i386_sysv_elf_gas.S" - .text - .globl make_fcontext -@@ -105,3 +109,5 @@ - - /* Mark that we don't need executable stack. */ - .section .note.GNU-stack,"",%progbits -+ -+#endif diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.80.0-fix-mips1-transition.patch b/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.80.0-fix-mips1-transition.patch deleted file mode 100644 index 4f5e81c925..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.80.0-fix-mips1-transition.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- a/boostcpp.jam -+++ b/boostcpp.jam -@@ -634,7 +634,7 @@ rule address-model ( ) - return @boostcpp.deduce-address-model ; - } - --local deducable-architectures = arm mips1 power riscv s390x sparc x86 combined ; -+local deducable-architectures = arm mips power riscv s390x sparc x86 combined ; - feature.feature deduced-architecture : $(deducable-architectures) : propagated optional composite hidden ; - for a in $(deducable-architectures) - { -@@ -645,10 +645,10 @@ rule deduce-architecture ( properties * ) - { - local result ; - local filtered = [ toolset-properties $(properties) ] ; -- local names = arm mips1 power riscv s390x sparc x86 combined ; -+ local names = arm mips power riscv s390x sparc x86 combined ; - local idx = [ configure.find-builds "default architecture" : $(filtered) - : /boost/architecture//arm -- : /boost/architecture//mips1 -+ : /boost/architecture//mips - : /boost/architecture//power - : /boost/architecture//riscv - : /boost/architecture//s390x diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.81.0-disable_icu_rpath.patch b/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.81.0-disable_icu_rpath.patch deleted file mode 100644 index a64d2d8675..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.81.0-disable_icu_rpath.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- a/libs/locale/build/Jamfile.v2 -+++ b/libs/locale/build/Jamfile.v2 -@@ -99,16 +99,6 @@ if $(.icu-path) - rule path_options ( properties * ) - { - local result ; -- if 64 in $(properties) && msvc in $(properties) -- { -- debug-message Search 64 bit ICU in "$(.icu-path)/lib64" ; -- result = $(.icu-path)/bin64 $(.icu-path)/lib64 ; -- } -- else -- { -- debug-message Search ICU in "$(.icu-path)/lib" ; -- result = $(.icu-path)/bin $(.icu-path)/lib ; -- } - return $(result) ; - } - diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.81.0-phoenix-multiple-definitions.patch b/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.81.0-phoenix-multiple-definitions.patch deleted file mode 100644 index 0aedde6d07..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.81.0-phoenix-multiple-definitions.patch +++ /dev/null @@ -1,11 +0,0 @@ -https://bugs.gentoo.org/887041 -https://github.com/boostorg/phoenix/issues/111 ---- a/boost/phoenix/stl.hpp -+++ b/boost/phoenix/stl.hpp -@@ -11,6 +11,5 @@ - - #include - #include --#include - - #endif diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.82.0-context-arm64.patch b/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.82.0-context-arm64.patch deleted file mode 100644 index a4efac7f2f..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.82.0-context-arm64.patch +++ /dev/null @@ -1,19 +0,0 @@ -https://github.com/boostorg/context/commit/d039c8e4da79dbc76481236249e22892bfdde047 -https://bugs.gentoo.org/904132 - -From d039c8e4da79dbc76481236249e22892bfdde047 Mon Sep 17 00:00:00 2001 -From: Nikita Kniazev -Date: Thu, 23 Mar 2023 16:23:07 +0300 -Subject: [PATCH] Fix arm64 detection broken by recent B2 change - ---- a/libs/context/build/Jamfile.v2 -+++ b/libs/context/build/Jamfile.v2 -@@ -79,7 +79,7 @@ local rule default_abi ( ) - local tmp = sysv ; - if [ os.name ] = "NT" { tmp = ms ; } - else if [ os.name ] = "CYGWIN" { tmp = ms ; } -- else if [ os.platform ] = "ARM" { tmp = aapcs ; } -+ else if [ os.platform ] in ARM ARM64 { tmp = aapcs ; } - else if [ os.platform ] = "MIPS32" { tmp = o32 ; } - else if [ os.platform ] = "MIPS64" { tmp = n64 ; } - return $(tmp) ; diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.83.0-unordered-uaf.patch b/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.83.0-unordered-uaf.patch deleted file mode 100644 index f9ecf675fd..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.83.0-unordered-uaf.patch +++ /dev/null @@ -1,18 +0,0 @@ -https://www.boost.org/patches/1_83_0/0001-unordered-fix-copy-assign.patch -https://github.com/boostorg/unordered/issues/205 - ---- a/boost/unordered/detail/foa/core.hpp -+++ b/boost/unordered/detail/foa/core.hpp -@@ -1870,9 +1870,10 @@ private: - - void fast_copy_elements_from(const table_core& x) - { -- if(arrays.elements){ -+ if(arrays.elements&&x.arrays.elements){ - copy_elements_array_from(x); - copy_groups_array_from(x); -+ size_ctrl.ml=std::size_t(x.size_ctrl.ml); - size_ctrl.size=std::size_t(x.size_ctrl.size); - } - } - diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/boost/metadata.xml b/sdk_container/src/third_party/portage-stable/dev-libs/boost/metadata.xml deleted file mode 100644 index ba1a98dcc4..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/boost/metadata.xml +++ /dev/null @@ -1,160 +0,0 @@ - - - - - soap@gentoo.org - David Seifert - - - office@gentoo.org - Please CC on stabilisation bugs - - - Build and install the Boost.Context (and Boost.Fiber) library and all other Boost libraries that depend on it - Build and install only the debug version of the Boost libraries. Only enable this flag if you're developing against boost. - Install the full API documentation documentation. This takes over 200MB of extra disk space. - Build libboost_locale. This library requires compatible C library interfaces, which might not be provided by uClibc or other embedded libraries. - Optionally build NumPy extensions when Boost.Python is enabled - Build the full Boost.Stacktrace dynamic library instead of relying on the header-only implementation - Build and install the boost tools (bcp, quickbook, inspect, wave) - - - cpe:/a:boost:boost - - boostorg/boost - boostorg/accumulators - boostorg/algorithm - boostorg/align - boostorg/any - boostorg/archive - boostorg/asio - boostorg/assert - boostorg/assign - boostorg/atomic - boostorg/beast - boostorg/bimap - boostorg/bind - boostorg/callable_traits - boostorg/chrono - boostorg/circular_buffer - boostorg/compatibility - boostorg/compute - boostorg/concept - boostorg/concept_check - boostorg/config - boostorg/container - boostorg/container_hash - boostorg/context - boostorg/contract - boostorg/convert - boostorg/core - boostorg/coroutine - boostorg/coroutine2 - boostorg/date_time - boostorg/describe - boostorg/detail - boostorg/dll - boostorg/dynamic_bitset - boostorg/endian - boostorg/exception - boostorg/fiber - boostorg/filesystem - boostorg/flyweight - boostorg/format - boostorg/function - boostorg/functional - boostorg/function_types - boostorg/fusion - boostorg/geometry - boostorg/gil - boostorg/graph - boostorg/hana - boostorg/heap - boostorg/histogram - boostorg/hof - boostorg/icl - boostorg/integer - boostorg/interprocess - boostorg/intrusive - boostorg/io - boostorg/iostreams - boostorg/iterator - boostorg/json - boostorg/lambda - boostorg/lambda2 - boostorg/leaf - boostorg/lexical_cast - boostorg/locale - boostorg/local_function - boostorg/lockfree - boostorg/log - boostorg/logic - boostorg/math - boostorg/metaparse - boostorg/move - boostorg/mp11 - boostorg/mpi - boostorg/mpl - boostorg/msm - boostorg/multi_array - boostorg/multi_index - boostorg/multiprecision - boostorg/nowide - boostorg/numeric - boostorg/optional - boostorg/outcome - boostorg/parameter - boostorg/pending - boostorg/pfr - boostorg/phoenix - boostorg/poly_collection - boostorg/polygon - boostorg/pool - boostorg/predef - boostorg/preprocessor - boostorg/process - boostorg/program_options - boostorg/property_map - boostorg/property_tree - boostorg/proto - boostorg/ptr_container - boostorg/python - boostorg/qvm - boostorg/random - boostorg/range - boostorg/ratio - boostorg/regex - boostorg/safe_numerics - boostorg/serialization - boostorg/signals2 - boostorg/smart_ptr - boostorg/sort - boostorg/spirit - boostorg/stacktrace - boostorg/statechart - boostorg/static_string - boostorg/stl_interfaces - boostorg/system - boostorg/test - boostorg/thread - boostorg/timer - boostorg/tti - boostorg/tuple - boostorg/type_erasure - boostorg/type_index - boostorg/typeof - boostorg/type_traits - boostorg/units - boostorg/unordered - boostorg/utility - boostorg/uuid - boostorg/variant - boostorg/variant2 - boostorg/vmd - boostorg/wave - boostorg/winapi - boostorg/xpressive - boostorg/yap - boost - - diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-21.12.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-21.12.ebuild index 6fe34f584e..cccdda2b9a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-21.12.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-21.12.ebuild @@ -12,7 +12,7 @@ if [[ "${PV}" == *9999 ]]; then EGIT_SUBMODULES=() else SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~x64-macos" + KEYWORDS="~alpha amd64 ~arm arm64 ~loong ~mips ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux ~x64-macos" fi DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/cython/Manifest index bbe8cde036..49510167e8 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/Manifest @@ -1,3 +1,4 @@ DIST cython-0.29.36.gh.tar.gz 2115333 BLAKE2B 6d43779c7222ff65d7de3a35ec18ef636480807d53480a8f94cc8c92d462fcc2f4d201a3bbf6e840a11fd33025e32c53f85626b05c131d10eed2859cdca7eb2d SHA512 a086fe1a11290cd3c870b891e61a0a0e2595bab9c26888024a758b6950c07059346d682fa9349e46c0af89805abbdd750059b3189960b8ce18007dfb5eb4391a DIST cython-3.0.2.gh.tar.gz 2744583 BLAKE2B f631891870a6ce24acf2bcde75ebcb9775cf0df7840fe9d7b138cfdea64d54e9253a53d35d892a9086f251c1294d9414eec8521218d031840a3cd06903fefb86 SHA512 f55be138efdca6ca61bd39c6f2fab736244328a170a6f6c9bda87036e022c846930b209e9e9101fad889cb179d6e60034ba6f299f14b3056536d46235b438eb7 DIST cython-3.0.3.gh.tar.gz 2753188 BLAKE2B 0e6d40533f1cebf3c4217dc19aeebc2f873a8bacb94e68810e81d1c6d4cd75176de88516f2d82f43b36107656b6cd5e6990547e93bd8436b1aa93c73ccda6eaf SHA512 c27c16abaf0122ad61e0eeb92aa80a33fc491332b8ebec209cd1810d2b0e3bf14fe1e81838803b86f407520a6d6f7ab8b84d97e495e7d91fd6f7702a46980caa +DIST cython-3.0.4.gh.tar.gz 2754689 BLAKE2B 5418b8c374565894deb07e7a3f2fe242e1ef43eed5d716cbd9c6b9fd3d62088d9982eb156c981fa9f6edcf42592f2249f9eb450d16ef908be464e357ee9bbea7 SHA512 bc87e38f9c188a5311f75f49ba4b9ec1ee0af00ff9ed655ca69972891f8b0801025265f8cad4521670088275c7da3d6136aeda7ebb6a33554f64cc7aef362c73 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.0.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.0.4.ebuild new file mode 100644 index 0000000000..4223753eab --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.0.4.ebuild @@ -0,0 +1,84 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_TESTED=( python3_{10..11} ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_12 pypy3 ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 multiprocessing toolchain-funcs + +MY_P=${P/_rc/rc} +DESCRIPTION="A Python to C compiler" +HOMEPAGE=" + https://cython.org/ + https://github.com/cython/cython/ + https://pypi.org/project/Cython/ +" +SRC_URI=" + https://github.com/cython/cython/archive/${PV/_rc/rc}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="test" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${RDEPEND} + test? ( + $(python_gen_cond_dep ' + dev-python/numpy[${PYTHON_USEDEP}] + ' "${PYTHON_TESTED[@]}") + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-0.29.22-spawn-multiprocessing.patch" + "${FILESDIR}/${PN}-0.29.23-test_exceptions-py310.patch" + "${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch" +) + +distutils_enable_sphinx docs \ + dev-python/jinja \ + dev-python/sphinx-issues \ + dev-python/sphinx-tabs + +python_compile() { + # Python gets confused when it is in sys.path before build. + local -x PYTHONPATH= + + distutils-r1_python_compile +} + +python_test() { + if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then + einfo "Skipping tests on ${EPYTHON} (xfail)" + return + fi + + # Needed to avoid confusing cache tests + unset CYTHON_FORCE_REGEN + + tc-export CC + # https://github.com/cython/cython/issues/1911 + local -x CFLAGS="${CFLAGS} -fno-strict-overflow" + "${PYTHON}" runtests.py \ + -vv \ + -j "$(makeopts_jobs)" \ + --work-dir "${BUILD_DIR}"/tests \ + --no-examples \ + --no-code-style \ + || die "Tests fail with ${EPYTHON}" +} + +python_install_all() { + local DOCS=( CHANGES.rst README.rst ToDo.txt USAGE.txt ) + distutils-r1_python_install_all +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/b2/Manifest b/sdk_container/src/third_party/portage-stable/dev-util/b2/Manifest deleted file mode 100644 index ea63a9f682..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/b2/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST b2-4.10.1.tar.gz 982429 BLAKE2B bb1e6ef741ca10d3b0029e64d69a7ee7eb0d40d26c68d2a3932d4210e8e2a83131c9bac2d54f2885373725d58fe73dd7fa7aebfc5781059f01c3462c738d426c SHA512 0bc4897a342685190626a6593926c4b200c5ca9b498ba77287a7c49467a8e3f65cb850b9616fd05d4aea9ebfab32ec46792d7d8226bed89911a711ce14ecce30 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/b2/b2-4.10.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/b2/b2-4.10.1.ebuild deleted file mode 100644 index 9704d82a0a..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/b2/b2-4.10.1.ebuild +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit edo flag-o-matic toolchain-funcs - -MY_PV="$(ver_rs 1- _)" - -DESCRIPTION="A system for large project software construction, simple to use and powerful" -HOMEPAGE="https://www.bfgroup.xyz/b2/" -SRC_URI="https://github.com/bfgroup/b2/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" -S="${WORKDIR}/${P}/src" - -LICENSE="Boost-1.0" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="examples" -RESTRICT="test" - -RDEPEND="!dev-util/boost-build" - -PATCHES=( - "${FILESDIR}"/${PN}-4.9.2-disable_python_rpath.patch - "${FILESDIR}"/${PN}-4.9.2-darwin-gentoo-toolchain.patch - "${FILESDIR}"/${PN}-4.9.2-add-none-feature-options.patch - "${FILESDIR}"/${PN}-4.9.2-no-implicit-march-flags.patch - "${FILESDIR}"/${PN}-4.9.2-odr.patch -) - -src_configure() { - # need to enable LFS explicitly for 64-bit offsets on 32-bit hosts (#761100) - append-lfs-flags -} - -src_compile() { - cd engine || die - - # upstream doesn't want separate flags for CPPFLAGS/LDFLAGS - # https://github.com/bfgroup/b2/pull/187#issuecomment-1335688424 - edo ${CONFIG_SHELL:-${BASH}} ./build.sh cxx \ - --cxx="$(tc-getCXX)" \ - --cxxflags="${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" \ - -d+2 \ - --without-python -} - -src_test() { - # Forget tests, b2 is a lost cause - : -} - -src_install() { - dobin engine/b2 - - insinto /usr/share/b2/src - doins -r "${FILESDIR}/site-config.jam" \ - bootstrap.jam build-system.jam ../example/user-config.jam \ - build kernel options tools util - - find "${ED}"/usr/share/b2/src -iname '*.py' -delete || die - - dodoc ../notes/{changes,release_procedure,build_dir_option,relative_source_paths}.txt - - if use examples; then - docinto examples - dodoc -r ../example/. - docompress -x /usr/share/doc/${PF}/examples - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/b2/files/b2-4.9.2-add-none-feature-options.patch b/sdk_container/src/third_party/portage-stable/dev-util/b2/files/b2-4.9.2-add-none-feature-options.patch deleted file mode 100644 index 620dea0af5..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/b2/files/b2-4.9.2-add-none-feature-options.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/tools/features/debug-feature.jam -+++ b/tools/features/debug-feature.jam -@@ -18,7 +18,7 @@ common usage is to build release variant with debugging information. - |# # end::doc[] - - feature.feature debug-symbols -- : on off -+ : on off none - : propagated ; - - #| tag::prof-doc[] ---- a/tools/features/optimization-feature.jam -+++ b/tools/features/optimization-feature.jam -@@ -16,7 +16,7 @@ smaller binary. - |# # end::doc[] - - feature.feature optimization -- : off speed space minimal debug -+ : off none speed space minimal debug - : propagated ; - - #| tag::inline-doc[] diff --git a/sdk_container/src/third_party/portage-stable/dev-util/b2/files/b2-4.9.2-darwin-gentoo-toolchain.patch b/sdk_container/src/third_party/portage-stable/dev-util/b2/files/b2-4.9.2-darwin-gentoo-toolchain.patch deleted file mode 100644 index 8de98014db..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/b2/files/b2-4.9.2-darwin-gentoo-toolchain.patch +++ /dev/null @@ -1,16 +0,0 @@ -Avoid adding all kinds of things to the toolchain's flags that within -Gentoo (Prefix) we really shouldn't, such as sysroot, deployment target, -arch, etc. - ---- a/tools/darwin.jam -+++ b/tools/darwin.jam -@@ -240,6 +240,9 @@ - } - } - -+ # leave compiler flags etc. up to the toolchain -+ return $(version-feature) ; -+ - if $(version-feature) - { - if $(.debug-configuration) diff --git a/sdk_container/src/third_party/portage-stable/dev-util/b2/files/b2-4.9.2-disable_python_rpath.patch b/sdk_container/src/third_party/portage-stable/dev-util/b2/files/b2-4.9.2-disable_python_rpath.patch deleted file mode 100644 index b7b47cc93a..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/b2/files/b2-4.9.2-disable_python_rpath.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/tools/python.jam -+++ b/tools/python.jam -@@ -1000,7 +1000,7 @@ - # linux). - : $(usage-requirements) - $(set-PYTHONPATH) -- $(libraries) $(dll-path) python.lib -+ $(libraries) python.lib - ; - } - diff --git a/sdk_container/src/third_party/portage-stable/dev-util/b2/files/b2-4.9.2-no-implicit-march-flags.patch b/sdk_container/src/third_party/portage-stable/dev-util/b2/files/b2-4.9.2-no-implicit-march-flags.patch deleted file mode 100644 index 2845d6e52f..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/b2/files/b2-4.9.2-no-implicit-march-flags.patch +++ /dev/null @@ -1,148 +0,0 @@ ---- a/tools/gcc.jam -+++ b/tools/gcc.jam -@@ -1131,145 +1131,11 @@ local rule cpu-flags ( toolset variable : architecture : instruction-set + : - # x86 and compatible - # The 'native' option appeared in gcc 4.2 so we cannot safely use it as default. - # Use i686 instead for 32-bit. --toolset.flags gcc OPTIONS x86/32/ : -march=i686 ; --cpu-flags gcc OPTIONS : x86 : native : -march=native ; --cpu-flags gcc OPTIONS : x86 : i486 : -march=i486 ; --cpu-flags gcc OPTIONS : x86 : i586 : -march=i586 ; --cpu-flags gcc OPTIONS : x86 : i686 : -march=i686 ; --cpu-flags gcc OPTIONS : x86 : pentium : -march=pentium ; --cpu-flags gcc OPTIONS : x86 : pentium-mmx : -march=pentium-mmx ; --cpu-flags gcc OPTIONS : x86 : pentiumpro : -march=pentiumpro ; --cpu-flags gcc OPTIONS : x86 : pentium2 : -march=pentium2 ; --cpu-flags gcc OPTIONS : x86 : pentium3 : -march=pentium3 ; --cpu-flags gcc OPTIONS : x86 : pentium3m : -march=pentium3m ; --cpu-flags gcc OPTIONS : x86 : pentium-m : -march=pentium-m ; --cpu-flags gcc OPTIONS : x86 : pentium4 : -march=pentium4 ; --cpu-flags gcc OPTIONS : x86 : pentium4m : -march=pentium4m ; --cpu-flags gcc OPTIONS : x86 : prescott : -march=prescott ; --cpu-flags gcc OPTIONS : x86 : nocona : -march=nocona ; --cpu-flags gcc OPTIONS : x86 : core2 : -march=core2 ; --cpu-flags gcc OPTIONS : x86 : conroe : -march=core2 ; --cpu-flags gcc OPTIONS : x86 : conroe-xe : -march=core2 ; --cpu-flags gcc OPTIONS : x86 : conroe-l : -march=core2 ; --cpu-flags gcc OPTIONS : x86 : allendale : -march=core2 ; --cpu-flags gcc OPTIONS : x86 : wolfdale : -march=core2 -msse4.1 ; --cpu-flags gcc OPTIONS : x86 : merom : -march=core2 ; --cpu-flags gcc OPTIONS : x86 : merom-xe : -march=core2 ; --cpu-flags gcc OPTIONS : x86 : kentsfield : -march=core2 ; --cpu-flags gcc OPTIONS : x86 : kentsfield-xe : -march=core2 ; --cpu-flags gcc OPTIONS : x86 : yorksfield : -march=core2 ; --cpu-flags gcc OPTIONS : x86 : penryn : -march=core2 ; --cpu-flags gcc OPTIONS : x86 : corei7 : -march=corei7 ; --cpu-flags gcc OPTIONS : x86 : nehalem : -march=corei7 ; --cpu-flags gcc OPTIONS : x86 : corei7-avx : -march=corei7-avx ; --cpu-flags gcc OPTIONS : x86 : sandy-bridge : -march=corei7-avx ; --cpu-flags gcc OPTIONS : x86 : core-avx-i : -march=core-avx-i ; --cpu-flags gcc OPTIONS : x86 : ivy-bridge : -march=core-avx-i ; --cpu-flags gcc OPTIONS : x86 : haswell : -march=core-avx-i -mavx2 -mfma -mbmi -mbmi2 -mlzcnt ; --cpu-flags gcc OPTIONS : x86 : broadwell : -march=broadwell ; --cpu-flags gcc OPTIONS : x86 : skylake : -march=skylake ; --cpu-flags gcc OPTIONS : x86 : skylake-avx512 : -march=skylake-avx512 ; --cpu-flags gcc OPTIONS : x86 : cannonlake : -march=skylake-avx512 -mavx512vbmi -mavx512ifma -msha ; --cpu-flags gcc OPTIONS : x86 : icelake-client : -march=icelake-client ; --cpu-flags gcc OPTIONS : x86 : icelake-server : -march=icelake-server ; --cpu-flags gcc OPTIONS : x86 : cascadelake : -march=skylake-avx512 -mavx512vnni ; --cpu-flags gcc OPTIONS : x86 : cooperlake : -march=cooperlake ; --cpu-flags gcc OPTIONS : x86 : tigerlake : -march=tigerlake ; --cpu-flags gcc OPTIONS : x86 : rocketlake : -march=rocketlake ; --cpu-flags gcc OPTIONS : x86 : alderlake : -march=alderlake ; --cpu-flags gcc OPTIONS : x86 : sapphirerapids : -march=sapphirerapids ; --cpu-flags gcc OPTIONS : x86 : k6 : -march=k6 ; --cpu-flags gcc OPTIONS : x86 : k6-2 : -march=k6-2 ; --cpu-flags gcc OPTIONS : x86 : k6-3 : -march=k6-3 ; --cpu-flags gcc OPTIONS : x86 : athlon : -march=athlon ; --cpu-flags gcc OPTIONS : x86 : athlon-tbird : -march=athlon-tbird ; --cpu-flags gcc OPTIONS : x86 : athlon-4 : -march=athlon-4 ; --cpu-flags gcc OPTIONS : x86 : athlon-xp : -march=athlon-xp ; --cpu-flags gcc OPTIONS : x86 : athlon-mp : -march=athlon-mp ; - ## --cpu-flags gcc OPTIONS : x86 : k8 : -march=k8 ; --cpu-flags gcc OPTIONS : x86 : opteron : -march=opteron ; --cpu-flags gcc OPTIONS : x86 : athlon64 : -march=athlon64 ; --cpu-flags gcc OPTIONS : x86 : athlon-fx : -march=athlon-fx ; --cpu-flags gcc OPTIONS : x86 : k8-sse3 : -march=k8-sse3 ; --cpu-flags gcc OPTIONS : x86 : opteron-sse3 : -march=opteron-sse3 ; --cpu-flags gcc OPTIONS : x86 : athlon64-sse3 : -march=athlon64-sse3 ; --cpu-flags gcc OPTIONS : x86 : amdfam10 : -march=amdfam10 ; --cpu-flags gcc OPTIONS : x86 : barcelona : -march=barcelona ; --cpu-flags gcc OPTIONS : x86 : bdver1 : -march=bdver1 ; --cpu-flags gcc OPTIONS : x86 : bdver2 : -march=bdver2 ; --cpu-flags gcc OPTIONS : x86 : bdver3 : -march=bdver3 ; --cpu-flags gcc OPTIONS : x86 : bdver4 : -march=bdver4 ; --cpu-flags gcc OPTIONS : x86 : btver1 : -march=btver1 ; --cpu-flags gcc OPTIONS : x86 : btver2 : -march=btver2 ; --cpu-flags gcc OPTIONS : x86 : znver1 : -march=znver1 ; --cpu-flags gcc OPTIONS : x86 : znver2 : -march=znver2 ; --cpu-flags gcc OPTIONS : x86 : znver3 : -march=znver3 ; --cpu-flags gcc OPTIONS : x86 : winchip-c6 : -march=winchip-c6 ; --cpu-flags gcc OPTIONS : x86 : winchip2 : -march=winchip2 ; --cpu-flags gcc OPTIONS : x86 : c3 : -march=c3 ; --cpu-flags gcc OPTIONS : x86 : c3-2 : -march=c3-2 ; --cpu-flags gcc OPTIONS : x86 : c7 : -march=c7 ; - ## --cpu-flags gcc OPTIONS : x86 : atom : -march=atom ; - # Sparc --cpu-flags gcc OPTIONS : sparc : v7 : -mcpu=v7 : default ; --cpu-flags gcc OPTIONS : sparc : cypress : -mcpu=cypress ; --cpu-flags gcc OPTIONS : sparc : v8 : -mcpu=v8 ; --cpu-flags gcc OPTIONS : sparc : supersparc : -mcpu=supersparc ; --cpu-flags gcc OPTIONS : sparc : sparclite : -mcpu=sparclite ; --cpu-flags gcc OPTIONS : sparc : hypersparc : -mcpu=hypersparc ; --cpu-flags gcc OPTIONS : sparc : sparclite86x : -mcpu=sparclite86x ; --cpu-flags gcc OPTIONS : sparc : f930 : -mcpu=f930 ; --cpu-flags gcc OPTIONS : sparc : f934 : -mcpu=f934 ; --cpu-flags gcc OPTIONS : sparc : sparclet : -mcpu=sparclet ; --cpu-flags gcc OPTIONS : sparc : tsc701 : -mcpu=tsc701 ; --cpu-flags gcc OPTIONS : sparc : v9 : -mcpu=v9 ; --cpu-flags gcc OPTIONS : sparc : ultrasparc : -mcpu=ultrasparc ; --cpu-flags gcc OPTIONS : sparc : ultrasparc3 : -mcpu=ultrasparc3 ; - # RS/6000 & PowerPC --cpu-flags gcc OPTIONS : power : 403 : -mcpu=403 ; --cpu-flags gcc OPTIONS : power : 505 : -mcpu=505 ; --cpu-flags gcc OPTIONS : power : 601 : -mcpu=601 ; --cpu-flags gcc OPTIONS : power : 602 : -mcpu=602 ; --cpu-flags gcc OPTIONS : power : 603 : -mcpu=603 ; --cpu-flags gcc OPTIONS : power : 603e : -mcpu=603e ; --cpu-flags gcc OPTIONS : power : 604 : -mcpu=604 ; --cpu-flags gcc OPTIONS : power : 604e : -mcpu=604e ; --cpu-flags gcc OPTIONS : power : 620 : -mcpu=620 ; --cpu-flags gcc OPTIONS : power : 630 : -mcpu=630 ; --cpu-flags gcc OPTIONS : power : 740 : -mcpu=740 ; --cpu-flags gcc OPTIONS : power : 7400 : -mcpu=7400 ; --cpu-flags gcc OPTIONS : power : 7450 : -mcpu=7450 ; --cpu-flags gcc OPTIONS : power : 750 : -mcpu=750 ; --cpu-flags gcc OPTIONS : power : 801 : -mcpu=801 ; --cpu-flags gcc OPTIONS : power : 821 : -mcpu=821 ; --cpu-flags gcc OPTIONS : power : 823 : -mcpu=823 ; --cpu-flags gcc OPTIONS : power : 860 : -mcpu=860 ; --cpu-flags gcc OPTIONS : power : 970 : -mcpu=970 ; --cpu-flags gcc OPTIONS : power : 8540 : -mcpu=8540 ; --cpu-flags gcc OPTIONS : power : power : -mcpu=power ; --cpu-flags gcc OPTIONS : power : power2 : -mcpu=power2 ; --cpu-flags gcc OPTIONS : power : power3 : -mcpu=power3 ; --cpu-flags gcc OPTIONS : power : power4 : -mcpu=power4 ; --cpu-flags gcc OPTIONS : power : power5 : -mcpu=power5 ; --cpu-flags gcc OPTIONS : power : powerpc : -mcpu=powerpc ; --cpu-flags gcc OPTIONS : power : powerpc64 : -mcpu=powerpc64 ; --cpu-flags gcc OPTIONS : power : rios : -mcpu=rios ; --cpu-flags gcc OPTIONS : power : rios1 : -mcpu=rios1 ; --cpu-flags gcc OPTIONS : power : rios2 : -mcpu=rios2 ; --cpu-flags gcc OPTIONS : power : rsc : -mcpu=rsc ; --cpu-flags gcc OPTIONS : power : rs64a : -mcpu=rs64 ; --cpu-flags gcc OPTIONS : s390x : z196 : -march=z196 ; --cpu-flags gcc OPTIONS : s390x : zEC12 : -march=zEC12 ; --cpu-flags gcc OPTIONS : s390x : z13 : -march=z13 ; --cpu-flags gcc OPTIONS : s390x : z14 : -march=z14 ; --cpu-flags gcc OPTIONS : s390x : z15 : -march=z15 ; - # ARM --cpu-flags gcc OPTIONS : arm : cortex-a9+vfpv3 : -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard ; --cpu-flags gcc OPTIONS : arm : cortex-a53 : -mcpu=cortex-a53 ; --cpu-flags gcc OPTIONS : arm : cortex-r5 : -mcpu=cortex-r5 ; --cpu-flags gcc OPTIONS : arm : cortex-r5+vfpv3-d16 : -mcpu=cortex-r5 -mfpu=vfpv3-d16 -mfloat-abi=hard ; - # AIX variant of RS/6000 & PowerPC - toolset.flags gcc AROPTIONS 64/aix : "-X64" ; - diff --git a/sdk_container/src/third_party/portage-stable/dev-util/b2/files/b2-4.9.2-odr.patch b/sdk_container/src/third_party/portage-stable/dev-util/b2/files/b2-4.9.2-odr.patch deleted file mode 100644 index 62cbca1896..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/b2/files/b2-4.9.2-odr.patch +++ /dev/null @@ -1,54 +0,0 @@ -Avoid ODR violations by giving "_stack" internal linkage -https://bugs.gentoo.org/858320 - ---- a/engine/function.cpp -+++ b/engine/function.cpp -@@ -213,11 +213,11 @@ - } JAM_FUNCTION; - - -+namespace -+{ - typedef struct _stack STACK; - typedef STACK* stack_ptr; - --namespace --{ - template - using remove_cref_t - = typename std::remove_const< -@@ -260,7 +260,6 @@ - typename select_last_impl<(sizeof...(A) == 1), type_list > - ::template type; - #endif --} - - struct _stack - { -@@ -439,6 +438,8 @@ - cleanups_size += n; - } - -+} -+ - static STACK * stack_global() - { - static _stack singleton; ---- a/engine/make1.cpp -+++ b/engine/make1.cpp -@@ -86,6 +86,7 @@ - #define T_STATE_MAKE1B 1 /* make1b() should be called */ - #define T_STATE_MAKE1C 2 /* make1c() should be called */ - -+namespace { - typedef struct _state state; - struct _state - { -@@ -94,6 +95,7 @@ - TARGET * parent; /* parent argument necessary for MAKE1A */ - int32_t curstate; /* current state */ - }; -+} - - static void make1a( state * const ); - static void make1b( state * const ); diff --git a/sdk_container/src/third_party/portage-stable/dev-util/b2/files/site-config.jam b/sdk_container/src/third_party/portage-stable/dev-util/b2/files/site-config.jam deleted file mode 100644 index 6afe52684c..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/b2/files/site-config.jam +++ /dev/null @@ -1,11 +0,0 @@ -# Copyright 1999-2012 Gentoo Foundation -# Distributed under the Boost Software License, Version 1.0. -# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - -# Define two new variants to be used when building boost (or separate boost-libs) -# on Gentoo. The two variants make use of Gentoo-specific optimization and debug-symbols -# values "none" which are not part of the official boost distribution. -# DO NOT RELY ON THE FOLLOWING VARIANTS TO BE PRESENT ON OTHER OS! -variant gentoorelease : release : none none shared ; -variant gentoodebug : debug : none on shared ; - diff --git a/sdk_container/src/third_party/portage-stable/dev-util/b2/metadata.xml b/sdk_container/src/third_party/portage-stable/dev-util/b2/metadata.xml deleted file mode 100644 index 97a8de7cc2..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/b2/metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - soap@gentoo.org - David Seifert - - - bfgroup/b2 - - diff --git a/sdk_container/src/third_party/portage-stable/dev-util/cmake/cmake-3.27.7.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/cmake/cmake-3.27.7.ebuild index b122058f45..99786150eb 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/cmake/cmake-3.27.7.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/cmake/cmake-3.27.7.ebuild @@ -48,7 +48,7 @@ else https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc )" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~ia64 ~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 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/meson/Manifest b/sdk_container/src/third_party/portage-stable/dev-util/meson/Manifest index 936553f74d..146c6ab2fd 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/meson/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-util/meson/Manifest @@ -1,3 +1,4 @@ DIST meson-1.1.1.tar.gz 2125503 BLAKE2B 295b46d19c8a1d64d326a6c826e2abe11d9768902ed2f8816df18677e7f3f58decc0c660925821825ecd9a4955a65bda8b2aa66a7bb1961810d8f78f92a3fd8a SHA512 c6259d73566d2532b87e8a23951363103f7be2aacdf120e50946273a2fed6b1602104a3ffbfda159138ac8f780d2c3e67a6fe2c8c228b73c1266775491797adb DIST meson-1.2.1.tar.gz 2182126 BLAKE2B b79fa78618cbebfb26ea40e698c495e63d722ba3204d4fed92d087e4a588b49666b476c55916f1435b7ca62f24843c683f1da09751754e928c838c1bf138ce58 SHA512 6221a14a6046aaba2c6eb601a9a5b928308bbd9da813ccec16b8f7578296b27d741e30e9343723770c3c7825c86b53193b41b9672dd17468d06d3b8d743bf52e DIST meson-1.2.2.tar.gz 2190455 BLAKE2B b355c8e5ab7508fca51dbe5c95eea68f91b995a670ad20eb9b7e93d3c97ad5363afe3fbd39cd554d1a6953a07166851257d16706acc9db6d5265e6452e40a857 SHA512 8dde3235f31862953e2f4db2527e441dfa9413b5f7545c85949ebc0f3b58819307ca124bf04d481d6f1425d6a4c93051239a659554322af893c97b651379fa86 +DIST meson-1.2.3.tar.gz 2184484 BLAKE2B 7d76c54bddba249ab97ebd5dd0afc448177ff9fa70812a8ca0cc9fe308c9b145b3fbc3ee068acae0fdc73edff42134b7a0b618cd80a05347a424aca7bc8bbef8 SHA512 cdcadc731effc1ffb2de98b795ba37955f934ed9b54b9f7f3ac5fe96ab33268d4de4fce734a4c2ef7d2ecc5051616df127e1f8665e197ff954310bf1483b81fc diff --git a/sdk_container/src/third_party/portage-stable/dev-util/meson/meson-1.2.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/meson/meson-1.2.3.ebuild new file mode 100644 index 0000000000..b2dcaf1c2b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/meson/meson-1.2.3.ebuild @@ -0,0 +1,121 @@ +# Copyright 2016-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} pypy3 ) +DISTUTILS_USE_PEP517=setuptools + +if [[ ${PV} = *9999* ]]; then + EGIT_REPO_URI="https://github.com/mesonbuild/meson" + inherit git-r3 +else + inherit pypi + + MY_P=${P/_/} + S=${WORKDIR}/${MY_P} + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + fi +fi + +inherit bash-completion-r1 distutils-r1 toolchain-funcs + +DESCRIPTION="Open source build system" +HOMEPAGE="https://mesonbuild.com/" + +LICENSE="Apache-2.0" +SLOT="0" +IUSE="test" +RESTRICT="!test? ( test )" + +DEPEND=" + test? ( + dev-libs/glib:2 + dev-libs/gobject-introspection + dev-util/ninja + dev-vcs/git + sys-libs/zlib[static-libs(+)] + virtual/pkgconfig + ) +" +RDEPEND=" + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.2.1-python-path.patch +) + +python_prepare_all() { + local disable_unittests=( + # ASAN and sandbox both want control over LD_PRELOAD + # https://bugs.gentoo.org/673016 + -e 's/test_generate_gir_with_address_sanitizer/_&/' + + # ASAN is unsupported on some targets + # https://bugs.gentoo.org/692822 + -e 's/test_pch_with_address_sanitizer/_&/' + + # https://github.com/mesonbuild/meson/issues/7203 + -e 's/test_templates/_&/' + + # Broken due to python2 wrapper + -e 's/test_python_module/_&/' + ) + + sed -i "${disable_unittests[@]}" unittests/*.py || die + + # Broken due to python2 script created by python_wrapper_setup + rm -r "test cases/frameworks/1 boost" || die + + distutils-r1_python_prepare_all +} + +src_test() { + tc-export PKG_CONFIG + if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then + ewarn "Found Qt5Core but not Qt5Gui; skipping tests" + else + distutils-r1_src_test + fi +} + +python_test() { + ( + # test_meson_installed + unset PYTHONDONTWRITEBYTECODE + + # https://bugs.gentoo.org/687792 + unset PKG_CONFIG + + # test_cross_file_system_paths + unset XDG_DATA_HOME + + # 'test cases/unit/73 summary' expects 80 columns + export COLUMNS=80 + + # If JAVA_HOME is not set, meson looks for javac in PATH. + # If javac is in /usr/bin, meson assumes /usr/include is a valid + # JDK include path. Setting JAVA_HOME works around this broken + # autodetection. If no JDK is installed, we should end up with an empty + # value in JAVA_HOME, and the tests should get skipped. + export JAVA_HOME=$(java-config -O 2>/dev/null) + + # Call python3 instead of EPYTHON to satisfy test_meson_uninstalled. + python3 run_tests.py + ) || die "Testing failed with ${EPYTHON}" +} + +python_install_all() { + distutils-r1_python_install_all + + insinto /usr/share/vim/vimfiles + doins -r data/syntax-highlighting/vim/{ftdetect,indent,syntax} + + insinto /usr/share/zsh/site-functions + doins data/shell-completions/zsh/_meson + + dobashcomp data/shell-completions/bash/meson +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/ninja/ninja-1.11.1-r3.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/ninja/ninja-1.11.1-r3.ebuild new file mode 100644 index 0000000000..c4874b6be0 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/ninja/ninja-1.11.1-r3.ebuild @@ -0,0 +1,131 @@ +# Copyright 2012-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit edo bash-completion-r1 elisp-common flag-o-matic python-any-r1 toolchain-funcs + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://github.com/ninja-build/ninja.git" + inherit git-r3 +else + SRC_URI="https://github.com/ninja-build/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +DESCRIPTION="A small build system similar to make" +HOMEPAGE="https://ninja-build.org/" + +LICENSE="Apache-2.0" +SLOT="0" + +IUSE="doc emacs test" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${PYTHON_DEPS} + dev-util/re2c + doc? ( + app-text/asciidoc + app-doc/doxygen + dev-libs/libxslt + media-gfx/graphviz + ) + test? ( dev-cpp/gtest ) +" +RDEPEND="emacs? ( >=app-editors/emacs-23.1:* )" +PDEPEND="app-alternatives/ninja" + +PATCHES=( + "${FILESDIR}"/ninja-cflags.patch +) + +run_for_build() { + if tc-is-cross-compiler; then + local -x AR=$(tc-getBUILD_AR) + local -x CXX=$(tc-getBUILD_CXX) + local -x CFLAGS= + local -x CXXFLAGS=${BUILD_CXXFLAGS} + local -x LDFLAGS=${BUILD_LDFLAGS} + fi + echo "$@" >&2 + "$@" +} + +src_compile() { + tc-export AR CXX + + # configure.py appends CFLAGS to CXXFLAGS + unset CFLAGS + + append-lfs-flags + + run_for_build ${EPYTHON} configure.py --bootstrap --verbose || die + + if tc-is-cross-compiler; then + mv ninja ninja-build || die + ${EPYTHON} configure.py || die + ./ninja-build -v ninja || die + else + ln ninja ninja-build || die + fi + + if use doc; then + ./ninja-build -v doxygen manual || die + fi + + if use emacs; then + elisp-compile misc/ninja-mode.el || die + fi +} + +src_test() { + if ! tc-is-cross-compiler; then + # Bug 485772 + ulimit -n 2048 + edo ./ninja -v ninja_test + edo ./ninja_test + fi +} + +src_install() { + dodoc README.md CONTRIBUTING.md + + if use doc; then + docinto html + dodoc -r doc/doxygen/html/. + dodoc doc/manual.html + fi + + newbin ninja ninja-reference + + newbashcomp misc/bash-completion ${PN} + + insinto /usr/share/vim/vimfiles/syntax/ + doins misc/ninja.vim + + echo 'au BufNewFile,BufRead *.ninja set ft=ninja' > "${T}"/ninja.vim || die + insinto /usr/share/vim/vimfiles/ftdetect + doins "${T}"/ninja.vim + + insinto /usr/share/zsh/site-functions + newins misc/zsh-completion _ninja + + if use emacs; then + cd misc || die + elisp-install ninja ninja-mode.el* || die + fi +} + +pkg_postinst() { + use emacs && elisp-site-regen + if ! [[ -e "${EROOT}/usr/bin/ninja" ]]; then + ln -s ninja-reference "${EROOT}/usr/bin/ninja" || die + fi +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/ninja/ninja-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/ninja/ninja-9999.ebuild index 38a59d4a30..c4874b6be0 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/ninja/ninja-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/ninja/ninja-9999.ebuild @@ -36,6 +36,7 @@ BDEPEND=" test? ( dev-cpp/gtest ) " RDEPEND="emacs? ( >=app-editors/emacs-23.1:* )" +PDEPEND="app-alternatives/ninja" PATCHES=( "${FILESDIR}"/ninja-cflags.patch @@ -98,7 +99,7 @@ src_install() { dodoc doc/manual.html fi - dobin ninja + newbin ninja ninja-reference newbashcomp misc/bash-completion ${PN} @@ -120,6 +121,9 @@ src_install() { pkg_postinst() { use emacs && elisp-site-regen + if ! [[ -e "${EROOT}/usr/bin/ninja" ]]; then + ln -s ninja-reference "${EROOT}/usr/bin/ninja" || die + fi } pkg_postrm() { diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/repo/Manifest b/sdk_container/src/third_party/portage-stable/dev-vcs/repo/Manifest index 63773d7369..34b610255d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/repo/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/repo/Manifest @@ -1,4 +1,3 @@ -DIST repo-2.30 45769 BLAKE2B 46e8f37b138f1ebfa3109962f2690cc3bc6c38a2dd4333cd5be6fc1168476945cbd73f142486141a00552b8a998d4a765e54fce605d1872a670a3043fb213b05 SHA512 e8ad4e35417992f15bfa081ce282e1e518dcb885c04176f18ff2859ccb1dd397087224980f441020be12083c9847fcce661370119fe08f17be04718eff4a7a96 -DIST repo-2.30.tar.gz 252945 BLAKE2B ebaadc1f624941139c14417e86e1a4960fbba9da7b9053bab8f2cb1647c40a6f1f63951bcbb6d9162803066f9b05d1fb469e82b7d3b2bea31215b97b1bddf84f SHA512 7d184605e8d8e30bc48a4d3f2345c7ee9a8075711729108b5d487242c9311dc1cf22595f9ba09192a28460d6127e8cbe96a70fcdaf7c6baeb1e26a8ac15a7cae DIST repo-2.32 45787 BLAKE2B 658b9b343a5c5dc9a850cde62e24c942c72bab807dc94ccf55f92d51e9ff8d5a3d57ca818dca7512a3a7b073fc1fac9f22c533dcc71a9dbd918fdd63bc42fda3 SHA512 1ded71a8e5e052c012a131b914f9ce0f92a3846b29f76c167583196a5efb6fda913c944a8bcf40d41dc206cc529e780df0c6da7f3d4c21302105885dc3061093 DIST repo-2.32.tar.gz 255696 BLAKE2B b63fa70b2fdcd02460216d3b4c5f04a7c334f3f52ceddc69ece5f3f9c239c3f5f6eaf2617d96d60ec838766ce1b6170e8906c5ddc787c90918d5e38fd90a8a23 SHA512 4ac7be6ecd865d3823d21baa8b96d76194ed648139088bc53685463b4a3d62696005881f53e9cc5f34d8457a0bb8b8cb1a0dd2e2e547d0432f21a5aee9bba9a0 +DIST repo-2.37.tar.gz 273445 BLAKE2B 7934581c5c55896d8ba58f5841a028f4676062197498ef601fa005f4e19428eee552e66d057a1e0d033eff8691df2de8e130ff96aec0e4537a462be81796e249 SHA512 6aa11e9fc9d899866dd89788c94ef188ea89dc6757a4e4fe0f1284898315723f72b3b97b60d39194f34e56332057545eb9c99b6483bc3e0513f747410226b9fa diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/repo/repo-2.32.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/repo/repo-2.32.ebuild index c008c0bbe3..f073dc245d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/repo/repo-2.32.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/repo/repo-2.32.ebuild @@ -18,7 +18,7 @@ SRC_URI="https://storage.googleapis.com/git-repo-downloads/${P} LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE="" REQUIRED_USE="${PYTHON_REQUIRED_USE}" diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/repo/repo-2.30.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/repo/repo-2.37.ebuild similarity index 64% rename from sdk_container/src/third_party/portage-stable/dev-vcs/repo/repo-2.30.ebuild rename to sdk_container/src/third_party/portage-stable/dev-vcs/repo/repo-2.37.ebuild index 25394f1e60..3203603bb0 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/repo/repo-2.30.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/repo/repo-2.37.ebuild @@ -7,29 +7,28 @@ EAPI="7" -PYTHON_COMPAT=( python3_{10..11} ) +PYTHON_COMPAT=( python3_{10..12} ) inherit bash-completion-r1 python-r1 DESCRIPTION="Google tool for managing git, particularly multiple repos" HOMEPAGE="https://gerrit.googlesource.com/git-repo" -SRC_URI="https://storage.googleapis.com/git-repo-downloads/${P} - https://github.com/GerritCodeReview/git-repo/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" +SRC_URI="https://github.com/GerritCodeReview/git-repo/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" IUSE="" REQUIRED_USE="${PYTHON_REQUIRED_USE}" RDEPEND="${PYTHON_DEPS} !app-admin/radmind - !dev-util/repo" +" S="${WORKDIR}/git-${P}" src_install() { - python_foreach_impl python_newscript "${DISTDIR}/${P}" ${PN} + python_foreach_impl python_doscript ${PN} newbashcomp completion.bash ${PN} doman man/*.[0-9] } diff --git a/sdk_container/src/third_party/portage-stable/eclass/cargo.eclass b/sdk_container/src/third_party/portage-stable/eclass/cargo.eclass index 18afd10fa0..70b6008d9c 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/cargo.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/cargo.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: cargo.eclass @@ -10,6 +10,11 @@ # @SUPPORTED_EAPIS: 7 8 # @BLURB: common functions and variables for cargo builds +case ${EAPI} in + 7|8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; +esac + if [[ -z ${_CARGO_ECLASS} ]]; then _CARGO_ECLASS=1 @@ -17,15 +22,11 @@ _CARGO_ECLASS=1 # https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md RUST_DEPEND="virtual/rust" -case "${EAPI:-0}" in - 0|1|2|3|4|5|6) - die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}" - ;; +case ${EAPI} in 7) # 1.37 added 'cargo vendor' subcommand and net.offline config knob RUST_DEPEND=">=virtual/rust-1.37.0" ;; - 8) # 1.39 added --workspace # 1.46 added --target dir @@ -40,61 +41,93 @@ case "${EAPI:-0}" in die "CRATES variable not defined" fi ;; - *) - die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}" - ;; esac -inherit multiprocessing toolchain-funcs +inherit flag-o-matic multiprocessing toolchain-funcs -if [[ ! ${CARGO_OPTIONAL} ]]; then - BDEPEND="${RUST_DEPEND}" - EXPORT_FUNCTIONS src_unpack src_configure src_compile src_install src_test -fi +[[ ! ${CARGO_OPTIONAL} ]] && BDEPEND="${RUST_DEPEND}" IUSE="${IUSE} debug" ECARGO_HOME="${WORKDIR}/cargo_home" ECARGO_VENDOR="${ECARGO_HOME}/gentoo" -# @ECLASS-VARIABLE: CRATES +# @ECLASS_VARIABLE: CRATES # @DEFAULT_UNSET # @PRE_INHERIT # @DESCRIPTION: -# bash string containing all crates package wants to download -# used by cargo_crate_uris() +# Bash string containing all crates that are to be downloaded. +# It is used by cargo_crate_uris. +# +# Ideally, crate names and versions should be separated by a `@` +# character. A legacy syntax using hyphen is also supported but it is +# much slower. +# # Example: # @CODE # CRATES=" -# metal-1.2.3 -# bar-4.5.6 -# iron_oxide-0.0.1 +# metal@1.2.3 +# bar@4.5.6 +# iron_oxide@0.0.1 # " # inherit cargo # ... -# SRC_URI="$(cargo_crate_uris)" +# SRC_URI="${CARGO_CRATE_URIS}" # @CODE -# @ECLASS-VARIABLE: CARGO_OPTIONAL +# @ECLASS_VARIABLE: GIT_CRATES # @DEFAULT_UNSET # @PRE_INHERIT # @DESCRIPTION: -# If set to a non-null value, before inherit cargo part of the ebuild will +# Bash associative array containing all of the crates that are to be +# fetched via git. It is used by cargo_crate_uris. +# If this is defined, then cargo_src_install will add --frozen to "cargo install". +# The key is a crate name, the value is a semicolon-separated list of: +# +# - the URI to fetch the crate from. +# - This intelligently handles GitHub and GitLab URIs so that +# just the repository path is needed. +# - The string "%commit%" gets replaced with the commit's checksum. +# - the checksum of the commit to use. +# - optionally: the path to look for Cargo.toml in. +# - This will also replace the string "%commit%" with the commit's checksum. +# - Defaults to: "${crate}-%commit%" +# +# Example of a simple definition with no path to Cargo.toml: +# @CODE +# declare -A GIT_CRATES=( +# [home]="https://github.com/rbtcollins/home;a243ee2fbee6022c57d56f5aa79aefe194eabe53" +# ) +# @CODE +# +# Example with paths defined: +# @CODE +# declare -A GIT_CRATES=( +# [rustpython-common]="https://github.com/RustPython/RustPython;4f38cb68e4a97aeea9eb19673803a0bd5f655383;RustPython-%commit%/common" +# [rustpython-parser]="https://github.com/RustPython/RustPython;4f38cb68e4a97aeea9eb19673803a0bd5f655383;RustPython-%commit%/compiler/parser" +# ) +# @CODE + +# @ECLASS_VARIABLE: CARGO_OPTIONAL +# @DEFAULT_UNSET +# @PRE_INHERIT +# @DESCRIPTION: +# If set to a non-null value, the part of the ebuild before "inherit cargo" will # be considered optional. No dependencies will be added and no phase # functions will be exported. # # If you enable CARGO_OPTIONAL, you have to set BDEPEND on virtual/rust # for your package and call at least cargo_gen_config manually before using -# other src_ functions of this eclass. -# note that cargo_gen_config is automatically called by cargo_src_unpack. +# other src_functions of this eclass. +# Note that cargo_gen_config is automatically called by cargo_src_unpack. # @ECLASS_VARIABLE: myfeatures # @DEFAULT_UNSET # @DESCRIPTION: # Optional cargo features defined as bash array. -# Should be defined before calling cargo_src_configure(). +# Should be defined before calling cargo_src_configure. # -# Example package that has x11 and wayland as features, and disables default. +# Example of a package that has x11 and wayland features and disables default features. # @CODE # src_configure() { # local myfeatures=( @@ -105,7 +138,7 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo" # } # @CODE -# @ECLASS-VARIABLE: ECARGO_REGISTRY_DIR +# @ECLASS_VARIABLE: ECARGO_REGISTRY_DIR # @USER_VARIABLE # @DEFAULT_UNSET # @DESCRIPTION: @@ -114,9 +147,9 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo" # This is intended to be set by users. # Ebuilds must not set it. # -# Defaults to "${DISTDIR}/cargo-registry" it not set. +# Defaults to "${DISTDIR}/cargo-registry" if not set. -# @ECLASS-VARIABLE: ECARGO_OFFLINE +# @ECLASS_VARIABLE: ECARGO_OFFLINE # @USER_VARIABLE # @DEFAULT_UNSET # @DESCRIPTION: @@ -124,7 +157,7 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo" # cargo_live_src_unpack. # Inherits value of EVCS_OFFLINE if not set explicitly. -# @ECLASS-VARIABLE: EVCS_UMASK +# @ECLASS_VARIABLE: EVCS_UMASK # @USER_VARIABLE # @DEFAULT_UNSET # @DESCRIPTION: @@ -134,32 +167,87 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo" # group, and then switch over to building with FEATURES=userpriv. # Or vice-versa. -# @FUNCTION: cargo_crate_uris +# @ECLASS_VARIABLE: CARGO_CRATE_URIS +# @OUTPUT_VARIABLE +# @DESCRIPTION: +# List of URIs to put in SRC_URI created from CRATES variable. + +# @FUNCTION: _cargo_set_crate_uris +# @USAGE: # @DESCRIPTION: # Generates the URIs to put in SRC_URI to help fetch dependencies. -# Uses first argument as crate list. -# If no argument provided, uses CRATES variable. -cargo_crate_uris() { +# Constructs a list of crates from its arguments. +# If no arguments are provided, it uses the CRATES variable. +# The value is set as CARGO_CRATE_URIS. +_cargo_set_crate_uris() { local -r regex='^([a-zA-Z0-9_\-]+)-([0-9]+\.[0-9]+\.[0-9]+.*)$' - local crate crates + local crates=${1} + local crate - if [[ -n ${@} ]]; then - crates="$@" - elif [[ -n ${CRATES} ]]; then - crates="${CRATES}" - else + CARGO_CRATE_URIS= + for crate in ${crates}; do + local name version url + if [[ ${crate} == *@* ]]; then + name=${crate%@*} + version=${crate##*@} + else + [[ ${crate} =~ ${regex} ]] || + die "Could not parse name and version from crate: ${crate}" + name="${BASH_REMATCH[1]}" + version="${BASH_REMATCH[2]}" + fi + url="https://crates.io/api/v1/crates/${name}/${version}/download -> ${name}-${version}.crate" + CARGO_CRATE_URIS+="${url} " + done + + if declare -p GIT_CRATES &>/dev/null; then + if [[ $(declare -p GIT_CRATES) == "declare -A"* ]]; then + local crate commit crate_uri crate_dir repo_ext feat_expr + + for crate in "${!GIT_CRATES[@]}"; do + IFS=';' read -r crate_uri commit crate_dir <<< "${GIT_CRATES[${crate}]}" + + case "${crate_uri}" in + https://github.com/*) + repo_ext=".gh" + repo_name="${crate_uri##*/}" + crate_uri="${crate_uri%/}/archive/%commit%.tar.gz" + ;; + https://gitlab.com/*) + repo_ext=".gl" + repo_name="${crate_uri##*/}" + crate_uri="${crate_uri%/}/-/archive/%commit%/${repo_name}-%commit%.tar.gz" + ;; + *) + repo_ext= + repo_name="${crate}" + ;; + esac + + CARGO_CRATE_URIS+="${crate_uri//%commit%/${commit}} -> ${repo_name}-${commit}${repo_ext}.tar.gz " + done + else + die "GIT_CRATE must be declared as an associative array" + fi + fi +} +_cargo_set_crate_uris "${CRATES}" + +# @FUNCTION: cargo_crate_uris +# @USAGE: [...] +# @DESCRIPTION: +# Generates the URIs to put in SRC_URI to help fetch dependencies. +# Constructs a list of crates from its arguments. +# If no arguments are provided, it uses the CRATES variable. +cargo_crate_uris() { + local crates=${*-${CRATES}} + if [[ -z ${crates} ]]; then eerror "CRATES variable is not defined and nothing passed as argument" die "Can't generate SRC_URI from empty input" fi - for crate in ${crates}; do - local name version url - [[ $crate =~ $regex ]] || die "Could not parse name and version from crate: $crate" - name="${BASH_REMATCH[1]}" - version="${BASH_REMATCH[2]}" - url="https://crates.io/api/v1/crates/${name}/${version}/download -> ${crate}.crate" - echo "${url}" - done + _cargo_set_crate_uris "${crates}" + echo "${CARGO_CRATE_URIS}" } # @FUNCTION: cargo_gen_config @@ -183,7 +271,7 @@ cargo_gen_config() { [source.crates-io] replace-with = "gentoo" - local-registry = "/nonexistant" + local-registry = "/nonexistent" [net] offline = true @@ -195,15 +283,49 @@ cargo_gen_config() { [term] verbose = true $([[ "${NOCOLOR}" = true || "${NOCOLOR}" = yes ]] && echo "color = 'never'") + $(_cargo_gen_git_config) _EOF_ export CARGO_HOME="${ECARGO_HOME}" _CARGO_GEN_CONFIG_HAS_RUN=1 } +# @FUNCTION: _cargo_gen_git_config +# @USAGE: +# @INTERNAL +# @DESCRIPTION: +# Generate the cargo config for git crates, this will output the +# configuration for cargo to override the cargo config so the local git crates +# specified in GIT_CRATES will be used rather than attempting to fetch +# from git. +# +# Called by cargo_gen_config when generating the config. +_cargo_gen_git_config() { + local git_crates_type + git_crates_type="$(declare -p GIT_CRATES 2>&-)" + + if [[ ${git_crates_type} == "declare -A "* ]]; then + local crate commit crate_uri crate_dir + local -A crate_patches + + for crate in "${!GIT_CRATES[@]}"; do + IFS=';' read -r crate_uri commit crate_dir <<< "${GIT_CRATES[${crate}]}" + : "${crate_dir:=${crate}-%commit%}" + crate_patches["${crate_uri}"]+="${crate} = { path = \"${WORKDIR}/${crate_dir//%commit%/${commit}}\" };;" + done + + for crate_uri in "${!crate_patches[@]}"; do + printf -- "[patch.'%s']\\n%s\n" "${crate_uri}" "${crate_patches["${crate_uri}"]//;;/$'\n'}" + done + + elif [[ -n ${git_crates_type} ]]; then + die "GIT_CRATE must be declared as an associative array" + fi +} + # @FUNCTION: cargo_src_unpack # @DESCRIPTION: -# Unpacks the package and the cargo registry +# Unpacks the package and the cargo registry. cargo_src_unpack() { debug-print-function ${FUNCNAME} "$@" @@ -243,7 +365,8 @@ cargo_src_unpack() { # @FUNCTION: cargo_live_src_unpack # @DESCRIPTION: -# Runs 'cargo fetch' and vendors downloaded crates for offline use, used in live ebuilds +# Runs 'cargo fetch' and vendors downloaded crates for offline use, used in live ebuilds. +# NOTE: might require passing --frozen to cargo_src_configure if git dependencies are used. cargo_live_src_unpack() { debug-print-function ${FUNCNAME} "$@" @@ -255,7 +378,7 @@ cargo_live_src_unpack() { mkdir -p "${ECARGO_HOME}" || die local distdir=${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}} - : ${ECARGO_REGISTRY_DIR:=${distdir}/cargo-registry} + : "${ECARGO_REGISTRY_DIR:=${distdir}/cargo-registry}" local offline="${ECARGO_OFFLINE:-${EVCS_OFFLINE}}" @@ -284,7 +407,7 @@ cargo_live_src_unpack() { pushd "${S}" > /dev/null || die - # Respect user settings befire cargo_gen_config is called. + # Respect user settings before cargo_gen_config is called. if [[ ! ${CARGO_TERM_COLOR} ]]; then [[ "${NOCOLOR}" = true || "${NOCOLOR}" = yes ]] && export CARGO_TERM_COLOR=never local unset_color=true @@ -309,8 +432,8 @@ cargo_live_src_unpack() { # Users may have git checkouts made by cargo. # While cargo vendors the sources, it still needs git checkout to be present. - # Copying full dir is an overkill, so just symlink it. - if [[ -d ${ECARGO_REGISTRY_DIR}/git ]]; then + # Copying full dir is overkill, so just symlink it (guard w/ -L to keep idempotent). + if [[ -d ${ECARGO_REGISTRY_DIR}/git && ! -L "${ECARGO_HOME}/git" ]]; then ln -sv "${ECARGO_REGISTRY_DIR}/git" "${ECARGO_HOME}/git" || die fi @@ -337,10 +460,10 @@ cargo_live_src_unpack() { # will be passed to cargo in all phases. # Make sure all cargo subcommands support flags passed here. # -# Example for package that explicitly builds only 'baz' binary and +# Example of a package that explicitly builds only 'baz' binary and # enables 'barfeature' and optional 'foo' feature. -# will pass '--features barfeature --features foo --bin baz' -# in src_{compile,test,install} +# It will pass '--features barfeature --features foo --bin baz' +# in src_{compile,test,install}. # # @CODE # src_configure() { @@ -352,9 +475,13 @@ cargo_live_src_unpack() { # } # @CODE # -# In some cases crates may need '--no-default-features' option, -# as there is no way to disable single feature, except disabling all. -# It can be passed directly to cargo_src_configure(). +# In some cases crates may need the '--no-default-features' option, +# as there is no way to disable a single default feature, except disabling all. +# It can be passed directly to cargo_src_configure. +# +# Some live/9999 ebuild may need the '--frozen' option, if git crates +# are used. +# Otherwise src_install phase may query network again and fail. cargo_src_configure() { debug-print-function ${FUNCNAME} "$@" @@ -379,13 +506,14 @@ cargo_src_configure() { # @FUNCTION: cargo_src_compile # @DESCRIPTION: -# Build the package using cargo build +# Build the package using cargo build. cargo_src_compile() { debug-print-function ${FUNCNAME} "$@" [[ ${_CARGO_GEN_CONFIG_HAS_RUN} ]] || \ die "FATAL: please call cargo_gen_config before using ${FUNCNAME}" + filter-lto tc-export AR CC CXX PKG_CONFIG set -- cargo build $(usex debug "" --release) ${ECARGO_ARGS[@]} "$@" @@ -395,10 +523,10 @@ cargo_src_compile() { # @FUNCTION: cargo_src_install # @DESCRIPTION: -# Installs the binaries generated by cargo -# In come case workspaces need alternative --path parameter -# default is '--path ./' if nothing specified. -# '--path ./somedir' can be passed directly to cargo_src_install() +# Installs the binaries generated by cargo. +# In come cases workspaces need an alternative --path parameter. +# Defaults to '--path ./' if no path is specified. +# '--path ./somedir' can be passed directly to cargo_src_install. cargo_src_install() { debug-print-function ${FUNCNAME} "$@" @@ -407,6 +535,7 @@ cargo_src_install() { set -- cargo install $(has --path ${@} || echo --path ./) \ --root "${ED}/usr" \ + ${GIT_CRATES[@]:+--frozen} \ $(usex debug --debug "") \ ${ECARGO_ARGS[@]} "$@" einfo "${@}" @@ -429,7 +558,7 @@ cargo_src_install() { # @FUNCTION: cargo_src_test # @DESCRIPTION: -# Test the package using cargo test +# Test the package using cargo test. cargo_src_test() { debug-print-function ${FUNCNAME} "$@" @@ -442,3 +571,7 @@ cargo_src_test() { } fi + +if [[ ! ${CARGO_OPTIONAL} ]]; then + EXPORT_FUNCTIONS src_unpack src_configure src_compile src_install src_test +fi diff --git a/sdk_container/src/third_party/portage-stable/eclass/elisp-common.eclass b/sdk_container/src/third_party/portage-stable/eclass/elisp-common.eclass index 72dbb97f33..bab7250a68 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/elisp-common.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/elisp-common.eclass @@ -333,6 +333,7 @@ elisp-make-autoload-file() { ;; Local ${null}Variables: ;; version-control: never ;; no-byte-compile: t + ;; no-native-compile: t ;; no-update-autoloads: t ;; End: @@ -725,6 +726,7 @@ elisp-site-regen() { ;; Local ${null}Variables: ;; no-byte-compile: t + ;; no-native-compile: t ;; buffer-read-only: t ;; End: diff --git a/sdk_container/src/third_party/portage-stable/eclass/flag-o-matic.eclass b/sdk_container/src/third_party/portage-stable/eclass/flag-o-matic.eclass index c0b042d534..382573b806 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/flag-o-matic.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/flag-o-matic.eclass @@ -47,7 +47,7 @@ setup-allowed-flags() { # Note: shell globs and character lists are allowed _setup-allowed-flags() { ALLOWED_FLAGS=( - -pipe -O '-O[123szg]' '-mcpu=*' '-march=*' '-mtune=*' + -pipe -O '-O[123szg]' '-mcpu=*' '-march=*' '-mtune=*' '-mfpmath=*' -flto '-flto=*' -fno-lto # Hardening flags @@ -56,11 +56,16 @@ _setup-allowed-flags() { '-fcf-protection=*' -fbounds-check -fbounds-checking -fno-PIE -fno-pie -nopie -no-pie + -fharden-compares -fharden-conditional-branches + -fharden-control-flow-redundancy -fhardcfr-skip-leaf + -fhardcfr-check-exceptions -fhardcfr-check-returning-calls + '-fhardcfr-check-noreturn-calls=*' # Spectre mitigations, bug #646076 '-mindirect-branch=*' -mindirect-branch-register '-mfunction-return=*' -mretpoline + '-mharden-sls=*' '-mbranch-protection=*' # Misc @@ -133,6 +138,8 @@ _setup-allowed-flags() { # Allow explicit stack realignment to run non-conformant # binaries: bug #677852 -mstackrealign + '-mpreferred-stack-boundary=*' + '-mincoming-stack-boundary=*' ) ALLOWED_FLAGS+=( # Clang-only diff --git a/sdk_container/src/third_party/portage-stable/eclass/java-utils-2.eclass b/sdk_container/src/third_party/portage-stable/eclass/java-utils-2.eclass index 92e02e3085..fd1f708b86 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/java-utils-2.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/java-utils-2.eclass @@ -1886,13 +1886,17 @@ ejunit4() { # @CODE # $1 - -cp or -classpath # $2 - the classpath passed to it -# $@ - test classes for testng to run. +# $@ - test classes or testng.xml for testng to run. # @CODE etestng() { debug-print-function ${FUNCNAME} $* local runner=org.testng.TestNG - local cp=$(java-pkg_getjars --with-dependencies testng) + if [[ ${PN} != testng ]]; then + local cp=$(java-pkg_getjars --with-dependencies testng) + else + local cp=testng.jar + fi local tests if [[ ${1} = -cp || ${1} = -classpath ]]; then @@ -1910,6 +1914,7 @@ etestng() { -cp ${cp} -Djava.io.tmpdir="${T}" -Djava.awt.headless=true + -Dtest.resources.dir="${JAVA_TEST_RESOURCE_DIRS}" ${JAVA_TEST_EXTRA_ARGS[@]} ${runner} ${JAVA_TEST_RUNNER_EXTRA_ARGS[@]} @@ -1922,7 +1927,11 @@ etestng() { ) fi - args+=( -testclass ${tests} ) + if [[ "${test%.xml}" == "${test}" ]]; then + args+=( -testclass ${tests} ) + else + args+=( ${tests%,} ) + fi debug-print "java ${args[@]}" java ${args[@]} || die "Running TestNG failed." diff --git a/sdk_container/src/third_party/portage-stable/eclass/kernel-2.eclass b/sdk_container/src/third_party/portage-stable/eclass/kernel-2.eclass index 8bab2b482c..5ecd97c173 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/kernel-2.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/kernel-2.eclass @@ -304,7 +304,6 @@ RESTRICT="binchecks strip" # set LINUX_HOSTCFLAGS if not already set : "${LINUX_HOSTCFLAGS:="-Wall -Wstrict-prototypes -Os -fomit-frame-pointer -I${S}/include"}" - # @FUNCTION: debug-print-kernel2-variables # @USAGE: # @DESCRIPTION: @@ -665,7 +664,7 @@ if [[ ${ETYPE} == sources ]]; then virtual/pkgconfig )" - SLOT="${PVR}" + SLOT=${SLOT:=${PVR}} DESCRIPTION="Sources based on the Linux Kernel" IUSE="symlink build" diff --git a/sdk_container/src/third_party/portage-stable/eclass/python-utils-r1.eclass b/sdk_container/src/third_party/portage-stable/eclass/python-utils-r1.eclass index 50aeabae1c..4a538f9942 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/python-utils-r1.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/python-utils-r1.eclass @@ -1366,7 +1366,9 @@ epytest() { # not to have DISPLAY at all, causing crashes sometimes # and causing us to miss missing virtualx usage -p no:xvfb - # tavern is intrusive and breaks test suites of various packages + # intrusive packages that break random test suites + -p no:pytest-describe + -p no:plus -p no:tavern ) local x diff --git a/sdk_container/src/third_party/portage-stable/eclass/xorg-3.eclass b/sdk_container/src/third_party/portage-stable/eclass/xorg-3.eclass index e0b26acca0..a9825fc311 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/xorg-3.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/xorg-3.eclass @@ -93,7 +93,6 @@ if [[ ${XORG_MODULE} == auto ]]; then x11-misc/*|x11-themes/*) XORG_MODULE=util/ ;; x11-base/*) XORG_MODULE=xserver/ ;; x11-drivers/*) XORG_MODULE=driver/ ;; - x11-libs/xcb-util-*) XORG_MODULE=xcb/ ;; x11-libs/*) XORG_MODULE=lib/ ;; *) XORG_MODULE= ;; esac diff --git a/sdk_container/src/third_party/portage-stable/licenses/CC-BY-1.0 b/sdk_container/src/third_party/portage-stable/licenses/CC-BY-1.0 new file mode 100644 index 0000000000..ccd475ffed --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/licenses/CC-BY-1.0 @@ -0,0 +1,211 @@ +Creative Commons Legal Code + +Attribution 1.0 + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DRAFT LICENSE DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR + DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE +COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY +COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE +TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE +RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS +AND CONDITIONS. + +1. Definitions + + a. "Collective Work" means a work, such as a periodical issue, anthology + or encyclopedia, in which the Work in its entirety in unmodified form, + along with a number of other contributions, constituting separate and + independent works in themselves, are assembled into a collective + whole. A work that constitutes a Collective Work will not be + considered a Derivative Work (as defined below) for the purposes of + this License. + b. "Derivative Work" means a work based upon the Work or upon the Work + and other pre-existing works, such as a translation, musical + arrangement, dramatization, fictionalization, motion picture version, + sound recording, art reproduction, abridgment, condensation, or any + other form in which the Work may be recast, transformed, or adapted, + except that a work that constitutes a Collective Work will not be + considered a Derivative Work for the purpose of this License. + c. "Licensor" means the individual or entity that offers the Work under + the terms of this License. + d. "Original Author" means the individual or entity who created the Work. + e. "Work" means the copyrightable work of authorship offered under the + terms of this License. + f. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License with + respect to the Work, or who has received express permission from the + Licensor to exercise rights under this License despite a previous + violation. + +2. Fair Use Rights. Nothing in this license is intended to reduce, limit, +or restrict any rights arising from fair use, first sale or other +limitations on the exclusive rights of the copyright owner under copyright +law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, +Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +perpetual (for the duration of the applicable copyright) license to +exercise the rights in the Work as stated below: + + a. to reproduce the Work, to incorporate the Work into one or more + Collective Works, and to reproduce the Work as incorporated in the + Collective Works; + b. to create and reproduce Derivative Works; + c. to distribute copies or phonorecords of, display publicly, perform + publicly, and perform publicly by means of a digital audio + transmission the Work including as incorporated in Collective Works; + d. to distribute copies or phonorecords of, display publicly, perform + publicly, and perform publicly by means of a digital audio + transmission Derivative Works; + +The above rights may be exercised in all media and formats whether now +known or hereafter devised. The above rights include the right to make +such modifications as are technically necessary to exercise the rights in +other media and formats. All rights not expressly granted by Licensor are +hereby reserved. + +4. Restrictions. The license granted in Section 3 above is expressly made +subject to and limited by the following restrictions: + + a. You may distribute, publicly display, publicly perform, or publicly + digitally perform the Work only under the terms of this License, and + You must include a copy of, or the Uniform Resource Identifier for, + this License with every copy or phonorecord of the Work You + distribute, publicly display, publicly perform, or publicly digitally + perform. You may not offer or impose any terms on the Work that alter + or restrict the terms of this License or the recipients' exercise of + the rights granted hereunder. You may not sublicense the Work. You + must keep intact all notices that refer to this License and to the + disclaimer of warranties. You may not distribute, publicly display, + publicly perform, or publicly digitally perform the Work with any + technological measures that control access or use of the Work in a + manner inconsistent with the terms of this License Agreement. The + above applies to the Work as incorporated in a Collective Work, but + this does not require the Collective Work apart from the Work itself + to be made subject to the terms of this License. If You create a + Collective Work, upon notice from any Licensor You must, to the extent + practicable, remove from the Collective Work any reference to such + Licensor or the Original Author, as requested. If You create a + Derivative Work, upon notice from any Licensor You must, to the extent + practicable, remove from the Derivative Work any reference to such + Licensor or the Original Author, as requested. + b. If you distribute, publicly display, publicly perform, or publicly + digitally perform the Work or any Derivative Works or Collective + Works, You must keep intact all copyright notices for the Work and + give the Original Author credit reasonable to the medium or means You + are utilizing by conveying the name (or pseudonym if applicable) of + the Original Author if supplied; the title of the Work if supplied; in + the case of a Derivative Work, a credit identifying the use of the + Work in the Derivative Work (e.g., "French translation of the Work by + Original Author," or "Screenplay based on original Work by Original + Author"). Such credit may be implemented in any reasonable manner; + provided, however, that in the case of a Derivative Work or Collective + Work, at a minimum such credit will appear where any other comparable + authorship credit appears and in a manner at least as prominent as + such other comparable authorship credit. + +5. Representations, Warranties and Disclaimer + + a. By offering the Work for public release under this License, Licensor + represents and warrants that, to the best of Licensor's knowledge + after reasonable inquiry: + + i. Licensor has secured all rights in the Work necessary to grant the + license rights hereunder and to permit the lawful exercise of the + rights granted hereunder without You having any obligation to pay + any royalties, compulsory license fees, residuals or any other + payments; + ii. The Work does not infringe the copyright, trademark, publicity + rights, common law rights or any other right of any third party or + constitute defamation, invasion of privacy or other tortious + injury to any third party. + + b. EXCEPT AS EXPRESSLY STATED IN THIS LICENSE OR OTHERWISE AGREED IN + WRITING OR REQUIRED BY APPLICABLE LAW, THE WORK IS LICENSED ON AN "AS + IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED + INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES REGARDING THE CONTENTS + OR ACCURACY OF THE WORK. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE +LAW, AND EXCEPT FOR DAMAGES ARISING FROM LIABILITY TO A THIRD PARTY +RESULTING FROM BREACH OF THE WARRANTIES IN SECTION 5, IN NO EVENT WILL +LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, +CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE +OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Derivative Works or + Collective Works from You under this License, however, will not have + their licenses terminated provided such individuals or entities remain + in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 + will survive any termination of this License. + b. Subject to the above terms and conditions, the license granted here is + perpetual (for the duration of the applicable copyright in the Work). + Notwithstanding the above, Licensor reserves the right to release the + Work under different license terms or to stop distributing the Work at + any time; provided, however that any such election will not serve to + withdraw this License (or any other license that has been, or is + required to be, granted under the terms of this License), and this + License will continue in full force and effect unless terminated as + stated above. + +8. Miscellaneous + + a. Each time You distribute or publicly digitally perform the Work or a + Collective Work, the Licensor offers to the recipient a license to the + Work on the same terms and conditions as the license granted to You + under this License. + b. Each time You distribute or publicly digitally perform a Derivative + Work, Licensor offers to the recipient a license to the original Work + on the same terms and conditions as the license granted to You under + this License. + c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this License, and without further action + by the parties to this agreement, such provision shall be reformed to + the minimum extent necessary to make such provision valid and + enforceable. + d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in writing + and signed by the party to be charged with such waiver or consent. + e. This License constitutes the entire agreement between the parties with + respect to the Work licensed here. There are no understandings, + agreements or representations with respect to the Work not specified + here. Licensor shall not be bound by any additional provisions that + may appear in any communication from You. This License may not be + modified without the mutual written agreement of the Licensor and You. + + + Creative Commons is not a party to this License, and makes no warranty + whatsoever in connection with the Work. Creative Commons will not be + liable to You or any party on any legal theory for any damages + whatsoever, including without limitation any general, special, + incidental or consequential damages arising in connection to this + license. Notwithstanding the foregoing two (2) sentences, if Creative + Commons has expressly identified itself as the Licensor hereunder, it + shall have all rights and obligations of Licensor. + + Except for the limited purpose of indicating to the public that the + Work is licensed under the CCPL, neither party will use the trademark + "Creative Commons" or any related trademark or logo of Creative + Commons without the prior written consent of Creative Commons. Any + permitted use will be in compliance with Creative Commons' + then-current trademark usage guidelines, as may be published on its + website or otherwise made available upon request from time to time. + + Creative Commons may be contacted at https://creativecommons.org/. diff --git a/sdk_container/src/third_party/portage-stable/licenses/LPPL-1.2 b/sdk_container/src/third_party/portage-stable/licenses/LPPL-1.2 index 5b05fe8689..6822ceef82 100644 --- a/sdk_container/src/third_party/portage-stable/licenses/LPPL-1.2 +++ b/sdk_container/src/third_party/portage-stable/licenses/LPPL-1.2 @@ -1,4 +1,3 @@ - The LaTeX Project Public License =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- @@ -44,7 +43,7 @@ We, the LaTeX3 Project, believe that the conditions below give you the freedom to make and distribute modified versions of The Program that conform with whatever technical specifications you wish while maintaining the availability, integrity, and reliability of -The Program. If you do not see how to achieve your goal while +The Program. If you do not see how to achieve your goal while meeting these conditions, then read the document `cfgguide.tex' in the base LaTeX distribution for suggestions. @@ -65,32 +64,32 @@ following eight conditions are met: distribution of a modified version of the file as described below in the subsection `Additional Conditions on Individual Files of The Program'. - + 2. If the file is a LaTeX software file, then you must meet any applicable additional conditions on the distribution of a modified version of the file that are described below in the subsection `Additional Conditions on LaTeX Software Files'. - + 3. You must not distribute the modified file with the filename of the original file. - + 4. In the modified file, you must acknowledge the authorship and name of the original file, and the name (if any) of the program which contains it. - + 5. You must change any identification string in the file to indicate clearly that the modified file is not part of The Program. - + 6. You must change any addresses in the modified file for the reporting of errors in the file or in The Program generally to ensure that reports for files no longer maintained by the original maintainers will be directed to the maintainers of the modified files. - + 7. You must distribute the modified file under a license that forbids distribution both of the modified file and of any files derived from the modified file with the filename of the original file. - + 8. You must do either (A) or (B): (A) distribute a copy of The Program (that is, a complete, @@ -105,7 +104,7 @@ following eight conditions are met: (B) provide to those who receive the modified file information that is sufficient for them to obtain a copy of The Program; for example, you may provide a Uniform Resource Locator (URL) - for a site that you expect will provide them with a copy of + for a site that you expect will provide them with a copy of The Program free of charge (either the version from which your modification is derived, or perhaps a later version). @@ -131,7 +130,7 @@ The conditions above are not intended to prohibit, and hence do not apply to, the updating, by any method, of a file so that it becomes identical to the latest version of that file of The Program. - + A Recommendation on Modification Without Distribution ----------------------------------------------------- @@ -173,7 +172,7 @@ above, apply to the file according to its filename extension: - You may not modify any file with filename extension `.ins' since these are installation files containing the legal notices that are placed in the files they generate. - + - You may distribute modified versions of files with filename extension `.fd' (LaTeX font definition files) under the standard conditions of the LPPL as described above. You may also distribute @@ -189,7 +188,7 @@ above, apply to the file according to its filename extension: extension `.cfg' (configuration files) with their original names. The Program may (and usually will) specify the range of commands that are allowed in a particular configuration file. - + Because of portability and exchangeability issues in LaTeX software, The LaTeX3 Project deprecates the distribution of modified versions of components of LaTeX or of generally available contributed code for them, @@ -266,7 +265,7 @@ Here is an example of such a notice and statement: % of this license or (at your option) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt - % and version 1.2 or later is part of all distributions of LaTeX + % and version 1.2 or later is part of all distributions of LaTeX % version 1999/12/01 or later. % % This program consists of the files pig.dtx and pig.ins @@ -296,7 +295,7 @@ Important Recommendations to comprise The Program. Noting Exceptional Files - + If The Program contains any files bearing additional conditions on modification, or on distribution of modified versions, of those files (other than those listed in `Additional Conditions on LaTeX @@ -310,9 +309,6 @@ Important Recommendations modification. LaTeX configuration files (with filename extension `.cfg') are examples of files bearing less restrictive conditions on the distribution of a modified version of the file. The - additional conditions on LaTeX software given above are examples + additional conditions on LaTeX software given above are examples of declaring a category of files bearing exceptional additional conditions. - - - diff --git a/sdk_container/src/third_party/portage-stable/licenses/LPPL-1.3 b/sdk_container/src/third_party/portage-stable/licenses/LPPL-1.3 index 81db0b038c..737f77b371 100644 --- a/sdk_container/src/third_party/portage-stable/licenses/LPPL-1.3 +++ b/sdk_container/src/third_party/portage-stable/licenses/LPPL-1.3 @@ -1,4 +1,3 @@ - The LaTeX Project Public License =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- @@ -45,11 +44,11 @@ In this license document the following terms are used: `Work' Any work being distributed under this License. - + `Derived Work' Any work that under any applicable law is derived from the Work. - `Modification' + `Modification' Any procedure that produces a Derived Work under any applicable law -- for example, the production of a file containing an original file associated with the Work or a significant portion of @@ -59,7 +58,7 @@ In this license document the following terms are used: `Modify' To apply any procedure that produces a Derived Work under any applicable law. - + `Distribution' Making copies of the Work available from one person to another, in whole or in part. Distribution includes (but is not limited to) @@ -80,9 +79,9 @@ In this license document the following terms are used: no such explicit nomination then it is the `Copyright Holder' under any applicable law. - `Base Interpreter' + `Base Interpreter' A program or process that is normally needed for running or - interpreting a part or the whole of the Work. + interpreting a part or the whole of the Work. A Base Interpreter may depend on external components but these are not considered part of the Base Interpreter provided that each external component clearly identifies itself whenever it is used @@ -128,8 +127,8 @@ the Derived Work. distribute a Derived Work provided the following conditions are met for every component of the Work unless that component clearly states in the copyright notice that it is exempt from that condition. Only -the Current Maintainer is allowed to add such statements of exemption -to a component of the Work. +the Current Maintainer is allowed to add such statements of exemption +to a component of the Work. a. If a component of this Derived Work can be a direct replacement for a component of the Work when that component is used with the @@ -139,13 +138,13 @@ to a component of the Work. clearly and unambiguously identifies itself as a modified version of this component to the user when used interactively with that Base Interpreter. - + b. Every component of the Derived Work contains prominent notices detailing the nature of the changes to that component, or a prominent reference to another file that is distributed as part of the Derived Work and that contains a complete and accurate log of the changes. - + c. No information in the Derived Work implies that any persons, including (but not limited to) the authors of the original version of the Work, provide any support, including (but not limited to) @@ -155,7 +154,7 @@ to a component of the Work. d. You distribute at least one of the following with the Derived Work: - 1. A complete, unmodified copy of the Work; + 1. A complete, unmodified copy of the Work; if your distribution of a modified component is made by offering access to copy the modified component from a designated place, then offering equivalent access to copy @@ -182,15 +181,15 @@ format, where the Work or that Derived Work (in whole or in part) is then produced by applying some process to that format, does not relax or nullify any sections of this license as they pertain to the results of applying that process. - + 10. a. A Derived Work may be distributed under a different license provided that license itself honors the conditions listed in Clause 6 above, in regard to the Work, though it does not have to honor the rest of the conditions in this license. - + b. If a Derived Work is distributed under this license, that Derived Work must provide sufficient documentation as part of - itself to allow each recipient of that Derived Work to honor the + itself to allow each recipient of that Derived Work to honor the restrictions in Clause 6 above, concerning changes from the Work. 11. This license places no restrictions on works that are unrelated to @@ -259,7 +258,7 @@ the Work through the following steps: a. If it is being maintained, then ask the Current Maintainer to update their communication data within one month. - + b. If the search is unsuccessful or no action to resume active maintenance is taken by the Current Maintainer, then announce within the pertinent community your intention to take over @@ -269,17 +268,17 @@ the Work through the following steps: 3a. If the Current Maintainer is reachable and agrees to pass maintenance of the Work to you, then this takes effect immediately upon announcement. - + b. If the Current Maintainer is not reachable and the Copyright Holder agrees that maintenance of the Work be passed to you, - then this takes effect immediately upon announcement. - + then this takes effect immediately upon announcement. + 4. If you make an `intention announcement' as described in 2b. above and after three months your intention is challenged neither by the Current Maintainer nor by the Copyright Holder nor by other people, then you may arrange for the Work to be changed so as to name you as the (new) Current Maintainer. - + 5. If the previously unreachable Current Maintainer becomes reachable once more within three months of a change completed under the terms of 3b) or 4), then that Current Maintainer must @@ -362,7 +361,7 @@ Here is an example of such a notice and statement: % version 2003/12/01 or later. % % This work has the LPPL maintenance status "maintained". - % + % % This Current Maintainer of this work is M. Y. Name. % % This work consists of the files pig.dtx and pig.ins @@ -393,7 +392,7 @@ Important Recommendations using a line such as: % This work consists of all files listed in manifest.txt. - + in that place. In the absence of an unequivocal list it might be impossible for the licensee to determine what is considered by you to comprise the Work and, in such a case, the licensee would be diff --git a/sdk_container/src/third_party/portage-stable/licenses/LPPL-1.3a b/sdk_container/src/third_party/portage-stable/licenses/LPPL-1.3a new file mode 100644 index 0000000000..576180affd --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/licenses/LPPL-1.3a @@ -0,0 +1,404 @@ +The LaTeX Project Public License +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + +LPPL Version 1.3a 2004-10-01 + +Copyright 1999 2002-04 LaTeX3 Project + Everyone is allowed to distribute verbatim copies of this + license document, but modification of it is not allowed. + + +PREAMBLE +======== + +The LaTeX Project Public License (LPPL) is the primary license under +which the the LaTeX kernel and the base LaTeX packages are distributed. + +You may use this license for any work of which you hold the copyright +and which you wish to distribute. This license may be particularly +suitable if your work is TeX-related (such as a LaTeX package), but +you may use it with small modifications even if your work is unrelated +to TeX. + +The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', +below, gives instructions, examples, and recommendations for authors +who are considering distributing their works under this license. + +This license gives conditions under which a work may be distributed +and modified, as well as conditions under which modified versions of +that work may be distributed. + +We, the LaTeX3 Project, believe that the conditions below give you +the freedom to make and distribute modified versions of your work +that conform with whatever technical specifications you wish while +maintaining the availability, integrity, and reliability of +that work. If you do not see how to achieve your goal while +meeting these conditions, then read the document `cfgguide.tex' +and `modguide.tex' in the base LaTeX distribution for suggestions. + + +DEFINITIONS +=========== + +In this license document the following terms are used: + + `Work' + Any work being distributed under this License. + + `Derived Work' + Any work that under any applicable law is derived from the Work. + + `Modification' + Any procedure that produces a Derived Work under any applicable + law -- for example, the production of a file containing an + original file associated with the Work or a significant portion of + such a file, either verbatim or with modifications and/or + translated into another language. + + `Modify' + To apply any procedure that produces a Derived Work under any + applicable law. + + `Distribution' + Making copies of the Work available from one person to another, in + whole or in part. Distribution includes (but is not limited to) + making any electronic components of the Work accessible by + file transfer protocols such as FTP or HTTP or by shared file + systems such as Sun's Network File System (NFS). + + `Compiled Work' + A version of the Work that has been processed into a form where it + is directly usable on a computer system. This processing may + include using installation facilities provided by the Work, + transformations of the Work, copying of components of the Work, or + other activities. Note that modification of any installation + facilities provided by the Work constitutes modification of the Work. + + `Current Maintainer' + A person or persons nominated as such within the Work. If there is + no such explicit nomination then it is the `Copyright Holder' under + any applicable law. + + `Base Interpreter' + A program or process that is normally needed for running or + interpreting a part or the whole of the Work. + A Base Interpreter may depend on external components but these + are not considered part of the Base Interpreter provided that each + external component clearly identifies itself whenever it is used + interactively. Unless explicitly specified when applying the + license to the Work, the only applicable Base Interpreter is a + "LaTeX-Format". + + + +CONDITIONS ON DISTRIBUTION AND MODIFICATION +=========================================== + +1. Activities other than distribution and/or modification of the Work +are not covered by this license; they are outside its scope. In +particular, the act of running the Work is not restricted and no +requirements are made concerning any offers of support for the Work. + +2. You may distribute a complete, unmodified copy of the Work as you +received it. Distribution of only part of the Work is considered +modification of the Work, and no right to distribute such a Derived +Work may be assumed under the terms of this clause. + +3. You may distribute a Compiled Work that has been generated from a +complete, unmodified copy of the Work as distributed under Clause 2 +above, as long as that Compiled Work is distributed in such a way that +the recipients may install the Compiled Work on their system exactly +as it would have been installed if they generated a Compiled Work +directly from the Work. + +4. If you are the Current Maintainer of the Work, you may, without +restriction, modify the Work, thus creating a Derived Work. You may +also distribute the Derived Work without restriction, including +Compiled Works generated from the Derived Work. Derived Works +distributed in this manner by the Current Maintainer are considered to +be updated versions of the Work. + +5. If you are not the Current Maintainer of the Work, you may modify +your copy of the Work, thus creating a Derived Work based on the Work, +and compile this Derived Work, thus creating a Compiled Work based on +the Derived Work. + +6. If you are not the Current Maintainer of the Work, you may +distribute a Derived Work provided the following conditions are met +for every component of the Work unless that component clearly states +in the copyright notice that it is exempt from that condition. Only +the Current Maintainer is allowed to add such statements of exemption +to a component of the Work. + + a. If a component of this Derived Work can be a direct replacement + for a component of the Work when that component is used with the + Base Interpreter, then, wherever this component of the Work + identifies itself to the user when used interactively with that + Base Interpreter, the replacement component of this Derived Work + clearly and unambiguously identifies itself as a modified version + of this component to the user when used interactively with that + Base Interpreter. + + b. Every component of the Derived Work contains prominent notices + detailing the nature of the changes to that component, or a + prominent reference to another file that is distributed as part + of the Derived Work and that contains a complete and accurate log + of the changes. + + c. No information in the Derived Work implies that any persons, + including (but not limited to) the authors of the original version + of the Work, provide any support, including (but not limited to) + the reporting and handling of errors, to recipients of the + Derived Work unless those persons have stated explicitly that + they do provide such support for the Derived Work. + + d. You distribute at least one of the following with the Derived Work: + + 1. A complete, unmodified copy of the Work; + if your distribution of a modified component is made by + offering access to copy the modified component from a + designated place, then offering equivalent access to copy + the Work from the same or some similar place meets this + condition, even though third parties are not compelled to + copy the Work along with the modified component; + + 2. Information that is sufficient to obtain a complete, unmodified + copy of the Work. + +7. If you are not the Current Maintainer of the Work, you may +distribute a Compiled Work generated from a Derived Work, as long as +the Derived Work is distributed to all recipients of the Compiled +Work, and as long as the conditions of Clause 6, above, are met with +regard to the Derived Work. + +8. The conditions above are not intended to prohibit, and hence do +not apply to, the modification, by any method, of any component so that it +becomes identical to an updated version of that component of the Work as +it is distributed by the Current Maintainer under Clause 4, above. + +9. Distribution of the Work or any Derived Work in an alternative +format, where the Work or that Derived Work (in whole or in part) is +then produced by applying some process to that format, does not relax or +nullify any sections of this license as they pertain to the results of +applying that process. + +10. a. A Derived Work may be distributed under a different license + provided that license itself honors the conditions listed in + Clause 6 above, in regard to the Work, though it does not have + to honor the rest of the conditions in this license. + + b. If a Derived Work is distributed under this license, that + Derived Work must provide sufficient documentation as part of + itself to allow each recipient of that Derived Work to honor the + restrictions in Clause 6 above, concerning changes from the Work. + +11. This license places no restrictions on works that are unrelated to +the Work, nor does this license place any restrictions on aggregating +such works with the Work by any means. + +12. Nothing in this license is intended to, or may be used to, prevent +complete compliance by all parties with all applicable laws. + + +NO WARRANTY +=========== + +There is no warranty for the Work. Except when otherwise stated in +writing, the Copyright Holder provides the Work `as is', without +warranty of any kind, either expressed or implied, including, but not +limited to, the implied warranties of merchantability and fitness for +a particular purpose. The entire risk as to the quality and performance +of the Work is with you. Should the Work prove defective, you +assume the cost of all necessary servicing, repair, or correction. + +In no event unless required by applicable law or agreed to in writing +will The Copyright Holder, or any author named in the components of +the Work, or any other party who may distribute and/or modify the Work +as permitted above, be liable to you for damages, including any +general, special, incidental or consequential damages arising out of +any use of the Work or out of inability to use the Work (including, +but not limited to, loss of data, data being rendered inaccurate, or +losses sustained by anyone as a result of any failure of the Work to +operate with any other programs), even if the Copyright Holder or said +author or said other party has been advised of the possibility of such +damages. + + +MAINTENANCE OF THE WORK +======================= + +The Work has the status `author-maintained' if the Copyright Holder +explicitly and prominently states near the primary copyright notice in +the Work that the Work can only be maintained by the Copyright Holder +or simply that is `author-maintained'. + +The Work has the status `maintained' if there is a Current Maintainer +who has indicated in the Work that they are willing to receive error +reports for the Work (for example, by supplying a valid e-mail +address). It is not required for the Current Maintainer to acknowledge +or act upon these error reports. + +The Work changes from status `maintained' to `unmaintained' if there +is no Current Maintainer, or the person stated to be Current +Maintainer of the work cannot be reached through the indicated means +of communication for a period of six months, and there are no other +significant signs of active maintenance. + +You can become the Current Maintainer of the Work by agreement with +any existing Current Maintainer to take over this role. + +If the Work is unmaintained, you can become the Current Maintainer of +the Work through the following steps: + + 1. Make a reasonable attempt to trace the Current Maintainer (and + the Copyright Holder, if the two differ) through the means of + an Internet or similar search. + + 2. If this search is successful, then enquire whether the Work + is still maintained. + + a. If it is being maintained, then ask the Current Maintainer + to update their communication data within one month. + + b. If the search is unsuccessful or no action to resume active + maintenance is taken by the Current Maintainer, then announce + within the pertinent community your intention to take over + maintenance. (If the Work is a LaTeX work, this could be + done, for example, by posting to comp.text.tex.) + + 3a. If the Current Maintainer is reachable and agrees to pass + maintenance of the Work to you, then this takes effect + immediately upon announcement. + + b. If the Current Maintainer is not reachable and the Copyright + Holder agrees that maintenance of the Work be passed to you, + then this takes effect immediately upon announcement. + + 4. If you make an `intention announcement' as described in 2b. above + and after three months your intention is challenged neither by + the Current Maintainer nor by the Copyright Holder nor by other + people, then you may arrange for the Work to be changed so as + to name you as the (new) Current Maintainer. + + 5. If the previously unreachable Current Maintainer becomes + reachable once more within three months of a change completed + under the terms of 3b) or 4), then that Current Maintainer must + become or remain the Current Maintainer upon request provided + they then update their communication data within one month. + +A change in the Current Maintainer does not, of itself, alter the fact +that the Work is distributed under the LPPL license. + +If you become the Current Maintainer of the Work, you should +immediately provide, within the Work, a prominent and unambiguous +statement of your status as Current Maintainer. You should also +announce your new status to the same pertinent community as +in 2b) above. + + +WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE +====================================================== + +This section contains important instructions, examples, and +recommendations for authors who are considering distributing their +works under this license. These authors are addressed as `you' in +this section. + +Choosing This License or Another License +---------------------------------------- + +If for any part of your work you want or need to use *distribution* +conditions that differ significantly from those in this license, then +do not refer to this license anywhere in your work but, instead, +distribute your work under a different license. You may use the text +of this license as a model for your own license, but your license +should not refer to the LPPL or otherwise give the impression that +your work is distributed under the LPPL. + +The document `modguide.tex' in the base LaTeX distribution explains +the motivation behind the conditions of this license. It explains, +for example, why distributing LaTeX under the GNU General Public +License (GPL) was considered inappropriate. Even if your work is +unrelated to LaTeX, the discussion in `modguide.tex' may still be +relevant, and authors intending to distribute their works under any +license are encouraged to read it. + +A Recommendation on Modification Without Distribution +----------------------------------------------------- + +It is wise never to modify a component of the Work, even for your own +personal use, without also meeting the above conditions for +distributing the modified component. While you might intend that such +modifications will never be distributed, often this will happen by +accident -- you may forget that you have modified that component; or +it may not occur to you when allowing others to access the modified +version that you are thus distributing it and violating the conditions +of this license in ways that could have legal implications and, worse, +cause problems for the community. It is therefore usually in your +best interest to keep your copy of the Work identical with the public +one. Many works provide ways to control the behavior of that work +without altering any of its licensed components. + +How to Use This License +----------------------- + +To use this license, place in each of the components of your work both +an explicit copyright notice including your name and the year the work +was authored and/or last substantially modified. Include also a +statement that the distribution and/or modification of that +component is constrained by the conditions in this license. + +Here is an example of such a notice and statement: + + %% pig.dtx + %% Copyright 2003 M. Y. Name + % + % This work may be distributed and/or modified under the + % conditions of the LaTeX Project Public License, either version 1.3 + % of this license or (at your option) any later version. + % The latest version of this license is in + % http://www.latex-project.org/lppl.txt + % and version 1.3 or later is part of all distributions of LaTeX + % version 2003/12/01 or later. + % + % This work has the LPPL maintenance status "maintained". + % + % This Current Maintainer of this work is M. Y. Name. + % + % This work consists of the files pig.dtx and pig.ins + % and the derived file pig.sty. + +Given such a notice and statement in a file, the conditions +given in this license document would apply, with the `Work' referring +to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being +generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' +referring to any "LaTeX-Format", and both `Copyright Holder' and +`Current Maintainer' referring to the person `M. Y. Name'. + +If you do not want the Maintenance section of LPPL to apply to your +Work, change "maintained" above into "author-maintained". +However, we recommend that you use "maintained" as the Maintenance +section was added in order to ensure that your Work remains useful to +the community even when you can no longer maintain and support it +yourself. + + +Important Recommendations +------------------------- + + Defining What Constitutes the Work + + The LPPL requires that distributions of the Work contain all the + files of the Work. It is therefore important that you provide a + way for the licensee to determine which files constitute the Work. + This could, for example, be achieved by explicitly listing all the + files of the Work near the copyright notice of each file or by + using a line such as: + + % This work consists of all files listed in manifest.txt. + + in that place. In the absence of an unequivocal list it might be + impossible for the licensee to determine what is considered by you + to comprise the Work and, in such a case, the licensee would be + entitled to make reasonable conjectures as to which files comprise + the Work. diff --git a/sdk_container/src/third_party/portage-stable/licenses/LPPL-1.3c b/sdk_container/src/third_party/portage-stable/licenses/LPPL-1.3c index 90e5e3ab79..b0f86d50d4 100644 --- a/sdk_container/src/third_party/portage-stable/licenses/LPPL-1.3c +++ b/sdk_container/src/third_party/portage-stable/licenses/LPPL-1.3c @@ -16,8 +16,8 @@ which the the LaTeX kernel and the base LaTeX packages are distributed. You may use this license for any work of which you hold the copyright and which you wish to distribute. This license may be particularly -suitable if your work is TeX-related (such as a LaTeX package), but -it is written in such a way that you can use it even if your work is +suitable if your work is TeX-related (such as a LaTeX package), but +it is written in such a way that you can use it even if your work is unrelated to TeX. The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', @@ -44,11 +44,11 @@ In this license document the following terms are used: `Work' Any work being distributed under this License. - + `Derived Work' Any work that under any applicable law is derived from the Work. - `Modification' + `Modification' Any procedure that produces a Derived Work under any applicable law -- for example, the production of a file containing an original file associated with the Work or a significant portion of @@ -58,7 +58,7 @@ In this license document the following terms are used: `Modify' To apply any procedure that produces a Derived Work under any applicable law. - + `Distribution' Making copies of the Work available from one person to another, in whole or in part. Distribution includes (but is not limited to) @@ -79,16 +79,16 @@ In this license document the following terms are used: no such explicit nomination then it is the `Copyright Holder' under any applicable law. - `Base Interpreter' + `Base Interpreter' A program or process that is normally needed for running or - interpreting a part or the whole of the Work. + interpreting a part or the whole of the Work. A Base Interpreter may depend on external components but these are not considered part of the Base Interpreter provided that each external component clearly identifies itself whenever it is used interactively. Unless explicitly specified when applying the license to the Work, the only applicable Base Interpreter is a - `LaTeX-Format' or in the case of files belonging to the + `LaTeX-Format' or in the case of files belonging to the `LaTeX-format' a program implementing the `TeX language'. @@ -129,8 +129,8 @@ the Derived Work. distribute a Derived Work provided the following conditions are met for every component of the Work unless that component clearly states in the copyright notice that it is exempt from that condition. Only -the Current Maintainer is allowed to add such statements of exemption -to a component of the Work. +the Current Maintainer is allowed to add such statements of exemption +to a component of the Work. a. If a component of this Derived Work can be a direct replacement for a component of the Work when that component is used with the @@ -140,13 +140,13 @@ to a component of the Work. clearly and unambiguously identifies itself as a modified version of this component to the user when used interactively with that Base Interpreter. - + b. Every component of the Derived Work contains prominent notices detailing the nature of the changes to that component, or a prominent reference to another file that is distributed as part of the Derived Work and that contains a complete and accurate log of the changes. - + c. No information in the Derived Work implies that any persons, including (but not limited to) the authors of the original version of the Work, provide any support, including (but not limited to) @@ -156,7 +156,7 @@ to a component of the Work. d. You distribute at least one of the following with the Derived Work: - 1. A complete, unmodified copy of the Work; + 1. A complete, unmodified copy of the Work; if your distribution of a modified component is made by offering access to copy the modified component from a designated place, then offering equivalent access to copy @@ -183,15 +183,15 @@ format, where the Work or that Derived Work (in whole or in part) is then produced by applying some process to that format, does not relax or nullify any sections of this license as they pertain to the results of applying that process. - + 10. a. A Derived Work may be distributed under a different license provided that license itself honors the conditions listed in Clause 6 above, in regard to the Work, though it does not have to honor the rest of the conditions in this license. - + b. If a Derived Work is distributed under a different license, that Derived Work must provide sufficient documentation as part of - itself to allow each recipient of that Derived Work to honor the + itself to allow each recipient of that Derived Work to honor the restrictions in Clause 6 above, concerning changes from the Work. 11. This license places no restrictions on works that are unrelated to @@ -260,7 +260,7 @@ the Work through the following steps: a. If it is being maintained, then ask the Current Maintainer to update their communication data within one month. - + b. If the search is unsuccessful or no action to resume active maintenance is taken by the Current Maintainer, then announce within the pertinent community your intention to take over @@ -270,17 +270,17 @@ the Work through the following steps: 3a. If the Current Maintainer is reachable and agrees to pass maintenance of the Work to you, then this takes effect immediately upon announcement. - + b. If the Current Maintainer is not reachable and the Copyright Holder agrees that maintenance of the Work be passed to you, - then this takes effect immediately upon announcement. - + then this takes effect immediately upon announcement. + 4. If you make an `intention announcement' as described in 2b. above and after three months your intention is challenged neither by the Current Maintainer nor by the Copyright Holder nor by other people, then you may arrange for the Work to be changed so as to name you as the (new) Current Maintainer. - + 5. If the previously unreachable Current Maintainer becomes reachable once more within three months of a change completed under the terms of 3b) or 4), then that Current Maintainer must @@ -363,7 +363,7 @@ Here is an example of such a notice and statement: % version 2005/12/01 or later. % % This work has the LPPL maintenance status `maintained'. - % + % % The Current Maintainer of this work is M. Y. Name. % % This work consists of the files pig.dtx and pig.ins @@ -377,7 +377,7 @@ referring to any `LaTeX-Format', and both `Copyright Holder' and `Current Maintainer' referring to the person `M. Y. Name'. If you do not want the Maintenance section of LPPL to apply to your -Work, change `maintained' above into `author-maintained'. +Work, change `maintained' above into `author-maintained'. However, we recommend that you use `maintained', as the Maintenance section was added in order to ensure that your Work remains useful to the community even when you can no longer maintain and support it @@ -407,10 +407,9 @@ Important Recommendations using a line such as: % This work consists of all files listed in manifest.txt. - + in that place. In the absence of an unequivocal list it might be impossible for the licensee to determine what is considered by you to comprise the Work and, in such a case, the licensee would be entitled to make reasonable conjectures as to which files comprise the Work. - diff --git a/sdk_container/src/third_party/portage-stable/net-dns/dnsmasq/dnsmasq-2.89.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/dnsmasq/dnsmasq-2.89-r1.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/net-dns/dnsmasq/dnsmasq-2.89.ebuild rename to sdk_container/src/third_party/portage-stable/net-dns/dnsmasq/dnsmasq-2.89-r1.ebuild index a446b6d1fb..4566a538e8 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/dnsmasq/dnsmasq-2.89.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dns/dnsmasq/dnsmasq-2.89-r1.ebuild @@ -199,6 +199,9 @@ src_install() { if use dbus; then insinto /etc/dbus-1/system.d doins dbus/dnsmasq.conf + + docinto + dodoc dbus/DBus-interface fi if use dhcp-tools; then diff --git a/sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-3.15.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-3.15.ebuild index e9a1b344d9..a58899dc83 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-3.15.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-3.15.ebuild @@ -12,7 +12,7 @@ S="${WORKDIR}"/${P/_/} LICENSE="BSD" SLOT="3" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" IUSE="sctp" DEPEND=" 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 a9baec9038..2b35bc4d78 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Violet Purcell (2023-10-12) +# dev-util/samurai is not keyworded here. +app-alternatives/ninja samurai + # Andrew Ammerlaan (2023-09-20) # Libei not keyworded here yet x11-base/xwayland libei diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/use.mask index 39609a8787..e9140a5485 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/use.mask @@ -181,7 +181,7 @@ topal # We don't have sys-devel/llvm llvm -# Matt Turner (2012-05-27) # net-misc/connman is not keyworded connman 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 218659f1fc..4c3863dc47 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 @@ -212,7 +212,7 @@ sys-apps/flashrom -atahpt -atapromise -atavia -drkaiser -gfxnvidia -internal -it # clisp is keyworded on amd64 app-text/texlive-core -xindy -# Georgy Yakovlev (2020-04-26) # static-pie works on amd64, #719444 sys-libs/glibc -static-pie @@ -355,7 +355,7 @@ dev-java/icedtea -shenandoah # This flag only has meaning on amd64 sys-boot/grub:2 -grub_platforms_xen-32 -# Brian Evans (2015-09-14) # Unmask new USE flags for mariadb on supported arches >=dev-db/mariadb-10.1.0 -mroonga -galera 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 7d16a818b0..39e48f0b99 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.mask @@ -1,6 +1,10 @@ # Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Eli Schwartz (2023-10-19) +# Requires net-libs/nodejs which is unavailable on amd64/x32. +dev-lang/rapydscript-ng + # Maciej Barć (2023-10-07) # Requires net-libs/nodejs which is unavailable on amd64/x32. app-containers/devcontainer 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 a3cb52acc1..3f0feffc13 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 @@ -176,7 +176,7 @@ lxqt-base/lxqt-meta archiver # no keywords dev-python/pbr test -# Georgy Yakovlev (2020-01-04) # zfs is not keyworded on arm dev-util/schroot zfs 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 eb609c00a7..c61069180b 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Jimi Huotari (2023-10-21) +# Unmask on specific arches where it's available. +media-video/obs-studio -mpegts + # Sam James (2023-10-11) # Supports 64-bit NEON dev-libs/botan -cpu_flags_arm_neo @@ -163,7 +167,7 @@ sys-libs/compiler-rt-sanitizers -gwp-asan -shadowcallstack sys-libs/compiler-rt-sanitizers -libfuzzer -profile -xray >=sys-libs/compiler-rt-sanitizers-16 -orc -# Roy Bamford (2020-12-07) # media-libs/liblastfm fails to build with tests Bug #758896 media-sound/clementine lastfm @@ -222,7 +226,7 @@ media-gfx/inkscape dia # Mask until 'app-arch/lxqt-archiver' is keyworded. lxqt-base/lxqt-meta archiver -# Georgy Yakovlev (2020-04-26) # static-pie works on arm64, #719444 sys-libs/glibc -static-pie 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 fdab19c281..c3586d52af 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 @@ -44,7 +44,7 @@ -python_targets_pypy3 -python_single_target_pypy3 -# David Seifert (2020-05-17) # Mono is hopelessly broken on arm64 mono 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 f634dedb27..4802971635 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-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Jimi Huotari (2023-10-21) +# net-libs/librist is only keyworded for arm64 at this time. +media-video/obs-studio mpegts + # Ionen Wolkens (2023-10-09) # media-libs/shaderc has very few keywords. media-libs/libplacebo shaderc @@ -338,7 +342,7 @@ media-video/ffmpeg-chromium mmal media-video/mpv mmal net-misc/moonlight mmal -# Brian Evans (2015-09-14) # Mask new USE flags for mariadb which all arches do not yet have dependencies >=dev-db/mariadb-10.1.0 mroonga galera 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 b8e9b5b7df..a8d904f144 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/package.use.mask @@ -4,6 +4,10 @@ # NOTE: When masking a USE flag due to missing keywords, please file a keyword # request bug for the hppa arch. +# Violet Purcell (2023-10-12) +# dev-util/samurai is not keyworded here. +app-alternatives/ninja samurai + # Ionen Wolkens (2023-10-09) # Vulkan is not available here, including packages for related USE. media-libs/libplacebo glslang shaderc vulkan @@ -14,7 +18,6 @@ dev-qt/qtdeclarative vulkan dev-qt/qtgui vulkan =dev-qt/qtwayland-5.15.11:5 compositor - # Patrick McLean (2023-10-03) # sys-apps/s6-linux-init has not been tested on this arch sys-apps/openrc s6 diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/ia64/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/ia64/package.use.mask index 233c445d97..1222d18916 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/ia64/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/ia64/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Violet Purcell (2023-10-12) +# dev-util/samurai is not keyworded here. +app-alternatives/ninja samurai + # Patrick McLean (2023-10-03) # sys-apps/s6-linux-init has not been tested on this arch sys-apps/openrc s6 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 f712dd24b5..564bceac2e 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,5 +1,9 @@ # Copyright 2022-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 + +# Violet Purcell (2023-10-12) +# dev-util/samurai is not keyworded here. +app-alternatives/ninja samurai # Sam James (2023-10-08) # dev-db/mysql not keyworded here 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 11a3edf1ed..c1614aa4be 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/m68k/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/m68k/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Violet Purcell (2023-10-12) +# dev-util/samurai is not keyworded here. +app-alternatives/ninja samurai + # Sam James (2023-06-18) # Qt 5 not keyworded here app-text/ansifilter gui 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 05bdb96e8b..ae71252459 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/mips/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Violet Purcell (2023-10-12) +# dev-util/samurai is not keyworded here. +app-alternatives/ninja samurai + # Andrew Ammerlaan (2023-09-20) # Libei not keyworded here yet x11-base/xwayland libei diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/mips/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/use.mask index a3c7d64fe7..4baef4e44e 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/mips/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/use.mask @@ -237,7 +237,7 @@ smi # We don't have sys-devel/llvm llvm -# Matt Turner (2011-06-14) # pdfannotextractor needs java pdfannotextractor diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/make.defaults index 8613dd7619..5290818c64 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/make.defaults @@ -1,9 +1,9 @@ -# Copyright 2019 Gentoo Authors +# Copyright 2019-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # All extra USE/etc should be specified in sub-profiles. # DO NOT POLLUTE USE ON THIS PROFILE. -# Georgy Yakovlev (2019-08-30) # Unhide PPC specific USE_EXPANDs. USE_EXPAND_HIDDEN="-CPU_FLAGS_PPC" diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.mask index 1eb4419cd1..ec682d7969 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 @@ -5,7 +5,7 @@ # sys-apps/s6-linux-init has not been tested on this arch sys-apps/openrc s6 -# Georgy Yakovlev (2023-09-21) # dtrace/systemtap not availabie on ppc platform for jdk # configure: ERROR: Unavailable JVM features explicitly enabled for 'server': 'dtrace' # https://github.com/openjdk/jdk17u-dev/commit/5b29c6ec93372b20016565b84d449860b7233d6c @@ -194,7 +194,7 @@ app-emulation/qemu capstone # Requires unkeyworded deps >=dev-python/ipython-5.4.1 qt5 -# Amy Liffey (2018-01-21) # dev-libs/cereal not keyworded for ppc media-libs/opencv contribdnn media-plugins/frei0r-plugins facedetect diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/use.mask index 0d88d3edc2..eef79d46cd 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/use.mask @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Michał Górny (2021-12-31) @@ -16,7 +16,7 @@ # Prebuilt kernels are supported here. -dist-kernel -# Georgy Yakovlev (2020-10-16) # dev-qt/qtwebengine works on ppc64le -webengine @@ -24,7 +24,7 @@ # clang is keyworded and works on ppc64 -clang -# Georgy Yakovlev (2020-01-21) # works on ppc64le -vaapi diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.mask index 03686090b5..ddeda73b98 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.mask @@ -58,7 +58,7 @@ app-containers/docker-buildx # openjfx:11 does not work on ppc64be dev-java/openjfx:11 -# Georgy Yakovlev (2020-08-27) # big-endian ppc64 configs are not provided # however users can unmask and use savedconfig feature sys-kernel/gentoo-kernel 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 1156c77b40..01cfc73309 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 @@ -86,7 +86,6 @@ media-video/obs-studio browser # Joonas Niilola (2021-06-23) # Pandoc is a required dep, and not keyworded. -sys-apps/exa man sys-apps/eza man # Matt Turner (2021-06-10) @@ -146,7 +145,7 @@ media-video/ffmpeg -rav1e # media-libs/libplacebo is keyworded media-video/vlc -libplacebo -# Georgy Yakovlev (2020-06-07) # works on ppc64 app-emulation/qemu -spice -usbredir @@ -209,7 +208,7 @@ dev-java/ant-apache-bsf python # Mask until >sys-cluster/ceph-0.94 goes stable net-analyzer/rrdtool rados -# Michael Sterrett (2013-11-12) # Mask openmedia use flag because the content generation tools # are missing keywords. games-simulation/openttd openmedia 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 e250e44928..886416fcda 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 @@ -47,7 +47,7 @@ sys-cluster/openmpi openmpi_rm_pbs # and there are many dependencies to go through before there are app-text/htmltidy test -# Georgy Yakovlev (2021-06-25) # ceph is not going to be stable on ppc64 # https://bugs.gentoo.org/798744 sys-block/tgt rbd diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/use.mask index ac70255b3d..91b70b2536 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/use.mask @@ -12,7 +12,7 @@ # XEN does not support ppc/ppc64 yet xen -# David Seifert (2020-05-17) # Mono is hopelessly broken on ppc32 mono 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 d08d9da02f..152a754167 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-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Violet Purcell (2023-10-12) +# dev-util/samurai is not keyworded here. +app-alternatives/ninja samurai + # Ionen Wolkens (2023-10-09) # media-libs/shaderc is keyworded here. media-libs/libplacebo -shaderc @@ -17,7 +21,7 @@ dev-util/cmake gui # librttopo has not been tested on this arch dev-db/spatialite rttopo -# Andrew Ammerlaan (2023-08-30) # Avoid keywording more Qt stuff dev-python/pyside2 datavis webengine @@ -101,7 +105,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 pyside2 webengine +dev-python/QtPy webengine dev-python/QtPy test # Marek Szuba (2022-04-30) 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 b9aaa63a55..ba89c4ffcc 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 @@ -7,6 +7,10 @@ dev-python/ipython notebook dev-python/nbclient test dev-python/nbconvert test +# Violet Purcell (2023-10-12) +# dev-util/samurai is not keyworded here. +app-alternatives/ninja samurai + # Patrick McLean (2023-10-03) # sys-apps/s6-linux-init has not been tested on this arch sys-apps/openrc s6 @@ -189,7 +193,7 @@ net-mail/dovecot lz4 # too much unkeyworded dependencies (bug #497068) dev-vcs/git mediawiki -# Agostino Sarubbo (2013-04-10) # It requires too much unstable dep. x11-libs/gtk+ colord 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 a2340ecb85..536863d848 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/package.use.mask @@ -1,12 +1,20 @@ # Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Michał Górny (2023-10-22) +# This is not ISDN CAPI, so unmask it. +media-video/rav1e -capi + # Michał Górny (2023-10-15) # Need dev-python/notebook (that indirectly requires net-libs/nodejs). dev-python/ipython notebook dev-python/nbclient test dev-python/nbconvert test +# Violet Purcell (2023-10-12) +# dev-util/samurai is not keyworded here. +app-alternatives/ninja samurai + # Andreas Sturmlechner (2023-10-08) # Vulkan is not available on sparc. dev-qt/qtdeclarative vulkan 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 c99ca89b9a..a9ab94eff7 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.mask @@ -1,12 +1,6 @@ # Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -# Joonas Niilola (2023-10-13) -# Pulls webkit-gtk unconditionally, which (at least :4.1) doesn't -# compile on x86. Bug #915197. -gnome-extra/cinnamon eds -gnome-extra/cinnamon-control-center gnome-online-accounts - # Ionen Wolkens (2023-10-09) # media-libs/shaderc is keyworded here. media-libs/libplacebo -shaderc @@ -232,7 +226,7 @@ sys-apps/flashrom -atahpt -atapromise -atavia -drkaiser -gfxnvidia -internal -it # clisp is keyworded on x86 app-text/texlive-core -xindy -# Georgy Yakovlev (2020-04-26) # static-pie works on x86, #719444 sys-libs/glibc -static-pie @@ -241,7 +235,7 @@ sys-libs/glibc -static-pie mail-client/thunderbird -eme-free www-client/firefox -eme-free -# Georgy Yakovlev (2020-01-04) # zfs is not keyworded on x86 dev-util/schroot zfs @@ -385,7 +379,7 @@ www-client/vivaldi-snapshot widevine # mask revdeps of xen that imply a hypervisor in arch x86 app-emulation/libvirt xen -# Brian Evans (2015-09-14) # Unmask new USE flags for mariadb on supported arches >=dev-db/mariadb-10.1.0 -galera @@ -402,7 +396,7 @@ media-libs/libbluray -bdplus # sys-fs/zfs not keyworded on x86 sys-cluster/ceph zfs -# Lars Wendler (2014-04-23) # Works on 32bit x86 media-sound/lmms -vst diff --git a/sdk_container/src/third_party/portage-stable/profiles/base/package.use b/sdk_container/src/third_party/portage-stable/profiles/base/package.use index aa2c609f91..d2ede6163d 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/package.use +++ b/sdk_container/src/third_party/portage-stable/profiles/base/package.use @@ -9,7 +9,7 @@ # Default to lua 5.4 (upstream requires 5.2 or higher) >=app-editors/vis-0.7-r1 lua_single_target_lua5-4 -# Patrick McLean (2022-05-04) # Default to lua 5.4 (upstream requires 5.3 or higher) >=sys-cluster/ceph-17.2.0 lua_single_target_lua5-4 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 503fd7309c..65b8760fd8 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/base/package.use.mask @@ -6,6 +6,31 @@ # This file is only for generic masks. For arch-specific masks (i.e. # mask everywhere, unmask on arch/*) use arch/base. +# hololeap (2023-10-15) +# Enabling these flags will create cycles in the dependency graph. +# Maintainers may want to temporarily unmask these in order to run +# tests for these packages, but it is necessary for each package to be +# rebuilt with the flag disabled immediately after testing. +# See: +dev-haskell/attoparsec test +dev-haskell/base-orphans test +dev-haskell/clock test +dev-haskell/colour test +dev-haskell/data-array-byte test +dev-haskell/foldable1-classes-compat test +dev-haskell/hspec-core test +dev-haskell/hspec-discover test +dev-haskell/integer-logarithms test +dev-haskell/nanospec test +dev-haskell/network-uri test +dev-haskell/parser-combinators test +dev-haskell/prettyprinter test +dev-haskell/prettyprinter-ansi-terminal test +dev-haskell/primitive test +dev-haskell/scientific test +dev-haskell/splitmix test +dev-haskell/tasty-expected-failure test + # Michał Górny (2023-10-14) # media-video/transcode is masked for removal. media-video/chaplin transcode 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 de62ead0c3..461222d4c3 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/base/package.use.stable.mask @@ -4,6 +4,14 @@ # This file requires eapi 5 or later. New entries go on top. # Please use the same syntax as in package.use.mask +# Sam James (2023-10-23) +# Requires llvm-17. +>=www-client/chromium-118 libcxx lto pgo + +# Michał Górny (2023-10-18) +# Unblock the support in python-exec while the target is masked. +dev-lang/python-exec -python_targets_python3_12 + # Michał Górny (2023-06-11) # xfce-base/libxfce4windowing is not ready to go stable (4.19 branch). xfce-extra/xfce4-pulseaudio-plugin libxfce4windowing @@ -183,7 +191,7 @@ dev-python/matplotlib doc # Dependencies have no stable keyword app-backup/backup-manager s3 -# Brian Evans (2017-11-06) # Requires stable phpunit dev-php/PEAR-Text_Password test @@ -196,7 +204,7 @@ www-servers/uwsgi go uwsgi_plugins_alarm_xmpp # Requires guile-2 which is still unstable. >=net-irc/weechat-1.7 guile -# Michael Palimaka (2017-08-11) # Unstable dependencies. dev-util/rpmdevtools emacs 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 c26a2c6478..e85ed1dfbe 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.mask @@ -1,6 +1,16 @@ # Copyright 2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# matoro (2023-10-09) +# Tested on LE only (#889996, #908893) +dev-games/mygui +dev-games/ois +dev-games/openscenegraph-openmw +dev-games/recastnavigation +games-engines/fheroes2 +games-engines/openmw +games-strategy/homm2-gold-gog + # Sam James (2023-09-28) # Broken on BE (https://bugs.chromium.org/p/aomedia/issues/detail?id=3487) ~media-libs/libaom-3.7.0 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 4c9c424e5d..8451ea4ff2 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 @@ -201,6 +201,7 @@ games-puzzle/world-of-goo-demo games-puzzle/world-of-goo-gog games-puzzle/world-of-goo-hb games-rpg/crosscode +games-rpg/crosscode-a-new-home games-server/bedrock-server games-server/etqw-ded games-server/mtavc diff --git a/sdk_container/src/third_party/portage-stable/profiles/license_groups b/sdk_container/src/third_party/portage-stable/profiles/license_groups index c0666978a3..1f16b703a6 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/license_groups +++ b/sdk_container/src/third_party/portage-stable/profiles/license_groups @@ -18,7 +18,7 @@ GPL-COMPATIBLE AGPL-3 AGPL-3+ Apache-2.0 Apache-2.0-with-LLVM-exceptions Artistic-2 Boost-1.0 BSD BSD-2 CC0-1.0 CeCILL-2 Clarified-Artistic Clear-BSD ECL-2.0 FSFAP FTL gcc-runtime-library-exception-3.1 GPL-1 GPL-1+ GPL-2 GPL-2+ GPL-2+-with-openssl-exception GPL-2+-with-eCos-exception-2 GPL-2-with-classpath-exception GPL-2-with-exceptions GPL-2-with-font-exception GPL-2-with-linking-exception GPL-2-with-MySQL-FLOSS-exception GPL-2+-with-Pyinstaller-Bootloader-exception GPL-3 GPL-3+ GPL-3+-with-autoconf-exception GPL-3+-with-font-exception GPL-3-with-font-exception GPL-3-with-openssl-exception HPND IJG ISC LGPL-2 LGPL-2+ LGPL-2-with-linking-exception LGPL-2.1 LGPL-2.1+ LGPL-2.1-with-linking-exception LGPL-3 LGPL-3+ LGPL-3-with-linking-exception libgcc libstdc++ metapackage MIT MPL-2.0 Nokia-Qt-LGPL-Exception-1.1 OPENLDAP PSF-2 PSF-2.4 public-domain PYTHON qwt Ruby Ruby-BSD SGI-B-2.0 Sleepycat tanuki-community Transmission-OpenSSL-exception Unicode-DFS-2016 Unlicense UoI-NCSA UPX-exception vim W3C WTFPL-2 wxWinLL-3.1 ZLIB ZPL # Free software licenses approved by the FSF -FSF-APPROVED @GPL-COMPATIBLE AFL-2.1 AFL-3.0 Apache-1.0 Apache-1.1 APSL-2 BSD-4 CDDL CeCILL-B CeCILL-C CNRI CPAL-1.0 CPL-1.0 EPL-1.0 EPL-2.0 EUPL-1.1 EUPL-1.2 FraunhoferFDK gnuplot IBM LPL-1.02 LPPL-1.2 MPL-1.0 MPL-1.1 Ms-PL Ms-RL NPL-1.1 openssl OSL-1.1 OSL-2.0 OSL-2.1 PHP-3.01 QPL-1.0 Zend-2.0 +FSF-APPROVED @GPL-COMPATIBLE AFL-2.1 AFL-3.0 Apache-1.0 Apache-1.1 APSL-2 BSD-4 CDDL CeCILL-B CeCILL-C CNRI CPAL-1.0 CPL-1.0 EPL-1.0 EPL-2.0 EUPL-1.1 EUPL-1.2 FraunhoferFDK gnuplot IBM LPL-1.02 LPPL-1.2 LPPL-1.3a MPL-1.0 MPL-1.1 Ms-PL Ms-RL NPL-1.1 openssl OSL-1.1 OSL-2.0 OSL-2.1 PHP-3.01 QPL-1.0 Zend-2.0 # Licenses approved by the Open Source Initiative # https://www.opensource.org/licenses @@ -48,7 +48,7 @@ FSF-APPROVED-OTHER Arphic CC-BY-2.0 CC-BY-2.5 CC-BY-3.0 CC-BY-4.0 CC-BY-SA-2.0 C # Misc licenses for free documents and other works (including fonts) # that follow the definition at https://freedomdefined.org/ but are NOT # listed in @FSF-APPROVED-OTHER -MISC-FREE-DOCS BAEKMUK BitstreamVera CC-BY-SA-1.0 CC-PD CC-SA-1.0 LDP-1 LDP-1a man-pages man-pages-posix-2013 MaxMind2 mplus-fonts myspell-en_CA-KevinAtkinson quake1-textures Texinfo-manual UbuntuFontLicense-1.0 vlgothic wxWinFDL-3 +MISC-FREE-DOCS BAEKMUK BitstreamVera CC-BY-1.0 CC-BY-SA-1.0 CC-PD CC-SA-1.0 LDP-1 LDP-1a man-pages man-pages-posix-2013 MaxMind2 mplus-fonts myspell-en_CA-KevinAtkinson quake1-textures Texinfo-manual UbuntuFontLicense-1.0 vlgothic wxWinFDL-3 # Metaset for all free documents FREE-DOCUMENTS @FSF-APPROVED-OTHER @MISC-FREE-DOCS 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 d656f29a30..01ba1c3d57 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/package.deprecated +++ b/sdk_container/src/third_party/portage-stable/profiles/package.deprecated @@ -17,6 +17,11 @@ #--- END OF EXAMPLES --- +# Andreas Sturmlechner (2023-10-21) +# QtScript is deprecated since Qt 5.5, all projects must port away. +# Bug 915779 +dev-qt/qtscript:5 + # Michał Górny (2023-06-18) # Superseded by dev-python/pdm-backend. The migration guide is at: # https://pdm-backend.fming.dev/migration/ 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 7ab64a3915..ab306c44e5 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,32 @@ #--- END OF EXAMPLES --- +# Michał Górny (2023-10-23) +# Broken on Python 3.11. Archived upstream since 2020. No revdeps. +# Removal on 2023-11-22. Bug #896886. +dev-python/sphinx-testing + +# Michał Górny (2023-10-22) +# Incompatible with Python 3.12. Last commit in 2016. No revdeps. +# Removal on 2023-11-21. Bug #909917. +dev-python/exam + +# Michał Górny (2023-10-20) +# The test suite is broken and does not fail correctly. No maintainer. +# No revdeps. +# Removal on 2023-11-19. Bug #916047. +dev-python/pydotplus + +# Ulrich Müller (2023-10-19) +# Pretest versions, masked for testing. + (2023-10-16) +# Part of Perl core and better maintained there - the version on CPAN is out of +# date and incompatible with Perl 5.38. No reverse dependencies. +# Removal on 2023-11-15. +dev-perl/PathTools + # Michał Górny (2023-10-15) # These packages were required by old version of dev-python/jupyterlab # and dev-python/notebook, and are no longer used. @@ -41,7 +67,6 @@ dev-python/check-manifest dev-python/jupyter-server-fileid dev-python/jupyter-server-ydoc dev-python/jupyter-ydoc -dev-python/nbclassic dev-python/y-py dev-python/ypy-websocket @@ -203,16 +228,6 @@ app-dicts/prime-dict # the changes in 8.0.2. ~dev-python/setuptools-scm-8.0.1 -# Joonas Niilola (2023-09-21) -# Enigmail's functionality has been built into Thunderbird-68, carrying over -# all the way to 115. Enigmail hasn't been supported in TB since 91. It's -# currently only supported on SeaMonkey, but upstream provides a pre-packed -# extension to download for SM directly. Therefore there's not much reason to -# package it in Gentoo, given also the current version is years behind upstream -# releases. Bug #914486 -# Removal in ~30 days. -x11-plugins/enigmail - # Jaco Kroon (2023-09-19) # Joonas Niilola (2023-09-21) # DAHDI is not suited for a rolling-release distribution. Upstream releases new @@ -226,51 +241,6 @@ net-misc/dahdi net-misc/dahdi-tools net-misc/openr2 -# Ulrich Müller (2023-09-20) -# Unmaintained upstream: Last release (2.92) in 2003, last commit -# to XEmacs CVS repository in 2008. Broken with Emacs 29. -# Masked for removal on 2023-10-20, bug #914449. -app-emacs/crypt++ - -# Bernard Cafarelli (2023-09-19) -# Only works with PHP 7, which was dropped from Gentoo -# Upstream has no short-term plan to add PHP 8 support -# Bug #842882, removal on 2023-10-19. -www-apps/owncloud - -# Michał Górny (2023-09-17) -# Core API has not been maintained since 2017, and all the repositories -# have been archived in 2019. It remained in ::gentoo only -# as an optional test dependency, and all reverse dependencies have been -# updated not to depend on it. -# Removal on 2023-10-17. Bug #914363. -dev-python/coreapi -dev-python/coreschema -dev-python/itypes - -# Andreas K. Hüttel (2021-07-06, 2023-09-15) -# No longer maintained upstream; masked everywhere for two years now. -# Please see also the 2021-07-15-opentmpfiles-deprecation news item. -# https://www.gentoo.org/support/news-items/2021-07-15-opentmpfiles-deprecation.html -# -# The replacement is sys-apps/systemd-utils[tmpfiles]; new name -# but otherwise identical to the solution described in the news item. -# Removal on 2023-10-15. -sys-apps/opentmpfiles - -# Hans de Graaff (2023-09-15) -# Not compatible with ruby31, no reverse dependencies. Last release in -# 2013. Masked for removal on 2023-10-15. -dev-ruby/ruby-elf - -# Andrew Ammerlaan (2023-09-14) -# No longer a test dependency of dev-python/textdistance, now fails tests -# with the latest numpy. Upstream inactive and we already need patching for -# python 3.10 compatibility. No other reverse dependencies. -# Bug: https://bugs.gentoo.org/887845 -# Removal on 2023-10-14 -dev-python/abydos - # Sam James (2023-09-09) # OpenSSL 1.1.x is EOL on 2023-09-11. Please upgrade immediately to >= OpenSSL 3. # https://www.openssl.org/blog/blog/2023/03/28/1.1.1-EOL/ @@ -322,7 +292,6 @@ dev-python/abydos # Matt Turner (2023-07-06) # GNOME 45 mask ->=app-editors/ghex-45_alpha >=gnome-extra/gnome-logs-45_alpha >=net-misc/gnome-remote-desktop-45_alpha >=x11-libs/pango-1.51.0 diff --git a/sdk_container/src/third_party/portage-stable/profiles/thirdpartymirrors b/sdk_container/src/third_party/portage-stable/profiles/thirdpartymirrors index ec150ba393..e1c355086b 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/thirdpartymirrors +++ b/sdk_container/src/third_party/portage-stable/profiles/thirdpartymirrors @@ -1,4 +1,4 @@ -apache https://dlcdn.apache.org/ https://apache.lauf-forum.at/ https://apache.mirror.iphh.net/ https://artfiles.org/apache.org/ https://ftp-stud.hs-esslingen.de/pub/Mirrors/ftp.apache.org/dist/ https://ftp.fau.de/apache/ https://apache.osuosl.org/ +apache https://dlcdn.apache.org/ https://apache.mirror.iphh.net/ https://artfiles.org/apache.org/ https://ftp-stud.hs-esslingen.de/pub/Mirrors/ftp.apache.org/dist/ https://ftp.fau.de/apache/ https://apache.osuosl.org/ cpan https://cpan.metacpan.org https://www.cpan.org cran https://cran.r-project.org https://cran.us.r-project.org debian https://deb.debian.org/debian/ http://ftp.au.debian.org/debian/ http://ftp.at.debian.org/debian/ http://ftp.by.debian.org/debian/ http://ftp.be.debian.org/debian/ http://ftp.br.debian.org/debian/ http://ftp.bg.debian.org/debian/ http://ftp.ca.debian.org/debian/ http://ftp2.cn.debian.org/debian/ http://ftp.cn.debian.org/debian/ http://ftp.hr.debian.org/debian/ http://ftp.cz.debian.org/debian/ http://ftp.dk.debian.org/debian/ http://ftp.sv.debian.org/debian/ http://ftp.ee.debian.org/debian/ http://ftp.fi.debian.org/debian/ http://ftp.fr.debian.org/debian/ http://ftp2.de.debian.org/debian/ http://ftp.de.debian.org/debian/ http://ftp.gr.debian.org/debian/ http://ftp.hu.debian.org/debian/ http://ftp.is.debian.org/debian/ http://ftp.ie.debian.org/debian/ http://ftp.it.debian.org/debian/ http://ftp.jp.debian.org/debian/ http://ftp.lt.debian.org/debian/ http://ftp.mx.debian.org/debian/ http://ftp.md.debian.org/debian/ http://ftp.nl.debian.org/debian/ http://ftp.nc.debian.org/debian/ http://ftp.nz.debian.org/debian/ http://ftp.no.debian.org/debian/ http://ftp.pl.debian.org/debian/ http://ftp.pt.debian.org/debian/ http://ftp.ro.debian.org/debian/ http://ftp.ru.debian.org/debian/ http://ftp.sg.debian.org/debian/ http://ftp.sk.debian.org/debian/ http://ftp.si.debian.org/debian/ http://ftp.es.debian.org/debian/ http://ftp.se.debian.org/debian/ http://ftp.ch.debian.org/debian/ http://ftp.tw.debian.org/debian/ http://ftp.tr.debian.org/debian/ http://ftp.ua.debian.org/debian/ http://ftp.uk.debian.org/debian/ http://ftp.us.debian.org/debian/ diff --git a/sdk_container/src/third_party/portage-stable/profiles/updates/3Q-2021 b/sdk_container/src/third_party/portage-stable/profiles/updates/3Q-2021 index bbdbbafa2a..b77aad7be6 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/updates/3Q-2021 +++ b/sdk_container/src/third_party/portage-stable/profiles/updates/3Q-2021 @@ -4,7 +4,7 @@ slotmove =dev-ruby/elasticsearch-transport-6.8.3 6 6.8.3 move dev-python/cfn-python-lint dev-python/cfn-lint move dev-python/dbusmock dev-python/python-dbusmock move dev-python/python-backoff dev-python/backoff -move dev-python/python-musicbrainz-ngs dev-python/python-musicbrainzngs +move dev-python/python-musicbrainz-ngs dev-python/musicbrainzngs move dev-python/python-podman dev-python/podman move dev-python/u-msgpack dev-python/u-msgpack-python move sci-physics/geant-vmc sci-physics/geant4_vmc diff --git a/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2023 b/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2023 new file mode 100644 index 0000000000..94012b5237 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/updates/4Q-2023 @@ -0,0 +1,4 @@ +move dev-python/python-varlink dev-python/varlink +move dev-python/python-musicbrainzngs dev-python/musicbrainzngs +move dev-python/python-libevdev dev-python/libevdev +move dev-python/sphinx_lv2_theme dev-python/sphinx-lv2-theme diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/Manifest b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/Manifest index ddfc4a24f3..4d610c6a88 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/Manifest +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/Manifest @@ -1,5 +1,6 @@ DIST patchbundle-selinux-base-policy-2.20221101-r3.tar.bz2 444710 BLAKE2B e33cc01a8be5a354e022be1e8bf242883b09b15ead0673f859819f5e668f18773a16527f2e608878e6976695dcb2890c55658e77877e93c716ae0b2dd2ed5a9b SHA512 52e60b22346903a6fead95c9fb348fa1d4037b7dcd3e5781248a7dfc426c8c3fced258fd22762c779a5f436d8be21eaed5425ed36ff99c267daae5e1cb9c8e7f DIST patchbundle-selinux-base-policy-2.20221101-r4.tar.bz2 457886 BLAKE2B 1e085f9f1739e0640c5eafa70db4c7ec19bca887c682ca2312a457fa57ee3eb176d0c8f16c2f84a1a026669b1240be3ff69066bd825c92fad75dcd2c13739f6c SHA512 da3ba1f076c04746719698aedb3aad48eb7c8a09df95c314b36f7a052538a07d893be413f35f4c34b01c1bf967ebe35ff32c2cea0722fe74a6e089a9d6aa47a6 DIST patchbundle-selinux-base-policy-2.20231002-r1.tar.bz2 434734 BLAKE2B f2f28674ba93cd3a699cf0bc8fd06ab0500995f9518082cc76734c724b9ac82fcbcfa536f383a22b2fe72a9f781f202a78e630b7eb314880a98410badb32edd2 SHA512 30963590525842b7aaafc4bda99ae5297dc9706031431e69766dc90507357e4852ab0647893bfa27e6c6d82dd12f9af9a3fb5b790e2bd9b8311b8d91dafd083d +DIST patchbundle-selinux-base-policy-2.20231002-r2.tar.bz2 436443 BLAKE2B f481e661b4afadd15f786a5d69d975d79e5d9a378c7bca279282d59215a02897a9587cbd56f7a2d95fd8152f931c0a8d469927033910e8fe214ee4494f4e6e49 SHA512 8545592130d7d10f7d6411a356e79f9cb2689138a7eb69a5f7bcd630203019c61336f1e3bdbc95dea31efceb41c9bce2e7ff42ced6a51a9b7482e991864fec05 DIST refpolicy-2.20221101.tar.bz2 583183 BLAKE2B 783d8af40fd77d7ddb848dba32e91921dd7c1380c094c45b719ada7b15f91aacbb52b410ffa6341f2f705ecbc9674b8570bd4867ce998e944fa0054ffd8bdf74 SHA512 29e5a29d90f714018c88fead2d5006ea90338fb5b7a1e4e98cb2e588c96cd861871d32176f6cc6f7c4e864ce5acae1aeed85d4c706ce2da8168986535baaf3a6 DIST refpolicy-2.20231002.tar.bz2 600458 BLAKE2B 254d6d3d6b95f21e1f8e1df5822520ccaeade427053fb172079427cf70bd33f8ced87a9e09e1d36ec5f7b33f0bac8d730020d91996c6d25eafdcec66ebe35bb3 SHA512 029cd2225ce57d96f681720f24828e962320af41832ad2dc95d4d41d00dbde20bb08d91fa8b964b592812a9fedd908c261734b77ad72cccfde2de541b9c2c74d diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/selinux-base-policy-2.20231002-r2.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/selinux-base-policy-2.20231002-r2.ebuild new file mode 100644 index 0000000000..aaff2143be --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base-policy/selinux-base-policy-2.20231002-r2.ebuild @@ -0,0 +1,141 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +if [[ ${PV} == 9999* ]]; then + EGIT_REPO_URI="${SELINUX_GIT_REPO:-https://anongit.gentoo.org/git/proj/hardened-refpolicy.git}" + EGIT_BRANCH="${SELINUX_GIT_BRANCH:-master}" + EGIT_CHECKOUT_DIR="${WORKDIR}/refpolicy" + + inherit git-r3 +else + SRC_URI="https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_${PV/./_}/refpolicy-${PV}.tar.bz2 + https://dev.gentoo.org/~perfinion/patches/${PN}/patchbundle-${PN}-${PVR}.tar.bz2" + KEYWORDS="~amd64 ~arm ~arm64 ~mips ~x86" +fi + +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:SELinux" +DESCRIPTION="SELinux policy for core modules" + +IUSE="systemd +unconfined" + +PDEPEND="unconfined? ( sec-policy/selinux-unconfined )" +DEPEND="=sec-policy/selinux-base-${PVR}[systemd?]" +RDEPEND="${DEPEND}" +BDEPEND=" + sys-apps/checkpolicy + sys-devel/m4" + +MODS="application authlogin bootloader clock consoletype cron dmesg fstools getty hostname init iptables libraries locallogin logging lvm miscfiles modutils mount mta netutils nscd portage raid rsync selinuxutil setrans ssh staff storage su sysadm sysnetwork systemd tmpfiles udev userdomain usermanage unprivuser xdg" +DEL_MODS="hotplug" +LICENSE="GPL-2" +SLOT="0" +S="${WORKDIR}/" + +# Code entirely copied from selinux-eclass (cannot inherit due to dependency on +# itself), when reworked reinclude it. Only postinstall (where -b base.pp is +# added) needs to remain then. + +pkg_pretend() { + for i in ${POLICY_TYPES}; do + if [[ "${i}" == "targeted" ]] && ! use unconfined; then + die "If you use POLICY_TYPES=targeted, then USE=unconfined is mandatory." + fi + done +} + +src_prepare() { + local modfiles + + if [[ ${PV} != 9999* ]]; then + einfo "Applying SELinux policy updates ... " + eapply -p0 "${WORKDIR}/0001-full-patch-against-stable-release.patch" + fi + + eapply_user + + # Collect only those files needed for this particular module + for i in ${MODS}; do + modfiles="$(find "${S}"/refpolicy/policy/modules -iname $i.te) $modfiles" + modfiles="$(find "${S}"/refpolicy/policy/modules -iname $i.fc) $modfiles" + done + + for i in ${DEL_MODS}; do + [[ "${MODS}" != *${i}* ]] || die "Duplicate module in MODS and DEL_MODS: ${i}" + done + + for i in ${POLICY_TYPES}; do + mkdir "${S}"/${i} || die "Failed to create directory ${S}/${i}" + cp "${S}"/refpolicy/doc/Makefile.example "${S}"/${i}/Makefile \ + || die "Failed to copy Makefile.example to ${S}/${i}/Makefile" + + cp ${modfiles} "${S}"/${i} \ + || die "Failed to copy the module files to ${S}/${i}" + done +} + +src_compile() { + for i in ${POLICY_TYPES}; do + emake NAME=$i SHAREDIR="${SYSROOT%/}/usr/share/selinux" -C "${S}"/${i} + done +} + +src_install() { + local BASEDIR="/usr/share/selinux" + + for i in ${POLICY_TYPES}; do + for j in ${MODS}; do + einfo "Installing ${i} ${j} policy package" + insinto ${BASEDIR}/${i} + doins "${S}"/${i}/${j}.pp + done + done +} + +pkg_postinst() { + # Set root path and don't load policy into the kernel when cross compiling + local root_opts="" + if [[ "${ROOT}" != "" ]]; then + root_opts="-p ${ROOT} -n" + fi + + # Override the command from the eclass, we need to load in base as well here + local COMMAND="-i base.pp" + if has_version "> "${S}/refpolicy/build.conf" || die + + # Prepare initial configuration + cd "${S}/refpolicy" || die + emake conf + + # Setup the policies based on the types delivered by the end user. + # These types can be "targeted", "strict", "mcs" and "mls". + for i in ${POLICY_TYPES}; do + cp -a "${S}/refpolicy" "${S}/${i}" || die + cd "${S}/${i}" || die + + sed -i -e "/= module/d" "${S}/${i}/policy/modules.conf" || die + + sed -i -e '/^QUIET/s/n/y/' -e "/^NAME/s/refpolicy/$i/" \ + "${S}/${i}/build.conf" || die "build.conf setup failed." + + if [[ "${i}" == "mls" ]] || [[ "${i}" == "mcs" ]]; + then + # MCS/MLS require additional settings + sed -i -e "/^TYPE/s/standard/${i}/" "${S}/${i}/build.conf" \ + || die "failed to set type to mls" + fi + + if [ "${i}" == "targeted" ]; then + sed -i -e '/root/d' -e 's/user_u/unconfined_u/' \ + "${S}/${i}/config/appconfig-standard/seusers" \ + || die "targeted seusers setup failed." + fi + + if [ "${i}" != "targeted" ] && [ "${i}" != "strict" ] && use unconfined; then + sed -i -e '/root/d' -e 's/user_u/unconfined_u/' \ + "${S}/${i}/config/appconfig-${i}/seusers" \ + || die "policy seusers setup failed." + fi + done +} + +src_compile() { + [ -z "${POLICY_TYPES}" ] && local POLICY_TYPES="targeted strict mls mcs" + + for i in ${POLICY_TYPES}; do + cd "${S}/${i}" || die + emake base + if use doc; then + emake html + fi + done +} + +src_install() { + [ -z "${POLICY_TYPES}" ] && local POLICY_TYPES="targeted strict mls mcs" + + for i in ${POLICY_TYPES}; do + cd "${S}/${i}" || die + + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install-headers + + echo "run_init_t" > "${D}/etc/selinux/${i}/contexts/run_init_type" || die + + echo "textrel_shlib_t" >> "${D}/etc/selinux/${i}/contexts/customizable_types" || die + + # libsemanage won't make this on its own + keepdir "/etc/selinux/${i}/policy" + + if use doc; then + docinto ${i}/html + dodoc -r doc/html/*; + fi + + insinto /usr/share/selinux/devel; + doins doc/policy.xml; + + done + + docinto / + dodoc doc/Makefile.example doc/example.{te,fc,if} + + doman man/man8/*.8; + + insinto /etc/selinux + doins "${FILESDIR}/config" + + insinto /usr/share/portage/config/sets + doins "${FILESDIR}/selinux.conf" +} diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/Manifest b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/Manifest index ddfc4a24f3..4d610c6a88 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/Manifest +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/Manifest @@ -1,5 +1,6 @@ DIST patchbundle-selinux-base-policy-2.20221101-r3.tar.bz2 444710 BLAKE2B e33cc01a8be5a354e022be1e8bf242883b09b15ead0673f859819f5e668f18773a16527f2e608878e6976695dcb2890c55658e77877e93c716ae0b2dd2ed5a9b SHA512 52e60b22346903a6fead95c9fb348fa1d4037b7dcd3e5781248a7dfc426c8c3fced258fd22762c779a5f436d8be21eaed5425ed36ff99c267daae5e1cb9c8e7f DIST patchbundle-selinux-base-policy-2.20221101-r4.tar.bz2 457886 BLAKE2B 1e085f9f1739e0640c5eafa70db4c7ec19bca887c682ca2312a457fa57ee3eb176d0c8f16c2f84a1a026669b1240be3ff69066bd825c92fad75dcd2c13739f6c SHA512 da3ba1f076c04746719698aedb3aad48eb7c8a09df95c314b36f7a052538a07d893be413f35f4c34b01c1bf967ebe35ff32c2cea0722fe74a6e089a9d6aa47a6 DIST patchbundle-selinux-base-policy-2.20231002-r1.tar.bz2 434734 BLAKE2B f2f28674ba93cd3a699cf0bc8fd06ab0500995f9518082cc76734c724b9ac82fcbcfa536f383a22b2fe72a9f781f202a78e630b7eb314880a98410badb32edd2 SHA512 30963590525842b7aaafc4bda99ae5297dc9706031431e69766dc90507357e4852ab0647893bfa27e6c6d82dd12f9af9a3fb5b790e2bd9b8311b8d91dafd083d +DIST patchbundle-selinux-base-policy-2.20231002-r2.tar.bz2 436443 BLAKE2B f481e661b4afadd15f786a5d69d975d79e5d9a378c7bca279282d59215a02897a9587cbd56f7a2d95fd8152f931c0a8d469927033910e8fe214ee4494f4e6e49 SHA512 8545592130d7d10f7d6411a356e79f9cb2689138a7eb69a5f7bcd630203019c61336f1e3bdbc95dea31efceb41c9bce2e7ff42ced6a51a9b7482e991864fec05 DIST refpolicy-2.20221101.tar.bz2 583183 BLAKE2B 783d8af40fd77d7ddb848dba32e91921dd7c1380c094c45b719ada7b15f91aacbb52b410ffa6341f2f705ecbc9674b8570bd4867ce998e944fa0054ffd8bdf74 SHA512 29e5a29d90f714018c88fead2d5006ea90338fb5b7a1e4e98cb2e588c96cd861871d32176f6cc6f7c4e864ce5acae1aeed85d4c706ce2da8168986535baaf3a6 DIST refpolicy-2.20231002.tar.bz2 600458 BLAKE2B 254d6d3d6b95f21e1f8e1df5822520ccaeade427053fb172079427cf70bd33f8ced87a9e09e1d36ec5f7b33f0bac8d730020d91996c6d25eafdcec66ebe35bb3 SHA512 029cd2225ce57d96f681720f24828e962320af41832ad2dc95d4d41d00dbde20bb08d91fa8b964b592812a9fedd908c261734b77ad72cccfde2de541b9c2c74d diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20231002-r2.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20231002-r2.ebuild new file mode 100644 index 0000000000..49a81a368e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-container/selinux-container-2.20231002-r2.ebuild @@ -0,0 +1,15 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +IUSE="" +MODS="container" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for container" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="~amd64 ~arm ~arm64 ~mips ~x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/Manifest b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/Manifest index ddfc4a24f3..4d610c6a88 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/Manifest +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/Manifest @@ -1,5 +1,6 @@ DIST patchbundle-selinux-base-policy-2.20221101-r3.tar.bz2 444710 BLAKE2B e33cc01a8be5a354e022be1e8bf242883b09b15ead0673f859819f5e668f18773a16527f2e608878e6976695dcb2890c55658e77877e93c716ae0b2dd2ed5a9b SHA512 52e60b22346903a6fead95c9fb348fa1d4037b7dcd3e5781248a7dfc426c8c3fced258fd22762c779a5f436d8be21eaed5425ed36ff99c267daae5e1cb9c8e7f DIST patchbundle-selinux-base-policy-2.20221101-r4.tar.bz2 457886 BLAKE2B 1e085f9f1739e0640c5eafa70db4c7ec19bca887c682ca2312a457fa57ee3eb176d0c8f16c2f84a1a026669b1240be3ff69066bd825c92fad75dcd2c13739f6c SHA512 da3ba1f076c04746719698aedb3aad48eb7c8a09df95c314b36f7a052538a07d893be413f35f4c34b01c1bf967ebe35ff32c2cea0722fe74a6e089a9d6aa47a6 DIST patchbundle-selinux-base-policy-2.20231002-r1.tar.bz2 434734 BLAKE2B f2f28674ba93cd3a699cf0bc8fd06ab0500995f9518082cc76734c724b9ac82fcbcfa536f383a22b2fe72a9f781f202a78e630b7eb314880a98410badb32edd2 SHA512 30963590525842b7aaafc4bda99ae5297dc9706031431e69766dc90507357e4852ab0647893bfa27e6c6d82dd12f9af9a3fb5b790e2bd9b8311b8d91dafd083d +DIST patchbundle-selinux-base-policy-2.20231002-r2.tar.bz2 436443 BLAKE2B f481e661b4afadd15f786a5d69d975d79e5d9a378c7bca279282d59215a02897a9587cbd56f7a2d95fd8152f931c0a8d469927033910e8fe214ee4494f4e6e49 SHA512 8545592130d7d10f7d6411a356e79f9cb2689138a7eb69a5f7bcd630203019c61336f1e3bdbc95dea31efceb41c9bce2e7ff42ced6a51a9b7482e991864fec05 DIST refpolicy-2.20221101.tar.bz2 583183 BLAKE2B 783d8af40fd77d7ddb848dba32e91921dd7c1380c094c45b719ada7b15f91aacbb52b410ffa6341f2f705ecbc9674b8570bd4867ce998e944fa0054ffd8bdf74 SHA512 29e5a29d90f714018c88fead2d5006ea90338fb5b7a1e4e98cb2e588c96cd861871d32176f6cc6f7c4e864ce5acae1aeed85d4c706ce2da8168986535baaf3a6 DIST refpolicy-2.20231002.tar.bz2 600458 BLAKE2B 254d6d3d6b95f21e1f8e1df5822520ccaeade427053fb172079427cf70bd33f8ced87a9e09e1d36ec5f7b33f0bac8d730020d91996c6d25eafdcec66ebe35bb3 SHA512 029cd2225ce57d96f681720f24828e962320af41832ad2dc95d4d41d00dbde20bb08d91fa8b964b592812a9fedd908c261734b77ad72cccfde2de541b9c2c74d diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20231002-r2.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20231002-r2.ebuild new file mode 100644 index 0000000000..2d7012a30e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-dbus/selinux-dbus-2.20231002-r2.ebuild @@ -0,0 +1,15 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +IUSE="" +MODS="dbus" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for dbus" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="~amd64 ~arm ~arm64 ~mips ~x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/Manifest b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/Manifest index ddfc4a24f3..4d610c6a88 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/Manifest +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/Manifest @@ -1,5 +1,6 @@ DIST patchbundle-selinux-base-policy-2.20221101-r3.tar.bz2 444710 BLAKE2B e33cc01a8be5a354e022be1e8bf242883b09b15ead0673f859819f5e668f18773a16527f2e608878e6976695dcb2890c55658e77877e93c716ae0b2dd2ed5a9b SHA512 52e60b22346903a6fead95c9fb348fa1d4037b7dcd3e5781248a7dfc426c8c3fced258fd22762c779a5f436d8be21eaed5425ed36ff99c267daae5e1cb9c8e7f DIST patchbundle-selinux-base-policy-2.20221101-r4.tar.bz2 457886 BLAKE2B 1e085f9f1739e0640c5eafa70db4c7ec19bca887c682ca2312a457fa57ee3eb176d0c8f16c2f84a1a026669b1240be3ff69066bd825c92fad75dcd2c13739f6c SHA512 da3ba1f076c04746719698aedb3aad48eb7c8a09df95c314b36f7a052538a07d893be413f35f4c34b01c1bf967ebe35ff32c2cea0722fe74a6e089a9d6aa47a6 DIST patchbundle-selinux-base-policy-2.20231002-r1.tar.bz2 434734 BLAKE2B f2f28674ba93cd3a699cf0bc8fd06ab0500995f9518082cc76734c724b9ac82fcbcfa536f383a22b2fe72a9f781f202a78e630b7eb314880a98410badb32edd2 SHA512 30963590525842b7aaafc4bda99ae5297dc9706031431e69766dc90507357e4852ab0647893bfa27e6c6d82dd12f9af9a3fb5b790e2bd9b8311b8d91dafd083d +DIST patchbundle-selinux-base-policy-2.20231002-r2.tar.bz2 436443 BLAKE2B f481e661b4afadd15f786a5d69d975d79e5d9a378c7bca279282d59215a02897a9587cbd56f7a2d95fd8152f931c0a8d469927033910e8fe214ee4494f4e6e49 SHA512 8545592130d7d10f7d6411a356e79f9cb2689138a7eb69a5f7bcd630203019c61336f1e3bdbc95dea31efceb41c9bce2e7ff42ced6a51a9b7482e991864fec05 DIST refpolicy-2.20221101.tar.bz2 583183 BLAKE2B 783d8af40fd77d7ddb848dba32e91921dd7c1380c094c45b719ada7b15f91aacbb52b410ffa6341f2f705ecbc9674b8570bd4867ce998e944fa0054ffd8bdf74 SHA512 29e5a29d90f714018c88fead2d5006ea90338fb5b7a1e4e98cb2e588c96cd861871d32176f6cc6f7c4e864ce5acae1aeed85d4c706ce2da8168986535baaf3a6 DIST refpolicy-2.20231002.tar.bz2 600458 BLAKE2B 254d6d3d6b95f21e1f8e1df5822520ccaeade427053fb172079427cf70bd33f8ced87a9e09e1d36ec5f7b33f0bac8d730020d91996c6d25eafdcec66ebe35bb3 SHA512 029cd2225ce57d96f681720f24828e962320af41832ad2dc95d4d41d00dbde20bb08d91fa8b964b592812a9fedd908c261734b77ad72cccfde2de541b9c2c74d diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20231002-r2.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20231002-r2.ebuild new file mode 100644 index 0000000000..6aedbbce8a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-sssd/selinux-sssd-2.20231002-r2.ebuild @@ -0,0 +1,15 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +IUSE="" +MODS="sssd" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for sssd" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="~amd64 ~arm ~arm64 ~mips ~x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/Manifest b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/Manifest index ddfc4a24f3..4d610c6a88 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/Manifest +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/Manifest @@ -1,5 +1,6 @@ DIST patchbundle-selinux-base-policy-2.20221101-r3.tar.bz2 444710 BLAKE2B e33cc01a8be5a354e022be1e8bf242883b09b15ead0673f859819f5e668f18773a16527f2e608878e6976695dcb2890c55658e77877e93c716ae0b2dd2ed5a9b SHA512 52e60b22346903a6fead95c9fb348fa1d4037b7dcd3e5781248a7dfc426c8c3fced258fd22762c779a5f436d8be21eaed5425ed36ff99c267daae5e1cb9c8e7f DIST patchbundle-selinux-base-policy-2.20221101-r4.tar.bz2 457886 BLAKE2B 1e085f9f1739e0640c5eafa70db4c7ec19bca887c682ca2312a457fa57ee3eb176d0c8f16c2f84a1a026669b1240be3ff69066bd825c92fad75dcd2c13739f6c SHA512 da3ba1f076c04746719698aedb3aad48eb7c8a09df95c314b36f7a052538a07d893be413f35f4c34b01c1bf967ebe35ff32c2cea0722fe74a6e089a9d6aa47a6 DIST patchbundle-selinux-base-policy-2.20231002-r1.tar.bz2 434734 BLAKE2B f2f28674ba93cd3a699cf0bc8fd06ab0500995f9518082cc76734c724b9ac82fcbcfa536f383a22b2fe72a9f781f202a78e630b7eb314880a98410badb32edd2 SHA512 30963590525842b7aaafc4bda99ae5297dc9706031431e69766dc90507357e4852ab0647893bfa27e6c6d82dd12f9af9a3fb5b790e2bd9b8311b8d91dafd083d +DIST patchbundle-selinux-base-policy-2.20231002-r2.tar.bz2 436443 BLAKE2B f481e661b4afadd15f786a5d69d975d79e5d9a378c7bca279282d59215a02897a9587cbd56f7a2d95fd8152f931c0a8d469927033910e8fe214ee4494f4e6e49 SHA512 8545592130d7d10f7d6411a356e79f9cb2689138a7eb69a5f7bcd630203019c61336f1e3bdbc95dea31efceb41c9bce2e7ff42ced6a51a9b7482e991864fec05 DIST refpolicy-2.20221101.tar.bz2 583183 BLAKE2B 783d8af40fd77d7ddb848dba32e91921dd7c1380c094c45b719ada7b15f91aacbb52b410ffa6341f2f705ecbc9674b8570bd4867ce998e944fa0054ffd8bdf74 SHA512 29e5a29d90f714018c88fead2d5006ea90338fb5b7a1e4e98cb2e588c96cd861871d32176f6cc6f7c4e864ce5acae1aeed85d4c706ce2da8168986535baaf3a6 DIST refpolicy-2.20231002.tar.bz2 600458 BLAKE2B 254d6d3d6b95f21e1f8e1df5822520ccaeade427053fb172079427cf70bd33f8ced87a9e09e1d36ec5f7b33f0bac8d730020d91996c6d25eafdcec66ebe35bb3 SHA512 029cd2225ce57d96f681720f24828e962320af41832ad2dc95d4d41d00dbde20bb08d91fa8b964b592812a9fedd908c261734b77ad72cccfde2de541b9c2c74d diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20231002-r2.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20231002-r2.ebuild new file mode 100644 index 0000000000..f0d92c5f4a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-unconfined/selinux-unconfined-2.20231002-r2.ebuild @@ -0,0 +1,15 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +IUSE="" +MODS="unconfined" + +inherit selinux-policy-2 + +DESCRIPTION="SELinux policy for unconfined" + +if [[ ${PV} != 9999* ]] ; then + KEYWORDS="~amd64 ~arm ~arm64 ~mips ~x86" +fi diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9.4.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9.4.ebuild index 65deec47eb..13cd9c7080 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9.4.ebuild @@ -33,7 +33,7 @@ else verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig ) " - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux" + KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux" fi SRC_URI+=" !vanilla? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${MY_PATCH}.tar.xz )" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/ethtool-6.5.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/ethtool-6.5.ebuild index a7eff7664c..e3678dd174 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/ethtool-6.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/ethtool/ethtool-6.5.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 ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~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/file/file-5.45-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.45-r3.ebuild similarity index 98% rename from sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.45-r1.ebuild rename to sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.45-r3.ebuild index 84d29bfbdf..6626b607e4 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.45-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.45-r3.ebuild @@ -60,7 +60,7 @@ QA_CONFIG_IMPL_DECL_SKIP=( makedev ) PATCHES=( "${FILESDIR}/file-5.43-seccomp-fstatat64-musl.patch" #789336, not upstream yet - "${FILESDIR}/file-5.43-portage-sandbox.patch" #889046 + "${FILESDIR}/file-5.45-seccomp-sandbox.patch" "${FILESDIR}/${P}-32-bit-time_t.patch" "${FILESDIR}/${P}-32-bit-time_t-deux.patch" "${FILESDIR}/${P}-weak-magic-shell.patch" #908401 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/file/files/file-5.45-seccomp-sandbox.patch b/sdk_container/src/third_party/portage-stable/sys-apps/file/files/file-5.45-seccomp-sandbox.patch new file mode 100644 index 0000000000..d5f499d395 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/file/files/file-5.45-seccomp-sandbox.patch @@ -0,0 +1,56 @@ +From b05f904dc5df267f90c6489817a379cb7f7f62ee Mon Sep 17 00:00:00 2001 +From: Mike Gilbert +Date: Thu, 19 Oct 2023 13:58:20 -0400 +Subject: [PATCH] seccomp: allow syscalls used by Gentoo's LD_PRELOAD sandbox + +Bug: https://bugs.gentoo.org/728978 +Bug: https://bugs.gentoo.org/889046 +Bug: https://bugs.gentoo.org/915890 +--- + src/seccomp.c | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +diff --git a/src/seccomp.c b/src/seccomp.c +index 87d4c49e..f1804660 100644 +--- a/src/seccomp.c ++++ b/src/seccomp.c +@@ -174,6 +174,9 @@ enable_sandbox_full(void) + ALLOW_RULE(exit_group); + #ifdef __NR_faccessat + ALLOW_RULE(faccessat); ++#endif ++#ifdef __NR_faccessat2 ++ ALLOW_RULE(faccessat2); + #endif + ALLOW_RULE(fcntl); + ALLOW_RULE(fcntl64); +@@ -185,9 +188,26 @@ enable_sandbox_full(void) + ALLOW_RULE(fstatat64); + #endif + ALLOW_RULE(futex); ++ ALLOW_RULE(getcwd); + ALLOW_RULE(getdents); + #ifdef __NR_getdents64 + ALLOW_RULE(getdents64); ++#endif ++ ALLOW_RULE(getegid); ++#ifdef __NR_getegid32 ++ ALLOW_RULE(getegid32); ++#endif ++ ALLOW_RULE(geteuid); ++#ifdef __NR_geteuid32 ++ ALLOW_RULE(geteuid32); ++#endif ++ ALLOW_RULE(getgid); ++#ifdef __NR_getgid32 ++ ALLOW_RULE(getgid32); ++#endif ++ ALLOW_RULE(getuid); ++#ifdef __NR_getuid32 ++ ALLOW_RULE(getuid32); + #endif + #ifdef FIONREAD + // called in src/compress.c under sread +-- +2.42.0 + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.374.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.374.ebuild index afddd20d2f..b5d599c17b 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.374.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.374.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://github.com/vcrhonek/hwdata/archive/refs/tags/v${PV}.tar.gz -> $ LICENSE="GPL-2+" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux" RESTRICT="test" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.5.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.5.0.ebuild index 92b9a7188d..463a171c26 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.5.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.5.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 ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc x86" fi DESCRIPTION="kernel routing and traffic control utilities" @@ -61,12 +61,12 @@ src_prepare() { local versionfile="include/version.h" if [[ ${PV} != 9999 ]] && ! grep -Fq "${PV}" ${versionfile} ; then einfo "Fixing version string" - sed "s@\"[[:digit:]\.]\+\"@\"${PV}\"@" \ - -i ${versionfile} || die + sed -i "s@\"[[:digit:]\.]\+\"@\"${PV}\"@" \ + ${versionfile} || die fi # echo -n is not POSIX compliant - sed 's@echo -n@printf@' -i configure || die + sed -i 's@echo -n@printf@' configure || die sed -i \ -e '/^CC :\?=/d' \ 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 bea896890a..a129b71c24 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 @@ -4,3 +4,4 @@ DIST portage-3.0.49.tar.bz2 1152449 BLAKE2B a47f951a35828ba9c8fc88c2eab5222c98ed DIST portage-3.0.50.tar.bz2 1153508 BLAKE2B b90d93f8922acdb5486a52c1354c6c9829fac608971078a641b604b57240065eec4e82cc9cb2fb8b4ba485a7f2d52473c0a90295b29eb578638ad11cd3cf2943 SHA512 355841af862077f9203d6f8cbe904f4966516597444f38ef535fc06d0fe5c21d9c1da139a44407fdd69b56eb9c49c286187d856ef4e9b9bc6b21bab5b772a88f DIST portage-3.0.51.tar.bz2 1155503 BLAKE2B 1095ab616993951da8f4d43cef4cf815672c67cb48ea2fe5aeb6b7c629058bfab1557d2b9508f2e3e9f38676733b5d60ec6a3686bc57840065c428508769cb1c SHA512 bf237819173bed9df3b63ada067a2a99700618d88fd4b528146c56bdd592f2452003db6cc6da4a445b647eb4d8bb591260ea0d2a5627ad540526a2e802025836 DIST portage-3.0.52.tar.bz2 1157447 BLAKE2B 61e4d32f9713b9b0a2df6ca636b2d756dacdb93f862eeab8a8b46d436b9c90d3d5d04989023dc5580ce0c4a6827fa623e5b32ce3d5094ff56ccde7a53c1af81c SHA512 1a249b140cc24b6d83314ad0b3f4ca73fcff3df01f1207c2fe661b16e78ab1155bb6dca4fb89100910fce13bf0fc21636232f9560360cf12f2c43b803d2a0429 +DIST portage-3.0.53.tar.bz2 1162321 BLAKE2B 1c38bc97d9aca2ce4062ed0fc2ef9297911379a32f1ed32b4d5ced760970edbfb9579471efd69c0fc16e3227ef6444d60c2bb19be6d809eabe832250d340b4b5 SHA512 d747acc922da2d6f2dc10a8b5a6c7cf4b325ab903b3c5634d5aa1927bbfffa306076ad780a4634d7bcf6092b763b753b02c14f1a21197706559d370c6eee00a1 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.53.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.53.ebuild new file mode 100644 index 0000000000..5bf30b190b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.53.ebuild @@ -0,0 +1,238 @@ +# Copyright 1999-2023 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 ~ia64 ~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-util/meson-1.2.1-r1 + $(python_gen_cond_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ' python3_12) + test? ( + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-vcs/git + ) +" +DEPEND=" + ${PYTHON_DEPS} + >=app-arch/tar-1.27 + dev-lang/python-exec:2 + >=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 + ) +" +# 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.4 + !build? ( + >=app-admin/eselect-1.2 + app-portage/getuto + >=app-shells/bash-5.0:0 + >=sec-keys/openpgp-keys-gentoo-release-20230329 + >=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/smartmontools/smartmontools-7.4.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/smartmontools/smartmontools-7.4.ebuild index deaefc5a34..3791510f37 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/smartmontools/smartmontools-7.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/smartmontools/smartmontools-7.4.ebuild @@ -10,7 +10,7 @@ if [[ ${PV} == 9999 ]] ; then inherit autotools subversion else SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" + KEYWORDS="~alpha amd64 ~arm ~arm64 hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" fi DESCRIPTION="Tools to monitor storage systems to provide advanced warning of disk degradation" 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 90c37ffab3..3cbdff80cd 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,5 +1,4 @@ DIST texinfo-6.8.tar.xz 4961528 BLAKE2B 0256dac5ba9c7f171c970644907b763f7a88fd9995111244df0458591aed1a0fe94c76045dde69f9138d65d6f780aae6869bbbc013f58e04ae7c62456b222bbb SHA512 0ff9290b14e4d83e32b889cfa24e6d065f98b2a764daf6b92c6c895fddbb35258398da6257c113220d5a4d886f7b54b09c4b117ca5eacfee6797f9bffde0f909 DIST texinfo-7.0.2.tar.xz 4875424 BLAKE2B 23737cc800392c949add14c1d0a01a294e8c224d958c03325c96d6540dcfae49db5c2d4a8c29310c0603f8ac8477f6ee00a14db4aa6caab317b19e776139e617 SHA512 26dd5bb1392f2197ecde296ba157d4533f4b11fadf1238481da4cf2b3796c665ce96049df8d2f9a6d4fa22b7e9013d9978d195e525288663f0a54482bbc22b2b DIST texinfo-7.0.3.tar.xz 4886668 BLAKE2B 38710faba2f717f7990228d58924901ea7d7378cc02e2059a437b5127f9e2dc67f732584e3f45fc34e8ef6d7671a546fe66871dadbd29e772f3417768622a650 SHA512 7d14f7458f2b7d0ee0b740e00a5fc2a9d61d33811aa5905d649875ec518dcb4f01be46fb0c46748f7dfe36950597a852f1473ab0648d5add225bc8f35528a8ff -DIST texinfo-7.0.93.tar.xz 5533720 BLAKE2B 384539c5b0d05a1b25634d0ab9836f9a2b3eb0bb046d2fc3ada5ed1c9428fbd4f129537f2c027a4087129fdd7cffeff277c52415a5fd86d5d5f945e5ae945fa8 SHA512 d491689e297fd2dfdeca2068d01350d7478d97ebbaeef2c702d673a01d55ca87e3e7a9c5c93a4e51b3a124bb432cde61189442329b66eb0fdcfabb27ebfdef4c -DIST texinfo-7.0.94.tar.xz 5535352 BLAKE2B d16598e1f8b1f12fa730fdd291c8afdc84c7753dd270c478d4fda4c19de81c8e18f4abb4940c8561443df2cf3e89b5c04951f46b310d5ecdbcca02293563f0c2 SHA512 e7330a82695f9a03a639236afbab9e6121ea2f8baa3dc230d09f93537ebcfd428dc566aa4954c33e16abe4eec40be77769ada9d4673408727d199b4a91adbfe1 +DIST texinfo-7.1.tar.xz 5545720 BLAKE2B 4385ca6250daeaa4f6bfedd9ab41f25993613031bcb8da55360365701213f4f3cf786d958749c59dc1c9dda328eca42f028aa051a7062313142aa92f55a96ecd SHA512 ceab03e8422d800b08c7b44e8263b0a1f35bb7758d83a81136df6f3304a14daecda98a12a282afb85406d2ca2f665b2295e10b6f4064156ea1285d80d5d355db diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.0.94.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.0.94.ebuild deleted file mode 100644 index 7c36a92718..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.0.94.ebuild +++ /dev/null @@ -1,92 +0,0 @@ -# Copyright 1999-2023 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. - -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=" - >=sys-devel/autoconf-2.62 - >=sys-devel/automake-1.16 - sys-devel/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 ~ia64 ~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=" - !=app-text/tetex-2* - >=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/texinfo/texinfo-7.0.93.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.1.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.0.93.ebuild rename to sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.1.ebuild diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-9999.ebuild index 6f76f5ea1a..7c36a92718 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-9999.ebuild @@ -38,8 +38,12 @@ 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:= ) + !standalone? ( + >=dev-lang/perl-5.8.1:= + dev-libs/libunistring:= + ) nls? ( virtual/libintl ) " DEPEND="${RDEPEND}" @@ -72,6 +76,12 @@ src_configure() { 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) 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 505d570c58..fbbd91e676 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 +1,2 @@ DIST usbutils-015.tar.xz 167472 BLAKE2B 1074c7159e9e6729f03f98e1f38fa0b3fef3e744b5297e6d97a5fc44ea374e2d5a0c481e14b2a034bca201048b1305c3877dbb15e3c4c04b228b4036048d8904 SHA512 cda0070138400703d7429d39dee49130aedaa704292531e6af57b347cc62422ca609540650926e74335f71d67d7d4655418be4824e1eb8a2b065c7b395feaa87 +DIST usbutils-016.tar.xz 169000 BLAKE2B 2f3af61e5a7abf48cdf0a4aebc901ca1570007b54d11ae74572e16bdeb2d8e73844d76af54bd812d6d4b84ddaf6e956132ecc9a8a2849a7bffc0643e29115a49 SHA512 4483038bf91c056cd2977f5e7f449c0a62d9152d6f5d64ab7bde438ab9c1c56fe524ba10b35781c2828edd0fe89379dbaed78fa7ffe78903cae0c4e3c460f9a0 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/usbutils-016.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/usbutils-016.ebuild new file mode 100644 index 0000000000..aff7039962 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/usbutils-016.ebuild @@ -0,0 +1,66 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..11} ) +inherit 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 ~ia64 ~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.in +} + +src_configure() { + local myeconfargs=( + --cache-file="${S}"/config.cache + --datarootdir="${EPREFIX}/usr/share" + --datadir="${EPREFIX}/usr/share/hwdata" + ) + econf "${myeconfargs[@]}" +} + +src_install() { + default + + newdoc usbhid-dump/NEWS NEWS.usbhid-dump + dobin usbreset # noinst_PROGRAMS, but installed by other distros + + if ! use python ; then + rm -f "${ED}"/usr/bin/lsusb.py || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-block/parted/files/parted-3.6-underlinked-util-linux.patch b/sdk_container/src/third_party/portage-stable/sys-block/parted/files/parted-3.6-underlinked-util-linux.patch new file mode 100644 index 0000000000..6e02f4aac8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-block/parted/files/parted-3.6-underlinked-util-linux.patch @@ -0,0 +1,26 @@ +https://bugs.gentoo.org/910487 +https://git.savannah.gnu.org/cgit/parted.git/commit/?id=d22c2d01f62139e0d386d90584cac0705857a571 + +From d22c2d01f62139e0d386d90584cac0705857a571 Mon Sep 17 00:00:00 2001 +From: Yegor Yefremov +Date: Thu, 11 May 2023 10:03:59 +0200 +Subject: parted: link to libuuid + +parted.c uses libuuid since 61b3a9733c0e0a79ccc43096642d378c8706add6. +Hence, add UUID_LIBS to PARTED_LIBS to avoid +"DSO missing from command line" error. + +Signed-off-by: Brian C. Lane +--- a/configure.ac ++++ b/configure.ac +@@ -298,6 +298,8 @@ Note: originally, libuuid was part of the e2fsprogs package. Later, it + moved to util-linux-ng-2.16, and that package is now the preferred source.])]) + AC_SUBST([UUID_LIBS]) + ++PARTED_LIBS="$PARTED_LIBS $UUID_LIBS" ++ + dnl Check for libdevmapper + DM_LIBS= + if test $ENABLE_DEVICE_MAPPER = yes; then +-- +cgit v1.1 diff --git a/sdk_container/src/third_party/portage-stable/sys-block/parted/parted-3.6-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-block/parted/parted-3.6-r1.ebuild new file mode 100644 index 0000000000..63d57a749b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-block/parted/parted-3.6-r1.ebuild @@ -0,0 +1,82 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/bcl.asc + +inherit autotools verify-sig + +DESCRIPTION="Create, destroy, resize, check, copy partitions and file systems" +HOMEPAGE="https://www.gnu.org/software/parted/" +SRC_URI=" + mirror://gnu/${PN}/${P}.tar.xz + verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig ) +" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="+debug device-mapper nls readline" + +# util-linux for libuuid +RDEPEND=" + >=sys-fs/e2fsprogs-1.27 + sys-apps/util-linux + device-mapper? ( >=sys-fs/lvm2-2.02.45 ) + readline? ( + >=sys-libs/ncurses-5.7-r7:0= + >=sys-libs/readline-5.2:0= + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + nls? ( >=sys-devel/gettext-0.12.1-r2 ) + verify-sig? ( >=sec-keys/openpgp-keys-bcl-20230315 ) + virtual/pkgconfig +" + +DOCS=( + AUTHORS BUGS ChangeLog NEWS README THANKS TODO doc/{API,FAT,USER.jp} +) + +PATCHES=( + "${FILESDIR}"/${PN}-3.2-po4a-mandir.patch + "${FILESDIR}"/${PN}-3.3-atari.patch + # https://lists.gnu.org/archive/html/bug-parted/2022-02/msg00000.html + "${FILESDIR}"/${PN}-3.4-posix-printf.patch + # https://debbugs.gnu.org/61129 + "${FILESDIR}"/${PN}-3.6-tests-unicode.patch + # https://debbugs.gnu.org/61128 + "${FILESDIR}"/${PN}-3.6-tests-non-bash.patch + # bug #910487 + "${FILESDIR}"/${P}-underlinked-util-linux.patch +) + +# false positive +QA_CONFIG_IMPL_DECL_SKIP="MIN" + +src_prepare() { + default + eautoreconf + + touch doc/pt_BR/Makefile.in || die +} + +src_configure() { + local myconf=( + $(use_enable debug) + $(use_enable device-mapper) + $(use_enable nls) + $(use_with readline) + --disable-rpath + --disable-static + ) + econf "${myconf[@]}" +} + +src_install() { + default + + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.6.ebuild b/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.6.ebuild index 698928f72f..8a689cb4e6 100644 --- a/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-block/thin-provisioning-tools/thin-provisioning-tools-1.0.6.ebuild @@ -146,7 +146,7 @@ else https://github.com/jthornber/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz ${CARGO_CRATE_URIS} " - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux" + KEYWORDS="~amd64 ~arm arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux" fi LICENSE="Apache-2.0 BSD GPL-3 MIT Unicode-DFS-2016" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/automake/automake-1.11.6-r4.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/automake/automake-1.11.6-r4.ebuild index e8c72f202f..e8d4e6b93e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/automake/automake-1.11.6-r4.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/automake/automake-1.11.6-r4.ebuild @@ -30,9 +30,9 @@ BDEPEND=" " PATCHES=( - "${FILESDIR}"/${PN}-1.10-perl-5.16.patch #424453 - "${FILESDIR}"/${PN}-1.11-install-sh-avoid-low-risk-race-in-tmp.patch - "${FILESDIR}"/${PN}-1.13-perl-escape-curly-bracket-r1.patch + "${FILESDIR}"/${P}-perl-5.16.patch #424453 + "${FILESDIR}"/${P}-install-sh-avoid-low-risk-race-in-tmp.patch + "${FILESDIR}"/${P}-perl-escape-curly-bracket-r1.patch ) src_prepare() { diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/automake/automake-1.16.5-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/automake/automake-1.16.5-r1.ebuild index 934356a4ba..029332afd7 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/automake/automake-1.16.5-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/automake/automake-1.16.5-r1.ebuild @@ -15,7 +15,7 @@ else MY_P="${P}" SRC_URI="mirror://gnu/${PN}/${P}.tar.xz https://alpha.gnu.org/pub/gnu/${PN}/${MY_P}.tar.xz" - KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" else MY_PV="$(ver_cut 1).$(($(ver_cut 2)-1))b" MY_P="${PN}-${MY_PV}" @@ -53,9 +53,11 @@ BDEPEND=" " PATCHES=( - "${FILESDIR}"/automake-1.16.2-py3-compile.patch - "${FILESDIR}"/automake-1.16.2-fix-instmany-python.sh-test.patch - "${FILESDIR}"/automake-1.16.2-fix-py-compile-basedir.sh-test.patch + "${FILESDIR}"/${PN}-1.16.5-py3-compile.patch + "${FILESDIR}"/${PN}-1.16.5-fix-instmany-python.sh-test.patch + "${FILESDIR}"/${PN}-1.16.5-fix-py-compile-basedir.sh-test.patch + # upstreamed + "${FILESDIR}"/${PN}-1.16.5-apostrophe-in-tests.patch ) pkg_setup() { diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/automake/automake-1.16.5.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/automake/automake-1.16.5.ebuild deleted file mode 100644 index 5cf47a1e63..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/automake/automake-1.16.5.ebuild +++ /dev/null @@ -1,138 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{10..11} ) - -inherit python-any-r1 - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://git.savannah.gnu.org/r/${PN}.git" - inherit git-r3 -else - if [[ ${PV/_beta} == ${PV} ]]; then - MY_P="${P}" - SRC_URI="mirror://gnu/${PN}/${P}.tar.xz - https://alpha.gnu.org/pub/gnu/${PN}/${MY_P}.tar.xz" - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" - else - MY_PV="$(ver_cut 1).$(($(ver_cut 2)-1))b" - MY_P="${PN}-${MY_PV}" - - # Alpha/beta releases are not distributed on the usual mirrors. - SRC_URI="https://alpha.gnu.org/pub/gnu/${PN}/${MY_P}.tar.xz" - fi - - S="${WORKDIR}/${MY_P}" -fi - -DESCRIPTION="Used to generate Makefile.in from Makefile.am" -HOMEPAGE="https://www.gnu.org/software/automake/" - -LICENSE="GPL-2" -# Use Gentoo versioning for slotting. -SLOT="${PV:0:4}" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND=" - >=dev-lang/perl-5.6 - >=sys-devel/automake-wrapper-11 - >=sys-devel/autoconf-2.69:* - sys-devel/gnuconfig -" -DEPEND="${RDEPEND}" -BDEPEND=" - app-alternatives/gzip - sys-apps/help2man - test? ( - ${PYTHON_DEPS} - dev-util/dejagnu - ) -" - -PATCHES=( - "${FILESDIR}"/automake-1.16.2-py3-compile.patch - "${FILESDIR}"/automake-1.16.2-fix-instmany-python.sh-test.patch - "${FILESDIR}"/automake-1.16.2-fix-py-compile-basedir.sh-test.patch -) - -pkg_setup() { - # Avoid python-any-r1_pkg_setup - : -} - -src_prepare() { - default - - export WANT_AUTOCONF=2.5 - # Don't try wrapping the autotools - this thing runs as it tends - # to be a bit esoteric, and the script does `set -e` itself. - ./bootstrap || die - sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die - - # bug #628912 - if ! has_version -b sys-apps/texinfo ; then - touch doc/{stamp-vti,version.texi,automake.info} || die - fi -} - -src_configure() { - use test && python_setup - default -} - -# Slot the info pages. Do this w/out munging the source so we don't have -# to depend on texinfo to regen things. bug #464146 (among others) -slot_info_pages() { - pushd "${ED}"/usr/share/info >/dev/null || die - rm -f dir - - # Rewrite all the references to other pages. - # before: * aclocal-invocation: (automake)aclocal Invocation. Generating aclocal.m4. - # after: * aclocal-invocation v1.13: (automake-1.13)aclocal Invocation. Generating aclocal.m4. - local p pages=( *.info ) args=() - for p in "${pages[@]/%.info}" ; do - args+=( - -e "/START-INFO-DIR-ENTRY/,/END-INFO-DIR-ENTRY/s|: (${p})| v${SLOT}&|" - -e "s:(${p}):(${p}-${SLOT}):g" - ) - done - sed -i "${args[@]}" * || die - - # Rewrite all the file references, and rename them in the process. - local f d - for f in * ; do - d=${f/.info/-${SLOT}.info} - mv "${f}" "${d}" || die - sed -i -e "s:${f}:${d}:g" * || die - done - - popd >/dev/null || die -} - -src_install() { - default - - slot_info_pages - rm "${ED}"/usr/share/aclocal/README || die - rmdir "${ED}"/usr/share/aclocal || die - rm \ - "${ED}"/usr/bin/{aclocal,automake} \ - "${ED}"/usr/share/man/man1/{aclocal,automake}.1 || die - - # remove all config.guess and config.sub files replacing them - # w/a symlink to a specific gnuconfig version - local x - for x in guess sub ; do - dosym ../gnuconfig/config.${x} \ - /usr/share/${PN}-${SLOT}/config.${x} - done - - # Avoid QA message about pre-compressed file in docs - local tarfile="${ED}/usr/share/doc/${PF}/amhello-1.0.tar.gz" - if [[ -f "${tarfile}" ]] ; then - gunzip "${tarfile}" || die - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.11-install-sh-avoid-low-risk-race-in-tmp.patch b/sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.11.6-install-sh-avoid-low-risk-race-in-tmp.patch similarity index 100% rename from sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.11-install-sh-avoid-low-risk-race-in-tmp.patch rename to sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.11.6-install-sh-avoid-low-risk-race-in-tmp.patch diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.10-perl-5.16.patch b/sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.11.6-perl-5.16.patch similarity index 100% rename from sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.10-perl-5.16.patch rename to sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.11.6-perl-5.16.patch diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.13-perl-escape-curly-bracket-r1.patch b/sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.11.6-perl-escape-curly-bracket-r1.patch similarity index 100% rename from sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.13-perl-escape-curly-bracket-r1.patch rename to sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.11.6-perl-escape-curly-bracket-r1.patch diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.16.5-apostrophe-in-tests.patch b/sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.16.5-apostrophe-in-tests.patch new file mode 100644 index 0000000000..866284dfd1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.16.5-apostrophe-in-tests.patch @@ -0,0 +1,51 @@ +From ed1368e8803e8934a8bbab52a38753484dba2a37 Mon Sep 17 00:00:00 2001 +From: Karl Berry +Date: Mon, 12 Dec 2022 14:50:33 -0800 +Subject: test: avoid apostrophe in test document. + +From automake patch https://bugs.gnu.org/59989 +(though a different solution), suggestion by Frederic Berat. + +* t/txinfo-include.sh: avoid apostrophes in test document, +since Texinfo 7.0 turns them into UTF-8 by default. +--- + t/txinfo-include.sh | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/t/txinfo-include.sh b/t/txinfo-include.sh +index 8a15f01..10fff07 100644 +--- a/t/txinfo-include.sh ++++ b/t/txinfo-include.sh +@@ -28,6 +28,9 @@ main_TEXINFOS = one.texi two.texi three.texi + sub_more_TEXINFOS = sub/desc.texi sub/hist.texi + END + ++# We avoid apostrophes in the test document since Texinfo ++# turns them into UTF-8, which is not easy to grep. ++# + cat > main.texi << 'END' + \input texinfo + @setfilename main.info +@@ -61,8 +64,8 @@ END + + cat > three.texi << 'END' + @node three +-@chapter Chapter two +-GNU's Not Unix. ++@chapter Chapter three ++Quux quux quux. + END + + mkdir sub +@@ -106,7 +109,7 @@ check_info_contents () + srcdir=${1-.} + $FGREP "Foo bar, baz." $srcdir/main.info + $FGREP "Blah Blah Blah." $srcdir/main.info +- $FGREP "GNU's Not Unix." $srcdir/main.info ++ $FGREP "Quux quux quux." $srcdir/main.info + $FGREP 'It does something, really.' $srcdir/sub/more.info + $FGREP 'It was written somehow.' $srcdir/sub/more.info + } +-- +cgit v1.1 + diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.16.2-fix-instmany-python.sh-test.patch b/sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.16.5-fix-instmany-python.sh-test.patch similarity index 100% rename from sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.16.2-fix-instmany-python.sh-test.patch rename to sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.16.5-fix-instmany-python.sh-test.patch diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.16.2-fix-py-compile-basedir.sh-test.patch b/sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.16.5-fix-py-compile-basedir.sh-test.patch similarity index 100% rename from sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.16.2-fix-py-compile-basedir.sh-test.patch rename to sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.16.5-fix-py-compile-basedir.sh-test.patch diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.16.2-py3-compile.patch b/sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.16.5-py3-compile.patch similarity index 98% rename from sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.16.2-py3-compile.patch rename to sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.16.5-py3-compile.patch index 7924f204ad..5333520b5d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.16.2-py3-compile.patch +++ b/sdk_container/src/third_party/portage-stable/sys-devel/automake/files/automake-1.16.5-py3-compile.patch @@ -68,6 +68,6 @@ index e56d98d6e..5b9ae5d5d 100755 + py_compile.compile(filepath, $import_call(filepath), path) else: py_compile.compile(filepath, filepath + 'o', path) - sys.stdout.write('\n')" 2>/dev/null || : + sys.stdout.write('\n')" 2>/dev/null || exit $? -- 2.25.2 diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/automake/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-devel/automake/metadata.xml index f671901dcb..6e5b45d8c0 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/automake/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-devel/automake/metadata.xml @@ -1,11 +1,12 @@ - - base-system@gentoo.org - Gentoo Base System - - - cpe:/a:gnu:automake - + + base-system@gentoo.org + Gentoo Base System + + + + cpe:/a:gnu:automake + 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 324e8eee72..9095121b6c 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,37 +5,30 @@ DIST gcc-10.5.0.tar.xz 77846412 BLAKE2B 9b71761f4015649514677784443886e59733ac38 DIST gcc-11-20230427.tar.xz 76165128 BLAKE2B dd896b418c1fce35a61005d5b5c90cfd1246d37d23c2a8fc08bacd7d7ca84c353f3ccf5de2370ae5e5ca95c7ae3deab3565b3f65eb78b611dbe5ad4a256516f0 SHA512 fada917a832be5d2e15ee32f24e19fc87b851dc8e6fc75d1be6d25d3510dba408ae3ef3b245ff239c51aa3d243c95f12269695611e5c8965ba55f5aa4730778d DIST gcc-11-20230622.tar.xz 76199316 BLAKE2B a769dc6be63eabca3bc33944b471d727bf230e506773c85977156b187f12664f2cd3e0992a1faefda8ec88ff85d1a8d12795121baadc7e8b9653d69a8025e46e SHA512 8dbc5a4b54f2bc52458914705af40a00b33e46061dd5b335b4b4a6e96d17206fe480d3fec564dd11ebcca6168f054984d706b1b26b7e694e8b327692a13ae7d1 DIST gcc-11-20230824.tar.xz 76202120 BLAKE2B 243ce16e28c66d681bb27df32866947309f8fa386e258896651b6853e390da79304250669096fd55cafe0a9d5adf4b3a3cf5989302f4ad13660ece80639b545a SHA512 a9cab8bf61f2a572baba73a2a11271eeb61d43f07411df376a8568820c1373f64f635d747933fda1e942ae717b0ae9f1c810f662fc09ccb075940248bc48b582 -DIST gcc-11-20230921.tar.xz 76227940 BLAKE2B b086b35bc7192be078d08f6c9363a9b343f8d97a1bc781870796cf564b829febeccb5f94739fb14a88357f7f66530ff3c23f298eed9341ffb6927a5ac4a40546 SHA512 20fd7e680303a8328e9c017ab21dc3cab46fe5684a08bfc48a342ec4e95cc94675db2e450483499f126b2d5943e3ef8115287a5b4da8718b966c0ffe9f79b925 -DIST gcc-11-20230928.tar.xz 76217292 BLAKE2B d0c58f0e8e15a4efaa3faba9b83efdac9b96749836f776f2ef438cd0bcf74601e5d24b2c45e7edfb2cc44e5aee32c5a2b23c8efcb370e4cf902c98d930664157 SHA512 ddbc362d8b3177432886861da89e68b187deeaae7d40aa03881f8135931475ba688688fd3217d95dfb9d01d62a634808a04ab0a4c37f12332155bdabce459115 -DIST gcc-11-20231005.tar.xz 76222664 BLAKE2B f5671cdb01df00bd917f59ad33ac91a4904514ed25b9879e6c10cad15a86666709dd7ff9425ba99de45b811e3a1afde977a5683b6e9c8de91da8080f37dc9cce SHA512 4f0f0543655f398ea32c08f2b18be2430652ef3537b1d46ecbb9e522a7701bea2ffe04ed6fe6a179596a5f8da02fbd5fdc4758c6b9e8e2e9d9f0805383c4fc1e DIST gcc-11-20231012.tar.xz 76228876 BLAKE2B f48d440cefdad9eb021116b72ba41a7cb8b3af904abafb26bd49113f3bdaacbeab86f3d7a783130ea1a1f8c6556d1dc83b8176ae96973c524dc8606443e0be0a SHA512 7cae1a36a113e0184b1c10c7892a808a6ec38ecd4b1c482d589717c68474873093eebd68465694344ee1208d0e118f5d91b3a19f981da22dfa95ee86663572bb +DIST gcc-11-20231019.tar.xz 76228604 BLAKE2B cc1278eb4beb598d81b1629fe72095487709f9e1a7229dba0512ba8273767b05e79c7c02104a1aa28b699d42ef0f10f7b960f1a37693c1508df9846edfe80b82 SHA512 f98ce83e0d75fe4459e1852d900924e8e3c31853ba54e38e46f040f4d109726b6c171bbb51e9230c459d617c3c8ac37708ef65997d6797a1686b60cdca3107a0 DIST gcc-11.4.0-musl-patches-2.tar.xz 4308 BLAKE2B a2335e155fc57816fed822a648e0eaefafcba9d04e1ad0fd7baeea5a694ab6f5e3c1678cb406f2a1bd17bab25cb01699d032713a1ccf337948dfda2093844607 SHA512 17b84f907cb1bd763873655e6f35fd3ed55a40b602b70a626f04f83b4cc89c6261db1661de78d4d969187a8c56e9f6305b742515a3836b962248a21df0df5d0c DIST gcc-11.4.0-patches-10.tar.xz 13852 BLAKE2B 54937d13e30e2a5303c7e197fae09eeed35ca0b9783625e02578fcee829b5503fb22d664366322b304df7d01ae807d00af7c93db3e3ceebe4851e15647724f87 SHA512 31b4d7a2e7cc589e92e12c3583d13d41c523cafbd309bc0532df9b68ea2473c89daef4c0edd3ce2917b5823d81a7792f145b9449f16277d0d64c22ceff50bbb9 DIST gcc-11.4.0-patches-9.tar.xz 14704 BLAKE2B 9aa2ecbac493d3040694e9930738e57d59a764b90ab92b91709c319b883f28ad108767e5d11e8b62af40bf1e583d5ff83a03e8c895f904bc6f41315ce9ab4f0a SHA512 ac8b7c6c382ffacc4e9d08299440fc237fa366ec36fb8eb7a8d426b64a4186384a262e6380dc83ed7f7240125ce26a8435c8a4e0e13976ef2652067a7129bd17 DIST gcc-12-20230526.tar.xz 79780444 BLAKE2B 6f6eca272ab506e16a231003c399e28572595c82fbaaec9deb14b78ff9fc493fb24afe1c375d4f2fd75e9813805934857ef2ceb6c05b7977dbfe2e50abdc3ec9 SHA512 fb190ce5bf3d38a1899016475c1551550d44c6f71f1f1a71ced545cbb2aff0446bd2765230b0920379579a13103a507ffc1e197ac69afb0a4f08efe11b50918d DIST gcc-12-20230825.tar.xz 79804260 BLAKE2B 4d3eb40eb5954d497b3e9586dad0d18c9e561d3fdd0bdccc5c9572edfbe024a235e30371a10116d98c77f0b6042739600c57ac99253d34f0fbb8b8465b187e1f SHA512 a6cd868f474c356886460b95263807828f9a379ce97524611ec504d6a9149ca1f92585128e6ffd03fa2647442e72fde6ebe987fd49f2fc49d8df39ab056905c5 -DIST gcc-12-20230922.tar.xz 79801244 BLAKE2B 9b7681a742ed7aa81f06f726d765d4b1259c199ec3fb5c3072b789491b99c966f1a5d90fbe357136b5f1dd8b046653c51653b8a7049ef0768049534b5364816a SHA512 41542d2ab1ebd3c5a342159bc58a2f891d89a6b87533a928193dd28dc8dc3e3b3e3e4e547be20c930f8e85014c76128cbedbe6f846524b67acd3af16e93c3189 -DIST gcc-12-20230929.tar.xz 79799412 BLAKE2B b4290ca0c9dd115e7e893c49ee205ab6c310f5c2b3087a6f619dca1838aef4c813fad349a0b618cbd8d107ae8d1a2307bc3499f32bf53c78d3dbda67a4991c99 SHA512 98bd7fe68d3ddd565c56182331129c5270e6a8b02bcb687e58af55e4a82644e6429e2ef7171216a19841fa8fc6fd605c0fabb38d7844daf278fc3bbb634cfc08 DIST gcc-12-20231006.tar.xz 79786912 BLAKE2B 09da5378d449b6d1d5d5af82bfa18b6d073a4f255afef5e19a086e72d41ba0a204705353a4ef7df8c89ace4de639573fe98ab37f90e0f0761743336fcfb023b2 SHA512 21975c70bc7958a44e4785881cc4c64bc842ec28e34a10880ef7369299af0bccdeb54ceb6e303ca031795a678e1649100a6924110268ba53147ae6e7da6acb91 DIST gcc-12-20231013.tar.xz 79793868 BLAKE2B 39844a7ff9b5bfd1201816b5758aa9937fb69f28f43a6c6f3aba1debbc24e0908b0af20fd1257cfbddf5bfd23c3d8ea264a1743822443f8ed12c03b874732e76 SHA512 52ec9815535634db0ea47521a416b2be4fc483b1b90e10cac5d6235e661a5c142d8d5c9f3d06cc856572fc38d3a9abe601b9c1fa918f115dc7d1dc81db9d9ceb +DIST gcc-12-20231020.tar.xz 79803424 BLAKE2B 2bbd11b84a203a305279587ba8e8771778b425f507b38e6c9dd649c9124e0c77fdf23451150d5e70495ba4a978c449f0b5cd7a5355f63ed1e322585532d6976a SHA512 af6af7b0c6dc95d624bec7f17a092baf2c7258e3b87c372023ae3d1e07b30c7c155f21e24d6ed8e8e55378b1658e18dcb9d2658ddb7f534921b5ac25dab957d0 DIST gcc-12.3.0-musl-patches-1.tar.xz 3572 BLAKE2B c7bf65f7c9ea8023ddaac821ee2b778622fa310ac72a72b2f7032494a8f304eac86217f9204622e6c21aaef9952bece0d09bc126facd4f42b602927909815ab5 SHA512 babc279fea2c1fd4c018815f2f5630214fd46015ce9f365c28af242681d51818eaca30ce298eddcab1eed5ac5f2759e2b47b2335afab9d722b4469a6d4fec326 DIST gcc-12.3.0-patches-2.tar.xz 14236 BLAKE2B 06c43662c9abb0fa3cf90d5e2273c69aecb9158e6cf6f23c04754ed5d686be2616e81e2502eb16f4298ddd50518ca7677e13249da9e9b091162d3931ff65e4fe SHA512 b0d4b85dbf1a54aaaa1997203b872e3106906b4ad49cde57e1428bc22b2f8e2d73b8cb10ae0d0b792aebaf664594da4d1dea04c44ddc34e59047410766db04d1 DIST gcc-13-20230826.tar.xz 84285788 BLAKE2B c25be594e322dd7145245c42ae21b98aa9e3e6ae69f1fa313830e40bf2e8fcb8435762f1c9d3f1ca1dbf31653bdc76a658bec708b7850fe40a7c55504ac30618 SHA512 3d47632e90651bd50a881c727c1ef2aa3322b4fc3e082919ae430270901abf8a05a34fe93f8b678c10dc9a0758f93dc3b33ed5947c8743dab453d2b50c063722 -DIST gcc-13-20230923.tar.xz 84304612 BLAKE2B 3820746f13c5b0dd741506c758ed8de4650fa5330b60802b627a7254f5b4b08da2493f12120aa24b712f98ae39fe2f188f05c79ad22ffdb3de67b2ebe49005aa SHA512 12c0aafb7e91a18224b9b94e7e7e34b57c2e447cc85f51c8ddab672fa3fe31c784d42c15a8a1eb0da8fc9cc321c24163b12fb4f71e7da91b0169a278f2b83713 -DIST gcc-13-20230930.tar.xz 84312516 BLAKE2B f2d44c7a5a9d1996cfb02c1b08e4a4758434d39dde204f3acd5917828130d234ea6af3ec594aaa9aa60cd7cd4ce09dcf873c69ee801bae0de2b3c719515235cd SHA512 ca1c59c53af51c3e46a340210516594184fdfcb97bbb693c59a675d54239d8386732537632e486ed7c6030dbf3d836d07917d6dc9808071a55b1f411e46d3d10 -DIST gcc-13-20231007.tar.xz 84313608 BLAKE2B 7c91f0e9329986df113c73f94325300918afcc58c5d2f2a8d4818d5f8c600c385160dd083f9a993138ede53f9e2163a84b8886e62cf6b83b03089c2c5c55f7b5 SHA512 5e3c7f4ec2b1d9f0f65097b0d992bf5acfafb2830b1394a832a4e95163a369b9beb42681cd0fd09aa25494d8b83bc377f1f03f0319dd785d4eea372b8477074b DIST gcc-13-20231014.tar.xz 84317080 BLAKE2B 18c2326f203951d16904e4f2bf7fa0cd55da0460b19a9c9ce45de94b41fa71f8c1b8eb9d08700de427b3e02c2e61d3cbcc85cb6f27236717dca8359bfaf4c534 SHA512 406673a62deba759fc0532a801b3f57cabf894ea328587b23e62a707ba5767b0e3ae9b3f86bf3c6fcf13e8a3c30bc470e6598b625c8231efb629034211c162c2 +DIST gcc-13-20231021.tar.xz 84324516 BLAKE2B 0b55e215eeb1240c9c03664e6e3b65b9321ad3ea6bfd81464a652bd58992bb5f80748ebdf0ea284feb4a50ced7ac4d19cb97f480ed5f98f753fbb93f831f799f SHA512 f713492b0a92d3cd61e0f4d1ed8cdd70e5be7fb77df1ade54e760e800f213a7e6004cc7bdb338dffbd0b768f4c39a88d6b45e86b957f3ff689f2abf5c39686b1 DIST gcc-13.2.0-musl-patches-2.tar.xz 5292 BLAKE2B c057d6574d03c05854edaa9f3fd40e9149662b04f3ac7a7db3eb078d73a7b535726d1bf52e5b12736dedb2f9898ad731f2e48a6421fcfbf7b90f929dee072fcb SHA512 a691da0c87c443a5e9d23731f4005f27871c5b12bc9102873ffa24d374aa7b9fbd187c4f5635d23fa9ffb17e351e76173c2d3fdf40646e355c4cb314b538de69 DIST gcc-13.2.0-patches-7.tar.xz 37064 BLAKE2B 4a8700a8d44bfaa84926f8bfd0da4c5b0c0377f47fc0679456e909f7c9029b9cf1b72c0ba0bc505d9035d5c38e27f7e5b029727eaf2bc7aca417a6be966b2f43 SHA512 f440c97e6782ecb8581d41608e31a648ac426e2d870bc1d171da7794cdeff2fd0546cae0c7214e72fd3a00ead8a5c66f3f633b670b74553a2f3a40378b51f20c -DIST gcc-13.2.0-patches-8.tar.xz 34872 BLAKE2B 58e8229384c7b1bfdf3b576c240599e4e9feece94dd39dfbe5e94f9978ca6f165edfa00579bbd2d5410c295d9114e3575a5efc78fa4f976b43bb8c3fb3bfb07f SHA512 bc5cfeef5e8053dbdb1e336f3374dbf37233e08b5f2a0635accf2ae746fa9658f2201971901c73f1332f2f36f21916709ff4ca1e3be7d1e05a0774fc6c7ecd4d -DIST gcc-14-20230917.tar.xz 85875468 BLAKE2B afd39683b7ae9e84c6fa81d6ba6059a1411463ab45fce81eccf34dfafb29ff633a287826063da547014c12b9e0244d2a022ddb1fef1c73edd882249c5be695e3 SHA512 a1f79805278e61c9feb4020c62e07c666fa724d872fc55dd0372a7d17cc2c2e2e8d2d149e748499e75331bcb28a6b1a6641c20111a6d8b871dddc1efe957608d -DIST gcc-14-20230924.tar.xz 85950048 BLAKE2B cc353b46f963eca7ad820fe35fb14ece3d76714466ee6ac227433fddc101e76c40d71ce4bc6363e2bc5c3fdf233ab7479bf18542be3df6e1f77690090d08d351 SHA512 19a93b35660f8960b5a9385b9312d9555d83bb8ca8662492b54ece3c1d634da0fd6614e677ce6f1738ac2eadc5dd18b2ce311d2adde6c41f34db8598373bd335 -DIST gcc-14-20231001.tar.xz 85968476 BLAKE2B 3a3749b1c5346472977e436d09aff6cf44e372b2a05a6227df34b054070de9a438ead20f4da114525bc3e9d7d13bc111fa292ffd03fefb4428a22d00884aaa5f SHA512 bc342152c7d70ddc4b6b3a7c8fb769aca971d0f8432eb842b53e9c7e3075f6f57295fbcfae14f288709fa846e58eabdb07e6e3185195f6d1820cee69e9a2a586 -DIST gcc-14-20231008.tar.xz 86002968 BLAKE2B 9b59a66e269b3a80f344e96619ed4fa99c5a1f03036b6fd577edac22cf8dfb2b4aa970bb30214dc4a32476c5b22970deea975f808e9a788e5cef8482d704f2c0 SHA512 6cc3030a16111eb57e02d40920e34b967ce1c006eae353f6d969722ce2c0cd3ed711036f826b61858e568a749f9c97ba9550283a5ba8a6c8d41a7024b475f32b +DIST gcc-13.2.0-patches-9.tar.xz 45724 BLAKE2B 5135f00ed2ac0db8b1e295f2ba9abb44fd4b5e26037083f012c5c104c301fd11c1b04179a7f777f1433d3e6e3e50e64d79a7f9ff263269cde52ded7ca5416448 SHA512 81158d7b260d2ca457553f2749333aea69b40b4896a156a2b81168124bf91469b8124c788e54b44cadc1215bbb69590d013385fbab2b4962ed5e36c697710165 DIST gcc-14-20231015.tar.xz 86138880 BLAKE2B e6dece3d6c4337c5ac85fec3fcd31117baf06a7c510440d2433d7750d4559ce5ccfb36edf1ed7dd003d55322dccf42ca811f16a9d22b19e3c784f48f804f688d SHA512 e0de6cd24278998138df8ac1e7e0ea2fe8f062f3bd4e1c88be5da3e468959dc3df41f076c1ce1ed6c919a4ddbd6cfff638cd101e6bd6a3a9ae0d67ded360a700 +DIST gcc-14-20231022.tar.xz 86217644 BLAKE2B e3248d78323370e3afa3082e89e507860d45d4eaebdf479edebca71deab1a85a6b27845057090fb155e5e53e5d3eb24647e2482ebf1f63645a73ad3561b26b94 SHA512 bbe013c7d226c64e4b4f95c12464f48177c8dd7acfdd1f6f8f2f650c48a4e11e70b724728accff9f135fc6d234fb7dc01ca20a414468ccf43c2b81d0ddc73e1f DIST gcc-14.0.0-musl-patches-1.tar.xz 3576 BLAKE2B 692baee8a7709905d53aeb150d73a3721c4ba47ee5f397cfb1b5be905cf003ca02b60c94ee294d90ac39645cd5cdf186c7a3aa950c47d8cf680c128ed705b807 SHA512 0592ab98a7142e404623a6511c67dff61e9ade32c3fb2c0e75b456306e0af3799ad13252b50b3d2fdd31e5815d7f0b16b0ad63ab8386fe4d78729fc9c182d617 -DIST gcc-14.0.0-patches-2.tar.xz 11484 BLAKE2B 6ff968051d286f21eb7f4ec80303b232530c153cca8d9e61ddfdf3675ef8c5740223a8b720ec9d5c4561b505993c675cc6fc7a9bab659ee1db99e1d97911eb74 SHA512 b255338d6110d9bfe211ba14da7b186f69b81503dba6e4ec19ee6fa37d44c0690e713c763abe27ce934ff7f9e5d0c8788a54c30587f07f65858b1e817cbf7247 -DIST gcc-14.0.0-patches-3.tar.xz 11500 BLAKE2B 508ac2fc1d15cba29921c5faf96f45ad77fc3aae05bcdb4a9eb3114ad23a2afa4810cfafd71ff3b77ea2bae9ed809f9de615396486acb6086ddf316a008fa1c8 SHA512 cac927be1ca191b98963bda65b5fb4eda3f6449d5f4e9c42a0db3e4036ec4963ba7675523cfa823a5938b7e6a5260c4c5e2f9b268414a94fab7418dc1cbbfd58 +DIST gcc-14.0.0-patches-4.tar.xz 24132 BLAKE2B 95f382ff1232bc681f4fbd28134a5e781bbce0e472d36b9348f54153791ce2b942c9ca3ea0931df8ed5ef48fb0e71f5a5a941e90dfcbd7162f52a4a6a2df9133 SHA512 867c982ee4ce6e10bc76949d30749427e8d070261fd9253cd1ca6b21273f04303c317057176ad7a58ecde06104d295c3af7526151bab7339851f9b06214bba3d +DIST gcc-14.0.0-patches-5.tar.xz 21180 BLAKE2B 4ad48161bb35320141df60b99d2c7791df72f719931a649b45842df2acfb84428815efa11ecad6ff4f219a1fde77ffc5e4ed302e2f8f04e0911f514addb5cc7f SHA512 b47a1bbd7218fe03d6cc4968cb51614c34d1548fa85781c6b85cfa901cd43130f9c503404502c92a629ac6b23559fe3bccf38e3bbcb257524941aaec46774cff +DIST gcc-14.0.0-patches-6.tar.xz 20908 BLAKE2B fc13578e8d09efe262ba0f46a730afda70881d605af676faf476c73a6074845d43ee68bce814736da8198ed8dfee13553568b67d276a6299b3e7a256dae1e10e SHA512 0ba63e151a46116b0fbf5e9f27e98dfe4f75f42893719742a0dfe6e8448ed4c6e7c5101fde534697f0e62620aafc2a82430223e7231099fdabc43beed049ed09 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-14.0.0_pre20231015-pycryptodome-ice.patch b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/gcc-14.0.0_pre20231015-pycryptodome-ice.patch new file mode 100644 index 0000000000..377f68511f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/files/gcc-14.0.0_pre20231015-pycryptodome-ice.patch @@ -0,0 +1,212 @@ +https://gcc.gnu.org/PR111845 +https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f1744dd50bb1661c98b694ff907cb0a1be4f6134 + +From f1744dd50bb1661c98b694ff907cb0a1be4f6134 Mon Sep 17 00:00:00 2001 +From: Jakub Jelinek +Date: Wed, 18 Oct 2023 12:37:40 +0200 +Subject: [PATCH] tree-ssa-math-opts: Fix up match_uaddc_usubc [PR111845] + +GCC ICEs on the first testcase. Successful match_uaddc_usubc ends up with +some dead stmts which DCE will remove (hopefully) later all. +The ICE is because one of the dead stmts refers to a freed SSA_NAME. +The code already gsi_removes a couple of stmts in the + /* Remove some statements which can't be kept in the IL because they + use SSA_NAME whose setter is going to be removed too. */ +section for the same reason (the reason for the freed SSA_NAMEs is that +we don't really have a replacement for those cases - all we have after +a match is combined overflow from the addition/subtraction of 2 operands + a +[0, 1] carry in, but not the individual overflows from the former 2 +additions), but for the last (most significant) limb case, where we try +to match x = op1 + op2 + carry1 + carry2; or +x = op1 - op2 - carry1 - carry2; we just gsi_replace the final stmt, but +left around the 2 temporary stmts as dead; if we were unlucky enough that +those referenced the carry flag that went away, it ICEs. + +So, the following patch remembers those temporary statements (rather than +trying to rediscover them more expensively) and removes them before the +final one is replaced. + +While working on it, I've noticed we didn't support all the reassociated +possibilities of writing the addition of 4 operands or subtracting 3 +operands from one, we supported e.g. +x = ((op1 + op2) + op3) + op4; +x = op1 + ((op2 + op3) + op4); +but not +x = (op1 + (op2 + op3)) + op4; +x = op1 + (op2 + (op3 + op4)); +Fixed by the change to inspect also rhs[2] when rhs[1] didn't yield what +we were searching for (if non-NULL) - rhs[0] is inspected in the first +loop and has different handling for the MINUS_EXPR case. + +2023-10-18 Jakub Jelinek + + PR tree-optimization/111845 + * tree-ssa-math-opts.cc (match_uaddc_usubc): Remember temporary + statements for the 4 operand addition or subtraction of 3 operands + from 1 operand cases and remove them when successful. Look for + nested additions even from rhs[2], not just rhs[1]. + + * gcc.dg/pr111845.c: New test. + * gcc.target/i386/pr111845.c: New test. +--- + gcc/testsuite/gcc.dg/pr111845.c | 16 ++++++++ + gcc/testsuite/gcc.target/i386/pr111845.c | 47 +++++++++++++++++++++++ + gcc/tree-ssa-math-opts.cc | 48 +++++++++++++++--------- + 3 files changed, 94 insertions(+), 17 deletions(-) + create mode 100644 gcc/testsuite/gcc.dg/pr111845.c + create mode 100644 gcc/testsuite/gcc.target/i386/pr111845.c + +diff --git a/gcc/testsuite/gcc.dg/pr111845.c b/gcc/testsuite/gcc.dg/pr111845.c +new file mode 100644 +index 000000000000..1bcb4f88e6f1 +--- /dev/null ++++ b/gcc/testsuite/gcc.dg/pr111845.c +@@ -0,0 +1,16 @@ ++/* PR tree-optimization/111845 */ ++/* { dg-do compile } */ ++/* { dg-options "-O2 --param tree-reassoc-width=2" } */ ++ ++int a, b; ++unsigned int c, d, e; ++ ++void ++foo (int x) ++{ ++ b += d; ++ c += b < d; ++ b += e = a < x; ++ c += b; ++ c += b < e; ++} +diff --git a/gcc/testsuite/gcc.target/i386/pr111845.c b/gcc/testsuite/gcc.target/i386/pr111845.c +new file mode 100644 +index 000000000000..d52110a40422 +--- /dev/null ++++ b/gcc/testsuite/gcc.target/i386/pr111845.c +@@ -0,0 +1,47 @@ ++/* PR tree-optimization/111845 */ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -g -masm=att" } */ ++/* { dg-final { scan-assembler-times "\tadcq\t" 8 { target lp64 } } } */ ++/* { dg-final { scan-assembler-times "\tadcl\t" 8 { target ia32 } } } */ ++ ++unsigned long l, m; ++ ++__attribute__((noipa)) void ++foo (unsigned long x, unsigned long y, unsigned long h, unsigned long i, int a, int b) ++{ ++ unsigned long c, d; ++ unsigned long e = __builtin_add_overflow (x, y, &c); ++ unsigned long f = __builtin_add_overflow (c, a < b, &d); ++ m = ((h + i) + e) + f; ++ l = d; ++} ++ ++__attribute__((noipa)) void ++bar (unsigned long x, unsigned long y, unsigned long h, unsigned long i, int a, int b) ++{ ++ unsigned long c, d; ++ unsigned long e = __builtin_add_overflow (x, y, &c); ++ unsigned long f = __builtin_add_overflow (c, a < b, &d); ++ m = (h + (i + e)) + f; ++ l = d; ++} ++ ++__attribute__((noipa)) void ++baz (unsigned long x, unsigned long y, unsigned long h, unsigned long i, int a, int b) ++{ ++ unsigned long c, d; ++ unsigned long e = __builtin_add_overflow (x, y, &c); ++ unsigned long f = __builtin_add_overflow (c, a < b, &d); ++ m = h + (i + (e + f)); ++ l = d; ++} ++ ++__attribute__((noipa)) void ++qux (unsigned long x, unsigned long y, unsigned long h, unsigned long i, int a, int b) ++{ ++ unsigned long c, d; ++ unsigned long e = __builtin_add_overflow (x, y, &c); ++ unsigned long f = __builtin_add_overflow (c, a < b, &d); ++ m = h + ((i + e) + f); ++ l = d; ++} +diff --git a/gcc/tree-ssa-math-opts.cc b/gcc/tree-ssa-math-opts.cc +index 51c14d6bad9f..363f31646691 100644 +--- a/gcc/tree-ssa-math-opts.cc ++++ b/gcc/tree-ssa-math-opts.cc +@@ -4581,6 +4581,7 @@ match_uaddc_usubc (gimple_stmt_iterator *gsi, gimple *stmt, tree_code code) + if (!INTEGRAL_TYPE_P (type) || !TYPE_UNSIGNED (type)) + return false; + ++ auto_vec temp_stmts; + if (code != BIT_IOR_EXPR && code != BIT_XOR_EXPR) + { + /* If overflow flag is ignored on the MSB limb, we can end up with +@@ -4615,26 +4616,29 @@ match_uaddc_usubc (gimple_stmt_iterator *gsi, gimple *stmt, tree_code code) + rhs[0] = gimple_assign_rhs1 (g); + tree &r = rhs[2] ? rhs[3] : rhs[2]; + r = r2; ++ temp_stmts.quick_push (g); + } + else + break; + } +- while (TREE_CODE (rhs[1]) == SSA_NAME && !rhs[3]) +- { +- gimple *g = SSA_NAME_DEF_STMT (rhs[1]); +- if (has_single_use (rhs[1]) +- && is_gimple_assign (g) +- && gimple_assign_rhs_code (g) == PLUS_EXPR) +- { +- rhs[1] = gimple_assign_rhs1 (g); +- if (rhs[2]) +- rhs[3] = gimple_assign_rhs2 (g); +- else +- rhs[2] = gimple_assign_rhs2 (g); +- } +- else +- break; +- } ++ for (int i = 1; i <= 2; ++i) ++ while (rhs[i] && TREE_CODE (rhs[i]) == SSA_NAME && !rhs[3]) ++ { ++ gimple *g = SSA_NAME_DEF_STMT (rhs[i]); ++ if (has_single_use (rhs[i]) ++ && is_gimple_assign (g) ++ && gimple_assign_rhs_code (g) == PLUS_EXPR) ++ { ++ rhs[i] = gimple_assign_rhs1 (g); ++ if (rhs[2]) ++ rhs[3] = gimple_assign_rhs2 (g); ++ else ++ rhs[2] = gimple_assign_rhs2 (g); ++ temp_stmts.quick_push (g); ++ } ++ else ++ break; ++ } + /* If there are just 3 addends or one minuend and two subtrahends, + check for UADDC or USUBC being pattern recognized earlier. + Say r = op1 + op2 + ovf1 + ovf2; where the (ovf1 + ovf2) part +@@ -5039,7 +5043,17 @@ match_uaddc_usubc (gimple_stmt_iterator *gsi, gimple *stmt, tree_code code) + g = gimple_build_assign (ilhs, IMAGPART_EXPR, + build1 (IMAGPART_EXPR, TREE_TYPE (ilhs), nlhs)); + if (rhs[2]) +- gsi_insert_before (gsi, g, GSI_SAME_STMT); ++ { ++ gsi_insert_before (gsi, g, GSI_SAME_STMT); ++ /* Remove some further statements which can't be kept in the IL because ++ they can use SSA_NAMEs whose setter is going to be removed too. */ ++ while (temp_stmts.length ()) ++ { ++ g = temp_stmts.pop (); ++ gsi2 = gsi_for_stmt (g); ++ gsi_remove (&gsi2, true); ++ } ++ } + else + gsi_replace (gsi, g, true); + /* Remove some statements which can't be kept in the IL because they +-- +2.39.3 diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-10.5.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-10.5.0.ebuild index 7b4e343a62..bd81637a76 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-10.5.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-10.5.0.ebuild @@ -37,7 +37,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 ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" :; fi diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-11.4.1_p20230622.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-11.4.1_p20230622.ebuild index f9062dad20..ddb4482c53 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-11.4.1_p20230622.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-11.4.1_p20230622.ebuild @@ -37,7 +37,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 ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" :; fi diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-11.4.1_p20230928.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-11.4.1_p20230928.ebuild deleted file mode 100644 index 02c58f02f0..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-11.4.1_p20230928.ebuild +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -TOOLCHAIN_PATCH_DEV="sam" -PATCH_GCC_VER="11.4.0" -PATCH_VER="10" -MUSL_VER="2" -MUSL_GCC_VER="11.4.0" - -if [[ ${PV} == *.9999 ]] ; then - MY_PV_2=$(ver_cut 2) - MY_PV_3=1 - if [[ ${MY_PV_2} == 0 ]] ; then - MY_PV_2=0 - MY_PV_3=0 - else - MY_PV_2=$((${MY_PV_2} - 1)) - fi - - # e.g. 12.2.9999 -> 12.1.1 - TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} -elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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}" - BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" -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-11.4.1_p20231005.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-11.4.1_p20231005.ebuild deleted file mode 100644 index 02c58f02f0..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-11.4.1_p20231005.ebuild +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -TOOLCHAIN_PATCH_DEV="sam" -PATCH_GCC_VER="11.4.0" -PATCH_VER="10" -MUSL_VER="2" -MUSL_GCC_VER="11.4.0" - -if [[ ${PV} == *.9999 ]] ; then - MY_PV_2=$(ver_cut 2) - MY_PV_3=1 - if [[ ${MY_PV_2} == 0 ]] ; then - MY_PV_2=0 - MY_PV_3=0 - else - MY_PV_2=$((${MY_PV_2} - 1)) - fi - - # e.g. 12.2.9999 -> 12.1.1 - TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} -elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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}" - BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" -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-11.4.1_p20230921.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-11.4.1_p20231019.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-11.4.1_p20230921.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-11.4.1_p20231019.ebuild diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.3.1_p20230825.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.3.1_p20230825.ebuild index 006c8231fd..723e4bec66 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.3.1_p20230825.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.3.1_p20230825.ebuild @@ -37,7 +37,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 ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ~ppc ppc64 ~riscv ~s390 sparc x86" :; fi diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.3.1_p20230929.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.3.1_p20230929.ebuild deleted file mode 100644 index 1ffe2b97a4..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.3.1_p20230929.ebuild +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -TOOLCHAIN_PATCH_DEV="sam" -PATCH_GCC_VER="12.3.0" -PATCH_VER="2" -MUSL_VER="1" -MUSL_GCC_VER="12.3.0" - -if [[ ${PV} == *.9999 ]] ; then - MY_PV_2=$(ver_cut 2) - MY_PV_3=1 - if [[ ${MY_PV_2} == 0 ]] ; then - MY_PV_2=0 - MY_PV_3=0 - else - MY_PV_2=$((${MY_PV_2} - 1)) - fi - - # e.g. 12.2.9999 -> 12.1.1 - TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} -elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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}" - BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" -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-12.3.1_p20230922.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.3.1_p20231020.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.3.1_p20230922.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.3.1_p20231020.ebuild diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.1_p20230923.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.1_p20230923.ebuild deleted file mode 100644 index fb3f9765eb..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.1_p20230923.ebuild +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -TOOLCHAIN_PATCH_DEV="sam" -PATCH_GCC_VER="13.2.0" -PATCH_VER="7" -MUSL_VER="2" -MUSL_GCC_VER="13.2.0" - -if [[ ${PV} == *.9999 ]] ; then - MY_PV_2=$(ver_cut 2) - MY_PV_3=1 - if [[ ${MY_PV_2} == 0 ]] ; then - MY_PV_2=0 - MY_PV_3=0 - else - MY_PV_2=$((${MY_PV_2} - 1)) - fi - - # e.g. 12.2.9999 -> 12.1.1 - TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} -elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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}" - BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.1_p20231007.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.1_p20231007.ebuild deleted file mode 100644 index 4d46468f62..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.1_p20231007.ebuild +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -TOOLCHAIN_PATCH_DEV="sam" -PATCH_GCC_VER="13.2.0" -PATCH_VER="8" -MUSL_VER="2" -MUSL_GCC_VER="13.2.0" - -if [[ ${PV} == *.9999 ]] ; then - MY_PV_2=$(ver_cut 2) - MY_PV_3=1 - if [[ ${MY_PV_2} == 0 ]] ; then - MY_PV_2=0 - MY_PV_3=0 - else - MY_PV_2=$((${MY_PV_2} - 1)) - fi - - # e.g. 12.2.9999 -> 12.1.1 - TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} -elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=releases/gcc-$(ver_cut 1) -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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}" - BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" -fi - -src_prepare() { - local p upstreamed_patches=( - # add them here - ) - for p in "${upstreamed_patches[@]}"; do - rm -v "${WORKDIR}/patch/${p}" || die - done - - toolchain_src_prepare - - eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch - eapply_user -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.1_p20231014.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.1_p20231014.ebuild index 829b163e96..92220ea231 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.1_p20231014.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.1_p20231014.ebuild @@ -5,7 +5,7 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" PATCH_GCC_VER="13.2.0" -PATCH_VER="8" +PATCH_VER="9" MUSL_VER="2" MUSL_GCC_VER="13.2.0" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.1_p20230930.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.1_p20231021.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.1_p20230930.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.1_p20231021.ebuild index 4d46468f62..61a5f74ce6 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.1_p20230930.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.2.1_p20231021.ebuild @@ -5,7 +5,7 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" PATCH_GCC_VER="13.2.0" -PATCH_VER="8" +PATCH_VER="9" MUSL_VER="2" MUSL_GCC_VER="13.2.0" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20230917.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20230917.ebuild deleted file mode 100644 index 59534d9e96..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20230917.ebuild +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -TOOLCHAIN_PATCH_DEV="sam" -PATCH_GCC_VER="14.0.0" -PATCH_VER="2" -MUSL_VER="1" -MUSL_GCC_VER="14.0.0" - -if [[ ${PV} == *.9999 ]] ; then - MY_PV_2=$(ver_cut 2) - MY_PV_3=1 - if [[ ${MY_PV_2} == 0 ]] ; then - MY_PV_2=0 - MY_PV_3=0 - else - MY_PV_2=$((${MY_PV_2} - 1)) - fi - - # e.g. 12.2.9999 -> 12.1.1 - TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} -elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=master -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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}" - BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" -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-14.0.0_pre20231008.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20231008.ebuild deleted file mode 100644 index 02c5c89146..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20231008.ebuild +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -TOOLCHAIN_PATCH_DEV="sam" -PATCH_GCC_VER="14.0.0" -PATCH_VER="3" -MUSL_VER="1" -MUSL_GCC_VER="14.0.0" - -if [[ ${PV} == *.9999 ]] ; then - MY_PV_2=$(ver_cut 2) - MY_PV_3=1 - if [[ ${MY_PV_2} == 0 ]] ; then - MY_PV_2=0 - MY_PV_3=0 - else - MY_PV_2=$((${MY_PV_2} - 1)) - fi - - # e.g. 12.2.9999 -> 12.1.1 - TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} -elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then - # Cheesy hack for RCs - MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) - MY_P=${PN}-${MY_PV} - GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" - TOOLCHAIN_SET_S=no - S="${WORKDIR}"/${MY_P} -fi - -inherit toolchain - -if tc_is_live ; then - # Needs to be after inherit (for now?), bug #830908 - EGIT_BRANCH=master -elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then - # Don't keyword live ebuilds - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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}" - BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" -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-14.0.0_pre20231001.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20231015-r1.ebuild similarity index 96% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20231001.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20231015-r1.ebuild index b7a4582ecb..84b65f32fd 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20231001.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20231015-r1.ebuild @@ -5,7 +5,7 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" PATCH_GCC_VER="14.0.0" -PATCH_VER="3" +PATCH_VER="5" MUSL_VER="1" MUSL_GCC_VER="14.0.0" @@ -60,6 +60,6 @@ src_prepare() { toolchain_src_prepare + eapply "${FILESDIR}"/${P}-pycryptodome-ice.patch eapply_user - eapply "${FILESDIR}"/${P}-pgo-bootstrap.patch } diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20231015.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20231015.ebuild index 02c5c89146..8100ea5656 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20231015.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20231015.ebuild @@ -5,7 +5,7 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" PATCH_GCC_VER="14.0.0" -PATCH_VER="3" +PATCH_VER="4" MUSL_VER="1" MUSL_GCC_VER="14.0.0" diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20230924.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20231022.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20230924.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20231022.ebuild index 59534d9e96..9465e69b58 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20230924.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.0.0_pre20231022.ebuild @@ -5,7 +5,7 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" PATCH_GCC_VER="14.0.0" -PATCH_VER="2" +PATCH_VER="6" MUSL_VER="1" MUSL_GCC_VER="14.0.0" diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libnvme/files/libnvme-1.6-lld-17.patch b/sdk_container/src/third_party/portage-stable/sys-libs/libnvme/files/libnvme-1.6-lld-17.patch new file mode 100644 index 0000000000..c64b4a80cb --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libnvme/files/libnvme-1.6-lld-17.patch @@ -0,0 +1,26 @@ +https://github.com/linux-nvme/libnvme/pull/725 + +From a5cc9074765bf400336f78a05c8374b9788ad670 Mon Sep 17 00:00:00 2001 +From: Alfred Wingate +Date: Tue, 10 Oct 2023 04:22:48 +0300 +Subject: [PATCH] build: remove symbol which doesn't exist in libnvme-mi.so + +* Added in bb70b874dac13a15c37ce1dd1de866d6a5dd428d, but was never used. + +Signed-off-by: Alfred Wingate +--- + src/libnvme-mi.map | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/libnvme-mi.map b/src/libnvme-mi.map +index f1ce7125..41e81106 100644 +--- a/src/libnvme-mi.map ++++ b/src/libnvme-mi.map +@@ -49,7 +49,6 @@ LIBNVME_MI_1_1 { + nvme_mi_admin_security_send; + nvme_mi_admin_security_recv; + nvme_mi_endpoint_desc; +- nvme_mi_root_close; + nvme_mi_first_endpoint; + nvme_mi_next_endpoint; + nvme_mi_first_ctrl; diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libnvme/libnvme-1.6-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libnvme/libnvme-1.6-r1.ebuild new file mode 100644 index 0000000000..6539b980d7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libnvme/libnvme-1.6-r1.ebuild @@ -0,0 +1,82 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) +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}.tar.gz" + +LICENSE="LGPL-2.1+" +SLOT="0/1" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~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 +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.6-musl.patch + "${FILESDIR}"/${P}-lld-17.patch +) + +src_configure() { + local emesonargs=( + -Dpython=false + $(meson_use test tests) + $(meson_feature json json-c) + $(meson_feature dbus libdbus) + $(meson_feature keyutils) + $(meson_feature ssl openssl) + $(meson_feature python) + ) + 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-process/procps/procps-4.0.4.ebuild b/sdk_container/src/third_party/portage-stable/sys-process/procps/procps-4.0.4.ebuild index 58e8d0c5ad..e4dd2d9b05 100644 --- a/sdk_container/src/third_party/portage-stable/sys-process/procps/procps-4.0.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-process/procps/procps-4.0.4.ebuild @@ -15,7 +15,7 @@ S="${WORKDIR}"/${PN}-ng-${PV} # See bug #913210 LICENSE="GPL-2+ LGPL-2+ LGPL-2.1+" SLOT="0/0-ng" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="~alpha ~amd64 arm ~arm64 hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" IUSE="elogind +kill modern-top +ncurses nls selinux static-libs systemd test unicode" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/x11-base/xorg-proto/xorg-proto-2023.2.ebuild b/sdk_container/src/third_party/portage-stable/x11-base/xorg-proto/xorg-proto-2023.2.ebuild index 6c7649b6fd..96350710c4 100644 --- a/sdk_container/src/third_party/portage-stable/x11-base/xorg-proto/xorg-proto-2023.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/x11-base/xorg-proto/xorg-proto-2023.2.ebuild @@ -33,13 +33,13 @@ RESTRICT="!test? ( test )" BDEPEND=" test? ( $(python_gen_any_dep ' - dev-python/python-libevdev[${PYTHON_USEDEP}] + dev-python/libevdev[${PYTHON_USEDEP}] ') ) " python_check_deps() { - python_has_version "dev-python/python-libevdev[${PYTHON_USEDEP}]" + python_has_version "dev-python/libevdev[${PYTHON_USEDEP}]" } pkg_setup() { diff --git a/sdk_container/src/third_party/portage-stable/x11-base/xorg-proto/xorg-proto-9999.ebuild b/sdk_container/src/third_party/portage-stable/x11-base/xorg-proto/xorg-proto-9999.ebuild index e8ac7166da..b353c2984d 100644 --- a/sdk_container/src/third_party/portage-stable/x11-base/xorg-proto/xorg-proto-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/x11-base/xorg-proto/xorg-proto-9999.ebuild @@ -33,14 +33,14 @@ RESTRICT="!test? ( test )" BDEPEND=" test? ( $(python_gen_any_dep ' - dev-python/python-libevdev[${PYTHON_USEDEP}] + dev-python/libevdev[${PYTHON_USEDEP}] ') ) " RDEPEND="" python_check_deps() { - python_has_version "dev-python/python-libevdev[${PYTHON_USEDEP}]" + python_has_version "dev-python/libevdev[${PYTHON_USEDEP}]" } pkg_setup() {