From cfc2807f539ce6c7c0fdf43ef5136906324b74d2 Mon Sep 17 00:00:00 2001 From: Mike Gilbert Date: Tue, 27 May 2025 14:21:00 -0400 Subject: [PATCH 01/53] sys-apps/systemd: drop 254.22, 254.24 Signed-off-by: Mike Gilbert --- sys-apps/systemd/Manifest | 2 - .../files/254-PrivateDevices-userdbd.patch | 242 -------- .../files/systemd-253-initrd-generators.patch | 34 -- sys-apps/systemd/systemd-254.22.ebuild | 539 ------------------ sys-apps/systemd/systemd-254.24.ebuild | 539 ------------------ 5 files changed, 1356 deletions(-) delete mode 100644 sys-apps/systemd/files/254-PrivateDevices-userdbd.patch delete mode 100644 sys-apps/systemd/files/systemd-253-initrd-generators.patch delete mode 100644 sys-apps/systemd/systemd-254.22.ebuild delete mode 100644 sys-apps/systemd/systemd-254.24.ebuild diff --git a/sys-apps/systemd/Manifest b/sys-apps/systemd/Manifest index 605b213fdf50b..d26a34fd9b12d 100644 --- a/sys-apps/systemd/Manifest +++ b/sys-apps/systemd/Manifest @@ -3,5 +3,3 @@ DIST systemd-256.12.tar.gz 15865500 BLAKE2B e15fd622357c1af09b6b25230040721d73b1 DIST systemd-256.13.tar.gz 15867550 BLAKE2B 6cdd884d430c7f2c9c9250dd63885b233d64b87a3297f604881567042f45d51aea1ae341e4fd356997464e53b230b6fb6ec502b0e88f28d9d4296f4dfeef2a14 SHA512 e25b3e5bce42211918058320789ab154282ecb264803ddcb9e0fb3afbb53417eeea29dcd183b68dd758e39f28cab2e1ba3267766e589f5129e213e12f109017e DIST systemd-257.3.tar.gz 16227011 BLAKE2B 06faa84890106c370c066bfcdf1075d8f1c77d4aa2d24997e5d1ee51b7169199413a08fc52f0935c9340d9adf6933d9c952ee51d6a71f73dcbafdbf972d15d59 SHA512 ef395998df4b24537147fa3b2e3ae2d100d3345f386fc39018bca0fe8092b7874bf9a6e6058a142342b3a0caebe1312ea9519bcbb4327a9d3649f593c49b3dab DIST systemd-257.5.tar.gz 16232112 BLAKE2B 142baef9b09217ea117ac09923604f7520a36d4c63cf04a78d1c4fbf7b057b977f5c77418168c0308a8dc6b48ccc6324438f30c87de8642e8e9cf12b47f90475 SHA512 9e5352c20c9edac53f302a534532035185139998628ed0a85411f440df47f1dd7cce6651aec787484809bb1aa2825008d062714c37936cbfd08451fbe29a998f -DIST systemd-stable-254.22.tar.gz 14667273 BLAKE2B d3bfbd34ef47b73e139c37dd3e961fdc17c969e38674d84976183ecad44030fce1db073da6faf522e9ab232ae65c8e70a8d9a1f15053c57269090d3a9f1756f7 SHA512 5cef3912e68060366d7a8030c13825ae872783dd55a8a3ab15aa5ff2c397b50df8fc6e08b9bd1fdc0d54f08f3f7765484a41af0646ded238512921e3d02b553d -DIST systemd-stable-254.24.tar.gz 14718567 BLAKE2B a3389e671f78db398d627f39761cb44a7db9904f4ca987d00073495eb0f80980118459440ee6556d4278c28939bc93167ec8e56885d14eecd17635a2d1aec7da SHA512 f2f5f30c2fd0246ca359bbf04f06fbb49685d58c0d7d4fab6031f98ffebd552141f05ea33c22aeef11338a90ad12389ccb887d9d2d2542d5124b3efd51638343 diff --git a/sys-apps/systemd/files/254-PrivateDevices-userdbd.patch b/sys-apps/systemd/files/254-PrivateDevices-userdbd.patch deleted file mode 100644 index 115c831c275a6..0000000000000 --- a/sys-apps/systemd/files/254-PrivateDevices-userdbd.patch +++ /dev/null @@ -1,242 +0,0 @@ -https://bugs.gentoo.org/920331 -https://github.com/systemd/systemd/issues/30535 - -From 4a9e03aa6bb2cbd23dac00f2b2a7642cc79eaade Mon Sep 17 00:00:00 2001 -From: Daan De Meyer -Date: Wed, 27 Sep 2023 11:55:59 +0200 -Subject: [PATCH 1/2] core: Make private /dev read-only after populating it - ---- - src/core/namespace.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/core/namespace.c b/src/core/namespace.c -index e2304f5d066da..d1153f7690140 100644 ---- a/src/core/namespace.c -+++ b/src/core/namespace.c -@@ -995,6 +995,11 @@ static int mount_private_dev(MountEntry *m) { - if (r < 0) - log_debug_errno(r, "Failed to set up basic device tree at '%s', ignoring: %m", temporary_mount); - -+ /* Make the bind mount read-only. */ -+ r = mount_nofollow_verbose(LOG_DEBUG, NULL, dev, NULL, MS_REMOUNT|MS_BIND|MS_RDONLY, NULL); -+ if (r < 0) -+ return r; -+ - /* Create the /dev directory if missing. It is more likely to be missing when the service is started - * with RootDirectory. This is consistent with mount units creating the mount points when missing. */ - (void) mkdir_p_label(mount_entry_path(m), 0755); - -From cd7f3702eb47c82a50bf74c2b7c15c2e4e1f5c79 Mon Sep 17 00:00:00 2001 -From: Daan De Meyer -Date: Wed, 27 Sep 2023 10:52:50 +0200 -Subject: [PATCH 2/2] core: Use a subdirectory of /run/ for PrivateDevices= - -When we're starting early boot services such as systemd-userdbd.service, -/tmp might not yet be mounted, so let's use a directory in /run instead -which is guaranteed to be available. ---- - src/core/execute.c | 1 + - src/core/namespace.c | 61 +++++++++++++++++++++++++++++---------- - src/core/namespace.h | 2 ++ - src/test/test-namespace.c | 1 + - src/test/test-ns.c | 1 + - 5 files changed, 50 insertions(+), 16 deletions(-) - -diff --git a/src/core/execute.c b/src/core/execute.c -index a52df64d01081..89c3868d55f6c 100644 ---- a/src/core/execute.c -+++ b/src/core/execute.c -@@ -3307,6 +3307,7 @@ static int apply_mount_namespace( - extension_dir, - root_dir || root_image ? params->notify_socket : NULL, - host_os_release_stage, -+ params->runtime_scope, - error_path); - - /* If we couldn't set up the namespace this is probably due to a missing capability. setup_namespace() reports -diff --git a/src/core/namespace.c b/src/core/namespace.c -index d1153f7690140..a0471ac8884bf 100644 ---- a/src/core/namespace.c -+++ b/src/core/namespace.c -@@ -909,7 +909,19 @@ static int clone_device_node( - return 0; - } - --static int mount_private_dev(MountEntry *m) { -+static char *settle_runtime_dir(RuntimeScope scope) { -+ char *runtime_dir; -+ -+ if (scope != RUNTIME_SCOPE_USER) -+ return strdup("/run/"); -+ -+ if (asprintf(&runtime_dir, "/run/user/" UID_FMT, geteuid()) < 0) -+ return NULL; -+ -+ return runtime_dir; -+} -+ -+static int mount_private_dev(MountEntry *m, RuntimeScope scope) { - static const char devnodes[] = - "/dev/null\0" - "/dev/zero\0" -@@ -918,13 +930,21 @@ static int mount_private_dev(MountEntry *m) { - "/dev/urandom\0" - "/dev/tty\0"; - -- char temporary_mount[] = "/tmp/namespace-dev-XXXXXX"; -+ _cleanup_free_ char *runtime_dir = NULL, *temporary_mount = NULL; - const char *dev = NULL, *devpts = NULL, *devshm = NULL, *devhugepages = NULL, *devmqueue = NULL, *devlog = NULL, *devptmx = NULL; - bool can_mknod = true; - int r; - - assert(m); - -+ runtime_dir = settle_runtime_dir(scope); -+ if (!runtime_dir) -+ return log_oom_debug(); -+ -+ temporary_mount = path_join(runtime_dir, "systemd/namespace-dev-XXXXXX"); -+ if (!temporary_mount) -+ return log_oom_debug(); -+ - if (!mkdtemp(temporary_mount)) - return log_debug_errno(errno, "Failed to create temporary directory '%s': %m", temporary_mount); - -@@ -1364,7 +1384,8 @@ static int apply_one_mount( - MountEntry *m, - const ImagePolicy *mount_image_policy, - const ImagePolicy *extension_image_policy, -- const NamespaceInfo *ns_info) { -+ const NamespaceInfo *ns_info, -+ RuntimeScope scope) { - - _cleanup_free_ char *inaccessible = NULL; - bool rbind = true, make = false; -@@ -1379,8 +1400,7 @@ static int apply_one_mount( - switch (m->mode) { - - case INACCESSIBLE: { -- _cleanup_free_ char *tmp = NULL; -- const char *runtime_dir; -+ _cleanup_free_ char *runtime_dir = NULL; - struct stat target; - - /* First, get rid of everything that is below if there -@@ -1396,14 +1416,14 @@ static int apply_one_mount( - mount_entry_path(m)); - } - -- if (geteuid() == 0) -- runtime_dir = "/run"; -- else { -- if (asprintf(&tmp, "/run/user/" UID_FMT, geteuid()) < 0) -- return -ENOMEM; -- -- runtime_dir = tmp; -- } -+ /* We don't pass the literal runtime scope through here but one based purely on our UID. This -+ * means that the root user's --user services will use the host's inaccessible inodes rather -+ * then root's private ones. This is preferable since it means device nodes that are -+ * overmounted to make them inaccessible will be overmounted with a device node, rather than -+ * an AF_UNIX socket inode. */ -+ runtime_dir = settle_runtime_dir(geteuid() == 0 ? RUNTIME_SCOPE_SYSTEM : RUNTIME_SCOPE_USER); -+ if (!runtime_dir) -+ return log_oom_debug(); - - r = mode_to_inaccessible_node(runtime_dir, target.st_mode, &inaccessible); - if (r < 0) -@@ -1523,7 +1543,7 @@ static int apply_one_mount( - break; - - case PRIVATE_DEV: -- return mount_private_dev(m); -+ return mount_private_dev(m, scope); - - case BIND_DEV: - return mount_bind_dev(m); -@@ -1824,6 +1844,7 @@ static int apply_mounts( - const NamespaceInfo *ns_info, - MountEntry *mounts, - size_t *n_mounts, -+ RuntimeScope scope, - char **symlinks, - char **error_path) { - -@@ -1875,7 +1896,7 @@ static int apply_mounts( - break; - } - -- r = apply_one_mount(root, m, mount_image_policy, extension_image_policy, ns_info); -+ r = apply_one_mount(root, m, mount_image_policy, extension_image_policy, ns_info, scope); - if (r < 0) { - if (error_path && mount_entry_path(m)) - *error_path = strdup(mount_entry_path(m)); -@@ -2030,6 +2051,7 @@ int setup_namespace( - const char *extension_dir, - const char *notify_socket, - const char *host_os_release_stage, -+ RuntimeScope scope, - char **error_path) { - - _cleanup_(loop_device_unrefp) LoopDevice *loop_device = NULL; -@@ -2490,7 +2512,14 @@ int setup_namespace( - (void) base_filesystem_create(root, UID_INVALID, GID_INVALID); - - /* Now make the magic happen */ -- r = apply_mounts(root, mount_image_policy, extension_image_policy, ns_info, mounts, &n_mounts, symlinks, error_path); -+ r = apply_mounts(root, -+ mount_image_policy, -+ extension_image_policy, -+ ns_info, -+ mounts, &n_mounts, -+ scope, -+ symlinks, -+ error_path); - if (r < 0) - goto finish; - -diff --git a/src/core/namespace.h b/src/core/namespace.h -index b6132154c5132..581403d89826d 100644 ---- a/src/core/namespace.h -+++ b/src/core/namespace.h -@@ -16,6 +16,7 @@ typedef struct MountImage MountImage; - #include "fs-util.h" - #include "macro.h" - #include "namespace-util.h" -+#include "runtime-scope.h" - #include "string-util.h" - - typedef enum ProtectHome { -@@ -134,6 +135,7 @@ int setup_namespace( - const char *extension_dir, - const char *notify_socket, - const char *host_os_release_stage, -+ RuntimeScope scope, - char **error_path); - - #define RUN_SYSTEMD_EMPTY "/run/systemd/empty" -diff --git a/src/test/test-namespace.c b/src/test/test-namespace.c -index 25aafc35ca837..42ac65d08c87a 100644 ---- a/src/test/test-namespace.c -+++ b/src/test/test-namespace.c -@@ -206,6 +206,7 @@ TEST(protect_kernel_logs) { - NULL, - NULL, - NULL, -+ RUNTIME_SCOPE_SYSTEM, - NULL); - assert_se(r == 0); - -diff --git a/src/test/test-ns.c b/src/test/test-ns.c -index 77afd2f6b9eb8..eb3afed9e1c66 100644 ---- a/src/test/test-ns.c -+++ b/src/test/test-ns.c -@@ -108,6 +108,7 @@ int main(int argc, char *argv[]) { - NULL, - NULL, - NULL, -+ RUNTIME_SCOPE_SYSTEM, - NULL); - if (r < 0) { - log_error_errno(r, "Failed to set up namespace: %m"); diff --git a/sys-apps/systemd/files/systemd-253-initrd-generators.patch b/sys-apps/systemd/files/systemd-253-initrd-generators.patch deleted file mode 100644 index 60e7b29d7a1f8..0000000000000 --- a/sys-apps/systemd/files/systemd-253-initrd-generators.patch +++ /dev/null @@ -1,34 +0,0 @@ -https://bugs.gentoo.org/896364 - -Workaround for bug in sys-kernel/dracut. - -From 6b25470ee28843a49c50442e9d8a98edc842ceca Mon Sep 17 00:00:00 2001 -From: Yu Watanabe -Date: Mon, 20 Feb 2023 12:00:30 +0900 -Subject: [PATCH] core/manager: run generators directly when we are in initrd - -Some initrd system write files at ourside of /run, /etc, or other -allowed places. This is a kind of workaround, but in most cases, such -sandboxing is not necessary as the filesystem is on ramfs when we are in -initrd. - -Fixes #26488. ---- - src/core/manager.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/core/manager.c b/src/core/manager.c -index 7b394794b0d4..306477c6e6c2 100644 ---- a/src/core/manager.c -+++ b/src/core/manager.c -@@ -3822,8 +3822,8 @@ static int manager_run_generators(Manager *m) { - /* If we are the system manager, we fork and invoke the generators in a sanitized mount namespace. If - * we are the user manager, let's just execute the generators directly. We might not have the - * necessary privileges, and the system manager has already mounted /tmp/ and everything else for us. -- */ -- if (MANAGER_IS_USER(m)) { -+ * If we are in initrd, let's also execute the generators directly, as we are in ramfs. */ -+ if (MANAGER_IS_USER(m) || in_initrd()) { - r = manager_execute_generators(m, paths, /* remount_ro= */ false); - goto finish; - } diff --git a/sys-apps/systemd/systemd-254.22.ebuild b/sys-apps/systemd/systemd-254.22.ebuild deleted file mode 100644 index 06aaac504f18c..0000000000000 --- a/sys-apps/systemd/systemd-254.22.ebuild +++ /dev/null @@ -1,539 +0,0 @@ -# Copyright 2011-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 -PYTHON_COMPAT=( python3_{10..13} ) - -# Avoid QA warnings -TMPFILES_OPTIONAL=1 -UDEV_OPTIONAL=1 - -QA_PKGCONFIG_VERSION=$(ver_cut 1) - -if [[ ${PV} == 9999 ]]; then - EGIT_REPO_URI="https://github.com/systemd/systemd.git" - inherit git-r3 -else - if [[ ${PV} == *.* ]]; then - MY_PN=systemd-stable - else - MY_PN=systemd - fi - MY_PV=${PV/_/-} - MY_P=${MY_PN}-${MY_PV} - S=${WORKDIR}/${MY_P} - SRC_URI="https://github.com/systemd/${MY_PN}/archive/v${MY_PV}/${MY_P}.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" -fi - -inherit bash-completion-r1 linux-info meson-multilib optfeature pam python-single-r1 -inherit secureboot systemd toolchain-funcs udev usr-ldscript - -DESCRIPTION="System and service manager for Linux" -HOMEPAGE="http://systemd.io/" - -LICENSE="GPL-2 LGPL-2.1 MIT public-domain" -SLOT="0/2" -IUSE=" - acl apparmor audit boot cgroup-hybrid cryptsetup curl +dns-over-tls elfutils - fido2 +gcrypt gnutls homed http idn importd iptables +kernel-install +kmod - +lz4 lzma +openssl pam pcre pkcs11 policykit pwquality qrcode - +resolvconf +seccomp selinux split-usr +sysv-utils test tpm ukify vanilla xkb +zstd -" -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} - dns-over-tls? ( || ( gnutls openssl ) ) - fido2? ( cryptsetup openssl ) - homed? ( cryptsetup pam openssl ) - importd? ( curl lzma || ( gcrypt openssl ) ) - pwquality? ( homed ) - boot? ( kernel-install ) - ukify? ( boot ) -" -RESTRICT="!test? ( test )" - -MINKV="4.15" - -COMMON_DEPEND=" - >=sys-apps/util-linux-2.30:0=[${MULTILIB_USEDEP}] - sys-libs/libcap:0=[${MULTILIB_USEDEP}] - virtual/libcrypt:=[${MULTILIB_USEDEP}] - acl? ( sys-apps/acl:0= ) - apparmor? ( sys-libs/libapparmor:0= ) - audit? ( >=sys-process/audit-2:0= ) - cryptsetup? ( >=sys-fs/cryptsetup-2.0.1:0= ) - curl? ( net-misc/curl:0= ) - elfutils? ( >=dev-libs/elfutils-0.158:0= ) - fido2? ( dev-libs/libfido2:0= ) - gcrypt? ( >=dev-libs/libgcrypt-1.4.5:0=[${MULTILIB_USEDEP}] ) - gnutls? ( >=net-libs/gnutls-3.6.0:0= ) - http? ( >=net-libs/libmicrohttpd-0.9.33:0=[epoll(+)] ) - idn? ( net-dns/libidn2:= ) - importd? ( - app-arch/bzip2:0= - sys-libs/zlib:0= - ) - kmod? ( >=sys-apps/kmod-15:0= ) - lz4? ( >=app-arch/lz4-0_p131:0=[${MULTILIB_USEDEP}] ) - lzma? ( >=app-arch/xz-utils-5.0.5-r1:0=[${MULTILIB_USEDEP}] ) - iptables? ( net-firewall/iptables:0= ) - openssl? ( >=dev-libs/openssl-1.1.0:0= ) - pam? ( sys-libs/pam:=[${MULTILIB_USEDEP}] ) - pkcs11? ( app-crypt/p11-kit:0= ) - pcre? ( dev-libs/libpcre2 ) - pwquality? ( dev-libs/libpwquality:0= ) - qrcode? ( media-gfx/qrencode:0= ) - seccomp? ( >=sys-libs/libseccomp-2.3.3:0= ) - selinux? ( sys-libs/libselinux:0= ) - tpm? ( app-crypt/tpm2-tss:0= ) - xkb? ( >=x11-libs/libxkbcommon-0.4.1:0= ) - zstd? ( >=app-arch/zstd-1.4.0:0=[${MULTILIB_USEDEP}] ) -" - -# Newer linux-headers needed by ia64, bug #480218 -DEPEND="${COMMON_DEPEND} - >=sys-kernel/linux-headers-${MINKV} -" - -PEFILE_DEPEND='dev-python/pefile[${PYTHON_USEDEP}]' - -# baselayout-2.2 has /run -RDEPEND="${COMMON_DEPEND} - >=acct-group/adm-0-r1 - >=acct-group/wheel-0-r1 - >=acct-group/kmem-0-r1 - >=acct-group/tty-0-r1 - >=acct-group/utmp-0-r1 - >=acct-group/audio-0-r1 - >=acct-group/cdrom-0-r1 - >=acct-group/dialout-0-r1 - >=acct-group/disk-0-r1 - >=acct-group/input-0-r1 - >=acct-group/kvm-0-r1 - >=acct-group/lp-0-r1 - >=acct-group/render-0-r1 - acct-group/sgx - >=acct-group/tape-0-r1 - acct-group/users - >=acct-group/video-0-r1 - >=acct-group/systemd-journal-0-r1 - >=acct-user/root-0-r1 - acct-user/nobody - >=acct-user/systemd-journal-remote-0-r1 - >=acct-user/systemd-coredump-0-r1 - >=acct-user/systemd-network-0-r1 - acct-user/systemd-oom - >=acct-user/systemd-resolve-0-r1 - >=acct-user/systemd-timesync-0-r1 - >=sys-apps/baselayout-2.2 - ukify? ( - ${PYTHON_DEPS} - $(python_gen_cond_dep "${PEFILE_DEPEND}") - ) - selinux? ( - sec-policy/selinux-base-policy[systemd] - sec-policy/selinux-ntp - ) - sysv-utils? ( - !sys-apps/openrc[sysv-utils(-)] - !sys-apps/sysvinit - ) - !sysv-utils? ( sys-apps/sysvinit ) - resolvconf? ( !net-dns/openresolv ) - !sys-auth/nss-myhostname - !sys-fs/eudev - !sys-fs/udev -" - -# sys-apps/dbus: the daemon only (+ build-time lib dep for tests) -PDEPEND=">=sys-apps/dbus-1.9.8[systemd] - >=sys-fs/udev-init-scripts-34 - policykit? ( sys-auth/polkit ) - !vanilla? ( sys-apps/gentoo-systemd-integration )" - -BDEPEND=" - app-arch/xz-utils:0 - dev-util/gperf - >=dev-build/meson-0.46 - >=sys-apps/coreutils-8.16 - sys-devel/gettext - virtual/pkgconfig - test? ( - app-text/tree - dev-lang/perl - sys-apps/dbus - ) - app-text/docbook-xml-dtd:4.2 - app-text/docbook-xml-dtd:4.5 - app-text/docbook-xsl-stylesheets - dev-libs/libxslt:0 - ${PYTHON_DEPS} - $(python_gen_cond_dep " - dev-python/jinja2[\${PYTHON_USEDEP}] - dev-python/lxml[\${PYTHON_USEDEP}] - boot? ( >=dev-python/pyelftools-0.30[\${PYTHON_USEDEP}] ) - ukify? ( test? ( ${PEFILE_DEPEND} ) ) - ") -" - -QA_FLAGS_IGNORED="usr/lib/systemd/boot/efi/.*" -QA_EXECSTACK="usr/lib/systemd/boot/efi/*" - -pkg_pretend() { - if [[ ${MERGE_TYPE} != buildonly ]]; then - local CONFIG_CHECK="~BLK_DEV_BSG ~CGROUPS - ~CGROUP_BPF ~DEVTMPFS ~EPOLL ~FANOTIFY ~FHANDLE - ~INOTIFY_USER ~IPV6 ~NET ~NET_NS ~PROC_FS ~SIGNALFD ~SYSFS - ~TIMERFD ~TMPFS_XATTR ~UNIX ~USER_NS - ~CRYPTO_HMAC ~CRYPTO_SHA256 ~CRYPTO_USER_API_HASH - ~!GRKERNSEC_PROC ~!IDE ~!SYSFS_DEPRECATED - ~!SYSFS_DEPRECATED_V2" - - use acl && CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" - use seccomp && CONFIG_CHECK+=" ~SECCOMP ~SECCOMP_FILTER" - - if kernel_is -ge 5 10 20; then - CONFIG_CHECK+=" ~KCMP" - else - CONFIG_CHECK+=" ~CHECKPOINT_RESTORE" - fi - - if kernel_is -ge 4 18; then - CONFIG_CHECK+=" ~AUTOFS_FS" - else - CONFIG_CHECK+=" ~AUTOFS4_FS" - fi - - if linux_config_exists; then - local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH) - if [[ -n ${uevent_helper_path} ]] && [[ ${uevent_helper_path} != '""' ]]; then - ewarn "It's recommended to set an empty value to the following kernel config option:" - ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}" - fi - if linux_chkconfig_present X86; then - CONFIG_CHECK+=" ~DMIID" - fi - fi - - if kernel_is -lt ${MINKV//./ }; then - ewarn "Kernel version at least ${MINKV} required" - fi - - check_extra_config - fi -} - -pkg_setup() { - use boot && secureboot_pkg_setup -} - -src_unpack() { - default - [[ ${PV} != 9999 ]] || git-r3_src_unpack -} - -src_prepare() { - local PATCHES=( - "${FILESDIR}/systemd-test-process-util.patch" - "${FILESDIR}/systemd-253-initrd-generators.patch" - "${FILESDIR}/254-PrivateDevices-userdbd.patch" - ) - - if ! use vanilla; then - PATCHES+=( - "${FILESDIR}/gentoo-generator-path-r2.patch" - "${FILESDIR}/gentoo-journald-audit-r1.patch" - ) - fi - - # Fails with split-usr. - sed -i -e '2i exit 77' test/test-rpm-macros.sh || die - - default -} - -src_configure() { - # Prevent conflicts with i686 cross toolchain, bug 559726 - tc-export AR CC NM OBJCOPY RANLIB - - python_setup - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --localstatedir="${EPREFIX}/var" - -Dsupport-url="https://gentoo.org/support/" - -Dpamlibdir="$(getpam_mod_dir)" - # avoid bash-completion dep - -Dbashcompletiondir="$(get_bashcompdir)" - $(meson_use split-usr) - $(meson_use split-usr split-bin) - -Drootprefix="$(usex split-usr "${EPREFIX:-/}" "${EPREFIX}/usr")" - -Drootlibdir="${EPREFIX}/usr/$(get_libdir)" - # Disable compatibility with sysvinit - -Dsysvinit-path= - -Dsysvrcnd-path= - # Avoid infinite exec recursion, bug 642724 - -Dtelinit-path="${EPREFIX}/lib/sysvinit/telinit" - # no deps - -Dima=true - -Ddefault-hierarchy=$(usex cgroup-hybrid hybrid unified) - # Optional components/dependencies - $(meson_native_use_bool acl) - $(meson_native_use_bool apparmor) - $(meson_native_use_bool audit) - $(meson_native_use_bool boot bootloader) - $(meson_native_use_bool cryptsetup libcryptsetup) - $(meson_native_use_bool curl libcurl) - $(meson_native_use_bool dns-over-tls dns-over-tls) - $(meson_native_use_bool elfutils) - $(meson_native_use_bool fido2 libfido2) - $(meson_use gcrypt) - $(meson_native_use_bool gnutls) - $(meson_native_use_bool homed) - $(meson_native_use_bool http microhttpd) - $(meson_native_use_bool idn) - $(meson_native_use_bool importd) - $(meson_native_use_bool importd bzip2) - $(meson_native_use_bool importd zlib) - $(meson_native_use_bool kernel-install) - $(meson_native_use_bool kmod) - $(meson_use lz4) - $(meson_use lzma xz) - $(meson_use test tests) - $(meson_use zstd) - $(meson_native_use_bool iptables libiptc) - $(meson_native_use_bool openssl) - $(meson_use pam) - $(meson_native_use_bool pkcs11 p11kit) - $(meson_native_use_bool pcre pcre2) - $(meson_native_use_bool policykit polkit) - $(meson_native_use_bool pwquality) - $(meson_native_use_bool qrcode qrencode) - $(meson_native_use_bool seccomp) - $(meson_native_use_bool selinux) - $(meson_native_use_bool tpm tpm2) - $(meson_native_use_bool test dbus) - $(meson_native_use_bool ukify) - $(meson_native_use_bool xkb xkbcommon) - -Dntp-servers="0.gentoo.pool.ntp.org 1.gentoo.pool.ntp.org 2.gentoo.pool.ntp.org 3.gentoo.pool.ntp.org" - # Breaks screen, tmux, etc. - -Ddefault-kill-user-processes=false - -Dcreate-log-dirs=false - - # multilib options - $(meson_native_true backlight) - $(meson_native_true binfmt) - $(meson_native_true coredump) - $(meson_native_true environment-d) - $(meson_native_true firstboot) - $(meson_native_true hibernate) - $(meson_native_true hostnamed) - $(meson_native_true ldconfig) - $(meson_native_true localed) - $(meson_native_true man) - $(meson_native_true networkd) - $(meson_native_true quotacheck) - $(meson_native_true randomseed) - $(meson_native_true rfkill) - $(meson_native_true sysusers) - $(meson_native_true timedated) - $(meson_native_true timesyncd) - $(meson_native_true tmpfiles) - $(meson_native_true vconsole) - ) - - meson_src_configure "${myconf[@]}" -} - -multilib_src_test() { - unset DBUS_SESSION_BUS_ADDRESS XDG_RUNTIME_DIR - local -x COLUMNS=80 - meson_src_test --timeout-multiplier=10 -} - -multilib_src_install_all() { - local rootprefix=$(usex split-usr '' /usr) - local sbin=$(usex split-usr sbin bin) - - # meson doesn't know about docdir - mv "${ED}"/usr/share/doc/{systemd,${PF}} || die - - einstalldocs - dodoc "${FILESDIR}"/nsswitch.conf - - insinto /usr/lib/tmpfiles.d - doins "${FILESDIR}"/legacy.conf - - if ! use resolvconf; then - rm -f "${ED}${rootprefix}/${sbin}"/resolvconf || die - fi - - if ! use sysv-utils; then - rm "${ED}${rootprefix}/${sbin}"/{halt,init,poweroff,reboot,shutdown} || die - rm "${ED}"/usr/share/man/man1/init.1 || die - rm "${ED}"/usr/share/man/man8/{halt,poweroff,reboot,shutdown}.8 || die - fi - - # https://bugs.gentoo.org/761763 - rm -r "${ED}"/usr/lib/sysusers.d || die - - # Preserve empty dirs in /etc & /var, bug #437008 - keepdir /etc/{binfmt.d,modules-load.d,tmpfiles.d} - keepdir /etc/kernel/install.d - keepdir /etc/systemd/{network,system,user} - keepdir /etc/udev/rules.d - - keepdir /etc/udev/hwdb.d - - keepdir "${rootprefix}"/lib/systemd/{system-sleep,system-shutdown} - keepdir /usr/lib/{binfmt.d,modules-load.d} - keepdir /usr/lib/systemd/user-generators - keepdir /var/lib/systemd - keepdir /var/log/journal - - if use pam; then - if use selinux; then - newpamd "${FILESDIR}"/systemd-user-selinux.pam systemd-user - else - newpamd "${FILESDIR}"/systemd-user.pam systemd-user - fi - fi - - if use split-usr; then - # Avoid breaking boot/reboot - dosym ../../../lib/systemd/systemd /usr/lib/systemd/systemd - dosym ../../../lib/systemd/systemd-shutdown /usr/lib/systemd/systemd-shutdown - fi - - gen_usr_ldscript -a systemd udev - - if use kernel-install; then - # Dummy config, remove to make room for sys-kernel/installkernel - rm "${ED}/usr/lib/kernel/install.conf" || die - fi - - use ukify && python_fix_shebang "${ED}" - use boot && secureboot_auto_sign -} - -migrate_locale() { - local envd_locale_def="${EROOT}/etc/env.d/02locale" - local envd_locale=( "${EROOT}"/etc/env.d/??locale ) - local locale_conf="${EROOT}/etc/locale.conf" - - if [[ ! -L ${locale_conf} && ! -e ${locale_conf} ]]; then - # If locale.conf does not exist... - if [[ -e ${envd_locale} ]]; then - # ...either copy env.d/??locale if there's one - ebegin "Moving ${envd_locale} to ${locale_conf}" - mv "${envd_locale}" "${locale_conf}" - eend ${?} || FAIL=1 - else - # ...or create a dummy default - ebegin "Creating ${locale_conf}" - cat > "${locale_conf}" <<-EOF - # This file has been created by the sys-apps/systemd ebuild. - # See locale.conf(5) and localectl(1). - - # LANG=${LANG} - EOF - eend ${?} || FAIL=1 - fi - fi - - if [[ ! -L ${envd_locale} ]]; then - # now, if env.d/??locale is not a symlink (to locale.conf)... - if [[ -e ${envd_locale} ]]; then - # ...warn the user that he has duplicate locale settings - ewarn - ewarn "To ensure consistent behavior, you should replace ${envd_locale}" - ewarn "with a symlink to ${locale_conf}. Please migrate your settings" - ewarn "and create the symlink with the following command:" - ewarn "ln -s -n -f ../locale.conf ${envd_locale}" - ewarn - else - # ...or just create the symlink if there's nothing here - ebegin "Creating ${envd_locale_def} -> ../locale.conf symlink" - ln -n -s ../locale.conf "${envd_locale_def}" - eend ${?} || FAIL=1 - fi - fi -} - -pkg_preinst() { - if [[ -e ${EROOT}/etc/sysctl.conf ]]; then - # Symlink /etc/sysctl.conf for easy migration. - dosym ../../../etc/sysctl.conf /usr/lib/sysctl.d/99-sysctl.conf - fi - - if ! use split-usr; then - local dir - for dir in bin sbin lib usr/sbin; do - if [[ ! -L ${EROOT}/${dir} ]]; then - eerror "'${EROOT}/${dir}' is not a symbolic link." - FAIL=1 - fi - done - if [[ ${FAIL} ]]; then - eerror "Migration to system layout with merged directories must be performed before" - eerror "installing ${CATEGORY}/${PN} with USE=\"-split-usr\" to avoid run-time breakage." - die "System layout with split directories still used" - fi - fi - if ! use boot && has_version "sys-apps/systemd[gnuefi(-)]"; then - ewarn "The 'gnuefi' USE flag has been renamed to 'boot'." - ewarn "Make sure to enable the 'boot' USE flag if you use systemd-boot." - fi -} - -pkg_postinst() { - systemd_update_catalog - - # Keep this here in case the database format changes so it gets updated - # when required. - systemd-hwdb --root="${ROOT}" update - - udev_reload || FAIL=1 - - # Bug 465468, make sure locales are respected, and ensure consistency - # between OpenRC & systemd - migrate_locale - - if [[ -z ${REPLACING_VERSIONS} ]]; then - if type systemctl &>/dev/null; then - systemctl --root="${ROOT:-/}" enable getty@.service remote-fs.target || FAIL=1 - fi - elog "To enable a useful set of services, run the following:" - elog " systemctl preset-all --preset-mode=enable-only" - fi - - if [[ -L ${EROOT}/var/lib/systemd/timesync ]]; then - rm "${EROOT}/var/lib/systemd/timesync" - fi - - if [[ ${FAIL} ]]; then - eerror "One of the postinst commands failed. Please check the postinst output" - eerror "for errors. You may need to clean up your system and/or try installing" - eerror "systemd again." - eerror - fi - - if use boot; then - optfeature "installing kernels in systemd-boot's native layout and update loader entries" \ - "sys-kernel/installkernel[systemd-boot]" - fi - if use ukify; then - optfeature "generating unified kernel image on each kernel installation" \ - "sys-kernel/installkernel[ukify]" - fi -} - -pkg_prerm() { - # If removing systemd completely, remove the catalog database. - if [[ ! ${REPLACED_BY_VERSION} ]]; then - rm -f -v "${EROOT}"/var/lib/systemd/catalog/database - fi -} diff --git a/sys-apps/systemd/systemd-254.24.ebuild b/sys-apps/systemd/systemd-254.24.ebuild deleted file mode 100644 index ab7340e9f25b4..0000000000000 --- a/sys-apps/systemd/systemd-254.24.ebuild +++ /dev/null @@ -1,539 +0,0 @@ -# Copyright 2011-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 -PYTHON_COMPAT=( python3_{10..13} ) - -# Avoid QA warnings -TMPFILES_OPTIONAL=1 -UDEV_OPTIONAL=1 - -QA_PKGCONFIG_VERSION=$(ver_cut 1) - -if [[ ${PV} == 9999 ]]; then - EGIT_REPO_URI="https://github.com/systemd/systemd.git" - inherit git-r3 -else - if [[ ${PV} == *.* ]]; then - MY_PN=systemd-stable - else - MY_PN=systemd - fi - MY_PV=${PV/_/-} - MY_P=${MY_PN}-${MY_PV} - S=${WORKDIR}/${MY_P} - SRC_URI="https://github.com/systemd/${MY_PN}/archive/v${MY_PV}/${MY_P}.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -fi - -inherit bash-completion-r1 linux-info meson-multilib optfeature pam python-single-r1 -inherit secureboot systemd toolchain-funcs udev usr-ldscript - -DESCRIPTION="System and service manager for Linux" -HOMEPAGE="http://systemd.io/" - -LICENSE="GPL-2 LGPL-2.1 MIT public-domain" -SLOT="0/2" -IUSE=" - acl apparmor audit boot cgroup-hybrid cryptsetup curl +dns-over-tls elfutils - fido2 +gcrypt gnutls homed http idn importd iptables +kernel-install +kmod - +lz4 lzma +openssl pam pcre pkcs11 policykit pwquality qrcode - +resolvconf +seccomp selinux split-usr +sysv-utils test tpm ukify vanilla xkb +zstd -" -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} - dns-over-tls? ( || ( gnutls openssl ) ) - fido2? ( cryptsetup openssl ) - homed? ( cryptsetup pam openssl ) - importd? ( curl lzma || ( gcrypt openssl ) ) - pwquality? ( homed ) - boot? ( kernel-install ) - ukify? ( boot ) -" -RESTRICT="!test? ( test )" - -MINKV="4.15" - -COMMON_DEPEND=" - >=sys-apps/util-linux-2.30:0=[${MULTILIB_USEDEP}] - sys-libs/libcap:0=[${MULTILIB_USEDEP}] - virtual/libcrypt:=[${MULTILIB_USEDEP}] - acl? ( sys-apps/acl:0= ) - apparmor? ( sys-libs/libapparmor:0= ) - audit? ( >=sys-process/audit-2:0= ) - cryptsetup? ( >=sys-fs/cryptsetup-2.0.1:0= ) - curl? ( net-misc/curl:0= ) - elfutils? ( >=dev-libs/elfutils-0.158:0= ) - fido2? ( dev-libs/libfido2:0= ) - gcrypt? ( >=dev-libs/libgcrypt-1.4.5:0=[${MULTILIB_USEDEP}] ) - gnutls? ( >=net-libs/gnutls-3.6.0:0= ) - http? ( >=net-libs/libmicrohttpd-0.9.33:0=[epoll(+)] ) - idn? ( net-dns/libidn2:= ) - importd? ( - app-arch/bzip2:0= - sys-libs/zlib:0= - ) - kmod? ( >=sys-apps/kmod-15:0= ) - lz4? ( >=app-arch/lz4-0_p131:0=[${MULTILIB_USEDEP}] ) - lzma? ( >=app-arch/xz-utils-5.0.5-r1:0=[${MULTILIB_USEDEP}] ) - iptables? ( net-firewall/iptables:0= ) - openssl? ( >=dev-libs/openssl-1.1.0:0= ) - pam? ( sys-libs/pam:=[${MULTILIB_USEDEP}] ) - pkcs11? ( app-crypt/p11-kit:0= ) - pcre? ( dev-libs/libpcre2 ) - pwquality? ( dev-libs/libpwquality:0= ) - qrcode? ( media-gfx/qrencode:0= ) - seccomp? ( >=sys-libs/libseccomp-2.3.3:0= ) - selinux? ( sys-libs/libselinux:0= ) - tpm? ( app-crypt/tpm2-tss:0= ) - xkb? ( >=x11-libs/libxkbcommon-0.4.1:0= ) - zstd? ( >=app-arch/zstd-1.4.0:0=[${MULTILIB_USEDEP}] ) -" - -# Newer linux-headers needed by ia64, bug #480218 -DEPEND="${COMMON_DEPEND} - >=sys-kernel/linux-headers-${MINKV} -" - -PEFILE_DEPEND='dev-python/pefile[${PYTHON_USEDEP}]' - -# baselayout-2.2 has /run -RDEPEND="${COMMON_DEPEND} - >=acct-group/adm-0-r1 - >=acct-group/wheel-0-r1 - >=acct-group/kmem-0-r1 - >=acct-group/tty-0-r1 - >=acct-group/utmp-0-r1 - >=acct-group/audio-0-r1 - >=acct-group/cdrom-0-r1 - >=acct-group/dialout-0-r1 - >=acct-group/disk-0-r1 - >=acct-group/input-0-r1 - >=acct-group/kvm-0-r1 - >=acct-group/lp-0-r1 - >=acct-group/render-0-r1 - acct-group/sgx - >=acct-group/tape-0-r1 - acct-group/users - >=acct-group/video-0-r1 - >=acct-group/systemd-journal-0-r1 - >=acct-user/root-0-r1 - acct-user/nobody - >=acct-user/systemd-journal-remote-0-r1 - >=acct-user/systemd-coredump-0-r1 - >=acct-user/systemd-network-0-r1 - acct-user/systemd-oom - >=acct-user/systemd-resolve-0-r1 - >=acct-user/systemd-timesync-0-r1 - >=sys-apps/baselayout-2.2 - ukify? ( - ${PYTHON_DEPS} - $(python_gen_cond_dep "${PEFILE_DEPEND}") - ) - selinux? ( - sec-policy/selinux-base-policy[systemd] - sec-policy/selinux-ntp - ) - sysv-utils? ( - !sys-apps/openrc[sysv-utils(-)] - !sys-apps/sysvinit - ) - !sysv-utils? ( sys-apps/sysvinit ) - resolvconf? ( !net-dns/openresolv ) - !sys-auth/nss-myhostname - !sys-fs/eudev - !sys-fs/udev -" - -# sys-apps/dbus: the daemon only (+ build-time lib dep for tests) -PDEPEND=">=sys-apps/dbus-1.9.8[systemd] - >=sys-fs/udev-init-scripts-34 - policykit? ( sys-auth/polkit ) - !vanilla? ( sys-apps/gentoo-systemd-integration )" - -BDEPEND=" - app-arch/xz-utils:0 - dev-util/gperf - >=dev-build/meson-0.46 - >=sys-apps/coreutils-8.16 - sys-devel/gettext - virtual/pkgconfig - test? ( - app-text/tree - dev-lang/perl - sys-apps/dbus - ) - app-text/docbook-xml-dtd:4.2 - app-text/docbook-xml-dtd:4.5 - app-text/docbook-xsl-stylesheets - dev-libs/libxslt:0 - ${PYTHON_DEPS} - $(python_gen_cond_dep " - dev-python/jinja2[\${PYTHON_USEDEP}] - dev-python/lxml[\${PYTHON_USEDEP}] - boot? ( >=dev-python/pyelftools-0.30[\${PYTHON_USEDEP}] ) - ukify? ( test? ( ${PEFILE_DEPEND} ) ) - ") -" - -QA_FLAGS_IGNORED="usr/lib/systemd/boot/efi/.*" -QA_EXECSTACK="usr/lib/systemd/boot/efi/*" - -pkg_pretend() { - if [[ ${MERGE_TYPE} != buildonly ]]; then - local CONFIG_CHECK="~BLK_DEV_BSG ~CGROUPS - ~CGROUP_BPF ~DEVTMPFS ~EPOLL ~FANOTIFY ~FHANDLE - ~INOTIFY_USER ~IPV6 ~NET ~NET_NS ~PROC_FS ~SIGNALFD ~SYSFS - ~TIMERFD ~TMPFS_XATTR ~UNIX ~USER_NS - ~CRYPTO_HMAC ~CRYPTO_SHA256 ~CRYPTO_USER_API_HASH - ~!GRKERNSEC_PROC ~!IDE ~!SYSFS_DEPRECATED - ~!SYSFS_DEPRECATED_V2" - - use acl && CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" - use seccomp && CONFIG_CHECK+=" ~SECCOMP ~SECCOMP_FILTER" - - if kernel_is -ge 5 10 20; then - CONFIG_CHECK+=" ~KCMP" - else - CONFIG_CHECK+=" ~CHECKPOINT_RESTORE" - fi - - if kernel_is -ge 4 18; then - CONFIG_CHECK+=" ~AUTOFS_FS" - else - CONFIG_CHECK+=" ~AUTOFS4_FS" - fi - - if linux_config_exists; then - local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH) - if [[ -n ${uevent_helper_path} ]] && [[ ${uevent_helper_path} != '""' ]]; then - ewarn "It's recommended to set an empty value to the following kernel config option:" - ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}" - fi - if linux_chkconfig_present X86; then - CONFIG_CHECK+=" ~DMIID" - fi - fi - - if kernel_is -lt ${MINKV//./ }; then - ewarn "Kernel version at least ${MINKV} required" - fi - - check_extra_config - fi -} - -pkg_setup() { - use boot && secureboot_pkg_setup -} - -src_unpack() { - default - [[ ${PV} != 9999 ]] || git-r3_src_unpack -} - -src_prepare() { - local PATCHES=( - "${FILESDIR}/systemd-test-process-util.patch" - "${FILESDIR}/systemd-253-initrd-generators.patch" - "${FILESDIR}/254-PrivateDevices-userdbd.patch" - ) - - if ! use vanilla; then - PATCHES+=( - "${FILESDIR}/gentoo-generator-path-r2.patch" - "${FILESDIR}/gentoo-journald-audit-r1.patch" - ) - fi - - # Fails with split-usr. - sed -i -e '2i exit 77' test/test-rpm-macros.sh || die - - default -} - -src_configure() { - # Prevent conflicts with i686 cross toolchain, bug 559726 - tc-export AR CC NM OBJCOPY RANLIB - - python_setup - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --localstatedir="${EPREFIX}/var" - -Dsupport-url="https://gentoo.org/support/" - -Dpamlibdir="$(getpam_mod_dir)" - # avoid bash-completion dep - -Dbashcompletiondir="$(get_bashcompdir)" - $(meson_use split-usr) - $(meson_use split-usr split-bin) - -Drootprefix="$(usex split-usr "${EPREFIX:-/}" "${EPREFIX}/usr")" - -Drootlibdir="${EPREFIX}/usr/$(get_libdir)" - # Disable compatibility with sysvinit - -Dsysvinit-path= - -Dsysvrcnd-path= - # Avoid infinite exec recursion, bug 642724 - -Dtelinit-path="${EPREFIX}/lib/sysvinit/telinit" - # no deps - -Dima=true - -Ddefault-hierarchy=$(usex cgroup-hybrid hybrid unified) - # Optional components/dependencies - $(meson_native_use_bool acl) - $(meson_native_use_bool apparmor) - $(meson_native_use_bool audit) - $(meson_native_use_bool boot bootloader) - $(meson_native_use_bool cryptsetup libcryptsetup) - $(meson_native_use_bool curl libcurl) - $(meson_native_use_bool dns-over-tls dns-over-tls) - $(meson_native_use_bool elfutils) - $(meson_native_use_bool fido2 libfido2) - $(meson_use gcrypt) - $(meson_native_use_bool gnutls) - $(meson_native_use_bool homed) - $(meson_native_use_bool http microhttpd) - $(meson_native_use_bool idn) - $(meson_native_use_bool importd) - $(meson_native_use_bool importd bzip2) - $(meson_native_use_bool importd zlib) - $(meson_native_use_bool kernel-install) - $(meson_native_use_bool kmod) - $(meson_use lz4) - $(meson_use lzma xz) - $(meson_use test tests) - $(meson_use zstd) - $(meson_native_use_bool iptables libiptc) - $(meson_native_use_bool openssl) - $(meson_use pam) - $(meson_native_use_bool pkcs11 p11kit) - $(meson_native_use_bool pcre pcre2) - $(meson_native_use_bool policykit polkit) - $(meson_native_use_bool pwquality) - $(meson_native_use_bool qrcode qrencode) - $(meson_native_use_bool seccomp) - $(meson_native_use_bool selinux) - $(meson_native_use_bool tpm tpm2) - $(meson_native_use_bool test dbus) - $(meson_native_use_bool ukify) - $(meson_native_use_bool xkb xkbcommon) - -Dntp-servers="0.gentoo.pool.ntp.org 1.gentoo.pool.ntp.org 2.gentoo.pool.ntp.org 3.gentoo.pool.ntp.org" - # Breaks screen, tmux, etc. - -Ddefault-kill-user-processes=false - -Dcreate-log-dirs=false - - # multilib options - $(meson_native_true backlight) - $(meson_native_true binfmt) - $(meson_native_true coredump) - $(meson_native_true environment-d) - $(meson_native_true firstboot) - $(meson_native_true hibernate) - $(meson_native_true hostnamed) - $(meson_native_true ldconfig) - $(meson_native_true localed) - $(meson_native_true man) - $(meson_native_true networkd) - $(meson_native_true quotacheck) - $(meson_native_true randomseed) - $(meson_native_true rfkill) - $(meson_native_true sysusers) - $(meson_native_true timedated) - $(meson_native_true timesyncd) - $(meson_native_true tmpfiles) - $(meson_native_true vconsole) - ) - - meson_src_configure "${myconf[@]}" -} - -multilib_src_test() { - unset DBUS_SESSION_BUS_ADDRESS XDG_RUNTIME_DIR - local -x COLUMNS=80 - meson_src_test --timeout-multiplier=10 -} - -multilib_src_install_all() { - local rootprefix=$(usex split-usr '' /usr) - local sbin=$(usex split-usr sbin bin) - - # meson doesn't know about docdir - mv "${ED}"/usr/share/doc/{systemd,${PF}} || die - - einstalldocs - dodoc "${FILESDIR}"/nsswitch.conf - - insinto /usr/lib/tmpfiles.d - doins "${FILESDIR}"/legacy.conf - - if ! use resolvconf; then - rm -f "${ED}${rootprefix}/${sbin}"/resolvconf || die - fi - - if ! use sysv-utils; then - rm "${ED}${rootprefix}/${sbin}"/{halt,init,poweroff,reboot,shutdown} || die - rm "${ED}"/usr/share/man/man1/init.1 || die - rm "${ED}"/usr/share/man/man8/{halt,poweroff,reboot,shutdown}.8 || die - fi - - # https://bugs.gentoo.org/761763 - rm -r "${ED}"/usr/lib/sysusers.d || die - - # Preserve empty dirs in /etc & /var, bug #437008 - keepdir /etc/{binfmt.d,modules-load.d,tmpfiles.d} - keepdir /etc/kernel/install.d - keepdir /etc/systemd/{network,system,user} - keepdir /etc/udev/rules.d - - keepdir /etc/udev/hwdb.d - - keepdir "${rootprefix}"/lib/systemd/{system-sleep,system-shutdown} - keepdir /usr/lib/{binfmt.d,modules-load.d} - keepdir /usr/lib/systemd/user-generators - keepdir /var/lib/systemd - keepdir /var/log/journal - - if use pam; then - if use selinux; then - newpamd "${FILESDIR}"/systemd-user-selinux.pam systemd-user - else - newpamd "${FILESDIR}"/systemd-user.pam systemd-user - fi - fi - - if use split-usr; then - # Avoid breaking boot/reboot - dosym ../../../lib/systemd/systemd /usr/lib/systemd/systemd - dosym ../../../lib/systemd/systemd-shutdown /usr/lib/systemd/systemd-shutdown - fi - - gen_usr_ldscript -a systemd udev - - if use kernel-install; then - # Dummy config, remove to make room for sys-kernel/installkernel - rm "${ED}/usr/lib/kernel/install.conf" || die - fi - - use ukify && python_fix_shebang "${ED}" - use boot && secureboot_auto_sign -} - -migrate_locale() { - local envd_locale_def="${EROOT}/etc/env.d/02locale" - local envd_locale=( "${EROOT}"/etc/env.d/??locale ) - local locale_conf="${EROOT}/etc/locale.conf" - - if [[ ! -L ${locale_conf} && ! -e ${locale_conf} ]]; then - # If locale.conf does not exist... - if [[ -e ${envd_locale} ]]; then - # ...either copy env.d/??locale if there's one - ebegin "Moving ${envd_locale} to ${locale_conf}" - mv "${envd_locale}" "${locale_conf}" - eend ${?} || FAIL=1 - else - # ...or create a dummy default - ebegin "Creating ${locale_conf}" - cat > "${locale_conf}" <<-EOF - # This file has been created by the sys-apps/systemd ebuild. - # See locale.conf(5) and localectl(1). - - # LANG=${LANG} - EOF - eend ${?} || FAIL=1 - fi - fi - - if [[ ! -L ${envd_locale} ]]; then - # now, if env.d/??locale is not a symlink (to locale.conf)... - if [[ -e ${envd_locale} ]]; then - # ...warn the user that he has duplicate locale settings - ewarn - ewarn "To ensure consistent behavior, you should replace ${envd_locale}" - ewarn "with a symlink to ${locale_conf}. Please migrate your settings" - ewarn "and create the symlink with the following command:" - ewarn "ln -s -n -f ../locale.conf ${envd_locale}" - ewarn - else - # ...or just create the symlink if there's nothing here - ebegin "Creating ${envd_locale_def} -> ../locale.conf symlink" - ln -n -s ../locale.conf "${envd_locale_def}" - eend ${?} || FAIL=1 - fi - fi -} - -pkg_preinst() { - if [[ -e ${EROOT}/etc/sysctl.conf ]]; then - # Symlink /etc/sysctl.conf for easy migration. - dosym ../../../etc/sysctl.conf /usr/lib/sysctl.d/99-sysctl.conf - fi - - if ! use split-usr; then - local dir - for dir in bin sbin lib usr/sbin; do - if [[ ! -L ${EROOT}/${dir} ]]; then - eerror "'${EROOT}/${dir}' is not a symbolic link." - FAIL=1 - fi - done - if [[ ${FAIL} ]]; then - eerror "Migration to system layout with merged directories must be performed before" - eerror "installing ${CATEGORY}/${PN} with USE=\"-split-usr\" to avoid run-time breakage." - die "System layout with split directories still used" - fi - fi - if ! use boot && has_version "sys-apps/systemd[gnuefi(-)]"; then - ewarn "The 'gnuefi' USE flag has been renamed to 'boot'." - ewarn "Make sure to enable the 'boot' USE flag if you use systemd-boot." - fi -} - -pkg_postinst() { - systemd_update_catalog - - # Keep this here in case the database format changes so it gets updated - # when required. - systemd-hwdb --root="${ROOT}" update - - udev_reload || FAIL=1 - - # Bug 465468, make sure locales are respected, and ensure consistency - # between OpenRC & systemd - migrate_locale - - if [[ -z ${REPLACING_VERSIONS} ]]; then - if type systemctl &>/dev/null; then - systemctl --root="${ROOT:-/}" enable getty@.service remote-fs.target || FAIL=1 - fi - elog "To enable a useful set of services, run the following:" - elog " systemctl preset-all --preset-mode=enable-only" - fi - - if [[ -L ${EROOT}/var/lib/systemd/timesync ]]; then - rm "${EROOT}/var/lib/systemd/timesync" - fi - - if [[ ${FAIL} ]]; then - eerror "One of the postinst commands failed. Please check the postinst output" - eerror "for errors. You may need to clean up your system and/or try installing" - eerror "systemd again." - eerror - fi - - if use boot; then - optfeature "installing kernels in systemd-boot's native layout and update loader entries" \ - "sys-kernel/installkernel[systemd-boot]" - fi - if use ukify; then - optfeature "generating unified kernel image on each kernel installation" \ - "sys-kernel/installkernel[ukify]" - fi -} - -pkg_prerm() { - # If removing systemd completely, remove the catalog database. - if [[ ! ${REPLACED_BY_VERSION} ]]; then - rm -f -v "${EROOT}"/var/lib/systemd/catalog/database - fi -} From 309a9926db74a39600bd9dee5e739ce1db1fb28f Mon Sep 17 00:00:00 2001 From: Mike Gilbert Date: Tue, 3 Jun 2025 17:07:38 -0400 Subject: [PATCH 02/53] profiles/features/split-usr: mask systemd USE flag Signed-off-by: Mike Gilbert --- profiles/features/split-usr/package.mask | 21 +++++++++++++++++--- profiles/features/split-usr/package.use.mask | 10 ++++++++++ profiles/features/split-usr/use.mask | 6 +++++- 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/profiles/features/split-usr/package.mask b/profiles/features/split-usr/package.mask index 3a36d4e863695..4ef0df394887f 100644 --- a/profiles/features/split-usr/package.mask +++ b/profiles/features/split-usr/package.mask @@ -1,8 +1,23 @@ -# Copyright 2023-2024 Gentoo Authors +# Copyright 2023-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Mike Gilbert (2025-06-03) +# Requires systemd. +app-admin/mkosi +app-admin/systemdgenie +dev-python/python-systemd +gnome-extra/gnome-logs +gnome-extra/office-runner +net-vpn/microsoft-azurevpnclient +sys-apps/gentoo-systemd-integration +sys-apps/intune-portal +sys-apps/systemd-readahead +sys-block/wait-for-dri-devices-rules +sys-power/sandmann-bin +www-misc/profile-sync-daemon + # Andreas K. Hüttel (2023-12-07) # Does not support split-usr filesystem geometry. Please migrate to # a merged-usr profile. ->=sys-apps/systemd-255 ->=sys-process/systemd-cron-2.3.4-r1 +sys-apps/systemd +sys-process/systemd-cron diff --git a/profiles/features/split-usr/package.use.mask b/profiles/features/split-usr/package.use.mask index 686cb944a8625..b3c950c12ed78 100644 --- a/profiles/features/split-usr/package.use.mask +++ b/profiles/features/split-usr/package.use.mask @@ -1,6 +1,16 @@ # Copyright 2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Mike Gilbert (2025-06-03) +# Requires systemd. +app-emulation/virt-firmware test +dev-qt/qtbase journald +net-analyzer/wireshark sdjournal +sys-apps/dbus-broker launcher +sys-auth/pambase homed +sys-apps/ipmitool openbmc +www-servers/uwsgi uwsgi_plugins_systemd_logger + # Nowa Ammerlaan (2023-12-07) # Does not support split-usr filesystem geometry. Please migrate to # a merged-usr profile. diff --git a/profiles/features/split-usr/use.mask b/profiles/features/split-usr/use.mask index 70a8ffe0514d4..d3ac3e3c86e5d 100644 --- a/profiles/features/split-usr/use.mask +++ b/profiles/features/split-usr/use.mask @@ -1,6 +1,10 @@ -# Copyright 2022 Gentoo Authors +# Copyright 2022-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Mike Gilbert (2025-05-27) +# systemd does not support split-usr. +systemd + # Andreas K. Hüttel (2022-12-04) # Unmask split-usr. -split-usr From eaee61e24ebefc19c7c1341e75507b5c36868288 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sat, 12 Apr 2025 18:15:05 +0200 Subject: [PATCH 03/53] distutils-r1.eclass: Remove `distutils_enable_tests setup.py` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny Part-of: https://github.com/gentoo/gentoo/pull/41560 Signed-off-by: Michał Górny --- eclass/distutils-r1.eclass | 9 --------- 1 file changed, 9 deletions(-) diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index 62e092b6231fa..1f02660358af8 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -617,8 +617,6 @@ distutils_enable_sphinx() { # # - pytest: dev-python/pytest # -# - setup.py: setup.py test (no deps included; deprecated) -# # - unittest: for built-in Python unittest module # # This function is meant as a helper for common use cases, and it only @@ -662,10 +660,6 @@ distutils_enable_tests() { ")" fi ;; - setup.py) - eqawarn "QA Notice: 'distutils_enable_tests setup.py' is deprecated and will be removed." - eqawarn "Please use unittest or pytest instead." - ;; unittest) ;; *) @@ -1641,9 +1635,6 @@ distutils-r1_python_test() { pytest) epytest ;; - setup.py) - nonfatal esetup.py test --verbose - ;; unittest) eunittest ;; From 7972a9082e7d43371ff10f54004ef3806fb16231 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sat, 12 Apr 2025 18:23:42 +0200 Subject: [PATCH 04/53] distutils-r1.eclass: Remove legacy mode support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny Part-of: https://github.com/gentoo/gentoo/pull/41560 Signed-off-by: Michał Górny --- eclass/distutils-r1.eclass | 849 ++++++++++--------------------------- 1 file changed, 227 insertions(+), 622 deletions(-) diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index 1f02660358af8..a264ebcb0392a 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -92,20 +92,9 @@ # @ECLASS_VARIABLE: DISTUTILS_USE_PEP517 # @PRE_INHERIT -# @DEFAULT_UNSET +# @REQUIRED # @DESCRIPTION: -# Enable the PEP517 mode for the specified build system. In this mode, -# the complete build and install is done in python_compile(), -# a venv-style install tree is provided to python_test(), -# and python_install() just merges the temporary install tree -# into the real fs. -# -# This mode is recommended for Python packages. However, some packages -# using custom hacks on top of distutils/setuptools may not install -# correctly in this mode. Please verify the list of installed files -# when using it. -# -# The variable specifies the build system used. Currently, +# Specifies the PEP517 build system used for the package. Currently, # the following values are supported: # # - flit - flit-core backend @@ -150,7 +139,6 @@ # entry point listed in pyproject.toml. # # The special value "no" indicates that the package has no build system. -# This is not equivalent to unset DISTUTILS_USE_PEP517 (legacy mode). # It causes the eclass not to include any build system dependencies # and to disable default python_compile() and python_install() # implementations. Baseline Python deps and phase functions will still @@ -180,33 +168,12 @@ # backends, for example regarding finding package files. When using # this option, please make sure that the package is installed correctly. -# @ECLASS_VARIABLE: DISTUTILS_USE_SETUPTOOLS -# @DEFAULT_UNSET -# @PRE_INHERIT -# @DESCRIPTION: -# Controls adding dev-python/setuptools dependency. The allowed values -# are: -# -# - no -- do not add the dependency (pure distutils package) -# -# - bdepend -- add it to BDEPEND (the default) -# -# - rdepend -- add it to BDEPEND+RDEPEND (e.g. when using pkg_resources) -# -# - manual -- do not add the dependency and suppress the checks -# (assumes you will take care of doing it correctly) -# -# This variable is effective only if DISTUTILS_OPTIONAL is disabled. -# It is available only in non-PEP517 mode. It needs to be set before -# the inherit line. - # @ECLASS_VARIABLE: DISTUTILS_DEPS # @OUTPUT_VARIABLE # @DESCRIPTION: # This is an eclass-generated build-time dependency string for the build # system packages. This string is automatically appended to BDEPEND -# unless DISTUTILS_OPTIONAL is used. This variable is available only -# in PEP517 mode. +# unless DISTUTILS_OPTIONAL is used. # # Example use: # @CODE @@ -269,117 +236,86 @@ fi _distutils_set_globals() { local rdep bdep - if [[ ${DISTUTILS_USE_PEP517} ]]; then - if [[ ${DISTUTILS_USE_SETUPTOOLS} ]]; then - die "DISTUTILS_USE_SETUPTOOLS is not used in PEP517 mode" - fi - - bdep=' - >=dev-python/gpep517-16[${PYTHON_USEDEP}] - ' - case ${DISTUTILS_USE_PEP517} in - flit) - bdep+=' - >=dev-python/flit-core-3.11.0[${PYTHON_USEDEP}] - ' - ;; - flit_scm) - bdep+=' - >=dev-python/flit-core-3.11.0[${PYTHON_USEDEP}] - >=dev-python/flit-scm-1.7.0[${PYTHON_USEDEP}] - ' - ;; - hatchling) - bdep+=' - >=dev-python/hatchling-1.27.0[${PYTHON_USEDEP}] - ' - ;; - jupyter) - bdep+=' - >=dev-python/jupyter-packaging-0.12.3[${PYTHON_USEDEP}] - ' - ;; - maturin) - bdep+=' - >=dev-util/maturin-1.8.2[${PYTHON_USEDEP}] - ' - ;; - no) - # undo the generic deps added above - bdep= - ;; - meson-python) - bdep+=' - >=dev-python/meson-python-0.17.1[${PYTHON_USEDEP}] - ' - ;; - pbr) - bdep+=' - >=dev-python/pbr-6.1.1[${PYTHON_USEDEP}] - ' - ;; - pdm-backend) - bdep+=' - >=dev-python/pdm-backend-2.4.3[${PYTHON_USEDEP}] - ' - ;; - poetry) - bdep+=' - >=dev-python/poetry-core-2.1.1[${PYTHON_USEDEP}] - ' - ;; - scikit-build-core) - bdep+=' - >=dev-python/scikit-build-core-0.10.7[${PYTHON_USEDEP}] - ' - ;; - setuptools) - bdep+=' - >=dev-python/setuptools-78.1.0[${PYTHON_USEDEP}] - ' - ;; - sip) - bdep+=' - >=dev-python/sip-6.10.0[${PYTHON_USEDEP}] - ' - ;; - standalone) - ;; - uv-build) - bdep+=' - dev-python/uv-build[${PYTHON_USEDEP}] - ' - ;; - *) - die "Unknown DISTUTILS_USE_PEP517=${DISTUTILS_USE_PEP517}" - ;; - esac - elif [[ ${DISTUTILS_OPTIONAL} ]]; then - if [[ ${DISTUTILS_USE_SETUPTOOLS} ]]; then - eqawarn "QA Notice: DISTUTILS_USE_SETUPTOOLS is not used when DISTUTILS_OPTIONAL" - eqawarn "is enabled." - fi - else - local setuptools_dep='>=dev-python/setuptools-78.1.0[${PYTHON_USEDEP}]' - - case ${DISTUTILS_USE_SETUPTOOLS:-bdepend} in - no|manual) - ;; - bdepend) - bdep+=" ${setuptools_dep}" - ;; - rdepend) - bdep+=" ${setuptools_dep}" - rdep+=" ${setuptools_dep}" - ;; - pyproject.toml) - die "DISTUTILS_USE_SETUPTOOLS=pyproject.toml is no longer supported, use DISTUTILS_USE_PEP517" - ;; - *) - die "Invalid DISTUTILS_USE_SETUPTOOLS=${DISTUTILS_USE_SETUPTOOLS}" - ;; - esac - fi + bdep=' + >=dev-python/gpep517-16[${PYTHON_USEDEP}] + ' + case ${DISTUTILS_USE_PEP517} in + flit) + bdep+=' + >=dev-python/flit-core-3.11.0[${PYTHON_USEDEP}] + ' + ;; + flit_scm) + bdep+=' + >=dev-python/flit-core-3.11.0[${PYTHON_USEDEP}] + >=dev-python/flit-scm-1.7.0[${PYTHON_USEDEP}] + ' + ;; + hatchling) + bdep+=' + >=dev-python/hatchling-1.27.0[${PYTHON_USEDEP}] + ' + ;; + jupyter) + bdep+=' + >=dev-python/jupyter-packaging-0.12.3[${PYTHON_USEDEP}] + ' + ;; + maturin) + bdep+=' + >=dev-util/maturin-1.8.2[${PYTHON_USEDEP}] + ' + ;; + no) + # undo the generic deps added above + bdep= + ;; + meson-python) + bdep+=' + >=dev-python/meson-python-0.17.1[${PYTHON_USEDEP}] + ' + ;; + pbr) + bdep+=' + >=dev-python/pbr-6.1.1[${PYTHON_USEDEP}] + ' + ;; + pdm-backend) + bdep+=' + >=dev-python/pdm-backend-2.4.3[${PYTHON_USEDEP}] + ' + ;; + poetry) + bdep+=' + >=dev-python/poetry-core-2.1.1[${PYTHON_USEDEP}] + ' + ;; + scikit-build-core) + bdep+=' + >=dev-python/scikit-build-core-0.10.7[${PYTHON_USEDEP}] + ' + ;; + setuptools) + bdep+=' + >=dev-python/setuptools-78.1.0[${PYTHON_USEDEP}] + ' + ;; + sip) + bdep+=' + >=dev-python/sip-6.10.0[${PYTHON_USEDEP}] + ' + ;; + standalone) + ;; + uv-build) + bdep+=' + dev-python/uv-build[${PYTHON_USEDEP}] + ' + ;; + *) + die "Unknown DISTUTILS_USE_PEP517=${DISTUTILS_USE_PEP517}" + ;; + esac if [[ ! ${DISTUTILS_SINGLE_IMPL} ]]; then bdep=${bdep//\$\{PYTHON_USEDEP\}/${PYTHON_USEDEP}} @@ -389,23 +325,16 @@ _distutils_set_globals() { [[ -n ${rdep} ]] && rdep="$(python_gen_cond_dep "${rdep}")" fi - if [[ ${DISTUTILS_USE_PEP517} ]]; then - if [[ ${DISTUTILS_DEPS+1} ]]; then - if [[ ${DISTUTILS_DEPS} != "${bdep}" ]]; then - eerror "DISTUTILS_DEPS have changed between inherits!" - eerror "Before: ${DISTUTILS_DEPS}" - eerror "Now : ${bdep}" - die "DISTUTILS_DEPS integrity check failed" - fi - else - DISTUTILS_DEPS=${bdep} - readonly DISTUTILS_DEPS + if [[ ${DISTUTILS_DEPS+1} ]]; then + if [[ ${DISTUTILS_DEPS} != "${bdep}" ]]; then + eerror "DISTUTILS_DEPS have changed between inherits!" + eerror "Before: ${DISTUTILS_DEPS}" + eerror "Now : ${bdep}" + die "DISTUTILS_DEPS integrity check failed" fi else - eqawarn "QA Notice: distutils-r1.eclass legacy mode is deprecated and will be removed." - eqawarn "Please migrate your ebuilds to use DISTUTILS_USE_PEP517 (common values" - eqawarn "are 'setuptools' for packages using setuptools/distutils," - eqawarn "and 'no' for packages using non-PEP517 build systems)." + DISTUTILS_DEPS=${bdep} + readonly DISTUTILS_DEPS fi if [[ ! ${DISTUTILS_OPTIONAL} ]]; then @@ -425,26 +354,6 @@ _distutils_set_globals() { _distutils_set_globals unset -f _distutils_set_globals -# @ECLASS_VARIABLE: DISTUTILS_IN_SOURCE_BUILD -# @DEFAULT_UNSET -# @DEPRECATED: (none) -# @DESCRIPTION: -# If set to a non-null value, in-source builds will be enabled. -# If unset, the default is to use in-source builds when python_prepare() -# is declared, and out-of-source builds otherwise. -# -# If in-source builds are used, the eclass will create a copy of package -# sources for each Python implementation in python_prepare_all(), -# and work on that copy afterwards. -# -# If out-of-source builds are used, the eclass will instead work -# on the sources directly, prepending setup.py arguments with -# 'build --build-base ${BUILD_DIR}' to enforce keeping & using built -# files in the specific root. -# -# In-source builds are deprecated and no longer supported in PEP517 -# mode. - # @ECLASS_VARIABLE: DISTUTILS_ALL_SUBPHASE_IMPLS # @DEFAULT_UNSET # @DESCRIPTION: @@ -704,21 +613,8 @@ esetup.py() { _python_check_EPYTHON - if [[ ${BUILD_DIR} && ! ${DISTUTILS_USE_PEP517} ]]; then - _distutils-r1_create_setup_cfg - fi - local setup_py=( setup.py ) if [[ ! -f setup.py ]]; then - # The following call can succeed even if the package does not - # feature any setuptools configuration. In non-PEP517 mode this - # could lead to installing an "empty" package. In PEP517 mode, - # we verify the build system when invoking the backend, - # rendering this check redundant (and broken for projects using - # pyproject.toml configuration). - if [[ ! ${DISTUTILS_USE_PEP517} && ! -f setup.cfg ]]; then - die "${FUNCNAME}: setup.py nor setup.cfg not found" - fi setup_py=( -c "from setuptools import setup; setup()" ) fi @@ -733,22 +629,9 @@ esetup.py() { "${@}" || die -n local ret=${?} - if [[ ${BUILD_DIR} && ! ${DISTUTILS_USE_PEP517} ]]; then - rm "${HOME}"/.pydistutils.cfg || die -n - fi - return ${ret} } -# @FUNCTION: distutils_install_for_testing -# @DEPRECATED: DISTUTILS_USE_PEP517=... -# @DESCRIPTION: -# This function used to provide an installed package for running tests. -# It is no longer implemented, PEP517 mode must be used instead. -distutils_install_for_testing() { - die "${FUNCNAME} has been removed, please use PEP517 mode instead" -} - # @FUNCTION: distutils_write_namespace # @USAGE: ... # @DESCRIPTION: @@ -761,8 +644,8 @@ distutils_install_for_testing() { distutils_write_namespace() { debug-print-function ${FUNCNAME} "$@" - if [[ ! ${DISTUTILS_USE_PEP517:-no} != no ]]; then - die "${FUNCNAME} is available only in PEP517 mode" + if [[ ${DISTUTILS_USE_PEP517} == no ]]; then + die "${FUNCNAME} is available only with PEP517 backends" fi if [[ ${EBUILD_PHASE} != test || ! ${BUILD_DIR} ]]; then die "${FUNCNAME} should only be used in python_test" @@ -785,45 +668,6 @@ distutils_write_namespace() { done } -# @FUNCTION: _distutils-r1_disable_ez_setup -# @INTERNAL -# @DESCRIPTION: -# Stub out ez_setup.py and distribute_setup.py to prevent packages -# from trying to download a local copy of setuptools. -_distutils-r1_disable_ez_setup() { - if [[ ${DISTUTILS_USE_PEP517} ]]; then - die "${FUNCNAME} is not implemented in PEP517 mode" - fi - - local stub="def use_setuptools(*args, **kwargs): pass" - if [[ -f ez_setup.py ]]; then - echo "${stub}" > ez_setup.py || die - fi - if [[ -f distribute_setup.py ]]; then - echo "${stub}" > distribute_setup.py || die - fi -} - -# @FUNCTION: _distutils-r1_handle_pyproject_toml -# @INTERNAL -# @DESCRIPTION: -# Verify whether DISTUTILS_USE_SETUPTOOLS is set correctly -# for pyproject.toml build systems (in non-PEP517 mode). -_distutils-r1_handle_pyproject_toml() { - if [[ ${DISTUTILS_USE_PEP517} ]]; then - die "${FUNCNAME} is not implemented in PEP517 mode" - fi - - [[ ${DISTUTILS_USE_SETUPTOOLS} == manual ]] && return - - if [[ ! -f setup.py && -f pyproject.toml ]]; then - eerror "No setup.py found but pyproject.toml is present. Please migrate" - eerror "the package to use DISTUTILS_USE_PEP517. See:" - eerror " https://projects.gentoo.org/python/guide/distutils.html" - die "No setup.py found and PEP517 mode not enabled" - fi -} - # @FUNCTION: _distutils-r1_check_all_phase_mismatch # @INTERNAL # @DESCRIPTION: @@ -845,114 +689,99 @@ _distutils-r1_check_all_phase_mismatch() { # Print the version of the relevant build system packages to aid # debugging. _distutils-r1_print_package_versions() { - local packages=() - - if [[ ${DISTUTILS_USE_PEP517} ]]; then + local packages=( + dev-python/gpep517 + dev-python/installer + ) + if [[ ${DISTUTILS_EXT} ]]; then packages+=( - dev-python/gpep517 - dev-python/installer + dev-python/cython ) - if [[ ${DISTUTILS_EXT} ]]; then - packages+=( - dev-python/cython - ) - fi - case ${DISTUTILS_USE_PEP517} in - flit) - packages+=( - dev-python/flit-core - ) - ;; - flit_scm) - packages+=( - dev-python/flit-core - dev-python/flit-scm - dev-python/setuptools-scm - ) - ;; - hatchling) - packages+=( - dev-python/hatchling - dev-python/hatch-fancy-pypi-readme - dev-python/hatch-vcs - ) - ;; - jupyter) - packages+=( - dev-python/jupyter-packaging - dev-python/setuptools - dev-python/setuptools-scm - dev-python/wheel - ) - ;; - maturin) - packages+=( - dev-util/maturin - ) - ;; - no) - return - ;; - meson-python) - packages+=( - dev-python/meson-python - ) - ;; - pbr) - packages+=( - dev-python/pbr - dev-python/setuptools - dev-python/wheel - ) - ;; - pdm-backend) - packages+=( - dev-python/pdm-backend - dev-python/setuptools - ) - ;; - poetry) - packages+=( - dev-python/poetry-core - ) - ;; - scikit-build-core) - packages+=( - dev-python/scikit-build-core - ) - ;; - setuptools) - packages+=( - dev-python/setuptools - dev-python/setuptools-rust - dev-python/setuptools-scm - dev-python/wheel - ) - ;; - sip) - packages+=( - dev-python/sip - ) - ;; - uv-build) - packages+=( - dev-python/uv - dev-python/uv-build - ) - ;; - esac - else - case ${DISTUTILS_USE_SETUPTOOLS} in - manual|no) - return - ;; - *) - packages+=( - dev-python/setuptools - ) - ;; - esac fi + case ${DISTUTILS_USE_PEP517} in + flit) + packages+=( + dev-python/flit-core + ) + ;; + flit_scm) + packages+=( + dev-python/flit-core + dev-python/flit-scm + dev-python/setuptools-scm + ) + ;; + hatchling) + packages+=( + dev-python/hatchling + dev-python/hatch-fancy-pypi-readme + dev-python/hatch-vcs + ) + ;; + jupyter) + packages+=( + dev-python/jupyter-packaging + dev-python/setuptools + dev-python/setuptools-scm + dev-python/wheel + ) + ;; + maturin) + packages+=( + dev-util/maturin + ) + ;; + no) + return + ;; + meson-python) + packages+=( + dev-python/meson-python + ) + ;; + pbr) + packages+=( + dev-python/pbr + dev-python/setuptools + dev-python/wheel + ) + ;; + pdm-backend) + packages+=( + dev-python/pdm-backend + dev-python/setuptools + ) + ;; + poetry) + packages+=( + dev-python/poetry-core + ) + ;; + scikit-build-core) + packages+=( + dev-python/scikit-build-core + ) + ;; + setuptools) + packages+=( + dev-python/setuptools + dev-python/setuptools-rust + dev-python/setuptools-scm + dev-python/wheel + ) + ;; + sip) + packages+=( + dev-python/sip + ) + ;; + uv-build) + packages+=( + dev-python/uv + dev-python/uv-build + ) + ;; + esac local pkg einfo "Build system packages:" @@ -979,104 +808,12 @@ distutils-r1_python_prepare_all() { default fi - # by default, use in-source build if python_prepare() is used - if [[ ! ${DISTUTILS_IN_SOURCE_BUILD+1} ]]; then - if declare -f python_prepare >/dev/null; then - DISTUTILS_IN_SOURCE_BUILD=1 - fi - fi - - if [[ ! ${DISTUTILS_USE_PEP517} ]]; then - _distutils-r1_disable_ez_setup - _distutils-r1_handle_pyproject_toml - fi - - if [[ ${DISTUTILS_IN_SOURCE_BUILD} && ! ${DISTUTILS_SINGLE_IMPL} ]] - then - # create source copies for each implementation - python_copy_sources - fi - python_export_utf8_locale _distutils-r1_print_package_versions _DISTUTILS_DEFAULT_CALLED=1 } -# @FUNCTION: _distutils-r1_create_setup_cfg -# @INTERNAL -# @DESCRIPTION: -# Create implementation-specific configuration file for distutils, -# setting proper build-dir (and install-dir) paths. -_distutils-r1_create_setup_cfg() { - if [[ ${DISTUTILS_USE_PEP517} ]]; then - die "${FUNCNAME} is not implemented in PEP517 mode" - fi - - cat > "${HOME}"/.pydistutils.cfg <<-_EOF_ || die - [build] - build_base = ${BUILD_DIR} - - # using a single directory for them helps us export - # ${PYTHONPATH} and ebuilds find the sources independently - # of whether the package installs extensions or not - # - # note: due to some packages (wxpython) relying on separate - # platlib & purelib dirs, we do not set --build-lib (which - # can not be overridden with --build-*lib) - build_platlib = %(build_base)s/lib - build_purelib = %(build_base)s/lib - - # make the ebuild writer lives easier - build_scripts = %(build_base)s/scripts - - # this is needed by distutils_install_for_testing since - # setuptools like to create .egg files for install --home. - [bdist_egg] - dist_dir = ${BUILD_DIR}/dist - - # avoid packing up eggs in a zip as it often breaks test suites - [options] - zip_safe = False - _EOF_ - - if [[ ${EBUILD_PHASE} == install ]]; then - # we can't refer to ${D} before src_install() - cat >> "${HOME}"/.pydistutils.cfg <<-_EOF_ || die - - # installation paths -- allow calling extra install targets - # without the default 'install' - [install] - compile = True - optimize = 2 - root = ${D} - _EOF_ - - if [[ ! ${DISTUTILS_SINGLE_IMPL} ]]; then - # this gets appended to [install] - cat >> "${HOME}"/.pydistutils.cfg <<-_EOF_ || die - install_scripts = $(python_get_scriptdir) - _EOF_ - fi - fi -} - -# @FUNCTION: _distutils-r1_copy_egg_info -# @INTERNAL -# @DESCRIPTION: -# Copy egg-info files to the ${BUILD_DIR} (that's going to become -# egg-base in esetup.py). This way, we respect whatever's in upstream -# egg-info. -_distutils-r1_copy_egg_info() { - if [[ ${DISTUTILS_USE_PEP517} ]]; then - die "${FUNCNAME} is not implemented in PEP517 mode" - fi - - mkdir -p "${BUILD_DIR}" || die - # stupid freebsd can't do 'cp -t ${BUILD_DIR} {} +' - find -name '*.egg-info' -type d -exec cp -R -p {} "${BUILD_DIR}"/ ';' || die -} - # @FUNCTION: _distutils-r1_key_to_backend # @USAGE: # @INTERNAL @@ -1279,8 +1016,8 @@ distutils_pep517_install() { debug-print-function ${FUNCNAME} "$@" [[ ${#} -eq 1 ]] || die "${FUNCNAME} takes exactly one argument: root" - if [[ ! ${DISTUTILS_USE_PEP517:-no} != no ]]; then - die "${FUNCNAME} is available only in PEP517 mode" + if [[ ${DISTUTILS_USE_PEP517} == no ]]; then + die "${FUNCNAME} is available only with PEP517 backend" fi local root=${1} @@ -1489,10 +1226,6 @@ declare -g -A DISTUTILS_WHEELS=() # If DISTUTILS_USE_PEP517 is set to any other value, builds a wheel # using the PEP517 backend and installs it into ${BUILD_DIR}/install. # Path to the wheel is then added to DISTUTILS_WHEELS array. -# -# In legacy mode, runs 'esetup.py build'. Any parameters passed to this -# function will be appended to setup.py invocation, i.e. passed -# as options to the 'build' command. distutils-r1_python_compile() { debug-print-function ${FUNCNAME} "$@" @@ -1500,13 +1233,6 @@ distutils-r1_python_compile() { [[ ${DISTUTILS_USE_PEP517} == no ]] && return - if [[ ! ${DISTUTILS_USE_PEP517} ]]; then - # legacy mode - _distutils-r1_copy_egg_info - esetup.py build -j "$(makeopts_jobs "${MAKEOPTS} ${*}")" "${@}" - return - fi - # we do this for all build systems, since other backends # and custom hooks may wrap setuptools # @@ -1651,14 +1377,8 @@ distutils-r1_python_test() { # @FUNCTION: distutils-r1_python_install # @USAGE: [additional-args...] # @DESCRIPTION: -# The default python_install(). -# -# In PEP517 mode, merges the files from ${BUILD_DIR}/install -# (if present) to the image directory. -# -# In the legacy mode, calls `esetup.py install` to install the package. -# Any parameters passed to this function will be appended -# to the setup.py invocation (i.e. as options to the 'install' command). +# The default python_install(). Merges the files +# from ${BUILD_DIR}/install (if present) to the image directory. distutils-r1_python_install() { debug-print-function ${FUNCNAME} "$@" @@ -1666,105 +1386,51 @@ distutils-r1_python_install() { local scriptdir=${EPREFIX}/usr/bin local merge_root= - if [[ ${DISTUTILS_USE_PEP517} ]]; then - local root=${BUILD_DIR}/install - local reg_scriptdir=${root}/${scriptdir} - local wrapped_scriptdir=${root}$(python_get_scriptdir) + local root=${BUILD_DIR}/install + local reg_scriptdir=${root}/${scriptdir} + local wrapped_scriptdir=${root}$(python_get_scriptdir) - # we are assuming that _distutils-r1_post_python_compile - # has been called and ${root} has not been altered since - # let's explicitly verify these assumptions + # we are assuming that _distutils-r1_post_python_compile + # has been called and ${root} has not been altered since + # let's explicitly verify these assumptions - # remove files that we've created explicitly - rm "${reg_scriptdir}"/{"${EPYTHON}",python3,python} || die - rm "${reg_scriptdir}"/../pyvenv.cfg || die + # remove files that we've created explicitly + rm "${reg_scriptdir}"/{"${EPYTHON}",python3,python} || die + rm "${reg_scriptdir}"/../pyvenv.cfg || die - # Automagically do the QA check to avoid issues when bootstrapping - # prefix. - if type diff &>/dev/null ; then - # verify that scriptdir & wrapped_scriptdir both contain - # the same files - ( - cd "${reg_scriptdir}" && find . -mindepth 1 - ) | sort > "${T}"/.distutils-files-bin - assert "listing ${reg_scriptdir} failed" - ( - if [[ -d ${wrapped_scriptdir} ]]; then - cd "${wrapped_scriptdir}" && find . -mindepth 1 - fi - ) | sort > "${T}"/.distutils-files-wrapped - assert "listing ${wrapped_scriptdir} failed" - if ! diff -U 0 "${T}"/.distutils-files-{bin,wrapped}; then - die "File lists for ${reg_scriptdir} and ${wrapped_scriptdir} differ (see diff above)" - fi - fi - - # remove the altered bindir, executables from the package - # are already in scriptdir - rm -r "${reg_scriptdir}" || die - if [[ ${DISTUTILS_SINGLE_IMPL} ]]; then + # Automagically do the QA check to avoid issues when bootstrapping + # prefix. + if type diff &>/dev/null ; then + # verify that scriptdir & wrapped_scriptdir both contain + # the same files + ( + cd "${reg_scriptdir}" && find . -mindepth 1 + ) | sort > "${T}"/.distutils-files-bin + assert "listing ${reg_scriptdir} failed" + ( if [[ -d ${wrapped_scriptdir} ]]; then - mv "${wrapped_scriptdir}" "${reg_scriptdir}" || die + cd "${wrapped_scriptdir}" && find . -mindepth 1 fi + ) | sort > "${T}"/.distutils-files-wrapped + assert "listing ${wrapped_scriptdir} failed" + if ! diff -U 0 "${T}"/.distutils-files-{bin,wrapped}; then + die "File lists for ${reg_scriptdir} and ${wrapped_scriptdir} differ (see diff above)" fi - # prune empty directories to see if ${root} contains anything - # to merge - find "${BUILD_DIR}"/install -type d -empty -delete || die - [[ -d ${BUILD_DIR}/install ]] && merge_root=1 - else - local root=${D}/_${EPYTHON} - [[ ${DISTUTILS_SINGLE_IMPL} ]] && root=${D} - - # inline DISTUTILS_ARGS logic from esetup.py in order to make - # argv overwriting easier - local args=( - "${DISTUTILS_ARGS[@]}" - "${mydistutilsargs[@]}" - install --skip-build --root="${root}" "${args[@]}" - "${@}" - ) - local DISTUTILS_ARGS=() - local mydistutilsargs=() - - # enable compilation for the install phase. - local -x PYTHONDONTWRITEBYTECODE= - - # python likes to compile any module it sees, which triggers sandbox - # failures if some packages haven't compiled their modules yet. - addpredict "${EPREFIX}/usr/lib/${EPYTHON}" - addpredict "${EPREFIX}/usr/local" # bug 498232 - - if [[ ! ${DISTUTILS_SINGLE_IMPL} ]]; then - merge_root=1 - - # user may override --install-scripts - # note: this is poor but distutils argv parsing is dumb - - # rewrite all the arguments - set -- "${args[@]}" - args=() - while [[ ${@} ]]; do - local a=${1} - shift - - case ${a} in - --install-scripts=*) - scriptdir=${a#--install-scripts=} - ;; - --install-scripts) - scriptdir=${1} - shift - ;; - *) - args+=( "${a}" ) - ;; - esac - done - fi - - esetup.py "${args[@]}" fi + # remove the altered bindir, executables from the package + # are already in scriptdir + rm -r "${reg_scriptdir}" || die + if [[ ${DISTUTILS_SINGLE_IMPL} ]]; then + if [[ -d ${wrapped_scriptdir} ]]; then + mv "${wrapped_scriptdir}" "${reg_scriptdir}" || die + fi + fi + # prune empty directories to see if ${root} contains anything + # to merge + find "${BUILD_DIR}"/install -type d -empty -delete || die + [[ -d ${BUILD_DIR}/install ]] && merge_root=1 + if [[ ${merge_root} ]]; then multibuild_merge_root "${root}" "${D}" fi @@ -1799,42 +1465,7 @@ distutils-r1_python_install_all() { distutils-r1_run_phase() { debug-print-function ${FUNCNAME} "$@" - if [[ ${DISTUTILS_IN_SOURCE_BUILD} ]]; then - [[ ${DISTUTILS_USE_PEP517} ]] && - die "DISTUTILS_IN_SOURCE_BUILD is not supported in PEP517 mode" - # only force BUILD_DIR if implementation is explicitly enabled - # for building; any-r1 API may select one that is not - # https://bugs.gentoo.org/701506 - if [[ ! ${DISTUTILS_SINGLE_IMPL} ]] && - has "${EPYTHON/./_}" ${PYTHON_TARGETS}; then - cd "${BUILD_DIR}" || die - fi - local BUILD_DIR=${BUILD_DIR}/build - fi - - if [[ ${DISTUTILS_USE_PEP517} ]]; then - local -x PATH=${BUILD_DIR}/install${EPREFIX}/usr/bin:${PATH} - else - local -x PYTHONPATH="${BUILD_DIR}/lib:${PYTHONPATH}" - - # make PATH local (for historical reasons) - local -x PATH=${PATH} - - if _python_impl_matches "${EPYTHON}" 3.{9..11}; then - # Undo the default switch in setuptools-60+ for the time being, - # to avoid replacing .egg-info file with directory in-place. - local -x SETUPTOOLS_USE_DISTUTILS="${SETUPTOOLS_USE_DISTUTILS:-stdlib}" - fi - - # Bug 559644 - # using PYTHONPATH when the ${BUILD_DIR}/lib is not created yet might lead to - # problems in setup.py scripts that try to import modules/packages from that path - # during the build process (Python at startup evaluates PYTHONPATH, if the dir is - # not valid then associates a NullImporter object to ${BUILD_DIR}/lib storing it - # in the sys.path_importer_cache) - mkdir -p "${BUILD_DIR}/lib" || die - fi - + local -x PATH=${BUILD_DIR}/install${EPREFIX}/usr/bin:${PATH} # Set up build environment, bug #513664. local -x AR=${AR} CC=${CC} CPP=${CPP} CXX=${CXX} tc-export AR CC CPP CXX @@ -2022,13 +1653,13 @@ _distutils-r1_compare_installed_files() { _distutils-r1_post_python_compile() { debug-print-function ${FUNCNAME} "$@" - if [[ ! ${_DISTUTILS_WHL_INSTALLED} && ${DISTUTILS_USE_PEP517:-no} != no ]] + if [[ ! ${_DISTUTILS_WHL_INSTALLED} && ${DISTUTILS_USE_PEP517} != no ]] then die "No wheel installed in python_compile(), did you call distutils-r1_python_compile?" fi local root=${BUILD_DIR}/install - if [[ ${DISTUTILS_USE_PEP517} && -d ${root} ]]; then + if [[ -d ${root} ]]; then # copy executables to python-exec directory # we do it early so that we can alter bindir recklessly local bindir=${root}${EPREFIX}/usr/bin @@ -2080,32 +1711,6 @@ distutils-r1_src_compile() { return ${ret} } -# @FUNCTION: _distutils-r1_clean_egg_info -# @INTERNAL -# @DESCRIPTION: -# Clean up potential stray egg-info files left by setuptools test phase. -# Those files ended up being unversioned, and caused issues: -# https://bugs.gentoo.org/534058 -_distutils-r1_clean_egg_info() { - if [[ ${DISTUTILS_USE_PEP517} ]]; then - die "${FUNCNAME} is not implemented in PEP517 mode" - fi - - rm -rf "${BUILD_DIR}"/lib/*.egg-info || die -} - -# @FUNCTION: _distutils-r1_post_python_test -# @INTERNAL -# @DESCRIPTION: -# Post-phase function called after python_test. -_distutils-r1_post_python_test() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ! ${DISTUTILS_USE_PEP517} ]]; then - _distutils-r1_clean_egg_info - fi -} - distutils-r1_src_test() { debug-print-function ${FUNCNAME} "$@" local ret=0 From 4d2906625a2322f5d551d5db3957e4be0749cdab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Fri, 2 May 2025 20:35:13 +0200 Subject: [PATCH 05/53] distutils-r1.eclass: Remove EAPI 7 support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny Part-of: https://github.com/gentoo/gentoo/pull/41560 Signed-off-by: Michał Górny --- eclass/distutils-r1.eclass | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index a264ebcb0392a..ba97a95f5798c 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -7,7 +7,7 @@ # @AUTHOR: # Author: Michał Górny # Based on the work of: Krzysztof Pawlik -# @SUPPORTED_EAPIS: 7 8 +# @SUPPORTED_EAPIS: 8 # @PROVIDES: python-r1 python-single-r1 # @BLURB: A simple eclass to build Python packages using distutils. # @DESCRIPTION: @@ -217,7 +217,7 @@ if [[ -z ${_DISTUTILS_R1_ECLASS} ]]; then _DISTUTILS_R1_ECLASS=1 case ${EAPI} in - 7|8) ;; + 8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac @@ -618,7 +618,7 @@ esetup.py() { setup_py=( -c "from setuptools import setup; setup()" ) fi - if [[ ${EAPI} != 7 && ${mydistutilsargs[@]} ]]; then + if [[ ${mydistutilsargs[@]} ]]; then die "mydistutilsargs is banned in EAPI ${EAPI} (use DISTUTILS_ARGS)" fi @@ -678,8 +678,7 @@ _distutils-r1_check_all_phase_mismatch() { eqawarn "QA Notice: distutils-r1_python_${EBUILD_PHASE}_all called" eqawarn "from python_${EBUILD_PHASE}. Did you mean to use" eqawarn "python_${EBUILD_PHASE}_all()?" - [[ ${EAPI} != 7 ]] && - die "distutils-r1_python_${EBUILD_PHASE}_all called from python_${EBUILD_PHASE}." + die "distutils-r1_python_${EBUILD_PHASE}_all called from python_${EBUILD_PHASE}." fi } @@ -1322,9 +1321,7 @@ _distutils-r1_wrap_scripts() { local basename=${f##*/} debug-print "${FUNCNAME}: installing wrapper at ${bindir}/${basename}" - local dosym=dosym - [[ ${EAPI} == 7 ]] && dosym=dosym8 - "${dosym}" -r /usr/lib/python-exec/python-exec2 \ + dosym -r /usr/lib/python-exec/python-exec2 \ "${bindir#${EPREFIX}}/${basename}" done From ba973e791948175b1aa13a5c9cc193f6ea80fc61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sat, 17 May 2025 10:06:17 +0200 Subject: [PATCH 06/53] python-utils-r1.eclass: Fix python_optimize output MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix `python_optimize()` to correctly output directories once again, after I removed `${instpath}` while switching to prefix stripping. Signed-off-by: Michał Górny Part-of: https://github.com/gentoo/gentoo/pull/41560 Signed-off-by: Michał Górny --- eclass/python-utils-r1.eclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass index a1ca388ab730e..27a85410aadff 100644 --- a/eclass/python-utils-r1.eclass +++ b/eclass/python-utils-r1.eclass @@ -624,7 +624,7 @@ python_optimize() { local jobs=$(makeopts_jobs) local d for d; do - einfo "Optimize Python modules for ${instpath}" + einfo "Optimizing Python modules in ${d#${D}}" # NB: '-s' makes the path relative, so we need '-p /' to make it # absolute again; https://github.com/python/cpython/issues/133503 "${PYTHON}" -m compileall -j "${jobs}" -o 0 -o 1 -o 2 \ From 5b4b5324d444255844a922965fc4a79bd6ccbf31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sat, 17 May 2025 10:15:44 +0200 Subject: [PATCH 07/53] python-utils-r1.eclass: python_optimize, use sitedir, not sys.path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Default to optimizing the `site-packages` directory rather than the whole `sys.path` when no path is passed to `python_optimize`. Technically, this is a breaking change, but it is unlikely that any ebuilds have been actually relying on the old behavior, and in the worst case our QA checks will note the missing .pyc files. The old logic was assuming that a custom package may install overrides to `sys.path` that we would need to account for. However, this assumes that said overrides would actually start working *before* the package is installed (creating hard-to-reproduce bugs) -- and in these cases, we really prefer listing special paths explicitly anyway. Signed-off-by: Michał Górny Part-of: https://github.com/gentoo/gentoo/pull/41560 Signed-off-by: Michał Górny --- eclass/python-utils-r1.eclass | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass index 27a85410aadff..6d008bf63664a 100644 --- a/eclass/python-utils-r1.eclass +++ b/eclass/python-utils-r1.eclass @@ -599,27 +599,8 @@ python_optimize() { [[ ${PYTHON} ]] || _python_export PYTHON [[ -x ${PYTHON} ]] || die "PYTHON (${PYTHON}) is not executable" - # default to sys.path - if [[ ${#} -eq 0 ]]; then - local f - while IFS= read -r -d '' f; do - # 1) accept only absolute paths - # (i.e. skip '', '.' or anything like that) - # 2) skip paths which do not exist - # (python2.6 complains about them verbosely) - - if [[ ${f} == /* && -d ${D}${f} ]]; then - set -- "${D}${f}" "${@}" - fi - done < <( - "${PYTHON}" - <<-EOF || die - import sys - print("".join(x + "\0" for x in sys.path)) - EOF - ) - - debug-print "${FUNCNAME}: using sys.path: ${*/%/;}" - fi + # default to sitedir + [[ ${#} -eq 0 ]] && set -- "${D}$(python_get_sitedir)" local jobs=$(makeopts_jobs) local d From 04cba0d17b1f5559a35c7024b6571bf2a07d519a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Tue, 3 Jun 2025 10:13:44 +0200 Subject: [PATCH 08/53] python-utils-r1.eclass: Fix epytest with >=pytest-8.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove the `-Werror::PytestUnhandledCoroutineWarning` argument from `epytest`, since the relevant warning is no longer present in `>=dev-python/pytest-8.4.0`. The newer versions throw an exception instead, so we don't need any argument. We could technically still pass it conditionally to pytest version -- but that breaks dev-python/pytest's test suite on upgrade, and working around that does not seem worth the effort. In the end, this was a QA check to catch pathological cases, and it should be sufficient to catch them with the latest pytest version. Signed-off-by: Michał Górny Part-of: https://github.com/gentoo/gentoo/pull/41560 Signed-off-by: Michał Górny --- eclass/python-utils-r1.eclass | 3 --- 1 file changed, 3 deletions(-) diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass index 6d008bf63664a..1638a48b17b93 100644 --- a/eclass/python-utils-r1.eclass +++ b/eclass/python-utils-r1.eclass @@ -1335,9 +1335,6 @@ epytest() { # override filterwarnings=error, we do not really want -Werror # for end users, as it tends to fail on new warnings from deps -Wdefault - # however, do error out if the package failed to load - # an appropriate async plugin - -Werror::pytest.PytestUnhandledCoroutineWarning # override color output "--color=${color}" # count is more precise when we're dealing with a large number From 0c2141d8366753a35b80e7b0b841a95c53a36e84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Tue, 3 Jun 2025 10:50:01 +0200 Subject: [PATCH 09/53] dev-python/pytest: Bump to 8.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny Part-of: https://github.com/gentoo/gentoo/pull/41560 Signed-off-by: Michał Górny --- dev-python/pytest/Manifest | 1 + dev-python/pytest/pytest-8.4.0.ebuild | 115 ++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 dev-python/pytest/pytest-8.4.0.ebuild diff --git a/dev-python/pytest/Manifest b/dev-python/pytest/Manifest index c79db7ddf12fb..6f97385a31a57 100644 --- a/dev-python/pytest/Manifest +++ b/dev-python/pytest/Manifest @@ -3,3 +3,4 @@ DIST pytest-8.0.2.tar.gz 1396924 BLAKE2B ad95d246f5592cfe54faea6c96e38cb60d3e271 DIST pytest-8.1.2.tar.gz 1410060 BLAKE2B 1379047c5ba434e98a383756c53a9cf31dc3bd3abcc49820f872b9110ec70906ca14080ce17ed2770b71195fbd79627a0eb16ee00429e165368144b20153a02b SHA512 a6ffae29da98ee4c357ebb03f00c4bc1a33f093ef867ad118841695548468c7f229eaa2c029a2ce3b158bbb0a65be5014e91555a223d04c1c72e614cb1d00546 DIST pytest-8.2.2.tar.gz 1427980 BLAKE2B 7f343e5ff05e4d26f816595ad1c52ee2b79d38029e75e3641ed0bbb7477e0a47e5ae48ebc3058a8e9f374cd1a391d360d9eda73eca2e41d8b533eda7948aedcb SHA512 896192f0d41f3fef49915dfea6ae33dbb939f6bbe54de27861bf1554bf87f910702169293e923af9bc40466e7f806aa19ca54cbe41a848c233f70b52bb86a63c DIST pytest-8.3.5.tar.gz 1450891 BLAKE2B 7a5fb565eb13041f6513bef344ec6caa24464cb3e9a335c4a196ae12e47a51692cff658e839ad139f88965098831ec5ede7d32fd6bf3b29c51205d4dfe50ed9b SHA512 386573a40f78c1dc864a0af7d765d49e9e91a38dd61bef95b07631bffba0806b34264622a998e849727f50fb220ada7b8242f7f7dbd501408e7bf4701d36589d +DIST pytest-8.4.0.tar.gz 1515232 BLAKE2B fa4252f13af384d425f612d7faef48a6d0075d447aa619efd52029efc2e1c41c57fc78583c5fab818ad9666165f0ae0ad49759292d475ac4586f292553fef6d7 SHA512 aa4aff63e7a4c682322f231538d411b30f7d37335fc42efa8abe7824040278d0a546efaa51794ce2937da993f4972984aacbdad30f96a4d43fe9a3e23317c57a diff --git a/dev-python/pytest/pytest-8.4.0.ebuild b/dev-python/pytest/pytest-8.4.0.ebuild new file mode 100644 index 0000000000000..5e99a024977a6 --- /dev/null +++ b/dev-python/pytest/pytest-8.4.0.ebuild @@ -0,0 +1,115 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_TESTED=( python3_{11..14} pypy3_11 ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) + +inherit distutils-r1 pypi + +DESCRIPTION="Simple powerful testing with Python" +HOMEPAGE=" + https://pytest.org/ + https://github.com/pytest-dev/pytest/ + https://pypi.org/project/pytest/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-python/iniconfig[${PYTHON_USEDEP}] + dev-python/packaging[${PYTHON_USEDEP}] + =dev-python/pluggy-1.5.0[${PYTHON_USEDEP}] + >=dev-python/pygments-2.7.2[${PYTHON_USEDEP}] +" +BDEPEND=" + >=dev-python/setuptools-scm-6.2.3[${PYTHON_USEDEP}] + test? ( + ${RDEPEND} + $(python_gen_cond_dep ' + dev-python/argcomplete[${PYTHON_USEDEP}] + >=dev-python/attrs-19.2[${PYTHON_USEDEP}] + >=dev-python/hypothesis-3.56[${PYTHON_USEDEP}] + dev-python/mock[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-python/xmlschema[${PYTHON_USEDEP}] + ' "${PYTHON_TESTED[@]}") + ) +" + +src_test() { + # workaround new readline defaults + echo "set enable-bracketed-paste off" > "${T}"/inputrc || die + local -x INPUTRC="${T}"/inputrc + distutils-r1_src_test +} + +python_test() { + if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then + einfo "Skipping tests on ${EPYTHON}" + return + fi + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local -x COLUMNS=80 + + local EPYTEST_DESELECT=( + # broken by epytest args + testing/test_warnings.py::test_works_with_filterwarnings + testing/test_threadexception.py::test_unhandled_thread_exception_after_teardown + testing/test_unraisableexception.py::test_refcycle_unraisable + + # does not like verbosity + testing/test_assertrewrite.py::TestAssertionRewrite::test_len + + # tend to be broken by random pytest plugins + # (these tests patch PYTEST_DISABLE_PLUGIN_AUTOLOAD out) + testing/test_helpconfig.py::test_version_less_verbose + testing/test_helpconfig.py::test_version_verbose + testing/test_junitxml.py::test_random_report_log_xdist + testing/test_junitxml.py::test_runs_twice_xdist + testing/test_terminal.py::TestProgressOutputStyle::test_xdist_normal + testing/test_terminal.py::TestProgressOutputStyle::test_xdist_normal_count + testing/test_terminal.py::TestProgressOutputStyle::test_xdist_verbose + testing/test_terminal.py::TestProgressWithTeardown::test_xdist_normal + testing/test_terminal.py::TestTerminalFunctional::test_header_trailer_info + testing/test_terminal.py::TestTerminalFunctional::test_no_header_trailer_info + + # unstable with xdist + testing/test_terminal.py::TestTerminalFunctional::test_verbose_reporting_xdist + + # TODO (XPASS) + testing/test_debugging.py::TestDebuggingBreakpoints::test_pdb_not_altered + testing/test_debugging.py::TestPDB::test_pdb_interaction_capturing_simple + testing/test_debugging.py::TestPDB::test_pdb_interaction_capturing_twice + testing/test_debugging.py::TestPDB::test_pdb_with_injected_do_debug + testing/test_debugging.py::test_pdb_suspends_fixture_capturing + + # setuptools warnings + testing/acceptance_test.py::TestInvocationVariants::test_cmdline_python_namespace_package + + # PDB tests seem quite flaky (they time out often) + testing/test_debugging.py::TestPDB + ) + + case ${EPYTHON} in + pypy3*) + EPYTEST_DESELECT+=( + # regressions on pypy3.9 + # https://github.com/pytest-dev/pytest/issues/9787 + testing/test_skipping.py::test_errors_in_xfail_skip_expressions + ) + ;; + esac + + local EPYTEST_XDIST=1 + epytest +} From 2713fd8dcf633dce3fffd53adc96814983645892 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 02:48:27 +0200 Subject: [PATCH 10/53] python-utils-r1.eclass: Remove full stop from python_fix_shebang MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove full stop from python_fix_shebang message, as requested by sam. Signed-off-by: Michał Górny Part-of: https://github.com/gentoo/gentoo/pull/41560 Closes: https://github.com/gentoo/gentoo/pull/41560 Signed-off-by: Michał Górny --- eclass/python-utils-r1.eclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass index 1638a48b17b93..840b820d00569 100644 --- a/eclass/python-utils-r1.eclass +++ b/eclass/python-utils-r1.eclass @@ -1057,7 +1057,7 @@ python_fix_shebang() { fi if [[ ! ${quiet} ]]; then - einfo "Fixing shebang in ${f#${D}}." + einfo "Fixing shebang in ${f#${D}}" fi if [[ ! ${error} ]]; then From 8a9190d564070788eab09598ab30d2ece39dc69c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 02:56:06 +0200 Subject: [PATCH 11/53] dev-python/nuitka: Bump to 2.7.6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/nuitka/Manifest | 1 + dev-python/nuitka/nuitka-2.7.6.ebuild | 55 +++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 dev-python/nuitka/nuitka-2.7.6.ebuild diff --git a/dev-python/nuitka/Manifest b/dev-python/nuitka/Manifest index 6e24df3ab63ce..aa638d0cbd600 100644 --- a/dev-python/nuitka/Manifest +++ b/dev-python/nuitka/Manifest @@ -1,2 +1,3 @@ DIST Nuitka-2.7.4.tar.gz 3885038 BLAKE2B c0c4456af4e3df2f653b8698a53470114ebd809bf48931240361ae2f5f55c7b88acf2171a07245f13550b9111ec067d2eb9390562718355e07c4f9026d2ba52e SHA512 62b91a298e69d4d8d76608fa5ccd192b8e47764232d6653ec8519244dc099a3623be68554ab7e0a822a69a3f86d19a9b898d2ecb16d68b93d765eed3b84a1937 DIST Nuitka-2.7.5.tar.gz 3885564 BLAKE2B e949b3da418393e7b847e4fce07add049181da6801040ba2c7d1eb46b5d5c0b0f88b98cf0bb1808a727414d3f9ed1d050cad4a3bc54a17d35488c6788effc8ee SHA512 e26f6990dc2a0842dfc5acfb80f5a4de975e2e4244f99d861e9a6e2f18c68dda66d6b1bfa64f4387ce72de321a003ad4582dee4f4385c009e5b54c7e0c63a877 +DIST Nuitka-2.7.6.tar.gz 3885618 BLAKE2B 14425702c4940fd4c7bbf2e02fa717ec9b2d6fd5de2b15e736d74e8ac78617fd9749154ec14395da1ddb465526cc60ec53c55b6d7ec4af71c3da3cf49127f268 SHA512 65e35fd48de4f0cb4655d819d05161a36a73e5d2725e0d3dac3d86a42571c924d6568c4b3dda4b284240ae82575bf677daaddc74d30f94d3af70aea286eea8b3 diff --git a/dev-python/nuitka/nuitka-2.7.6.ebuild b/dev-python/nuitka/nuitka-2.7.6.ebuild new file mode 100644 index 0000000000000..56ab4fd312bdd --- /dev/null +++ b/dev-python/nuitka/nuitka-2.7.6.ebuild @@ -0,0 +1,55 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYPI_NO_NORMALIZE=1 +PYPI_PN=${PN^} +PYTHON_COMPAT=( python3_{11..13} ) + +inherit distutils-r1 flag-o-matic optfeature pypi + +DESCRIPTION="Python to native compiler" +HOMEPAGE=" + https://nuitka.net/ + https://github.com/Nuitka/Nuitka/ + https://pypi.org/project/Nuitka/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~loong ~x86" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-build/scons[${PYTHON_USEDEP}] + >=dev-python/ordered-set-4.1.0[${PYTHON_USEDEP}] + >=dev-python/zstandard-0.15[${PYTHON_USEDEP}] +" +BDEPEND=" + ${RDEPEND} + test? ( dev-util/ccache ) +" + +distutils-r1_src_prepare() { + # remove vendored version of SCons that is Python2 only + # this should be removed when upstream removes support for Python2 + rm -vR "nuitka/build/inline_copy/lib/scons-2.3.2/SCons" || die + eapply_user +} + +python_install() { + distutils-r1_python_install + doman doc/nuitka.1 doc/nuitka-run.1 +} + +python_test() { + append-ldflags -Wl,--no-warn-search-mismatch + ./tests/basics/run_all.py search || die +} + +pkg_postinst() { + optfeature "support for stand-alone executables" dev-util/patchelf +} From cd3a14f0dd13edacf74b901a23463115b44bb5ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 02:56:37 +0200 Subject: [PATCH 12/53] dev-python/botocore: Bump to 1.38.29 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/botocore/Manifest | 1 + dev-python/botocore/botocore-1.38.29.ebuild | 75 +++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 dev-python/botocore/botocore-1.38.29.ebuild diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest index e48358eb3516c..f317ad6a27b19 100644 --- a/dev-python/botocore/Manifest +++ b/dev-python/botocore/Manifest @@ -2,3 +2,4 @@ DIST botocore-1.38.18.gh.tar.gz 14648125 BLAKE2B b77da532e815f8cc270b78c5bfab8a9 DIST botocore-1.38.23.gh.tar.gz 14649388 BLAKE2B d60b5e5d7fb445f332eed57f3317d3add82dd2123ab4199dc934a9a4d68c2b91947a9e50e3847da4bed06aac402542f2bbe4ea92bd47d72de86be3f8f5571b2f SHA512 d602d19c9160d10aeb06aae911052da50dd66ef0f43e459d5911bed24acba5ac948781f1e8f6f43b377847670f2d074e044f454b043ba33859fc0ca0ba67976a DIST botocore-1.38.27.gh.tar.gz 14666017 BLAKE2B 7527044c1b9586ac39b7cdaf1c51e6e263d3021015023e370a2ef30c600f33efd8e37697982148a99d56ec2e817b564f8c66cb75c1e8bd807858aad38fd6dab5 SHA512 2bc66dc805c610f96f52a8fbd716767dc0084f3d35517cc6c54d45a85330cb74c77becef234b323a72b9a9273211febb2604975fc2dbfaff3a51449123e6ad64 DIST botocore-1.38.28.gh.tar.gz 14672858 BLAKE2B a51891512f7df3ee1ceab3b9be2ad3a5e4bf8e976d58771268541b93df790c63523201f3c70caed22bd3baaff66980821811b9496620087c588385e14d089c04 SHA512 af48bfce6666c9a1f2175141b1efa7a17dd4dedfa8f1bd68bc3244035a62041eeefac95942ea142928c485912a2a1f25b2f093f1f5993171f9cc232234c5046e +DIST botocore-1.38.29.gh.tar.gz 14676693 BLAKE2B ef5e5c79505f76ad5f55a8bfdf4f9e714a6b028cb8b719ed00ee895923af0495c1b03cb4da0e742e0f4625a978bb235614e58c155f7f050e0ecda396bd7977c1 SHA512 62cb907747a6cdc237dcf86d6bc6e99ecca8ca6650bde2c0d32b83ad9c497bd3bd55913f63127d348ccf75f68ad0a2c5acf85d540a6c7b8ba3cf57751c7c8bbc diff --git a/dev-python/botocore/botocore-1.38.29.ebuild b/dev-python/botocore/botocore-1.38.29.ebuild new file mode 100644 index 0000000000000..535354aa30358 --- /dev/null +++ b/dev-python/botocore/botocore-1.38.29.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..14} ) + +inherit distutils-r1 + +DESCRIPTION="Low-level, data-driven core of boto 3" +HOMEPAGE=" + https://github.com/boto/botocore/ + https://pypi.org/project/botocore/ +" +SRC_URI=" + https://github.com/boto/botocore/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" + +RDEPEND=" + =dev-python/urllib3-1.25.4[${PYTHON_USEDEP}] +" +# unbundled packages +RDEPEND+=" + dev-python/requests[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/jsonschema[${PYTHON_USEDEP}] + ) +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + # unpin deps + sed -i -e "s:>=.*':':" setup.py || die + + # unbundle deps + rm -r botocore/vendored || die + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_src_prepare +} + +python_test() { + local EPYTEST_DESELECT=( + # rely on bundled six + tests/functional/test_six_imports.py::test_no_bare_six_imports + tests/functional/test_six_threading.py::test_six_thread_safety + ) + + case ${EPYTHON} in + python3.14) + EPYTEST_DESELECT+=( + tests/unit/test_utils.py::test_lru_cache_weakref + ) + ;; + esac + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest tests/{functional,unit} +} From da7e13aa1994f86d3234c42cbed6af90afa216d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 02:56:53 +0200 Subject: [PATCH 13/53] dev-python/boto3: Bump to 1.38.29 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/boto3/Manifest | 1 + dev-python/boto3/boto3-1.38.29.ebuild | 53 +++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 dev-python/boto3/boto3-1.38.29.ebuild diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest index f853100944a26..3b4fae9a6f75f 100644 --- a/dev-python/boto3/Manifest +++ b/dev-python/boto3/Manifest @@ -2,3 +2,4 @@ DIST boto3-1.38.18.gh.tar.gz 943830 BLAKE2B 2605415f7c48efd5322f6a514fb2cf7ede87 DIST boto3-1.38.23.gh.tar.gz 946184 BLAKE2B cf405adb1f47bcaba2185f2c120b8642f8fe2f68a33bc807854ad32bcd7eec99282a800f13a5273225e7fda6e3415ad8ef7ffd173e5cad21539c0f2765836506 SHA512 fdd7c9ae335afa772b919ffa8989323f54a409e8f7e9483528a199e038aad3b341663ec3a72f78c695e2ef44601caf682e3f769c5a869ea2d0545c9dd7a035a8 DIST boto3-1.38.27.gh.tar.gz 948453 BLAKE2B 4f775c14a439b4ca204d6728a7b077ed901e9b92f395871b05e9de29e5ce82ac2ab179f4c1914b3d52627b77a5fae136ad003bbeb2d1460597f9fb7b4a1ab93d SHA512 27ab3c3453b16649d58d6ee11ef62abd6e302889b0dc46067e4370af1e9fb4d75292886471f7c7fb530707c226ae78c42d0268d8cd9730fd27ad72ef1fb69d45 DIST boto3-1.38.28.gh.tar.gz 949891 BLAKE2B 5368b9f38df2f07aa27ee04a499e30ddf8ee45fdbcb0d4a2f24ea16ea55e7e6f30c35877521c5fd45fd9e17aed0d4c1998c470d64e68221ce18ea3b26818e367 SHA512 8929582df636c5a78d4ed84ad99d4b5803c4ca65842ec19aac59cb7400cc1c2f004e85a1cb422c2ebb44db2168632b7d1ed5c794be8b74207394ab929d64e49b +DIST boto3-1.38.29.gh.tar.gz 950266 BLAKE2B b75f999ab08f9619fda4e3365eecea5f2ef19f4ea6676c86126f71782be97472479bddf6c6ec1dffd15b0cbb22d727cc570917945d10d4e4a1b03ac516e419fe SHA512 cfa2cc23aa9f79e21311ee99fed8fc75dfbea94ffcb66bbd1f08e30b186758d9ef0f3a6448e746f767b7ef22bd25bd73f24dda0fc77c0ecc09135f4b98a82837 diff --git a/dev-python/boto3/boto3-1.38.29.ebuild b/dev-python/boto3/boto3-1.38.29.ebuild new file mode 100644 index 0000000000000..87d2b29361a16 --- /dev/null +++ b/dev-python/boto3/boto3-1.38.29.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..13} ) + +inherit distutils-r1 + +DESCRIPTION="The AWS SDK for Python" +HOMEPAGE=" + https://github.com/boto/boto3/ + https://pypi.org/project/boto3/ +" +SRC_URI=" + https://github.com/boto/boto3/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" + +RDEPEND=" + >=dev-python/botocore-${PV}[${PYTHON_USEDEP}] + >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}] + >=dev-python/s3transfer-0.13.0[${PYTHON_USEDEP}] +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_prepare_all() { + # don't lock versions to narrow ranges + sed -e '/botocore/ d' \ + -e '/jmespath/ d' \ + -e '/s3transfer/ d' \ + -i setup.py || die + + # do not rely on bundled deps in botocore (sic!) + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_python_prepare_all +} + +python_test() { + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest tests/{functional,unit} +} From 09c391d5b6b8734abc29caf03cc08213c9ab678e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 02:57:21 +0200 Subject: [PATCH 14/53] app-admin/awscli: Bump to 1.40.28 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- app-admin/awscli/Manifest | 1 + app-admin/awscli/awscli-1.40.28.ebuild | 93 ++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 app-admin/awscli/awscli-1.40.28.ebuild diff --git a/app-admin/awscli/Manifest b/app-admin/awscli/Manifest index 8ecb11ba8a5d0..687e8f921492c 100644 --- a/app-admin/awscli/Manifest +++ b/app-admin/awscli/Manifest @@ -2,3 +2,4 @@ DIST aws-cli-1.40.17.gh.tar.gz 2935251 BLAKE2B 59060ef00b3ca1a333dfeff2c76ccef26 DIST aws-cli-1.40.22.gh.tar.gz 2940905 BLAKE2B c3af79b9fd54c63680c90874362fd8f38443a1bcc5e66d15fed493097c9682bb33df7030ef86b6aea9a626a7115a84f886a0e59fff67be78065a0925621aa6c2 SHA512 186e11a2ce971e1b8172887217768fc97068ea999c03672f1c4061050a00ac92125f1f4d18b22634ef0ca82194d9939a8ff1112240ebfee3b803522879f2d53d DIST aws-cli-1.40.26.gh.tar.gz 2942606 BLAKE2B c51358e13c22826ebf3cb4aa3e3989440766dc4c8d56417e76469900e0e79bddfecd6cb2b5f0e9b6239eb0faea4a34c3a1e3779f9091aee40a25e4d2d03e35ad SHA512 182c4062e9b7401356657122a5294f172ddaf8cf9330e30e1df6970730d16659dadc8c939481f8d7a8b98834e0eb2f452c1e11fb201cc248847abbc485f33a10 DIST aws-cli-1.40.27.gh.tar.gz 2943484 BLAKE2B c3ae3cb147df5614871f45a88cfa20320f7d3921513b86a5b20b72928679c8d218d6e3615aa34474b81bec846076968046aee547c7c25cb20505f98adb0f26a8 SHA512 d6b29c1b4e729cb2c67cc8d99d87754d6a677e2287bfd56ec02d045b4805cc0295d5b2228bc4e67c9952a5c1392aefe3bdaec0571569a3ffee468ad7eedb6eb5 +DIST aws-cli-1.40.28.gh.tar.gz 2943844 BLAKE2B 64dc8d57c3910a75b5e378f4b1bfb73d89b0e014ae22b60a54f41e92a954198a926b74d442a72a6a1d6ef04032b3c3d0d6c4517f0eb852d8a671940c9ed110df SHA512 a8ff3ce294853f24fc046a5608221b10aab057b7ec593286c6dffa6e051e0919464357b1fd3c5c3c2b8f41affb207f6a580f89b7966f9236bce8407c77231ecd diff --git a/app-admin/awscli/awscli-1.40.28.ebuild b/app-admin/awscli/awscli-1.40.28.ebuild new file mode 100644 index 0000000000000..41a65570d1037 --- /dev/null +++ b/app-admin/awscli/awscli-1.40.28.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..13} ) + +inherit distutils-r1 shell-completion + +MY_P=aws-cli-${PV} +DESCRIPTION="Universal Command Line Environment for AWS" +HOMEPAGE=" + https://github.com/aws/aws-cli/ + https://pypi.org/project/awscli/ +" +SRC_URI=" + https://github.com/aws/aws-cli/archive/${PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86" + +# botocore is x.(y-2).(z+1), sigh +BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) - 2)).$(( $(ver_cut 3-) + 1 ))" +RDEPEND=" + >=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}] + dev-python/colorama[${PYTHON_USEDEP}] + dev-python/docutils[${PYTHON_USEDEP}] + dev-python/rsa[${PYTHON_USEDEP}] + >=dev-python/s3transfer-0.13.0[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + !app-admin/awscli-bin +" +BDEPEND=" + test? ( + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/pytest-forked[${PYTHON_USEDEP}] + ) +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + # do not rely on bundled deps in botocore (sic!) + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + # strip overzealous upper bounds on requirements + sed -i -e 's:,<[=0-9.]*::' -e 's:==:>=:' setup.py || die + distutils-r1_src_prepare +} + +python_test() { + local serial_tests=( + tests/functional/ecs/test_execute_command.py::TestExecuteCommand::test_execute_command_success + tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_{fails,success} + tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_with_new_version_plugin_success + tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking + tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking_windows + tests/unit/customizations/codeartifact/test_adapter_login.py::TestNuGetLogin::test_login_nuget_sources_listed_with_backtracking + tests/unit/customizations/ecs/test_executecommand_startsession.py::TestExecuteCommand::test_execute_command_success + tests/unit/customizations/test_sessionmanager.py + tests/unit/test_compat.py::TestIgnoreUserSignals + tests/unit/test_help.py + tests/unit/test_utils.py::TestIgnoreCtrlC::test_ctrl_c_is_ignored + ) + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + EPYTEST_XDIST= epytest "${serial_tests[@]}" + + local EPYTEST_DESELECT=( + "${serial_tests[@]}" + + # flaky (some ordering?) + tests/functional/s3/test_cp_command.py::TestCPCommand::test_multipart_upload_with_checksum_algorithm_crc32 + ) + # integration tests require AWS credentials and Internet access + epytest tests/{functional,unit} +} + +python_install_all() { + newbashcomp bin/aws_bash_completer aws + newzshcomp bin/aws_zsh_completer.sh _aws + + distutils-r1_python_install_all + + rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die +} From 80e743e59c95f6e818759f0fc73e0103ab0e3120 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 02:59:52 +0200 Subject: [PATCH 15/53] dev-python/uv: Bump to 0.7.10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/uv/Manifest | 2 + dev-python/uv/uv-0.7.10.ebuild | 175 +++++++++++++++++++++++++++++++++ 2 files changed, 177 insertions(+) create mode 100644 dev-python/uv/uv-0.7.10.ebuild diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest index 66962614f5f0e..d00587b0f6df6 100644 --- a/dev-python/uv/Manifest +++ b/dev-python/uv/Manifest @@ -4,6 +4,8 @@ DIST rs-async-zip-c909fda63fcafe4af496a07bfda28a5aae97e58d.gh.tar.gz 51763 BLAKE DIST tl-6e25b2ee2513d75385101a8ff9f591ef51f314ec.gh.tar.gz 37106 BLAKE2B c30d1c33f6f52e2bc83823eb6319f8a3e462b7c7408fb6a08f995747857ef234f81db4135a04f9d183095fe473a4087f8f0cb89d8f87ef4400285d2ce034ec22 SHA512 4abbc4240ed129c92da8d616e27a6df0f24cdc85a0803acfdae588ca91f9e5b8d482e3ac88b2e657ff68917b1b43cef1e7ef3c887f624659b231fa5a13fcae68 DIST uv-0.6.17-crates.tar.xz 58061436 BLAKE2B d86afdb51411ceabb529f7b23dfc10b85eac27b012aca1785a4f9d47c758ef9043ed84ae843c66f55a48ad24b21c2c8c89edad4b6043ac27c82c529db0ee4e28 SHA512 30a7770d2f45db03a618adada46fd1d8a000a940f5750a0c16ec7261c232ee7909d38f4725f82457580e34575342e256bbcc7378e0bec06b69bec17c9c0e69f5 DIST uv-0.6.17.gh.tar.gz 3995730 BLAKE2B 368a877294dc9e1e1f29599b5589242899f9a6cf5767b6fa10d5987d18a1cb6704aad34ad136522ac3256cc0802bad4442bebde94ff4e3dd6d7763b73fa8cca1 SHA512 aae465ef02a29a856f4de69230f77d31149c95ed5a88e489b46c34aa61020f29dcf406168abea77626e7d5297b2e004a89445f343e3ee763c297981b0d50233a +DIST uv-0.7.10-crates.tar.xz 52013636 BLAKE2B f5063aba01bbb91219d2852be9563f2b48be7c534a1ed69e88bd3b702de12df418484e2c7593a7e5237c4f0d71282cc849e1b2f473275355496a9e2977eeb6ad SHA512 6cb80a362a9abef725e2e062d864fc54a81a83431a15012321f7b561fc4b0a5d30301f52c2f2c50cadfbc821bf3f8a3397a0c55d422649c1c940d43d45e65d03 +DIST uv-0.7.10.gh.tar.gz 4020442 BLAKE2B a7f23494671706b439a14148241066454489fd9df9817ccce0a15bc464c6c07f727932ef973a227bcb4d76bb035be4fe59c1fe00030f8a2121a73dc0f993ad0e SHA512 a92521fcbc03abb07ed5bcda653aa218e7082777b517747224619c7bad6c9b05fad837088198aeb419fd3fac164be8d248cb699ca7a39a77298e83e86398594c DIST uv-0.7.8-crates.tar.xz 45495772 BLAKE2B f8b9587302dfd96ba15b540f0897b9720ea06434d2d2e93e795793df874179ef79e544a07b9e158e890d119fa2d3beee9d0a884a3c78540ec6c8abe2cc902bba SHA512 78586fd9fbe4cd9e0b737609a8b8c438ac422be1dbcde7a8553234981ee4be8136efe50b2c14b6863b6256a337cab977948641bb196e5f718188a66b25f1f5f5 DIST uv-0.7.8.gh.tar.gz 3993156 BLAKE2B a11245cb77ceab214ee021d973515c164048938afb67d878bf282e26f8c1f190187ef7a52af966247298d6a758baa97e36fce0a556c9ac145b3f01c8aea18d56 SHA512 109821612a9a07bf0fdadcc942893a8e024ef828f22f25b5d3f2a10088882892cb84a8b1e37874e7346c9a0815dcd15cb736a2a768ff525c6198482fe7aba3ff DIST uv-0.7.9-crates.tar.xz 45526908 BLAKE2B 66951afc70feb4719c5af415c0503c6e8daff850227d9773406f6e4c0c9bb960a56573675327b04297437481852cc9236bdf240476cf1c151e52ff4caf170c72 SHA512 6ea0d4e02e28edc47d420c095b426136aeb1e4af2c3181e104f67405b180d6ce51f1db122cc6d49ac876a68711d43aa2fdae5fd710523c03d6d302d41da47e02 diff --git a/dev-python/uv/uv-0.7.10.ebuild b/dev-python/uv/uv-0.7.10.ebuild new file mode 100644 index 0000000000000..2d1639acdcdb4 --- /dev/null +++ b/dev-python/uv/uv-0.7.10.ebuild @@ -0,0 +1,175 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" +" + +declare -A GIT_CRATES=( + [async_zip]='https://github.com/charliermarsh/rs-async-zip;c909fda63fcafe4af496a07bfda28a5aae97e58d;rs-async-zip-%commit%' + [pubgrub]='https://github.com/astral-sh/pubgrub;06ec5a5f59ffaeb6cf5079c6cb184467da06c9db;pubgrub-%commit%' + [tl]='https://github.com/astral-sh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%' + [version-ranges]='https://github.com/astral-sh/pubgrub;06ec5a5f59ffaeb6cf5079c6cb184467da06c9db;pubgrub-%commit%/version-ranges' +) + +RUST_MIN_VER="1.85.0" + +inherit cargo check-reqs + +CRATE_PV=${PV} +DESCRIPTION="A Python package installer and resolver, written in Rust" +HOMEPAGE=" + https://github.com/astral-sh/uv/ + https://pypi.org/project/uv/ +" +# pypi sdist misses scripts/, needed for tests +SRC_URI=" + https://github.com/astral-sh/uv/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz + ${CARGO_CRATE_URIS} +" +if [[ ${PKGBUMPING} != ${PVR} ]]; then + SRC_URI+=" + https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz + " +fi + +# most of the code +LICENSE="|| ( Apache-2.0 MIT )" +# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below +# Dependent crate licenses +LICENSE+=" + 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD Boost-1.0 + CDLA-Permissive-2.0 ISC MIT MPL-2.0 Unicode-3.0 Unicode-DFS-2016 + ZLIB +" +# ring crate +LICENSE+=" openssl" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" +IUSE="test" +RESTRICT="test" +PROPERTIES="test_network" + +DEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + app-arch/zstd:= +" +RDEPEND=" + ${DEPEND} +" +BDEPEND=" + test? ( + dev-lang/python:3.9 + dev-lang/python:3.10 + dev-lang/python:3.11 + dev-lang/python:3.12 + dev-lang/python:3.13 + !!~dev-python/uv-0.5.0 + ) +" + +QA_FLAGS_IGNORED="usr/bin/.*" + +check_space() { + local CHECKREQS_DISK_BUILD=3G + use debug && CHECKREQS_DISK_BUILD=9G + check-reqs_pkg_setup +} + +pkg_pretend() { + check_space +} + +pkg_setup() { + check_space + rust_pkg_setup +} + +src_prepare() { + default + + # force thin lto, makes build much faster and less memory hungry + # (i.e. makes it possible to actually build uv on 32-bit PPC) + sed -i -e '/lto/s:fat:thin:' Cargo.toml || die + + # enable system libraries where supported + export ZSTD_SYS_USE_PKG_CONFIG=1 + # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys? + + # remove unbundled sources, just in case + find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die + + # bzip2-sys requires a pkg-config file + # https://github.com/alexcrichton/bzip2-rs/issues/104 + mkdir "${T}/pkg-config" || die + export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}} + cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die + Name: bzip2 + Version: 9999 + Description: + Libs: -lbz2 + EOF +} + +src_configure() { + local myfeatures=( + git + pypi + python + ) + + cargo_src_configure --no-default-features +} + +src_compile() { + cd crates/uv || die + cargo_src_compile +} + +src_test() { + # work around https://github.com/astral-sh/uv/issues/4376 + local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH} + local -x COLUMNS=100 + local -x PYTHONDONTWRITEBYTECODE= + # fix tests failing because of our config + local -x XDG_CONFIG_DIRS=${T} + + cd crates/uv || die + cargo_src_test --no-fail-fast +} + +src_install() { + cd crates/uv || die + cargo_src_install + + insinto /etc/xdg/uv + newins - uv.toml <<-EOF || die + # These defaults match Fedora, see: + # https://src.fedoraproject.org/rpms/uv/pull-request/18 + + # By default ("automatic"), uv downloads missing Python versions + # automatically and keeps them in the user's home directory. + # Disable that to make downloading opt-in, and especially + # to avoid unnecessarily fetching custom Python when the distro + # package would be preferable. Python builds can still be + # downloaded manually via "uv python install". + # + # https://docs.astral.sh/uv/reference/settings/#python-downloads + python-downloads = "manual" + + # By default ("managed"), uv always prefers self-installed + # Python versions over the system Python, independently + # of versions. Since we generally expect users to use that + # to install old Python versions not in ::gentoo anymore, + # this effectively means that uv would end up preferring very + # old Python versions over the newer ones that are provided + # by the system. Default to using the system versions to avoid + # this counter-intuitive behavior. + # + # https://docs.astral.sh/uv/reference/settings/#python-preference + python-preference = "system" + EOF +} From aed95b71feefbfd3b0ceed2579a68c4271124ef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:02:22 +0200 Subject: [PATCH 16/53] dev-python/uv-build: Bump to 0.7.10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/uv-build/Manifest | 1 + dev-python/uv-build/uv-build-0.7.10.ebuild | 99 ++++++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 dev-python/uv-build/uv-build-0.7.10.ebuild diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest index 274688d528572..674b07ee04fd2 100644 --- a/dev-python/uv-build/Manifest +++ b/dev-python/uv-build/Manifest @@ -1,3 +1,4 @@ DIST uv_build-0.6.17.tar.gz 300696 BLAKE2B 3f15068232e20b4b70ef319f90a258efc0d38be668bc438c91354b5ede4cb03235abc912292e2747249eab5c54c1fbc3cfa91ab1335881b975fce9677340c54e SHA512 2827629a11a9775661554f3eae4f3c6018637203c18f739ce728973ee0e7f905bef7c9fcc200f95393e2e13c167e31fdf0ab8dced59c028c3c600d47ba373752 +DIST uv_build-0.7.10.tar.gz 308530 BLAKE2B 01ec0cc519966665129c29e7cfe5522cf070d3377b4172265f7a8dbea441979022875eb091371e868ca6c9ab80c497c85b789b5c81b93c8e004fd8b6e0e05240 SHA512 744e4ac1e5be3579a7a89cdd2b6f0e40a1d681fd51c7dc44bcfbce8c51a61cffa8cdb8006c02526a7bb27ad7cf2b02cf33be7107b36487a89835e81e079ffa54 DIST uv_build-0.7.8.tar.gz 305609 BLAKE2B 89d2e7ff95f4375d4fff758463c1cf918c3ec475a1e0de04fcc51b4bd0fefe1aca50ea223b3cc456c5944f0673702ab971374829fb568e4521129acb0a770506 SHA512 bde37f82ae781531e50425ff247219e4e2908c7e46200a65a74e8e2b8b48a0d5cd60476138c160bd1d07aa8c9a581f5da01e79fd7883d018f10617ddba8b8349 DIST uv_build-0.7.9.tar.gz 308177 BLAKE2B 38bd8d4640a239dac740503929c7b31ba591e101e0778cbd5e3c9db6513082f0382bc982affc7cf3a5af3998647ae58ebf870388dc0d67e2ed7fda5764cc9176 SHA512 f316aae21cbf15dc281d79eaa10af1b56efd70d484ae37b831d7216c268e03c6a46c50a212e617e932a6cf0805f2cb114e91caf92afe1c1d994ba06209255e90 diff --git a/dev-python/uv-build/uv-build-0.7.10.ebuild b/dev-python/uv-build/uv-build-0.7.10.ebuild new file mode 100644 index 0000000000000..7b6a5ee54e1b4 --- /dev/null +++ b/dev-python/uv-build/uv-build-0.7.10.ebuild @@ -0,0 +1,99 @@ +# Copyright 2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maturin compiles uv-build executable for every impl, we do not want +# that, so we use another backend. And since we use another backend, +# why not dogfood it in the first place? +DISTUTILS_USE_PEP517=standalone +PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="PEP517 uv build backend" +HOMEPAGE=" + https://github.com/astral-sh/uv/ + https://pypi.org/project/uv-build/ +" + +LICENSE="|| ( Apache-2.0 MIT )" +SLOT="0" +KEYWORDS="~amd64" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-python/uv-${PV} +" +BDEPEND=" + test? ( + app-arch/unzip + dev-python/build[${PYTHON_USEDEP}] + ) +" + +src_prepare() { + distutils-r1_src_prepare + + # use the executable from dev-python/uv instead of building + # a largely overlapping uv-build executable (at least for now) + sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die + + # replace the build-system section + sed -i -e '/\[build-system\]/,$d' pyproject.toml || die + cat >> pyproject.toml <<-EOF || die + [build-system] + requires = ["uv_build<9999"] + build-backend = "uv_build" + backend-path = ["src"] + EOF + + # rename to make uv-build find it + mv python src || die +} + +python_test() { + "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}" + + local zip_result=$( + unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die + ) + local zip_expected="\ +Archive: dist/uv_build-${PV}-py3-none-any.whl + testing: uv_build/ OK + testing: uv_build/__init__.py OK + testing: uv_build/__main__.py OK + testing: uv_build/py.typed OK + testing: uv_build-${PV}.dist-info/ OK + testing: uv_build-${PV}.dist-info/WHEEL OK + testing: uv_build-${PV}.dist-info/METADATA OK + testing: uv_build-${PV}.dist-info/RECORD OK +No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\ +" + if [[ ${zip_result} != ${zip_expected} ]]; then + eerror ".zip result:\n${zip_result}" + eerror ".zip expected:\n${zip_expected}" + die ".whl result mismatch" + fi + + local tar_result=$( + tar -tf "dist/uv_build-${PV}.tar.gz" || die + ) + local tar_expected="\ +uv_build-${PV}/PKG-INFO +uv_build-${PV}/ +uv_build-${PV}/README.md +uv_build-${PV}/pyproject.toml +uv_build-${PV}/src +uv_build-${PV}/src/uv_build +uv_build-${PV}/src/uv_build/__init__.py +uv_build-${PV}/src/uv_build/__main__.py +uv_build-${PV}/src/uv_build/py.typed\ +" + if [[ ${tar_result} != ${tar_expected} ]]; then + eerror ".tar.gz result:\n${tar_result}" + eerror ".tar.gz expected:\n${tar_expected}" + die ".tar.gz result mismatch" + fi +} From f8e9fd2fd569db3583f5afb1d11c599b415a898c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:28:14 +0200 Subject: [PATCH 17/53] dev-python/sqlglot: Remove old MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/sqlglot/Manifest | 2 - dev-python/sqlglot/sqlglot-26.23.0.ebuild | 178 ---------------------- 2 files changed, 180 deletions(-) delete mode 100644 dev-python/sqlglot/sqlglot-26.23.0.ebuild diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest index 66cdd7c4bd404..2556d3b2dd2c6 100644 --- a/dev-python/sqlglot/Manifest +++ b/dev-python/sqlglot/Manifest @@ -1,4 +1,2 @@ -DIST sqlglot-26.23.0-crates.tar.xz 8859792 BLAKE2B abb2051b392c53dc3caa705ddd8df7076819a26dcdaa89fa3760559a79578db01e86943c2d0ffb8006263c2dca3aa50d20023eae9d772f8ebd12a8a2d3266cdd SHA512 7cca439a06433a62bcd4a2af33d240f46e9b5240cc158edbc654efb37a464aa0f1ebbe9749b2fc6352127b4809b63af2341fac6240050c414e578ae99444ba5d -DIST sqlglot-26.23.0.tar.gz 5369411 BLAKE2B 621d8bba91e72b3671aa0d2fa90ac0e4e9d3b6c116be02a423eb779ab8bd67f9edcabeb6e94ddea6856a22373a02e5517053945f7ea2728ef6b56333671e68c0 SHA512 54b378ad94be7c641b537e9917d2b69c3abdbcfff81a28b8a280d5198b35d6157f518289101332abf0643b3ea56670f948b6db598d358b06ac2a6ace38df8acc DIST sqlglot-26.24.0-crates.tar.xz 8859792 BLAKE2B abb2051b392c53dc3caa705ddd8df7076819a26dcdaa89fa3760559a79578db01e86943c2d0ffb8006263c2dca3aa50d20023eae9d772f8ebd12a8a2d3266cdd SHA512 7cca439a06433a62bcd4a2af33d240f46e9b5240cc158edbc654efb37a464aa0f1ebbe9749b2fc6352127b4809b63af2341fac6240050c414e578ae99444ba5d DIST sqlglot-26.24.0.tar.gz 5371208 BLAKE2B 76a6e3f1c940a7b2b3f6d9845fc6295b8d28bd32306aaef1b7829861ed6ceb151ab0fb3b7830717a91432f491e1268b404b26b830c5382d8a08b74d83bb27093 SHA512 84512d3adebc369a17dcb5823644b636954ec52cb566491ed7874765fc979f4df5c7e750855026b7eb83481d8779f65723562603ac671b371df0588d2af1d701 diff --git a/dev-python/sqlglot/sqlglot-26.23.0.ebuild b/dev-python/sqlglot/sqlglot-26.23.0.ebuild deleted file mode 100644 index 207cbfd84c152..0000000000000 --- a/dev-python/sqlglot/sqlglot-26.23.0.ebuild +++ /dev/null @@ -1,178 +0,0 @@ -# Copyright 2023-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -CRATES=" - aho-corasick@1.1.3 - anes@0.1.6 - anstyle@1.0.10 - autocfg@1.1.0 - bumpalo@3.16.0 - cast@0.3.0 - cfg-if@1.0.0 - ciborium-io@0.2.2 - ciborium-ll@0.2.2 - ciborium@0.2.2 - clap@4.5.23 - clap_builder@4.5.23 - clap_lex@0.7.4 - criterion-plot@0.5.0 - criterion@0.5.1 - crossbeam-deque@0.8.6 - crossbeam-epoch@0.9.18 - crossbeam-utils@0.8.21 - crunchy@0.2.2 - either@1.13.0 - half@2.4.1 - heck@0.5.0 - hermit-abi@0.4.0 - indoc@2.0.4 - is-terminal@0.4.13 - itertools@0.10.5 - itoa@1.0.14 - js-sys@0.3.76 - libc@0.2.169 - log@0.4.22 - memchr@2.7.4 - memoffset@0.9.0 - num-traits@0.2.19 - once_cell@1.19.0 - oorandom@11.1.4 - plotters-backend@0.3.7 - plotters-svg@0.3.7 - plotters@0.3.7 - portable-atomic@1.9.0 - proc-macro2@1.0.89 - pyo3-build-config@0.25.0 - pyo3-ffi@0.25.0 - pyo3-macros-backend@0.25.0 - pyo3-macros@0.25.0 - pyo3@0.25.0 - quote@1.0.37 - rayon-core@1.12.1 - rayon@1.10.0 - regex-automata@0.4.9 - regex-syntax@0.8.5 - regex@1.11.1 - rustc-hash@2.1.0 - ryu@1.0.18 - same-file@1.0.6 - serde@1.0.216 - serde_derive@1.0.216 - serde_json@1.0.133 - syn@2.0.87 - target-lexicon@0.13.2 - tinytemplate@1.2.1 - unicode-ident@1.0.12 - unindent@0.2.3 - walkdir@2.5.0 - wasm-bindgen-backend@0.2.99 - wasm-bindgen-macro-support@0.2.99 - wasm-bindgen-macro@0.2.99 - wasm-bindgen-shared@0.2.99 - wasm-bindgen@0.2.99 - web-sys@0.3.76 - winapi-util@0.1.9 - windows-sys@0.52.0 - windows-sys@0.59.0 - windows-targets@0.52.6 - windows_aarch64_gnullvm@0.52.6 - windows_aarch64_msvc@0.52.6 - windows_i686_gnu@0.52.6 - windows_i686_gnullvm@0.52.6 - windows_i686_msvc@0.52.6 - windows_x86_64_gnu@0.52.6 - windows_x86_64_gnullvm@0.52.6 - windows_x86_64_msvc@0.52.6 -" - -CARGO_OPTIONAL=1 -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..13} ) - -inherit cargo distutils-r1 pypi optfeature - -DESCRIPTION="An easily customizable SQL parser and transpiler" -HOMEPAGE=" - https://sqlglot.com/ - https://github.com/tobymao/sqlglot/ - https://pypi.org/project/sqlglot/ -" -SRC_URI+=" - native-extensions? ( - https://github.com/gentoo-crate-dist/sqlglot/releases/download/v${PV}/${P}-crates.tar.xz - ) -" - -LICENSE="MIT" -LICENSE+=" native-extensions? (" -# Dependent crate licenses -LICENSE+=" - Apache-2.0 Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016 -" -LICENSE+=" )" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86" -IUSE="+native-extensions" - -BDEPEND=" - native-extensions? ( - ${RUST_DEPEND} - dev-util/maturin[${PYTHON_USEDEP}] - ) - test? ( - dev-python/pytz[${PYTHON_USEDEP}] - ) -" - -distutils_enable_tests pytest - -QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/sqlglotrs/sqlglotrs.*.so" - -pkg_setup() { - use native-extensions && rust_pkg_setup -} - -src_unpack() { - cargo_src_unpack -} - -python_compile() { - distutils-r1_python_compile - - if use native-extensions; then - local DISTUTILS_USE_PEP517=maturin - local DISTUTILS_UPSTREAM_PEP517=maturin - cd sqlglotrs || die - distutils-r1_python_compile - cd - >/dev/null || die - fi -} - -python_test() { - local EPYTEST_DESELECT=( - # timing, sigh - # https://github.com/tobymao/sqlglot/issues/3961 - tests/test_generator.py::TestGenerator::test_generate_nested_binary - ) - local EPYTEST_IGNORE=( - # Tests require pyspark or duckdb which aren't in the tree. - # Pandas would be a requirement normally, but it gets ignored by proxy. - "tests/dataframe/integration/test_dataframe.py" - "tests/dataframe/integration/test_grouped_data.py" - "tests/dataframe/integration/test_session.py" - "tests/test_executor.py" - "tests/test_optimizer.py" - ) - - # make sure not to use an earlier installed version - local -x SQLGLOTRS_TOKENIZER=$(usex native-extensions 1 0) - rm -rf sqlglotrs || die - epytest -} - -pkg_postinst() { - optfeature "simplifying timedelta expressions" dev-python/python-dateutil -} From 50d528eb01023b13a410d3b2e8b45e84f4ebe617 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:29:57 +0200 Subject: [PATCH 18/53] dev-python/frozenlist: Bump to 1.6.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/frozenlist/Manifest | 1 + dev-python/frozenlist/frozenlist-1.6.2.ebuild | 53 +++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 dev-python/frozenlist/frozenlist-1.6.2.ebuild diff --git a/dev-python/frozenlist/Manifest b/dev-python/frozenlist/Manifest index e4a5b197c4467..6c0a53576631a 100644 --- a/dev-python/frozenlist/Manifest +++ b/dev-python/frozenlist/Manifest @@ -1,3 +1,4 @@ DIST frozenlist-1.5.0.gh.tar.gz 46957 BLAKE2B 385b6439985256c5fd074582001a9c3d8ae82a0b839abfb3c2ff054ba3f5904d17740d7e49a17c96c571a0d8940933d292cc980c5a7bb30ae25fe88484ade185 SHA512 4486a3132038cf3eb29184bc27baab2f166078d25163da29114cb0595bd97c88848d88241cef39d42be9da5e2a99d14141d899bc5f268690c97bf38bf07c54dd DIST frozenlist-1.6.0.gh.tar.gz 49920 BLAKE2B e7f03eb3779e048d921f8383d34d82af82828ac587378c148d9f555cf69aa1324f63fb1a53e42bc3d411a647ccd3eabf5b276a9c2ebd7af14d03245c8f4d4721 SHA512 f7e3d8741335c5ebdb3e78684c6e4a91c2f7f389134f4b869d8ea67d167472814867f14e303211045977f0d409d6b1b9478b7cfa7718af5ae9bacb49d147af58 DIST frozenlist-1.6.1.gh.tar.gz 49838 BLAKE2B 99e2bf456e9127b79940c53958f8aec377e00788d0778b08a55898f72d1f08ec1646ae7596d650687859d68b502e22360eebc33b82913b57f1877f15ba81bc22 SHA512 63776f6bbbc710d25a47a634df8020c347656d452d1912970ba9e94ffdaba28c999fe12ee6e9dca1622f9e7ab7ce60deda540bc3797f0ca6ec079c0d26b6cc84 +DIST frozenlist-1.6.2.gh.tar.gz 49853 BLAKE2B 88daf2ba5476902fbd1c49a547bfa1d2b6aca4892f3476c275bb7cfddd04c186a7db2dd85d810ef4f8a9ba097ea79a10f9b3604a575b693b3a011e50a17cf101 SHA512 98af12defa65033f42a1ead3012dc6a2df5b018fc96fb02449aeb42465bd22c86edb28663d35c5a2bdbcda71649c99e8edae98836de6ace6957599474a00dda7 diff --git a/dev-python/frozenlist/frozenlist-1.6.2.ebuild b/dev-python/frozenlist/frozenlist-1.6.2.ebuild new file mode 100644 index 0000000000000..214b343915d04 --- /dev/null +++ b/dev-python/frozenlist/frozenlist-1.6.2.ebuild @@ -0,0 +1,53 @@ +# Copyright 2021-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=standalone +PYTHON_COMPAT=( python3_{11..14} python3_13t pypy3_11 ) + +inherit distutils-r1 + +DESCRIPTION="A list-like structure which implements collections.abc.MutableSequence" +HOMEPAGE=" + https://pypi.org/project/frozenlist/ + https://github.com/aio-libs/frozenlist/ +" +SRC_URI=" + https://github.com/aio-libs/frozenlist/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="+native-extensions" + +BDEPEND=" + dev-python/expandvars[${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] + native-extensions? ( + $(python_gen_cond_dep ' + dev-python/cython[${PYTHON_USEDEP}] + ' 'python*') + ) +" + +distutils_enable_tests pytest + +python_compile() { + # pypy is not using the C extension + if ! use native-extensions || [[ ${EPYTHON} != python* ]]; then + local -x FROZENLIST_NO_EXTENSIONS=1 + fi + + distutils-r1_python_compile +} + +python_test() { + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + rm -rf frozenlist || die + epytest -o addopts= +} From 2646427e8baaeb7a8f0485e74dad145b85ef6847 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:30:49 +0200 Subject: [PATCH 19/53] dev-python/google-api-python-client: Bump to 2.171.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/google-api-python-client/Manifest | 1 + .../google-api-python-client-2.171.0.ebuild | 50 +++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 dev-python/google-api-python-client/google-api-python-client-2.171.0.ebuild diff --git a/dev-python/google-api-python-client/Manifest b/dev-python/google-api-python-client/Manifest index 5531fd549948e..87a8467a535cb 100644 --- a/dev-python/google-api-python-client/Manifest +++ b/dev-python/google-api-python-client/Manifest @@ -1,2 +1,3 @@ DIST google_api_python_client-2.169.0.tar.gz 12811341 BLAKE2B 31bf7b5aa53a05a7d196ea59f6a03b835628e4bcab312f4799386f1fc344c1774f06882fa502bd06a7d6feb244725a9c3f2396c1ef8ce999480ef9d211e10b44 SHA512 506bf5fc576a0db4d9db1e4abffdc5fa78009a070a7254821393599e3f56c55b6219b16200ea7f776a0ceca8673aa58cd379f952078deaafdc3f72e0591d726f DIST google_api_python_client-2.170.0.tar.gz 12971933 BLAKE2B 51382bb40c74018ec8267130b8ac50152a7b85cf09551c0c0826f0cce763834b2480127ac72a26ac600b5f847cd558651449f35997c335e1f54d51c275687cad SHA512 a2cb7dc10089ffe33c22e9c5ab2cff4836f6982ce708a6efc744ee218a6bb9d42a33afec1bd20213d1c234fe7176f5ffc59f1116c6f4cdc8a0f46e956073f302 +DIST google_api_python_client-2.171.0.tar.gz 13028937 BLAKE2B 8fdb02566b59a6ee863613ec707666ddd959a1962fbd679d8e2ffb0dd2ed9e051390302ed54d3631a6518f4cf2157ff092f8dbb17eb95ff771155a3fe45242f0 SHA512 8237e79f3e6be18bcd2aa8e073c5842768861dbd90faabf25e01cda116afebea0e895a951c01f23f81cda26d70db387b622afa024378f5acb7a6d580d7279663 diff --git a/dev-python/google-api-python-client/google-api-python-client-2.171.0.ebuild b/dev-python/google-api-python-client/google-api-python-client-2.171.0.ebuild new file mode 100644 index 0000000000000..0b6b0c57206a8 --- /dev/null +++ b/dev-python/google-api-python-client/google-api-python-client-2.171.0.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..13} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Google API Client for Python" +HOMEPAGE=" + https://github.com/googleapis/google-api-python-client/ + https://pypi.org/project/google-api-python-client/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" + +RDEPEND=" + >=dev-python/httplib2-0.15[${PYTHON_USEDEP}] + =dev-python/google-api-core-2.3.1[${PYTHON_USEDEP}] + >=dev-python/google-auth-1.35.0[${PYTHON_USEDEP}] + >=dev-python/google-auth-httplib2-0.1.0[${PYTHON_USEDEP}] + >=dev-python/uritemplate-3.0.0[${PYTHON_USEDEP}] + Date: Wed, 4 Jun 2025 03:31:33 +0200 Subject: [PATCH 20/53] dev-python/openstacksdk: Bump to 4.6.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/openstacksdk/Manifest | 1 + .../openstacksdk/openstacksdk-4.6.0.ebuild | 92 +++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 dev-python/openstacksdk/openstacksdk-4.6.0.ebuild diff --git a/dev-python/openstacksdk/Manifest b/dev-python/openstacksdk/Manifest index 6a43138f0ea0d..cd9a4e38da686 100644 --- a/dev-python/openstacksdk/Manifest +++ b/dev-python/openstacksdk/Manifest @@ -1 +1,2 @@ DIST openstacksdk-4.5.0.tar.gz 1284921 BLAKE2B 0b1ef6483c8c3724f20badb1108ec544937b83d9fd25d989289ac4143909d175c9d16b9545315bfe88a371a1ac2088511dbe4333cadf6141dd95200b3b45ed5c SHA512 7c8225089afa4e52ef501810a495c3047a15f31388cb32cecd035474c9cf56bd2b3181b13c71a619f841206935d455fd69787005fa6fcdf5a0d2f627c9a39dc3 +DIST openstacksdk-4.6.0.tar.gz 1287222 BLAKE2B cd2af29901c89bee15ed01fc2d19d75c75a5e2bacd860f999f6696292d171967e7f129ad295fc4556222ba4bf7786cccc4e20bd612b19bf3b6c6507752a88e25 SHA512 9c11a537734e11a25a8e4c664fa700071a47743b12bd8656ce6b91294650c2cd9e119d1f9fe2e68b230c46c1435040ca6b33e28f6e750f3bf88d1686dc66a42c diff --git a/dev-python/openstacksdk/openstacksdk-4.6.0.ebuild b/dev-python/openstacksdk/openstacksdk-4.6.0.ebuild new file mode 100644 index 0000000000000..097bd08f293d2 --- /dev/null +++ b/dev-python/openstacksdk/openstacksdk-4.6.0.ebuild @@ -0,0 +1,92 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..13} ) + +inherit distutils-r1 pypi + +DESCRIPTION="A collection of libraries for building applications to work with OpenStack" +HOMEPAGE=" + https://opendev.org/openstack/openstacksdk/ + https://github.com/openstack/openstacksdk/ + https://pypi.org/project/openstacksdk/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" + +RDEPEND=" + >=dev-python/cryptography-2.7[${PYTHON_USEDEP}] + >=dev-python/decorator-4.4.1[${PYTHON_USEDEP}] + >=dev-python/dogpile-cache-0.6.5[${PYTHON_USEDEP}] + >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}] + >=dev-python/jmespath-0.9.0[${PYTHON_USEDEP}] + >=dev-python/jsonpatch-1.21[${PYTHON_USEDEP}] + >=dev-python/keystoneauth1-5.10.0[${PYTHON_USEDEP}] + >=dev-python/os-service-types-1.7.0[${PYTHON_USEDEP}] + >=dev-python/pbr-2.2.0[${PYTHON_USEDEP}] + >=dev-python/platformdirs-3[${PYTHON_USEDEP}] + >=dev-python/psutil-3.2.2[${PYTHON_USEDEP}] + >=dev-python/pyyaml-3.13[${PYTHON_USEDEP}] + >=dev-python/requestsexceptions-1.2.0[${PYTHON_USEDEP}] +" +BDEPEND=" + >=dev-python/pbr-2.2.0[${PYTHON_USEDEP}] + test? ( + >=dev-python/ddt-1.0.1[${PYTHON_USEDEP}] + >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}] + >=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}] + >=dev-python/oslo-config-6.1.0[${PYTHON_USEDEP}] + >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}] + >=dev-python/prometheus-client-0.4.2[${PYTHON_USEDEP}] + >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}] + >=dev-python/statsd-3.3.0[${PYTHON_USEDEP}] + >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}] + >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.12.0[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests unittest + +src_prepare() { + # Internet? + sed -e 's:test_create_dynamic_large_object:_&:' \ + -i openstack/tests/unit/cloud/test_object.py || die + + # TODO + sed -e 's:test_generate_form:_&:' \ + -e 's:test_create_static_large_object:_&:' \ + -e 's:test_object_segment_retries:_&:' \ + -e 's:test_object_segment_retry_failure:_&:' \ + -e 's:test_slo_manifest_retry:_&:' \ + -i openstack/tests/unit/cloud/test_object.py || die + sed -e 's:test_servers:_&:' \ + -i openstack/tests/unit/test_stats.py || die + + # unhappy about paths due to test runner + sed -e 's:test_method_not_supported:_&:' \ + -i openstack/tests/unit/test_exceptions.py || die + sed -e 's:test_repr:_&:' \ + -i openstack/tests/unit/test_resource.py || die + + # requires hacking + rm openstack/tests/unit/test_hacking.py || die + + # fragile warning-based tests + sed -e 's:test_unsupported_version_override:_&:' \ + -i openstack/tests/unit/test_missing_version.py || die + sed -e 's:test_create_unknown_proxy:_&:' \ + -i openstack/tests/unit/test_connection.py || die + + distutils-r1_src_prepare +} + +python_test() { + # functional tests require cloud instance access + eunittest -b openstack/tests/unit +} From f3486f56a49803dcd15bb8c6a9d1e7bdd09ddbd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:32:05 +0200 Subject: [PATCH 21/53] dev-python/mkdocstrings-python: Bump to 1.16.12 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/mkdocstrings-python/Manifest | 1 + .../mkdocstrings-python-1.16.12.ebuild | 48 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 dev-python/mkdocstrings-python/mkdocstrings-python-1.16.12.ebuild diff --git a/dev-python/mkdocstrings-python/Manifest b/dev-python/mkdocstrings-python/Manifest index d9d8b21f9c133..fdc2a1d1e9872 100644 --- a/dev-python/mkdocstrings-python/Manifest +++ b/dev-python/mkdocstrings-python/Manifest @@ -1,2 +1,3 @@ DIST mkdocstrings_python-1.16.10.tar.gz 205771 BLAKE2B 3eca060176ea85e0191ad618ebf274e741a740ebf0da2d1c3b0ef6bcca4129a8f6486fda940ee161cea54f167a26122b55cb1105359dea17508a9c02e4dec638 SHA512 761a616654b3986feaeaa75e3faf5d6cc19786f740086c5c654444679be54fba4ad1a85d227a51e9798030cef889009a4f51d9461ea00c7ffb0e87fba8e1047c DIST mkdocstrings_python-1.16.11.tar.gz 205392 BLAKE2B 9442f60570b70912ed9fcb067b8ae507f4c7fe02e209c60e9a9f52171a77552857c01288f1f63f7c48d13857409136ee1c2de70889c7802af6876087eb70a64d SHA512 beb6da8c3fe19b0ffd69cabfb622f03bdc7b5727b628dcb7c7370a24e166fa5e759324585e3b6147521b706d18e2e2037c60ada25bebd7ec2a8ef6fd86978ab7 +DIST mkdocstrings_python-1.16.12.tar.gz 206065 BLAKE2B 444d4208f804423b60e7ca70c5488d8871210d9b83f53ffa99b6bf76adbbc541ab63a6a57fe488ff625a82b42a445e0adbeef33acfc62e208c51cda5e6154b01 SHA512 62ce0960059d0fd307e2d31516b53f79a68726d79ac196e016934778fca4c85b82653e85d75c9fbf89f93f7da9d814837ed930477d2fa207207f8ba20212521c diff --git a/dev-python/mkdocstrings-python/mkdocstrings-python-1.16.12.ebuild b/dev-python/mkdocstrings-python/mkdocstrings-python-1.16.12.ebuild new file mode 100644 index 0000000000000..31b51f300a92b --- /dev/null +++ b/dev-python/mkdocstrings-python/mkdocstrings-python-1.16.12.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=pdm-backend +PYTHON_COMPAT=( pypy3_11 python3_{11..13} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Python handler for dev-python/mkdocstrings" +HOMEPAGE=" + https://mkdocstrings.github.io/python/ + https://github.com/mkdocstrings/python/ + https://pypi.org/project/mkdocstrings-python/ +" + +LICENSE="ISC" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~riscv" + +RDEPEND=" + >=dev-python/griffe-1.6.2[${PYTHON_USEDEP}] + >=dev-python/mkdocstrings-0.28.3[${PYTHON_USEDEP}] + >=dev-python/mkdocs-autorefs-1.4[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + >=dev-python/beautifulsoup4-4.12.3[${PYTHON_USEDEP}] + >=dev-python/inline-snapshot-0.18[${PYTHON_USEDEP}] + dev-python/mkdocs-material[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +export PDM_BUILD_SCM_VERSION=${PV} + +python_test() { + local EPYTEST_DESELECT=( + # "None" meaning particular formatter not installed + "tests/test_rendering.py::test_format_code[None-print('Hello')]" + "tests/test_rendering.py::test_format_code[None-aaaaa(bbbbb, ccccc=1) + ddddd.eeeee[ffff] or {ggggg: hhhhh, iiiii: jjjjj}]" + ) + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest -p inline_snapshot +} From d3177adfc06ed3d25a10eb1c635f2b78f9486320 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:32:30 +0200 Subject: [PATCH 22/53] dev-python/pypi-attestations: Remove old MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/pypi-attestations/Manifest | 1 - .../pypi-attestations-0.0.25.ebuild | 38 ------------------- 2 files changed, 39 deletions(-) delete mode 100644 dev-python/pypi-attestations/pypi-attestations-0.0.25.ebuild diff --git a/dev-python/pypi-attestations/Manifest b/dev-python/pypi-attestations/Manifest index e22da6bb9ae62..8e202ca741d5f 100644 --- a/dev-python/pypi-attestations/Manifest +++ b/dev-python/pypi-attestations/Manifest @@ -1,2 +1 @@ -DIST pypi_attestations-0.0.25.tar.gz 124877 BLAKE2B cda14a611e8bb2a8f728753639030feffdcc8143c1539dc52bbd3498645879cf6ec24da122cc9e506c39f26d0a76e64374574f56281c9331a5835d0920231232 SHA512 6ebe1854290e017247c688fcc551727e6bfc7a65f3edfa277a703be433b36b940a0815d1b0b8ab6b1c07b04de5c195b93d3bd62a7f54c72e96922fc5cc0c5bd5 DIST pypi_attestations-0.0.26.tar.gz 120512 BLAKE2B 4963c0846dd79e63f3405af8a6e800f772a8fa5c641edc7d02679c9bce0e19d32c6e6fb40c8a5c88f71102af9df18cc2ae9c840236eaf3f0493505ec845db1c8 SHA512 0946016686228ee21be87410d778b8cf024ef23040a1c9bdb9bb2c36be72b8a4543d90f18cdb48055b4755d53b8a6888a0abf21996ad2fbdc8f179a9100144fb diff --git a/dev-python/pypi-attestations/pypi-attestations-0.0.25.ebuild b/dev-python/pypi-attestations/pypi-attestations-0.0.25.ebuild deleted file mode 100644 index 9ed29d2da015b..0000000000000 --- a/dev-python/pypi-attestations/pypi-attestations-0.0.25.ebuild +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright 2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..13} ) - -inherit distutils-r1 pypi - -DESCRIPTION="Convert between Sigstore Bundles and PEP-740 Attestation objects" -HOMEPAGE=" - https://github.com/trailofbits/pypi-attestations/ - https://pypi.org/project/pypi-attestations/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64" - -RDEPEND=" - dev-python/cryptography[${PYTHON_USEDEP}] - dev-python/packaging[${PYTHON_USEDEP}] - =dev-python/pyasn1-0.6*[${PYTHON_USEDEP}] - >=dev-python/pydantic-2.10.0[${PYTHON_USEDEP}] - dev-python/requests[${PYTHON_USEDEP}] - dev-python/rfc3986[${PYTHON_USEDEP}] - Date: Wed, 4 Jun 2025 03:35:08 +0200 Subject: [PATCH 23/53] dev-python/pypi-attestations: Bump to 0.0.27 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/pypi-attestations/Manifest | 1 + .../pypi-attestations-0.0.27.ebuild | 38 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 dev-python/pypi-attestations/pypi-attestations-0.0.27.ebuild diff --git a/dev-python/pypi-attestations/Manifest b/dev-python/pypi-attestations/Manifest index 8e202ca741d5f..9d0118ee41d36 100644 --- a/dev-python/pypi-attestations/Manifest +++ b/dev-python/pypi-attestations/Manifest @@ -1 +1,2 @@ DIST pypi_attestations-0.0.26.tar.gz 120512 BLAKE2B 4963c0846dd79e63f3405af8a6e800f772a8fa5c641edc7d02679c9bce0e19d32c6e6fb40c8a5c88f71102af9df18cc2ae9c840236eaf3f0493505ec845db1c8 SHA512 0946016686228ee21be87410d778b8cf024ef23040a1c9bdb9bb2c36be72b8a4543d90f18cdb48055b4755d53b8a6888a0abf21996ad2fbdc8f179a9100144fb +DIST pypi_attestations-0.0.27.tar.gz 123543 BLAKE2B 11e6dabcb58c5201af4df0392784c5cda02eabfde4d6d2cd39464d3bf89fa7a54495c435e86e5b7031ed7d9a85230ec273279d2f8ab86ba5e1dec2eb431829e4 SHA512 206c6aaf523a0143defe2ef35ee886d8d5d3cc7d3010a5f1ef6d5e9f0af3dac56b2a3b3af87256b50bf475d88ff397ea35f7512aac540a2918e8a52c91ac6e03 diff --git a/dev-python/pypi-attestations/pypi-attestations-0.0.27.ebuild b/dev-python/pypi-attestations/pypi-attestations-0.0.27.ebuild new file mode 100644 index 0000000000000..9ed29d2da015b --- /dev/null +++ b/dev-python/pypi-attestations/pypi-attestations-0.0.27.ebuild @@ -0,0 +1,38 @@ +# Copyright 2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..13} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Convert between Sigstore Bundles and PEP-740 Attestation objects" +HOMEPAGE=" + https://github.com/trailofbits/pypi-attestations/ + https://pypi.org/project/pypi-attestations/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/packaging[${PYTHON_USEDEP}] + =dev-python/pyasn1-0.6*[${PYTHON_USEDEP}] + >=dev-python/pydantic-2.10.0[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-python/rfc3986[${PYTHON_USEDEP}] + Date: Wed, 4 Jun 2025 03:37:02 +0200 Subject: [PATCH 24/53] dev-python/argon2-cffi: Bump to 25.1.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/argon2-cffi/Manifest | 1 + .../argon2-cffi/argon2-cffi-25.1.0.ebuild | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 dev-python/argon2-cffi/argon2-cffi-25.1.0.ebuild diff --git a/dev-python/argon2-cffi/Manifest b/dev-python/argon2-cffi/Manifest index e043e6b2be442..6ae04674be6c4 100644 --- a/dev-python/argon2-cffi/Manifest +++ b/dev-python/argon2-cffi/Manifest @@ -1 +1,2 @@ DIST argon2_cffi-23.1.0.tar.gz 42798 BLAKE2B 16f20c064bfc420894bc9da681ce4f544219c8e173f63bf095ffffdca6bd159695ecfa7ff33c32ca96f284764561e844e58d1ec3bf85a0c120c3b54490c3a56f SHA512 7c7730451f5ef9bb40bb5e1bbfa6e69c9718968168f3fa9b54e1020a4f805f98fba6260039bda804241717db2338479d640c7652dc26ce1a6ade076660133383 +DIST argon2_cffi-25.1.0.tar.gz 45706 BLAKE2B 8ff03622c4840c6241cf696bf07d0a494a01d773f503fc76bccc3546409db97bad340c26274e19f53897b8619824bc4030ca3cd9873b917e40bb68e141234849 SHA512 746f4469cd9be79f4639f814bee99ddca71200a7bfb31c8f34ca88cc760ee73665fc0d4e46d50ca003911fcfab0dd153fd555ec6cb9127066c1e1e0fd63755b5 diff --git a/dev-python/argon2-cffi/argon2-cffi-25.1.0.ebuild b/dev-python/argon2-cffi/argon2-cffi-25.1.0.ebuild new file mode 100644 index 0000000000000..5319cb076669d --- /dev/null +++ b/dev-python/argon2-cffi/argon2-cffi-25.1.0.ebuild @@ -0,0 +1,32 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) + +inherit distutils-r1 pypi + +DESCRIPTION="CFFI bindings to the Argon2 password hashing library" +HOMEPAGE=" + https://github.com/hynek/argon2-cffi/ + https://pypi.org/project/argon2-cffi/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + >=dev-python/argon2-cffi-bindings-21.2.0[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}] + dev-python/hatch-vcs[${PYTHON_USEDEP}] + test? ( + dev-python/hypothesis[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest From a7aa4cc00ca5e6dc1cd833ca81d03a3675743456 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:38:55 +0200 Subject: [PATCH 25/53] dev-python/treq: Bump to 25.5.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/treq/Manifest | 1 + dev-python/treq/treq-25.5.0.ebuild | 57 ++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 dev-python/treq/treq-25.5.0.ebuild diff --git a/dev-python/treq/Manifest b/dev-python/treq/Manifest index 7291f894e81bf..589ccefe0388f 100644 --- a/dev-python/treq/Manifest +++ b/dev-python/treq/Manifest @@ -1 +1,2 @@ DIST treq-24.9.1.tar.gz 85614 BLAKE2B cce700ae1f18b7e97953c45cb835786655caf47a0e425944e58f94c76a33c5948920c38f89283f50b51624f365326045d6ebb163c86644069f5bf548e137b9c0 SHA512 b8ed6ed5262073559babe8d0413a1f5369215a41ac7459441172a9086c654cf1dc7e51a0497d4c714726ae02d2163760cddde7008e360f37ebb4586b82409bb8 +DIST treq-25.5.0.tar.gz 83588 BLAKE2B 671e3e1f79f76abd1bda8b7826500bfc18c2d0bb192c668667f138fc123b178dcaee33e99e29f0ef437cbcaf12b511d54641b6300e6f068e85850a178dcf6617 SHA512 59fb457c2b4bc60ffa6fc0649c55fedcf4c64fdc43d7ea5c74241ab8e7a8afc23f878138dea249890e64ac0ba33959e8de443decb6ac388a976d8d4dabf64086 diff --git a/dev-python/treq/treq-25.5.0.ebuild b/dev-python/treq/treq-25.5.0.ebuild new file mode 100644 index 0000000000000..a13d435d0958f --- /dev/null +++ b/dev-python/treq/treq-25.5.0.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{11..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="A requests-like API built on top of twisted.web's Agent" +HOMEPAGE=" + https://github.com/twisted/treq/ + https://pypi.org/project/treq/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-python/attrs[${PYTHON_USEDEP}] + >=dev-python/hyperlink-21.0.0[${PYTHON_USEDEP}] + >=dev-python/incremental-24.7.2[${PYTHON_USEDEP}] + dev-python/multipart[${PYTHON_USEDEP}] + >=dev-python/requests-2.1.0[${PYTHON_USEDEP}] + >=dev-python/twisted-22.10.0[ssl,${PYTHON_USEDEP}] + >=dev-python/typing-extensions-3.10.0[${PYTHON_USEDEP}] +" +BDEPEND=" + >=dev-python/incremental-24.7.2[${PYTHON_USEDEP}] + test? ( + dev-python/httpbin[${PYTHON_USEDEP}] + dev-python/werkzeug[${PYTHON_USEDEP}] + ) +" + +distutils_enable_sphinx docs \ + dev-python/sphinx-rtd-theme + +src_prepare() { + distutils-r1_src_prepare + + # fix relative path for docs generation + sed -e 's@("..")@("../src")@' -i docs/conf.py || die + + # unbundle multipart + rm src/treq/_multipart.py || die + find -name '*.py' -exec \ + sed -i -e 's:from [.]\+_multipart:from multipart:' {} + || die +} + +python_test() { + "${EPYTHON}" -m twisted.trial treq || die "Tests failed with ${EPYTHON}" +} From 548562ba0cd97c5de38bfdca7bb796e2ff753da2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:39:54 +0200 Subject: [PATCH 26/53] dev-python/aiohttp: Bump to 3.12.7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/aiohttp/Manifest | 1 + dev-python/aiohttp/aiohttp-3.12.7.ebuild | 156 +++++++++++++++++++++++ 2 files changed, 157 insertions(+) create mode 100644 dev-python/aiohttp/aiohttp-3.12.7.ebuild diff --git a/dev-python/aiohttp/Manifest b/dev-python/aiohttp/Manifest index 40ceced3a38fb..b9a1cc345f8d5 100644 --- a/dev-python/aiohttp/Manifest +++ b/dev-python/aiohttp/Manifest @@ -4,3 +4,4 @@ DIST aiohttp-3.12.0.tar.gz 7762804 BLAKE2B 2fa51165917038cc8442cc4dab74373b47862 DIST aiohttp-3.12.2.tar.gz 7780423 BLAKE2B 47c7dccb2666c4641bbcfdba4f13f2f423e84d3043163dd9c2436aa32ccb2698b2a6ceb7c0ccf5defc98c1fb5799b39849a0a25f8aa37aaa4aab186b2b936c68 SHA512 8c6aed54ae385962fb1ad34f6f80f322612d7aec6c65845c56e8047b6b4e4102f9044964ac34ed765a09799bb6753e980ce51bf8194ce2e1ec7a9d8dd7c5cbd1 DIST aiohttp-3.12.4.tar.gz 7781788 BLAKE2B ccaa2656ef0e68687bad17608557413d8139b516e9e56dde473147f2c449ff1066878934a3a77b796e304c8ce0d48bf81c13ca65468187fdd686e51426fe8f9c SHA512 86e88a3be0d6a4993dbcf5a28bebbe19ded15466d539c6933cf2c8990bb684d436673685e419662efe1655a315e31642a60805d348ead9eeda909522720b8434 DIST aiohttp-3.12.6.tar.gz 7784449 BLAKE2B 1ebc5b2e991e8ccd9b37552d0b3ae80debfcc6d7000dc83e9ba308b25e9694ad1c1a9aff34469eef4bc2faa0b9d25d971ab854891fb1c63823266cb54693dddb SHA512 e73e57cf185bdf52e020856c9254be407663d75eeeb52e6ac3c0d57a77719d82539006347980319c7eed79ff8f3692355ade00d82929ed11a35ddb718b1cebca +DIST aiohttp-3.12.7.tar.gz 7806530 BLAKE2B 8d14e0c1e4d33e5c8c0e1899d26c15d35e545170f4b765a9168f8e741a703e3c4792ac99ce13fbba03ab33335a30cb230a8a588b53066a294d729eb0deb13d94 SHA512 1de4933912a3f5e599b6600785627f7ada49f511ace1265eacb303cdd5acd52c34f33c8d202e3f2949aa303fc25e73976f938600c3892f19d6b8e754275f1a98 diff --git a/dev-python/aiohttp/aiohttp-3.12.7.ebuild b/dev-python/aiohttp/aiohttp-3.12.7.ebuild new file mode 100644 index 0000000000000..f7f9c3ca295c7 --- /dev/null +++ b/dev-python/aiohttp/aiohttp-3.12.7.ebuild @@ -0,0 +1,156 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) + +inherit distutils-r1 pypi + +DESCRIPTION="HTTP client/server for asyncio" +HOMEPAGE=" + https://github.com/aio-libs/aiohttp/ + https://pypi.org/project/aiohttp/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~riscv ~x86" +IUSE="+native-extensions test-rust" + +DEPEND=" + native-extensions? ( + $(python_gen_cond_dep ' + net-libs/llhttp:= + ' 'python3*') + ) +" +RDEPEND=" + ${DEPEND} + >=dev-python/aiodns-3.3.0[${PYTHON_USEDEP}] + >=dev-python/aiohappyeyeballs-2.5.0[${PYTHON_USEDEP}] + >=dev-python/aiosignal-1.1.2[${PYTHON_USEDEP}] + >=dev-python/attrs-17.3.0[${PYTHON_USEDEP}] + dev-python/brotlicffi[${PYTHON_USEDEP}] + >=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}] + >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}] + >=dev-python/propcache-0.2.0[${PYTHON_USEDEP}] + >=dev-python/yarl-1.17.0[${PYTHON_USEDEP}] +" +BDEPEND=" + >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}] + native-extensions? ( + >=dev-python/cython-3.1.1[${PYTHON_USEDEP}] + dev-python/pkgconfig[${PYTHON_USEDEP}] + ) + test? ( + dev-python/blockbuster[${PYTHON_USEDEP}] + dev-python/freezegun[${PYTHON_USEDEP}] + dev-python/isal[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-python/re-assert[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/time-machine[${PYTHON_USEDEP}] + ' 'python3*') + dev-python/zlib-ng[${PYTHON_USEDEP}] + www-servers/gunicorn[${PYTHON_USEDEP}] + test-rust? ( + dev-python/trustme[${PYTHON_USEDEP}] + ) + ) +" + +DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst ) + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + # increase the timeout a little + sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die + # xfail_strict fails on py3.10 + sed -i -e '/--cov/d' -e '/pytest_cov/d' -e '/xfail_strict/d' setup.cfg || die + sed -i -e 's:-Werror::' Makefile || die + # remove vendored llhttp + rm -r vendor || die +} + +python_configure() { + # check for .install-cython, so that we do this only once + if [[ ! -f .install-cython && ${EPYTHON} != pypy3 ]] && + use native-extensions + then + # force rehashing first + emake requirements/.hash/cython.txt.hash + > .update-pip || die + > .install-cython || die + emake cythonize + fi +} + +python_compile() { + local -x AIOHTTP_USE_SYSTEM_DEPS=1 + # implicitly disabled for pypy3 + if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then + local -x AIOHTTP_NO_EXTENSIONS=1 + fi + + distutils-r1_python_compile +} + +python_test() { + local EPYTEST_IGNORE=( + # proxy is not packaged + tests/test_proxy_functional.py + # python_on_whales is not packaged + tests/autobahn/test_autobahn.py + # benchmarks + tests/test_benchmarks_client.py + tests/test_benchmarks_client_request.py + tests/test_benchmarks_client_ws.py + tests/test_benchmarks_cookiejar.py + tests/test_benchmarks_http_websocket.py + tests/test_benchmarks_http_writer.py + tests/test_benchmarks_web_fileresponse.py + tests/test_benchmarks_web_middleware.py + tests/test_benchmarks_web_response.py + tests/test_benchmarks_web_urldispatcher.py + ) + + local EPYTEST_DESELECT=( + # Internet + tests/test_client_session.py::test_client_session_timeout_zero + tests/test_connector.py::test_tcp_connector_ssl_shutdown_timeout_passed_to_create_connection + # broken by irrelevant deprecation warnings + tests/test_circular_imports.py::test_no_warnings + ) + + case ${EPYTHON} in + python3.14) + EPYTEST_DESELECT+=( + # TODO + tests/test_cookiejar.py::test_pickle_format + # different exception message + tests/test_client_functional.py::test_aiohttp_request_coroutine + ) + ;; + esac + + # upstream unconditionally blocks building C extensions + # on PyPy3 but the test suite needs an explicit switch + if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then + local -x AIOHTTP_NO_EXTENSIONS=1 + fi + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local -x PYTEST_PLUGINS=pytest_mock,xdist.plugin + rm -rf aiohttp || die + epytest -m "not internal and not dev_mode" \ + -p rerunfailures --reruns=5 +} From 4debc13c17d1e9ceaf07a6780ec22d96db7f36c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:40:15 +0200 Subject: [PATCH 27/53] dev-util/pixi: Remove old MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-util/pixi/Manifest | 2 - dev-util/pixi/pixi-0.46.0.ebuild | 125 ------------------------------- 2 files changed, 127 deletions(-) delete mode 100644 dev-util/pixi/pixi-0.46.0.ebuild diff --git a/dev-util/pixi/Manifest b/dev-util/pixi/Manifest index 66b6800e31f04..3839fbd556844 100644 --- a/dev-util/pixi/Manifest +++ b/dev-util/pixi/Manifest @@ -1,5 +1,3 @@ -DIST pixi-0.46.0-crates.tar.xz 72079412 BLAKE2B aebe04adbff588bbb9d556561f8658829cb0a08295db10df5d4e5d33706a21ea28f779bd50cd5efc6537a08bb70d72bb6931d4609e6e7ce8df7b4382e3fa533f SHA512 27648e54e88d94a239291dd551770b508e48bc791972fc1e9b06499ae0b09cabbe868bdc2b10eea1f1b97a78812b847ee821620d070b65d7e1cb29ee649b60b1 -DIST pixi-0.46.0.tar.gz 7924657 BLAKE2B ee854a4c4abecbffd98ad28601262c399c8287f3274460131d5942790ad9ab9b6c837f5a6b4b77121eeaba50252ae66c17aa7c1401374834ad3cb30dcc6103a8 SHA512 615bbf93379129639a69a5efa235fd59619b237224a194a9418667af5716e1499ec35015444b380d20eae6fb06a8284868264887afc5bd31536adf6debaeeb5a DIST pixi-0.47.0-crates.tar.xz 72680920 BLAKE2B 830631ed4c98c799139b6ed6d4198f234da693cceab846be2f8997058fabecf87b4e6b114309e2554c16d7ea20997e55e66e235b249681b635ed248a0bd68793 SHA512 2881da7cf753bf170786a0bdf35460759493c419aee993266e4f3e0c23c4a543eb2ae615f524e48ee799b14f39222d34d2840cb259ca61d3ff6dc195ffbd2622 DIST pixi-0.47.0.tar.gz 8159978 BLAKE2B d13ab86fb8d18235651c63d8558b93e81117c5ea3fe7d399ddc8a25500e1ee55a9f547a2da1169dd8cea714342c9e54c5ee1547dcf876fd178294072073b9412 SHA512 7340c0f62fedbcf95da2e6d81ffba453688348a80acf13fcda30398346009b97065abc60335599ea88744abe433a8270106e44b68052c542b58c2f168123f44f DIST pubgrub-b70cf707aa43f21b32f3a61b8a0889b15032d5c4.gh.tar.gz 98983 BLAKE2B 08ad8a10a96ba7da3100f7658f38cb8d6fb0e1eca92ba0aaf1393778012db807084f047eec171f0a46836a6746367369e79ab95836d5cdf215211e321d2800ac SHA512 401ea5ca16e978d5407a1400e4e27cec9fcac11332067ee1ed8a3bc511901e08fc421ce875ebbb0990593ed549a4a5f4620914a71ae3490c7b8ae0f7b26b5937 diff --git a/dev-util/pixi/pixi-0.46.0.ebuild b/dev-util/pixi/pixi-0.46.0.ebuild deleted file mode 100644 index d1c17e6b417e9..0000000000000 --- a/dev-util/pixi/pixi-0.46.0.ebuild +++ /dev/null @@ -1,125 +0,0 @@ -# Copyright 2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -CRATES=" -" - -declare -A GIT_CRATES=( - [async_zip]='https://github.com/charliermarsh/rs-async-zip;c909fda63fcafe4af496a07bfda28a5aae97e58d;rs-async-zip-%commit%' - [pubgrub]='https://github.com/astral-sh/pubgrub;b70cf707aa43f21b32f3a61b8a0889b15032d5c4;pubgrub-%commit%' - [tl]='https://github.com/astral-sh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%' - [uv-auth]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-auth' - [uv-build-backend]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-build-backend' - [uv-build-frontend]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-build-frontend' - [uv-cache-info]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-cache-info' - [uv-cache-key]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-cache-key' - [uv-cache]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-cache' - [uv-client]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-client' - [uv-configuration]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-configuration' - [uv-console]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-console' - [uv-dirs]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-dirs' - [uv-dispatch]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-dispatch' - [uv-distribution-filename]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-distribution-filename' - [uv-distribution-types]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-distribution-types' - [uv-distribution]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-distribution' - [uv-extract]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-extract' - [uv-fs]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-fs' - [uv-git-types]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-git-types' - [uv-git]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-git' - [uv-globfilter]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-globfilter' - [uv-install-wheel]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-install-wheel' - [uv-installer]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-installer' - [uv-macros]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-macros' - [uv-metadata]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-metadata' - [uv-normalize]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-normalize' - [uv-once-map]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-once-map' - [uv-options-metadata]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-options-metadata' - [uv-pep440]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-pep440' - [uv-pep508]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-pep508' - [uv-platform-tags]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-platform-tags' - [uv-pypi-types]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-pypi-types' - [uv-python]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-python' - [uv-requirements-txt]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-requirements-txt' - [uv-requirements]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-requirements' - [uv-resolver]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-resolver' - [uv-shell]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-shell' - [uv-small-str]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-small-str' - [uv-state]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-state' - [uv-static]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-static' - [uv-torch]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-torch' - [uv-trampoline-builder]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-trampoline-builder' - [uv-types]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-types' - [uv-version]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-version' - [uv-virtualenv]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-virtualenv' - [uv-warnings]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-warnings' - [uv-workspace]='https://github.com/astral-sh/uv;3d946027841ac949b9ecfd5ceaeec721836ee555;uv-%commit%/crates/uv-workspace' - [version-ranges]='https://github.com/astral-sh/pubgrub;b70cf707aa43f21b32f3a61b8a0889b15032d5c4;pubgrub-%commit%/version-ranges' -) - -inherit cargo - -CRATE_P=${P} -DESCRIPTION="A package management and workflow tool" -HOMEPAGE=" - https://pixi.sh/ - https://github.com/prefix-dev/pixi/ -" -SRC_URI=" - https://github.com/prefix-dev/pixi/releases/download/v${PV}/source.tar.gz - -> ${P}.tar.gz - ${CARGO_CRATE_URIS} - https://github.com/gentoo-crate-dist/pixi/releases/download/v${PV}/${P}-crates.tar.xz -" - -LICENSE="BSD" -# Dependent crate licenses -LICENSE+=" - 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD Boost-1.0 - ISC MIT MPL-2.0 MPL-2.0 Unicode-3.0 ZLIB -" -SLOT="0" -KEYWORDS="~amd64" -IUSE="+rustls" - -RDEPEND=" - app-arch/bzip2:= - app-arch/xz-utils:= - app-arch/zstd:= - !rustls? ( dev-libs/openssl:= ) -" - -src_prepare() { - default - - local vr_dep=$(grep version-ranges "${ECARGO_HOME}"/config.toml || die) - sed -i -e "/version-ranges/s;^.*$;${vr_dep};" Cargo.toml || die -} - -src_configure() { - local myfeatures=( - $(usex rustls rustls-tls native-tls) - ) - cargo_src_configure --no-default-features - - export ZSTD_SYS_USE_PKG_CONFIG=1 - - # bzip2-sys requires a pkg-config file - # https://github.com/alexcrichton/bzip2-rs/issues/104 - mkdir "${T}/pkg-config" || die - export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}} - cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die - Name: bzip2 - Version: 9999 - Description: - Libs: -lbz2 - EOF -} - -src_test() { - # tests use it to test preserving envvars, apparently assuming - # it will be always set - local -x USER=${USER} - cargo_src_test --no-fail-fast -} From 562ed8e999d1e494d2fc1efa51890c8f48aa238a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:40:40 +0200 Subject: [PATCH 28/53] dev-python/sqlglot: Bump to 26.25.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/sqlglot/Manifest | 2 + dev-python/sqlglot/sqlglot-26.25.0.ebuild | 178 ++++++++++++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 dev-python/sqlglot/sqlglot-26.25.0.ebuild diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest index 2556d3b2dd2c6..8a6279c54b14b 100644 --- a/dev-python/sqlglot/Manifest +++ b/dev-python/sqlglot/Manifest @@ -1,2 +1,4 @@ DIST sqlglot-26.24.0-crates.tar.xz 8859792 BLAKE2B abb2051b392c53dc3caa705ddd8df7076819a26dcdaa89fa3760559a79578db01e86943c2d0ffb8006263c2dca3aa50d20023eae9d772f8ebd12a8a2d3266cdd SHA512 7cca439a06433a62bcd4a2af33d240f46e9b5240cc158edbc654efb37a464aa0f1ebbe9749b2fc6352127b4809b63af2341fac6240050c414e578ae99444ba5d DIST sqlglot-26.24.0.tar.gz 5371208 BLAKE2B 76a6e3f1c940a7b2b3f6d9845fc6295b8d28bd32306aaef1b7829861ed6ceb151ab0fb3b7830717a91432f491e1268b404b26b830c5382d8a08b74d83bb27093 SHA512 84512d3adebc369a17dcb5823644b636954ec52cb566491ed7874765fc979f4df5c7e750855026b7eb83481d8779f65723562603ac671b371df0588d2af1d701 +DIST sqlglot-26.25.0-crates.tar.xz 8859792 BLAKE2B abb2051b392c53dc3caa705ddd8df7076819a26dcdaa89fa3760559a79578db01e86943c2d0ffb8006263c2dca3aa50d20023eae9d772f8ebd12a8a2d3266cdd SHA512 7cca439a06433a62bcd4a2af33d240f46e9b5240cc158edbc654efb37a464aa0f1ebbe9749b2fc6352127b4809b63af2341fac6240050c414e578ae99444ba5d +DIST sqlglot-26.25.0.tar.gz 5320294 BLAKE2B ca9a5d32d191f36685a8c0a278cd4d13b1680e04e5e1d8321c019bb135d261be68df79bd7817842240fd9c4b4ad6883753cf974683937db4eace55f2b7e490dd SHA512 7830df0ff9713cc2097c9adc0a1586c6066b3abb70aea116b73779d253bfeb0b248d28832be038f7844c8b832f649285eb143f4016eb00aca19f0a253e5ac50e diff --git a/dev-python/sqlglot/sqlglot-26.25.0.ebuild b/dev-python/sqlglot/sqlglot-26.25.0.ebuild new file mode 100644 index 0000000000000..207cbfd84c152 --- /dev/null +++ b/dev-python/sqlglot/sqlglot-26.25.0.ebuild @@ -0,0 +1,178 @@ +# Copyright 2023-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" + aho-corasick@1.1.3 + anes@0.1.6 + anstyle@1.0.10 + autocfg@1.1.0 + bumpalo@3.16.0 + cast@0.3.0 + cfg-if@1.0.0 + ciborium-io@0.2.2 + ciborium-ll@0.2.2 + ciborium@0.2.2 + clap@4.5.23 + clap_builder@4.5.23 + clap_lex@0.7.4 + criterion-plot@0.5.0 + criterion@0.5.1 + crossbeam-deque@0.8.6 + crossbeam-epoch@0.9.18 + crossbeam-utils@0.8.21 + crunchy@0.2.2 + either@1.13.0 + half@2.4.1 + heck@0.5.0 + hermit-abi@0.4.0 + indoc@2.0.4 + is-terminal@0.4.13 + itertools@0.10.5 + itoa@1.0.14 + js-sys@0.3.76 + libc@0.2.169 + log@0.4.22 + memchr@2.7.4 + memoffset@0.9.0 + num-traits@0.2.19 + once_cell@1.19.0 + oorandom@11.1.4 + plotters-backend@0.3.7 + plotters-svg@0.3.7 + plotters@0.3.7 + portable-atomic@1.9.0 + proc-macro2@1.0.89 + pyo3-build-config@0.25.0 + pyo3-ffi@0.25.0 + pyo3-macros-backend@0.25.0 + pyo3-macros@0.25.0 + pyo3@0.25.0 + quote@1.0.37 + rayon-core@1.12.1 + rayon@1.10.0 + regex-automata@0.4.9 + regex-syntax@0.8.5 + regex@1.11.1 + rustc-hash@2.1.0 + ryu@1.0.18 + same-file@1.0.6 + serde@1.0.216 + serde_derive@1.0.216 + serde_json@1.0.133 + syn@2.0.87 + target-lexicon@0.13.2 + tinytemplate@1.2.1 + unicode-ident@1.0.12 + unindent@0.2.3 + walkdir@2.5.0 + wasm-bindgen-backend@0.2.99 + wasm-bindgen-macro-support@0.2.99 + wasm-bindgen-macro@0.2.99 + wasm-bindgen-shared@0.2.99 + wasm-bindgen@0.2.99 + web-sys@0.3.76 + winapi-util@0.1.9 + windows-sys@0.52.0 + windows-sys@0.59.0 + windows-targets@0.52.6 + windows_aarch64_gnullvm@0.52.6 + windows_aarch64_msvc@0.52.6 + windows_i686_gnu@0.52.6 + windows_i686_gnullvm@0.52.6 + windows_i686_msvc@0.52.6 + windows_x86_64_gnu@0.52.6 + windows_x86_64_gnullvm@0.52.6 + windows_x86_64_msvc@0.52.6 +" + +CARGO_OPTIONAL=1 +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..13} ) + +inherit cargo distutils-r1 pypi optfeature + +DESCRIPTION="An easily customizable SQL parser and transpiler" +HOMEPAGE=" + https://sqlglot.com/ + https://github.com/tobymao/sqlglot/ + https://pypi.org/project/sqlglot/ +" +SRC_URI+=" + native-extensions? ( + https://github.com/gentoo-crate-dist/sqlglot/releases/download/v${PV}/${P}-crates.tar.xz + ) +" + +LICENSE="MIT" +LICENSE+=" native-extensions? (" +# Dependent crate licenses +LICENSE+=" + Apache-2.0 Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016 +" +LICENSE+=" )" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="+native-extensions" + +BDEPEND=" + native-extensions? ( + ${RUST_DEPEND} + dev-util/maturin[${PYTHON_USEDEP}] + ) + test? ( + dev-python/pytz[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/sqlglotrs/sqlglotrs.*.so" + +pkg_setup() { + use native-extensions && rust_pkg_setup +} + +src_unpack() { + cargo_src_unpack +} + +python_compile() { + distutils-r1_python_compile + + if use native-extensions; then + local DISTUTILS_USE_PEP517=maturin + local DISTUTILS_UPSTREAM_PEP517=maturin + cd sqlglotrs || die + distutils-r1_python_compile + cd - >/dev/null || die + fi +} + +python_test() { + local EPYTEST_DESELECT=( + # timing, sigh + # https://github.com/tobymao/sqlglot/issues/3961 + tests/test_generator.py::TestGenerator::test_generate_nested_binary + ) + local EPYTEST_IGNORE=( + # Tests require pyspark or duckdb which aren't in the tree. + # Pandas would be a requirement normally, but it gets ignored by proxy. + "tests/dataframe/integration/test_dataframe.py" + "tests/dataframe/integration/test_grouped_data.py" + "tests/dataframe/integration/test_session.py" + "tests/test_executor.py" + "tests/test_optimizer.py" + ) + + # make sure not to use an earlier installed version + local -x SQLGLOTRS_TOKENIZER=$(usex native-extensions 1 0) + rm -rf sqlglotrs || die + epytest +} + +pkg_postinst() { + optfeature "simplifying timedelta expressions" dev-python/python-dateutil +} From 001579d1b8886eaacc06f4dccbf1c83fef1e77d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:44:41 +0200 Subject: [PATCH 29/53] sys-fs/squashfs-tools: Bump to 4.7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- sys-fs/squashfs-tools/Manifest | 1 + .../squashfs-tools/squashfs-tools-4.7.ebuild | 57 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 sys-fs/squashfs-tools/squashfs-tools-4.7.ebuild diff --git a/sys-fs/squashfs-tools/Manifest b/sys-fs/squashfs-tools/Manifest index d945ad94f2dba..341737eb18edc 100644 --- a/sys-fs/squashfs-tools/Manifest +++ b/sys-fs/squashfs-tools/Manifest @@ -1,3 +1,4 @@ DIST squashfs-tools-4.5.1.tar.gz 270112 BLAKE2B cbd35daf582d284b021911bb754ed548763f2773e1bc02516ca18bab7034e352780c11eb7dfed1f047b70974dcfb716bb1a1d3729e5b25662203cfbf93553b73 SHA512 b3934ea1e26c7508110312711465644a6d9674b6b5332a7d011e191fa3c1d4b8be694214794a0f6005263d0f4e18bab96af2f7ed66a178f8e3bb3a781cd44896 DIST squashfs-tools-4.6.1.tar.gz 286848 BLAKE2B 05e38681de219413573e8b1a7f36d2f7e87734f68a929ecdeb5ae6017076fbfd67b897448980e047689ef4b154d2dcd1a90162367a6a5babab45f1ef36f09325 SHA512 10e8a4b1e2327e062aef4f85860e76ebcd7a29e4c19e152ff7edec4a38316982b5bcfde4ab69da6bcb931258d264c2b6cb40cb5f635f9e6f6eba1ed5976267cb DIST squashfs-tools-4.6.tar.gz 286409 BLAKE2B 1c04a8f6149863667151e76b3c1ecfdd5e9a181b305bea694af1d4968ac361114c9e926b351dcee2647796a21bc8cfc55b3d95f020ad88c3388007460de26053 SHA512 3a9effb9a5cf46fbb9f393e58bd938874dc4121828b77c67d659117ee84643917998a8503d629f46f1eff1826f6d7ae59ac2d803a5cdc3cfb1006ef2b3abf8c8 +DIST squashfs-tools-4.7.tar.gz 519217 BLAKE2B 331b5c9dfeb0c9829858a1b7e400120dc74cc503059b1c4a730633ae30d8f9839f420a042f2f3ae4b4d14eb753be622714a0cb22a1c3ac4bdf2e81d9cc77d84b SHA512 db69937dd62c61c77ee555df0346942a5da671e5a9c2e93cd76ea1132f7e20b17fc701d53d8a232b192301c4769869b6b1ea47dac877afcc8dfa9a4eea31e1e0 diff --git a/sys-fs/squashfs-tools/squashfs-tools-4.7.ebuild b/sys-fs/squashfs-tools/squashfs-tools-4.7.ebuild new file mode 100644 index 0000000000000..4fbed2884460c --- /dev/null +++ b/sys-fs/squashfs-tools/squashfs-tools-4.7.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic toolchain-funcs + +DESCRIPTION="Tools to create and extract Squashfs filesystems" +HOMEPAGE="https://github.com/plougher/squashfs-tools/" +SRC_URI=" + https://github.com/plougher/squashfs-tools/archive/${PV}.tar.gz + -> ${P}.tar.gz +" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="debug lz4 lzma lzo xattr zstd" + +DEPEND=" + sys-libs/zlib + lz4? ( app-arch/lz4 ) + lzma? ( app-arch/xz-utils ) + lzo? ( dev-libs/lzo ) + xattr? ( sys-apps/attr ) + zstd? ( app-arch/zstd ) +" +RDEPEND=${DEPEND} + +use10() { + usex "${1}" 1 0 +} + +src_compile() { + # set up make command line variables in EMAKE_SQUASHFS_CONF + local opts=( + LZMA_XZ_SUPPORT=$(use10 lzma) + LZO_SUPPORT=$(use10 lzo) + LZ4_SUPPORT=$(use10 lz4) + XATTR_SUPPORT=$(use10 xattr) + XZ_SUPPORT=$(use10 lzma) + ZSTD_SUPPORT=$(use10 zstd) + ) + + tc-export CC + use debug && append-cppflags -DSQUASHFS_TRACE + emake "${opts[@]}" -C squashfs-tools +} + +src_install() { + dobin squashfs-tools/{mksquashfs,unsquashfs} + dodoc ACKNOWLEDGEMENTS CHANGES README* + doman Documentation/manpages/*.1 + + dosym unsquashfs /usr/bin/sqfscat + dosym mksquashfs /usr/bin/sqfstar +} From 19d2b27348521c4a981796ca742a75ecb1f78d17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:44:56 +0200 Subject: [PATCH 30/53] dev-util/pixi: Bump to 0.48.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-util/pixi/Manifest | 4 + dev-util/pixi/pixi-0.48.0.ebuild | 128 +++++++++++++++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 dev-util/pixi/pixi-0.48.0.ebuild diff --git a/dev-util/pixi/Manifest b/dev-util/pixi/Manifest index 3839fbd556844..3a8551adb4c2f 100644 --- a/dev-util/pixi/Manifest +++ b/dev-util/pixi/Manifest @@ -1,6 +1,10 @@ DIST pixi-0.47.0-crates.tar.xz 72680920 BLAKE2B 830631ed4c98c799139b6ed6d4198f234da693cceab846be2f8997058fabecf87b4e6b114309e2554c16d7ea20997e55e66e235b249681b635ed248a0bd68793 SHA512 2881da7cf753bf170786a0bdf35460759493c419aee993266e4f3e0c23c4a543eb2ae615f524e48ee799b14f39222d34d2840cb259ca61d3ff6dc195ffbd2622 DIST pixi-0.47.0.tar.gz 8159978 BLAKE2B d13ab86fb8d18235651c63d8558b93e81117c5ea3fe7d399ddc8a25500e1ee55a9f547a2da1169dd8cea714342c9e54c5ee1547dcf876fd178294072073b9412 SHA512 7340c0f62fedbcf95da2e6d81ffba453688348a80acf13fcda30398346009b97065abc60335599ea88744abe433a8270106e44b68052c542b58c2f168123f44f +DIST pixi-0.48.0-crates.tar.xz 72999732 BLAKE2B c216537f4cba7feb2832c9542b096560efb05f03355abaed1d04f0443cf0d7b3c5384f6a43e51c6979c136975681b5e97f99addbfe7121ffc07bcfacddaf6760 SHA512 0a8c34bbd5803bce4c3e1a4c4ad8700839d381bf69ed0282a2837cab31b970bee64cbb0c6066645983a89067f2f5ca6db3750a57557ad181ba6455782932ba9f +DIST pixi-0.48.0.tar.gz 9411258 BLAKE2B 8ef5155fa82183061740e1dcaa6491c9da26147e0ce448d84935b3f44bf33c6d65e89eefe94b2069745ca6e2b5c5d61ffa9d374a0b1341c0130d696d5bee2fe3 SHA512 7dbe18febfcc06631c33001243d68e1efd1a8a278aecabf212b3ad4d81567ec5a9e4db318023e3678d50f3903c0793e9393ed90a0aabdffd0b1ae84425c18065 +DIST pubgrub-06ec5a5f59ffaeb6cf5079c6cb184467da06c9db.gh.tar.gz 99881 BLAKE2B 5fcc2d1a06eb44351773081de4f616c93301eb2fe71b0c6f7b95779ec4bd9bb6cccc702a87a6399b0674711302a19de3a96fa31044660430fd74ff549000ad25 SHA512 3f0b18aecbc73fee91fc7de9f10d240ddc06c836fa2f116c1f007dd7818d099e6aea1852ca0b8d1a26ac19aac896535dba1a6298851a65515b553810c6245784 DIST pubgrub-b70cf707aa43f21b32f3a61b8a0889b15032d5c4.gh.tar.gz 98983 BLAKE2B 08ad8a10a96ba7da3100f7658f38cb8d6fb0e1eca92ba0aaf1393778012db807084f047eec171f0a46836a6746367369e79ab95836d5cdf215211e321d2800ac SHA512 401ea5ca16e978d5407a1400e4e27cec9fcac11332067ee1ed8a3bc511901e08fc421ce875ebbb0990593ed549a4a5f4620914a71ae3490c7b8ae0f7b26b5937 DIST rs-async-zip-c909fda63fcafe4af496a07bfda28a5aae97e58d.gh.tar.gz 51763 BLAKE2B 59d053bc6692014d884a9247dea1b57a8789469ba2abbcc92ec21bb0022cbd74874afc463082156ab697aa6c80635019857a5d7e2dc150274e8b04d720518c36 SHA512 3a309566f4925b02496fcf19bc2865968edf6fb65082ca4079d2cee79e6b0353a1910c079f2afe656da0d0f6ddde5102052a221ea35a7dabc6d690a11218b20a DIST tl-6e25b2ee2513d75385101a8ff9f591ef51f314ec.gh.tar.gz 37106 BLAKE2B c30d1c33f6f52e2bc83823eb6319f8a3e462b7c7408fb6a08f995747857ef234f81db4135a04f9d183095fe473a4087f8f0cb89d8f87ef4400285d2ce034ec22 SHA512 4abbc4240ed129c92da8d616e27a6df0f24cdc85a0803acfdae588ca91f9e5b8d482e3ac88b2e657ff68917b1b43cef1e7ef3c887f624659b231fa5a13fcae68 +DIST uv-0ddcc190556d9d20686bd81f17a364cf907e8f68.gh.tar.gz 3996009 BLAKE2B 9ef58854d20c93e3dd9cc6b96742cb97a49fb9c395b64a114e87a2fbf2972d5e3577dc6a084b8cd630ae3ad7d84fc82f1957306d8a725fd85d3c7fc196b9ab8c SHA512 a5424ea95c8f38c88965ad6d633d65fa97fee7739fad9ab0aefc3b623641273895d7ae6449841fe69cbbaf4f809a108c6944dfdc8a435963822f55fa83819ac2 DIST uv-3d946027841ac949b9ecfd5ceaeec721836ee555.gh.tar.gz 3809296 BLAKE2B 48d163f5aa19dba2043f3d0a94f952e7266cabc37197253d91cb69286abd121ab588edfc312f2560a15444a59cc9b14cf8ebb4b8fdffe9935579d9152bf75cd5 SHA512 640ad76d4db5bf2f3db21a37d7cf9465ceae7282855f305d1df3c215a261f4cabc25b2297471a82bbe0cb29d088bfa56b850279daa0ed1288b843af5428fd28f diff --git a/dev-util/pixi/pixi-0.48.0.ebuild b/dev-util/pixi/pixi-0.48.0.ebuild new file mode 100644 index 0000000000000..b74d895cbf7df --- /dev/null +++ b/dev-util/pixi/pixi-0.48.0.ebuild @@ -0,0 +1,128 @@ +# Copyright 2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" +" + +declare -A GIT_CRATES=( + [async_zip]='https://github.com/charliermarsh/rs-async-zip;c909fda63fcafe4af496a07bfda28a5aae97e58d;rs-async-zip-%commit%' + [pubgrub]='https://github.com/astral-sh/pubgrub;06ec5a5f59ffaeb6cf5079c6cb184467da06c9db;pubgrub-%commit%' + [tl]='https://github.com/astral-sh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%' + [uv-auth]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-auth' + [uv-build-backend]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-build-backend' + [uv-build-frontend]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-build-frontend' + [uv-cache-info]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-cache-info' + [uv-cache-key]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-cache-key' + [uv-cache]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-cache' + [uv-client]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-client' + [uv-configuration]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-configuration' + [uv-console]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-console' + [uv-dirs]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-dirs' + [uv-dispatch]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-dispatch' + [uv-distribution-filename]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-distribution-filename' + [uv-distribution-types]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-distribution-types' + [uv-distribution]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-distribution' + [uv-extract]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-extract' + [uv-fs]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-fs' + [uv-git-types]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-git-types' + [uv-git]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-git' + [uv-globfilter]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-globfilter' + [uv-install-wheel]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-install-wheel' + [uv-installer]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-installer' + [uv-macros]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-macros' + [uv-metadata]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-metadata' + [uv-normalize]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-normalize' + [uv-once-map]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-once-map' + [uv-options-metadata]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-options-metadata' + [uv-pep440]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-pep440' + [uv-pep508]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-pep508' + [uv-platform-tags]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-platform-tags' + [uv-pypi-types]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-pypi-types' + [uv-python]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-python' + [uv-redacted]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-redacted' + [uv-requirements-txt]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-requirements-txt' + [uv-requirements]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-requirements' + [uv-resolver]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-resolver' + [uv-shell]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-shell' + [uv-small-str]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-small-str' + [uv-state]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-state' + [uv-static]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-static' + [uv-torch]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-torch' + [uv-trampoline-builder]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-trampoline-builder' + [uv-types]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-types' + [uv-version]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-version' + [uv-virtualenv]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-virtualenv' + [uv-warnings]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-warnings' + [uv-workspace]='https://github.com/astral-sh/uv;0ddcc190556d9d20686bd81f17a364cf907e8f68;uv-%commit%/crates/uv-workspace' + [version-ranges]='https://github.com/astral-sh/pubgrub;06ec5a5f59ffaeb6cf5079c6cb184467da06c9db;pubgrub-%commit%/version-ranges' +) + +RUST_MIN_VER="1.85.0" + +inherit cargo + +CRATE_P=${P} +DESCRIPTION="A package management and workflow tool" +HOMEPAGE=" + https://pixi.sh/ + https://github.com/prefix-dev/pixi/ +" +SRC_URI=" + https://github.com/prefix-dev/pixi/releases/download/v${PV}/source.tar.gz + -> ${P}.tar.gz + ${CARGO_CRATE_URIS} + https://github.com/gentoo-crate-dist/pixi/releases/download/v${PV}/${P}-crates.tar.xz +" + +LICENSE="BSD" +# Dependent crate licenses +LICENSE+=" + 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD Boost-1.0 + ISC MIT MPL-2.0 MPL-2.0 Unicode-3.0 ZLIB +" +SLOT="0" +KEYWORDS="~amd64" +IUSE="+rustls" + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + app-arch/zstd:= + !rustls? ( dev-libs/openssl:= ) +" + +src_prepare() { + default + + local vr_dep=$(grep version-ranges "${ECARGO_HOME}"/config.toml || die) + sed -i -e "/version-ranges/s;^.*$;${vr_dep};" Cargo.toml || die +} + +src_configure() { + local myfeatures=( + $(usex rustls rustls-tls native-tls) + ) + cargo_src_configure --no-default-features + + export ZSTD_SYS_USE_PKG_CONFIG=1 + + # bzip2-sys requires a pkg-config file + # https://github.com/alexcrichton/bzip2-rs/issues/104 + mkdir "${T}/pkg-config" || die + export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}} + cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die + Name: bzip2 + Version: 9999 + Description: + Libs: -lbz2 + EOF +} + +src_test() { + # tests use it to test preserving envvars, apparently assuming + # it will be always set + local -x USER=${USER} + cargo_src_test --no-fail-fast +} From c90ebc78b152bfdb8bfb0c07c12cc729bb37c185 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:47:11 +0200 Subject: [PATCH 31/53] dev-lang/python: Bump to 3.13.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-lang/python/Manifest | 3 + dev-lang/python/python-3.13.4.ebuild | 631 +++++++++++++++++++++++++++ 2 files changed, 634 insertions(+) create mode 100644 dev-lang/python/python-3.13.4.ebuild diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest index 1a9818ebb9b3a..04b5b78efbca2 100644 --- a/dev-lang/python/Manifest +++ b/dev-lang/python/Manifest @@ -8,6 +8,8 @@ DIST Python-3.12.10.tar.xz 20520960 BLAKE2B f05805da36958e3ebb68c69353e8119b20ee DIST Python-3.12.10.tar.xz.asc 963 BLAKE2B 45e1ec67311d1ac5679cb5a05b92e61f3e5e6e9d3ffa5462c09c2aa066fda7ea915df13f6e5ad33aa924f6ce1f18e2d78a31af15412a10c093fc8a5b536c5133 SHA512 7edfa6fd816cf2a052abdb775d464e2f389105ed3e782cacf90805613aaca54bf71308504a5336ee1204e872e7db28df32413fb10b057056b0d5cb3c7a20a9f1 DIST Python-3.13.3.tar.xz 22654240 BLAKE2B 24ac47c13cbfa4dc9ce6ae4d18d7b5310f83ac1f4f18722138ef07e01cb8ac37edf6f4301983cb468f533b9b475b5a9d761d3044e61c7ccaa99dceadb954fe34 SHA512 f7559b6dceae69f48742af0a6497fbec42cd1e5304f64b6eb9d89222a1171ccf12fa186cc0decabb4e98d05223184967a4a7537754c01083dacdc9073cb1a578 DIST Python-3.13.3.tar.xz.asc 963 BLAKE2B 4a98965305b80e985512f54d9ce8ab88a74fe0d3ee48e300fbc2b4e251c0f499f4eb935e0aeb6d5ad8262338643325126f094fff926da1e2b9a2b3a2247701dc SHA512 54f8da5f4a4dcadc9830cb07aecf695a26a2de48ab98e1f42b09fdde1c70989476d07ce7ea81337216f1e5fcbf6b688e0608c88a2545ced416b01640108e94db +DIST Python-3.13.4.tar.xz 22672472 BLAKE2B d453538db82084f490456416829c7d30672e5c05c1c1baf428493f16fa78ce63b69544787373e4679826f32a18af5c5de5225f8f507699113346917df0e3de31 SHA512 91454bb4d04c192721d2df980a806858bd8aadb5cef92159c2844cc33e92b0386b1b33d5cfff0f69d449e9f978a5f67f6032155f7b1425ff38e36477637c0c68 +DIST Python-3.13.4.tar.xz.asc 963 BLAKE2B 5c594f95a7b74c2191b553f50020cd6db9b400f32af62d12094fa4c449651079a662645de8118a7a661c4ceafceb9ce5bcecbbbf8d6bc80d6657a0247e88e510 SHA512 ba9c1dee0f3bf564e6ac19cbe08cf4fdc3779a04ed8289654f6dda3fba9f07a0937764a12f1e7e2f6d7ff17bb5b86c05b8ea19296a2b98d1c81a48362ccf6104 DIST Python-3.14.0b2.tar.xz 23579860 BLAKE2B bf5ebac54531a7c837e7650754264b4be28e28613d488d1c7546db77e2ef3b501ff646d7fb505c6ac0fa1381c3230d1c1899bc82144f369339c89687b5dc7f5c SHA512 cdd37f8a982e6194d5afa80a2eb94c899080809749d59a50a2ce3eed37f720a1fd9a7977f0dd3992650d173a7070b15610077d97cb499bd16a7500c56ef1f8dd DIST Python-3.14.0b2.tar.xz.sigstore 5131 BLAKE2B 04cab57a4da63f5abf28db94e5fd952206124ce37ef5a5d981839a0790881c9c4ea6d186f233eaaf6e82350bdfdbb0048d761b816d81eaba71c707bd9714a9d9 SHA512 a356037824fbde5950f197cf04f0d71ddaf4b68006b2ab9951f9b4c2df508e84bd0bec7d72051e75d22c17eee767e46e5d2c167e853fb941b0831cb26d518fdc DIST Python-3.8.20.tar.xz 18962788 BLAKE2B 715c75e0c0a3d3b77af7f07478311bb0554b80aac72915be703aa2d0dd6459a972e5669808e64da14a0b91bb183e00655055c1726f302dc3ccd8721e3b4ae3e6 SHA512 3c9341ee1fd33cb687958dcf2b7c0c7700489726c4d530c3e9d9537d46a6ab534541a4b312232d8505bea395a07e4518c42d75fb7571103e6b266f8f44115c61 @@ -28,6 +30,7 @@ DIST python-gentoo-patches-3.12.10_p2.tar.xz 33236 BLAKE2B e73edf8caf53799f4407e DIST python-gentoo-patches-3.13.3.tar.xz 8336 BLAKE2B 66393886fbd034eb14732e4f81f5798e77650ea3fe1c4f8176bd93808b711c8977a53c3f52be6c9b97a368299258b851d9bdb6d4c8e0c75695c6aea784d48b44 SHA512 c1ed31d6aaef81addf786c2ccc1013309b122b791c42fe10e467a677d0db8f149e8b1cc21928c146298918c7ceb851b4b19d1e59f491cb161004e1c9386db289 DIST python-gentoo-patches-3.13.3_p1.tar.xz 15164 BLAKE2B 56420b8d051fbf3eb47f2bce08c79f167b9fbaa89f8ee932e3db27ea08a191f042e1f0114c1377c8210060332141b36eb1d582507185c983297a1d61573aa435 SHA512 1e138be3ef5c03e4d0b520aa736cdec44daf2956a931f4080e53b0652ebefa48095cad837e7bae4cc90bd42fbb7aba6f25c61e3c880ca1a581a745744b011fa3 DIST python-gentoo-patches-3.13.3_p2.tar.xz 36284 BLAKE2B c1f62268013a055ac477e3e7b49c313d8a41e1fdbd806bb9ddb3a57926297ba7d67e20dadc47ab21ec35f1b0bc504ffd4f039846d8588d143f4e379d8bdc5a12 SHA512 d80856c60c519f28660d6ac5c3df0446759df4c962ab5c989dca1147e92e53e07ed19c75f75a7fdce8e85e919bc77c6ad06a25a611c09764b3eafd61f7d8b63d +DIST python-gentoo-patches-3.13.4.tar.xz 8912 BLAKE2B e3d9f2a12f801dc75e09c5301757f35216d712b5e5394f2ec3ce1d79d0cb57571dbca525e3d5c35b90fa059c2b78ee24341b6a51cbe9691deac84c9ee0578824 SHA512 1a7141accb7aa70c7bd8dd12528f7de031dfeab9ff089f3d044da0b7b52461e2d6d7d1467161e0fe1e259d9fa06d70bcf107d86ad3590e8cf73aa1132ef3aaf9 DIST python-gentoo-patches-3.14.0b1.tar.xz 5680 BLAKE2B 514b3edc3025e5bf675d371b5ada17dea426856edf1fb6095c2ee400eae95bd4265ef81fe593ae9338e801e7d0a25b1d5ba2d05ca563fd9dd020114b13575746 SHA512 74289e42cf532b54bb1b66a283ec19156f8a36ba38764209c133842314c9efb2ce2ebcba5aa9213bcf7fc0c8a5ca9b6e7adbd5dbfa4397233136d7cd55f53ee7 DIST python-gentoo-patches-3.14.0b2.tar.xz 6168 BLAKE2B ecf2fd981efc289fbc16d615c6e69ad7a797bd6906e6f974ece47eace582d7c4b3ea0217b0df9575e522416df2749125ff3658d8aca6a53bf977d5f155dd6b90 SHA512 552ff5306ca43c89e65b1df42cb71753c7e900efc4be7e35150c187184a5e94241fea78bb9084831508fd4a7e71323be59c1565901560ec53fc076c3697baf34 DIST python-gentoo-patches-3.14.0b2_p1.tar.xz 23992 BLAKE2B 65346fe06b2f03251882542b90821c28bd16d9f1c81d1e594bf78403689b444688a9cffa1d52faf63dd9c4db301a9b2a1e6729026e73525fe2f0622f896b6a46 SHA512 c98600da507541c0ba3a03dcaa6d344596fd8f5ef8169eff276318ed33a38ba4794ea346b25b9d11f9a277334bdcc1105e6332bb212602c3c993866340aa8482 diff --git a/dev-lang/python/python-3.13.4.ebuild b/dev-lang/python/python-3.13.4.ebuild new file mode 100644 index 0000000000000..d7ba090d3875c --- /dev/null +++ b/dev-lang/python/python-3.13.4.ebuild @@ -0,0 +1,631 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +LLVM_COMPAT=( 18 ) +LLVM_OPTIONAL=1 +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic linux-info llvm-r1 +inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs +inherit verify-sig + +MY_PV=${PV} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE=" + bluetooth build debug +ensurepip examples gdbm jit + libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind +" +REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + app-crypt/libb2 + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + dev-libs/mpdecimal:= + dev-python/gentoo-common + >=sys-libs/zlib-1.1.3:= + virtual/libintl + ensurepip? ( dev-python/ensurepip-pip ) + gdbm? ( sys-libs/gdbm:=[berkdb] ) + kernel_linux? ( sys-apps/util-linux:= ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( + !libedit? ( >=sys-libs/readline-4.1:= ) + libedit? ( dev-libs/libedit:= ) + ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) +" +# bluetooth requires headers from bluez +DEPEND=" + ${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( + dev-python/ensurepip-pip + dev-python/ensurepip-setuptools + dev-python/ensurepip-wheel + ) + valgrind? ( dev-debug/valgrind ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + dev-build/autoconf-archive + app-alternatives/awk + virtual/pkgconfig + jit? ( + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + ') + ) + verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 ) +" +RDEPEND+=" + !build? ( app-misc/mime-types ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +declare -rgA PYTHON_KERNEL_CHECKS=( + ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 + ["DNOTIFY"]="test_fcntl" # bug 938662 +) + +pkg_pretend() { + if use pgo || use test; then + check-reqs_pkg_pretend + fi + + if use jit; then + ewarn "USE=jit is considered experimental upstream. Using it" + ewarn "could lead to unexpected breakage, including race conditions" + ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" + ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead," + ewarn "please consider reporting JIT problems upstream." + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]]; then + use jit && llvm-r1_pkg_setup + if use test || use pgo; then + check-reqs_pkg_setup + + local CONFIG_CHECK + for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do + CONFIG_CHECK+="~${f} " + done + linux-info_pkg_setup + fi + fi +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + # TODO: Makefile has annoying deps on expat headers + #rm -r Modules/expat || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die + + # breaks tests when using --with-wheel-pkg-dir + rm -r Lib/test/wheeldata || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST=${BUILD_LDFLAGS} + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS=${LDFLAGS_NODIST} + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + + # Avoid as many dependencies as possible for the cross build. + mkdir Modules || die + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + _dbm _gdbm + _sqlite3 + _hashlib _ssl + _curses _curses_panel + readline + _tkinter + pyexpat + zlib + # We disabled these for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. This should be rechecked for the pure Makefile approach, + # and uncommented if needed. + #_ctypes + EOF + + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # this is actually test_gdb.test_pretty_print + -x test_pretty_print + # https://bugs.gentoo.org/933840 + -x test_perf_profiler + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + arm*) + COMMON_TEST_SKIPS+=( + -x test_gdb + ) + ;; + hppa*) + COMMON_TEST_SKIPS+=( + -x test_gdb + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + powerpc64-*) # big endian + COMMON_TEST_SKIPS+=( + -x test_gdb + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + -x test_gdb + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # Kernel-config specific skips + for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do + if ! linux_config_exists || ! linux_chkconfig_present "${option}" + then + COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) + fi + done + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + --verbose3 + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + ) + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + # PGO sometimes fails randomly + local -x PROFILE_TASK="${profile_task_flags[*]} || true" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-libmpdec + --with-platlibdir=lib + --with-pkg-config=yes + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + --enable-gil + + $(use_with debug assertions) + $(use_enable jit experimental-jit) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with valgrind) + ) + + if tc-is-lto; then + myeconfargs+=( + --with-lto + ) + fi + + # Force-disable modules we don't want built. + # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + $(usev !gdbm '_gdbm _dbm') + $(usev !sqlite '_sqlite3') + $(usev !ssl '_hashlib _ssl') + $(usev !ncurses '_curses _curses_panel') + $(usev !readline 'readline') + $(usev !tk '_tkinter') + EOF + + # disable implicit optimization/debugging flags + local -x OPT= + + if tc-is-cross-compiler ; then + build_cbuild_python + myeconfargs+=( + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python + ) + fi + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + if use ncurses; then + append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + fi + + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi + + # install epython.py as part of stdlib + echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + export PYTHONSTRICTEXTENSIONBUILD=1 + + # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't + # end up writing bytecode & violating sandbox. + # bug #831897 + local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} + + # Gentoo hack to disable accessing system site-packages + export GENTOO_CPYTHON_BUILD=1 + + if use pgo ; then + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + fi + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Restore saved value from above. + local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # this just happens to skip test_support.test_freeze that is broken + # without bundled expat + # TODO: get a proper skip for it upstream + local -x LOGNAME=buildbot + + local test_opts=( + --verbose3 + -u-network + -j "$(makeopts_jobs)" + "${COMMON_TEST_SKIPS[@]}" + ) + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + + nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local ret=${?} + + [[ ${ret} -eq 0 ]] || die "emake test failed" +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + # -j1 hack for now for bug #843458 + emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + rm -r "${libdir}"/ensurepip/_bundled || die + if ! use sqlite; then + rm -r "${libdir}/"sqlite3 || die + fi + if ! use tk; then + rm -r "${ED}/usr/bin/idle${PYVER}" || die + rm -r "${libdir}/"{idlelib,tkinter} || die + fi + + ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$( + printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | + emake --no-print-directory -s -f - 2>/dev/null + ) + newins Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local EPYTHON=python${PYVER} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die + # pydoc + ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die + fi +} From a685d4a8bd1369d97ea520c848d22a2e38f8b49b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:47:21 +0200 Subject: [PATCH 32/53] dev-lang/python: Bump to 3.13.4-r100 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-lang/python/python-3.13.4-r100.ebuild | 636 ++++++++++++++++++++++ 1 file changed, 636 insertions(+) create mode 100644 dev-lang/python/python-3.13.4-r100.ebuild diff --git a/dev-lang/python/python-3.13.4-r100.ebuild b/dev-lang/python/python-3.13.4-r100.ebuild new file mode 100644 index 0000000000000..41372672b7f7c --- /dev/null +++ b/dev-lang/python/python-3.13.4-r100.ebuild @@ -0,0 +1,636 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +LLVM_COMPAT=( 18 ) +LLVM_OPTIONAL=1 +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic linux-info llvm-r1 +inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs +inherit verify-sig + +MY_PV=${PV} +MY_P="Python-${MY_PV%_p*}" +PYVER="$(ver_cut 1-2)t" +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="Freethreading (no-GIL) version of Python programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE=" + bluetooth build debug +ensurepip examples gdbm jit + libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind +" +REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + app-crypt/libb2 + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + dev-libs/mpdecimal:= + dev-python/gentoo-common + >=sys-libs/zlib-1.1.3:= + virtual/libintl + ensurepip? ( dev-python/ensurepip-pip ) + gdbm? ( sys-libs/gdbm:=[berkdb] ) + kernel_linux? ( sys-apps/util-linux:= ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( + !libedit? ( >=sys-libs/readline-4.1:= ) + libedit? ( dev-libs/libedit:= ) + ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) +" +# bluetooth requires headers from bluez +DEPEND=" + ${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( + dev-python/ensurepip-pip + dev-python/ensurepip-setuptools + dev-python/ensurepip-wheel + ) + valgrind? ( dev-debug/valgrind ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + dev-build/autoconf-archive + app-alternatives/awk + virtual/pkgconfig + jit? ( + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + ') + ) + verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 ) +" +RDEPEND+=" + !build? ( app-misc/mime-types ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER%t} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +declare -rgA PYTHON_KERNEL_CHECKS=( + ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 + ["DNOTIFY"]="test_fcntl" # bug 938662 +) + +pkg_pretend() { + if use pgo || use test; then + check-reqs_pkg_pretend + fi + + ewarn "Freethreading build is considered experimental upstream. Using it" + ewarn "could lead to unexpected breakage, including race conditions" + ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" + ewarn "you can reproduce the problem with dev-lang/python. Instead," + ewarn "please consider reporting freethreading problems upstream." +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]]; then + use jit && llvm-r1_pkg_setup + if use test || use pgo; then + check-reqs_pkg_setup + + local CONFIG_CHECK + for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do + CONFIG_CHECK+="~${f} " + done + linux-info_pkg_setup + fi + fi +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + # TODO: Makefile has annoying deps on expat headers + #rm -r Modules/expat || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die + + # breaks tests when using --with-wheel-pkg-dir + rm -r Lib/test/wheeldata || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST=${BUILD_LDFLAGS} + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS=${LDFLAGS_NODIST} + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + + # Avoid as many dependencies as possible for the cross build. + mkdir Modules || die + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + _dbm _gdbm + _sqlite3 + _hashlib _ssl + _curses _curses_panel + readline + _tkinter + pyexpat + zlib + # We disabled these for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. This should be rechecked for the pure Makefile approach, + # and uncommented if needed. + #_ctypes + EOF + + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # this is actually test_gdb.test_pretty_print + -x test_pretty_print + # https://bugs.gentoo.org/933840 + -x test_perf_profiler + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + arm*) + COMMON_TEST_SKIPS+=( + -x test_gdb + ) + ;; + hppa*) + COMMON_TEST_SKIPS+=( + -x test_gdb + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + powerpc64-*) # big endian + COMMON_TEST_SKIPS+=( + -x test_gdb + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + -x test_gdb + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # Kernel-config specific skips + for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do + if ! linux_config_exists || ! linux_chkconfig_present "${option}" + then + COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) + fi + done + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + --verbose3 + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + ) + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + # PGO sometimes fails randomly + local -x PROFILE_TASK="${profile_task_flags[*]} || true" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-libmpdec + --with-platlibdir=lib + --with-pkg-config=yes + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + --disable-gil + + $(use_with debug assertions) + $(use_enable jit experimental-jit) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with valgrind) + ) + + if tc-is-lto; then + myeconfargs+=( + --with-lto + ) + fi + + # Force-disable modules we don't want built. + # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + $(usev !gdbm '_gdbm _dbm') + $(usev !sqlite '_sqlite3') + $(usev !ssl '_hashlib _ssl') + $(usev !ncurses '_curses _curses_panel') + $(usev !readline 'readline') + $(usev !tk '_tkinter') + EOF + + # disable implicit optimization/debugging flags + local -x OPT= + + if tc-is-cross-compiler ; then + build_cbuild_python + myeconfargs+=( + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python + ) + fi + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + if use ncurses; then + append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + fi + + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi + + # install epython.py as part of stdlib + echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + export PYTHONSTRICTEXTENSIONBUILD=1 + + # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't + # end up writing bytecode & violating sandbox. + # bug #831897 + local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} + + # Gentoo hack to disable accessing system site-packages + export GENTOO_CPYTHON_BUILD=1 + + if use pgo ; then + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + fi + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Restore saved value from above. + local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # this just happens to skip test_support.test_freeze that is broken + # without bundled expat + # TODO: get a proper skip for it upstream + local -x LOGNAME=buildbot + + local test_opts=( + --verbose3 + -u-network + -j "$(makeopts_jobs)" + "${COMMON_TEST_SKIPS[@]}" + ) + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + + nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local ret=${?} + + [[ ${ret} -eq 0 ]] || die "emake test failed" +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + # -j1 hack for now for bug #843458 + emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + # Fix collision with GIL-enabled build. + rm "${ED}/usr/bin/python${PYVER%t}" || die + mv "${ED}"/usr/bin/pydoc{${PYVER%t},${PYVER}} || die + mv "${ED}"/usr/share/man/man1/python{${PYVER%t},${PYVER}}.1 || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + rm -r "${libdir}"/ensurepip/_bundled || die + if ! use sqlite; then + rm -r "${libdir}/"sqlite3 || die + fi + if use tk; then + # rename to avoid collision with dev-lang/python + mv "${ED}"/usr/bin/idle{${PYVER%t},${PYVER}} || die + else + rm -r "${ED}/usr/bin/idle${PYVER%t}" || die + rm -r "${libdir}/"{idlelib,tkinter} || die + fi + + ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$( + printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | + emake --no-print-directory -s -f - 2>/dev/null + ) + newins Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local EPYTHON=python${PYVER} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die + # pydoc + ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die + fi +} From 0354dd636dded3e40923c5cb0ed7378552388022 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:48:47 +0200 Subject: [PATCH 33/53] dev-lang/python: Bump to 3.12.11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-lang/python/Manifest | 3 + dev-lang/python/python-3.12.11.ebuild | 611 ++++++++++++++++++++++++++ 2 files changed, 614 insertions(+) create mode 100644 dev-lang/python/python-3.12.11.ebuild diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest index 04b5b78efbca2..2b4886d5dddfe 100644 --- a/dev-lang/python/Manifest +++ b/dev-lang/python/Manifest @@ -6,6 +6,8 @@ DIST Python-3.11.12.tar.xz 20112232 BLAKE2B 95f82af070e86ecf48881103ce6d7211a4a9 DIST Python-3.11.12.tar.xz.asc 833 BLAKE2B b874df8019eb3c548598f8723fa38c89189cc375d6ced7cae180ffdc35a8e7b0ba93638861412e19037aa1fee76749186f10c4929dc7f4fb4ef7a8f4561d325c SHA512 cb1f82d44be6de67182747f8ad1054e85cca22753c0c86ff12b95ec7044c5c6c37f40a876e5707a6c422d58f483257b8ddbb3ea87893679f81b9299c48373f20 DIST Python-3.12.10.tar.xz 20520960 BLAKE2B f05805da36958e3ebb68c69353e8119b20ee4c1a123f4492e9bf614e7faa856180ef2017f2a698bcacf19cac01d89329ed5ee45e00c98b255d4854090a2e6926 SHA512 520c30e3958d0be3c127e5dbb1c52bb3bfc404b5b3c7eb56525e25b9b59af9b21b53bee192f323f470e1df806f6cb2dd3411eb90cbc1c4b7d9b6b0777c29e644 DIST Python-3.12.10.tar.xz.asc 963 BLAKE2B 45e1ec67311d1ac5679cb5a05b92e61f3e5e6e9d3ffa5462c09c2aa066fda7ea915df13f6e5ad33aa924f6ce1f18e2d78a31af15412a10c093fc8a5b536c5133 SHA512 7edfa6fd816cf2a052abdb775d464e2f389105ed3e782cacf90805613aaca54bf71308504a5336ee1204e872e7db28df32413fb10b057056b0d5cb3c7a20a9f1 +DIST Python-3.12.11.tar.xz 20525812 BLAKE2B 08eed9d91fe0be305fe9832f5fae5ed4ffdb524283079b6473ed77cc277671356ce2b8f6ca97f55f8ee4954a35fe399099773d0699d6bfbc0aa87a7e9271ba8b SHA512 81f259c5bb293a5b685ebead1dff56c7c9d28eed12edb508b3e5e1a882991e762fc959803cf2734f4233bb1c5407b4f5303324c67b25d860b069d38bbebe4454 +DIST Python-3.12.11.tar.xz.asc 963 BLAKE2B 4c7eea750312ba996f88c452e51b58c0176d53f43e5bd30fd41a931540320b598b6d1e93d79996ce30dfa22858c4c3ed2cb24d16ba0a891a146fbf81ec60b07b SHA512 3589deba17c5adcfcd614387a5207ad20db56cd9c7937eb44e21035a8745f1c6bb9a1b7cfe8bc5b58ecc7cca09ed49fd4c2878f65baecb2514e79c666f85a22e DIST Python-3.13.3.tar.xz 22654240 BLAKE2B 24ac47c13cbfa4dc9ce6ae4d18d7b5310f83ac1f4f18722138ef07e01cb8ac37edf6f4301983cb468f533b9b475b5a9d761d3044e61c7ccaa99dceadb954fe34 SHA512 f7559b6dceae69f48742af0a6497fbec42cd1e5304f64b6eb9d89222a1171ccf12fa186cc0decabb4e98d05223184967a4a7537754c01083dacdc9073cb1a578 DIST Python-3.13.3.tar.xz.asc 963 BLAKE2B 4a98965305b80e985512f54d9ce8ab88a74fe0d3ee48e300fbc2b4e251c0f499f4eb935e0aeb6d5ad8262338643325126f094fff926da1e2b9a2b3a2247701dc SHA512 54f8da5f4a4dcadc9830cb07aecf695a26a2de48ab98e1f42b09fdde1c70989476d07ce7ea81337216f1e5fcbf6b688e0608c88a2545ced416b01640108e94db DIST Python-3.13.4.tar.xz 22672472 BLAKE2B d453538db82084f490456416829c7d30672e5c05c1c1baf428493f16fa78ce63b69544787373e4679826f32a18af5c5de5225f8f507699113346917df0e3de31 SHA512 91454bb4d04c192721d2df980a806858bd8aadb5cef92159c2844cc33e92b0386b1b33d5cfff0f69d449e9f978a5f67f6032155f7b1425ff38e36477637c0c68 @@ -27,6 +29,7 @@ DIST python-gentoo-patches-3.11.12_p2.tar.xz 37360 BLAKE2B 0f8a3b260e4f1d1c824fd DIST python-gentoo-patches-3.12.10.tar.xz 10744 BLAKE2B 2abf4874018156d6735cf8604c410dc4726ac9365bc7500abe6b82472aad100aac7268957256692f4275b02965773e58178519ed8038e121f1ffa3c53770d238 SHA512 62066405aa00f46f9645e9c747d53bb93bf510fc791d14d49e00edfd79981778e6c8e07bfa7bac88d76407a0ffd8f7321dea89f81d90b01dbf13f4d381b6a1a3 DIST python-gentoo-patches-3.12.10_p1.tar.xz 17356 BLAKE2B 9a87b3a6f04977067cb0ce126e45c9d584145bc9cf1d43e46e7ae5e295a14d69b07b6e20c18bff74d02f0e6c3617e8c1ff015097be32cb7dc76ae45ab71d1a41 SHA512 d98f27176d3ea2532c2f8c0a2eadf23f1f0b305e08bbbfd12acfae7308070d70a8d3c3eb60fe157f4ff51cb6302bea5882d75f6a8028310c95309aed3bdaddb5 DIST python-gentoo-patches-3.12.10_p2.tar.xz 33236 BLAKE2B e73edf8caf53799f4407ebd08211e86e6c8850441c3c845264b7d250b9fd1630865ff9dfa184ab6f0a4ac2f56326f88af24a006c68d62e2f57c027f93ec6cd31 SHA512 36e2bf3d288a06e60f412e4335563d8633ee2a5c4c798d6a90133d7dcbd3cbc4d9a9c8f1167e10f52740f34cb2ea510981166c6b7a333587118c4da85a1ef354 +DIST python-gentoo-patches-3.12.11.tar.xz 12020 BLAKE2B b419d32b1d7bef9408027edda7eac9a920a877e1b8f521483df595199bad1bbadd9dd9500079c09beab63286a801bfb25da5f93a5d31462ed3e457a6e40ad6af SHA512 1b0eaff4c0df06554525a50576da7eadb4067c4f2970851e5c9e3e527a9ccc4216cbd65c45fd562af4a1cedc2c66278a74bee5cf5c1a65df8feb22f34f5a19e4 DIST python-gentoo-patches-3.13.3.tar.xz 8336 BLAKE2B 66393886fbd034eb14732e4f81f5798e77650ea3fe1c4f8176bd93808b711c8977a53c3f52be6c9b97a368299258b851d9bdb6d4c8e0c75695c6aea784d48b44 SHA512 c1ed31d6aaef81addf786c2ccc1013309b122b791c42fe10e467a677d0db8f149e8b1cc21928c146298918c7ceb851b4b19d1e59f491cb161004e1c9386db289 DIST python-gentoo-patches-3.13.3_p1.tar.xz 15164 BLAKE2B 56420b8d051fbf3eb47f2bce08c79f167b9fbaa89f8ee932e3db27ea08a191f042e1f0114c1377c8210060332141b36eb1d582507185c983297a1d61573aa435 SHA512 1e138be3ef5c03e4d0b520aa736cdec44daf2956a931f4080e53b0652ebefa48095cad837e7bae4cc90bd42fbb7aba6f25c61e3c880ca1a581a745744b011fa3 DIST python-gentoo-patches-3.13.3_p2.tar.xz 36284 BLAKE2B c1f62268013a055ac477e3e7b49c313d8a41e1fdbd806bb9ddb3a57926297ba7d67e20dadc47ab21ec35f1b0bc504ffd4f039846d8588d143f4e379d8bdc5a12 SHA512 d80856c60c519f28660d6ac5c3df0446759df4c962ab5c989dca1147e92e53e07ed19c75f75a7fdce8e85e919bc77c6ad06a25a611c09764b3eafd61f7d8b63d diff --git a/dev-lang/python/python-3.12.11.ebuild b/dev-lang/python/python-3.12.11.ebuild new file mode 100644 index 0000000000000..3f4440a32dbd0 --- /dev/null +++ b/dev-lang/python/python-3.12.11.ebuild @@ -0,0 +1,611 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic multiprocessing pax-utils +inherit python-utils-r1 toolchain-funcs verify-sig + +MY_PV=${PV/_rc/rc} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE=" + bluetooth build debug +ensurepip examples gdbm libedit + +ncurses pgo +readline +sqlite +ssl test tk valgrind +" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + app-crypt/libb2 + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + dev-libs/mpdecimal:= + dev-python/gentoo-common + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + ensurepip? ( dev-python/ensurepip-pip ) + gdbm? ( sys-libs/gdbm:=[berkdb] ) + kernel_linux? ( sys-apps/util-linux:= ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( + !libedit? ( >=sys-libs/readline-4.1:= ) + libedit? ( dev-libs/libedit:= ) + ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) +" +# bluetooth requires headers from bluez +DEPEND=" + ${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( + app-arch/xz-utils + dev-python/ensurepip-pip + dev-python/ensurepip-setuptools + dev-python/ensurepip-wheel + ) + valgrind? ( dev-debug/valgrind ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + dev-build/autoconf-archive + app-alternatives/awk + virtual/pkgconfig + verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 ) +" +RDEPEND+=" + !build? ( app-misc/mime-types ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +pkg_pretend() { + use test && check-reqs_pkg_pretend +} + +pkg_setup() { + use test && check-reqs_pkg_setup +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + # TODO: Makefile has annoying deps on expat headers + #rm -r Modules/expat || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die + + # breaks tests when using --with-wheel-pkg-dir + rm -r Lib/test/wheeldata || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST=${BUILD_LDFLAGS} + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS=${LDFLAGS_NODIST} + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + + # Avoid as many dependencies as possible for the cross build. + mkdir Modules || die + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + _dbm _gdbm + _sqlite3 + _hashlib _ssl + _curses _curses_panel + readline + _tkinter + pyexpat + zlib + # We disabled these for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. This should be rechecked for the pure Makefile approach, + # and uncommented if needed. + #_ctypes _crypt + EOF + + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # this is actually test_gdb.test_pretty_print + -x test_pretty_print + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + arm*) + COMMON_TEST_SKIPS+=( + -x test_gdb + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + powerpc64-*) # big endian + COMMON_TEST_SKIPS+=( + -x test_gdb + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + -x test_gdb + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_concurrent_futures + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + profile_task_flags+=( + -x test_os + ) + ;; + hppa*) + profile_task_flags+=( + -x test_descr + # bug 931908 + -x test_exceptions + -x test_os + ) + ;; + powerpc64-*) # big endian + profile_task_flags+=( + # bug 931908 + -x test_exceptions + ) + ;; + riscv*) + profile_task_flags+=( + -x test_statistics + ) + ;; + esac + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + local -x PROFILE_TASK="${profile_task_flags[*]}" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-libmpdec + --with-platlibdir=lib + --with-pkg-config=yes + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + + $(use_with debug assertions) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with valgrind) + ) + + if tc-is-lto; then + myeconfargs+=( + --with-lto + ) + fi + + # Force-disable modules we don't want built. + # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + $(usev !gdbm '_gdbm _dbm') + $(usev !sqlite '_sqlite3') + $(usev !ssl '_hashlib _ssl') + $(usev !ncurses '_curses _curses_panel') + $(usev !readline 'readline') + $(usev !tk '_tkinter') + EOF + + # disable implicit optimization/debugging flags + local -x OPT= + + if tc-is-cross-compiler ; then + build_cbuild_python + myeconfargs+=( + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python + ) + fi + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + if use ncurses; then + append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + fi + + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi + + # install epython.py as part of stdlib + echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + export PYTHONSTRICTEXTENSIONBUILD=1 + + # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't + # end up writing bytecode & violating sandbox. + # bug #831897 + local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} + + # Gentoo hack to disable accessing system site-packages + export GENTOO_CPYTHON_BUILD=1 + + if use pgo ; then + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + fi + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Restore saved value from above. + local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # this just happens to skip test_support.test_freeze that is broken + # without bundled expat + # TODO: get a proper skip for it upstream + local -x LOGNAME=buildbot + + local test_opts=( + --verbose3 + -u-network + -j "$(makeopts_jobs)" + "${COMMON_TEST_SKIPS[@]}" + ) + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + + nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local ret=${?} + + [[ ${ret} -eq 0 ]] || die "emake test failed" +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + # the Makefile rules are broken + # https://github.com/python/cpython/issues/100221 + mkdir -p "${libdir}"/lib-dynload || die + + # -j1 hack for now for bug #843458 + emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + rm -r "${libdir}"/ensurepip/_bundled || die + if ! use sqlite; then + rm -r "${libdir}/"sqlite3 || die + fi + if ! use tk; then + rm -r "${ED}/usr/bin/idle${PYVER}" || die + rm -r "${libdir}/"{idlelib,tkinter} || die + fi + + ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$( + printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | + emake --no-print-directory -s -f - 2>/dev/null + ) + newins Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local EPYTHON=python${PYVER} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die + # 2to3, pydoc + ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die + ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die + fi +} From 16fa4f803e44a74abffe0fd01f3f068f872c334f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:49:06 +0200 Subject: [PATCH 34/53] dev-lang/python: Bump to 3.11.13 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-lang/python/Manifest | 3 + dev-lang/python/python-3.11.13.ebuild | 617 ++++++++++++++++++++++++++ 2 files changed, 620 insertions(+) create mode 100644 dev-lang/python/python-3.11.13.ebuild diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest index 2b4886d5dddfe..78c028fa14071 100644 --- a/dev-lang/python/Manifest +++ b/dev-lang/python/Manifest @@ -4,6 +4,8 @@ DIST Python-3.10.17.tar.xz 19608144 BLAKE2B 9caebdcdc21c07037f423bc4831b0e4654de DIST Python-3.10.17.tar.xz.asc 833 BLAKE2B 9468dc33530d8a4ec911e7a2bacd2d1c3533e6819a91c1307e8d577cefe6c6bdb9e9dc7f2abc078cd35186db7f58efd89eb4170fb20887bb2de5a5aa68b3c1f4 SHA512 f5fea78e2ea413c9befb6181787b3a5ea3bc0f5dbf808a94465b558c09353482cd34631a4c505f72aa343a2f4fae291453324cd8e6b18df214baaf4680fc17cf DIST Python-3.11.12.tar.xz 20112232 BLAKE2B 95f82af070e86ecf48881103ce6d7211a4a915a93a49b1407eaf445364b7a7daec406cf07eb9334ed47a59397a9796f6a5c70dcc9b7b47103beb3bffc6aa56d7 SHA512 5c95900de73cd187f5d7a89a05314ef85f4d680308d0d5fff5e6ada81f8ecf030018bef0f1a819d007e8b6d01b52e50395572c2d1a56d2c164492e13a69a9926 DIST Python-3.11.12.tar.xz.asc 833 BLAKE2B b874df8019eb3c548598f8723fa38c89189cc375d6ced7cae180ffdc35a8e7b0ba93638861412e19037aa1fee76749186f10c4929dc7f4fb4ef7a8f4561d325c SHA512 cb1f82d44be6de67182747f8ad1054e85cca22753c0c86ff12b95ec7044c5c6c37f40a876e5707a6c422d58f483257b8ddbb3ea87893679f81b9299c48373f20 +DIST Python-3.11.13.tar.xz 20117496 BLAKE2B 444de8eef3a938a387374b152350414b7e2659920784ebc57d5491cacc78cde406b557237fc7f06627e2855f60219b86fe41cb8b82e61fd3b1b448fc7b98af5c SHA512 70f57464d548eac4fe0d0c7f85a14b0e549a4e25ef66de4fc36b06ce72a3efe87dadfcd56ee275c10483cf802fbc9d73b61f9fb2941a46e2f92f075aeb1afe85 +DIST Python-3.11.13.tar.xz.asc 833 BLAKE2B c6860aa8687e53b8d9df5d8442490adaff202bfb23817801562577c8d7b81383376342d8e15c5451e25e270746a6d28167f39cfdd75be589e0d58187026a4830 SHA512 6e261490bc7777f0bcebd0464867df98b7955b32f13a445aab3cb6a1a1d3fb804817638f67a8586910fb97291a805b64f130909c06257903f431f8634c691c3b DIST Python-3.12.10.tar.xz 20520960 BLAKE2B f05805da36958e3ebb68c69353e8119b20ee4c1a123f4492e9bf614e7faa856180ef2017f2a698bcacf19cac01d89329ed5ee45e00c98b255d4854090a2e6926 SHA512 520c30e3958d0be3c127e5dbb1c52bb3bfc404b5b3c7eb56525e25b9b59af9b21b53bee192f323f470e1df806f6cb2dd3411eb90cbc1c4b7d9b6b0777c29e644 DIST Python-3.12.10.tar.xz.asc 963 BLAKE2B 45e1ec67311d1ac5679cb5a05b92e61f3e5e6e9d3ffa5462c09c2aa066fda7ea915df13f6e5ad33aa924f6ce1f18e2d78a31af15412a10c093fc8a5b536c5133 SHA512 7edfa6fd816cf2a052abdb775d464e2f389105ed3e782cacf90805613aaca54bf71308504a5336ee1204e872e7db28df32413fb10b057056b0d5cb3c7a20a9f1 DIST Python-3.12.11.tar.xz 20525812 BLAKE2B 08eed9d91fe0be305fe9832f5fae5ed4ffdb524283079b6473ed77cc277671356ce2b8f6ca97f55f8ee4954a35fe399099773d0699d6bfbc0aa87a7e9271ba8b SHA512 81f259c5bb293a5b685ebead1dff56c7c9d28eed12edb508b3e5e1a882991e762fc959803cf2734f4233bb1c5407b4f5303324c67b25d860b069d38bbebe4454 @@ -26,6 +28,7 @@ DIST python-gentoo-patches-3.11.11.tar.xz 10604 BLAKE2B 6be4c66b0458f7a7085aef97 DIST python-gentoo-patches-3.11.12.tar.xz 15616 BLAKE2B 5d4a47058fc35c4ae966e3dff823f91129852bf81cd586d5b3a34a6daf672732918daf00199394f2f982411ec30a291f45bba55b3ffa3d96a179ecd600ea4647 SHA512 77973ef88403f94d55162e0138cd29b4d8959a8fcf4cec730daf7ddd8fb4a3acfcd0dd1fdaacbdd2b218bd15f6c6715ce339df4eba48227d17520243d96eeb39 DIST python-gentoo-patches-3.11.12_p1.tar.xz 22192 BLAKE2B 2d7f39d1d55428e5dc617a796a3147046c0549bd8fc26a1d3b2701ca2ab17a4cc990b8fed925a7b8d7c410b12f4c22e14f9e64d7ea4b2c387c919570abad259f SHA512 363b049824b520b92541569d315e4e67192f3bd915f44f600acc51858ae3960b0060222cab2612f9aef53c7b2a0e323d197e107c9bcbdc4625572303d6393a5c DIST python-gentoo-patches-3.11.12_p2.tar.xz 37360 BLAKE2B 0f8a3b260e4f1d1c824fd962f8ed0fd7e50cb3384795b3bc03f83511dce73235aa4c43a51a5e2198aedc06467b35962b9e55a97eb58d569844d6298b3bee1c15 SHA512 48fbabd1f82c5a6ecc75067e007c62cbefa5efd3276c7aadb802892c3ebe5bdaaad01ad8bff92cec6bfc6f5212c842105540f3bf7c679cb31dee36013a99ee8f +DIST python-gentoo-patches-3.11.13.tar.xz 16492 BLAKE2B 8b188742dd3f25974cead290e5793c31f02741a901dce65137c596045fa2fbd5baaef332204af90f95ddcd864ee542b252c00b190e15c25af60a7bda771b116f SHA512 b5abad341d2eede81df445b56a98720466ec23df40a8a2e99a04dba5a106205655c8e2b64df0ca2630f036c8fe457ba64524280d137bbc99f52e4fd8e6bbd5ae DIST python-gentoo-patches-3.12.10.tar.xz 10744 BLAKE2B 2abf4874018156d6735cf8604c410dc4726ac9365bc7500abe6b82472aad100aac7268957256692f4275b02965773e58178519ed8038e121f1ffa3c53770d238 SHA512 62066405aa00f46f9645e9c747d53bb93bf510fc791d14d49e00edfd79981778e6c8e07bfa7bac88d76407a0ffd8f7321dea89f81d90b01dbf13f4d381b6a1a3 DIST python-gentoo-patches-3.12.10_p1.tar.xz 17356 BLAKE2B 9a87b3a6f04977067cb0ce126e45c9d584145bc9cf1d43e46e7ae5e295a14d69b07b6e20c18bff74d02f0e6c3617e8c1ff015097be32cb7dc76ae45ab71d1a41 SHA512 d98f27176d3ea2532c2f8c0a2eadf23f1f0b305e08bbbfd12acfae7308070d70a8d3c3eb60fe157f4ff51cb6302bea5882d75f6a8028310c95309aed3bdaddb5 DIST python-gentoo-patches-3.12.10_p2.tar.xz 33236 BLAKE2B e73edf8caf53799f4407ebd08211e86e6c8850441c3c845264b7d250b9fd1630865ff9dfa184ab6f0a4ac2f56326f88af24a006c68d62e2f57c027f93ec6cd31 SHA512 36e2bf3d288a06e60f412e4335563d8633ee2a5c4c798d6a90133d7dcbd3cbc4d9a9c8f1167e10f52740f34cb2ea510981166c6b7a333587118c4da85a1ef354 diff --git a/dev-lang/python/python-3.11.13.ebuild b/dev-lang/python/python-3.11.13.ebuild new file mode 100644 index 0000000000000..90e7983ca9e81 --- /dev/null +++ b/dev-lang/python/python-3.11.13.ebuild @@ -0,0 +1,617 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic multiprocessing pax-utils +inherit prefix python-utils-r1 toolchain-funcs verify-sig + +MY_PV=${PV/_rc/rc} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE=" + bluetooth build debug +ensurepip examples gdbm libedit + +ncurses pgo +readline +sqlite +ssl test tk valgrind +" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + app-crypt/libb2 + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + dev-libs/mpdecimal:= + dev-python/gentoo-common + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + ensurepip? ( dev-python/ensurepip-wheels ) + gdbm? ( sys-libs/gdbm:=[berkdb] ) + kernel_linux? ( sys-apps/util-linux:= ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( + !libedit? ( >=sys-libs/readline-4.1:= ) + libedit? ( dev-libs/libedit:= ) + ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) +" +# bluetooth requires headers from bluez +DEPEND=" + ${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( app-arch/xz-utils ) + valgrind? ( dev-debug/valgrind ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + dev-build/autoconf-archive + app-alternatives/awk + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-python ) +" +RDEPEND+=" + !build? ( app-misc/mime-types ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +pkg_pretend() { + use test && check-reqs_pkg_pretend +} + +pkg_setup() { + use test && check-reqs_pkg_setup +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + rm -r Modules/expat || die + rm -r Modules/_ctypes/libffi* || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # https://bugs.gentoo.org/850151 + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs) + sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST=${BUILD_LDFLAGS} + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS=${LDFLAGS_NODIST} + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. + PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \ + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Avoid as many dependencies as possible for the cross build. + cat >> Makefile <<-EOF || die + MODULE_NIS_STATE=disabled + MODULE__DBM_STATE=disabled + MODULE__GDBM_STATE=disabled + MODULE__DBM_STATE=disabled + MODULE__SQLITE3_STATE=disabled + MODULE__HASHLIB_STATE=disabled + MODULE__SSL_STATE=disabled + MODULE__CURSES_STATE=disabled + MODULE__CURSES_PANEL_STATE=disabled + MODULE_READLINE_STATE=disabled + MODULE__TKINTER_STATE=disabled + MODULE_PYEXPAT_STATE=disabled + MODULE_ZLIB_STATE=disabled + EOF + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + PYTHON_DISABLE_MODULES+=" _ctypes _crypt" emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # this is actually test_gdb.test_pretty_print + -x test_pretty_print + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + arm*) + COMMON_TEST_SKIPS+=( + -x test_gdb + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + powerpc64-*) # big endian + COMMON_TEST_SKIPS+=( + -x test_descr + -x test_gdb + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + -x test_descr + -x test_gdb + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_concurrent_futures + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + profile_task_flags+=( + -x test_os + ) + ;; + hppa*) + profile_task_flags+=( + -x test_descr + # bug 931908 + -x test_exceptions + -x test_os + ) + ;; + powerpc64-*) # big endian + profile_task_flags+=( + # bug 931908 + -x test_exceptions + ) + ;; + riscv*) + profile_task_flags+=( + -x test_statistics + ) + ;; + esac + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + local -x PROFILE_TASK="${profile_task_flags[*]}" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-ffi + --with-system-libmpdec + --with-platlibdir=lib + --with-pkg-config=yes + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + + $(use_with debug assertions) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with valgrind) + ) + + # disable implicit optimization/debugging flags + local -x OPT= + + # https://bugs.gentoo.org/700012 + if tc-is-lto; then + append-cflags $(test-flags-CC -ffat-lto-objects) + myeconfargs+=( + --with-lto + ) + fi + + if tc-is-cross-compiler ; then + build_cbuild_python + myeconfargs+=( + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python + ) + fi + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + if use ncurses; then + append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + fi + + hprefixify setup.py + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi + + # force-disable modules we don't want built + local disable_modules=( NIS ) + use gdbm || disable_modules+=( _GDBM _DBM ) + use sqlite || disable_modules+=( _SQLITE3 ) + use ssl || disable_modules+=( _HASHLIB _SSL ) + use ncurses || disable_modules+=( _CURSES _CURSES_PANEL ) + use readline || disable_modules+=( READLINE ) + use tk || disable_modules+=( _TKINTER ) + + local mod + for mod in "${disable_modules[@]}"; do + echo "MODULE_${mod}_STATE=disabled" + done >> Makefile || die + + # install epython.py as part of stdlib + echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + # Prevent using distutils bundled by setuptools. + # https://bugs.gentoo.org/823728 + export SETUPTOOLS_USE_DISTUTILS=stdlib + export PYTHONSTRICTEXTENSIONBUILD=1 + + # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't + # end up writing bytecode & violating sandbox. + # bug #831897 + local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} + + # Gentoo hack to disable accessing system site-packages + export GENTOO_CPYTHON_BUILD=1 + + if use pgo ; then + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + fi + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Restore saved value from above. + local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # this just happens to skip test_support.test_freeze that is broken + # without bundled expat + # TODO: get a proper skip for it upstream + local -x LOGNAME=buildbot + + local test_opts=( + --verbose3 + -u-network + -j "$(makeopts_jobs)" + "${COMMON_TEST_SKIPS[@]}" + ) + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + + nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local ret=${?} + + [[ ${ret} -eq 0 ]] || die "emake test failed" +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + # -j1 hack for now for bug #843458 + emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + rm -r "${libdir}"/ensurepip/_bundled || die + if ! use ensurepip; then + rm -r "${libdir}"/ensurepip || die + fi + if ! use sqlite; then + rm -r "${libdir}/"sqlite3 || die + fi + if ! use tk; then + rm -r "${ED}/usr/bin/idle${PYVER}" || die + rm -r "${libdir}/"{idlelib,tkinter} || die + fi + + ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$( + printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | + emake --no-print-directory -s -f - 2>/dev/null + ) + newins Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local EPYTHON=python${PYVER} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die + # 2to3, pydoc + ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die + ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die + fi +} From 151462794e3db473c1e1704c139b35f612fa6dbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:49:31 +0200 Subject: [PATCH 35/53] dev-lang/python: Bump to 3.10.18 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-lang/python/Manifest | 3 + dev-lang/python/python-3.10.18.ebuild | 564 ++++++++++++++++++++++++++ 2 files changed, 567 insertions(+) create mode 100644 dev-lang/python/python-3.10.18.ebuild diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest index 78c028fa14071..748f414002862 100644 --- a/dev-lang/python/Manifest +++ b/dev-lang/python/Manifest @@ -2,6 +2,8 @@ DIST Python-2.7.18.tar.xz 12854736 BLAKE2B 060a621c91dd8e3d321aec99d44c17aa67381 DIST Python-2.7.18.tar.xz.asc 833 BLAKE2B 1d98770e46171971fb99994508d238c01d2755281d2f94353314014d9e83e0ec5f0b3e3950ea1fdf5fce9ba6b8f55312355845c2a3fc4291c27ee56fe6215448 SHA512 c2a5f5a52f47dec52460ad3275758d4e5de6e7075c3def4353c988d74d563a39b42cae2d5eb24e2a23a6247cef69100f91620b11a49c2359fbf99b203c9cbda8 DIST Python-3.10.17.tar.xz 19608144 BLAKE2B 9caebdcdc21c07037f423bc4831b0e4654dea4264b7a176b2caed625a930f0d6e8e2f6d581dee6f666a1fc17139d1ccd8bcf13c958df14dfd8de31f321d3e048 SHA512 11b1e647f8db05041bcafe110698af8bf5e9f7c8d23c0e9eb568a60544bb9a9e9c3ac94b34f0898f0d4e6c23da3cb81f844ae9d9c8b750058763502eaba39880 DIST Python-3.10.17.tar.xz.asc 833 BLAKE2B 9468dc33530d8a4ec911e7a2bacd2d1c3533e6819a91c1307e8d577cefe6c6bdb9e9dc7f2abc078cd35186db7f58efd89eb4170fb20887bb2de5a5aa68b3c1f4 SHA512 f5fea78e2ea413c9befb6181787b3a5ea3bc0f5dbf808a94465b558c09353482cd34631a4c505f72aa343a2f4fae291453324cd8e6b18df214baaf4680fc17cf +DIST Python-3.10.18.tar.xz 19619316 BLAKE2B 312d2cb6ba3bdc8e1eea4493d73c6adbe80063cd271a8738d9e772b2d9aa2d8628c8b0f96fc6ddb91db6f91ca58e2fb38950a90547fb131a10344b926b661a39 SHA512 2c444f024cd15babd156964b50aa0245020a17c0c600250ffcf112e91594a3d6e1fb87c9b87a57cb7a802dae90004d801ed95a3103d79aefb8ed714279997708 +DIST Python-3.10.18.tar.xz.asc 833 BLAKE2B 834d0e7ea65b653d748e7844157ee215302e4b48aa63a45fa8d548b03e78d2cb36b6ebbb6bb6214f9eec3200d6a32d3a22d31691d1580114a14e67e4dd7c5abc SHA512 dbe1426b1b8371bf390b53595d2c656fbd311fed55ad3c705e175fa0c72d51a022f286877ec55ad74547a3b57ae945c9af7ece4dacc7132e21b9b7eb4421add6 DIST Python-3.11.12.tar.xz 20112232 BLAKE2B 95f82af070e86ecf48881103ce6d7211a4a915a93a49b1407eaf445364b7a7daec406cf07eb9334ed47a59397a9796f6a5c70dcc9b7b47103beb3bffc6aa56d7 SHA512 5c95900de73cd187f5d7a89a05314ef85f4d680308d0d5fff5e6ada81f8ecf030018bef0f1a819d007e8b6d01b52e50395572c2d1a56d2c164492e13a69a9926 DIST Python-3.11.12.tar.xz.asc 833 BLAKE2B b874df8019eb3c548598f8723fa38c89189cc375d6ced7cae180ffdc35a8e7b0ba93638861412e19037aa1fee76749186f10c4929dc7f4fb4ef7a8f4561d325c SHA512 cb1f82d44be6de67182747f8ad1054e85cca22753c0c86ff12b95ec7044c5c6c37f40a876e5707a6c422d58f483257b8ddbb3ea87893679f81b9299c48373f20 DIST Python-3.11.13.tar.xz 20117496 BLAKE2B 444de8eef3a938a387374b152350414b7e2659920784ebc57d5491cacc78cde406b557237fc7f06627e2855f60219b86fe41cb8b82e61fd3b1b448fc7b98af5c SHA512 70f57464d548eac4fe0d0c7f85a14b0e549a4e25ef66de4fc36b06ce72a3efe87dadfcd56ee275c10483cf802fbc9d73b61f9fb2941a46e2f92f075aeb1afe85 @@ -24,6 +26,7 @@ DIST python-gentoo-patches-2.7.18_p16.tar.xz 35448 BLAKE2B 0139c0944f62f9cdd236f DIST python-gentoo-patches-3.10.17.tar.xz 28784 BLAKE2B 7f1c1f9f49876b99d80a3f40b66061ab96796821e1a5396f5edfa08e3878b8b9970688d3c861d9c5d08701a8850584eb87a223e3ba84c5536ae689f59145ad43 SHA512 3e89b334d81702f0e6fa00e9b70daf6ff4df439c280c6cff33aa8874dde29f63d809697757df39daea07bf746207e931f211558811c9e731df9ca846a8559483 DIST python-gentoo-patches-3.10.17_p1.tar.xz 34900 BLAKE2B 8931746997a71f45a08eb3b75d3b65a23ec2d6e3d5e1e617f2183efd7d91c3874ff5dfb3f39cb54c3e238ebfd5fe6b3b9d470ac41ccd71d6d9db485d52d205a0 SHA512 c4c9753cca98c4626744b3c5092b984ee06a4c8505a1ea58567ce155d93fd3985428544f2a53c00db848106a4b67875452c879b67e33b1d63d336ad31ec4e4ea DIST python-gentoo-patches-3.10.17_p2.tar.xz 49552 BLAKE2B 9cc0d8aee08209eb453320fa59c5398e3044f4c1788029c871be5e6ada7482b503920896a15b9462949c8bd1be57fd9fc7b10da4d6db1ee564c22e8d6fcb8fc6 SHA512 f0f4752b4bb4928716d832324de1085bd1520b852d855a30fa0c928ed9243716b556c7e3788f5fed39d4d3b4e898154f1456ce818e8467b5a98b4337ec39c727 +DIST python-gentoo-patches-3.10.18.tar.xz 29664 BLAKE2B dd69f7866cebad2536b41056571d74cbd90800062b06612b7509c9ce8f258aef66586f3c6e08f52caaceb7b0a01a52502b9c763b6f7d94caac0e929d9d77219b SHA512 b4cf4ff2d7e5b73e1102acc2183c4da3e734bdbec1c284d1fef8aceba0d49246dcdc954d3e4119521fde1e895bab0754b34b346b736b46ce45aff1afc6d38cef DIST python-gentoo-patches-3.11.11.tar.xz 10604 BLAKE2B 6be4c66b0458f7a7085aef976cff3dcb4d114ac0b64fb27327a5693e8d41a77f7eeed718b9c5a1b1961278235ee4cd43497aa3dc27e6e6bed65804b95f667a15 SHA512 ab8113a94949cead34d976179f80c3e0a6686bf2476079a74f97b4d08c24a237500dc7ee09dc3b0ec98d2fbcb138397c73d7e2252e617a957a13999e59115158 DIST python-gentoo-patches-3.11.12.tar.xz 15616 BLAKE2B 5d4a47058fc35c4ae966e3dff823f91129852bf81cd586d5b3a34a6daf672732918daf00199394f2f982411ec30a291f45bba55b3ffa3d96a179ecd600ea4647 SHA512 77973ef88403f94d55162e0138cd29b4d8959a8fcf4cec730daf7ddd8fb4a3acfcd0dd1fdaacbdd2b218bd15f6c6715ce339df4eba48227d17520243d96eeb39 DIST python-gentoo-patches-3.11.12_p1.tar.xz 22192 BLAKE2B 2d7f39d1d55428e5dc617a796a3147046c0549bd8fc26a1d3b2701ca2ab17a4cc990b8fed925a7b8d7c410b12f4c22e14f9e64d7ea4b2c387c919570abad259f SHA512 363b049824b520b92541569d315e4e67192f3bd915f44f600acc51858ae3960b0060222cab2612f9aef53c7b2a0e323d197e107c9bcbdc4625572303d6393a5c diff --git a/dev-lang/python/python-3.10.18.ebuild b/dev-lang/python/python-3.10.18.ebuild new file mode 100644 index 0000000000000..f998bd3689779 --- /dev/null +++ b/dev-lang/python/python-3.10.18.ebuild @@ -0,0 +1,564 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic multiprocessing pax-utils +inherit prefix toolchain-funcs verify-sig + +MY_PV=${PV/_rc/rc} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE=" + bluetooth build debug +ensurepip examples gdbm libedit + +ncurses pgo +readline +sqlite +ssl test tk valgrind +" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + dev-libs/mpdecimal:= + dev-python/gentoo-common + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + ensurepip? ( dev-python/ensurepip-wheels ) + gdbm? ( sys-libs/gdbm:=[berkdb] ) + kernel_linux? ( sys-apps/util-linux:= ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( + !libedit? ( >=sys-libs/readline-4.1:= ) + libedit? ( dev-libs/libedit:= ) + ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) +" +# bluetooth requires headers from bluez +DEPEND=" + ${RDEPEND} + bluetooth? ( net-wireless/bluez ) + valgrind? ( dev-debug/valgrind ) + test? ( app-arch/xz-utils ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + dev-build/autoconf-archive + app-alternatives/awk + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-python ) +" +RDEPEND+=" + !build? ( app-misc/mime-types ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +pkg_pretend() { + use test && check-reqs_pkg_pretend +} + +pkg_setup() { + use test && check-reqs_pkg_setup +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + rm -r Modules/expat || die + rm -r Modules/_ctypes/libffi* || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # https://bugs.gentoo.org/850151 + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs) + sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST=${BUILD_LDFLAGS} + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS=${LDFLAGS_NODIST} + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 and bug #864911. + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross. + --without-lto + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. + PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \ + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Avoid as many dependencies as possible for the cross build. + cat >> Makefile <<-EOF || die + MODULE_NIS=disabled + MODULE__DBM=disabled + MODULE__GDBM=disabled + MODULE__DBM=disabled + MODULE__SQLITE3=disabled + MODULE__HASHLIB=disabled + MODULE__SSL=disabled + MODULE__CURSES=disabled + MODULE__CURSES_PANEL=disabled + MODULE_READLINE=disabled + MODULE__TKINTER=disabled + MODULE_PYEXPAT=disabled + MODULE_ZLIB=disabled + EOF + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the Python it was pointed to + # immediately. + PYTHON_DISABLE_MODULES+=" _ctypes _crypt" emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + local disable + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + export PYTHON_DISABLE_MODULES="${disable}" + + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + -x test_gdb + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + powerpc64-*) # big endian + COMMON_TEST_SKIPS+=( + -x test_descr + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + -x test_descr + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_concurrent_futures + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + profile_task_flags+=( + -x test_os + ) + ;; + hppa*) + profile_task_flags+=( + -x test_descr + # bug 931908 + -x test_exceptions + -x test_os + ) + ;; + powerpc64-*) # big endian + profile_task_flags+=( + # bug 931908 + -x test_exceptions + ) + ;; + riscv*) + profile_task_flags+=( + -x test_statistics + ) + ;; + esac + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + local -x PROFILE_TASK="${profile_task_flags[*]}" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-ffi + --with-system-libmpdec + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + + $(use_with debug assertions) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with valgrind) + ) + + # disable implicit optimization/debugging flags + local -x OPT= + + # https://bugs.gentoo.org/700012 + if tc-is-lto; then + append-cflags $(test-flags-CC -ffat-lto-objects) + myeconfargs+=( + --with-lto + ) + fi + + if tc-is-cross-compiler ; then + build_cbuild_python + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}" + fi + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + if use ncurses; then + append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + fi + + hprefixify setup.py + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi + + # install epython.py as part of stdlib + echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + # Prevent using distutils bundled by setuptools. + # https://bugs.gentoo.org/823728 + export SETUPTOOLS_USE_DISTUTILS=stdlib + + # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't + # end up writing bytecode & violating sandbox. + # bug #831897 + local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} + + # Gentoo hack to disable accessing system site-packages + export GENTOO_CPYTHON_BUILD=1 + + if use pgo ; then + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + fi + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Restore saved value from above. + local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + local test_opts=( + --verbose3 + -u-network + -j "$(makeopts_jobs)" + "${COMMON_TEST_SKIPS[@]}" + ) + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + + nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local ret=${?} + + [[ ${ret} -eq 0 ]] || die "emake test failed" +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + emake DESTDIR="${D}" TEST_MODULES=no altinstall + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + rm -r "${libdir}"/ensurepip/_bundled || die + if ! use ensurepip; then + rm -r "${libdir}"/ensurepip || die + fi + if ! use sqlite; then + rm -r "${libdir}/"sqlite3 || die + fi + if ! use tk; then + rm -r "${ED}/usr/bin/idle${PYVER}" || die + rm -r "${libdir}/"{idlelib,tkinter} || die + fi + + ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$( + printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | + emake --no-print-directory -s -f - 2>/dev/null + ) + newins Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" +} From 0a0b0c1779bbe8e2e5c11bf98f2987854e36f561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:49:53 +0200 Subject: [PATCH 36/53] dev-lang/python: Bump to 3.9.23 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-lang/python/Manifest | 3 + dev-lang/python/python-3.9.23.ebuild | 558 +++++++++++++++++++++++++++ 2 files changed, 561 insertions(+) create mode 100644 dev-lang/python/python-3.9.23.ebuild diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest index 748f414002862..a96c4e5a4ac0b 100644 --- a/dev-lang/python/Manifest +++ b/dev-lang/python/Manifest @@ -22,6 +22,8 @@ DIST Python-3.8.20.tar.xz 18962788 BLAKE2B 715c75e0c0a3d3b77af7f07478311bb0554b8 DIST Python-3.8.20.tar.xz.asc 833 BLAKE2B 5c86c15a1090b42e42bb7512565b1a7ad9d2137d59e9fd1ab0f83fdfc37dfcf184389418d6703db809e9c8c04a169af292665a2b58bf5dc61b7724ecbb4132d9 SHA512 a751ae0407a593d97acac4d5f8a0456580c753efa12a7d960125c219b4897fdb26fc1ffd43d8ea33ad1449162dd3b2904c16b6c51c57561ba73de3ffa62e0eed DIST Python-3.9.22.tar.xz 19652572 BLAKE2B 59f2d2cecde8179064115b52205c2195b26cd0f37aec3e88b0fe2a1a7893a7df8ae38a024814d42064d5e4916e4054a76dddeec0a0dcf29af576d52dbcf65f4c SHA512 c5a76c579455626bf40bb41ee99cab6e444aa5d5085dab7cf622c70ded750e31710c2c30f032917f0d4069350c01a889ed9831d77fcc2d52fcec54055dd07496 DIST Python-3.9.22.tar.xz.asc 833 BLAKE2B 2bc75d7e39ebee63b8cfd9ee1af2941bc0bd659becf89d291ea33f5baea2b606a34841c7ac5c597eac51b19602cf24ccec123964a1022d43fd251553fb3f90f7 SHA512 9a04fcf7d7fc0521873d29efad3a80a9ff63df4fc4fe4108059246db6517b22d967f4d4e0eebb32c79417f66ee3b60fe00428be155fc1cbea163aa36c1a3ddee +DIST Python-3.9.23.tar.xz 19659284 BLAKE2B 17c7c9acec1e2f2e9d146b2c35738ea05cf16609f267dd784668ab43bcce7be93e164c14106f9640a060326ebb2b8bd4ee4e58086bdced4ca611d7f96dbb3699 SHA512 ad2eb2eebff286a16ad631339bc0890b0686cf5e669d28905a98f96e9b1af6673d255f36bf19e146aa4de8d012587dc6b3193e903718f9cdba4b97041318f418 +DIST Python-3.9.23.tar.xz.asc 833 BLAKE2B a17a88b1997ece75e6447398d20c67e4b1be6d64204e6ac20aa4650e465b0657e7ae8bd497602d2e3c7193b50ecf7d15a1eb996942a05aab117eb25446dab159 SHA512 10187b0df66743308548780f82872d032530f8233f539cf66a2cfbdef1095b760f81f2fcc1759f003cc6f20752be91bdef71e4d821e76a75c0c85df112335698 DIST python-gentoo-patches-2.7.18_p16.tar.xz 35448 BLAKE2B 0139c0944f62f9cdd236f6a8557e0ed19704c7d72869af1cb7d8bd3e646a746cd4a0201e1b44232a5e78ef49f254db20b0d0271bf744fbfd4fe0f1e99b8f3e6c SHA512 810be590d0e06fab4b2165e6852ca49662f09dcd7e20b47a29f613ad7653252c8dfac3f0eb228d77c8a914efa7c08788b2fbd552a4b47504f5fd0ec17450c48f DIST python-gentoo-patches-3.10.17.tar.xz 28784 BLAKE2B 7f1c1f9f49876b99d80a3f40b66061ab96796821e1a5396f5edfa08e3878b8b9970688d3c861d9c5d08701a8850584eb87a223e3ba84c5536ae689f59145ad43 SHA512 3e89b334d81702f0e6fa00e9b70daf6ff4df439c280c6cff33aa8874dde29f63d809697757df39daea07bf746207e931f211558811c9e731df9ca846a8559483 DIST python-gentoo-patches-3.10.17_p1.tar.xz 34900 BLAKE2B 8931746997a71f45a08eb3b75d3b65a23ec2d6e3d5e1e617f2183efd7d91c3874ff5dfb3f39cb54c3e238ebfd5fe6b3b9d470ac41ccd71d6d9db485d52d205a0 SHA512 c4c9753cca98c4626744b3c5092b984ee06a4c8505a1ea58567ce155d93fd3985428544f2a53c00db848106a4b67875452c879b67e33b1d63d336ad31ec4e4ea @@ -47,3 +49,4 @@ DIST python-gentoo-patches-3.8.20_p7.tar.xz 54544 BLAKE2B e31fc9fb5e98b62b0f7016 DIST python-gentoo-patches-3.9.22.tar.xz 35388 BLAKE2B b6acfa681bdb589f74094ea04bd053bfc122ef9f36b3413c33c352cfae4e101027b0348770b47b9fee769eaba8109406acb6418c1cb8c431fbc7cf1c69124dcb SHA512 335c32d696f9660c957dec0c9a54e2f04e34003d2dbb438e6c9e74ce0a6352b5849e8626397939e3ffa7dc3172ac88cfa2168dd0d120be306e8c898dc7b6b3dc DIST python-gentoo-patches-3.9.22_p1.tar.xz 41444 BLAKE2B 5c86c93203c50f5786017bb878e930fd2910184ec7de8ef22cf5f80853f952c143dd0d64f25d752e921d6f86db665aa6646d838e4c490d16186e095c67b58cba SHA512 471382690ff86dab6a247c2c0dad138d541d9091b0f30b3d58386a170022b5812aecc13c9751fdec3de715d810ee56d310be8c0005631845be7515247ca2443d DIST python-gentoo-patches-3.9.22_p2.tar.xz 59416 BLAKE2B 7904d5272c3dfab6eb9ec188802367faf843303b8af18d75aa03f6ad814ca8aefbf495696a5fb4279fa6f3620a00d0c84989bc007b80546041fedcef8555283a SHA512 acd78c422c360bea4c4be84e718072eb8182b1662d1bf94aa72785319a9f35d1f11a05343d4770d50673cd5c2876a5a99c127559badde7cf335070dfa7d81cf6 +DIST python-gentoo-patches-3.9.23.tar.xz 37148 BLAKE2B a7c0514037169b9938b2180ec2dd22063621d532367f6febfa47da43f47534559baab992d9c5257271121af755b8445346d4d92582e7e11b6468a1c359f28bf2 SHA512 73ef00a7aa671016de396c9e1c4bb5f5c1a97dc735739f806d809f987e802ec440370bf4c85468097547284a5d2b476cbffcec3cf219b7cb6fc890d5029eb5bd diff --git a/dev-lang/python/python-3.9.23.ebuild b/dev-lang/python/python-3.9.23.ebuild new file mode 100644 index 0000000000000..d621dcdcefafc --- /dev/null +++ b/dev-lang/python/python-3.9.23.ebuild @@ -0,0 +1,558 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic multiprocessing pax-utils +inherit prefix toolchain-funcs verify-sig + +MY_PV=${PV/_rc/rc} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE=" + bluetooth build debug +ensurepip examples gdbm +ncurses pgo + +readline +sqlite +ssl test tk valgrind +" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + dev-libs/mpdecimal:= + dev-python/gentoo-common + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + ensurepip? ( dev-python/ensurepip-wheels ) + gdbm? ( sys-libs/gdbm:=[berkdb] ) + kernel_linux? ( sys-apps/util-linux:= ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( >=sys-libs/readline-4.1:= ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) +" +# bluetooth requires headers from bluez +DEPEND=" + ${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( app-arch/xz-utils ) + valgrind? ( dev-debug/valgrind ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + dev-build/autoconf-archive + app-alternatives/awk + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-python ) +" +RDEPEND+=" + !build? ( app-misc/mime-types ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +pkg_pretend() { + use test && check-reqs_pkg_pretend +} + +pkg_setup() { + use test && check-reqs_pkg_setup +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + rm -r Modules/expat || die + rm -r Modules/_ctypes/libffi* || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # https://bugs.gentoo.org/850151 + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs) + sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + eautoreconf +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + local disable + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + export PYTHON_DISABLE_MODULES="${disable}" + + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + -x test_gdb + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + powerpc64-*) # big endian + COMMON_TEST_SKIPS+=( + -x test_descr + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + -x test_descr + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_concurrent_futures + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + profile_task_flags+=( + -x test_os + ) + ;; + hppa*) + profile_task_flags+=( + -x test_descr + # bug 931908 + -x test_exceptions + -x test_os + ) + ;; + powerpc64-*) # big endian + profile_task_flags+=( + # bug 931908 + -x test_exceptions + ) + ;; + riscv*) + profile_task_flags+=( + -x test_statistics + ) + ;; + esac + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + local -x PROFILE_TASK="${profile_task_flags[*]}" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-ffi + --with-system-libmpdec + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + + $(use_with debug assertions) + $(use_enable pgo optimizations) + $(use_with valgrind) + ) + + # disable implicit optimization/debugging flags + local -x OPT= + + # https://bugs.gentoo.org/700012 + if tc-is-lto; then + append-cflags $(test-flags-CC -ffat-lto-objects) + myeconfargs+=( + --with-lto + ) + fi + + if tc-is-cross-compiler ; then + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST=${BUILD_LDFLAGS} + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS=${LDFLAGS_NODIST} + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 and bug #864911. + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross. + --without-lto + --disable-optimizations + ) + + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}" + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. + PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \ + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Avoid as many dependencies as possible for the cross build. + cat >> Makefile <<-EOF || die + MODULE_NIS=disabled + MODULE__DBM=disabled + MODULE__GDBM=disabled + MODULE__DBM=disabled + MODULE__SQLITE3=disabled + MODULE__HASHLIB=disabled + MODULE__SSL=disabled + MODULE__CURSES=disabled + MODULE__CURSES_PANEL=disabled + MODULE_READLINE=disabled + MODULE__TKINTER=disabled + MODULE_PYEXPAT=disabled + MODULE_ZLIB=disabled + EOF + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the Python it was pointed to + # immediately. + PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake + popd &> /dev/null || die + fi + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + if use ncurses; then + append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + fi + + hprefixify setup.py + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi + + # install epython.py as part of stdlib + echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + # Prevent using distutils bundled by setuptools. + # https://bugs.gentoo.org/823728 + export SETUPTOOLS_USE_DISTUTILS=stdlib + + # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't + # end up writing bytecode & violating sandbox. + # bug #831897 + local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} + + # Gentoo hack to disable accessing system site-packages + export GENTOO_CPYTHON_BUILD=1 + + if use pgo ; then + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + fi + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Restore saved value from above. + local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + local test_opts=( + --verbose3 + -u-network + -j "$(makeopts_jobs)" + "${COMMON_TEST_SKIPS[@]}" + ) + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + + nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local ret=${?} + + [[ ${ret} -eq 0 ]] || die "emake test failed" +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + emake DESTDIR="${D}" altinstall + + # Remove static library + rm "${ED}"/usr/$(get_libdir)/libpython*.a || die + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + rm -r "${libdir}"/ensurepip/_bundled || die + if ! use ensurepip; then + rm -r "${libdir}"/ensurepip || die + fi + if ! use sqlite; then + rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die + fi + if ! use tk; then + rm -r "${ED}/usr/bin/idle${PYVER}" || die + rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die + fi + + ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$( + printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | + emake --no-print-directory -s -f - 2>/dev/null + ) + newins Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" +} From 11beae7b3b8d2bfb6ff522127e3b49f36e76cf8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:50:57 +0200 Subject: [PATCH 37/53] dev-python/python-tests: Bump to 3.13.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/python-tests/Manifest | 3 + .../python-tests/python-tests-3.13.4.ebuild | 71 +++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 dev-python/python-tests/python-tests-3.13.4.ebuild diff --git a/dev-python/python-tests/Manifest b/dev-python/python-tests/Manifest index 8bd9981ca6b03..c70d251940d93 100644 --- a/dev-python/python-tests/Manifest +++ b/dev-python/python-tests/Manifest @@ -4,6 +4,8 @@ DIST Python-3.12.10.tar.xz 20520960 BLAKE2B f05805da36958e3ebb68c69353e8119b20ee DIST Python-3.12.10.tar.xz.asc 963 BLAKE2B 45e1ec67311d1ac5679cb5a05b92e61f3e5e6e9d3ffa5462c09c2aa066fda7ea915df13f6e5ad33aa924f6ce1f18e2d78a31af15412a10c093fc8a5b536c5133 SHA512 7edfa6fd816cf2a052abdb775d464e2f389105ed3e782cacf90805613aaca54bf71308504a5336ee1204e872e7db28df32413fb10b057056b0d5cb3c7a20a9f1 DIST Python-3.13.3.tar.xz 22654240 BLAKE2B 24ac47c13cbfa4dc9ce6ae4d18d7b5310f83ac1f4f18722138ef07e01cb8ac37edf6f4301983cb468f533b9b475b5a9d761d3044e61c7ccaa99dceadb954fe34 SHA512 f7559b6dceae69f48742af0a6497fbec42cd1e5304f64b6eb9d89222a1171ccf12fa186cc0decabb4e98d05223184967a4a7537754c01083dacdc9073cb1a578 DIST Python-3.13.3.tar.xz.asc 963 BLAKE2B 4a98965305b80e985512f54d9ce8ab88a74fe0d3ee48e300fbc2b4e251c0f499f4eb935e0aeb6d5ad8262338643325126f094fff926da1e2b9a2b3a2247701dc SHA512 54f8da5f4a4dcadc9830cb07aecf695a26a2de48ab98e1f42b09fdde1c70989476d07ce7ea81337216f1e5fcbf6b688e0608c88a2545ced416b01640108e94db +DIST Python-3.13.4.tar.xz 22672472 BLAKE2B d453538db82084f490456416829c7d30672e5c05c1c1baf428493f16fa78ce63b69544787373e4679826f32a18af5c5de5225f8f507699113346917df0e3de31 SHA512 91454bb4d04c192721d2df980a806858bd8aadb5cef92159c2844cc33e92b0386b1b33d5cfff0f69d449e9f978a5f67f6032155f7b1425ff38e36477637c0c68 +DIST Python-3.13.4.tar.xz.asc 963 BLAKE2B 5c594f95a7b74c2191b553f50020cd6db9b400f32af62d12094fa4c449651079a662645de8118a7a661c4ceafceb9ce5bcecbbbf8d6bc80d6657a0247e88e510 SHA512 ba9c1dee0f3bf564e6ac19cbe08cf4fdc3779a04ed8289654f6dda3fba9f07a0937764a12f1e7e2f6d7ff17bb5b86c05b8ea19296a2b98d1c81a48362ccf6104 DIST Python-3.14.0b2.tar.xz 23579860 BLAKE2B bf5ebac54531a7c837e7650754264b4be28e28613d488d1c7546db77e2ef3b501ff646d7fb505c6ac0fa1381c3230d1c1899bc82144f369339c89687b5dc7f5c SHA512 cdd37f8a982e6194d5afa80a2eb94c899080809749d59a50a2ce3eed37f720a1fd9a7977f0dd3992650d173a7070b15610077d97cb499bd16a7500c56ef1f8dd DIST Python-3.14.0b2.tar.xz.sigstore 5131 BLAKE2B 04cab57a4da63f5abf28db94e5fd952206124ce37ef5a5d981839a0790881c9c4ea6d186f233eaaf6e82350bdfdbb0048d761b816d81eaba71c707bd9714a9d9 SHA512 a356037824fbde5950f197cf04f0d71ddaf4b68006b2ab9951f9b4c2df508e84bd0bec7d72051e75d22c17eee767e46e5d2c167e853fb941b0831cb26d518fdc DIST python-gentoo-patches-3.11.11.tar.xz 10604 BLAKE2B 6be4c66b0458f7a7085aef976cff3dcb4d114ac0b64fb27327a5693e8d41a77f7eeed718b9c5a1b1961278235ee4cd43497aa3dc27e6e6bed65804b95f667a15 SHA512 ab8113a94949cead34d976179f80c3e0a6686bf2476079a74f97b4d08c24a237500dc7ee09dc3b0ec98d2fbcb138397c73d7e2252e617a957a13999e59115158 @@ -16,6 +18,7 @@ DIST python-gentoo-patches-3.12.10_p2.tar.xz 33236 BLAKE2B e73edf8caf53799f4407e DIST python-gentoo-patches-3.13.3.tar.xz 8336 BLAKE2B 66393886fbd034eb14732e4f81f5798e77650ea3fe1c4f8176bd93808b711c8977a53c3f52be6c9b97a368299258b851d9bdb6d4c8e0c75695c6aea784d48b44 SHA512 c1ed31d6aaef81addf786c2ccc1013309b122b791c42fe10e467a677d0db8f149e8b1cc21928c146298918c7ceb851b4b19d1e59f491cb161004e1c9386db289 DIST python-gentoo-patches-3.13.3_p1.tar.xz 15164 BLAKE2B 56420b8d051fbf3eb47f2bce08c79f167b9fbaa89f8ee932e3db27ea08a191f042e1f0114c1377c8210060332141b36eb1d582507185c983297a1d61573aa435 SHA512 1e138be3ef5c03e4d0b520aa736cdec44daf2956a931f4080e53b0652ebefa48095cad837e7bae4cc90bd42fbb7aba6f25c61e3c880ca1a581a745744b011fa3 DIST python-gentoo-patches-3.13.3_p2.tar.xz 36284 BLAKE2B c1f62268013a055ac477e3e7b49c313d8a41e1fdbd806bb9ddb3a57926297ba7d67e20dadc47ab21ec35f1b0bc504ffd4f039846d8588d143f4e379d8bdc5a12 SHA512 d80856c60c519f28660d6ac5c3df0446759df4c962ab5c989dca1147e92e53e07ed19c75f75a7fdce8e85e919bc77c6ad06a25a611c09764b3eafd61f7d8b63d +DIST python-gentoo-patches-3.13.4.tar.xz 8912 BLAKE2B e3d9f2a12f801dc75e09c5301757f35216d712b5e5394f2ec3ce1d79d0cb57571dbca525e3d5c35b90fa059c2b78ee24341b6a51cbe9691deac84c9ee0578824 SHA512 1a7141accb7aa70c7bd8dd12528f7de031dfeab9ff089f3d044da0b7b52461e2d6d7d1467161e0fe1e259d9fa06d70bcf107d86ad3590e8cf73aa1132ef3aaf9 DIST python-gentoo-patches-3.14.0b1.tar.xz 5680 BLAKE2B 514b3edc3025e5bf675d371b5ada17dea426856edf1fb6095c2ee400eae95bd4265ef81fe593ae9338e801e7d0a25b1d5ba2d05ca563fd9dd020114b13575746 SHA512 74289e42cf532b54bb1b66a283ec19156f8a36ba38764209c133842314c9efb2ce2ebcba5aa9213bcf7fc0c8a5ca9b6e7adbd5dbfa4397233136d7cd55f53ee7 DIST python-gentoo-patches-3.14.0b2.tar.xz 6168 BLAKE2B ecf2fd981efc289fbc16d615c6e69ad7a797bd6906e6f974ece47eace582d7c4b3ea0217b0df9575e522416df2749125ff3658d8aca6a53bf977d5f155dd6b90 SHA512 552ff5306ca43c89e65b1df42cb71753c7e900efc4be7e35150c187184a5e94241fea78bb9084831508fd4a7e71323be59c1565901560ec53fc076c3697baf34 DIST python-gentoo-patches-3.14.0b2_p1.tar.xz 23992 BLAKE2B 65346fe06b2f03251882542b90821c28bd16d9f1c81d1e594bf78403689b444688a9cffa1d52faf63dd9c4db301a9b2a1e6729026e73525fe2f0622f896b6a46 SHA512 c98600da507541c0ba3a03dcaa6d344596fd8f5ef8169eff276318ed33a38ba4794ea346b25b9d11f9a277334bdcc1105e6332bb212602c3c993866340aa8482 diff --git a/dev-python/python-tests/python-tests-3.13.4.ebuild b/dev-python/python-tests/python-tests-3.13.4.ebuild new file mode 100644 index 0000000000000..eebb0ba084ee9 --- /dev/null +++ b/dev-python/python-tests/python-tests-3.13.4.ebuild @@ -0,0 +1,71 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_13 ) + +inherit python-r1 verify-sig + +MY_PV=${PV} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="Test modules from dev-lang/python" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}/Lib" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +# enable by default to help CI handle it (we have no additional deps) +IUSE="+python_targets_${PYTHON_COMPAT[0]}" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${PYTHON_DEPS} + ~dev-lang/python-${PV}:${PYVER} + ! Date: Wed, 4 Jun 2025 03:51:13 +0200 Subject: [PATCH 38/53] dev-python/python-tests: Bump to 3.13.4-r100 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- .../python-tests-3.13.4-r100.ebuild | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 dev-python/python-tests/python-tests-3.13.4-r100.ebuild diff --git a/dev-python/python-tests/python-tests-3.13.4-r100.ebuild b/dev-python/python-tests/python-tests-3.13.4-r100.ebuild new file mode 100644 index 0000000000000..07d251d70f213 --- /dev/null +++ b/dev-python/python-tests/python-tests-3.13.4-r100.ebuild @@ -0,0 +1,70 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_13t ) + +inherit python-r1 verify-sig + +MY_PV=${PV} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2)t +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="Test modules from dev-lang/python" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}/Lib" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +# enable by default to help CI handle it (we have no additional deps) +IUSE="+python_targets_${PYTHON_COMPAT[0]}" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${PYTHON_DEPS} + ~dev-lang/python-${PV}:${PYVER} +" +BDEPEND=" + ${PYTHON_DEPS} + verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + cd .. || die + default +} + +src_install() { + python_setup + # keep in sync with TESTSUBDIRS in Makefile.pre.in + python_moduleinto "/usr/lib/python${PYVER}" + python_domodule test + python_moduleinto "/usr/lib/python${PYVER}/idlelib" + python_domodule idlelib/idle_test +} From 895e7367997a1ddef0528b16613127d661900afa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Wed, 4 Jun 2025 03:51:27 +0200 Subject: [PATCH 39/53] dev-python/python-tests: Bump to 3.12.11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/python-tests/Manifest | 3 + .../python-tests/python-tests-3.12.11.ebuild | 71 +++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 dev-python/python-tests/python-tests-3.12.11.ebuild diff --git a/dev-python/python-tests/Manifest b/dev-python/python-tests/Manifest index c70d251940d93..c9a7451be6b1a 100644 --- a/dev-python/python-tests/Manifest +++ b/dev-python/python-tests/Manifest @@ -2,6 +2,8 @@ DIST Python-3.11.12.tar.xz 20112232 BLAKE2B 95f82af070e86ecf48881103ce6d7211a4a9 DIST Python-3.11.12.tar.xz.asc 833 BLAKE2B b874df8019eb3c548598f8723fa38c89189cc375d6ced7cae180ffdc35a8e7b0ba93638861412e19037aa1fee76749186f10c4929dc7f4fb4ef7a8f4561d325c SHA512 cb1f82d44be6de67182747f8ad1054e85cca22753c0c86ff12b95ec7044c5c6c37f40a876e5707a6c422d58f483257b8ddbb3ea87893679f81b9299c48373f20 DIST Python-3.12.10.tar.xz 20520960 BLAKE2B f05805da36958e3ebb68c69353e8119b20ee4c1a123f4492e9bf614e7faa856180ef2017f2a698bcacf19cac01d89329ed5ee45e00c98b255d4854090a2e6926 SHA512 520c30e3958d0be3c127e5dbb1c52bb3bfc404b5b3c7eb56525e25b9b59af9b21b53bee192f323f470e1df806f6cb2dd3411eb90cbc1c4b7d9b6b0777c29e644 DIST Python-3.12.10.tar.xz.asc 963 BLAKE2B 45e1ec67311d1ac5679cb5a05b92e61f3e5e6e9d3ffa5462c09c2aa066fda7ea915df13f6e5ad33aa924f6ce1f18e2d78a31af15412a10c093fc8a5b536c5133 SHA512 7edfa6fd816cf2a052abdb775d464e2f389105ed3e782cacf90805613aaca54bf71308504a5336ee1204e872e7db28df32413fb10b057056b0d5cb3c7a20a9f1 +DIST Python-3.12.11.tar.xz 20525812 BLAKE2B 08eed9d91fe0be305fe9832f5fae5ed4ffdb524283079b6473ed77cc277671356ce2b8f6ca97f55f8ee4954a35fe399099773d0699d6bfbc0aa87a7e9271ba8b SHA512 81f259c5bb293a5b685ebead1dff56c7c9d28eed12edb508b3e5e1a882991e762fc959803cf2734f4233bb1c5407b4f5303324c67b25d860b069d38bbebe4454 +DIST Python-3.12.11.tar.xz.asc 963 BLAKE2B 4c7eea750312ba996f88c452e51b58c0176d53f43e5bd30fd41a931540320b598b6d1e93d79996ce30dfa22858c4c3ed2cb24d16ba0a891a146fbf81ec60b07b SHA512 3589deba17c5adcfcd614387a5207ad20db56cd9c7937eb44e21035a8745f1c6bb9a1b7cfe8bc5b58ecc7cca09ed49fd4c2878f65baecb2514e79c666f85a22e DIST Python-3.13.3.tar.xz 22654240 BLAKE2B 24ac47c13cbfa4dc9ce6ae4d18d7b5310f83ac1f4f18722138ef07e01cb8ac37edf6f4301983cb468f533b9b475b5a9d761d3044e61c7ccaa99dceadb954fe34 SHA512 f7559b6dceae69f48742af0a6497fbec42cd1e5304f64b6eb9d89222a1171ccf12fa186cc0decabb4e98d05223184967a4a7537754c01083dacdc9073cb1a578 DIST Python-3.13.3.tar.xz.asc 963 BLAKE2B 4a98965305b80e985512f54d9ce8ab88a74fe0d3ee48e300fbc2b4e251c0f499f4eb935e0aeb6d5ad8262338643325126f094fff926da1e2b9a2b3a2247701dc SHA512 54f8da5f4a4dcadc9830cb07aecf695a26a2de48ab98e1f42b09fdde1c70989476d07ce7ea81337216f1e5fcbf6b688e0608c88a2545ced416b01640108e94db DIST Python-3.13.4.tar.xz 22672472 BLAKE2B d453538db82084f490456416829c7d30672e5c05c1c1baf428493f16fa78ce63b69544787373e4679826f32a18af5c5de5225f8f507699113346917df0e3de31 SHA512 91454bb4d04c192721d2df980a806858bd8aadb5cef92159c2844cc33e92b0386b1b33d5cfff0f69d449e9f978a5f67f6032155f7b1425ff38e36477637c0c68 @@ -15,6 +17,7 @@ DIST python-gentoo-patches-3.11.12_p2.tar.xz 37360 BLAKE2B 0f8a3b260e4f1d1c824fd DIST python-gentoo-patches-3.12.10.tar.xz 10744 BLAKE2B 2abf4874018156d6735cf8604c410dc4726ac9365bc7500abe6b82472aad100aac7268957256692f4275b02965773e58178519ed8038e121f1ffa3c53770d238 SHA512 62066405aa00f46f9645e9c747d53bb93bf510fc791d14d49e00edfd79981778e6c8e07bfa7bac88d76407a0ffd8f7321dea89f81d90b01dbf13f4d381b6a1a3 DIST python-gentoo-patches-3.12.10_p1.tar.xz 17356 BLAKE2B 9a87b3a6f04977067cb0ce126e45c9d584145bc9cf1d43e46e7ae5e295a14d69b07b6e20c18bff74d02f0e6c3617e8c1ff015097be32cb7dc76ae45ab71d1a41 SHA512 d98f27176d3ea2532c2f8c0a2eadf23f1f0b305e08bbbfd12acfae7308070d70a8d3c3eb60fe157f4ff51cb6302bea5882d75f6a8028310c95309aed3bdaddb5 DIST python-gentoo-patches-3.12.10_p2.tar.xz 33236 BLAKE2B e73edf8caf53799f4407ebd08211e86e6c8850441c3c845264b7d250b9fd1630865ff9dfa184ab6f0a4ac2f56326f88af24a006c68d62e2f57c027f93ec6cd31 SHA512 36e2bf3d288a06e60f412e4335563d8633ee2a5c4c798d6a90133d7dcbd3cbc4d9a9c8f1167e10f52740f34cb2ea510981166c6b7a333587118c4da85a1ef354 +DIST python-gentoo-patches-3.12.11.tar.xz 12020 BLAKE2B b419d32b1d7bef9408027edda7eac9a920a877e1b8f521483df595199bad1bbadd9dd9500079c09beab63286a801bfb25da5f93a5d31462ed3e457a6e40ad6af SHA512 1b0eaff4c0df06554525a50576da7eadb4067c4f2970851e5c9e3e527a9ccc4216cbd65c45fd562af4a1cedc2c66278a74bee5cf5c1a65df8feb22f34f5a19e4 DIST python-gentoo-patches-3.13.3.tar.xz 8336 BLAKE2B 66393886fbd034eb14732e4f81f5798e77650ea3fe1c4f8176bd93808b711c8977a53c3f52be6c9b97a368299258b851d9bdb6d4c8e0c75695c6aea784d48b44 SHA512 c1ed31d6aaef81addf786c2ccc1013309b122b791c42fe10e467a677d0db8f149e8b1cc21928c146298918c7ceb851b4b19d1e59f491cb161004e1c9386db289 DIST python-gentoo-patches-3.13.3_p1.tar.xz 15164 BLAKE2B 56420b8d051fbf3eb47f2bce08c79f167b9fbaa89f8ee932e3db27ea08a191f042e1f0114c1377c8210060332141b36eb1d582507185c983297a1d61573aa435 SHA512 1e138be3ef5c03e4d0b520aa736cdec44daf2956a931f4080e53b0652ebefa48095cad837e7bae4cc90bd42fbb7aba6f25c61e3c880ca1a581a745744b011fa3 DIST python-gentoo-patches-3.13.3_p2.tar.xz 36284 BLAKE2B c1f62268013a055ac477e3e7b49c313d8a41e1fdbd806bb9ddb3a57926297ba7d67e20dadc47ab21ec35f1b0bc504ffd4f039846d8588d143f4e379d8bdc5a12 SHA512 d80856c60c519f28660d6ac5c3df0446759df4c962ab5c989dca1147e92e53e07ed19c75f75a7fdce8e85e919bc77c6ad06a25a611c09764b3eafd61f7d8b63d diff --git a/dev-python/python-tests/python-tests-3.12.11.ebuild b/dev-python/python-tests/python-tests-3.12.11.ebuild new file mode 100644 index 0000000000000..57fe29d9b9900 --- /dev/null +++ b/dev-python/python-tests/python-tests-3.12.11.ebuild @@ -0,0 +1,71 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_12 ) + +inherit python-r1 verify-sig + +MY_PV=${PV} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="Test modules from dev-lang/python" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}/Lib" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +# enable by default to help CI handle it (we have no additional deps) +IUSE="+python_targets_${PYTHON_COMPAT[0]}" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${PYTHON_DEPS} + ~dev-lang/python-${PV}:${PYVER} + ! Date: Wed, 4 Jun 2025 03:51:41 +0200 Subject: [PATCH 40/53] dev-python/python-tests: Bump to 3.11.13 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- dev-python/python-tests/Manifest | 3 + .../python-tests/python-tests-3.11.13.ebuild | 76 +++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 dev-python/python-tests/python-tests-3.11.13.ebuild diff --git a/dev-python/python-tests/Manifest b/dev-python/python-tests/Manifest index c9a7451be6b1a..29c33d6aae756 100644 --- a/dev-python/python-tests/Manifest +++ b/dev-python/python-tests/Manifest @@ -1,5 +1,7 @@ DIST Python-3.11.12.tar.xz 20112232 BLAKE2B 95f82af070e86ecf48881103ce6d7211a4a915a93a49b1407eaf445364b7a7daec406cf07eb9334ed47a59397a9796f6a5c70dcc9b7b47103beb3bffc6aa56d7 SHA512 5c95900de73cd187f5d7a89a05314ef85f4d680308d0d5fff5e6ada81f8ecf030018bef0f1a819d007e8b6d01b52e50395572c2d1a56d2c164492e13a69a9926 DIST Python-3.11.12.tar.xz.asc 833 BLAKE2B b874df8019eb3c548598f8723fa38c89189cc375d6ced7cae180ffdc35a8e7b0ba93638861412e19037aa1fee76749186f10c4929dc7f4fb4ef7a8f4561d325c SHA512 cb1f82d44be6de67182747f8ad1054e85cca22753c0c86ff12b95ec7044c5c6c37f40a876e5707a6c422d58f483257b8ddbb3ea87893679f81b9299c48373f20 +DIST Python-3.11.13.tar.xz 20117496 BLAKE2B 444de8eef3a938a387374b152350414b7e2659920784ebc57d5491cacc78cde406b557237fc7f06627e2855f60219b86fe41cb8b82e61fd3b1b448fc7b98af5c SHA512 70f57464d548eac4fe0d0c7f85a14b0e549a4e25ef66de4fc36b06ce72a3efe87dadfcd56ee275c10483cf802fbc9d73b61f9fb2941a46e2f92f075aeb1afe85 +DIST Python-3.11.13.tar.xz.asc 833 BLAKE2B c6860aa8687e53b8d9df5d8442490adaff202bfb23817801562577c8d7b81383376342d8e15c5451e25e270746a6d28167f39cfdd75be589e0d58187026a4830 SHA512 6e261490bc7777f0bcebd0464867df98b7955b32f13a445aab3cb6a1a1d3fb804817638f67a8586910fb97291a805b64f130909c06257903f431f8634c691c3b DIST Python-3.12.10.tar.xz 20520960 BLAKE2B f05805da36958e3ebb68c69353e8119b20ee4c1a123f4492e9bf614e7faa856180ef2017f2a698bcacf19cac01d89329ed5ee45e00c98b255d4854090a2e6926 SHA512 520c30e3958d0be3c127e5dbb1c52bb3bfc404b5b3c7eb56525e25b9b59af9b21b53bee192f323f470e1df806f6cb2dd3411eb90cbc1c4b7d9b6b0777c29e644 DIST Python-3.12.10.tar.xz.asc 963 BLAKE2B 45e1ec67311d1ac5679cb5a05b92e61f3e5e6e9d3ffa5462c09c2aa066fda7ea915df13f6e5ad33aa924f6ce1f18e2d78a31af15412a10c093fc8a5b536c5133 SHA512 7edfa6fd816cf2a052abdb775d464e2f389105ed3e782cacf90805613aaca54bf71308504a5336ee1204e872e7db28df32413fb10b057056b0d5cb3c7a20a9f1 DIST Python-3.12.11.tar.xz 20525812 BLAKE2B 08eed9d91fe0be305fe9832f5fae5ed4ffdb524283079b6473ed77cc277671356ce2b8f6ca97f55f8ee4954a35fe399099773d0699d6bfbc0aa87a7e9271ba8b SHA512 81f259c5bb293a5b685ebead1dff56c7c9d28eed12edb508b3e5e1a882991e762fc959803cf2734f4233bb1c5407b4f5303324c67b25d860b069d38bbebe4454 @@ -14,6 +16,7 @@ DIST python-gentoo-patches-3.11.11.tar.xz 10604 BLAKE2B 6be4c66b0458f7a7085aef97 DIST python-gentoo-patches-3.11.12.tar.xz 15616 BLAKE2B 5d4a47058fc35c4ae966e3dff823f91129852bf81cd586d5b3a34a6daf672732918daf00199394f2f982411ec30a291f45bba55b3ffa3d96a179ecd600ea4647 SHA512 77973ef88403f94d55162e0138cd29b4d8959a8fcf4cec730daf7ddd8fb4a3acfcd0dd1fdaacbdd2b218bd15f6c6715ce339df4eba48227d17520243d96eeb39 DIST python-gentoo-patches-3.11.12_p1.tar.xz 22192 BLAKE2B 2d7f39d1d55428e5dc617a796a3147046c0549bd8fc26a1d3b2701ca2ab17a4cc990b8fed925a7b8d7c410b12f4c22e14f9e64d7ea4b2c387c919570abad259f SHA512 363b049824b520b92541569d315e4e67192f3bd915f44f600acc51858ae3960b0060222cab2612f9aef53c7b2a0e323d197e107c9bcbdc4625572303d6393a5c DIST python-gentoo-patches-3.11.12_p2.tar.xz 37360 BLAKE2B 0f8a3b260e4f1d1c824fd962f8ed0fd7e50cb3384795b3bc03f83511dce73235aa4c43a51a5e2198aedc06467b35962b9e55a97eb58d569844d6298b3bee1c15 SHA512 48fbabd1f82c5a6ecc75067e007c62cbefa5efd3276c7aadb802892c3ebe5bdaaad01ad8bff92cec6bfc6f5212c842105540f3bf7c679cb31dee36013a99ee8f +DIST python-gentoo-patches-3.11.13.tar.xz 16492 BLAKE2B 8b188742dd3f25974cead290e5793c31f02741a901dce65137c596045fa2fbd5baaef332204af90f95ddcd864ee542b252c00b190e15c25af60a7bda771b116f SHA512 b5abad341d2eede81df445b56a98720466ec23df40a8a2e99a04dba5a106205655c8e2b64df0ca2630f036c8fe457ba64524280d137bbc99f52e4fd8e6bbd5ae DIST python-gentoo-patches-3.12.10.tar.xz 10744 BLAKE2B 2abf4874018156d6735cf8604c410dc4726ac9365bc7500abe6b82472aad100aac7268957256692f4275b02965773e58178519ed8038e121f1ffa3c53770d238 SHA512 62066405aa00f46f9645e9c747d53bb93bf510fc791d14d49e00edfd79981778e6c8e07bfa7bac88d76407a0ffd8f7321dea89f81d90b01dbf13f4d381b6a1a3 DIST python-gentoo-patches-3.12.10_p1.tar.xz 17356 BLAKE2B 9a87b3a6f04977067cb0ce126e45c9d584145bc9cf1d43e46e7ae5e295a14d69b07b6e20c18bff74d02f0e6c3617e8c1ff015097be32cb7dc76ae45ab71d1a41 SHA512 d98f27176d3ea2532c2f8c0a2eadf23f1f0b305e08bbbfd12acfae7308070d70a8d3c3eb60fe157f4ff51cb6302bea5882d75f6a8028310c95309aed3bdaddb5 DIST python-gentoo-patches-3.12.10_p2.tar.xz 33236 BLAKE2B e73edf8caf53799f4407ebd08211e86e6c8850441c3c845264b7d250b9fd1630865ff9dfa184ab6f0a4ac2f56326f88af24a006c68d62e2f57c027f93ec6cd31 SHA512 36e2bf3d288a06e60f412e4335563d8633ee2a5c4c798d6a90133d7dcbd3cbc4d9a9c8f1167e10f52740f34cb2ea510981166c6b7a333587118c4da85a1ef354 diff --git a/dev-python/python-tests/python-tests-3.11.13.ebuild b/dev-python/python-tests/python-tests-3.11.13.ebuild new file mode 100644 index 0000000000000..2de17f07042b1 --- /dev/null +++ b/dev-python/python-tests/python-tests-3.11.13.ebuild @@ -0,0 +1,76 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_11 ) + +inherit python-r1 verify-sig + +MY_PV=${PV} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="Test modules from dev-lang/python" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}/Lib" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +# enable by default to help CI handle it (we have no additional deps) +IUSE="+python_targets_${PYTHON_COMPAT[0]}" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${PYTHON_DEPS} + ~dev-lang/python-${PV}:${PYVER} + ! Date: Mon, 26 May 2025 10:15:04 +0000 Subject: [PATCH 41/53] sys-process/htop: use relative path for fcap Closes: https://bugs.gentoo.org/956638 Signed-off-by: Sungjoon Moon Part-of: https://github.com/gentoo/gentoo/pull/42260 Closes: https://github.com/gentoo/gentoo/pull/42260 Signed-off-by: Sam James --- sys-process/htop/htop-3.4.1-r1.ebuild | 2 +- sys-process/htop/htop-9999.ebuild | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys-process/htop/htop-3.4.1-r1.ebuild b/sys-process/htop/htop-3.4.1-r1.ebuild index f1186e3c78ec3..9a8cc7e85c255 100644 --- a/sys-process/htop/htop-3.4.1-r1.ebuild +++ b/sys-process/htop/htop-3.4.1-r1.ebuild @@ -96,7 +96,7 @@ pkg_postinst() { xdg_desktop_database_update xdg_icon_cache_update - fcaps cap_sys_ptrace /usr/bin/${PN} + fcaps cap_sys_ptrace usr/bin/${PN} optfeature "Viewing processes accessing certain files" sys-process/lsof } diff --git a/sys-process/htop/htop-9999.ebuild b/sys-process/htop/htop-9999.ebuild index f1186e3c78ec3..9a8cc7e85c255 100644 --- a/sys-process/htop/htop-9999.ebuild +++ b/sys-process/htop/htop-9999.ebuild @@ -96,7 +96,7 @@ pkg_postinst() { xdg_desktop_database_update xdg_icon_cache_update - fcaps cap_sys_ptrace /usr/bin/${PN} + fcaps cap_sys_ptrace usr/bin/${PN} optfeature "Viewing processes accessing certain files" sys-process/lsof } From 170054994598350ed3cc06f1803ba5449fa9e213 Mon Sep 17 00:00:00 2001 From: Brahmajit Das Date: Sun, 1 Jun 2025 16:21:33 +0530 Subject: [PATCH 42/53] app-editors/neovim: add 0.11.2 Signed-off-by: Brahmajit Das Part-of: https://github.com/gentoo/gentoo/pull/42383 Closes: https://github.com/gentoo/gentoo/pull/42383 Signed-off-by: Sam James --- app-editors/neovim/Manifest | 1 + app-editors/neovim/neovim-0.11.2.ebuild | 127 ++++++++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 app-editors/neovim/neovim-0.11.2.ebuild diff --git a/app-editors/neovim/Manifest b/app-editors/neovim/Manifest index c44f188e3bfdd..5e1aa115d054c 100644 --- a/app-editors/neovim/Manifest +++ b/app-editors/neovim/Manifest @@ -2,3 +2,4 @@ DIST neovim-0.10.3.tar.gz 12804352 BLAKE2B 4196154a1f2415f72ed4cdebbde67804212d9 DIST neovim-0.10.4.tar.gz 12808381 BLAKE2B 5dae3cef173431ca39320e4640661457e25e9508feee23bb076d82ab3a5934df1961cb63f7329bba7dc0d41bb4e6e889a4cf58754812d1af074a21fc36cdc1c5 SHA512 8dadc24edaaa27e6ecd4db6c19d0183868a8d2809ba122110685f340341d951772ac2eb0c5f7a7ab5f87d3d5d8ae5e81f156c61f04f6d4ebbaa17cd35fb70b64 DIST neovim-0.11.0.tar.gz 12901255 BLAKE2B 155af14e07dff73ebe825b6233e4536a00de34d183ebe5d440e251098d7d95fd87fbcb3c6de4ed00fec0e2acc126c5bc1ae08a6b41389e4eae2fc126775493a6 SHA512 f898aebffa1d222cdbbc2663b69a6ea55a045c3ddb4e8454bda7b0c6e9abbfc60dce6ea235f535506f6caac9cc1b07c65bdab25374f320cfabc3744336989cf6 DIST neovim-0.11.1.tar.gz 12907535 BLAKE2B 636df1f8a4fcf92fbde9cc6b12f3106dd274af7fcd22d687a511e826f9ed0aed8a6528a27b267cdba75c9f4e9e981b32cdfe24e98fbd9840c7a007baa95ef951 SHA512 d2dac85379022e939a6a5ac8b64074d1e4a6d3605791b916e1d77366b97a28ee9f99107e4c251d5a28a5f515fa8bcde9cc6372a9d7901832de3ee01fb9895f4d +DIST neovim-0.11.2.tar.gz 12923046 BLAKE2B 0a38a35d3a817224ef714e46f2acad9a4546c0922896a922bb45f3a554b758520fbdabfcefbadd5aa6086ad4b4e64d80b1d397c6faa15ad52ff9ff28c1a6038c SHA512 eeb543ff40b71f384c3a8d964c05e20b4d8be2f647314da703f071954a6f434320b0a61c0a42936c71c970de018de654d8c0e15de92890b9dc50054c5b70b863 diff --git a/app-editors/neovim/neovim-0.11.2.ebuild b/app-editors/neovim/neovim-0.11.2.ebuild new file mode 100644 index 0000000000000..7bce36689dd6f --- /dev/null +++ b/app-editors/neovim/neovim-0.11.2.ebuild @@ -0,0 +1,127 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# RelWithDebInfo sets -Og -g +CMAKE_BUILD_TYPE=Release +LUA_COMPAT=( lua5-{1..2} luajit ) +inherit cmake lua-single optfeature xdg + +DESCRIPTION="Vim-fork focused on extensibility and agility" +HOMEPAGE="https://neovim.io" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/neovim/neovim.git" +else + SRC_URI="https://github.com/neovim/neovim/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~x64-macos" +fi + +LICENSE="Apache-2.0 vim" +SLOT="0" +IUSE="+nvimpager test" + +# Upstream say the test library needs LuaJIT +# https://github.com/neovim/neovim/blob/91109ffda23d0ce61cec245b1f4ffb99e7591b62/CMakeLists.txt#L377 +REQUIRED_USE="${LUA_REQUIRED_USE} test? ( lua_single_target_luajit )" +# TODO: Get tests running +RESTRICT="!test? ( test ) test" + +# Upstream build scripts invoke the Lua interpreter +BDEPEND="${LUA_DEPS} + >=dev-util/gperf-3.1 + >=sys-devel/gettext-0.20.1 + virtual/libiconv + virtual/libintl + virtual/pkgconfig +" +# Check https://github.com/neovim/neovim/blob/master/third-party/CMakeLists.txt for +# new dependency bounds and so on on bumps (obviously adjust for right branch/tag). +# List of required tree-sitter parsers is taken from cmake.deps/deps.txt +DEPEND="${LUA_DEPS} + >=dev-lua/luv-1.50.0[${LUA_SINGLE_USEDEP}] + $(lua_gen_cond_dep ' + dev-lua/lpeg[${LUA_USEDEP}] + dev-lua/mpack[${LUA_USEDEP}] + ') + $(lua_gen_cond_dep ' + dev-lua/LuaBitOp[${LUA_USEDEP}] + ' lua5-{1,2}) + >=dev-libs/libutf8proc-2.10.0:=[-cjk] + >=dev-libs/libuv-1.50.0:= + >=dev-libs/libvterm-0.3.3 + >=dev-libs/msgpack-3.0.0:= + >=dev-libs/tree-sitter-0.25.3:= + =dev-libs/tree-sitter-c-0.23* + =dev-libs/tree-sitter-lua-0.3* + =dev-libs/tree-sitter-markdown-0.4* + =dev-libs/tree-sitter-query-0.5* + =dev-libs/tree-sitter-vim-0.5* + =dev-libs/tree-sitter-vimdoc-3* + >=dev-libs/unibilium-2.1.2:0= +" +RDEPEND=" + ${DEPEND} + app-eselect/eselect-vi +" +BDEPEND+=" + test? ( + $(lua_gen_cond_dep 'dev-lua/busted[${LUA_USEDEP}]') + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-0.9.0-cmake_lua_version.patch" + "${FILESDIR}/${PN}-9999-cmake-darwin.patch" +) + +src_prepare() { + # Use our system vim dir + sed -e "/^# define SYS_VIMRC_FILE/s|\$VIM|${EPREFIX}/etc/vim|" \ + -i src/nvim/globals.h || die + + # https://forums.gentoo.org/viewtopic-p-8750050.html + xdg_environment_reset + cmake_src_prepare +} + +src_configure() { + # TODO: Investigate USE_BUNDLED, doesn't seem to be needed right now + local mycmakeargs=( + # appends -flto + -DENABLE_LTO=OFF + -DPREFER_LUA=$(usex lua_single_target_luajit no "$(lua_get_version)") + -DLUA_PRG="${LUA}" + ) + cmake_src_configure +} + +src_install() { + cmake_src_install + + # install a default configuration file + insinto /etc/vim + doins "${FILESDIR}"/sysinit.vim + + # symlink tree-sitter parsers + dodir /usr/share/nvim/runtime + for parser in c lua markdown query vim vimdoc; do + dosym ../../../../$(get_libdir)/libtree-sitter-${parser}.so /usr/share/nvim/runtime/parser/${parser}.so + done + + # conditionally install a symlink for nvimpager + if use nvimpager; then + dosym ../share/nvim/runtime/scripts/less.sh /usr/bin/nvimpager + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + optfeature "clipboard support" x11-misc/xsel x11-misc/xclip gui-apps/wl-clipboard + optfeature "Python plugin support" dev-python/pynvim + optfeature "Ruby plugin support" dev-ruby/neovim-ruby-client + optfeature "remote/nvr support" dev-python/neovim-remote +} From 995a2cfc7c2db39497993a81e053aaafdf36a21c Mon Sep 17 00:00:00 2001 From: Robert Spillner Date: Mon, 2 Jun 2025 07:27:38 +0200 Subject: [PATCH 43/53] dev-libs/xerces-c: add 3.3.0 Use trivial patch from upstream bug tracker (https://issues.apache.org/jira/browse/XERCESC-2255) to fix 3_2/3_3 typo in source. Closes: https://bugs.gentoo.org/943187 Signed-off-by: Robert Spillner Part-of: https://github.com/gentoo/gentoo/pull/42399 Closes: https://github.com/gentoo/gentoo/pull/42399 Signed-off-by: Sam James --- dev-libs/xerces-c/Manifest | 1 + .../files/xerces-c-3.3.0-symbol-name.patch | 19 +++ dev-libs/xerces-c/xerces-c-3.3.0.ebuild | 127 ++++++++++++++++++ 3 files changed, 147 insertions(+) create mode 100644 dev-libs/xerces-c/files/xerces-c-3.3.0-symbol-name.patch create mode 100644 dev-libs/xerces-c/xerces-c-3.3.0.ebuild diff --git a/dev-libs/xerces-c/Manifest b/dev-libs/xerces-c/Manifest index 91f6507b762fa..d7aa87ca21572 100644 --- a/dev-libs/xerces-c/Manifest +++ b/dev-libs/xerces-c/Manifest @@ -1 +1,2 @@ DIST xerces-c-3.2.5.tar.xz 4274820 BLAKE2B e0926660bf29e35c05843aae683a7a4f2fe5a6f5f68c76ce16fde975a24277c0e50465a02bfa785f96f4ebec3c7d411785793914491f112ce19477b5dd59e351 SHA512 77b80148b0a3dbb61af648e2571855d59040512dd0c739a892e8ac6a6d7ddbb43b49850c87c39fcf374f2c7658a9c795b3e3fcd4785efbc6226f831b938d5300 +DIST xerces-c-3.3.0.tar.xz 4311396 BLAKE2B bfe1e25c16430714200bdd6a0fe782bd048a3d331fe6f78c34c2d80cea08dfa97d1c68661f94bda71e67e7fd005ce40226c9278fb83c3f28ca400bf23a432737 SHA512 8d4dc27a6c97d04703e60a5473163e2616ae68f0917ce11a621a60221970ab599c5f3085eb07a70e545394022ef5029997028e9b5747d4048c541ff75fe92ec1 diff --git a/dev-libs/xerces-c/files/xerces-c-3.3.0-symbol-name.patch b/dev-libs/xerces-c/files/xerces-c-3.3.0-symbol-name.patch new file mode 100644 index 0000000000000..37bab63b9e539 --- /dev/null +++ b/dev-libs/xerces-c/files/xerces-c-3.3.0-symbol-name.patch @@ -0,0 +1,19 @@ +--- a/src/xercesc/util/MsgLoaders/ICU/ICUMsgLoader.cpp 2023-12-06 17:57:34.000000000 +0100 ++++ b/src/xercesc/util/MsgLoaders/ICU/ICUMsgLoader.cpp 2024-10-18 17:23:09.000000000 +0100 +@@ -48,14 +48,14 @@ + * Resource Data Reference. + * + * The data is packaged as a dll (or .so or whatever, depending on the platform) that exports a data symbol. + * The application (this *.cpp) references that symbol here, and will pass the data address to ICU, which + * will then be able to fetch resources from the data. + */ +-#define ENTRY_POINT xercesc_messages_3_2_dat +-#define BUNDLE_NAME "xercesc_messages_3_2" ++#define ENTRY_POINT xercesc_messages_3_3_dat ++#define BUNDLE_NAME "xercesc_messages_3_3" + + extern "C" void U_IMPORT *ENTRY_POINT; + + /* + * Tell ICU where our resource data is located in memory. The data lives in the xercesc_nessages dll, and we just + * pass the address of an exported symbol from that library to ICU. diff --git a/dev-libs/xerces-c/xerces-c-3.3.0.ebuild b/dev-libs/xerces-c/xerces-c-3.3.0.ebuild new file mode 100644 index 0000000000000..73e0062ce3cf1 --- /dev/null +++ b/dev-libs/xerces-c/xerces-c-3.3.0.ebuild @@ -0,0 +1,127 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake flag-o-matic prefix + +DESCRIPTION="Validating XML parser written in a portable subset of C++" +HOMEPAGE="https://xerces.apache.org/xerces-c/" + +if [[ ${PV} == *9999 ]] ; then + ESVN_REPO_URI="https://svn.apache.org/repos/asf/xerces/c/trunk" + inherit subversion +else + SRC_URI=" + mirror://apache/xerces/c/3/sources/${P}.tar.xz + https://archive.apache.org/dist/xerces/c/3/sources/${P}.tar.xz + " + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" +fi + +LICENSE="Apache-2.0" +SLOT="0" +IUSE="cpu_flags_x86_sse2 curl doc examples iconv icu static-libs test threads" + +RESTRICT="!test? ( test )" + +RDEPEND=" + curl? ( net-misc/curl ) + icu? ( dev-libs/icu:0= ) + virtual/libiconv" +DEPEND="${RDEPEND}" +BDEPEND=" + doc? ( app-text/doxygen ) + test? ( dev-lang/perl )" + +DOCS=( CREDITS KEYS NOTICE README ) + +PATCHES=( + "${FILESDIR}"/${PN}-3.2.4-strict-aliasing.patch + "${FILESDIR}"/${PN}-3.2.5-cxx17.patch # bug 931105 + "${FILESDIR}"/${P}-symbol-name.patch # fixed in 3.3.1, see https://issues.apache.org/jira/browse/XERCESC-2255 +) + +pkg_setup() { + export ICUROOT="${EPREFIX}/usr" + + if use iconv && use icu; then + ewarn "This package can use iconv or icu for loading messages" + ewarn "and transcoding, but not both. ICU takes precedence." + fi +} + +src_configure() { + # bug #856100 + filter-lto + append-flags -fno-strict-aliasing + + # 'cfurl' is only available on OSX and 'socket' isn't supposed to work. + # But the docs aren't clear about it, so we would need some testing... + local netaccessor + if use curl; then + netaccessor="curl" + elif use elibc_Darwin; then + netaccessor="cfurl" + else + netaccessor="socket" + fi + + local msgloader + if use icu; then + msgloader="icu" + elif use iconv; then + msgloader="iconv" + else + msgloader="inmemory" + fi + + local transcoder + if use icu; then + transcoder="icu" + elif use elibc_Darwin; then + transcoder="macosunicodeconverter" + else + transcoder="gnuiconv" + fi + + local mycmakeargs=( + -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" + -Dnetwork-accessor="${netaccessor}" + -Dmessage-loader="${msgloader}" + -Dtranscoder="${transcoder}" + -Dthreads:BOOL="$(usex threads)" + -Dsse2:BOOL="$(usex cpu_flags_x86_sse2)" + ) + + cmake_src_configure +} + +src_compile() { + cmake_src_compile + + use doc && cmake_build doc-style createapidocs doc-xml +} + +src_install() { + cmake_src_install + + # package provides .pc files + find "${D}" -name '*.la' -delete || die + + if use examples; then + # clean out object files, executables, Makefiles + # and the like before installing examples + find samples/ \( -type f -executable -o -iname 'runConfigure' -o -iname '*.o' \ + -o -iname '.libs' -o -iname 'Makefile*' \) -exec rm -rf '{}' + || die + docinto examples + dodoc -r samples/. + docompress -x /usr/share/doc/${PF}/examples + fi + + # To make sure an appropriate NLS msg file is around when using + # the iconv msgloader ICU has the messages compiled in. + if use iconv && ! use icu; then + doenvd "$(prefixify_ro "${FILESDIR}/50xerces-c")" + fi +} From 53458db8734ce4b6b551377ccd8abc6461f176de Mon Sep 17 00:00:00 2001 From: Sam James Date: Wed, 4 Jun 2025 03:03:16 +0100 Subject: [PATCH 44/53] dev-libs/xerces-c: crank subslot for 3.3.0 3.2 vs 3.3 SONAME Bug: https://bugs.gentoo.org/943187 Signed-off-by: Sam James --- dev-libs/xerces-c/xerces-c-3.3.0.ebuild | 2 +- dev-libs/xerces-c/xerces-c-9999.ebuild | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/dev-libs/xerces-c/xerces-c-3.3.0.ebuild b/dev-libs/xerces-c/xerces-c-3.3.0.ebuild index 73e0062ce3cf1..c903e18937b71 100644 --- a/dev-libs/xerces-c/xerces-c-3.3.0.ebuild +++ b/dev-libs/xerces-c/xerces-c-3.3.0.ebuild @@ -20,7 +20,7 @@ else fi LICENSE="Apache-2.0" -SLOT="0" +SLOT="0/$(ver_cut 1-2)" IUSE="cpu_flags_x86_sse2 curl doc examples iconv icu static-libs test threads" RESTRICT="!test? ( test )" diff --git a/dev-libs/xerces-c/xerces-c-9999.ebuild b/dev-libs/xerces-c/xerces-c-9999.ebuild index 2d2eb3cb1e99f..c903e18937b71 100644 --- a/dev-libs/xerces-c/xerces-c-9999.ebuild +++ b/dev-libs/xerces-c/xerces-c-9999.ebuild @@ -16,11 +16,11 @@ else mirror://apache/xerces/c/3/sources/${P}.tar.xz https://archive.apache.org/dist/xerces/c/3/sources/${P}.tar.xz " - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" fi LICENSE="Apache-2.0" -SLOT="0" +SLOT="0/$(ver_cut 1-2)" IUSE="cpu_flags_x86_sse2 curl doc examples iconv icu static-libs test threads" RESTRICT="!test? ( test )" @@ -38,6 +38,8 @@ DOCS=( CREDITS KEYS NOTICE README ) PATCHES=( "${FILESDIR}"/${PN}-3.2.4-strict-aliasing.patch + "${FILESDIR}"/${PN}-3.2.5-cxx17.patch # bug 931105 + "${FILESDIR}"/${P}-symbol-name.patch # fixed in 3.3.1, see https://issues.apache.org/jira/browse/XERCESC-2255 ) pkg_setup() { From 548a06c203e0c780daf7547f4e576a6079e8a12a Mon Sep 17 00:00:00 2001 From: Sam James Date: Wed, 4 Jun 2025 03:06:26 +0100 Subject: [PATCH 45/53] games-strategy/megaglest: subscribe to xerces-c subslot Signed-off-by: Sam James --- .../{megaglest-3.13.0-r4.ebuild => megaglest-3.13.0-r5.ebuild} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename games-strategy/megaglest/{megaglest-3.13.0-r4.ebuild => megaglest-3.13.0-r5.ebuild} (99%) diff --git a/games-strategy/megaglest/megaglest-3.13.0-r4.ebuild b/games-strategy/megaglest/megaglest-3.13.0-r5.ebuild similarity index 99% rename from games-strategy/megaglest/megaglest-3.13.0-r4.ebuild rename to games-strategy/megaglest/megaglest-3.13.0-r5.ebuild index 5b280230944ab..69d22e15ea9d6 100644 --- a/games-strategy/megaglest/megaglest-3.13.0-r4.ebuild +++ b/games-strategy/megaglest/megaglest-3.13.0-r5.ebuild @@ -36,7 +36,7 @@ REQUIRED_USE="${LUA_REQUIRED_USE}" COMMON_DEPEND=" ${LUA_DEPS} dev-libs/libxml2:= - dev-libs/xerces-c[icu] + dev-libs/xerces-c:=[icu] media-libs/fontconfig media-libs/freetype media-libs/ftgl From 0759d8688f88e9c27722a076a0ec8b96de0214dd Mon Sep 17 00:00:00 2001 From: Sam James Date: Wed, 4 Jun 2025 03:07:20 +0100 Subject: [PATCH 46/53] app-misc/brewtarget: subscribe to xerces-c subslot Signed-off-by: Sam James --- .../{brewtarget-4.0.17.ebuild => brewtarget-4.0.17-r1.ebuild} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename app-misc/brewtarget/{brewtarget-4.0.17.ebuild => brewtarget-4.0.17-r1.ebuild} (98%) diff --git a/app-misc/brewtarget/brewtarget-4.0.17.ebuild b/app-misc/brewtarget/brewtarget-4.0.17-r1.ebuild similarity index 98% rename from app-misc/brewtarget/brewtarget-4.0.17.ebuild rename to app-misc/brewtarget/brewtarget-4.0.17-r1.ebuild index 884296e42793d..dd9d533544749 100644 --- a/app-misc/brewtarget/brewtarget-4.0.17.ebuild +++ b/app-misc/brewtarget/brewtarget-4.0.17-r1.ebuild @@ -25,7 +25,7 @@ DEPEND=" dev-libs/boost:=[stacktrace] dev-libs/openssl:= dev-libs/xalan-c - dev-libs/xerces-c + dev-libs/xerces-c:= dev-qt/qtbase:6[gui,network,sql,sqlite,widgets,xml] dev-qt/qtmultimedia:6 dev-qt/qtsvg:6 From 213ce1fa0d2b9ff2c88ca4127e58188f03eac017 Mon Sep 17 00:00:00 2001 From: Sam James Date: Wed, 4 Jun 2025 03:08:02 +0100 Subject: [PATCH 47/53] app-admin/passwordsafe: subscribe to xerces-c subslot Signed-off-by: Sam James --- ...swordsafe-1.18.2-r1.ebuild => passwordsafe-1.18.2-r2.ebuild} | 2 +- ...swordsafe-1.19.1-r1.ebuild => passwordsafe-1.19.1-r2.ebuild} | 2 +- ...swordsafe-1.20.0-r1.ebuild => passwordsafe-1.20.0-r2.ebuild} | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename app-admin/passwordsafe/{passwordsafe-1.18.2-r1.ebuild => passwordsafe-1.18.2-r2.ebuild} (98%) rename app-admin/passwordsafe/{passwordsafe-1.19.1-r1.ebuild => passwordsafe-1.19.1-r2.ebuild} (97%) rename app-admin/passwordsafe/{passwordsafe-1.20.0-r1.ebuild => passwordsafe-1.20.0-r2.ebuild} (97%) diff --git a/app-admin/passwordsafe/passwordsafe-1.18.2-r1.ebuild b/app-admin/passwordsafe/passwordsafe-1.18.2-r2.ebuild similarity index 98% rename from app-admin/passwordsafe/passwordsafe-1.18.2-r1.ebuild rename to app-admin/passwordsafe/passwordsafe-1.18.2-r2.ebuild index 5fa407afd11fb..747f7bbe92959 100644 --- a/app-admin/passwordsafe/passwordsafe-1.18.2-r1.ebuild +++ b/app-admin/passwordsafe/passwordsafe-1.18.2-r2.ebuild @@ -26,7 +26,7 @@ RDEPEND=" x11-libs/libXtst x11-libs/wxGTK:${WX_GTK_VER}=[X] qr? ( media-gfx/qrencode ) - xml? ( dev-libs/xerces-c ) + xml? ( dev-libs/xerces-c:= ) yubikey? ( sys-auth/ykpers )" DEPEND="${RDEPEND} x11-base/xorg-proto" diff --git a/app-admin/passwordsafe/passwordsafe-1.19.1-r1.ebuild b/app-admin/passwordsafe/passwordsafe-1.19.1-r2.ebuild similarity index 97% rename from app-admin/passwordsafe/passwordsafe-1.19.1-r1.ebuild rename to app-admin/passwordsafe/passwordsafe-1.19.1-r2.ebuild index 7bafa8e8b3e71..7a34fe4790760 100644 --- a/app-admin/passwordsafe/passwordsafe-1.19.1-r1.ebuild +++ b/app-admin/passwordsafe/passwordsafe-1.19.1-r2.ebuild @@ -26,7 +26,7 @@ RDEPEND=" x11-libs/libXtst x11-libs/wxGTK:${WX_GTK_VER}=[X] qr? ( media-gfx/qrencode ) - xml? ( dev-libs/xerces-c ) + xml? ( dev-libs/xerces-c:= ) yubikey? ( sys-auth/ykpers )" DEPEND="${RDEPEND} x11-base/xorg-proto" diff --git a/app-admin/passwordsafe/passwordsafe-1.20.0-r1.ebuild b/app-admin/passwordsafe/passwordsafe-1.20.0-r2.ebuild similarity index 97% rename from app-admin/passwordsafe/passwordsafe-1.20.0-r1.ebuild rename to app-admin/passwordsafe/passwordsafe-1.20.0-r2.ebuild index afea53af8e2b8..27f283a8346e0 100644 --- a/app-admin/passwordsafe/passwordsafe-1.20.0-r1.ebuild +++ b/app-admin/passwordsafe/passwordsafe-1.20.0-r2.ebuild @@ -27,7 +27,7 @@ RDEPEND=" x11-libs/libXtst x11-libs/wxGTK:${WX_GTK_VER}=[X] qr? ( media-gfx/qrencode:= ) - xml? ( dev-libs/xerces-c ) + xml? ( dev-libs/xerces-c:= ) yubikey? ( sys-auth/ykpers )" DEPEND="${RDEPEND} x11-base/xorg-proto" From 6172a1ddbbc897659e6e18807f52c2b5fbef8be9 Mon Sep 17 00:00:00 2001 From: Sam James Date: Wed, 4 Jun 2025 03:09:41 +0100 Subject: [PATCH 48/53] dev-libs/xalan-c: subscribe to xerces-c subslot Signed-off-by: Sam James --- .../xalan-c/{xalan-c-1.12-r2.ebuild => xalan-c-1.12-r3.ebuild} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename dev-libs/xalan-c/{xalan-c-1.12-r2.ebuild => xalan-c-1.12-r3.ebuild} (98%) diff --git a/dev-libs/xalan-c/xalan-c-1.12-r2.ebuild b/dev-libs/xalan-c/xalan-c-1.12-r3.ebuild similarity index 98% rename from dev-libs/xalan-c/xalan-c-1.12-r2.ebuild rename to dev-libs/xalan-c/xalan-c-1.12-r3.ebuild index c4e8834d54f99..a03dd3f992089 100644 --- a/dev-libs/xalan-c/xalan-c-1.12-r2.ebuild +++ b/dev-libs/xalan-c/xalan-c-1.12-r3.ebuild @@ -38,7 +38,7 @@ IUSE="doc" RDEPEND=" dev-libs/icu:= - dev-libs/xerces-c[icu] + dev-libs/xerces-c:=[icu] " DEPEND="${RDEPEND}" BDEPEND+=" From 26056c5ebe7252f52c71dafe5821a4480f1abc93 Mon Sep 17 00:00:00 2001 From: Sam James Date: Wed, 4 Jun 2025 03:10:05 +0100 Subject: [PATCH 49/53] app-editors/xmlcopyeditor: subscribe to xerces-c subslot Signed-off-by: Sam James --- ...editor-1.3.1.0-r2.ebuild => xmlcopyeditor-1.3.1.0-r3.ebuild} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename app-editors/xmlcopyeditor/{xmlcopyeditor-1.3.1.0-r2.ebuild => xmlcopyeditor-1.3.1.0-r3.ebuild} (95%) diff --git a/app-editors/xmlcopyeditor/xmlcopyeditor-1.3.1.0-r2.ebuild b/app-editors/xmlcopyeditor/xmlcopyeditor-1.3.1.0-r3.ebuild similarity index 95% rename from app-editors/xmlcopyeditor/xmlcopyeditor-1.3.1.0-r2.ebuild rename to app-editors/xmlcopyeditor/xmlcopyeditor-1.3.1.0-r3.ebuild index 8d3b79deb5a64..4967e5f56a6b8 100644 --- a/app-editors/xmlcopyeditor/xmlcopyeditor-1.3.1.0-r2.ebuild +++ b/app-editors/xmlcopyeditor/xmlcopyeditor-1.3.1.0-r3.ebuild @@ -19,7 +19,7 @@ RDEPEND=" app-text/enchant:2 >=dev-libs/libxml2-2.12.5 dev-libs/libxslt - dev-libs/xerces-c[cpu_flags_x86_sse2,icu] + dev-libs/xerces-c:=[cpu_flags_x86_sse2,icu] dev-libs/libpcre2 x11-libs/wxGTK:${WX_GTK_VER}=[X] " From ca9cfe5bdee215f4d94fd6169f3bf40698e43103 Mon Sep 17 00:00:00 2001 From: Sam James Date: Wed, 4 Jun 2025 03:10:48 +0100 Subject: [PATCH 50/53] app-text/blahtexml: subscribe to xerces-c subslot Signed-off-by: Sam James --- .../{blahtexml-1.0.ebuild => blahtexml-1.0-r1.ebuild} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename app-text/blahtexml/{blahtexml-1.0.ebuild => blahtexml-1.0-r1.ebuild} (92%) diff --git a/app-text/blahtexml/blahtexml-1.0.ebuild b/app-text/blahtexml/blahtexml-1.0-r1.ebuild similarity index 92% rename from app-text/blahtexml/blahtexml-1.0.ebuild rename to app-text/blahtexml/blahtexml-1.0-r1.ebuild index 00d990c80f2a5..256d6b058981c 100644 --- a/app-text/blahtexml/blahtexml-1.0.ebuild +++ b/app-text/blahtexml/blahtexml-1.0-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -14,7 +14,7 @@ SLOT="0" KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~s390 x86" IUSE="doc" -RDEPEND="dev-libs/xerces-c" +RDEPEND="dev-libs/xerces-c:=" DEPEND="${RDEPEND}" BDEPEND=" virtual/pkgconfig From 929c6355806a324302102154739a6bc59314a23c Mon Sep 17 00:00:00 2001 From: Sam James Date: Wed, 4 Jun 2025 03:11:28 +0100 Subject: [PATCH 51/53] sci-physics/geant: subscribe to xerces-c subslot Signed-off-by: Sam James --- .../geant/{geant-4.11.3.1.ebuild => geant-4.11.3.1-r1.ebuild} | 2 +- .../geant/{geant-4.11.3.2.ebuild => geant-4.11.3.2-r1.ebuild} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename sci-physics/geant/{geant-4.11.3.1.ebuild => geant-4.11.3.1-r1.ebuild} (98%) rename sci-physics/geant/{geant-4.11.3.2.ebuild => geant-4.11.3.2-r1.ebuild} (98%) diff --git a/sci-physics/geant/geant-4.11.3.1.ebuild b/sci-physics/geant/geant-4.11.3.1-r1.ebuild similarity index 98% rename from sci-physics/geant/geant-4.11.3.1.ebuild rename to sci-physics/geant/geant-4.11.3.1-r1.ebuild index 1d855b238d231..66c4169dd7c31 100644 --- a/sci-physics/geant/geant-4.11.3.1.ebuild +++ b/sci-physics/geant/geant-4.11.3.1-r1.ebuild @@ -46,7 +46,7 @@ RDEPEND=" >=sci-physics/clhep-2.4.7.1:2=[threads?] data? ( ~sci-physics/geant-data-4.11.3 ) doc? ( app-doc/geant-docs ) - gdml? ( dev-libs/xerces-c ) + gdml? ( dev-libs/xerces-c:= ) hdf5? ( sci-libs/hdf5:=[threads?] ) inventor? ( media-libs/SoXt ) motif? ( x11-libs/motif:0 ) diff --git a/sci-physics/geant/geant-4.11.3.2.ebuild b/sci-physics/geant/geant-4.11.3.2-r1.ebuild similarity index 98% rename from sci-physics/geant/geant-4.11.3.2.ebuild rename to sci-physics/geant/geant-4.11.3.2-r1.ebuild index 7b9aa22b46027..73b8b75408c37 100644 --- a/sci-physics/geant/geant-4.11.3.2.ebuild +++ b/sci-physics/geant/geant-4.11.3.2-r1.ebuild @@ -46,7 +46,7 @@ RDEPEND=" >=sci-physics/clhep-2.4.7.1:2=[threads?] data? ( ~sci-physics/geant-data-4.11.3 ) doc? ( app-doc/geant-docs ) - gdml? ( dev-libs/xerces-c ) + gdml? ( dev-libs/xerces-c:= ) hdf5? ( sci-libs/hdf5:=[threads?] ) inventor? ( media-libs/SoXt ) motif? ( x11-libs/motif:0 ) From 2d2af18fc491c5bf1aa1d888fd521389bfb66519 Mon Sep 17 00:00:00 2001 From: Sam James Date: Wed, 4 Jun 2025 03:12:18 +0100 Subject: [PATCH 52/53] media-gfx/freecad: subscribe to xerces-c subslot Signed-off-by: Sam James --- media-gfx/freecad/freecad-1.0.0-r2.ebuild | 4 ++-- media-gfx/freecad/freecad-1.0.0-r3.ebuild | 2 +- .../{freecad-1.0.0-r4.ebuild => freecad-1.0.0-r5.ebuild} | 2 +- media-gfx/freecad/freecad-9999.ebuild | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) rename media-gfx/freecad/{freecad-1.0.0-r4.ebuild => freecad-1.0.0-r5.ebuild} (99%) diff --git a/media-gfx/freecad/freecad-1.0.0-r2.ebuild b/media-gfx/freecad/freecad-1.0.0-r2.ebuild index e4819c63e7f75..5b2b6322824f5 100644 --- a/media-gfx/freecad/freecad-1.0.0-r2.ebuild +++ b/media-gfx/freecad/freecad-1.0.0-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -56,7 +56,7 @@ RDEPEND=" dev-cpp/yaml-cpp dev-libs/boost:= dev-libs/libfmt:= - dev-libs/xerces-c[icu] + dev-libs/xerces-c:=[icu] dev-qt/qtbase:6[concurrent,network,xml] media-libs/freetype sci-libs/opencascade:=[json] diff --git a/media-gfx/freecad/freecad-1.0.0-r3.ebuild b/media-gfx/freecad/freecad-1.0.0-r3.ebuild index bc61cd1070921..fa1039b57c3c1 100644 --- a/media-gfx/freecad/freecad-1.0.0-r3.ebuild +++ b/media-gfx/freecad/freecad-1.0.0-r3.ebuild @@ -59,7 +59,7 @@ RDEPEND=" dev-cpp/yaml-cpp dev-libs/boost:= dev-libs/libfmt:= - dev-libs/xerces-c[icu] + dev-libs/xerces-c:=[icu] dev-qt/qtbase:6[concurrent,network,xml] media-libs/freetype sci-libs/opencascade:=[json] diff --git a/media-gfx/freecad/freecad-1.0.0-r4.ebuild b/media-gfx/freecad/freecad-1.0.0-r5.ebuild similarity index 99% rename from media-gfx/freecad/freecad-1.0.0-r4.ebuild rename to media-gfx/freecad/freecad-1.0.0-r5.ebuild index 2fc4f1d33b6c8..9ba9358d870c0 100644 --- a/media-gfx/freecad/freecad-1.0.0-r4.ebuild +++ b/media-gfx/freecad/freecad-1.0.0-r5.ebuild @@ -60,7 +60,7 @@ RDEPEND=" dev-cpp/yaml-cpp dev-libs/boost:= dev-libs/libfmt:= - dev-libs/xerces-c[icu] + dev-libs/xerces-c:=[icu] dev-qt/qtbase:6[concurrent,network,xml] media-libs/freetype sci-libs/opencascade:=[json] diff --git a/media-gfx/freecad/freecad-9999.ebuild b/media-gfx/freecad/freecad-9999.ebuild index 8d90dd0197e0f..b78139fccc18d 100644 --- a/media-gfx/freecad/freecad-9999.ebuild +++ b/media-gfx/freecad/freecad-9999.ebuild @@ -58,7 +58,7 @@ RDEPEND=" dev-cpp/yaml-cpp dev-libs/boost:= dev-libs/libfmt:= - dev-libs/xerces-c[icu] + dev-libs/xerces-c:=[icu] dev-qt/qtbase:6[concurrent,network,xml] media-libs/freetype sci-libs/opencascade:=[json] From f82789b1c68a89beb7d664654fe0b5c9dec8217d Mon Sep 17 00:00:00 2001 From: Sam James Date: Wed, 4 Jun 2025 03:12:40 +0100 Subject: [PATCH 53/53] sci-libs/gdal: subscribe to xerces-c subslot Signed-off-by: Sam James --- sci-libs/gdal/{gdal-3.9.3.ebuild => gdal-3.9.3-r1.ebuild} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename sci-libs/gdal/{gdal-3.9.3.ebuild => gdal-3.9.3-r1.ebuild} (99%) diff --git a/sci-libs/gdal/gdal-3.9.3.ebuild b/sci-libs/gdal/gdal-3.9.3-r1.ebuild similarity index 99% rename from sci-libs/gdal/gdal-3.9.3.ebuild rename to sci-libs/gdal/gdal-3.9.3-r1.ebuild index b0e19738ed586..56799af7b6d64 100644 --- a/sci-libs/gdal/gdal-3.9.3.ebuild +++ b/sci-libs/gdal/gdal-3.9.3-r1.ebuild @@ -56,7 +56,7 @@ DEPEND=" fits? ( sci-libs/cfitsio:= ) geos? ( >=sci-libs/geos-3.8.0 ) gif? ( media-libs/giflib:= ) - gml? ( >=dev-libs/xerces-c-3.1 ) + gml? ( >=dev-libs/xerces-c-3.1:= ) heif? ( media-libs/libheif:= ) hdf5? ( >=sci-libs/hdf5-1.6.4:=[cxx,szip] ) java? (