mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-22 22:21:10 +02:00
Merge pull request #3062 from flatcar/buildbot/weekly-portage-stable-package-updates-2025-06-30
Weekly portage-stable package updates 2025-06-30
This commit is contained in:
commit
0cbc3dc489
@ -723,13 +723,23 @@ _write_cpio_common() {
|
|||||||
echo "/.noupdate f 444 root root echo -n" >"${VM_TMP_DIR}/extra"
|
echo "/.noupdate f 444 root root echo -n" >"${VM_TMP_DIR}/extra"
|
||||||
|
|
||||||
# Set correct group for PXE/ISO, which has no writeable /etc
|
# Set correct group for PXE/ISO, which has no writeable /etc
|
||||||
echo /usr/share/flatcar/update.conf f 644 root root \
|
echo /share/flatcar/update.conf f 644 root root \
|
||||||
"sed -e 's/GROUP=.*$/GROUP=${VM_GROUP}/' ${base_dir}/share/flatcar/update.conf" \
|
"sed -e 's/GROUP=.*$/GROUP=${VM_GROUP}/' ${base_dir}/share/flatcar/update.conf" \
|
||||||
>> "${VM_TMP_DIR}/extra"
|
>> "${VM_TMP_DIR}/extra"
|
||||||
|
|
||||||
|
local -a mksquashfs_opts=(
|
||||||
|
-pf "${VM_TMP_DIR}/extra"
|
||||||
|
-xattrs-exclude '^btrfs.'
|
||||||
|
# mksquashfs doesn't like overwriting existing files with
|
||||||
|
# pseudo-files, so tell it to ignore the existing file instead
|
||||||
|
#
|
||||||
|
# also, this must be the last option
|
||||||
|
-e share/flatcar/update.conf
|
||||||
|
)
|
||||||
|
|
||||||
# Build the squashfs, embed squashfs into a gzipped cpio
|
# Build the squashfs, embed squashfs into a gzipped cpio
|
||||||
pushd "${cpio_target}" >/dev/null
|
pushd "${cpio_target}" >/dev/null
|
||||||
sudo mksquashfs "${base_dir}" "./usr.squashfs" -pf "${VM_TMP_DIR}/extra" -xattrs-exclude '^btrfs.'
|
sudo mksquashfs "${base_dir}" "./usr.squashfs" "${mksquashfs_opts[@]}"
|
||||||
find . | cpio -o -H newc | gzip > "$2"
|
find . | cpio -o -H newc | gzip > "$2"
|
||||||
popd >/dev/null
|
popd >/dev/null
|
||||||
|
|
||||||
|
20
changelog/updates/2025-06-30-weekly-updates.md
Normal file
20
changelog/updates/2025-06-30-weekly-updates.md
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
- SDK: pkgcheck ([0.10.36](https://github.com/pkgcore/pkgcheck/blob/v0.10.36/NEWS.rst))
|
||||||
|
- azure, dev, gce, sysext-python: python ([3.11.13](https://www.python.org/downloads/release/python-31113/))
|
||||||
|
- base, dev: elfutils ([0.193](https://inbox.sourceware.org/elfutils-devel/CAJDtP-RjuT13zehLgSvz9TnwQZ1VYPOS=q_kuut5a2g+KLamgw@mail.gmail.com/T/#u))
|
||||||
|
- base, dev: gnupg ([2.4.8](https://dev.gnupg.org/T7428))
|
||||||
|
- base, dev: ipset ([7.24](https://lwn.net/Articles/1021623/))
|
||||||
|
- base, dev: jansson ([2.14.1](https://jansson.readthedocs.io/en/latest/changes.html#version-2-14-1))
|
||||||
|
- base, dev: libarchive ([3.8.1](https://github.com/libarchive/libarchive/releases/tag/v3.8.1) (includes [3.8.0](https://github.com/libarchive/libarchive/releases/tag/v3.8.0)))
|
||||||
|
- base, dev: libcap ([2.76](https://sites.google.com/site/fullycapable/release-notes-for-libcap#h.wqnp1zp1o8bm) (includes [2.75](https://sites.google.com/site/fullycapable/release-notes-for-libcap#h.7xqcoecpcnn8), [2.74](https://sites.google.com/site/fullycapable/release-notes-for-libcap#h.ccbrq82zh7n9), [2.73](https://sites.google.com/site/fullycapable/release-notes-for-libcap#h.7yd7ab9ppagk), [2.72](https://sites.google.com/site/fullycapable/release-notes-for-libcap#h.ulglddlojmy0)))
|
||||||
|
- base, dev: libgcrypt ([1.11.1](https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=blob;f=NEWS;h=84bc61a49f3a09302b3438cb529baf67576ad859;hb=81ce5321b1b79bde6dfdc3c164efb40c13cf656b))
|
||||||
|
- base, dev: libnftnl ([1.2.9](https://lwn.net/Articles/1017463/))
|
||||||
|
- base, dev: libunistring ([1.3](https://lists.gnu.org/archive/html/info-gnu/2024-10/msg00000.html))
|
||||||
|
- base, dev: libunwind ([1.8.2](https://github.com/libunwind/libunwind/releases/tag/v1.8.2))
|
||||||
|
- base, dev: openssl ([3.4.1](https://github.com/openssl/openssl/releases/tag/openssl-3.4.1) (includes [3.4.0](https://github.com/openssl/openssl/blob/openssl-3.4.0/NEWS.md#openssl-34)))
|
||||||
|
- dev, sysext-incus: squashfs-tools ([4.7](https://lkml.org/lkml/2025/6/3/1214))
|
||||||
|
- dev: portage ([3.0.68](https://gitweb.gentoo.org/proj/portage.git/tree/NEWS?h=portage-3.0.68))
|
||||||
|
- sysext-docker: docker ([28.0.4](https://github.com/moby/moby/releases/tag/v28.0.4) (includes [28.0.3](https://github.com/moby/moby/releases/tag/v28.0.3), [28.0.2](https://github.com/moby/moby/releases/tag/v28.0.2)))
|
||||||
|
- sysext-podman: containers-common ([0.63.0](https://github.com/containers/common/releases/tag/v0.63.0))
|
||||||
|
- sysext-podman: passt ([2025.04.15](https://archives.passt.top/passt-user/20250415233140.35074c4b@elisabeth/T/#u))
|
||||||
|
- sysext-python: msgpack ([1.1.1](https://github.com/msgpack/msgpack-python/releases/tag/v1.1.1))
|
||||||
|
- sysext-python: typing-extensions ([4.14.0](https://github.com/python/typing_extensions/releases/tag/4.14.0))
|
@ -1,32 +0,0 @@
|
|||||||
From 1ad42b66c3567481cc5fa22fc1ba1556a316d878 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
|
|
||||||
Date: Mon, 17 Feb 2025 10:31:55 +0800
|
|
||||||
Subject: pam_cap: Fix potential configuration parsing error
|
|
||||||
|
|
||||||
The current configuration parsing does not actually skip user names
|
|
||||||
that do not start with @, but instead treats the name as a group
|
|
||||||
name for further parsing, which can result in matching unexpected
|
|
||||||
capability sets and may trigger potential security issues. Only
|
|
||||||
names starting with @ should be parsed as group names.
|
|
||||||
|
|
||||||
Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
|
|
||||||
Signed-off-by: Andrew G. Morgan <morgan@kernel.org>
|
|
||||||
---
|
|
||||||
pam_cap/pam_cap.c | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/pam_cap/pam_cap.c b/pam_cap/pam_cap.c
|
|
||||||
index 24de329..3ec99bb 100644
|
|
||||||
--- a/pam_cap/pam_cap.c
|
|
||||||
+++ b/pam_cap/pam_cap.c
|
|
||||||
@@ -166,6 +166,7 @@ static char *read_capabilities_for_user(const char *user, const char *source)
|
|
||||||
|
|
||||||
if (line[0] != '@') {
|
|
||||||
D(("user [%s] is not [%s] - skipping", user, line));
|
|
||||||
+ continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
int i;
|
|
||||||
--
|
|
||||||
cgit 1.2.3-korg
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
The `0001-pam-cap-Fix-potential-configuration-parsing-error.patch`
|
|
||||||
patch addresses CVE-2025-1390. It can be dropped when updating to
|
|
||||||
2.74.
|
|
@ -8,20 +8,21 @@
|
|||||||
# (the following packages are "unstable" upstream; we're stabilising these)
|
# (the following packages are "unstable" upstream; we're stabilising these)
|
||||||
|
|
||||||
# Needed to address CVE-2024-40635, CVE-2025-47291
|
# Needed to address CVE-2024-40635, CVE-2025-47291
|
||||||
=app-containers/containerd-2.0.5 ~amd64 ~arm64
|
=app-containers/containerd-2.0.5 ~arm64
|
||||||
|
|
||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
|
=app-containers/containers-common-0.63.0 ~arm64
|
||||||
=app-containers/cri-tools-1.32.0 ~arm64
|
=app-containers/cri-tools-1.32.0 ~arm64
|
||||||
|
|
||||||
# Needed to address CVE-2025-24965.
|
# Needed to address CVE-2025-24965.
|
||||||
=app-containers/crun-1.20 ~amd64 ~arm64
|
=app-containers/crun-1.20 ~arm64
|
||||||
|
|
||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
=app-containers/lxc-6.0.4-r1 ~amd64 ~arm64
|
=app-containers/docker-28.0.4 ~arm64
|
||||||
=app-containers/incus-6.0.4-r1 ~amd64 ~arm64
|
=app-containers/docker-cli-28.0.4 ~arm64
|
||||||
|
=app-containers/incus-6.0.4-r1 ~arm64
|
||||||
# Needed by app-containers/containerd-2.0.5
|
=app-containers/lxc-6.0.4-r1 ~arm64
|
||||||
=app-containers/runc-1.2.6 ~amd64 ~arm64
|
=app-containers/runc-1.2.6 ~arm64
|
||||||
|
|
||||||
# No stable keywords.
|
# No stable keywords.
|
||||||
=app-containers/syft-1.18.1 ~amd64 ~arm64
|
=app-containers/syft-1.18.1 ~amd64 ~arm64
|
||||||
@ -29,12 +30,20 @@
|
|||||||
# Seems to be the only available ebuild in portage-stable right now.
|
# Seems to be the only available ebuild in portage-stable right now.
|
||||||
=app-crypt/adcli-0.9.2 ~arm64
|
=app-crypt/adcli-0.9.2 ~arm64
|
||||||
|
|
||||||
|
# Packages are in Gentoo but not expected to be used outside Flatcar, so they
|
||||||
|
# are generally never stabilised. Thus an unusual form is used to pick up the
|
||||||
|
# latest version of the package with the unstable keywords.
|
||||||
|
app-crypt/azure-keyvault-pkcs11
|
||||||
|
|
||||||
# Needed by arm64-native SDK
|
# Needed by arm64-native SDK
|
||||||
=app-crypt/ccid-1.6.1 ~arm64
|
=app-crypt/ccid-1.6.1 ~arm64
|
||||||
|
|
||||||
# The only available ebuild (from GURU) has ~amd64 and no keyword for arm64 yet.
|
# The only available ebuild (from GURU) has ~amd64 and no keyword for arm64 yet.
|
||||||
=app-crypt/clevis-19-r1 **
|
=app-crypt/clevis-19-r1 **
|
||||||
|
|
||||||
|
# Keep versions on both arches in sync.
|
||||||
|
=app-crypt/gnupg-2.4.8 ~arm64
|
||||||
|
|
||||||
# Needed to address CVE-2025-1215, CVE-2025-22134, CVE-2025-24014, GHSA-63p5-mwg2-787v, CVE-2025-27423, CVE-2025-29768
|
# Needed to address CVE-2025-1215, CVE-2025-22134, CVE-2025-24014, GHSA-63p5-mwg2-787v, CVE-2025-27423, CVE-2025-29768
|
||||||
=app-editors/vim-9.1.1436 ~amd64 ~arm64
|
=app-editors/vim-9.1.1436 ~amd64 ~arm64
|
||||||
=app-editors/vim-core-9.1.1436 ~amd64 ~arm64
|
=app-editors/vim-core-9.1.1436 ~amd64 ~arm64
|
||||||
@ -50,24 +59,46 @@
|
|||||||
|
|
||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
=dev-build/meson-1.7.2 ~arm64
|
=dev-build/meson-1.7.2 ~arm64
|
||||||
=dev-db/sqlite-3.49.2 ~arm64
|
|
||||||
=dev-lang/go-1.24.4 ~arm64
|
# Packages are in Gentoo but not expected to be used outside Flatcar, so they
|
||||||
|
# are generally never stabilised. Thus an unusual form is used to pick up the
|
||||||
|
# latest version of the package with the unstable keywords.
|
||||||
|
dev-cpp/azure-core
|
||||||
|
dev-cpp/azure-identity
|
||||||
|
dev-cpp/azure-security-keyvault-certificates
|
||||||
|
dev-cpp/azure-security-keyvault-keys
|
||||||
|
|
||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
|
=dev-db/sqlite-3.49.2 ~arm64
|
||||||
|
=dev-lang/go-1.24.4 ~arm64
|
||||||
|
=dev-lang/python-3.11.13 ~arm64
|
||||||
=dev-lang/yasm-1.3.0-r1 ~arm64
|
=dev-lang/yasm-1.3.0-r1 ~arm64
|
||||||
=dev-libs/ding-libs-0.6.2-r1 ~arm64
|
|
||||||
=dev-libs/cowsql-1.15.8 ~arm64
|
=dev-libs/cowsql-1.15.8 ~arm64
|
||||||
|
=dev-libs/ding-libs-0.6.2-r1 ~arm64
|
||||||
|
|
||||||
# Needed to address CVE-2025-4373
|
# Needed to address CVE-2025-4373
|
||||||
=dev-libs/glib-2.84.3 ~amd64 ~arm64
|
=dev-libs/glib-2.84.3 ~arm64
|
||||||
=dev-libs/gobject-introspection-common-1.84.0 ~amd64 ~arm64
|
=dev-libs/gobject-introspection-common-1.84.0 ~arm64
|
||||||
|
|
||||||
|
# Keep versions on both arches in sync.
|
||||||
|
=dev-libs/jansson-2.14.1 ~arm64
|
||||||
|
|
||||||
# The only available ebuild (from GURU) has ~amd64 and no keyword for arm64 yet.
|
# The only available ebuild (from GURU) has ~amd64 and no keyword for arm64 yet.
|
||||||
=dev-libs/jose-12 **
|
=dev-libs/jose-12 **
|
||||||
|
|
||||||
|
# Keep versions on both arches in sync.
|
||||||
|
=dev-libs/libgcrypt-1.11.1 ~arm64
|
||||||
|
=dev-libs/libtracefs-1.8.2 ~arm64
|
||||||
|
=dev-libs/libunistring-1.3 ~arm64
|
||||||
|
|
||||||
|
# The only available ebuild (from GURU) has ~amd64 and no keyword for arm64 yet.
|
||||||
=dev-libs/luksmeta-9-r1 **
|
=dev-libs/luksmeta-9-r1 **
|
||||||
|
|
||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
=dev-libs/raft-0.22.1 ~arm64
|
=dev-libs/raft-0.22.1 ~arm64
|
||||||
|
=dev-python/cryptography-45.0.4 ~arm64
|
||||||
|
=dev-python/cython-3.1.2 ~arm64
|
||||||
|
=dev-python/msgpack-1.1.1 ~arm64
|
||||||
|
|
||||||
# No arm64 keyword in package.
|
# No arm64 keyword in package.
|
||||||
=dev-util/bsdiff-4.3-r4 **
|
=dev-util/bsdiff-4.3-r4 **
|
||||||
@ -76,17 +107,18 @@
|
|||||||
=dev-util/catalyst-4.0.0 ~amd64 ~arm64
|
=dev-util/catalyst-4.0.0 ~amd64 ~arm64
|
||||||
|
|
||||||
# Needed to address CVE-2025-4373
|
# Needed to address CVE-2025-4373
|
||||||
=dev-util/glib-utils-2.84.3 ~amd64 ~arm64
|
=dev-util/gdbus-codegen-2.84.3 ~arm64
|
||||||
=dev-util/gdbus-codegen-2.84.3 ~amd64 ~arm64
|
=dev-util/glib-utils-2.84.3 ~arm64
|
||||||
|
|
||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
=dev-util/xdelta-3.0.11-r1 ~arm64
|
=dev-util/xdelta-3.0.11-r1 ~arm64
|
||||||
|
|
||||||
# Needed to address CVE-2024-11187, CVE-2024-12705
|
# Needed to address CVE-2024-11187, CVE-2024-12705
|
||||||
=net-dns/bind-9.18.37-r1 ~amd64 ~arm64
|
=net-dns/bind-9.18.37-r1 ~arm64
|
||||||
|
|
||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
=net-firewall/conntrack-tools-1.4.8-r1 ~arm64
|
=net-firewall/conntrack-tools-1.4.8-r1 ~arm64
|
||||||
|
=net-firewall/ipset-7.24 ~arm64
|
||||||
|
|
||||||
# Needed to address CVE-2025-2312.
|
# Needed to address CVE-2025-2312.
|
||||||
=net-fs/cifs-utils-7.3 ~amd64 ~arm64
|
=net-fs/cifs-utils-7.3 ~amd64 ~arm64
|
||||||
@ -94,34 +126,36 @@
|
|||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
=net-libs/libnetfilter_cthelper-1.0.1-r1 ~arm64
|
=net-libs/libnetfilter_cthelper-1.0.1-r1 ~arm64
|
||||||
=net-libs/libnetfilter_cttimeout-1.0.1 ~arm64
|
=net-libs/libnetfilter_cttimeout-1.0.1 ~arm64
|
||||||
|
=net-libs/libnftnl-1.2.9 ~arm64
|
||||||
|
|
||||||
# Needed for addressing CVE-2025-47268 and CVE-2025-48964
|
# Needed for addressing CVE-2025-47268 and CVE-2025-48964
|
||||||
=net-misc/iputils-20250605 ~amd64 ~arm64
|
=net-misc/iputils-20250605 ~amd64 ~arm64
|
||||||
|
|
||||||
|
# Keep versions on both arches in sync.
|
||||||
|
=net-misc/passt-2025.04.15 ~arm64
|
||||||
|
|
||||||
# Packages are in Gentoo but not expected to be used outside Flatcar, so they
|
# Packages are in Gentoo but not expected to be used outside Flatcar, so they
|
||||||
# are generally never stabilised. Thus an unusual form is used to pick up the
|
# are generally never stabilised. Thus an unusual form is used to pick up the
|
||||||
# latest version of the package with the unstable keywords.
|
# latest version of the package with the unstable keywords.
|
||||||
app-crypt/azure-keyvault-pkcs11
|
|
||||||
dev-cpp/azure-core
|
|
||||||
dev-cpp/azure-identity
|
|
||||||
dev-cpp/azure-security-keyvault-certificates
|
|
||||||
dev-cpp/azure-security-keyvault-keys
|
|
||||||
sys-apps/azure-vm-utils
|
sys-apps/azure-vm-utils
|
||||||
|
|
||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
|
=sys-apps/dtc-1.7.2-r2 ~arm64
|
||||||
|
=sys-apps/portage-3.0.68 ~arm64
|
||||||
=sys-apps/zram-generator-1.2.1 ~arm64
|
=sys-apps/zram-generator-1.2.1 ~arm64
|
||||||
=sys-auth/polkit-126-r1 ~amd64
|
|
||||||
|
|
||||||
# Needed to avoid pulling python into production images.
|
# Needed to avoid pulling python into production images.
|
||||||
=sys-auth/sssd-2.9.6-r3 ~arm64
|
=sys-auth/sssd-2.9.6-r3 ~arm64
|
||||||
|
|
||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
|
=sys-boot/gnu-efi-4.0.1 ~arm64
|
||||||
=sys-boot/mokutil-0.7.2 **
|
=sys-boot/mokutil-0.7.2 **
|
||||||
|
|
||||||
# Enable ipvsadm for arm64.
|
# Enable ipvsadm for arm64.
|
||||||
=sys-cluster/ipvsadm-1.31-r1 ~arm64
|
=sys-cluster/ipvsadm-1.31-r1 ~arm64
|
||||||
|
|
||||||
# Keep versions on both arches in sync.
|
# Keep versions on both arches in sync.
|
||||||
=sys-fs/fuse-3.17.2 ~arm64
|
|
||||||
=sys-fs/lxcfs-6.0.4 ~arm64
|
=sys-fs/lxcfs-6.0.4 ~arm64
|
||||||
|
=sys-libs/libcap-2.76 ~arm64
|
||||||
|
=sys-libs/libunwind-1.8.2 ~arm64
|
||||||
=sys-process/audit-4.0.2-r1 ~arm64
|
=sys-process/audit-4.0.2-r1 ~arm64
|
||||||
|
@ -1,4 +1,2 @@
|
|||||||
DIST logrotate-3.21.0.tar.xz 168532 BLAKE2B f7fa0050bde51e2517eac8456ecf87648bc8423621830894ceb2a3ff6b9dfe32c5b53df6a4ee59aa91bd563ed94376a635159535f4fdc170fbc673354bcef508 SHA512 c576df7d2bc1a1db2f99befdd0ea627aef2d97bdcd4a7cdea76870623ba92fb1f04f1af6d15b75e4a9085f4aef2ae5e9843c4094cdd01e24d89872ccaf9c0d4a
|
|
||||||
DIST logrotate-3.21.0.tar.xz.asc 833 BLAKE2B b2099a0b8c15d1ea7f7325884027dff08dcc8305113411448797b8089d17026242a3f10bd6d7f3d865e3e339ec6fb5faf4ff48f8fd65bca3af4da8b335c3b5f1 SHA512 8f4c1853cd84f85c796b72b43048f4cf04e3409703e7669ee91e1d1aa5e9e5c04261fac1cdf85ec303508d5b6dbf126a44eb9ec819bcc772c664830d39e1068c
|
|
||||||
DIST logrotate-3.22.0.tar.xz 172108 BLAKE2B c1c9f1ff792905d2917e9ba3cee360c50259e1520e04073cb69abe475499adcf01aeb3cb4c6933af61255fbb5978577c4fdf9d6ab6ebf9568358d2446791c7f3 SHA512 16fd95b4daef779212008c4a968c7a7130be8d550f58531d24fc04599cb9adff6323a745725b3b14d7312ad36cb6646fe33a3defdb5b70cda2cec9646aab066a
|
DIST logrotate-3.22.0.tar.xz 172108 BLAKE2B c1c9f1ff792905d2917e9ba3cee360c50259e1520e04073cb69abe475499adcf01aeb3cb4c6933af61255fbb5978577c4fdf9d6ab6ebf9568358d2446791c7f3 SHA512 16fd95b4daef779212008c4a968c7a7130be8d550f58531d24fc04599cb9adff6323a745725b3b14d7312ad36cb6646fe33a3defdb5b70cda2cec9646aab066a
|
||||||
DIST logrotate-3.22.0.tar.xz.asc 833 BLAKE2B 379d4fd71c6161211234903560770cf14a7ddf769b83e76ef27ad96d1204e2f4dc73d1e44aa69401db87c252c4471d5bdbace0555dfbb66c8751c20131a7751f SHA512 93664c45bfe9ea20aedc54fe216825db38eaf81d43b238cd7bf8ea3e03f7d282f53743fb6d914766a9ed0cb5b33376435d253db5b9ec7039facd66e25d349dd4
|
DIST logrotate-3.22.0.tar.xz.asc 833 BLAKE2B 379d4fd71c6161211234903560770cf14a7ddf769b83e76ef27ad96d1204e2f4dc73d1e44aa69401db87c252c4471d5bdbace0555dfbb66c8751c20131a7751f SHA512 93664c45bfe9ea20aedc54fe216825db38eaf81d43b238cd7bf8ea3e03f7d282f53743fb6d914766a9ed0cb5b33376435d253db5b9ec7039facd66e25d349dd4
|
||||||
|
@ -1,99 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/kamildudka.asc
|
|
||||||
inherit systemd tmpfiles verify-sig
|
|
||||||
|
|
||||||
DESCRIPTION="Rotates, compresses, and mails system logs"
|
|
||||||
HOMEPAGE="https://github.com/logrotate/logrotate"
|
|
||||||
SRC_URI="https://github.com/${PN}/${PN}/releases/download/${PV}/${P}.tar.xz"
|
|
||||||
SRC_URI+=" verify-sig? ( https://github.com/${PN}/${PN}/releases/download/${PV}/${P}.tar.xz.asc )"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
|
||||||
IUSE="acl +cron selinux"
|
|
||||||
|
|
||||||
DEPEND="
|
|
||||||
>=dev-libs/popt-1.5
|
|
||||||
selinux? ( sys-libs/libselinux )
|
|
||||||
acl? ( virtual/acl )
|
|
||||||
"
|
|
||||||
RDEPEND="
|
|
||||||
${DEPEND}
|
|
||||||
selinux? ( sec-policy/selinux-logrotate )
|
|
||||||
cron? ( virtual/cron )
|
|
||||||
"
|
|
||||||
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-kamildudka )"
|
|
||||||
|
|
||||||
STATEFILE="${EPREFIX}/var/lib/misc/logrotate.status"
|
|
||||||
OLDSTATEFILE="${EPREFIX}/var/lib/logrotate.status"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-3.15.0-ignore-hidden.patch
|
|
||||||
)
|
|
||||||
|
|
||||||
move_old_state_file() {
|
|
||||||
elog "logrotate state file is now located at ${STATEFILE}"
|
|
||||||
elog "See bug #357275"
|
|
||||||
if [[ -e "${OLDSTATEFILE}" ]] ; then
|
|
||||||
elog "Moving your current state file to new location: ${STATEFILE}"
|
|
||||||
mv -n "${OLDSTATEFILE}" "${STATEFILE}" || die
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
install_cron_file() {
|
|
||||||
exeinto /etc/cron.daily
|
|
||||||
newexe "${S}"/examples/logrotate.cron "${PN}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
default
|
|
||||||
|
|
||||||
sed -i -e 's#/usr/sbin/logrotate#/usr/bin/logrotate#' examples/logrotate.{cron,service} || die
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
econf \
|
|
||||||
$(use_with acl) \
|
|
||||||
$(use_with selinux) \
|
|
||||||
--with-state-file-path="${STATEFILE}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
dobin logrotate
|
|
||||||
doman logrotate.8
|
|
||||||
dodoc ChangeLog.md
|
|
||||||
|
|
||||||
insinto /etc
|
|
||||||
doins "${FILESDIR}"/logrotate.conf
|
|
||||||
|
|
||||||
use cron && install_cron_file
|
|
||||||
|
|
||||||
systemd_dounit examples/logrotate.{service,timer}
|
|
||||||
newtmpfiles "${FILESDIR}"/${PN}.tmpfiles ${PN}.conf
|
|
||||||
|
|
||||||
keepdir /etc/logrotate.d
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
elog
|
|
||||||
elog "The ${PN} binary is now installed under /usr/bin. Please"
|
|
||||||
elog "update your links"
|
|
||||||
elog
|
|
||||||
|
|
||||||
move_old_state_file
|
|
||||||
|
|
||||||
tmpfiles_process ${PN}.conf
|
|
||||||
|
|
||||||
if [[ -z ${REPLACING_VERSIONS} ]] ; then
|
|
||||||
elog "If you wish to have logrotate e-mail you updates, please"
|
|
||||||
elog "emerge virtual/mailx and configure logrotate in"
|
|
||||||
elog "/etc/logrotate.conf appropriately"
|
|
||||||
elog
|
|
||||||
elog "Additionally, /etc/logrotate.conf may need to be modified"
|
|
||||||
elog "for your particular needs. See man logrotate for details."
|
|
||||||
fi
|
|
||||||
}
|
|
@ -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
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
EAPI=8
|
EAPI=8
|
||||||
@ -18,13 +18,13 @@ IUSE="acl +cron selinux"
|
|||||||
|
|
||||||
DEPEND="
|
DEPEND="
|
||||||
>=dev-libs/popt-1.5
|
>=dev-libs/popt-1.5
|
||||||
selinux? ( sys-libs/libselinux )
|
|
||||||
acl? ( virtual/acl )
|
acl? ( virtual/acl )
|
||||||
|
selinux? ( sys-libs/libselinux )
|
||||||
"
|
"
|
||||||
RDEPEND="
|
RDEPEND="
|
||||||
${DEPEND}
|
${DEPEND}
|
||||||
selinux? ( sec-policy/selinux-logrotate )
|
|
||||||
cron? ( virtual/cron )
|
cron? ( virtual/cron )
|
||||||
|
selinux? ( sec-policy/selinux-logrotate )
|
||||||
"
|
"
|
||||||
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-cgzones )"
|
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-cgzones )"
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<email>base-system@gentoo.org</email>
|
<email>base-system@gentoo.org</email>
|
||||||
<name>Gentoo Base System</name>
|
<name>Gentoo Base System</name>
|
||||||
</maintainer>
|
</maintainer>
|
||||||
<longdescription lang="en">
|
<longdescription>
|
||||||
Logrotate allows for the automatic rotation compression, removal
|
Logrotate allows for the automatic rotation compression, removal
|
||||||
and mailing of log files. Logrotate can be set to handle a log
|
and mailing of log files. Logrotate can be set to handle a log
|
||||||
file daily, weekly, monthly or when the log file gets to a certain
|
file daily, weekly, monthly or when the log file gets to a certain
|
||||||
@ -19,11 +19,11 @@
|
|||||||
su tamaño alcanza cierto valor.
|
su tamaño alcanza cierto valor.
|
||||||
</longdescription>
|
</longdescription>
|
||||||
<use>
|
<use>
|
||||||
<flag name="acl">Installs acl support</flag>
|
|
||||||
<flag name="cron">Installs cron file</flag>
|
<flag name="cron">Installs cron file</flag>
|
||||||
<flag name="selinux">Installs Security Enhanced Linux support</flag>
|
|
||||||
</use>
|
</use>
|
||||||
<upstream>
|
<upstream>
|
||||||
|
<bugs-to>https://github.com/logrotate/logrotate/issues</bugs-to>
|
||||||
|
<changelog>https://github.com/logrotate/logrotate/releases</changelog>
|
||||||
<remote-id type="github">logrotate/logrotate</remote-id>
|
<remote-id type="github">logrotate/logrotate</remote-id>
|
||||||
<remote-id type="cpe">cpe:/a:logrotate_project:logrotate</remote-id>
|
<remote-id type="cpe">cpe:/a:logrotate_project:logrotate</remote-id>
|
||||||
</upstream>
|
</upstream>
|
||||||
|
@ -1,2 +1,4 @@
|
|||||||
DIST sudo-1.9.16p2.tar.gz 5398419 BLAKE2B ef9f1c2cd4044454a808d1dff5f865355e1bd061d1b5c93a005207e28e9b9df7c267cf01358ce60dd2c98f6844b51dab00eac4e7a08bade1d621235c3a4774bf SHA512 1e2ea762671890a03b0ea4b95b3849f2d3a4c301432db8767433e9d80c517efd8b7a68e0bbce1b178aff5857907600f1f5e0d889779cb27e38c2f602395f6f06
|
DIST sudo-1.9.16p2.tar.gz 5398419 BLAKE2B ef9f1c2cd4044454a808d1dff5f865355e1bd061d1b5c93a005207e28e9b9df7c267cf01358ce60dd2c98f6844b51dab00eac4e7a08bade1d621235c3a4774bf SHA512 1e2ea762671890a03b0ea4b95b3849f2d3a4c301432db8767433e9d80c517efd8b7a68e0bbce1b178aff5857907600f1f5e0d889779cb27e38c2f602395f6f06
|
||||||
DIST sudo-1.9.16p2.tar.gz.sig 566 BLAKE2B 90f90658a7d6ec3b32f6a726a2cd28e156826a65749a88a2a29d970e97804d2d75de856bc85c9a459233b59e35564c5fbf93aff53ffe42d17d0e94dd23724acd SHA512 7f0e3269c9befada535590b2cfc36f96cd70831b5c030df5b3bf8c7cb3eff296d22193429f940db4a0df849b4d8080e4006086c49869b4bbae663836b2632b49
|
DIST sudo-1.9.16p2.tar.gz.sig 566 BLAKE2B 90f90658a7d6ec3b32f6a726a2cd28e156826a65749a88a2a29d970e97804d2d75de856bc85c9a459233b59e35564c5fbf93aff53ffe42d17d0e94dd23724acd SHA512 7f0e3269c9befada535590b2cfc36f96cd70831b5c030df5b3bf8c7cb3eff296d22193429f940db4a0df849b4d8080e4006086c49869b4bbae663836b2632b49
|
||||||
|
DIST sudo-1.9.17.tar.gz 5447899 BLAKE2B d9f2e0d8bca5d5dba5f78a9c064454032038fa60dae022ce72dd0d262bc4bd756fcc5a8e5b0ab4e179c3786fc86a401f7f1ba6d45ca4fe02e43d5cacb1e7f022 SHA512 e94df174ca63a828d953d8400d7e68f8cb86119ca1cd845567b7b452d09bef806a6bd0a6cfc232acfdf7c85aa915f2897b29990c7df89b36c92c62aa469cd7a7
|
||||||
|
DIST sudo-1.9.17.tar.gz.sig 566 BLAKE2B c7543ab8f3a20a27eb2df6b4b6f0aa69d657cbc5d88ea4377ec28b5ef77ec137b7a88a9f28d7051a0ce95493e4c860a01a1cb7e081563183850f4d704805336e SHA512 c03534cf696f300c4434ad2053267b586d3a01459269206632c3c8f348469d3b40d7b4ace30373203c539e2f69b94402d6d2b96da1427d7e872509e4e8029812
|
||||||
|
289
sdk_container/src/third_party/portage-stable/app-admin/sudo/sudo-1.9.17.ebuild
vendored
Normal file
289
sdk_container/src/third_party/portage-stable/app-admin/sudo/sudo-1.9.17.ebuild
vendored
Normal file
@ -0,0 +1,289 @@
|
|||||||
|
# Copyright 1999-2025 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit pam tmpfiles toolchain-funcs
|
||||||
|
|
||||||
|
MY_P="${P/_/}"
|
||||||
|
MY_P="${MY_P/beta/b}"
|
||||||
|
|
||||||
|
DESCRIPTION="Allows users or groups to run commands as other users"
|
||||||
|
HOMEPAGE="https://www.sudo.ws/"
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
|
inherit autotools mercurial
|
||||||
|
EHG_REPO_URI="https://www.sudo.ws/repos/sudo"
|
||||||
|
else
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/sudo.ws.asc
|
||||||
|
inherit libtool verify-sig
|
||||||
|
|
||||||
|
uri_prefix=
|
||||||
|
case ${P} in
|
||||||
|
*_beta*|*_rc*) uri_prefix=beta/ ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
SRC_URI="
|
||||||
|
https://www.sudo.ws/sudo/dist/${uri_prefix}${MY_P}.tar.gz
|
||||||
|
verify-sig? (
|
||||||
|
https://www.sudo.ws/sudo/dist/${uri_prefix}${MY_P}.tar.gz.sig
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
if [[ ${PV} != *_beta* && ${PV} != *_rc* ]] ; then
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
fi
|
||||||
|
|
||||||
|
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-sudo )"
|
||||||
|
fi
|
||||||
|
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
# Basic license is ISC-style as-is, some files are released under
|
||||||
|
# 3-clause BSD license
|
||||||
|
LICENSE="ISC BSD"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="gcrypt ldap nls offensive pam sasl +secure-path selinux +sendmail skey ssl sssd"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
sys-libs/zlib:=
|
||||||
|
virtual/libcrypt:=
|
||||||
|
gcrypt? ( dev-libs/libgcrypt:= )
|
||||||
|
ldap? (
|
||||||
|
>=net-nds/openldap-2.1.30-r1:=
|
||||||
|
sasl? (
|
||||||
|
dev-libs/cyrus-sasl
|
||||||
|
net-nds/openldap:=[sasl]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
pam? ( sys-libs/pam )
|
||||||
|
sasl? ( dev-libs/cyrus-sasl )
|
||||||
|
selinux? ( sys-libs/libselinux )
|
||||||
|
skey? ( >=sys-auth/skey-1.1.5-r1 )
|
||||||
|
ssl? ( dev-libs/openssl:= )
|
||||||
|
sssd? ( sys-auth/sssd[sudo(+)] )
|
||||||
|
"
|
||||||
|
RDEPEND="
|
||||||
|
${DEPEND}
|
||||||
|
>=app-misc/editor-wrapper-3
|
||||||
|
virtual/editor
|
||||||
|
ldap? ( dev-lang/perl )
|
||||||
|
pam? ( sys-auth/pambase )
|
||||||
|
selinux? ( sec-policy/selinux-sudo )
|
||||||
|
sendmail? ( virtual/mta )
|
||||||
|
"
|
||||||
|
BDEPEND+="
|
||||||
|
app-alternatives/yacc
|
||||||
|
virtual/pkgconfig
|
||||||
|
"
|
||||||
|
|
||||||
|
REQUIRED_USE="
|
||||||
|
?? ( pam skey )
|
||||||
|
?? ( gcrypt ssl )
|
||||||
|
"
|
||||||
|
|
||||||
|
MAKEOPTS+=" SAMPLES="
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
|
eautoreconf
|
||||||
|
else
|
||||||
|
elibtoolize
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
set_secure_path() {
|
||||||
|
# First extract the default ROOTPATH from build env
|
||||||
|
SECURE_PATH=$(unset ROOTPATH; . "${EPREFIX}"/etc/profile.env; echo "${ROOTPATH}")
|
||||||
|
|
||||||
|
case "${SECURE_PATH}" in
|
||||||
|
*/usr/sbin*)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
SECURE_PATH=$(unset PATH; . "${EPREFIX}"/etc/profile.env; echo "${PATH}")
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [[ -z ${SECURE_PATH} ]] ; then
|
||||||
|
ewarn " Failed to detect SECURE_PATH, please report this"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Then remove duplicate path entries
|
||||||
|
cleanpath() {
|
||||||
|
local newpath thisp IFS=:
|
||||||
|
for thisp in $1 ; do
|
||||||
|
if [[ :${newpath}: != *:${thisp}:* ]] ; then
|
||||||
|
newpath+=:${thisp}
|
||||||
|
else
|
||||||
|
einfo " Duplicate entry ${thisp} removed..."
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
SECURE_PATH=${newpath#:}
|
||||||
|
}
|
||||||
|
cleanpath /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin${SECURE_PATH:+:${SECURE_PATH}}
|
||||||
|
|
||||||
|
# Finally, strip gcc paths, bug #136027
|
||||||
|
rmpath() {
|
||||||
|
local e newpath thisp IFS=:
|
||||||
|
for thisp in ${SECURE_PATH} ; do
|
||||||
|
for e ; do
|
||||||
|
[[ ${thisp} == ${e} ]] && continue 2 ;
|
||||||
|
done
|
||||||
|
newpath+=:${thisp}
|
||||||
|
done
|
||||||
|
SECURE_PATH=${newpath#:}
|
||||||
|
}
|
||||||
|
rmpath '*/gcc-bin/*' '*/gnat-gcc-bin/*' '*/gnat-gcc/*'
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local SECURE_PATH
|
||||||
|
|
||||||
|
set_secure_path
|
||||||
|
|
||||||
|
# bug #767712
|
||||||
|
tc-export PKG_CONFIG
|
||||||
|
|
||||||
|
# - audit: somebody got to explain me how I can test this before I
|
||||||
|
# enable it.. - Diego
|
||||||
|
# - plugindir: autoconf code is crappy and does not delay evaluation
|
||||||
|
# until `make` time, so we have to use a full path here rather than
|
||||||
|
# basing off other values.
|
||||||
|
local myeconfargs=(
|
||||||
|
# We set all of the relevant options by ourselves (patched
|
||||||
|
# into the toolchain) and setting these in the build system
|
||||||
|
# actually causes a downgrade when using e.g. -D_FORTIFY_SOURCE=3
|
||||||
|
# (it'll downgrade to =2). So, this has no functional effect on
|
||||||
|
# the hardening for users. It's safe.
|
||||||
|
--disable-hardening
|
||||||
|
|
||||||
|
# requires some python eclass
|
||||||
|
--disable-python
|
||||||
|
--enable-tmpfiles.d="${EPREFIX}"/usr/lib/tmpfiles.d
|
||||||
|
--enable-zlib=system
|
||||||
|
--with-editor="${EPREFIX}"/usr/libexec/editor
|
||||||
|
--with-env-editor
|
||||||
|
--with-plugindir="${EPREFIX}"/usr/$(get_libdir)/sudo
|
||||||
|
--with-rundir="${EPREFIX}"/run/sudo
|
||||||
|
--with-vardir="${EPREFIX}"/var/db/sudo
|
||||||
|
--without-linux-audit
|
||||||
|
--without-opie
|
||||||
|
$(use_enable gcrypt)
|
||||||
|
$(use_enable nls)
|
||||||
|
$(use_enable sasl)
|
||||||
|
$(use_enable ssl openssl)
|
||||||
|
$(use_with ldap)
|
||||||
|
$(use_with ldap ldap_conf_file /etc/ldap.conf.sudo)
|
||||||
|
$(use_with offensive insults)
|
||||||
|
$(use_with offensive all-insults)
|
||||||
|
$(use_with pam)
|
||||||
|
$(use_with pam pam-login)
|
||||||
|
$(use_with secure-path)
|
||||||
|
"$(use_with secure-path secure-path-value "${SECURE_PATH}")"
|
||||||
|
$(use_with selinux)
|
||||||
|
$(use_with sendmail)
|
||||||
|
$(use_with skey)
|
||||||
|
$(use_with sssd)
|
||||||
|
)
|
||||||
|
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
default
|
||||||
|
|
||||||
|
if use ldap ; then
|
||||||
|
dodoc README.LDAP.md
|
||||||
|
|
||||||
|
cat <<-EOF > "${T}"/ldap.conf.sudo
|
||||||
|
# See ldap.conf(5) and README.LDAP.md for details
|
||||||
|
# This file should only be readable by root
|
||||||
|
|
||||||
|
# supported directives: host, port, ssl, ldap_version
|
||||||
|
# uri, binddn, bindpw, sudoers_base, sudoers_debug
|
||||||
|
# tls_{checkpeer,cacertfile,cacertdir,randfile,ciphers,cert,key}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
if use sasl ; then
|
||||||
|
cat <<-EOF >> "${T}"/ldap.conf.sudo
|
||||||
|
|
||||||
|
# SASL directives: use_sasl, sasl_mech, sasl_auth_id
|
||||||
|
# sasl_secprops, rootuse_sasl, rootsasl_auth_id, krb5_ccname
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto /etc
|
||||||
|
doins "${T}"/ldap.conf.sudo
|
||||||
|
fperms 0440 /etc/ldap.conf.sudo
|
||||||
|
|
||||||
|
insinto /etc/openldap/schema
|
||||||
|
newins docs/schema.OpenLDAP sudo.schema
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use pam ; then
|
||||||
|
pamd_mimic system-auth sudo auth account session
|
||||||
|
pamd_mimic system-auth sudo-i auth account session
|
||||||
|
fi
|
||||||
|
|
||||||
|
keepdir /var/db/sudo/lectured
|
||||||
|
fperms 0700 /var/db/sudo/lectured
|
||||||
|
# bug #652958
|
||||||
|
fperms 0711 /var/db/sudo
|
||||||
|
|
||||||
|
# Don't install into /run as that is a tmpfs most of the time
|
||||||
|
# (bug #504854)
|
||||||
|
rm -rf "${ED}"/run || die
|
||||||
|
|
||||||
|
# bug #697812
|
||||||
|
find "${ED}" -type f -name "*.la" -delete || die
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
tmpfiles_process sudo.conf
|
||||||
|
|
||||||
|
# bug #652958
|
||||||
|
local sudo_db="${EROOT}/var/db/sudo"
|
||||||
|
if [[ "$(stat -c %a "${sudo_db}")" -ne 711 ]] ; then
|
||||||
|
chmod 711 "${sudo_db}" || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use ldap ; then
|
||||||
|
ewarn
|
||||||
|
ewarn "sudo uses the ${ROOT}/etc/ldap.conf.sudo file for ldap configuration."
|
||||||
|
ewarn
|
||||||
|
if grep -qs '^[[:space:]]*sudoers:' "${ROOT}"/etc/nsswitch.conf ; then
|
||||||
|
ewarn "In 1.7 series, LDAP is no more consulted, unless explicitly"
|
||||||
|
ewarn "configured in ${ROOT}/etc/nsswitch.conf."
|
||||||
|
ewarn
|
||||||
|
ewarn "To make use of LDAP, add this line to your ${ROOT}/etc/nsswitch.conf:"
|
||||||
|
ewarn " sudoers: ldap files"
|
||||||
|
ewarn
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if use prefix ; then
|
||||||
|
ewarn
|
||||||
|
ewarn "To use sudo on Prefix, you need to change file ownership and permissions"
|
||||||
|
ewarn "with root privileges, as follows:"
|
||||||
|
ewarn
|
||||||
|
ewarn " # chown root:root ${EPREFIX}/usr/bin/sudo"
|
||||||
|
ewarn " # chown root:root ${EPREFIX}/usr/lib/sudo/sudoers.so"
|
||||||
|
ewarn " # chown root:root ${EPREFIX}/etc/sudoers"
|
||||||
|
ewarn " # chown root:root ${EPREFIX}/etc/sudoers.d"
|
||||||
|
ewarn " # chown root:root ${EPREFIX}/var/db/sudo"
|
||||||
|
ewarn " # chmod 4111 ${EPREFIX}/usr/bin/sudo"
|
||||||
|
ewarn
|
||||||
|
fi
|
||||||
|
|
||||||
|
elog "To use the -A (askpass) option, you need to install a compatible"
|
||||||
|
elog "password program from the following list. Starred packages will"
|
||||||
|
elog "automatically register for the use with sudo (but will not force"
|
||||||
|
elog "the -A option):"
|
||||||
|
elog ""
|
||||||
|
elog " [*] net-misc/ssh-askpass-fullscreen"
|
||||||
|
elog " net-misc/x11-ssh-askpass"
|
||||||
|
elog ""
|
||||||
|
elog "You can override the choice by setting the SUDO_ASKPASS environmnent"
|
||||||
|
elog "variable to the program you want to use."
|
||||||
|
}
|
@ -16,7 +16,7 @@ SRC_URI="
|
|||||||
|
|
||||||
LICENSE="BSD BSD-2 BSD-4 public-domain"
|
LICENSE="BSD BSD-2 BSD-4 public-domain"
|
||||||
SLOT="0/13"
|
SLOT="0/13"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
IUSE="
|
IUSE="
|
||||||
acl blake2 +bzip2 +e2fsprogs expat +iconv lz4 +lzma lzo nettle
|
acl blake2 +bzip2 +e2fsprogs expat +iconv lz4 +lzma lzo nettle
|
||||||
static-libs test xattr +zstd
|
static-libs test xattr +zstd
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI="7"
|
|
||||||
|
|
||||||
inherit toolchain-funcs
|
|
||||||
|
|
||||||
DESCRIPTION="Classic compress & uncompress programs for .Z (LZW) files"
|
|
||||||
HOMEPAGE="https://vapier.github.io/ncompress/"
|
|
||||||
SRC_URI="https://github.com/vapier/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
|
||||||
|
|
||||||
LICENSE="public-domain"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
|
||||||
IUSE=""
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
default
|
|
||||||
# First sed expression replaces hardlinking with
|
|
||||||
# symlinking. Second sed expression fixes the symlink target
|
|
||||||
# to use relative path to a file in the same directory as the
|
|
||||||
# symlink (so point to compress instead of
|
|
||||||
# $(DESTDIR)$(BINDIR)/compress).
|
|
||||||
sed -i \
|
|
||||||
-e 's:\bln :ln -s :' \
|
|
||||||
-e 's:\(\bln [^$]*\)\$(DESTDIR)\$(BINDIR)/:\1:' \
|
|
||||||
Makefile.def || die
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
tc-export CC
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
emake install_core DESTDIR="${ED}" PREFIX="/usr"
|
|
||||||
dodoc Acknowleds Changes LZW.INFO README.md
|
|
||||||
}
|
|
@ -11,7 +11,7 @@ SRC_URI="https://github.com/containerd/containerd/archive/v${PV}.tar.gz -> ${P}.
|
|||||||
|
|
||||||
LICENSE="Apache-2.0"
|
LICENSE="Apache-2.0"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
|
KEYWORDS="amd64 ~arm ~arm64 ppc64 ~riscv ~x86"
|
||||||
IUSE="apparmor btrfs device-mapper +cri hardened +seccomp selinux test"
|
IUSE="apparmor btrfs device-mapper +cri hardened +seccomp selinux test"
|
||||||
|
|
||||||
COMMON_DEPEND="
|
COMMON_DEPEND="
|
||||||
|
@ -14,7 +14,7 @@ if [[ ${PV} == 9999* ]]; then
|
|||||||
else
|
else
|
||||||
SRC_URI="https://github.com/containers/common/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
SRC_URI="https://github.com/containers/common/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
S="${WORKDIR}/${P#containers-}"
|
S="${WORKDIR}/${P#containers-}"
|
||||||
KEYWORDS="~amd64 ~arm64 ~loong ~riscv"
|
KEYWORDS="amd64 ~arm64 ~loong ~riscv"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LICENSE="Apache-2.0"
|
LICENSE="Apache-2.0"
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
DIST crun-1.14.3.tar.xz 750456 BLAKE2B 5a63b5da2f85ff1a83d4589be224c5b7a1123b6d7714b90a63c1907b78d42392aff25ffe5d9a4127173ac47026d57e9c93a39f5ba4b07de7f9f3722c14e6d203 SHA512 d6645c519ff00dda5def6d58240600d15e76969489918d51c0def2fee7dbad6374f83e5afc14a998d176aa2944765df5cd84c3031b265a1931ab23f2fc965fc1
|
|
||||||
DIST crun-1.16.tar.gz 1759549 BLAKE2B 1dfdf9177ae52e627c92e70e48a558bb355c87f629e95f1debaf6b7d8c38802110bd796545d5b2dbe3cac7f8de1f9c94e9b5f046cc618e73afd4c434188d585c SHA512 718e17abdb8c2a9e1fdd39f09e7e3e435d88c5785cc13c1e67f492847d7d938cf399aecc055ecf88720fa8f73b8539f057e3b0e53f10f4e382f5664a2243b959
|
|
||||||
DIST crun-1.17.tar.gz 1773153 BLAKE2B 9f75cb6879e0b8cd47bb8939c1cf6f88d5e13e6d8932c652ea20c64501bc69fbda84dd061866a9c08e353848f39d1022bf67fbc0d160d5ef7fdc08c1edec03f9 SHA512 7556467c5e0e93bb7321e2e88de8a2f537340e3e0acaa5501eab8deb0f4bb93c4561f8d063156789d3ee98fdd49069fc52c0ed0c773bd44db476eeeccc16aa1a
|
|
||||||
DIST crun-1.19.1.tar.gz 1786019 BLAKE2B 555f7c917c9e9ed80919b708cd711890d47c395b5b6fa1c2b542d311176941c5ece23bd7ff0cb4c3dcf81be4f46fec21fa8127da57092657157707537771dfe1 SHA512 6cb6148a3b6e18b4dbb0178ea23eaaa57c040781a34b5c5c5dac71be513941717011fe996a7400b9dee0a73f7f0dd2fc36544fe72382a3f2543e4de90589fe6a
|
DIST crun-1.19.1.tar.gz 1786019 BLAKE2B 555f7c917c9e9ed80919b708cd711890d47c395b5b6fa1c2b542d311176941c5ece23bd7ff0cb4c3dcf81be4f46fec21fa8127da57092657157707537771dfe1 SHA512 6cb6148a3b6e18b4dbb0178ea23eaaa57c040781a34b5c5c5dac71be513941717011fe996a7400b9dee0a73f7f0dd2fc36544fe72382a3f2543e4de90589fe6a
|
||||||
DIST crun-1.20.tar.gz 1787750 BLAKE2B 4f31c21056c6c764c76021d3121dfaa4dd9b91f17def977238df831af02f27aff267cf22c3f1ade4f332d757ffc50cc98a480aea7cd67b3552f19ba5c810c3f8 SHA512 759326768a9a141ecaec5824e3c30cade0a0c7d848935d434cada4fdc5a59a992f1916515141a84387cdb95ee1307f5bec471679d7ff9b403b0cb2b10c7dfd74
|
DIST crun-1.20.tar.gz 1787750 BLAKE2B 4f31c21056c6c764c76021d3121dfaa4dd9b91f17def977238df831af02f27aff267cf22c3f1ade4f332d757ffc50cc98a480aea7cd67b3552f19ba5c810c3f8 SHA512 759326768a9a141ecaec5824e3c30cade0a0c7d848935d434cada4fdc5a59a992f1916515141a84387cdb95ee1307f5bec471679d7ff9b403b0cb2b10c7dfd74
|
||||||
|
DIST crun-1.21.tar.gz 1788933 BLAKE2B bc854f8eb24566d608e90b44cb7dd2509b59cf6594eef244839f15beef2d241eab7149aabcf2156694043ab00367e312f58599deb324b85493555958eedaf849 SHA512 dbec4b55645587046a83903822a00b93092b26fdf36d6df9b086674815b53a9a60f907c1611eb9535f3186a03d6e8a98ae6e40e9f4e287855ea17745c3578d4f
|
||||||
|
@ -1,71 +0,0 @@
|
|||||||
# Copyright 2019-2025 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{10..12} )
|
|
||||||
|
|
||||||
inherit libtool python-any-r1
|
|
||||||
|
|
||||||
DESCRIPTION="A fast and low-memory footprint OCI Container Runtime fully written in C"
|
|
||||||
HOMEPAGE="https://github.com/containers/crun"
|
|
||||||
|
|
||||||
if [[ "$PV" == *9999* ]]; then
|
|
||||||
inherit git-r3
|
|
||||||
EGIT_REPO_URI="https://github.com/containers/${PN}.git"
|
|
||||||
else
|
|
||||||
SRC_URI="https://github.com/containers/${PN}/releases/download/${PV}/${P}.tar.xz"
|
|
||||||
KEYWORDS="amd64 ~arm arm64 ppc64 ~riscv"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="GPL-2+ LGPL-2.1+"
|
|
||||||
SLOT="0"
|
|
||||||
IUSE="+bpf +caps criu +seccomp selinux systemd static-libs"
|
|
||||||
|
|
||||||
DEPEND="
|
|
||||||
dev-libs/yajl:=
|
|
||||||
sys-kernel/linux-headers
|
|
||||||
caps? ( sys-libs/libcap )
|
|
||||||
criu? ( >=sys-process/criu-3.15 )
|
|
||||||
elibc_musl? ( sys-libs/argp-standalone[static-libs] )
|
|
||||||
seccomp? ( sys-libs/libseccomp )
|
|
||||||
systemd? ( sys-apps/systemd:= )
|
|
||||||
"
|
|
||||||
RDEPEND="${DEPEND}
|
|
||||||
selinux? ( sec-policy/selinux-container )"
|
|
||||||
BDEPEND="
|
|
||||||
${PYTHON_DEPS}
|
|
||||||
virtual/pkgconfig
|
|
||||||
"
|
|
||||||
|
|
||||||
# the crun test suite is comprehensive to the extent that tests will fail
|
|
||||||
# within a sandbox environment, due to the nature of the privileges
|
|
||||||
# required to create linux "containers".
|
|
||||||
RESTRICT="test"
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
default
|
|
||||||
elibtoolize
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local myeconfargs=(
|
|
||||||
$(use_enable bpf)
|
|
||||||
$(use_enable caps)
|
|
||||||
$(use_enable criu)
|
|
||||||
$(use_enable seccomp)
|
|
||||||
$(use_enable systemd)
|
|
||||||
$(usex static-libs '--enable-shared --enable-static' '--enable-shared --disable-static' '' '')
|
|
||||||
)
|
|
||||||
|
|
||||||
econf "${myeconfargs[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
emake "DESTDIR=${D}" install-exec
|
|
||||||
doman crun.1
|
|
||||||
einstalldocs
|
|
||||||
|
|
||||||
einfo "Cleaning up .la files"
|
|
||||||
find "${ED}" -name '*.la' -delete || die
|
|
||||||
}
|
|
@ -1,81 +0,0 @@
|
|||||||
# Copyright 2019-2025 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{10..13} )
|
|
||||||
|
|
||||||
inherit libtool python-any-r1
|
|
||||||
|
|
||||||
DESCRIPTION="A fast and low-memory footprint OCI Container Runtime fully written in C"
|
|
||||||
HOMEPAGE="https://github.com/containers/crun"
|
|
||||||
|
|
||||||
if [[ "$PV" == *9999* ]]; then
|
|
||||||
inherit git-r3
|
|
||||||
EGIT_REPO_URI="https://github.com/containers/${PN}.git"
|
|
||||||
else
|
|
||||||
SRC_URI="https://github.com/containers/${PN}/releases/download/${PV}/${P}.tar.gz"
|
|
||||||
KEYWORDS="amd64 ~arm arm64 ~loong ppc64 ~riscv"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="GPL-2+ LGPL-2.1+"
|
|
||||||
SLOT="0"
|
|
||||||
IUSE="+bpf +caps criu +seccomp selinux systemd static-libs"
|
|
||||||
|
|
||||||
DEPEND="
|
|
||||||
dev-libs/yajl:=
|
|
||||||
sys-kernel/linux-headers
|
|
||||||
caps? ( sys-libs/libcap )
|
|
||||||
criu? ( >=sys-process/criu-3.15 )
|
|
||||||
seccomp? ( sys-libs/libseccomp )
|
|
||||||
systemd? ( sys-apps/systemd:= )
|
|
||||||
"
|
|
||||||
RDEPEND="${DEPEND}
|
|
||||||
selinux? ( sec-policy/selinux-container )"
|
|
||||||
BDEPEND="
|
|
||||||
${PYTHON_DEPS}
|
|
||||||
virtual/pkgconfig
|
|
||||||
"
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
default
|
|
||||||
elibtoolize
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local myeconfargs=(
|
|
||||||
--cache-file="${S}"/config.cache
|
|
||||||
$(use_enable bpf)
|
|
||||||
$(use_enable caps)
|
|
||||||
$(use_enable criu)
|
|
||||||
$(use_enable seccomp)
|
|
||||||
$(use_enable systemd)
|
|
||||||
$(usex static-libs '--enable-shared --enable-static' '--enable-shared --disable-static' '' '')
|
|
||||||
)
|
|
||||||
|
|
||||||
econf "${myeconfargs[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
emake check-TESTS -C ./libocispec
|
|
||||||
|
|
||||||
# the crun test suite is comprehensive to the extent that tests will fail
|
|
||||||
# within a sandbox environment, due to the nature of the privileges
|
|
||||||
# required to create linux "containers".
|
|
||||||
local supported_tests=(
|
|
||||||
"tests/tests_libcrun_utils"
|
|
||||||
"tests/tests_libcrun_errors"
|
|
||||||
"tests/tests_libcrun_intelrdt"
|
|
||||||
"tests/test_oci_features"
|
|
||||||
)
|
|
||||||
emake check-TESTS TESTS="${supported_tests[*]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
emake "DESTDIR=${D}" install-exec
|
|
||||||
doman crun.1
|
|
||||||
einstalldocs
|
|
||||||
|
|
||||||
einfo "Cleaning up .la files"
|
|
||||||
find "${ED}" -name '*.la' -delete || die
|
|
||||||
}
|
|
@ -15,7 +15,7 @@ if [[ "$PV" == *9999* ]]; then
|
|||||||
EGIT_REPO_URI="https://github.com/containers/${PN}.git"
|
EGIT_REPO_URI="https://github.com/containers/${PN}.git"
|
||||||
else
|
else
|
||||||
SRC_URI="https://github.com/containers/${PN}/releases/download/${PV}/${P}.tar.gz"
|
SRC_URI="https://github.com/containers/${PN}/releases/download/${PV}/${P}.tar.gz"
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv"
|
KEYWORDS="amd64 ~arm ~arm64 ~loong ppc64 ~riscv"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LICENSE="GPL-2+ LGPL-2.1+"
|
LICENSE="GPL-2+ LGPL-2.1+"
|
||||||
|
@ -3,14 +3,14 @@
|
|||||||
|
|
||||||
EAPI=8
|
EAPI=8
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{10..13} )
|
PYTHON_COMPAT=( python3_{11..14} )
|
||||||
|
|
||||||
inherit libtool python-any-r1
|
inherit libtool python-any-r1
|
||||||
|
|
||||||
DESCRIPTION="A fast and low-memory footprint OCI Container Runtime fully written in C"
|
DESCRIPTION="Fast and low-memory footprint OCI Container Runtime fully written in C"
|
||||||
HOMEPAGE="https://github.com/containers/crun"
|
HOMEPAGE="https://github.com/containers/crun"
|
||||||
|
|
||||||
if [[ "$PV" == *9999* ]]; then
|
if [[ "${PV}" == *9999* ]]; then
|
||||||
inherit git-r3
|
inherit git-r3
|
||||||
EGIT_REPO_URI="https://github.com/containers/${PN}.git"
|
EGIT_REPO_URI="https://github.com/containers/${PN}.git"
|
||||||
else
|
else
|
||||||
@ -30,8 +30,10 @@ DEPEND="
|
|||||||
seccomp? ( sys-libs/libseccomp )
|
seccomp? ( sys-libs/libseccomp )
|
||||||
systemd? ( sys-apps/systemd:= )
|
systemd? ( sys-apps/systemd:= )
|
||||||
"
|
"
|
||||||
RDEPEND="${DEPEND}
|
RDEPEND="
|
||||||
selinux? ( sec-policy/selinux-container )"
|
${DEPEND}
|
||||||
|
selinux? ( sec-policy/selinux-container )
|
||||||
|
"
|
||||||
BDEPEND="
|
BDEPEND="
|
||||||
${PYTHON_DEPS}
|
${PYTHON_DEPS}
|
||||||
virtual/pkgconfig
|
virtual/pkgconfig
|
||||||
@ -44,37 +46,37 @@ src_prepare() {
|
|||||||
|
|
||||||
src_configure() {
|
src_configure() {
|
||||||
local myeconfargs=(
|
local myeconfargs=(
|
||||||
|
--cache-file="${S}"/config.cache
|
||||||
$(use_enable bpf)
|
$(use_enable bpf)
|
||||||
$(use_enable caps)
|
$(use_enable caps)
|
||||||
$(use_enable criu)
|
$(use_enable criu)
|
||||||
$(use_enable seccomp)
|
$(use_enable seccomp)
|
||||||
$(use_enable systemd)
|
$(use_enable systemd)
|
||||||
$(usex static-libs '--enable-shared --enable-static' '--enable-shared --disable-static' '' '')
|
--enable-shared
|
||||||
|
$(use_enable static-libs static)
|
||||||
)
|
)
|
||||||
|
|
||||||
econf "${myeconfargs[@]}"
|
econf "${myeconfargs[@]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
emake check-TESTS -C ./libocispec
|
||||||
|
|
||||||
|
# The crun test suite is comprehensive to the extent that tests will fail
|
||||||
|
# within a sandbox environment, due to the nature of the privileges
|
||||||
|
# required to create linux "containers".
|
||||||
|
local supported_tests=(
|
||||||
|
"tests/tests_libcrun_utils"
|
||||||
|
"tests/tests_libcrun_errors"
|
||||||
|
"tests/tests_libcrun_intelrdt"
|
||||||
|
)
|
||||||
|
emake check-TESTS TESTS="${supported_tests[*]}" CFLAGS="${CFLAGS} -std=gnu17"
|
||||||
|
}
|
||||||
|
|
||||||
src_install() {
|
src_install() {
|
||||||
emake "DESTDIR=${D}" install-exec
|
emake "DESTDIR=${D}" install-exec
|
||||||
doman crun.1
|
doman crun.1
|
||||||
einstalldocs
|
einstalldocs
|
||||||
|
|
||||||
einfo "Cleaning up .la files"
|
find "${ED}" -name '*.la' -type f -delete || die
|
||||||
find "${ED}" -name '*.la' -delete || die
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
emake check-TESTS -C ./libocispec
|
|
||||||
|
|
||||||
# the crun test suite is comprehensive to the extent that tests will fail
|
|
||||||
# within a sandbox environment, due to the nature of the privileges
|
|
||||||
# required to create linux "containers".
|
|
||||||
local supported_tests=(
|
|
||||||
"tests/tests_libcrun_utils"
|
|
||||||
"tests/tests_libcrun_errors"
|
|
||||||
"tests/tests_libcrun_intelrdt"
|
|
||||||
"tests/test_oci_features"
|
|
||||||
)
|
|
||||||
emake check-TESTS TESTS="${supported_tests[*]}"
|
|
||||||
}
|
}
|
@ -23,7 +23,7 @@ S="${WORKDIR}/cli-${PV}"
|
|||||||
|
|
||||||
LICENSE="Apache-2.0"
|
LICENSE="Apache-2.0"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
|
KEYWORDS="amd64 ~arm ~arm64 ~loong ppc64 ~riscv ~x86"
|
||||||
IUSE="hardened selinux"
|
IUSE="hardened selinux"
|
||||||
|
|
||||||
RDEPEND="selinux? ( sec-policy/selinux-docker )"
|
RDEPEND="selinux? ( sec-policy/selinux-docker )"
|
||||||
|
@ -15,7 +15,7 @@ S="${WORKDIR}/moby-${PV}"
|
|||||||
|
|
||||||
LICENSE="Apache-2.0"
|
LICENSE="Apache-2.0"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
|
KEYWORDS="amd64 ~arm ~arm64 ppc64 ~riscv ~x86"
|
||||||
IUSE="apparmor btrfs +container-init cuda +overlay2 seccomp selinux systemd"
|
IUSE="apparmor btrfs +container-init cuda +overlay2 seccomp selinux systemd"
|
||||||
|
|
||||||
DEPEND="
|
DEPEND="
|
||||||
|
@ -2,7 +2,5 @@ DIST incus-6.0.3.tar.xz 11916020 BLAKE2B d3d998bd50124604c52ff007eefed586c216ce1
|
|||||||
DIST incus-6.0.3.tar.xz.asc 833 BLAKE2B 38835ab036709161150992cb40df4ff1ae1887d4f3e0b037d0415f75d2bb711cb3c5945bffe1b91d289acfb7e19e726964278e5c2ab31731ba9f7534f139dec7 SHA512 7d5360ab91aafe1d047a60e38a07e24c3c7b158e753087a943ec5e59d6a27c19a872080c9007b6cf592040d3408845bc188d76f6e732408d0680a3782cebce47
|
DIST incus-6.0.3.tar.xz.asc 833 BLAKE2B 38835ab036709161150992cb40df4ff1ae1887d4f3e0b037d0415f75d2bb711cb3c5945bffe1b91d289acfb7e19e726964278e5c2ab31731ba9f7534f139dec7 SHA512 7d5360ab91aafe1d047a60e38a07e24c3c7b158e753087a943ec5e59d6a27c19a872080c9007b6cf592040d3408845bc188d76f6e732408d0680a3782cebce47
|
||||||
DIST incus-6.0.4.tar.xz 12000208 BLAKE2B 99a4ba40d2eea48515b88f4534c282adc925fe1b5487dc98901f000894b3781aec89f617d2246314cf9a95a7d65531e486c4092f8939722e1b3c2bf7d33063c8 SHA512 14a5cdad3f9365d58e526c8f451d9e7a57729010073caff31256e0b94d28206adc82ead4820278e7eac17b74d22a76d9f3b9f5f8424ddbfa6b74a5cea13e019f
|
DIST incus-6.0.4.tar.xz 12000208 BLAKE2B 99a4ba40d2eea48515b88f4534c282adc925fe1b5487dc98901f000894b3781aec89f617d2246314cf9a95a7d65531e486c4092f8939722e1b3c2bf7d33063c8 SHA512 14a5cdad3f9365d58e526c8f451d9e7a57729010073caff31256e0b94d28206adc82ead4820278e7eac17b74d22a76d9f3b9f5f8424ddbfa6b74a5cea13e019f
|
||||||
DIST incus-6.0.4.tar.xz.asc 833 BLAKE2B 96c94cde55cd2e9f7f28db7adb098adf4895437d300dfd42aeac540cdab6677fb604831c28f40f8581e60b89b228557d81696cd64950a1c2147b445a5ec58b30 SHA512 1ef2063eab424467c805f8c86b5b0caca848f46d2ef7ebf602049fe32ee15a7e1006d5a2710b355604aef73802b4333cd0428c772e1c5fc4da588c2cd7ee1694
|
DIST incus-6.0.4.tar.xz.asc 833 BLAKE2B 96c94cde55cd2e9f7f28db7adb098adf4895437d300dfd42aeac540cdab6677fb604831c28f40f8581e60b89b228557d81696cd64950a1c2147b445a5ec58b30 SHA512 1ef2063eab424467c805f8c86b5b0caca848f46d2ef7ebf602049fe32ee15a7e1006d5a2710b355604aef73802b4333cd0428c772e1c5fc4da588c2cd7ee1694
|
||||||
DIST incus-6.12.tar.xz 12041616 BLAKE2B 25bb157839a6d86f45614f71cb8f61ec2d92ca96322e90dc9d4f47603aee8b246621b941cd223a3c9007bbb4dbb65ffe432a72d2e7af5fefae40bc398406424b SHA512 1234f54965f2b50fa04c286405dd3b7dcbf86f88f91dd38476695a57961dd13fbc8da3c698ce1c254da71239b4af64fda25b9de7c6db017e7728b5bc4db52bf4
|
|
||||||
DIST incus-6.12.tar.xz.asc 833 BLAKE2B e74dbefea68db25458da3956e6b5fc99b2cc861d9a20c5d10a9fa2d1803068b2b36a350d35960bfb289e9e1e747baa8bc5d2fdb0a93fcfb8ee7b0ffcd65befe7 SHA512 11f63160366a17d7d2679eb52f318d3c0e2a6d91a76c968d6483db9fb45892006d831f85e30bedfa9237a55d9b517458b01c3d1311e7e5f9ea1c3b3bbc18975a
|
|
||||||
DIST incus-6.13.tar.xz 12416404 BLAKE2B 0eca3b80762e9473be21f29157eb42d655a09db97084f6cccd1317595f96593c866110c19a4a42592ae556e8f2f3e40153a7430730373cdb777261bc4a8f0d5e SHA512 80411e23aa95f021f349463b15146444bba7f5cad42e094ff099ec70df8083d7b54d8374ef659d3f4d01afbcbf4287b7238e973d53fecd9a7af046df85b1b05f
|
DIST incus-6.13.tar.xz 12416404 BLAKE2B 0eca3b80762e9473be21f29157eb42d655a09db97084f6cccd1317595f96593c866110c19a4a42592ae556e8f2f3e40153a7430730373cdb777261bc4a8f0d5e SHA512 80411e23aa95f021f349463b15146444bba7f5cad42e094ff099ec70df8083d7b54d8374ef659d3f4d01afbcbf4287b7238e973d53fecd9a7af046df85b1b05f
|
||||||
DIST incus-6.13.tar.xz.asc 833 BLAKE2B fbdb41110452716aa333f444801152456ec1196cbdb151c5dfdb940d3e82e39cbbc70990ec999b723938ec3986deafff0c1e77376cdd19fb862aa8c59083d363 SHA512 a29978fd9d9f89f7ae6585f150cf78ec7819360e189ce6bbb5559049cecd2b667a46857a852a77d22edba60fce083c2bfccbf89535dad7d415e82c0eec995700
|
DIST incus-6.13.tar.xz.asc 833 BLAKE2B fbdb41110452716aa333f444801152456ec1196cbdb151c5dfdb940d3e82e39cbbc70990ec999b723938ec3986deafff0c1e77376cdd19fb862aa8c59083d363 SHA512 a29978fd9d9f89f7ae6585f150cf78ec7819360e189ce6bbb5559049cecd2b667a46857a852a77d22edba60fce083c2bfccbf89535dad7d415e82c0eec995700
|
||||||
|
@ -12,7 +12,7 @@ SRC_URI="https://linuxcontainers.org/downloads/incus/${P}.tar.xz
|
|||||||
|
|
||||||
LICENSE="Apache-2.0 BSD LGPL-3 MIT"
|
LICENSE="Apache-2.0 BSD LGPL-3 MIT"
|
||||||
SLOT="0/lts"
|
SLOT="0/lts"
|
||||||
KEYWORDS="~amd64 ~arm64"
|
KEYWORDS="amd64 ~arm64"
|
||||||
IUSE="apparmor fuidshift nls qemu"
|
IUSE="apparmor fuidshift nls qemu"
|
||||||
|
|
||||||
DEPEND="acct-group/incus
|
DEPEND="acct-group/incus
|
||||||
|
@ -1,228 +0,0 @@
|
|||||||
# Copyright 1999-2025 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
inherit go-env go-module linux-info optfeature systemd toolchain-funcs verify-sig
|
|
||||||
|
|
||||||
DESCRIPTION="Modern, secure and powerful system container and virtual machine manager"
|
|
||||||
HOMEPAGE="https://linuxcontainers.org/incus/introduction/ https://github.com/lxc/incus"
|
|
||||||
SRC_URI="https://linuxcontainers.org/downloads/incus/${P}.tar.xz
|
|
||||||
verify-sig? ( https://linuxcontainers.org/downloads/incus/${P}.tar.xz.asc )"
|
|
||||||
|
|
||||||
LICENSE="Apache-2.0 BSD LGPL-3 MIT"
|
|
||||||
SLOT="0/stable"
|
|
||||||
KEYWORDS="~amd64 ~arm64"
|
|
||||||
IUSE="apparmor fuidshift nls qemu"
|
|
||||||
|
|
||||||
DEPEND="acct-group/incus
|
|
||||||
acct-group/incus-admin
|
|
||||||
app-arch/xz-utils
|
|
||||||
>=app-containers/lxc-5.0.0:=[apparmor?,seccomp(+)]
|
|
||||||
dev-db/sqlite:3
|
|
||||||
>=dev-libs/cowsql-1.15.7
|
|
||||||
dev-libs/lzo
|
|
||||||
>=dev-libs/raft-0.22.1:=[lz4]
|
|
||||||
>=dev-util/xdelta-3.0[lzma(+)]
|
|
||||||
net-dns/dnsmasq[dhcp]
|
|
||||||
sys-libs/libcap
|
|
||||||
virtual/udev"
|
|
||||||
RDEPEND="${DEPEND}
|
|
||||||
|| (
|
|
||||||
net-firewall/iptables
|
|
||||||
net-firewall/nftables[json]
|
|
||||||
)
|
|
||||||
fuidshift? ( !app-containers/lxd )
|
|
||||||
net-firewall/ebtables
|
|
||||||
sys-apps/iproute2
|
|
||||||
sys-fs/fuse:*
|
|
||||||
>=sys-fs/lxcfs-5.0.0
|
|
||||||
sys-fs/squashfs-tools[lzma]
|
|
||||||
virtual/acl
|
|
||||||
apparmor? ( sec-policy/apparmor-profiles )
|
|
||||||
qemu? (
|
|
||||||
app-cdr/cdrtools
|
|
||||||
app-emulation/qemu[spice,usbredir,virtfs]
|
|
||||||
sys-apps/gptfdisk
|
|
||||||
)"
|
|
||||||
BDEPEND=">=dev-lang/go-1.21
|
|
||||||
nls? ( sys-devel/gettext )
|
|
||||||
verify-sig? ( sec-keys/openpgp-keys-linuxcontainers )"
|
|
||||||
|
|
||||||
CONFIG_CHECK="
|
|
||||||
~AIO
|
|
||||||
~CGROUPS
|
|
||||||
~IPC_NS
|
|
||||||
~NET_NS
|
|
||||||
~PID_NS
|
|
||||||
|
|
||||||
~SECCOMP
|
|
||||||
~USER_NS
|
|
||||||
~UTS_NS
|
|
||||||
|
|
||||||
~KVM
|
|
||||||
~MACVTAP
|
|
||||||
~VHOST_VSOCK
|
|
||||||
"
|
|
||||||
|
|
||||||
ERROR_AIO="CONFIG_AIO is required."
|
|
||||||
ERROR_IPC_NS="CONFIG_IPC_NS is required."
|
|
||||||
ERROR_NET_NS="CONFIG_NET_NS is required."
|
|
||||||
ERROR_PID_NS="CONFIG_PID_NS is required."
|
|
||||||
ERROR_SECCOMP="CONFIG_SECCOMP is required."
|
|
||||||
ERROR_UTS_NS="CONFIG_UTS_NS is required."
|
|
||||||
|
|
||||||
WARNING_KVM="CONFIG_KVM and CONFIG_KVM_AMD/-INTEL is required for virtual machines."
|
|
||||||
WARNING_MACVTAP="CONFIG_MACVTAP is required for virtual machines."
|
|
||||||
WARNING_VHOST_VSOCK="CONFIG_VHOST_VSOCK is required for virtual machines."
|
|
||||||
|
|
||||||
# Go magic.
|
|
||||||
QA_PREBUILT="/usr/bin/incus
|
|
||||||
/usr/bin/incus-agent
|
|
||||||
/usr/bin/incus-benchmark
|
|
||||||
/usr/bin/incus-migrate
|
|
||||||
/usr/bin/lxc-to-incus
|
|
||||||
/usr/sbin/fuidshift
|
|
||||||
/usr/sbin/incusd
|
|
||||||
/usr/sbin/lxd-to-incus"
|
|
||||||
|
|
||||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/linuxcontainers.asc
|
|
||||||
|
|
||||||
# The testsuite must be run as root.
|
|
||||||
# make: *** [Makefile:156: check] Error 1
|
|
||||||
RESTRICT="test"
|
|
||||||
|
|
||||||
GOPATH="${S}/_dist"
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
verify-sig_src_unpack
|
|
||||||
go-module_src_unpack
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
export GOPATH="${S}/_dist"
|
|
||||||
|
|
||||||
default
|
|
||||||
|
|
||||||
sed -i \
|
|
||||||
-e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/incus:g" \
|
|
||||||
-e "s:make:make ${MAKEOPTS}:g" \
|
|
||||||
Makefile || die
|
|
||||||
|
|
||||||
sed -i \
|
|
||||||
-e "s:/usr/share/OVMF:/usr/share/edk2/OvmfX64:g" \
|
|
||||||
-e "s:OVMF_VARS.ms.fd:OVMF_VARS.fd:g" \
|
|
||||||
internal/server/instance/drivers/edk2/driver_edk2.go || die "Failed to fix hardcoded ovmf paths."
|
|
||||||
|
|
||||||
cp "${FILESDIR}"/incus-0.4.service "${T}"/incus.service || die
|
|
||||||
if use apparmor; then
|
|
||||||
sed -i \
|
|
||||||
'/^EnvironmentFile=.*/a ExecStartPre=\/usr\/libexec\/lxc\/lxc-apparmor-load' \
|
|
||||||
"${T}"/incus.service || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Disable -Werror's from go modules.
|
|
||||||
find "${S}" -name "cgo.go" -exec sed -i "s/ -Werror / /g" {} + || die
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() { :; }
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
export GOPATH="${S}/_dist"
|
|
||||||
export CGO_LDFLAGS_ALLOW="-Wl,-z,now"
|
|
||||||
|
|
||||||
for k in incus-benchmark incus-simplestreams incus-user incus lxc-to-incus lxd-to-incus ; do
|
|
||||||
ego install -v -x "${S}/cmd/${k}"
|
|
||||||
done
|
|
||||||
|
|
||||||
if use fuidshift ; then
|
|
||||||
ego install -v -x "${S}/cmd/fuidshift"
|
|
||||||
fi
|
|
||||||
|
|
||||||
ego install -v -x -tags libsqlite3 "${S}"/cmd/incusd
|
|
||||||
|
|
||||||
# Needs to be built statically
|
|
||||||
CGO_ENABLED=0 go install -v -tags netgo "${S}"/cmd/incus-migrate
|
|
||||||
CGO_ENABLED=0 go install -v -tags agent,netgo "${S}"/cmd/incus-agent
|
|
||||||
|
|
||||||
use nls && emake build-mo
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
emake check
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
export GOPATH="${S}/_dist"
|
|
||||||
|
|
||||||
export GOHOSTARCH=$(go-env_goarch "${CBUILD}")
|
|
||||||
if [[ "${GOARCH}" != "${GOHOSTARCH}" ]]; then
|
|
||||||
local bindir="_dist/bin/linux_${GOARCH}"
|
|
||||||
else
|
|
||||||
local bindir="_dist/bin"
|
|
||||||
fi
|
|
||||||
|
|
||||||
newsbin "${FILESDIR}"/incus-startup-0.4.sh incus-startup
|
|
||||||
|
|
||||||
# Admin tools
|
|
||||||
for l in incusd incus-user lxd-to-incus ; do
|
|
||||||
dosbin ${bindir}/${l}
|
|
||||||
done
|
|
||||||
|
|
||||||
# User tools
|
|
||||||
for m in incus-agent incus-benchmark incus-migrate incus-simplestreams incus lxc-to-incus ; do
|
|
||||||
dobin ${bindir}/${m}
|
|
||||||
done
|
|
||||||
|
|
||||||
# fuidshift, should be moved under admin tools at some point
|
|
||||||
if use fuidshift ; then
|
|
||||||
dosbin ${bindir}/fuidshift
|
|
||||||
fi
|
|
||||||
|
|
||||||
newconfd "${FILESDIR}"/incus-6.0.confd incus
|
|
||||||
newinitd "${FILESDIR}"/incus-6.0.initd incus
|
|
||||||
newinitd "${FILESDIR}"/incus-user-0.4.initd incus-user
|
|
||||||
|
|
||||||
systemd_dounit "${T}"/incus.service
|
|
||||||
systemd_newunit "${FILESDIR}"/incus-0.4.socket incus.socket
|
|
||||||
systemd_newunit "${FILESDIR}"/incus-startup-0.4.service incus-startup.service
|
|
||||||
systemd_newunit "${FILESDIR}"/incus-user-0.4.service incus-user.service
|
|
||||||
systemd_newunit "${FILESDIR}"/incus-user-0.4.socket incus-user.socket
|
|
||||||
|
|
||||||
if ! tc-is-cross-compiler; then
|
|
||||||
# Generate and install shell completion files.
|
|
||||||
mkdir -p "${D}"/usr/share/{bash-completion/completions/,fish/vendor_completions.d/,zsh/site-functions/} || die
|
|
||||||
"${bindir}"/incus completion bash > "${D}"/usr/share/bash-completion/completions/incus || die
|
|
||||||
"${bindir}"/incus completion fish > "${D}"/usr/share/fish/vendor_completions.d/incus.fish || die
|
|
||||||
"${bindir}"/incus completion zsh > "${D}"/usr/share/zsh/site-functions/_incus || die
|
|
||||||
else
|
|
||||||
ewarn "Shell completion files not installed! Install them manually with incus completion --help"
|
|
||||||
fi
|
|
||||||
|
|
||||||
dodoc AUTHORS
|
|
||||||
dodoc -r doc/*
|
|
||||||
use nls && domo po/*.mo
|
|
||||||
|
|
||||||
# Incus needs INCUS_EDK2_PATH in env to find OVMF files for virtual machines, #946184
|
|
||||||
newenvd - 90incus <<- _EOF_
|
|
||||||
INCUS_EDK2_PATH=${EPREFIX}/usr/share/edk2-ovmf
|
|
||||||
_EOF_
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
elog
|
|
||||||
elog "Please see"
|
|
||||||
elog " https://wiki.gentoo.org/wiki/Incus"
|
|
||||||
elog " https://wiki.gentoo.org/wiki/Incus#Migrating_from_LXD"
|
|
||||||
elog
|
|
||||||
optfeature "OCI container images support" app-containers/skopeo app-containers/umoci
|
|
||||||
optfeature "support for ACME certificate issuance" app-crypt/lego
|
|
||||||
optfeature "btrfs storage backend" sys-fs/btrfs-progs
|
|
||||||
optfeature "ipv6 support" net-dns/dnsmasq[ipv6]
|
|
||||||
optfeature "full incus-migrate support" net-misc/rsync
|
|
||||||
optfeature "lvm2 storage backend" sys-fs/lvm2
|
|
||||||
optfeature "zfs storage backend" sys-fs/zfs
|
|
||||||
elog
|
|
||||||
elog "Be sure to add your local user to the incus group."
|
|
||||||
elog
|
|
||||||
}
|
|
@ -12,7 +12,7 @@ SRC_URI="https://linuxcontainers.org/downloads/lxc/${P}.tar.gz
|
|||||||
|
|
||||||
LICENSE="GPL-2 LGPL-2.1 LGPL-3"
|
LICENSE="GPL-2 LGPL-2.1 LGPL-3"
|
||||||
SLOT="0/1.8" # SONAME liblxc.so.1 + ${PV//./} _if_ breaking ABI change while bumping.
|
SLOT="0/1.8" # SONAME liblxc.so.1 + ${PV//./} _if_ breaking ABI change while bumping.
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
|
KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv x86"
|
||||||
IUSE="apparmor +caps examples io-uring man pam seccomp selinux ssl systemd test +tools"
|
IUSE="apparmor +caps examples io-uring man pam seccomp selinux ssl systemd test +tools"
|
||||||
|
|
||||||
RDEPEND="acct-group/lxc
|
RDEPEND="acct-group/lxc
|
||||||
|
@ -19,7 +19,7 @@ S="${WORKDIR}/${PN}-${MY_PV}"
|
|||||||
|
|
||||||
LICENSE="Apache-2.0 BSD-2 BSD MIT"
|
LICENSE="Apache-2.0 BSD-2 BSD MIT"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
|
KEYWORDS="amd64 ~arm ~arm64 ppc64 ~riscv ~x86"
|
||||||
IUSE="apparmor hardened +kmem +seccomp selinux test"
|
IUSE="apparmor hardened +kmem +seccomp selinux test"
|
||||||
|
|
||||||
COMMON_DEPEND="
|
COMMON_DEPEND="
|
||||||
|
@ -23,7 +23,7 @@ S="${WORKDIR}/${MY_P}"
|
|||||||
|
|
||||||
LICENSE="GPL-3+"
|
LICENSE="GPL-3+"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
IUSE="bzip2 doc ldap nls readline selinux +smartcard ssl test +tofu tpm tools usb user-socket wks-server"
|
IUSE="bzip2 doc ldap nls readline selinux +smartcard ssl test +tofu tpm tools usb user-socket wks-server"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
REQUIRED_USE="test? ( tofu )"
|
REQUIRED_USE="test? ( tofu )"
|
||||||
|
@ -1,217 +0,0 @@
|
|||||||
scriptencoding utf-8
|
|
||||||
" ^^ Please leave the above line at the start of the file.
|
|
||||||
|
|
||||||
" Default configuration file for Vim
|
|
||||||
|
|
||||||
" Written by Aron Griffis <agriffis@gentoo.org>
|
|
||||||
" Modified by Ryan Phillips <rphillips@gentoo.org>
|
|
||||||
" Modified some more by Ciaran McCreesh <ciaranm@gentoo.org>
|
|
||||||
" Added Redhat's vimrc info by Seemant Kulleen <seemant@gentoo.org>
|
|
||||||
|
|
||||||
" You can override any of these settings on a global basis via the
|
|
||||||
" "/etc/vim/vimrc.local" file, and on a per-user basis via "~/.vimrc". You may
|
|
||||||
" need to create these.
|
|
||||||
|
|
||||||
" {{{ General settings
|
|
||||||
" The following are some sensible defaults for Vim for most users.
|
|
||||||
" We attempt to change as little as possible from Vim's defaults,
|
|
||||||
" deviating only where it makes sense
|
|
||||||
set nocompatible " Use Vim defaults (much better!)
|
|
||||||
set bs=2 " Allow backspacing over everything in insert mode
|
|
||||||
set ai " Always set auto-indenting on
|
|
||||||
set history=50 " keep 50 lines of command history
|
|
||||||
set ruler " Show the cursor position all the time
|
|
||||||
|
|
||||||
set viminfo='20,\"500 " Keep a .viminfo file.
|
|
||||||
|
|
||||||
" Don't use Ex mode, use Q for formatting
|
|
||||||
map Q gq
|
|
||||||
|
|
||||||
" When doing tab completion, give the following files lower priority. You may
|
|
||||||
" wish to set 'wildignore' to completely ignore files, and 'wildmenu' to enable
|
|
||||||
" enhanced tab completion. These can be done in the user vimrc file.
|
|
||||||
set suffixes+=.info,.aux,.log,.dvi,.bbl,.out,.o,.lo
|
|
||||||
|
|
||||||
" When displaying line numbers, don't use an annoyingly wide number column. This
|
|
||||||
" doesn't enable line numbers -- :set number will do that. The value given is a
|
|
||||||
" minimum width to use for the number column, not a fixed size.
|
|
||||||
if v:version >= 700
|
|
||||||
set numberwidth=3
|
|
||||||
endif
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" {{{ Modeline settings
|
|
||||||
" We don't allow modelines by default. See bug #14088 and bug #73715.
|
|
||||||
" If you're not concerned about these, you can enable them on a per-user
|
|
||||||
" basis by adding "set modeline" to your ~/.vimrc file.
|
|
||||||
set nomodeline
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" {{{ Locale settings
|
|
||||||
" Try to come up with some nice sane GUI fonts. Also try to set a sensible
|
|
||||||
" value for fileencodings based upon locale. These can all be overridden in
|
|
||||||
" the user vimrc file.
|
|
||||||
if v:lang =~? "^ko"
|
|
||||||
set fileencodings=euc-kr
|
|
||||||
set guifontset=-*-*-medium-r-normal--16-*-*-*-*-*-*-*
|
|
||||||
elseif v:lang =~? "^ja_JP"
|
|
||||||
set fileencodings=euc-jp
|
|
||||||
set guifontset=-misc-fixed-medium-r-normal--14-*-*-*-*-*-*-*
|
|
||||||
elseif v:lang =~? "^zh_TW"
|
|
||||||
set fileencodings=big5
|
|
||||||
set guifontset=-sony-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-1,-taipei-fixed-medium-r-normal--16-150-75-75-c-160-big5-0
|
|
||||||
elseif v:lang =~? "^zh_CN"
|
|
||||||
set fileencodings=gb2312
|
|
||||||
set guifontset=*-r-*
|
|
||||||
endif
|
|
||||||
|
|
||||||
" If we have a BOM, always honour that rather than trying to guess.
|
|
||||||
if &fileencodings !~? "ucs-bom"
|
|
||||||
set fileencodings^=ucs-bom
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Always check for UTF-8 when trying to determine encodings.
|
|
||||||
if &fileencodings !~? "utf-8"
|
|
||||||
" If we have to add this, the default encoding is not Unicode.
|
|
||||||
" We use this fact later to revert to the default encoding in plaintext/empty
|
|
||||||
" files.
|
|
||||||
let g:added_fenc_utf8 = 1
|
|
||||||
set fileencodings+=utf-8
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Make sure we have a sane fallback for encoding detection
|
|
||||||
if &fileencodings !~? "default"
|
|
||||||
set fileencodings+=default
|
|
||||||
endif
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" {{{ Syntax highlighting settings
|
|
||||||
" Switch syntax highlighting on, when the terminal has colors
|
|
||||||
" Also switch on highlighting the last used search pattern.
|
|
||||||
if &t_Co > 2 || has("gui_running")
|
|
||||||
syntax on
|
|
||||||
set hlsearch
|
|
||||||
endif
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" {{{ Terminal fixes
|
|
||||||
if &term ==? "xterm"
|
|
||||||
set t_Sb=^[4%dm
|
|
||||||
set t_Sf=^[3%dm
|
|
||||||
set ttymouse=xterm2
|
|
||||||
endif
|
|
||||||
|
|
||||||
if &term ==? "gnome" && has("eval")
|
|
||||||
" Set useful keys that vim doesn't discover via termcap but are in the
|
|
||||||
" builtin xterm termcap. See bug #122562. We use exec to avoid having to
|
|
||||||
" include raw escapes in the file.
|
|
||||||
exec "set <C-Left>=\eO5D"
|
|
||||||
exec "set <C-Right>=\eO5C"
|
|
||||||
endif
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" {{{ Filetype plugin settings
|
|
||||||
" Enable plugin-provided filetype settings, but only if the ftplugin
|
|
||||||
" directory exists (which it won't on livecds, for example).
|
|
||||||
if isdirectory(expand("$VIMRUNTIME/ftplugin"))
|
|
||||||
filetype plugin on
|
|
||||||
|
|
||||||
" Uncomment the next line (or copy to your ~/.vimrc) for plugin-provided
|
|
||||||
" indent settings. Some people don't like these, so we won't turn them on by
|
|
||||||
" default.
|
|
||||||
" filetype indent on
|
|
||||||
endif
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" {{{ Fix &shell, see bug #101665.
|
|
||||||
if "" == &shell
|
|
||||||
if executable("@GENTOO_PORTAGE_EPREFIX@/bin/bash")
|
|
||||||
set shell=@GENTOO_PORTAGE_EPREFIX@/bin/bash
|
|
||||||
elseif executable("@GENTOO_PORTAGE_EPREFIX@/bin/sh")
|
|
||||||
set shell=@GENTOO_PORTAGE_EPREFIX@/bin/sh
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
"}}}
|
|
||||||
|
|
||||||
" {{{ Our default /bin/sh is bash, not ksh, so syntax highlighting for .sh
|
|
||||||
" files should default to bash. See :help sh-syntax and bug #101819.
|
|
||||||
if has("eval")
|
|
||||||
let is_bash=1
|
|
||||||
endif
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" {{{ Autocommands
|
|
||||||
if has("autocmd")
|
|
||||||
|
|
||||||
augroup gentoo
|
|
||||||
au!
|
|
||||||
|
|
||||||
" Gentoo-specific settings for ebuilds. These are the federally-mandated
|
|
||||||
" required tab settings. See the following for more information:
|
|
||||||
" http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml
|
|
||||||
" Note that the rules below are very minimal and don't cover everything.
|
|
||||||
" Better to emerge app-vim/gentoo-syntax, which provides full syntax,
|
|
||||||
" filetype and indent settings for all things Gentoo.
|
|
||||||
au BufRead,BufNewFile *.e{build,class} let is_bash=1|setfiletype sh
|
|
||||||
au BufRead,BufNewFile *.e{build,class} set ts=4 sw=4 noexpandtab
|
|
||||||
|
|
||||||
" In text files, limit the width of text to 78 characters, but be careful
|
|
||||||
" that we don't override the user's setting.
|
|
||||||
autocmd BufNewFile,BufRead *.txt
|
|
||||||
\ if &tw == 0 && ! exists("g:leave_my_textwidth_alone") |
|
|
||||||
\ setlocal textwidth=78 |
|
|
||||||
\ endif
|
|
||||||
|
|
||||||
" When editing a file, always jump to the last cursor position
|
|
||||||
autocmd BufReadPost *
|
|
||||||
\ if ! exists("g:leave_my_cursor_position_alone") |
|
|
||||||
\ if line("'\"") > 0 && line ("'\"") <= line("$") |
|
|
||||||
\ exe "normal! g'\"" |
|
|
||||||
\ endif |
|
|
||||||
\ endif
|
|
||||||
|
|
||||||
" When editing a crontab file, set backupcopy to yes rather than auto. See
|
|
||||||
" :help crontab and bug #53437.
|
|
||||||
autocmd FileType crontab set backupcopy=yes
|
|
||||||
|
|
||||||
" If we previously detected that the default encoding is not UTF-8
|
|
||||||
" (g:added_fenc_utf8), assume that a file with only ASCII characters (or no
|
|
||||||
" characters at all) isn't a Unicode file, but is in the default encoding.
|
|
||||||
" Except of course if a byte-order mark is in effect.
|
|
||||||
autocmd BufReadPost *
|
|
||||||
\ if exists("g:added_fenc_utf8") && &fileencoding == "utf-8" &&
|
|
||||||
\ ! &bomb && search('[\x80-\xFF]','nw') == 0 && &modifiable |
|
|
||||||
\ set fileencoding= |
|
|
||||||
\ endif
|
|
||||||
|
|
||||||
augroup END
|
|
||||||
|
|
||||||
endif " has("autocmd")
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" We don't want VIM to load their own built-in defaults, preferring ours here
|
|
||||||
" instead. This option cannot apply to minimal builds, so it is guarded by a
|
|
||||||
" test that's guaranteed to fail for those, owing to the lack of +eval.
|
|
||||||
if 1
|
|
||||||
let g:skip_defaults_vim = 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Enable Omni completion when opening a file only if a specific plugin does
|
|
||||||
" not already exist for that filetype. This allows Omni completion
|
|
||||||
" (Ctrl-x/Ctrl-o) to work with any programming language if and only if a syntax
|
|
||||||
" file exists for the said language.
|
|
||||||
if exists("+omnifunc")
|
|
||||||
autocmd Filetype *
|
|
||||||
\ if &omnifunc == "" |
|
|
||||||
\ setlocal omnifunc=syntaxcomplete#Complete |
|
|
||||||
\ endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
" {{{ vimrc.local
|
|
||||||
if filereadable("@GENTOO_PORTAGE_EPREFIX@/etc/vim/vimrc.local")
|
|
||||||
source @GENTOO_PORTAGE_EPREFIX@/etc/vim/vimrc.local
|
|
||||||
endif
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" vim: set fenc=utf-8 tw=80 sw=2 sts=2 et foldmethod=marker :
|
|
||||||
|
|
233
sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1436-r1.ebuild
vendored
Normal file
233
sdk_container/src/third_party/portage-stable/app-editors/vim-core/vim-core-9.1.1436-r1.ebuild
vendored
Normal file
@ -0,0 +1,233 @@
|
|||||||
|
# Copyright 1999-2025 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
# Please bump with app-editors/vim and app-editors/gvim
|
||||||
|
|
||||||
|
VIM_VERSION="9.1"
|
||||||
|
VIM_PATCHES_VERSION="9.1.1432"
|
||||||
|
inherit bash-completion-r1 desktop flag-o-matic prefix toolchain-funcs vim-doc xdg-utils
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
inherit git-r3
|
||||||
|
EGIT_REPO_URI="https://github.com/vim/vim.git"
|
||||||
|
EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${PV}
|
||||||
|
else
|
||||||
|
SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz
|
||||||
|
https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2"
|
||||||
|
# https://github.com/douglarek/gentoo-vim-patches/releases/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.gz"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="vim and gvim shared files"
|
||||||
|
HOMEPAGE="https://www.vim.org https://github.com/vim/vim"
|
||||||
|
S="${WORKDIR}/vim-${PV}"
|
||||||
|
|
||||||
|
LICENSE="vim"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="nls acl minimal"
|
||||||
|
|
||||||
|
# ncurses is only needed by ./configure, so no subslot operator required
|
||||||
|
DEPEND=">=sys-libs/ncurses-5.2-r2:0"
|
||||||
|
BDEPEND="dev-build/autoconf"
|
||||||
|
|
||||||
|
if [[ ${PV} != 9999* ]]; then
|
||||||
|
# Gentoo patches to fix runtime issues, cross-compile errors, etc
|
||||||
|
PATCHES=(
|
||||||
|
"${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches"
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# platform-specific checks (bug #898406):
|
||||||
|
# - acl() -- Solaris
|
||||||
|
# - statacl() -- AIX
|
||||||
|
QA_CONFIG_IMPL_DECL_SKIP=(
|
||||||
|
'acl'
|
||||||
|
'statacl'
|
||||||
|
)
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
# people with broken alphabets run into trouble. bug #82186.
|
||||||
|
unset LANG LC_ALL
|
||||||
|
export LC_COLLATE="C"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
|
||||||
|
# Fixup a script to use awk instead of nawk
|
||||||
|
sed -i \
|
||||||
|
-e '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
|
||||||
|
"${S}"/runtime/tools/mve.awk || die "sed failed"
|
||||||
|
|
||||||
|
# See bug #77841. We remove this file after the tarball extraction.
|
||||||
|
rm -v "${S}"/runtime/tools/vimspell.sh || die "rm failed"
|
||||||
|
|
||||||
|
# Read vimrc and gvimrc from /etc/vim
|
||||||
|
echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' >> "${S}"/src/feature.h || die
|
||||||
|
echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h || die
|
||||||
|
|
||||||
|
# Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
|
||||||
|
# Hopefully this pattern won't break for a while at least.
|
||||||
|
# This fixes bug #29398 (27 Sep 2003 agriffis)
|
||||||
|
sed -i 's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
|
||||||
|
"${S}"/runtime/doc/syntax.txt \
|
||||||
|
"${S}"/runtime/doc/tagsrch.txt \
|
||||||
|
"${S}"/runtime/doc/usr_29.txt \
|
||||||
|
"${S}"/runtime/menu.vim \
|
||||||
|
"${S}"/src/configure.ac || die 'sed failed'
|
||||||
|
|
||||||
|
# gcc on sparc32 has this, uhm, interesting problem with detecting EOF
|
||||||
|
# correctly. To avoid some really entertaining error messages about stuff
|
||||||
|
# which isn't even in the source file being invalid, we'll do some trickery
|
||||||
|
# to make the error never occur. bug 66162 (02 October 2004 ciaranm)
|
||||||
|
find "${S}" -name '*.c' | while read c; do
|
||||||
|
echo >> "$c" || die "echo failed"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Try to avoid sandbox problems. Bug #114475.
|
||||||
|
if [[ -d "${S}"/src/po ]]; then
|
||||||
|
sed -i -e \
|
||||||
|
'/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
|
||||||
|
"${S}"/src/po/Makefile || die "sed failed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
|
||||||
|
|
||||||
|
# Fix bug #76331: -O3 causes problems, use -O2 instead. We'll do this for
|
||||||
|
# everyone since previous flag filtering bugs have turned out to affect
|
||||||
|
# multiple archs...
|
||||||
|
replace-flags -O3 -O2
|
||||||
|
|
||||||
|
# Fix bug #18245: Prevent "make" from the following chain:
|
||||||
|
# (1) Notice configure.ac is newer than auto/configure
|
||||||
|
# (2) Rebuild auto/configure
|
||||||
|
# (3) Notice auto/configure is newer than auto/config.mk
|
||||||
|
# (4) Run ./configure (with wrong args) to remake auto/config.mk
|
||||||
|
sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
|
||||||
|
|
||||||
|
# Remove src/auto/configure file.
|
||||||
|
rm -v src/auto/configure || die "rm configure failed"
|
||||||
|
|
||||||
|
# bug 908961
|
||||||
|
if use elibc_musl ; then
|
||||||
|
sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
emake -j1 -C src autoconf
|
||||||
|
|
||||||
|
# This should fix a sandbox violation (see bug 24447). The hvc
|
||||||
|
# things are for ppc64, see bug 86433.
|
||||||
|
for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
|
||||||
|
if [[ -e "${file}" ]]; then
|
||||||
|
addwrite ${file}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Let Portage do the stripping. Some people like that.
|
||||||
|
export ac_cv_prog_STRIP="$(type -P true ) faking strip"
|
||||||
|
|
||||||
|
local myconf=(
|
||||||
|
--with-modified-by="Gentoo-${PVR} (RIP Bram)"
|
||||||
|
--enable-gui=no
|
||||||
|
--without-x
|
||||||
|
--disable-darwin
|
||||||
|
--disable-perlinterp
|
||||||
|
--disable-pythoninterp
|
||||||
|
--disable-rubyinterp
|
||||||
|
--disable-gpm
|
||||||
|
--disable-selinux
|
||||||
|
$(use_enable nls)
|
||||||
|
$(use_enable acl)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Keep Gentoo Prefix env contained within the EPREFIX
|
||||||
|
use prefix && myconf+=( --without-local-dir )
|
||||||
|
|
||||||
|
if tc-is-cross-compiler ; then
|
||||||
|
export vim_cv_getcwd_broken=no \
|
||||||
|
vim_cv_memmove_handles_overlap=yes \
|
||||||
|
vim_cv_stat_ignores_slash=yes \
|
||||||
|
vim_cv_terminfo=yes \
|
||||||
|
vim_cv_toupper_broken=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
econf "${myconf[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
emake -j1 -C src auto/osdef.h objects
|
||||||
|
emake tools
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() { :; }
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
|
||||||
|
|
||||||
|
dodir /usr/{bin,share/{man/man1,vim}}
|
||||||
|
emake -C src \
|
||||||
|
installruntime \
|
||||||
|
installmanlinks \
|
||||||
|
installmacros \
|
||||||
|
installtutor \
|
||||||
|
installtutorbin \
|
||||||
|
installtools \
|
||||||
|
install-languages \
|
||||||
|
DESTDIR="${D}" \
|
||||||
|
BINDIR="${EPREFIX}"/usr/bin \
|
||||||
|
MANDIR="${EPREFIX}"/usr/share/man \
|
||||||
|
DATADIR="${EPREFIX}"/usr/share
|
||||||
|
|
||||||
|
keepdir ${vimfiles}/keymap
|
||||||
|
|
||||||
|
# default vimrc is installed by vim-core since it applies to
|
||||||
|
# both vim and gvim
|
||||||
|
insinto /etc/vim/
|
||||||
|
newins "${FILESDIR}"/vimrc-r7 vimrc
|
||||||
|
eprefixify "${ED}"/etc/vim/vimrc
|
||||||
|
|
||||||
|
if use minimal; then
|
||||||
|
# To save space, install only a subset of the files.
|
||||||
|
# Helps minimalize the livecd, bug 65144.
|
||||||
|
rm -rv "${ED}${vimfiles}"/{compiler,doc,ftplugin,indent} || die
|
||||||
|
rm -rv "${ED}${vimfiles}"/{macros,print,tools,tutor} || die
|
||||||
|
rm -v "${ED}"/usr/bin/vimtutor || die
|
||||||
|
|
||||||
|
for f in "${ED}${vimfiles}"/colors/*.vim; do
|
||||||
|
if [[ ${f} != */@(default).vim ]] ; then
|
||||||
|
printf '%s\0' "${f}"
|
||||||
|
fi
|
||||||
|
done | xargs -0 rm -f || die
|
||||||
|
|
||||||
|
for f in "${ED}${vimfiles}"/syntax/*.vim; do
|
||||||
|
if [[ ${f} != */@(conf|crontab|fstab|inittab|resolv|sshdconfig|syntax|nosyntax|synload).vim ]] ; then
|
||||||
|
printf '%s\0' "${f}"
|
||||||
|
fi
|
||||||
|
done | xargs -0 rm -f || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
newbashcomp "${FILESDIR}"/xxd-completion xxd
|
||||||
|
|
||||||
|
# install gvim icon since both vim/gvim desktop files reference it
|
||||||
|
doicon -s scalable "${FILESDIR}"/gvim.svg
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# update documentation tags (from vim-doc.eclass)
|
||||||
|
update_vim_helptags
|
||||||
|
|
||||||
|
# update icon cache
|
||||||
|
xdg_icon_cache_update
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
# Update documentation tags (from vim-doc.eclass)
|
||||||
|
update_vim_helptags
|
||||||
|
|
||||||
|
# update icon cache
|
||||||
|
xdg_icon_cache_update
|
||||||
|
}
|
@ -116,10 +116,6 @@ src_prepare() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
src_configure() {
|
src_configure() {
|
||||||
# Fix bug #37354: Disallow -funroll-all-loops on amd64
|
|
||||||
# Bug 57859 suggests that we want to do this for all archs
|
|
||||||
filter-flags -funroll-all-loops
|
|
||||||
|
|
||||||
emake -j1 -C src autoconf
|
emake -j1 -C src autoconf
|
||||||
|
|
||||||
# This should fix a sandbox violation (see bug 24447). The hvc
|
# This should fix a sandbox violation (see bug 24447). The hvc
|
||||||
|
370
sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1436-r1.ebuild
vendored
Normal file
370
sdk_container/src/third_party/portage-stable/app-editors/vim/vim-9.1.1436-r1.ebuild
vendored
Normal file
@ -0,0 +1,370 @@
|
|||||||
|
# Copyright 1999-2025 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
# Please bump with app-editors/vim-core and app-editors/gvim
|
||||||
|
|
||||||
|
VIM_VERSION="9.1"
|
||||||
|
VIM_PATCHES_VERSION="9.1.1432"
|
||||||
|
|
||||||
|
LUA_COMPAT=( lua5-{1..4} luajit )
|
||||||
|
PYTHON_COMPAT=( python3_{10..14} )
|
||||||
|
PYTHON_REQ_USE="threads(+)"
|
||||||
|
USE_RUBY="ruby31 ruby32"
|
||||||
|
|
||||||
|
inherit vim-doc flag-o-matic bash-completion-r1 lua-single python-single-r1 ruby-single toolchain-funcs desktop xdg-utils
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
inherit git-r3
|
||||||
|
EGIT_REPO_URI="https://github.com/vim/vim.git"
|
||||||
|
else
|
||||||
|
SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> ${P}.tar.gz
|
||||||
|
https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2"
|
||||||
|
# https://github.com/douglarek/gentoo-vim-patches/releases/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.gz"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="Vim, an improved vi-style text editor"
|
||||||
|
HOMEPAGE="https://www.vim.org https://github.com/vim/vim"
|
||||||
|
|
||||||
|
LICENSE="vim"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="X acl crypt cscope debug gpm lua minimal nls perl python racket ruby selinux sound tcl terminal vim-pager"
|
||||||
|
REQUIRED_USE="
|
||||||
|
lua? ( ${LUA_REQUIRED_USE} )
|
||||||
|
python? ( ${PYTHON_REQUIRED_USE} )
|
||||||
|
vim-pager? ( !minimal )
|
||||||
|
"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
>=app-eselect/eselect-vi-1.1
|
||||||
|
>=sys-libs/ncurses-5.2-r2:0=
|
||||||
|
nls? ( virtual/libintl )
|
||||||
|
acl? ( kernel_linux? ( sys-apps/acl ) )
|
||||||
|
crypt? ( dev-libs/libsodium:= )
|
||||||
|
cscope? ( dev-util/cscope )
|
||||||
|
gpm? ( >=sys-libs/gpm-1.19.3 )
|
||||||
|
lua? ( ${LUA_DEPS}
|
||||||
|
$(lua_gen_impl_dep 'deprecated' lua5-1)
|
||||||
|
)
|
||||||
|
~app-editors/vim-core-${PV}
|
||||||
|
vim-pager? ( app-editors/vim-core[-minimal] )
|
||||||
|
perl? ( dev-lang/perl:= )
|
||||||
|
python? ( ${PYTHON_DEPS} )
|
||||||
|
racket? ( dev-scheme/racket )
|
||||||
|
ruby? ( ${RUBY_DEPS} )
|
||||||
|
selinux? ( sys-libs/libselinux )
|
||||||
|
sound? ( media-libs/libcanberra )
|
||||||
|
tcl? ( dev-lang/tcl:0= )
|
||||||
|
X? ( x11-libs/libXt )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
X? ( x11-base/xorg-proto )
|
||||||
|
"
|
||||||
|
# configure runs the Lua interpreter
|
||||||
|
BDEPEND="
|
||||||
|
dev-build/autoconf
|
||||||
|
lua? ( ${LUA_DEPS} )
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
"
|
||||||
|
PDEPEND="!minimal? ( app-vim/gentoo-syntax )"
|
||||||
|
|
||||||
|
if [[ ${PV} != 9999* ]]; then
|
||||||
|
# Gentoo patches to fix runtime issues, cross-compile errors, etc
|
||||||
|
PATCHES=(
|
||||||
|
"${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches"
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# platform-specific checks (bug #898452):
|
||||||
|
# - acl() -- Solaris
|
||||||
|
# - statacl() -- AIX
|
||||||
|
QA_CONFIG_IMPL_DECL_SKIP=(
|
||||||
|
'acl'
|
||||||
|
'statacl'
|
||||||
|
)
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
# people with broken alphabets run into trouble. bug #82186.
|
||||||
|
unset LANG LC_ALL
|
||||||
|
export LC_COLLATE="C"
|
||||||
|
|
||||||
|
use lua && lua-single_pkg_setup
|
||||||
|
use python && python-single-r1_pkg_setup
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
|
||||||
|
# Fixup a script to use awk instead of nawk
|
||||||
|
sed -i -e \
|
||||||
|
'1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
|
||||||
|
"${S}"/runtime/tools/mve.awk || die "mve.awk sed failed"
|
||||||
|
|
||||||
|
# Read vimrc and gvimrc from /etc/vim
|
||||||
|
echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \
|
||||||
|
>> "${S}"/src/feature.h || die "echo failed"
|
||||||
|
echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \
|
||||||
|
>> "${S}"/src/feature.h || die "echo failed"
|
||||||
|
|
||||||
|
# Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
|
||||||
|
# Hopefully this pattern won't break for a while at least.
|
||||||
|
# This fixes bug #29398 (27 Sep 2003 agriffis)
|
||||||
|
sed -i -e \
|
||||||
|
's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
|
||||||
|
"${S}"/runtime/doc/syntax.txt \
|
||||||
|
"${S}"/runtime/doc/tagsrch.txt \
|
||||||
|
"${S}"/runtime/doc/usr_29.txt \
|
||||||
|
"${S}"/runtime/menu.vim \
|
||||||
|
"${S}"/src/configure.ac || die 'sed failed'
|
||||||
|
|
||||||
|
# gcc on sparc32 has this, uhm, interesting problem with detecting EOF
|
||||||
|
# correctly. To avoid some really entertaining error messages about stuff
|
||||||
|
# which isn't even in the source file being invalid, we'll do some trickery
|
||||||
|
# to make the error never occur. bug 66162 (02 October 2004 ciaranm)
|
||||||
|
find "${S}" -name '*.c' | while read c; do
|
||||||
|
echo >> "$c" || die "echo failed"
|
||||||
|
done
|
||||||
|
|
||||||
|
# conditionally make the manpager.sh script
|
||||||
|
if use vim-pager; then
|
||||||
|
cat > "${S}"/runtime/macros/manpager.sh <<-_EOF_ || die "cat EOF failed"
|
||||||
|
#!/bin/sh
|
||||||
|
sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | \\
|
||||||
|
vim \\
|
||||||
|
-c 'let no_plugin_maps = 1' \\
|
||||||
|
-c 'set nolist nomod ft=man ts=8' \\
|
||||||
|
-c 'let g:showmarks_enable=0' \\
|
||||||
|
-c 'runtime! macros/less.vim' -
|
||||||
|
_EOF_
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Try to avoid sandbox problems. Bug #114475.
|
||||||
|
if [[ -d "${S}"/src/po ]]; then
|
||||||
|
sed -i -e \
|
||||||
|
'/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
|
||||||
|
"${S}"/src/po/Makefile || die "sed failed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
|
||||||
|
|
||||||
|
# Fix bug 18245: Prevent "make" from the following chain:
|
||||||
|
# (1) Notice configure.ac is newer than auto/configure
|
||||||
|
# (2) Rebuild auto/configure
|
||||||
|
# (3) Notice auto/configure is newer than auto/config.mk
|
||||||
|
# (4) Run ./configure (with wrong args) to remake auto/config.mk
|
||||||
|
sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
|
||||||
|
rm src/auto/configure || die "rm failed"
|
||||||
|
|
||||||
|
# bug 908961
|
||||||
|
if use elibc_musl ; then
|
||||||
|
sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
emake -j1 -C src autoconf
|
||||||
|
|
||||||
|
# This should fix a sandbox violation (see bug #24447). The hvc
|
||||||
|
# things are for ppc64, see bug #86433.
|
||||||
|
for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
|
||||||
|
if [[ -e "${file}" ]]; then
|
||||||
|
addwrite ${file}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
local myconf=()
|
||||||
|
if use minimal; then
|
||||||
|
myconf=(
|
||||||
|
--with-features=tiny
|
||||||
|
--disable-nls
|
||||||
|
--disable-canberra
|
||||||
|
--disable-acl
|
||||||
|
--enable-gui=no
|
||||||
|
--without-x
|
||||||
|
--disable-darwin
|
||||||
|
--disable-luainterp
|
||||||
|
--disable-perlinterp
|
||||||
|
--disable-pythoninterp
|
||||||
|
--disable-mzschemeinterp
|
||||||
|
--disable-rubyinterp
|
||||||
|
--disable-selinux
|
||||||
|
--disable-tclinterp
|
||||||
|
--disable-gpm
|
||||||
|
)
|
||||||
|
else
|
||||||
|
use debug && append-flags "-DDEBUG"
|
||||||
|
|
||||||
|
myconf=(
|
||||||
|
--with-features=huge
|
||||||
|
$(use_enable sound canberra)
|
||||||
|
$(use_enable acl)
|
||||||
|
$(use_enable crypt libsodium)
|
||||||
|
$(use_enable cscope)
|
||||||
|
$(use_enable gpm)
|
||||||
|
$(use_enable nls)
|
||||||
|
$(use_enable perl perlinterp)
|
||||||
|
$(use_enable python python3interp)
|
||||||
|
$(use_with python python3-command "${PYTHON}")
|
||||||
|
$(use_enable racket mzschemeinterp)
|
||||||
|
$(use_enable ruby rubyinterp)
|
||||||
|
$(use_enable selinux)
|
||||||
|
$(use_enable tcl tclinterp)
|
||||||
|
$(use_enable terminal)
|
||||||
|
)
|
||||||
|
|
||||||
|
# --with-features=huge forces on cscope even if we --disable it. We need
|
||||||
|
# to sed this out to avoid screwiness. (1 Sep 2004 ciaranm)
|
||||||
|
if ! use cscope; then
|
||||||
|
sed -i -e \
|
||||||
|
'/# define FEAT_CSCOPE/d' src/feature.h || die "sed failed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use lua; then
|
||||||
|
# -DLUA_COMPAT_OPENLIB=1 is required to enable the
|
||||||
|
# deprecated (in 5.1) luaL_openlib API (#874690)
|
||||||
|
use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1
|
||||||
|
|
||||||
|
myconf+=(
|
||||||
|
--enable-luainterp
|
||||||
|
$(use_with lua_single_target_luajit luajit)
|
||||||
|
--with-lua-prefix="${EPREFIX}/usr"
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# don't test USE=X here ... see bug #19115
|
||||||
|
# but need to provide a way to link against X ... see bug #20093
|
||||||
|
myconf+=(
|
||||||
|
--enable-gui=no
|
||||||
|
--disable-darwin
|
||||||
|
$(use_with X x)
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# let package manager strip binaries
|
||||||
|
export ac_cv_prog_STRIP="$(type -P true ) faking strip"
|
||||||
|
|
||||||
|
# keep prefix env contained within the EPREFIX
|
||||||
|
use prefix && myconf+=( --without-local-dir )
|
||||||
|
|
||||||
|
if tc-is-cross-compiler ; then
|
||||||
|
export vim_cv_getcwd_broken=no \
|
||||||
|
vim_cv_memmove_handles_overlap=yes \
|
||||||
|
vim_cv_stat_ignores_slash=yes \
|
||||||
|
vim_cv_terminfo=yes \
|
||||||
|
vim_cv_toupper_broken=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
econf \
|
||||||
|
--with-modified-by="Gentoo-${PVR} (RIP Bram)" \
|
||||||
|
"${myconf[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
# The following allows emake to be used
|
||||||
|
emake -j1 -C src auto/osdef.h objects
|
||||||
|
|
||||||
|
emake
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
einfo
|
||||||
|
einfo "Starting vim tests. Several error messages will be shown"
|
||||||
|
einfo "while the tests run. This is normal behaviour and does not"
|
||||||
|
einfo "indicate a fault."
|
||||||
|
einfo
|
||||||
|
ewarn "If the tests fail, your terminal may be left in a strange"
|
||||||
|
ewarn "state. Usually, running 'reset' will fix this."
|
||||||
|
einfo
|
||||||
|
|
||||||
|
# Don't let vim talk to X
|
||||||
|
unset DISPLAY
|
||||||
|
|
||||||
|
# Arch and opensuse seem to do this and at this point, I'm willing
|
||||||
|
# to try anything to avoid random test hangs!
|
||||||
|
export TERM=xterm
|
||||||
|
|
||||||
|
# See https://github.com/vim/vim/blob/f08b0eb8691ff09f98bc4beef986ece1c521655f/src/testdir/runtest.vim#L5
|
||||||
|
# for more information on test variables we can use.
|
||||||
|
# Note that certain variables need vim-compatible regex (not PCRE), see e.g.
|
||||||
|
# http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml.
|
||||||
|
#
|
||||||
|
# Skipped tests:
|
||||||
|
# - Test_expand_star_star
|
||||||
|
# Hangs because of a recursive symlink in /usr/include/nodejs (bug #616680)
|
||||||
|
# - Test_exrc
|
||||||
|
# Looks in wrong location? (bug #742710)
|
||||||
|
# - Test_job_tty_in_out
|
||||||
|
# Fragile and depends on TERM(?)
|
||||||
|
# - Test_spelldump_bang
|
||||||
|
# Hangs.
|
||||||
|
# - Test_fuzzy_completion_env
|
||||||
|
# Too sensitive to leaked environment variables.
|
||||||
|
# - Test_term_mouse_multiple_clicks_to_select_mode
|
||||||
|
# Hangs.
|
||||||
|
# - Test_spelldump
|
||||||
|
# Hangs.
|
||||||
|
# - Test_glvs_*
|
||||||
|
# Depends on local network.
|
||||||
|
export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\|Test_spelldump\|Test_glvs_\)'
|
||||||
|
|
||||||
|
emake -j1 -C src/testdir nongui
|
||||||
|
}
|
||||||
|
|
||||||
|
# Call eselect vi update with --if-unset
|
||||||
|
# to respect user's choice (bug #187449)
|
||||||
|
eselect_vi_update() {
|
||||||
|
ebegin "Calling eselect vi update"
|
||||||
|
eselect vi update --if-unset
|
||||||
|
eend $?
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
|
||||||
|
|
||||||
|
# Note: Do not install symlinks for 'vi', 'ex', or 'view', as these are
|
||||||
|
# managed by eselect-vi
|
||||||
|
dobin src/vim
|
||||||
|
if ! use minimal ; then
|
||||||
|
dosym vim /usr/bin/vimdiff
|
||||||
|
fi
|
||||||
|
dosym vim /usr/bin/rvim
|
||||||
|
dosym vim /usr/bin/rview
|
||||||
|
if use vim-pager ; then
|
||||||
|
dosym ${vimfiles}/macros/less.sh /usr/bin/vimpager
|
||||||
|
dosym ${vimfiles}/macros/manpager.sh /usr/bin/vimmanpager
|
||||||
|
insinto ${vimfiles}/macros
|
||||||
|
doins runtime/macros/manpager.sh
|
||||||
|
fperms a+x ${vimfiles}/macros/manpager.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
domenu runtime/vim.desktop
|
||||||
|
|
||||||
|
newbashcomp "${FILESDIR}"/${PN}-completion ${PN}
|
||||||
|
|
||||||
|
# keep in sync with 'complete ... -F' list
|
||||||
|
bashcomp_alias vim ex vi view rvim rview vimdiff
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Update documentation tags (from vim-doc.eclass)
|
||||||
|
update_vim_helptags
|
||||||
|
|
||||||
|
# Call eselect vi update
|
||||||
|
eselect_vi_update
|
||||||
|
|
||||||
|
# update desktop file mime cache
|
||||||
|
xdg_desktop_database_update
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
# Update documentation tags (from vim-doc.eclass)
|
||||||
|
update_vim_helptags
|
||||||
|
|
||||||
|
# Call eselect vi update
|
||||||
|
eselect_vi_update
|
||||||
|
|
||||||
|
# update desktop file mime cache
|
||||||
|
xdg_desktop_database_update
|
||||||
|
}
|
@ -172,16 +172,6 @@ src_prepare() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
src_configure() {
|
src_configure() {
|
||||||
|
|
||||||
# Fix bug #37354: Disallow -funroll-all-loops on amd64
|
|
||||||
# Bug #57859 suggests that we want to do this for all archs
|
|
||||||
filter-flags -funroll-all-loops
|
|
||||||
|
|
||||||
# Fix bug 76331: -O3 causes problems, use -O2 instead. We'll do this for
|
|
||||||
# everyone since previous flag filtering bugs have turned out to affect
|
|
||||||
# multiple archs...
|
|
||||||
replace-flags -O3 -O2
|
|
||||||
|
|
||||||
emake -j1 -C src autoconf
|
emake -j1 -C src autoconf
|
||||||
|
|
||||||
# This should fix a sandbox violation (see bug #24447). The hvc
|
# This should fix a sandbox violation (see bug #24447). The hvc
|
||||||
|
@ -19,7 +19,7 @@ SRC_URI="
|
|||||||
|
|
||||||
LICENSE="GPL-2+"
|
LICENSE="GPL-2+"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
|
||||||
IUSE="+eselect test"
|
IUSE="+eselect test"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
@ -25,6 +25,8 @@ DIST bash-5.2.tar.gz.sig 95 BLAKE2B 2991b7c46ef1cdca08062f419be47fca7551f4c5d9aa
|
|||||||
DIST bash-5.3-rc2.tar.gz 11032468 BLAKE2B 42f3b6b3b675a618c965fbde8e3052ac4e171b0f50848589ab4996f6a8de22aca8bdaa5819eb21d3e3dbd67cddaad17d8c48d5a977ae77373fedfdec67cb4155 SHA512 8dfd16723ea14a5901f3a056d30a0fa7b633e41495bbf071897f6a7794293dec59e4eb8618345aeb9e06a924e87c8b823e3ab1e3888a963421b1e8398cc0c12e
|
DIST bash-5.3-rc2.tar.gz 11032468 BLAKE2B 42f3b6b3b675a618c965fbde8e3052ac4e171b0f50848589ab4996f6a8de22aca8bdaa5819eb21d3e3dbd67cddaad17d8c48d5a977ae77373fedfdec67cb4155 SHA512 8dfd16723ea14a5901f3a056d30a0fa7b633e41495bbf071897f6a7794293dec59e4eb8618345aeb9e06a924e87c8b823e3ab1e3888a963421b1e8398cc0c12e
|
||||||
DIST bash-5.3-rc2.tar.gz.sig 95 BLAKE2B 2068f4b5e5045f00a389256c8e753253a1f9b7d06970c51516555e463ef3d5e682e28a9052a2fbae0f9ce7bb0f9e31116a0a780ae3dc7d083a71591feee6501d SHA512 2a4cad6d8f5212319045b6139fb8e3c56664efa5ffcf1ef522219f5a100d5385ab627f6c122f9b49178b48e9c2a85da43f72fd70425547c3a71c0ec1ae812e33
|
DIST bash-5.3-rc2.tar.gz.sig 95 BLAKE2B 2068f4b5e5045f00a389256c8e753253a1f9b7d06970c51516555e463ef3d5e682e28a9052a2fbae0f9ce7bb0f9e31116a0a780ae3dc7d083a71591feee6501d SHA512 2a4cad6d8f5212319045b6139fb8e3c56664efa5ffcf1ef522219f5a100d5385ab627f6c122f9b49178b48e9c2a85da43f72fd70425547c3a71c0ec1ae812e33
|
||||||
DIST bash-5.3_rc2_p20250606-727b8d366390fea446f7a566c4be1be6c0e2a765.tar.gz 16083935 BLAKE2B 05821cd7598a6915651ca5f0f9c601ea4e118406d3db652c0989cebe32d15a03e1c95b517740834564e27be1d1e312aa2433f4456a4a8307249d2cfd9fd471fd SHA512 f9f8b17efd119fb0d82251a5be7ead3af8502461116036ffb22b4318f924d97927f1ec010982a21fb0f6fe39ad78e0ccbedfd66a469bb20ed4006bb39595ae4e
|
DIST bash-5.3_rc2_p20250606-727b8d366390fea446f7a566c4be1be6c0e2a765.tar.gz 16083935 BLAKE2B 05821cd7598a6915651ca5f0f9c601ea4e118406d3db652c0989cebe32d15a03e1c95b517740834564e27be1d1e312aa2433f4456a4a8307249d2cfd9fd471fd SHA512 f9f8b17efd119fb0d82251a5be7ead3af8502461116036ffb22b4318f924d97927f1ec010982a21fb0f6fe39ad78e0ccbedfd66a469bb20ed4006bb39595ae4e
|
||||||
|
DIST bash-5.3_rc2_p20250616-0f0cea342e32f1f82aa9cc9026038bfc3bb03e92.tar.gz 16112367 BLAKE2B 5b3644b8a931b7c81c2bca36f880f403f758bf4076d8268c0c607ebabd0239d6e453a748726763b39902fa198748d20cc31994b59e54ef770f38549d295bcb81 SHA512 f53108830f660b58c784559a43a6f9fb988f7a5eb53695ca315ba4b6c3b4af139b35f12de041d3bb014ee8b0b730c709ca46873f6a38c5d1af5d2922d7a52cdd
|
||||||
|
DIST bash-5.3_rc2_p20250627-b35866a2891a9b069e37ca5684d4309c0391e261.tar.gz 16113487 BLAKE2B 3e6af98b369afa1b61bb3f63dd1cf800d3fc109e0af946cf0ddedf0ed15bf602d1bcfef6b31d3ae0441cead3391894e8b3f0ea503ac72e02ecd546ee310ae8ec SHA512 91c7c02aa4077df6fd1151ff949a7063de98b742eae2e1305071e84453ba436a07c62adfc8dceaac7c64ae583c23ae07fa9039277740deaa8981816312e7344f
|
||||||
DIST bash205b-001 1132 BLAKE2B 0c5eef29777d54ef05957ea3d63b1556fb380bd20c238dc28993d822b37bc4e78ff4048ad069f6b8cd25da77ccdeb7aecd86c4349cb9d81e5e94c7001eeae5e6 SHA512 5ce4357468821b05e747201f3aa57225ad8f540c9e2c87051720490e039c30b478b9b662a68f14a0800fefe40184e4495e2645665200f9d75e9a115b2ac08071
|
DIST bash205b-001 1132 BLAKE2B 0c5eef29777d54ef05957ea3d63b1556fb380bd20c238dc28993d822b37bc4e78ff4048ad069f6b8cd25da77ccdeb7aecd86c4349cb9d81e5e94c7001eeae5e6 SHA512 5ce4357468821b05e747201f3aa57225ad8f540c9e2c87051720490e039c30b478b9b662a68f14a0800fefe40184e4495e2645665200f9d75e9a115b2ac08071
|
||||||
DIST bash205b-002 755 BLAKE2B 6a6ed5679d451f02f8104b345c1722d11718ce3b4043b581c17786d40d8da69a34786fb56d0c363dba277b8e9dd33f12f70c9cc73a9fc39ba4a8319406f0458d SHA512 46947b0229478d5c2cfeff68b8ebc00e4ef0c8b94e336ca12f72b4490ba3622c0240c01c17c1641c3b07adc2c64ec94d6d780365e8990768ec8888f3a9526883
|
DIST bash205b-002 755 BLAKE2B 6a6ed5679d451f02f8104b345c1722d11718ce3b4043b581c17786d40d8da69a34786fb56d0c363dba277b8e9dd33f12f70c9cc73a9fc39ba4a8319406f0458d SHA512 46947b0229478d5c2cfeff68b8ebc00e4ef0c8b94e336ca12f72b4490ba3622c0240c01c17c1641c3b07adc2c64ec94d6d780365e8990768ec8888f3a9526883
|
||||||
DIST bash205b-003 2356 BLAKE2B b7887d00d92fd298cd07a15e1c73b516dabd22ecd74c97091636dd97a0cd55024ed698e5cc924c4311d994dd326b1ad074bea35e7650cf9cf4e25c60d2713fa7 SHA512 74528ca5d165b812d299f1c69b47757bd677c0b22ce4217e155cd641708b02364a93c6709fb57b546b376b36da74429a61493921c7c199563da40ddcf1c1f399
|
DIST bash205b-003 2356 BLAKE2B b7887d00d92fd298cd07a15e1c73b516dabd22ecd74c97091636dd97a0cd55024ed698e5cc924c4311d994dd326b1ad074bea35e7650cf9cf4e25c60d2713fa7 SHA512 74528ca5d165b812d299f1c69b47757bd677c0b22ce4217e155cd641708b02364a93c6709fb57b546b376b36da74429a61493921c7c199563da40ddcf1c1f399
|
||||||
|
@ -65,7 +65,7 @@ S=${WORKDIR}/${MY_P}
|
|||||||
LICENSE="GPL-3+"
|
LICENSE="GPL-3+"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
if (( PLEVEL >= 0 )); then
|
if (( PLEVEL >= 0 )); then
|
||||||
KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
fi
|
fi
|
||||||
IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline"
|
IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline"
|
||||||
|
|
||||||
|
412
sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_rc2_p20250616.ebuild
vendored
Normal file
412
sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_rc2_p20250616.ebuild
vendored
Normal file
@ -0,0 +1,412 @@
|
|||||||
|
# Copyright 1999-2025 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chetramey.asc
|
||||||
|
inherit flag-o-matic toolchain-funcs prefix verify-sig
|
||||||
|
|
||||||
|
# Uncomment if we have a patchset.
|
||||||
|
#GENTOO_PATCH_DEV="sam"
|
||||||
|
#GENTOO_PATCH_VER="${PV}"
|
||||||
|
|
||||||
|
MY_PV=${PV/_p*}
|
||||||
|
MY_PV=${MY_PV/_/-}
|
||||||
|
MY_P=${PN}-${MY_PV}
|
||||||
|
MY_PATCHES=()
|
||||||
|
|
||||||
|
# Determine the patchlevel. See ftp://ftp.gnu.org/gnu/bash/bash-5.2-patches/.
|
||||||
|
case ${PV} in
|
||||||
|
9999|*_alpha*|*_beta*|*_rc*)
|
||||||
|
# Set a negative patchlevel to indicate that it's a pre-release.
|
||||||
|
PLEVEL=-1
|
||||||
|
;;
|
||||||
|
*_p*)
|
||||||
|
PLEVEL=${PV##*_p}
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
PLEVEL=0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# The version of readline this bash normally ships with. Note that we only use
|
||||||
|
# the bundled copy of readline for pre-releases.
|
||||||
|
READLINE_VER="8.3_rc1"
|
||||||
|
|
||||||
|
DESCRIPTION="The standard GNU Bourne again shell"
|
||||||
|
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html https://git.savannah.gnu.org/cgit/bash.git"
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]]; then
|
||||||
|
EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git"
|
||||||
|
EGIT_BRANCH=devel
|
||||||
|
inherit git-r3
|
||||||
|
elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
|
||||||
|
# It can be useful to have snapshots in the pre-release period once
|
||||||
|
# the first alpha is out, as various bugs get reported and fixed from
|
||||||
|
# the alpha, and the next pre-release is usually quite far away.
|
||||||
|
#
|
||||||
|
# i.e. if it's worth packaging the alpha, it's worth packaging a followup.
|
||||||
|
BASH_COMMIT="0f0cea342e32f1f82aa9cc9026038bfc3bb03e92"
|
||||||
|
SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.gz -> ${P}-${BASH_COMMIT}.tar.gz"
|
||||||
|
S=${WORKDIR}/${PN}-${BASH_COMMIT}
|
||||||
|
else
|
||||||
|
my_urls=( "mirror://gnu/bash/${MY_P}.tar.gz" )
|
||||||
|
|
||||||
|
# bash-5.1 -> bash51
|
||||||
|
my_p=${PN}$(ver_cut 1-2) my_p=${my_p/.}
|
||||||
|
|
||||||
|
for (( my_patch_idx = 1; my_patch_idx <= PLEVEL; my_patch_idx++ )); do
|
||||||
|
printf -v my_patch_ver %s-%03d "${my_p}" "${my_patch_idx}"
|
||||||
|
my_urls+=( "mirror://gnu/bash/${MY_P}-patches/${my_patch_ver}" )
|
||||||
|
MY_PATCHES+=( "${DISTDIR}/${my_patch_ver}" )
|
||||||
|
done
|
||||||
|
|
||||||
|
SRC_URI="${my_urls[*]} verify-sig? ( ${my_urls[*]/%/.sig} )"
|
||||||
|
S=${WORKDIR}/${MY_P}
|
||||||
|
|
||||||
|
unset -v my_urls my_p my_patch_idx my_patch_ver
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${GENTOO_PATCH_VER} ]]; then
|
||||||
|
SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV:?}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER:?}-patches.tar.xz"
|
||||||
|
fi
|
||||||
|
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
SLOT="0"
|
||||||
|
if (( PLEVEL >= 0 )); then
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
fi
|
||||||
|
IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
>=sys-libs/ncurses-5.2-r2:=
|
||||||
|
nls? ( virtual/libintl )
|
||||||
|
"
|
||||||
|
if (( PLEVEL >= 0 )); then
|
||||||
|
DEPEND+=" readline? ( >=sys-libs/readline-${READLINE_VER}:= )"
|
||||||
|
fi
|
||||||
|
RDEPEND="
|
||||||
|
${DEPEND}
|
||||||
|
"
|
||||||
|
# We only need bison (yacc) when the .y files get patched (bash42-005, bash51-011).
|
||||||
|
BDEPEND="
|
||||||
|
pgo? ( dev-util/gperf )
|
||||||
|
verify-sig? ( sec-keys/openpgp-keys-chetramey )
|
||||||
|
"
|
||||||
|
|
||||||
|
# EAPI 8 tries to append it but it doesn't exist here.
|
||||||
|
QA_CONFIGURE_OPTIONS="--disable-static"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
#"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/
|
||||||
|
|
||||||
|
# Patches to or from Chet, posted to the bug-bash mailing list.
|
||||||
|
"${FILESDIR}/${PN}-5.0-syslog-history-extern.patch"
|
||||||
|
)
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
# bug #7332
|
||||||
|
if is-flag -malign-double; then
|
||||||
|
eerror "Detected bad CFLAGS '-malign-double'. Do not use this"
|
||||||
|
eerror "as it breaks LFS (struct stat64) on x86."
|
||||||
|
die "remove -malign-double from your CFLAGS mr ricer"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use bashlogger; then
|
||||||
|
ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs."
|
||||||
|
ewarn "This will log ALL output you enter into the shell, you have been warned."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
local patch
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]]; then
|
||||||
|
git-r3_src_unpack
|
||||||
|
elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
|
||||||
|
default
|
||||||
|
else
|
||||||
|
if use verify-sig; then
|
||||||
|
verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig}
|
||||||
|
|
||||||
|
for patch in "${MY_PATCHES[@]}"; do
|
||||||
|
verify-sig_verify_detached "${patch}"{,.sig}
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
unpack "${MY_P}.tar.gz"
|
||||||
|
|
||||||
|
if [[ ${GENTOO_PATCH_VER} ]]; then
|
||||||
|
unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# Include official patches.
|
||||||
|
(( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}"
|
||||||
|
|
||||||
|
# Clean out local libs so we know we use system ones w/releases. The
|
||||||
|
# touch utility is invoked for the benefit of config.status.
|
||||||
|
if (( PLEVEL >= 0 )); then
|
||||||
|
rm -rf lib/{readline,termcap}/* \
|
||||||
|
&& touch lib/{readline,termcap}/Makefile.in \
|
||||||
|
&& sed -i -E 's:\$[{(](RL|HIST)_LIBSRC[)}]/[[:alpha:]_-]*\.h::g' Makefile.in \
|
||||||
|
|| die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Prefixify hardcoded path names. No-op for non-prefix.
|
||||||
|
hprefixify pathnames.h.in
|
||||||
|
|
||||||
|
# Avoid regenerating docs after patches, bug #407985.
|
||||||
|
sed -i -E '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in \
|
||||||
|
&& touch -r . doc/* \
|
||||||
|
|| die
|
||||||
|
|
||||||
|
# Sometimes hangs (more noticeable w/ pgo), bug #907403.
|
||||||
|
rm tests/run-jobs || die
|
||||||
|
|
||||||
|
eapply -p0 "${PATCHES[@]}"
|
||||||
|
eapply_user
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local -a myconf
|
||||||
|
|
||||||
|
# Upstream only test with Bison and require GNUisms like YYEOF and
|
||||||
|
# YYERRCODE. The former at least may be in POSIX soon:
|
||||||
|
# https://www.austingroupbugs.net/view.php?id=1269.
|
||||||
|
# configure warns on use of non-Bison but doesn't abort. The result
|
||||||
|
# may misbehave at runtime.
|
||||||
|
unset -v YACC
|
||||||
|
|
||||||
|
if tc-is-cross-compiler; then
|
||||||
|
export CFLAGS_FOR_BUILD="${BUILD_CFLAGS} -std=gnu17"
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf=(
|
||||||
|
--disable-profiling
|
||||||
|
|
||||||
|
# Force linking with system curses ... the bundled termcap lib
|
||||||
|
# sucks bad compared to ncurses. For the most part, ncurses
|
||||||
|
# is here because readline needs it. But bash itself calls
|
||||||
|
# ncurses in one or two small places :(.
|
||||||
|
--with-curses
|
||||||
|
|
||||||
|
$(use_enable mem-scramble)
|
||||||
|
$(use_enable net net-redirections)
|
||||||
|
$(use_enable readline)
|
||||||
|
$(use_enable readline bang-history)
|
||||||
|
$(use_enable readline history)
|
||||||
|
$(use_with afs)
|
||||||
|
$(use_with mem-scramble bash-malloc)
|
||||||
|
)
|
||||||
|
|
||||||
|
# For descriptions of these, see config-top.h.
|
||||||
|
# bashrc/#26952 bash_logout/#90488 ssh/#24762 mktemp/#574426
|
||||||
|
append-cppflags \
|
||||||
|
-DDEFAULT_PATH_VALUE=\'\""${EPREFIX}"/usr/local/sbin:"${EPREFIX}"/usr/local/bin:"${EPREFIX}"/usr/sbin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/bin\"\' \
|
||||||
|
-DSTANDARD_UTILS_PATH=\'\""${EPREFIX}"/bin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/usr/sbin\"\' \
|
||||||
|
-DSYS_BASHRC=\'\""${EPREFIX}"/etc/bash/bashrc\"\' \
|
||||||
|
-DSYS_BASH_LOGOUT=\'\""${EPREFIX}"/etc/bash/bash_logout\"\' \
|
||||||
|
-DNON_INTERACTIVE_LOGIN_SHELLS \
|
||||||
|
-DSSH_SOURCE_BASHRC \
|
||||||
|
$(use bashlogger && echo -DSYSLOG_HISTORY)
|
||||||
|
|
||||||
|
use nls || myconf+=( --disable-nls )
|
||||||
|
|
||||||
|
if (( PLEVEL >= 0 )); then
|
||||||
|
# Historically, we always used the builtin readline, but since
|
||||||
|
# our handling of SONAME upgrades has gotten much more stable
|
||||||
|
# in the PM (and the readline ebuild itself preserves the old
|
||||||
|
# libs during upgrades), linking against the system copy should
|
||||||
|
# be safe.
|
||||||
|
# Exact cached version here doesn't really matter as long as it
|
||||||
|
# is at least what's in the DEPEND up above.
|
||||||
|
export ac_cv_rl_version=${READLINE_VER%%_*}
|
||||||
|
|
||||||
|
# Use system readline only with released versions.
|
||||||
|
myconf+=( --with-installed-readline=. )
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use plugins; then
|
||||||
|
append-ldflags "-Wl,-rpath,${EPREFIX}/usr/$(get_libdir)/bash"
|
||||||
|
else
|
||||||
|
# Disable the plugins logic by hand since bash doesn't provide
|
||||||
|
# a way of doing it.
|
||||||
|
export ac_cv_func_dl{close,open,sym}=no \
|
||||||
|
ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no
|
||||||
|
|
||||||
|
sed -i -e '/LOCAL_LDFLAGS=/s:-rdynamic::' configure || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# bug #444070
|
||||||
|
tc-export AR
|
||||||
|
|
||||||
|
econf "${myconf[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
local -a pgo_generate_flags pgo_use_flags
|
||||||
|
local flag
|
||||||
|
|
||||||
|
# -fprofile-partial-training because upstream notes the test suite isn't
|
||||||
|
# super comprehensive.
|
||||||
|
# https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo
|
||||||
|
if use pgo; then
|
||||||
|
pgo_generate_flags=(
|
||||||
|
-fprofile-update=atomic
|
||||||
|
-fprofile-dir="${T}"/pgo
|
||||||
|
-fprofile-generate="${T}"/pgo
|
||||||
|
)
|
||||||
|
pgo_use_flags=(
|
||||||
|
-fprofile-use="${T}"/pgo
|
||||||
|
-fprofile-dir="${T}"/pgo
|
||||||
|
)
|
||||||
|
if flag=$(test-flags-CC -fprofile-partial-training); then
|
||||||
|
pgo_generate_flags+=( "${flag}" )
|
||||||
|
pgo_use_flags+=( "${flag}" )
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}"
|
||||||
|
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" all others
|
||||||
|
|
||||||
|
# Build Bash and run its tests to generate profiles.
|
||||||
|
if (( ${#pgo_generate_flags[@]} )); then
|
||||||
|
# Used in test suite.
|
||||||
|
unset -v A
|
||||||
|
|
||||||
|
emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check
|
||||||
|
|
||||||
|
if tc-is-clang; then
|
||||||
|
llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Rebuild Bash using the profiling data we just generated.
|
||||||
|
emake clean
|
||||||
|
emake CFLAGS="${CFLAGS} ${pgo_use_flags[*]}"
|
||||||
|
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" all others
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Used in test suite.
|
||||||
|
unset -v A
|
||||||
|
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local d f
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
my_prefixify() {
|
||||||
|
while read -r; do
|
||||||
|
if [[ $REPLY == *$1* ]]; then
|
||||||
|
REPLY=${REPLY/"/etc/"/"${EPREFIX}/etc/"}
|
||||||
|
fi
|
||||||
|
printf '%s\n' "${REPLY}" || ! break
|
||||||
|
done < "$2" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
dodir /bin
|
||||||
|
mv -- "${ED}"/usr/bin/bash "${ED}"/bin/ || die
|
||||||
|
dosym bash /bin/rbash
|
||||||
|
|
||||||
|
insinto /etc/bash
|
||||||
|
doins "${FILESDIR}"/bash_logout
|
||||||
|
my_prefixify bashrc.d "${FILESDIR}"/bashrc-r1 | newins - bashrc
|
||||||
|
|
||||||
|
insinto /etc/bash/bashrc.d
|
||||||
|
my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color-r2.bash | newins - 10-gentoo-color.bash
|
||||||
|
newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r2.bash 10-gentoo-title.bash
|
||||||
|
if [[ ! ${EPREFIX} ]]; then
|
||||||
|
doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto /etc/skel
|
||||||
|
for f in bash{_logout,_profile,rc}; do
|
||||||
|
newins "${FILESDIR}/dot-${f}" ".${f}"
|
||||||
|
done
|
||||||
|
|
||||||
|
if use plugins; then
|
||||||
|
exeinto "/usr/$(get_libdir)/bash"
|
||||||
|
set -- examples/loadables/*.o
|
||||||
|
doexe "${@%.o}"
|
||||||
|
|
||||||
|
insinto /usr/include/bash-plugins
|
||||||
|
doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use examples; then
|
||||||
|
for d in examples/{functions,misc,scripts,startup-files}; do
|
||||||
|
exeinto "/usr/share/doc/${PF}/${d}"
|
||||||
|
docinto "${d}"
|
||||||
|
for f in "${d}"/*; do
|
||||||
|
if [[ ${f##*/} != @(PERMISSION|*README) ]]; then
|
||||||
|
doexe "${f}"
|
||||||
|
else
|
||||||
|
dodoc "${f}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install bash_builtins.1 and rbash.1.
|
||||||
|
emake -C doc DESTDIR="${D}" install_builtins
|
||||||
|
sed 's:bash\.1:man1/&:' doc/rbash.1 > "${T}"/rbash.1 || die
|
||||||
|
doman "${T}"/rbash.1
|
||||||
|
|
||||||
|
newdoc CWRU/changelog ChangeLog
|
||||||
|
dosym bash.info /usr/share/info/bashref.info
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_preinst() {
|
||||||
|
if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]]; then
|
||||||
|
mkdir -p -- "${EROOT}"/etc/bash \
|
||||||
|
&& mv -f -- "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/ \
|
||||||
|
|| die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
local old_ver
|
||||||
|
|
||||||
|
# If /bin/sh does not exist, provide it.
|
||||||
|
if [[ ! -e ${EROOT}/bin/sh ]]; then
|
||||||
|
ln -sf -- bash "${EROOT}"/bin/sh || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
read -r old_ver <<<"${REPLACING_VERSIONS}"
|
||||||
|
if [[ ! $old_ver ]]; then
|
||||||
|
:
|
||||||
|
elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
while read -r; do ewarn "${REPLY}"; done <<'EOF'
|
||||||
|
Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash.
|
||||||
|
|
||||||
|
Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the
|
||||||
|
characteristics of the operating environment, it may contain a command to set
|
||||||
|
the terminal's window title. Those who were already choosing to customise the
|
||||||
|
PROMPT_COMMAND variable are now advised to append their commands like so:
|
||||||
|
|
||||||
|
PROMPT_COMMAND+=('custom command goes here')
|
||||||
|
|
||||||
|
Gentoo no longer defaults to having bash set the window title in the case
|
||||||
|
that the terminal is controlled by sshd(8), unless screen is launched on the
|
||||||
|
remote side or the terminal reliably supports saving and restoring the title
|
||||||
|
(as alacritty, foot and tmux do). Those wanting for the title to be set
|
||||||
|
regardless may adjust ~/.bashrc - or create a custom /etc/bash/bashrc.d
|
||||||
|
drop-in - to set PROMPT_COMMMAND like so:
|
||||||
|
|
||||||
|
PROMPT_COMMAND=(genfun_set_win_title)
|
||||||
|
|
||||||
|
Those who would prefer for bash never to interfere with the window title may
|
||||||
|
now opt out of the default title setting behaviour, either with the "unset -v
|
||||||
|
PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired.
|
||||||
|
EOF
|
||||||
|
}
|
412
sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_rc2_p20250627.ebuild
vendored
Normal file
412
sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_rc2_p20250627.ebuild
vendored
Normal file
@ -0,0 +1,412 @@
|
|||||||
|
# Copyright 1999-2025 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chetramey.asc
|
||||||
|
inherit flag-o-matic toolchain-funcs prefix verify-sig
|
||||||
|
|
||||||
|
# Uncomment if we have a patchset.
|
||||||
|
#GENTOO_PATCH_DEV="sam"
|
||||||
|
#GENTOO_PATCH_VER="${PV}"
|
||||||
|
|
||||||
|
MY_PV=${PV/_p*}
|
||||||
|
MY_PV=${MY_PV/_/-}
|
||||||
|
MY_P=${PN}-${MY_PV}
|
||||||
|
MY_PATCHES=()
|
||||||
|
|
||||||
|
# Determine the patchlevel. See ftp://ftp.gnu.org/gnu/bash/bash-5.2-patches/.
|
||||||
|
case ${PV} in
|
||||||
|
9999|*_alpha*|*_beta*|*_rc*)
|
||||||
|
# Set a negative patchlevel to indicate that it's a pre-release.
|
||||||
|
PLEVEL=-1
|
||||||
|
;;
|
||||||
|
*_p*)
|
||||||
|
PLEVEL=${PV##*_p}
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
PLEVEL=0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# The version of readline this bash normally ships with. Note that we only use
|
||||||
|
# the bundled copy of readline for pre-releases.
|
||||||
|
READLINE_VER="8.3_rc1"
|
||||||
|
|
||||||
|
DESCRIPTION="The standard GNU Bourne again shell"
|
||||||
|
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html https://git.savannah.gnu.org/cgit/bash.git"
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]]; then
|
||||||
|
EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git"
|
||||||
|
EGIT_BRANCH=devel
|
||||||
|
inherit git-r3
|
||||||
|
elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
|
||||||
|
# It can be useful to have snapshots in the pre-release period once
|
||||||
|
# the first alpha is out, as various bugs get reported and fixed from
|
||||||
|
# the alpha, and the next pre-release is usually quite far away.
|
||||||
|
#
|
||||||
|
# i.e. if it's worth packaging the alpha, it's worth packaging a followup.
|
||||||
|
BASH_COMMIT="b35866a2891a9b069e37ca5684d4309c0391e261"
|
||||||
|
SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.gz -> ${P}-${BASH_COMMIT}.tar.gz"
|
||||||
|
S=${WORKDIR}/${PN}-${BASH_COMMIT}
|
||||||
|
else
|
||||||
|
my_urls=( "mirror://gnu/bash/${MY_P}.tar.gz" )
|
||||||
|
|
||||||
|
# bash-5.1 -> bash51
|
||||||
|
my_p=${PN}$(ver_cut 1-2) my_p=${my_p/.}
|
||||||
|
|
||||||
|
for (( my_patch_idx = 1; my_patch_idx <= PLEVEL; my_patch_idx++ )); do
|
||||||
|
printf -v my_patch_ver %s-%03d "${my_p}" "${my_patch_idx}"
|
||||||
|
my_urls+=( "mirror://gnu/bash/${MY_P}-patches/${my_patch_ver}" )
|
||||||
|
MY_PATCHES+=( "${DISTDIR}/${my_patch_ver}" )
|
||||||
|
done
|
||||||
|
|
||||||
|
SRC_URI="${my_urls[*]} verify-sig? ( ${my_urls[*]/%/.sig} )"
|
||||||
|
S=${WORKDIR}/${MY_P}
|
||||||
|
|
||||||
|
unset -v my_urls my_p my_patch_idx my_patch_ver
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${GENTOO_PATCH_VER} ]]; then
|
||||||
|
SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV:?}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER:?}-patches.tar.xz"
|
||||||
|
fi
|
||||||
|
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
SLOT="0"
|
||||||
|
if (( PLEVEL >= 0 )); then
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
fi
|
||||||
|
IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
>=sys-libs/ncurses-5.2-r2:=
|
||||||
|
nls? ( virtual/libintl )
|
||||||
|
"
|
||||||
|
if (( PLEVEL >= 0 )); then
|
||||||
|
DEPEND+=" readline? ( >=sys-libs/readline-${READLINE_VER}:= )"
|
||||||
|
fi
|
||||||
|
RDEPEND="
|
||||||
|
${DEPEND}
|
||||||
|
"
|
||||||
|
# We only need bison (yacc) when the .y files get patched (bash42-005, bash51-011).
|
||||||
|
BDEPEND="
|
||||||
|
pgo? ( dev-util/gperf )
|
||||||
|
verify-sig? ( sec-keys/openpgp-keys-chetramey )
|
||||||
|
"
|
||||||
|
|
||||||
|
# EAPI 8 tries to append it but it doesn't exist here.
|
||||||
|
QA_CONFIGURE_OPTIONS="--disable-static"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
#"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/
|
||||||
|
|
||||||
|
# Patches to or from Chet, posted to the bug-bash mailing list.
|
||||||
|
"${FILESDIR}/${PN}-5.0-syslog-history-extern.patch"
|
||||||
|
)
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
# bug #7332
|
||||||
|
if is-flag -malign-double; then
|
||||||
|
eerror "Detected bad CFLAGS '-malign-double'. Do not use this"
|
||||||
|
eerror "as it breaks LFS (struct stat64) on x86."
|
||||||
|
die "remove -malign-double from your CFLAGS mr ricer"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use bashlogger; then
|
||||||
|
ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs."
|
||||||
|
ewarn "This will log ALL output you enter into the shell, you have been warned."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
local patch
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]]; then
|
||||||
|
git-r3_src_unpack
|
||||||
|
elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
|
||||||
|
default
|
||||||
|
else
|
||||||
|
if use verify-sig; then
|
||||||
|
verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig}
|
||||||
|
|
||||||
|
for patch in "${MY_PATCHES[@]}"; do
|
||||||
|
verify-sig_verify_detached "${patch}"{,.sig}
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
unpack "${MY_P}.tar.gz"
|
||||||
|
|
||||||
|
if [[ ${GENTOO_PATCH_VER} ]]; then
|
||||||
|
unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# Include official patches.
|
||||||
|
(( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}"
|
||||||
|
|
||||||
|
# Clean out local libs so we know we use system ones w/releases. The
|
||||||
|
# touch utility is invoked for the benefit of config.status.
|
||||||
|
if (( PLEVEL >= 0 )); then
|
||||||
|
rm -rf lib/{readline,termcap}/* \
|
||||||
|
&& touch lib/{readline,termcap}/Makefile.in \
|
||||||
|
&& sed -i -E 's:\$[{(](RL|HIST)_LIBSRC[)}]/[[:alpha:]_-]*\.h::g' Makefile.in \
|
||||||
|
|| die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Prefixify hardcoded path names. No-op for non-prefix.
|
||||||
|
hprefixify pathnames.h.in
|
||||||
|
|
||||||
|
# Avoid regenerating docs after patches, bug #407985.
|
||||||
|
sed -i -E '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in \
|
||||||
|
&& touch -r . doc/* \
|
||||||
|
|| die
|
||||||
|
|
||||||
|
# Sometimes hangs (more noticeable w/ pgo), bug #907403.
|
||||||
|
rm tests/run-jobs || die
|
||||||
|
|
||||||
|
eapply -p0 "${PATCHES[@]}"
|
||||||
|
eapply_user
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local -a myconf
|
||||||
|
|
||||||
|
# Upstream only test with Bison and require GNUisms like YYEOF and
|
||||||
|
# YYERRCODE. The former at least may be in POSIX soon:
|
||||||
|
# https://www.austingroupbugs.net/view.php?id=1269.
|
||||||
|
# configure warns on use of non-Bison but doesn't abort. The result
|
||||||
|
# may misbehave at runtime.
|
||||||
|
unset -v YACC
|
||||||
|
|
||||||
|
if tc-is-cross-compiler; then
|
||||||
|
export CFLAGS_FOR_BUILD="${BUILD_CFLAGS} -std=gnu17"
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf=(
|
||||||
|
--disable-profiling
|
||||||
|
|
||||||
|
# Force linking with system curses ... the bundled termcap lib
|
||||||
|
# sucks bad compared to ncurses. For the most part, ncurses
|
||||||
|
# is here because readline needs it. But bash itself calls
|
||||||
|
# ncurses in one or two small places :(.
|
||||||
|
--with-curses
|
||||||
|
|
||||||
|
$(use_enable mem-scramble)
|
||||||
|
$(use_enable net net-redirections)
|
||||||
|
$(use_enable readline)
|
||||||
|
$(use_enable readline bang-history)
|
||||||
|
$(use_enable readline history)
|
||||||
|
$(use_with afs)
|
||||||
|
$(use_with mem-scramble bash-malloc)
|
||||||
|
)
|
||||||
|
|
||||||
|
# For descriptions of these, see config-top.h.
|
||||||
|
# bashrc/#26952 bash_logout/#90488 ssh/#24762 mktemp/#574426
|
||||||
|
append-cppflags \
|
||||||
|
-DDEFAULT_PATH_VALUE=\'\""${EPREFIX}"/usr/local/sbin:"${EPREFIX}"/usr/local/bin:"${EPREFIX}"/usr/sbin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/bin\"\' \
|
||||||
|
-DSTANDARD_UTILS_PATH=\'\""${EPREFIX}"/bin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/usr/sbin\"\' \
|
||||||
|
-DSYS_BASHRC=\'\""${EPREFIX}"/etc/bash/bashrc\"\' \
|
||||||
|
-DSYS_BASH_LOGOUT=\'\""${EPREFIX}"/etc/bash/bash_logout\"\' \
|
||||||
|
-DNON_INTERACTIVE_LOGIN_SHELLS \
|
||||||
|
-DSSH_SOURCE_BASHRC \
|
||||||
|
$(use bashlogger && echo -DSYSLOG_HISTORY)
|
||||||
|
|
||||||
|
use nls || myconf+=( --disable-nls )
|
||||||
|
|
||||||
|
if (( PLEVEL >= 0 )); then
|
||||||
|
# Historically, we always used the builtin readline, but since
|
||||||
|
# our handling of SONAME upgrades has gotten much more stable
|
||||||
|
# in the PM (and the readline ebuild itself preserves the old
|
||||||
|
# libs during upgrades), linking against the system copy should
|
||||||
|
# be safe.
|
||||||
|
# Exact cached version here doesn't really matter as long as it
|
||||||
|
# is at least what's in the DEPEND up above.
|
||||||
|
export ac_cv_rl_version=${READLINE_VER%%_*}
|
||||||
|
|
||||||
|
# Use system readline only with released versions.
|
||||||
|
myconf+=( --with-installed-readline=. )
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use plugins; then
|
||||||
|
append-ldflags "-Wl,-rpath,${EPREFIX}/usr/$(get_libdir)/bash"
|
||||||
|
else
|
||||||
|
# Disable the plugins logic by hand since bash doesn't provide
|
||||||
|
# a way of doing it.
|
||||||
|
export ac_cv_func_dl{close,open,sym}=no \
|
||||||
|
ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no
|
||||||
|
|
||||||
|
sed -i -e '/LOCAL_LDFLAGS=/s:-rdynamic::' configure || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# bug #444070
|
||||||
|
tc-export AR
|
||||||
|
|
||||||
|
econf "${myconf[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
local -a pgo_generate_flags pgo_use_flags
|
||||||
|
local flag
|
||||||
|
|
||||||
|
# -fprofile-partial-training because upstream notes the test suite isn't
|
||||||
|
# super comprehensive.
|
||||||
|
# https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo
|
||||||
|
if use pgo; then
|
||||||
|
pgo_generate_flags=(
|
||||||
|
-fprofile-update=atomic
|
||||||
|
-fprofile-dir="${T}"/pgo
|
||||||
|
-fprofile-generate="${T}"/pgo
|
||||||
|
)
|
||||||
|
pgo_use_flags=(
|
||||||
|
-fprofile-use="${T}"/pgo
|
||||||
|
-fprofile-dir="${T}"/pgo
|
||||||
|
)
|
||||||
|
if flag=$(test-flags-CC -fprofile-partial-training); then
|
||||||
|
pgo_generate_flags+=( "${flag}" )
|
||||||
|
pgo_use_flags+=( "${flag}" )
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}"
|
||||||
|
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" all others
|
||||||
|
|
||||||
|
# Build Bash and run its tests to generate profiles.
|
||||||
|
if (( ${#pgo_generate_flags[@]} )); then
|
||||||
|
# Used in test suite.
|
||||||
|
unset -v A
|
||||||
|
|
||||||
|
emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check
|
||||||
|
|
||||||
|
if tc-is-clang; then
|
||||||
|
llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Rebuild Bash using the profiling data we just generated.
|
||||||
|
emake clean
|
||||||
|
emake CFLAGS="${CFLAGS} ${pgo_use_flags[*]}"
|
||||||
|
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" all others
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Used in test suite.
|
||||||
|
unset -v A
|
||||||
|
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local d f
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
my_prefixify() {
|
||||||
|
while read -r; do
|
||||||
|
if [[ $REPLY == *$1* ]]; then
|
||||||
|
REPLY=${REPLY/"/etc/"/"${EPREFIX}/etc/"}
|
||||||
|
fi
|
||||||
|
printf '%s\n' "${REPLY}" || ! break
|
||||||
|
done < "$2" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
dodir /bin
|
||||||
|
mv -- "${ED}"/usr/bin/bash "${ED}"/bin/ || die
|
||||||
|
dosym bash /bin/rbash
|
||||||
|
|
||||||
|
insinto /etc/bash
|
||||||
|
doins "${FILESDIR}"/bash_logout
|
||||||
|
my_prefixify bashrc.d "${FILESDIR}"/bashrc-r1 | newins - bashrc
|
||||||
|
|
||||||
|
insinto /etc/bash/bashrc.d
|
||||||
|
my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color-r2.bash | newins - 10-gentoo-color.bash
|
||||||
|
newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r2.bash 10-gentoo-title.bash
|
||||||
|
if [[ ! ${EPREFIX} ]]; then
|
||||||
|
doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto /etc/skel
|
||||||
|
for f in bash{_logout,_profile,rc}; do
|
||||||
|
newins "${FILESDIR}/dot-${f}" ".${f}"
|
||||||
|
done
|
||||||
|
|
||||||
|
if use plugins; then
|
||||||
|
exeinto "/usr/$(get_libdir)/bash"
|
||||||
|
set -- examples/loadables/*.o
|
||||||
|
doexe "${@%.o}"
|
||||||
|
|
||||||
|
insinto /usr/include/bash-plugins
|
||||||
|
doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use examples; then
|
||||||
|
for d in examples/{functions,misc,scripts,startup-files}; do
|
||||||
|
exeinto "/usr/share/doc/${PF}/${d}"
|
||||||
|
docinto "${d}"
|
||||||
|
for f in "${d}"/*; do
|
||||||
|
if [[ ${f##*/} != @(PERMISSION|*README) ]]; then
|
||||||
|
doexe "${f}"
|
||||||
|
else
|
||||||
|
dodoc "${f}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install bash_builtins.1 and rbash.1.
|
||||||
|
emake -C doc DESTDIR="${D}" install_builtins
|
||||||
|
sed 's:bash\.1:man1/&:' doc/rbash.1 > "${T}"/rbash.1 || die
|
||||||
|
doman "${T}"/rbash.1
|
||||||
|
|
||||||
|
newdoc CWRU/changelog ChangeLog
|
||||||
|
dosym bash.info /usr/share/info/bashref.info
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_preinst() {
|
||||||
|
if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]]; then
|
||||||
|
mkdir -p -- "${EROOT}"/etc/bash \
|
||||||
|
&& mv -f -- "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/ \
|
||||||
|
|| die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
local old_ver
|
||||||
|
|
||||||
|
# If /bin/sh does not exist, provide it.
|
||||||
|
if [[ ! -e ${EROOT}/bin/sh ]]; then
|
||||||
|
ln -sf -- bash "${EROOT}"/bin/sh || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
read -r old_ver <<<"${REPLACING_VERSIONS}"
|
||||||
|
if [[ ! $old_ver ]]; then
|
||||||
|
:
|
||||||
|
elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
while read -r; do ewarn "${REPLY}"; done <<'EOF'
|
||||||
|
Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash.
|
||||||
|
|
||||||
|
Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the
|
||||||
|
characteristics of the operating environment, it may contain a command to set
|
||||||
|
the terminal's window title. Those who were already choosing to customise the
|
||||||
|
PROMPT_COMMAND variable are now advised to append their commands like so:
|
||||||
|
|
||||||
|
PROMPT_COMMAND+=('custom command goes here')
|
||||||
|
|
||||||
|
Gentoo no longer defaults to having bash set the window title in the case
|
||||||
|
that the terminal is controlled by sshd(8), unless screen is launched on the
|
||||||
|
remote side or the terminal reliably supports saving and restoring the title
|
||||||
|
(as alacritty, foot and tmux do). Those wanting for the title to be set
|
||||||
|
regardless may adjust ~/.bashrc - or create a custom /etc/bash/bashrc.d
|
||||||
|
drop-in - to set PROMPT_COMMMAND like so:
|
||||||
|
|
||||||
|
PROMPT_COMMAND=(genfun_set_win_title)
|
||||||
|
|
||||||
|
Those who would prefer for bash never to interfere with the window title may
|
||||||
|
now opt out of the default title setting behaviour, either with the "unset -v
|
||||||
|
PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired.
|
||||||
|
EOF
|
||||||
|
}
|
@ -1 +1,2 @@
|
|||||||
DIST gentoo-bashcomp-20240625.tar.bz2 23794 BLAKE2B 567131238e24744a5083ad8ec484d4342b6891e95b999d11d809da769d8f2ad3536f7da769f0d291663b9c3be46fe67d261cbdcf59a0f846e4f08a66b4106571 SHA512 1b5476ba7cb1b7c2f1d51c03d592245718fb4c2c07ff5171aee1bfa0def2a2f0bbff7a38950d18e3646285e7432cedee0ee75eed1c6348946793f011de4ddcbf
|
DIST gentoo-bashcomp-20240625.tar.bz2 23794 BLAKE2B 567131238e24744a5083ad8ec484d4342b6891e95b999d11d809da769d8f2ad3536f7da769f0d291663b9c3be46fe67d261cbdcf59a0f846e4f08a66b4106571 SHA512 1b5476ba7cb1b7c2f1d51c03d592245718fb4c2c07ff5171aee1bfa0def2a2f0bbff7a38950d18e3646285e7432cedee0ee75eed1c6348946793f011de4ddcbf
|
||||||
|
DIST gentoo-bashcomp-20250620.tar.bz2 23780 BLAKE2B dc4d6dd7d0063056a234cfe4aff3d39b4519848f6f3d68d76f63cdcb5d333da159a88984b8607ae2f9b99ab6bd9ed264b0e4c7f4a7edafe002dbec18cb6c2e19 SHA512 222995b060f762d86c486e34d3e8f740b15a947b4392575bb1af29f11e3cec9c2a0fbdd1a8d397f5356db771adc19df39c2e70ac2dd22b2ce4ee188747ef5b6b
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
# Copyright 1999-2025 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit bash-completion-r1
|
||||||
|
|
||||||
|
DESCRIPTION="Gentoo-specific bash command-line completions (emerge, ebuild, equery, etc)"
|
||||||
|
HOMEPAGE="https://gitweb.gentoo.org/proj/gentoo-bashcomp.git/"
|
||||||
|
SRC_URI="https://gitweb.gentoo.org/proj/${PN}.git/snapshot/${P}.tar.bz2"
|
||||||
|
|
||||||
|
LICENSE="GPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
emake DESTDIR="${D}" install \
|
||||||
|
completionsdir="$(get_bashcompdir)" \
|
||||||
|
helpersdir="$(get_bashhelpersdir)" \
|
||||||
|
compatdir="${EPREFIX}/etc/bash_completion.d"
|
||||||
|
}
|
@ -1 +1,2 @@
|
|||||||
DIST gentoo-syntax-15.tar.bz2 21018 BLAKE2B 2b0ead6d5701f14f321ad02b1cd3fe426b8e98e4d80e66331387f0543d88a2ac6b5d78a1f8c9125dadf24f3508c34d915fa896dc2fb85a8664984d771b48a29e SHA512 69cdcd58933b4f83da81ecc943e205689591748c283005b2e6cd342e623d8e0643979d913ec6a9464ca2b49431ea2317dfb0e6454143d6757f6ba287286d24f1
|
DIST gentoo-syntax-15.tar.bz2 21018 BLAKE2B 2b0ead6d5701f14f321ad02b1cd3fe426b8e98e4d80e66331387f0543d88a2ac6b5d78a1f8c9125dadf24f3508c34d915fa896dc2fb85a8664984d771b48a29e SHA512 69cdcd58933b4f83da81ecc943e205689591748c283005b2e6cd342e623d8e0643979d913ec6a9464ca2b49431ea2317dfb0e6454143d6757f6ba287286d24f1
|
||||||
|
DIST gentoo-syntax-16.tar.bz2 21034 BLAKE2B 71f42dcd81e99e688f73e1df8913bc90e97acbcfdb1649348a7550a2c0888cced976f450406c305e4c8326fe4d405e460ea5d545bcd951ef64ba194b1f504820 SHA512 07baa98902b02dc920cb18a2a12877b59a3ae83558987cad956f9910c0b674f9bbe3f0087e512baac08f407e07e75c51f336562f7574b2600812594fa921bb22
|
||||||
|
42
sdk_container/src/third_party/portage-stable/app-vim/gentoo-syntax/gentoo-syntax-16.ebuild
vendored
Normal file
42
sdk_container/src/third_party/portage-stable/app-vim/gentoo-syntax/gentoo-syntax-16.ebuild
vendored
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
# Copyright 1999-2025 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit vim-plugin
|
||||||
|
|
||||||
|
DESCRIPTION="vim plugin: Gentoo and Portage syntax highlighting"
|
||||||
|
HOMEPAGE="https://github.com/gentoo/gentoo-syntax"
|
||||||
|
SRC_URI="https://gitweb.gentoo.org/proj/gentoo-syntax.git/snapshot/${P}.tar.bz2"
|
||||||
|
|
||||||
|
LICENSE="vim"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
IUSE="ignore-glep31"
|
||||||
|
|
||||||
|
VIM_PLUGIN_HELPFILES="gentoo-syntax"
|
||||||
|
VIM_PLUGIN_MESSAGES="filetype"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
if use ignore-glep31 ; then
|
||||||
|
for f in ftplugin/*.vim ; do
|
||||||
|
ebegin "Removing UTF-8 rules from ${f} ..."
|
||||||
|
sed -i -e 's~\(setlocal fileencoding=utf-8\)~" \1~' ${f} \
|
||||||
|
|| die "waah! bad sed voodoo. need more goats."
|
||||||
|
eend $?
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
vim-plugin_pkg_postinst
|
||||||
|
|
||||||
|
if [[ -z ${REPLACING_VERSIONS} ]] ; then
|
||||||
|
if use ignore-glep31 1>/dev/null ; then
|
||||||
|
ewarn "You have chosen to disable the rules which ensure GLEP 31"
|
||||||
|
ewarn "compliance. When editing ebuilds, please make sure you get"
|
||||||
|
ewarn "the character set correct."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
@ -1,5 +1,7 @@
|
|||||||
DIST automake-1.11.6.tar.xz 1092908 BLAKE2B 17254d81d6920c32aa877b6c892025de8e4060b8bcbe50fff841ada513dd462ddde8fc6838b4976098a812f8fda047e7186cb62cea8175df615dde75a9959144 SHA512 6e4cdf69f07734954f770fd4a7211a8c9dc69fe25a7746bd3c1e01d3139c94cab2900399e87371548833e99687e0d2b59c5e746ab2fdfbc7d47f2c1d439137ba
|
DIST automake-1.11.6.tar.xz 1092908 BLAKE2B 17254d81d6920c32aa877b6c892025de8e4060b8bcbe50fff841ada513dd462ddde8fc6838b4976098a812f8fda047e7186cb62cea8175df615dde75a9959144 SHA512 6e4cdf69f07734954f770fd4a7211a8c9dc69fe25a7746bd3c1e01d3139c94cab2900399e87371548833e99687e0d2b59c5e746ab2fdfbc7d47f2c1d439137ba
|
||||||
DIST automake-1.17.tar.xz 1652632 BLAKE2B 53c24c138faf3d2be4e30ababcccd4d157c03e815fc4b7f3e3063b6648cf254dfa63afe6e3285b21309dbf260335c3e67991db3825e7532b158b25ccaead83f5 SHA512 46aba1c9d64a6368b326020803a2999831c1deaf31eaa1c1dfdcfa5138a7f755643294e82a08b6daab3983b31eee725bdb7b9edc4e9a558374c7d1f1b8e854a7
|
DIST automake-1.17.tar.xz 1652632 BLAKE2B 53c24c138faf3d2be4e30ababcccd4d157c03e815fc4b7f3e3063b6648cf254dfa63afe6e3285b21309dbf260335c3e67991db3825e7532b158b25ccaead83f5 SHA512 46aba1c9d64a6368b326020803a2999831c1deaf31eaa1c1dfdcfa5138a7f755643294e82a08b6daab3983b31eee725bdb7b9edc4e9a558374c7d1f1b8e854a7
|
||||||
DIST automake-1.17.tar.xz.sig 833 BLAKE2B 4564c7189360c61bde7e16a7c3a52b86084fb16b7f4625969fc588a6aa0da687c7b27acf7247822ec0e09e59336acf0ef69784032f255190a070081f6d9da5cc SHA512 180dde452ec097a9267c334044a9ec16bb65cc6ccbc000b7eca0af81ed7ece6f4ce6f6c2be8a2cabca9d48fd46085c81f0ee5d020967104bc25f37f52927829a
|
DIST automake-1.17.tar.xz.sig 833 BLAKE2B 4564c7189360c61bde7e16a7c3a52b86084fb16b7f4625969fc588a6aa0da687c7b27acf7247822ec0e09e59336acf0ef69784032f255190a070081f6d9da5cc SHA512 180dde452ec097a9267c334044a9ec16bb65cc6ccbc000b7eca0af81ed7ece6f4ce6f6c2be8a2cabca9d48fd46085c81f0ee5d020967104bc25f37f52927829a
|
||||||
|
DIST automake-1.18.1.tar.xz 1652392 BLAKE2B 4461062a4d596dd87caec7d388449f5f8fe7a4faede8fd0d77d1fb3bb5d23caabb3b715fbb9f29f33326bec527f3d8da6251d9282d4007cef9af146d28fe96cf SHA512 8baa16831416a953a743f4e3c0f55cea5ebefe0f5a7a0e390581981d4461d02dc9038415124e974b2ec390c40daaa241802cd7d42c6fafb793f87cf355db2a61
|
||||||
|
DIST automake-1.18.1.tar.xz.sig 488 BLAKE2B c8efc6847f83d3c1565783ce9d1c22924ca5e409894f7d9f28b2b492b3c2cb6e937fa85f6c36a67fd484fffd0b89cdae0a09239ab71e6da8d01015528a78c9ed SHA512 5a1f0e89a8f3826c766aa98617765f4a576dc278abb7a0a4c0fa04d27d15bf670b79853642914db58731eb4dc737f0b9ad65ba9a07b7bb227e763e90e2e54349
|
||||||
DIST automake-1.18.tar.xz 1652364 BLAKE2B 45456d6d0fdcd1222c79980ede1df16dfbf18fa4d4698289dbef7c9e24ae8877881678974c5defcce0a9f46b72882b4603e457e8142722174ccf0e495f941550 SHA512 3488d9188a9e11a3e7f911f429ef49d2d92c5ea42262e3e288e1d4de39217facd5a7b7c7ccac06e6fd78a661985af1fe5638353575ebadffb36fc22553e5f782
|
DIST automake-1.18.tar.xz 1652364 BLAKE2B 45456d6d0fdcd1222c79980ede1df16dfbf18fa4d4698289dbef7c9e24ae8877881678974c5defcce0a9f46b72882b4603e457e8142722174ccf0e495f941550 SHA512 3488d9188a9e11a3e7f911f429ef49d2d92c5ea42262e3e288e1d4de39217facd5a7b7c7ccac06e6fd78a661985af1fe5638353575ebadffb36fc22553e5f782
|
||||||
DIST automake-1.18.tar.xz.sig 488 BLAKE2B 5a0e9784f536262ab1015e444a67f827e123da7122730e3c4d8c474de544473b731f876a5e743df15b97571990be7509d9007ea8a1ddf00af9cf1747b528016e SHA512 0c01e85ce08a88809d0205de1250836b2a81bb1c16abb395937f737a1bd37fe8d5612c19dbed7d1afd02ed8a8a321356601e4ae8d32b0859dc50fc3617c33f0c
|
DIST automake-1.18.tar.xz.sig 488 BLAKE2B 5a0e9784f536262ab1015e444a67f827e123da7122730e3c4d8c474de544473b731f876a5e743df15b97571990be7509d9007ea8a1ddf00af9cf1747b528016e SHA512 0c01e85ce08a88809d0205de1250836b2a81bb1c16abb395937f737a1bd37fe8d5612c19dbed7d1afd02ed8a8a321356601e4ae8d32b0859dc50fc3617c33f0c
|
||||||
|
148
sdk_container/src/third_party/portage-stable/dev-build/automake/automake-1.18.1.ebuild
vendored
Normal file
148
sdk_container/src/third_party/portage-stable/dev-build/automake/automake-1.18.1.ebuild
vendored
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
# Copyright 1999-2025 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
# Bumping notes:
|
||||||
|
# * Remember to modify LAST_KNOWN_AUTOMAKE_VER 'upstream' in dev-build/automake-wrapper
|
||||||
|
# on new automake (major) releases, as well as the dependency in RDEPEND below too.
|
||||||
|
# * Update _WANT_AUTOMAKE and _automake_atom case statement in autotools.eclass.
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{11..14} )
|
||||||
|
|
||||||
|
inherit python-any-r1 verify-sig
|
||||||
|
|
||||||
|
MANGLED_SLOT=${PV:0:4}
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
|
EGIT_MIN_CLONE_TYPE=single
|
||||||
|
EGIT_REPO_URI="https://git.savannah.gnu.org/r/${PN}.git"
|
||||||
|
inherit git-r3
|
||||||
|
else
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/karlberry.asc
|
||||||
|
if [[ $(ver_cut 3) -ge 90 ]] ; then
|
||||||
|
MANGLED_SLOT=$(ver_cut 1).$(($(ver_cut 2) + 1))
|
||||||
|
SRC_URI="
|
||||||
|
https://alpha.gnu.org/pub/gnu/${PN}/${P}.tar.xz
|
||||||
|
verify-sig? (
|
||||||
|
https://alpha.gnu.org/pub/gnu/${PN}/${P}.tar.xz.sig
|
||||||
|
)
|
||||||
|
"
|
||||||
|
else
|
||||||
|
SRC_URI="
|
||||||
|
mirror://gnu/${PN}/${P}.tar.xz
|
||||||
|
verify-sig? (
|
||||||
|
mirror://gnu/${PN}/${P}.tar.xz.sig
|
||||||
|
)
|
||||||
|
"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="Used to generate Makefile.in from Makefile.am"
|
||||||
|
HOMEPAGE="https://www.gnu.org/software/automake/"
|
||||||
|
|
||||||
|
LICENSE="GPL-2+ FSFAP"
|
||||||
|
# Use Gentoo versioning for slotting.
|
||||||
|
SLOT="${MANGLED_SLOT}"
|
||||||
|
IUSE="test"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
>=dev-lang/perl-5.6
|
||||||
|
>=dev-build/automake-wrapper-20250528
|
||||||
|
>=dev-build/autoconf-2.69:*
|
||||||
|
sys-devel/gnuconfig
|
||||||
|
"
|
||||||
|
BDEPEND="
|
||||||
|
app-alternatives/gzip
|
||||||
|
sys-apps/help2man
|
||||||
|
dev-build/autoconf-wrapper
|
||||||
|
dev-build/autoconf
|
||||||
|
test? (
|
||||||
|
${PYTHON_DEPS}
|
||||||
|
dev-util/dejagnu
|
||||||
|
sys-devel/bison
|
||||||
|
sys-devel/flex
|
||||||
|
)
|
||||||
|
verify-sig? ( sec-keys/openpgp-keys-karlberry )
|
||||||
|
"
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
use test && python-any-r1_pkg_setup
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
|
||||||
|
export WANT_AUTOCONF=2.5
|
||||||
|
# Don't try wrapping the autotools - this thing runs as it tends
|
||||||
|
# to be a bit esoteric, and the script does `set -e` itself.
|
||||||
|
./bootstrap || die
|
||||||
|
sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
|
||||||
|
|
||||||
|
# bug #628912
|
||||||
|
if ! has_version -b sys-apps/texinfo ; then
|
||||||
|
touch doc/{stamp-vti,version.texi,automake.info} || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Also used in install.
|
||||||
|
infopath="${EPREFIX}/usr/share/automake-${PV}/info"
|
||||||
|
econf --infodir="${infopath}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Fails with byacc/flex
|
||||||
|
emake YACC="bison -y" LEX="flex" check
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
default
|
||||||
|
|
||||||
|
rm "${ED}"/usr/share/aclocal/README || die
|
||||||
|
rmdir "${ED}"/usr/share/aclocal || die
|
||||||
|
rm \
|
||||||
|
"${ED}"/usr/bin/{aclocal,automake} \
|
||||||
|
"${ED}"/usr/share/man/man1/{aclocal,automake}.1 || die
|
||||||
|
|
||||||
|
# remove all config.guess and config.sub files replacing them
|
||||||
|
# w/a symlink to a specific gnuconfig version
|
||||||
|
local x
|
||||||
|
for x in guess sub ; do
|
||||||
|
dosym ../gnuconfig/config.${x} \
|
||||||
|
/usr/share/${PN}-${SLOT}/config.${x}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Avoid QA message about pre-compressed file in docs
|
||||||
|
local tarfile="${ED}/usr/share/doc/${PF}/amhello-1.0.tar.gz"
|
||||||
|
if [[ -f "${tarfile}" ]] ; then
|
||||||
|
gunzip "${tarfile}" || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
pushd "${D}/${infopath}" >/dev/null || die
|
||||||
|
for f in *.info*; do
|
||||||
|
# Install convenience aliases for versioned Automake pages.
|
||||||
|
ln -s "$f" "${f/./-${PV}.}" || die
|
||||||
|
done
|
||||||
|
popd >/dev/null || die
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]]; then
|
||||||
|
local major="89"
|
||||||
|
local minor="999"
|
||||||
|
else
|
||||||
|
local major="$(ver_cut 1)"
|
||||||
|
if [[ $(ver_cut 3) -ge 90 ]] ; then
|
||||||
|
local minor=$(($(ver_cut 2) + 1))
|
||||||
|
else
|
||||||
|
local minor="$(ver_cut 2)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
local idx="$((99999-(major*1000+minor)))"
|
||||||
|
newenvd - "06automake${idx}" <<-EOF
|
||||||
|
INFOPATH="${infopath}"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
docompress "${infopath}"
|
||||||
|
}
|
@ -11,7 +11,7 @@ HOMEPAGE="https://gitlab.gnome.org/GNOME/gtk-doc"
|
|||||||
|
|
||||||
LICENSE="GPL-2+ FDL-1.1"
|
LICENSE="GPL-2+ FDL-1.1"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
|
||||||
RDEPEND="!<dev-util/gtk-doc-${PV}"
|
RDEPEND="!<dev-util/gtk-doc-${PV}"
|
||||||
PDEPEND="virtual/pkgconfig"
|
PDEPEND="virtual/pkgconfig"
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
DIST gtest-1.14.0.tar.gz 867764 BLAKE2B c457f55ac572b9fb1553eee3df7eeeaf1e7dd2c3d747dd5e90dd279038fa5c71bb7b7d9ba1cf7e6143898b2a1d24d100584bd2a48ded41a426870c4825eec1b2 SHA512 765c326ccc1b87a01027385e69238266e356361cd4ee3e18e3c9d137a5d11fa5d657c164d02dd1be8fe693c8e10f2b580588dbfa57d27f070e2750f50d3e662c
|
DIST gtest-1.14.0.tar.gz 867764 BLAKE2B c457f55ac572b9fb1553eee3df7eeeaf1e7dd2c3d747dd5e90dd279038fa5c71bb7b7d9ba1cf7e6143898b2a1d24d100584bd2a48ded41a426870c4825eec1b2 SHA512 765c326ccc1b87a01027385e69238266e356361cd4ee3e18e3c9d137a5d11fa5d657c164d02dd1be8fe693c8e10f2b580588dbfa57d27f070e2750f50d3e662c
|
||||||
DIST ninja-1.11.1.tar.gz 229479 BLAKE2B c96cf7c319b7abd65f644465688d256f8b3a576c4616d0c63852e25dd0dc5f63c66708d429d8dddb6228502eb147211a86a5dd369b80ec2228902b370d2343e5 SHA512 1bca38877c70ee6613f347ffccef5adc02ba0a3947c62ae004ea97f918442b5a3de92378e4f820ae2a7676bc7609d25fbc7d41f6cfb3a61e5e4b26ec3639e403
|
DIST ninja-1.11.1.tar.gz 229479 BLAKE2B c96cf7c319b7abd65f644465688d256f8b3a576c4616d0c63852e25dd0dc5f63c66708d429d8dddb6228502eb147211a86a5dd369b80ec2228902b370d2343e5 SHA512 1bca38877c70ee6613f347ffccef5adc02ba0a3947c62ae004ea97f918442b5a3de92378e4f820ae2a7676bc7609d25fbc7d41f6cfb3a61e5e4b26ec3639e403
|
||||||
DIST ninja-1.12.1.tar.gz 240483 BLAKE2B 915545888cbd7d9e6e7e4fb0bad42f6c36ecef2de93356966541de0f8f4315e59e47cf20f189de5de11ba2a038488c7964ec709bad8868488cc03524a88483f4 SHA512 d6e6f0e89a4844a69069ff0c7cefc07704a41c7b0c062a57534de87decdde63e27928147b321111b806aa7efa1061f031a1319b074391db61b0cbdccf096954c
|
DIST ninja-1.12.1.tar.gz 240483 BLAKE2B 915545888cbd7d9e6e7e4fb0bad42f6c36ecef2de93356966541de0f8f4315e59e47cf20f189de5de11ba2a038488c7964ec709bad8868488cc03524a88483f4 SHA512 d6e6f0e89a4844a69069ff0c7cefc07704a41c7b0c062a57534de87decdde63e27928147b321111b806aa7efa1061f031a1319b074391db61b0cbdccf096954c
|
||||||
|
DIST ninja-1.13.0.tar.gz 291328 BLAKE2B 263da5b3991a7569012a46f2311b50fafc32838aebca79772fdebade4c87d1b01286ba24b4055d19b372cd3829a22f04892518227ce976e24a55777d9b9c762f SHA512 e03f721a34c19e47160eae2daa56299f4d030df646f63a277b8089b37ed8922e0cc944c421d257a33ee05b177a61ed15d8eb0e8584c3196da3137677b7b41db6
|
||||||
|
132
sdk_container/src/third_party/portage-stable/dev-build/ninja/ninja-1.13.0.ebuild
vendored
Normal file
132
sdk_container/src/third_party/portage-stable/dev-build/ninja/ninja-1.13.0.ebuild
vendored
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
# Copyright 2012-2025 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{11..14} )
|
||||||
|
|
||||||
|
inherit bash-completion-r1 edo python-any-r1 toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="A small build system similar to make"
|
||||||
|
HOMEPAGE="https://ninja-build.org/"
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]]; then
|
||||||
|
EGIT_REPO_URI="https://github.com/ninja-build/ninja.git"
|
||||||
|
inherit git-r3
|
||||||
|
else
|
||||||
|
SRC_URI="https://github.com/ninja-build/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
fi
|
||||||
|
|
||||||
|
GTEST_VER=1.14.0
|
||||||
|
SRC_URI+=" test? ( https://github.com/google/googletest/archive/refs/tags/v${GTEST_VER}.tar.gz -> gtest-${GTEST_VER}.tar.gz )"
|
||||||
|
|
||||||
|
LICENSE="Apache-2.0"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="doc test"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
BDEPEND="
|
||||||
|
${PYTHON_DEPS}
|
||||||
|
dev-util/re2c
|
||||||
|
doc? (
|
||||||
|
app-text/asciidoc
|
||||||
|
app-text/doxygen
|
||||||
|
dev-libs/libxslt
|
||||||
|
media-gfx/graphviz
|
||||||
|
)
|
||||||
|
"
|
||||||
|
PDEPEND="
|
||||||
|
app-alternatives/ninja
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/ninja-cflags.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
:
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
|
git-r3_src_unpack
|
||||||
|
fi
|
||||||
|
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
bootstrap() {
|
||||||
|
if tc-is-cross-compiler; then
|
||||||
|
local -x AR=$(tc-getBUILD_AR)
|
||||||
|
local -x CXX=$(tc-getBUILD_CXX)
|
||||||
|
local -x CFLAGS=
|
||||||
|
local -x CXXFLAGS="${BUILD_CXXFLAGS} -D_FILE_OFFSET_BITS=64"
|
||||||
|
local -x LDFLAGS=${BUILD_LDFLAGS}
|
||||||
|
fi
|
||||||
|
|
||||||
|
local bootstrap_args=(
|
||||||
|
--with-python=python
|
||||||
|
--bootstrap
|
||||||
|
--verbose
|
||||||
|
$(usev test --gtest-source-dir="${WORKDIR}"/googletest-${GTEST_VER})
|
||||||
|
)
|
||||||
|
|
||||||
|
edo ${EPYTHON} configure.py "${bootstrap_args[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
python_setup
|
||||||
|
|
||||||
|
tc-export AR CXX
|
||||||
|
unset CFLAGS
|
||||||
|
export CXXFLAGS="${CXXFLAGS} -D_FILE_OFFSET_BITS=64"
|
||||||
|
|
||||||
|
bootstrap
|
||||||
|
|
||||||
|
if use doc; then
|
||||||
|
edo ./ninja -v doxygen manual
|
||||||
|
fi
|
||||||
|
|
||||||
|
if tc-is-cross-compiler; then
|
||||||
|
edo ${EPYTHON} configure.py --with-python=python
|
||||||
|
edo ./ninja -v ninja
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
if ! tc-is-cross-compiler; then
|
||||||
|
# Bug 485772
|
||||||
|
ulimit -n 2048
|
||||||
|
edo ./ninja -v ninja_test
|
||||||
|
edo ./ninja_test
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
newbin ninja{,-reference}
|
||||||
|
|
||||||
|
if use doc; then
|
||||||
|
docinto html
|
||||||
|
dodoc -r doc/doxygen/html/.
|
||||||
|
dodoc doc/manual.html
|
||||||
|
fi
|
||||||
|
|
||||||
|
newbashcomp misc/bash-completion ${PN}
|
||||||
|
|
||||||
|
insinto /usr/share/vim/vimfiles/syntax/
|
||||||
|
doins misc/ninja.vim
|
||||||
|
|
||||||
|
echo 'au BufNewFile,BufRead *.ninja set ft=ninja' > "${T}"/ninja.vim || die
|
||||||
|
insinto /usr/share/vim/vimfiles/ftdetect
|
||||||
|
doins "${T}"/ninja.vim
|
||||||
|
|
||||||
|
insinto /usr/share/zsh/site-functions
|
||||||
|
newins misc/zsh-completion _ninja
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
if ! [[ -e "${EROOT}/usr/bin/ninja" ]]; then
|
||||||
|
ln -s ninja-reference "${EROOT}/usr/bin/ninja" || die
|
||||||
|
fi
|
||||||
|
}
|
@ -1,349 +0,0 @@
|
|||||||
# Copyright 1999-2025 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
# See https://sourceware.org/gdb/wiki/DistroAdvice for general packaging
|
|
||||||
# tips & notes.
|
|
||||||
|
|
||||||
GUILE_COMPAT=( 2-2 3-0 )
|
|
||||||
PYTHON_COMPAT=( python3_{10..13} )
|
|
||||||
inherit flag-o-matic guile-single linux-info python-single-r1 strip-linguas toolchain-funcs
|
|
||||||
|
|
||||||
export CTARGET=${CTARGET:-${CHOST}}
|
|
||||||
|
|
||||||
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
|
||||||
if [[ ${CATEGORY} == cross-* ]] ; then
|
|
||||||
export CTARGET=${CATEGORY#cross-}
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
|
||||||
|
|
||||||
case ${PV} in
|
|
||||||
9999*)
|
|
||||||
# live git tree
|
|
||||||
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
|
||||||
inherit git-r3
|
|
||||||
SRC_URI=""
|
|
||||||
;;
|
|
||||||
*.*.50_p2???????|*.*.90_p2???????)
|
|
||||||
# Weekly snapshots
|
|
||||||
MY_PV="${PV/_p/.}"
|
|
||||||
SRC_URI="
|
|
||||||
https://sourceware.org/pub/gdb/snapshots/branch/gdb-weekly-${MY_PV}.tar.xz
|
|
||||||
https://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${MY_PV}.tar.xz
|
|
||||||
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-weekly-${MY_PV}.tar.xz
|
|
||||||
"
|
|
||||||
S="${WORKDIR}/${PN}-${MY_PV}"
|
|
||||||
|
|
||||||
# e.g. 13.1.90_p20230325 is a snapshot on the stable branch, so it's fine
|
|
||||||
if [[ ${PV} == *.[123456789].9?_p2??????? ]] ; then
|
|
||||||
REGULAR_RELEASE=1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*.*.9?)
|
|
||||||
# Prereleases
|
|
||||||
MY_PV="${PV/_p/.}"
|
|
||||||
SRC_URI="
|
|
||||||
https://sourceware.org/pub/gdb/snapshots/branch/gdb-${MY_PV}.tar.xz
|
|
||||||
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-${MY_PV}.tar.xz
|
|
||||||
"
|
|
||||||
S="${WORKDIR}/${PN}-${MY_PV}"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# Normal upstream release
|
|
||||||
SRC_URI="
|
|
||||||
mirror://gnu/gdb/${P}.tar.xz
|
|
||||||
https://sourceware.org/pub/gdb/releases/${P}.tar.xz
|
|
||||||
"
|
|
||||||
|
|
||||||
REGULAR_RELEASE=1
|
|
||||||
esac
|
|
||||||
|
|
||||||
PATCH_DEV=""
|
|
||||||
PATCH_VER=""
|
|
||||||
DESCRIPTION="GNU debugger"
|
|
||||||
HOMEPAGE="https://sourceware.org/gdb/"
|
|
||||||
SRC_URI="
|
|
||||||
${SRC_URI}
|
|
||||||
${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${P}-patches-${PATCH_VER}.tar.xz}
|
|
||||||
${PATCH_VER:+mirror://gentoo/${P}-patches-${PATCH_VER}.tar.xz}
|
|
||||||
"
|
|
||||||
|
|
||||||
LICENSE="GPL-3+ LGPL-2.1+"
|
|
||||||
SLOT="0"
|
|
||||||
IUSE="cet debuginfod guile lzma multitarget nls +python rocm +server sim source-highlight test vanilla xml xxhash zstd"
|
|
||||||
if [[ -n ${REGULAR_RELEASE} ]] ; then
|
|
||||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
|
|
||||||
fi
|
|
||||||
REQUIRED_USE="
|
|
||||||
guile? ( ${GUILE_REQUIRED_USE} )
|
|
||||||
python? ( ${PYTHON_REQUIRED_USE} )
|
|
||||||
rocm? ( multitarget )
|
|
||||||
"
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
dev-libs/mpfr:=
|
|
||||||
dev-libs/gmp:=
|
|
||||||
>=sys-libs/ncurses-5.2-r2:=
|
|
||||||
>=sys-libs/readline-7:=
|
|
||||||
sys-libs/zlib
|
|
||||||
debuginfod? (
|
|
||||||
dev-libs/elfutils[debuginfod(-)]
|
|
||||||
)
|
|
||||||
lzma? ( app-arch/xz-utils )
|
|
||||||
python? ( ${PYTHON_DEPS} )
|
|
||||||
guile? ( ${GUILE_DEPS} )
|
|
||||||
xml? ( dev-libs/expat )
|
|
||||||
rocm? ( <dev-libs/rocdbgapi-6.3 )
|
|
||||||
source-highlight? (
|
|
||||||
dev-util/source-highlight
|
|
||||||
)
|
|
||||||
xxhash? (
|
|
||||||
dev-libs/xxhash
|
|
||||||
)
|
|
||||||
zstd? ( app-arch/zstd:= )
|
|
||||||
"
|
|
||||||
DEPEND="${RDEPEND}"
|
|
||||||
BDEPEND="
|
|
||||||
app-arch/xz-utils
|
|
||||||
sys-apps/texinfo
|
|
||||||
app-alternatives/yacc
|
|
||||||
nls? ( sys-devel/gettext )
|
|
||||||
source-highlight? ( virtual/pkgconfig )
|
|
||||||
test? ( dev-util/dejagnu )
|
|
||||||
"
|
|
||||||
|
|
||||||
QA_CONFIG_IMPL_DECL_SKIP=(
|
|
||||||
MIN # gnulib FP (bug #898688)
|
|
||||||
)
|
|
||||||
|
|
||||||
QA_PREBUILT="usr/share/gdb/guile/*"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
|
|
||||||
)
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
local CONFIG_CHECK
|
|
||||||
|
|
||||||
if kernel_is -ge 6.11.3 ; then
|
|
||||||
# https://forums.gentoo.org/viewtopic-p-8846891.html
|
|
||||||
#
|
|
||||||
# Either CONFIG_PROC_MEM_ALWAYS_FORCE or CONFIG_PROC_MEM_FORCE_PTRACE
|
|
||||||
# should be okay, but not CONFIG_PROC_MEM_NO_FORCE.
|
|
||||||
CONFIG_CHECK+="
|
|
||||||
~!PROC_MEM_NO_FORCE
|
|
||||||
"
|
|
||||||
fi
|
|
||||||
|
|
||||||
linux-info_pkg_setup
|
|
||||||
|
|
||||||
use guile && guile-single_pkg_setup
|
|
||||||
use python && python-single-r1_pkg_setup
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
default
|
|
||||||
|
|
||||||
use guile && guile_bump_sources
|
|
||||||
|
|
||||||
strip-linguas -u bfd/po opcodes/po
|
|
||||||
|
|
||||||
# Avoid using ancient termcap from host on Prefix systems
|
|
||||||
sed -i -e 's/termcap tinfow/tinfow/g' \
|
|
||||||
gdb/configure{.ac,} || die
|
|
||||||
if [[ ${CHOST} == *-solaris* ]] ; then
|
|
||||||
# code relies on C++11, so make sure we get that selected
|
|
||||||
# due to Python 3.11 pymacro.h doing stuff to work around
|
|
||||||
# versioning mess based on the C version, while we're compiling
|
|
||||||
# C++ here, so we need to make it clear we're doing C++11/C11
|
|
||||||
# because Solaris system headers act on these
|
|
||||||
sed -i -e 's/-x c++/-std=c++11/' gdb/Makefile.in || die
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
gdb_branding() {
|
|
||||||
printf "Gentoo ${PV} "
|
|
||||||
|
|
||||||
if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
|
|
||||||
printf "p${PATCH_VER}"
|
|
||||||
else
|
|
||||||
printf "vanilla"
|
|
||||||
fi
|
|
||||||
|
|
||||||
[[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
strip-unsupported-flags
|
|
||||||
|
|
||||||
# See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
|
|
||||||
# Avoid really confusing logs from subconfigure spam, makes logs far
|
|
||||||
# more legible.
|
|
||||||
MAKEOPTS="--output-sync=line ${MAKEOPTS}"
|
|
||||||
|
|
||||||
local myconf=(
|
|
||||||
# portage's econf() does not detect presence of --d-d-t
|
|
||||||
# because it greps only top-level ./configure. But not
|
|
||||||
# libiberty's or gdb's configure.
|
|
||||||
--disable-dependency-tracking
|
|
||||||
--disable-silent-rules
|
|
||||||
|
|
||||||
--with-pkgversion="$(gdb_branding)"
|
|
||||||
--with-bugurl='https://bugs.gentoo.org/'
|
|
||||||
--disable-werror
|
|
||||||
# Disable modules that are in a combined binutils/gdb tree. bug #490566
|
|
||||||
--disable-{binutils,etc,gas,gold,gprof,gprofng,ld}
|
|
||||||
|
|
||||||
$(use_with debuginfod)
|
|
||||||
|
|
||||||
$(use_enable test unit-tests)
|
|
||||||
|
|
||||||
# Allow user to opt into CET for host libraries.
|
|
||||||
# Ideally we would like automagic-or-disabled here.
|
|
||||||
# But the check does not quite work on i686: bug #760926.
|
|
||||||
$(use_enable cet)
|
|
||||||
|
|
||||||
# Helps when cross-compiling. Not to be confused with --with-sysroot.
|
|
||||||
--with-build-sysroot="${ESYSROOT}"
|
|
||||||
)
|
|
||||||
|
|
||||||
is_cross && myconf+=(
|
|
||||||
--with-sysroot="\${prefix}/${CTARGET}"
|
|
||||||
--includedir="\${prefix}/include/${CTARGET}"
|
|
||||||
--with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
|
|
||||||
)
|
|
||||||
|
|
||||||
# gdbserver only works for native targets (CHOST==CTARGET).
|
|
||||||
# it also doesn't support all targets, so rather than duplicate
|
|
||||||
# the target list (which changes between versions), use the
|
|
||||||
# "auto" value when things are turned on, which is triggered
|
|
||||||
# whenever no --enable or --disable is given
|
|
||||||
if is_cross || use !server ; then
|
|
||||||
myconf+=( --disable-gdbserver )
|
|
||||||
fi
|
|
||||||
|
|
||||||
myconf+=(
|
|
||||||
--enable-64-bit-bfd
|
|
||||||
--disable-install-libbfd
|
|
||||||
--disable-install-libiberty
|
|
||||||
--enable-obsolete
|
|
||||||
# This only disables building in the readline subdir.
|
|
||||||
# For gdb itself, it'll use the system version.
|
|
||||||
--disable-readline
|
|
||||||
--with-system-readline
|
|
||||||
# This only disables building in the zlib subdir.
|
|
||||||
# For gdb itself, it'll use the system version.
|
|
||||||
--without-zlib
|
|
||||||
--with-system-zlib
|
|
||||||
--with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
|
|
||||||
--with-amd-dbgapi=$(usex rocm)
|
|
||||||
$(use_with xml expat)
|
|
||||||
$(use_with lzma)
|
|
||||||
$(use_enable nls)
|
|
||||||
$(use_enable sim)
|
|
||||||
$(use_enable source-highlight)
|
|
||||||
$(use multitarget && echo --enable-targets=all)
|
|
||||||
$(use_with python python "${EPYTHON}")
|
|
||||||
$(use_with xxhash)
|
|
||||||
$(use_with guile)
|
|
||||||
$(use_with zstd)
|
|
||||||
|
|
||||||
# Find libraries using the toolchain sysroot rather than the configured
|
|
||||||
# prefix. Needed when cross-compiling.
|
|
||||||
#
|
|
||||||
# Check which libraries to apply this to with:
|
|
||||||
# "${S}"/gdb/configure --help | grep without-lib | sort
|
|
||||||
--without-lib{babeltrace,expat,gmp,iconv,ipt,lzma,mpfr,xxhash}-prefix
|
|
||||||
)
|
|
||||||
|
|
||||||
# source-highlight is detected with pkg-config: bug #716558
|
|
||||||
export ac_cv_path_pkg_config_prog_path="$(tc-getPKG_CONFIG)"
|
|
||||||
|
|
||||||
export CC_FOR_BUILD="$(tc-getBUILD_CC)"
|
|
||||||
|
|
||||||
# ensure proper compiler is detected for Clang builds: bug #831202
|
|
||||||
export GCC_FOR_TARGET="${CC_FOR_TARGET:-$(tc-getCC)}"
|
|
||||||
|
|
||||||
econf "${myconf[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
# Run the unittests (nabbed invocation from Fedora's spec file) at least
|
|
||||||
emake -k -C gdb run GDBFLAGS='-batch -ex "maintenance selftest"'
|
|
||||||
|
|
||||||
# Too many failures
|
|
||||||
# In fact, gdb's test suite needs some work to get passing.
|
|
||||||
# See e.g. https://sourceware.org/gdb/wiki/TestingGDB.
|
|
||||||
# As of 11.2, on amd64: "# of unexpected failures 8600"
|
|
||||||
# Also, ia64 kernel crashes when gdb testsuite is running.
|
|
||||||
#emake -k check
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
emake DESTDIR="${D}" install
|
|
||||||
|
|
||||||
find "${ED}"/usr -name libiberty.a -delete || die
|
|
||||||
|
|
||||||
# Delete translations that conflict with binutils-libs. bug #528088
|
|
||||||
# Note: Should figure out how to store these in an internal gdb dir.
|
|
||||||
if use nls ; then
|
|
||||||
find "${ED}" \
|
|
||||||
-regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
|
|
||||||
-delete || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Don't install docs when building a cross-gdb
|
|
||||||
if [[ ${CTARGET} != ${CHOST} ]] ; then
|
|
||||||
rm -rf "${ED}"/usr/share/{doc,info,locale} || die
|
|
||||||
local f
|
|
||||||
for f in "${ED}"/usr/share/man/*/* ; do
|
|
||||||
if [[ ${f##*/} != ${CTARGET}-* ]] ; then
|
|
||||||
mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install it by hand for now:
|
|
||||||
# https://sourceware.org/ml/gdb-patches/2011-12/msg00915.html
|
|
||||||
# Only install if it exists due to the twisted behavior (see
|
|
||||||
# notes in src_configure above).
|
|
||||||
[[ -e gdbserver/gdbreplay ]] && dobin gdbserver/gdbreplay
|
|
||||||
|
|
||||||
docinto gdb
|
|
||||||
dodoc gdb/CONTRIBUTE gdb/README gdb/MAINTAINERS \
|
|
||||||
gdb/NEWS gdb/PROBLEMS
|
|
||||||
docinto sim
|
|
||||||
dodoc sim/{MAINTAINERS,README-HACKING}
|
|
||||||
|
|
||||||
if use server ; then
|
|
||||||
docinto gdbserver
|
|
||||||
dodoc gdbserver/README
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove shared info pages
|
|
||||||
rm -f "${ED}"/usr/share/info/{annotate,bfd,configure,ctf-spec,standards}.info*
|
|
||||||
|
|
||||||
use guile && guile_unstrip_ccache
|
|
||||||
|
|
||||||
if use python ; then
|
|
||||||
python_optimize "${ED}"/usr/share/gdb/python/gdb
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
# Portage doesn't unmerge files in /etc
|
|
||||||
rm -vf "${EROOT}"/etc/skel/.gdbinit
|
|
||||||
|
|
||||||
if use prefix && [[ ${CHOST} == *-darwin* ]] ; then
|
|
||||||
ewarn "gdb is unable to get a mach task port when installed by Prefix"
|
|
||||||
ewarn "Portage, unprivileged. To make gdb fully functional you'll"
|
|
||||||
ewarn "have to perform the following steps:"
|
|
||||||
ewarn " % sudo chgrp procmod ${EPREFIX}/usr/bin/gdb"
|
|
||||||
ewarn " % sudo chmod g+s ${EPREFIX}/usr/bin/gdb"
|
|
||||||
fi
|
|
||||||
}
|
|
@ -23,7 +23,7 @@ case ${PV} in
|
|||||||
case ${PV} in
|
case ${PV} in
|
||||||
*_beta*|*_rc*) ;;
|
*_beta*|*_rc*) ;;
|
||||||
*)
|
*)
|
||||||
KEYWORDS="-* amd64 ~arm ~arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
|
KEYWORDS="-* amd64 arm ~arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
esac
|
esac
|
||||||
|
@ -20,7 +20,7 @@ case ${PV} in
|
|||||||
*)
|
*)
|
||||||
SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
|
SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
|
||||||
S="${WORKDIR}"/go
|
S="${WORKDIR}"/go
|
||||||
KEYWORDS="-* amd64 ~arm ~arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
|
KEYWORDS="-* amd64 arm ~arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -2,6 +2,9 @@ DIST perl-5.40.0-patches-2.tar.xz 17072 BLAKE2B 7cc1085a0a701f72cf1fce2b7f18ac94
|
|||||||
DIST perl-5.40.0.tar.xz 13804184 BLAKE2B cf191c3ccaf6f395c0c7d08c2ad3456c1dd622d4fe78e7fb3a74c741e9a84f1d39a55f5bc6adbea54c9520b1b387e72e957f9a7544ab8f24968d233cd5b959ae SHA512 a2fb1a24c6367b4043f4e929b2d74fc3bad1415e53b791ed1f219f1701064ae21b2bd3164ba95fcf24eaf458bd54433024ccae43725c0bb82a1ec6a98dc7052d
|
DIST perl-5.40.0.tar.xz 13804184 BLAKE2B cf191c3ccaf6f395c0c7d08c2ad3456c1dd622d4fe78e7fb3a74c741e9a84f1d39a55f5bc6adbea54c9520b1b387e72e957f9a7544ab8f24968d233cd5b959ae SHA512 a2fb1a24c6367b4043f4e929b2d74fc3bad1415e53b791ed1f219f1701064ae21b2bd3164ba95fcf24eaf458bd54433024ccae43725c0bb82a1ec6a98dc7052d
|
||||||
DIST perl-5.40.1.tar.xz 13930924 BLAKE2B 2f421a9eb6c68e2f12b95e6ac70ede3819c0d31c6f25ec5e45337faa053eaf21911413573624e3e84d82e4d863ed21799dbf471865c7e04519dcb81eac9c5c36 SHA512 3ff16b3462ce43ff38dab21b3dfc20f81772b8c9eac19ab96ba2d5e6cbb390e2302fa76c4879f915249357cd11c7ec0d548bcbf3ab2c156df1b9fca95da3f545
|
DIST perl-5.40.1.tar.xz 13930924 BLAKE2B 2f421a9eb6c68e2f12b95e6ac70ede3819c0d31c6f25ec5e45337faa053eaf21911413573624e3e84d82e4d863ed21799dbf471865c7e04519dcb81eac9c5c36 SHA512 3ff16b3462ce43ff38dab21b3dfc20f81772b8c9eac19ab96ba2d5e6cbb390e2302fa76c4879f915249357cd11c7ec0d548bcbf3ab2c156df1b9fca95da3f545
|
||||||
DIST perl-5.40.2.tar.xz 13923524 BLAKE2B e37d0a71fcf91c065f7d6a75077be257c679eb1b8f167a569e4cfd532baa7af621ff887691293a3ec39cd35b960aa3de59f826f3351938994d77d00b44501bca SHA512 1324b119e4370bbeb47a343d152f46c637addb0373ff07f0e214aa9d5912c03cd2bd23987a6e86d43453166412d3a03a52e780201941f679ef4186df16590e41
|
DIST perl-5.40.2.tar.xz 13923524 BLAKE2B e37d0a71fcf91c065f7d6a75077be257c679eb1b8f167a569e4cfd532baa7af621ff887691293a3ec39cd35b960aa3de59f826f3351938994d77d00b44501bca SHA512 1324b119e4370bbeb47a343d152f46c637addb0373ff07f0e214aa9d5912c03cd2bd23987a6e86d43453166412d3a03a52e780201941f679ef4186df16590e41
|
||||||
|
DIST perl-5.42.0-RC1.tar.xz 14380792 BLAKE2B f7f26bfe302313df9d69bf952b94ee70b470ce4493e2cf88014dc6fe5a980b69e55d57eca4253c6c9e3a172f01aa123a4de116200e42fa6581c7ae983697a0b9 SHA512 05bf18c86b3e8372ed8a18f23404e4f3343c74ce821e4484709c13087473161b786fa543a7e602d1c7463a161d3db6389ead240c2d1a56280dd5b14ea71fd996
|
||||||
|
DIST perl-5.42.0-RC2.tar.xz 14395024 BLAKE2B b01e041f00ce45219aaf7dda5221356ccfe594eac3013c2b001be0f261faceb82622403bee03c47e0780d9b142cf7e0cd6ed7f2afb7c3cdc351efdf3a85d9efc SHA512 8642e16adb8065637d07aaa2fc34612c4f749b45a0398a7e8a4518930b14c91117669952f520306e60c20dfb47ea3e411b11efa558c11c917074649d1aa73441
|
||||||
|
DIST perl-5.42.0-patches-1.tar.xz 17108 BLAKE2B 0ac95f8c2665a087215dc896c3e00ccfe4103a781c05eff2f4f80bda4ffc36b5745e190dd85056934d340726a6c25885fda458e560581175531f17fe1e27ae22 SHA512 7e1efa62911229f48250a97f7479d15155e94f577bf257020a7a280b38b7547a3b4a397c212dbfcf5a2d187caa29c6006e76f95c66fe5dd59d3c333680c55986
|
||||||
DIST perl-cross-1.6.1.tar.gz 124122 BLAKE2B b1b78b30f2cf8c5ba12e3df6177b7d102033c8eaceeea9f12a1aeb2bfdf97edda83842e32de797b7ffa3ef6bc66dfba6ccbbacc25367b6f7bc2d137ce58aca93 SHA512 35a4f7966f1f94ef0b6bfe7a82e8a50e0daf6e5e0c1ed99c7c4767aa4f0708db05e8cc01a883257f970703991f617a189609cd57eec63767e2e73de3d6155bdf
|
DIST perl-cross-1.6.1.tar.gz 124122 BLAKE2B b1b78b30f2cf8c5ba12e3df6177b7d102033c8eaceeea9f12a1aeb2bfdf97edda83842e32de797b7ffa3ef6bc66dfba6ccbbacc25367b6f7bc2d137ce58aca93 SHA512 35a4f7966f1f94ef0b6bfe7a82e8a50e0daf6e5e0c1ed99c7c4767aa4f0708db05e8cc01a883257f970703991f617a189609cd57eec63767e2e73de3d6155bdf
|
||||||
DIST perl-cross-1.6.2.tar.gz 123761 BLAKE2B c3c51d5a86940914c3a037d1cace49c6def531cdc380771f968461a3552c0200c8a802f4ff74ddb5fcd494ab1e1b582a4c1c5214be4faae8712fc506b19ca04f SHA512 51b45bf972304634d706d09e27d457636e43f9f27f739004eca529b21245ba78612dcb08b54225fc7ca19511983642c37915939ea8aa1c1a4560093474d9e76b
|
DIST perl-cross-1.6.2.tar.gz 123761 BLAKE2B c3c51d5a86940914c3a037d1cace49c6def531cdc380771f968461a3552c0200c8a802f4ff74ddb5fcd494ab1e1b582a4c1c5214be4faae8712fc506b19ca04f SHA512 51b45bf972304634d706d09e27d457636e43f9f27f739004eca529b21245ba78612dcb08b54225fc7ca19511983642c37915939ea8aa1c1a4560093474d9e76b
|
||||||
DIST perl-cross-1.6.tar.gz 121973 BLAKE2B b3a17d92dd7621a3bc253a6c4e56eccd3adec2c2b52e606c956a08f48d786a16a3ac5beb056a732ba3df92227f210193b0f516fd9d73cac362a04ec52efab029 SHA512 980af804513ec126e40eb9d8200ca54ba805bbb13b38d20a45daaf8d98d6b257e2eebc1ecad56cd47f60e235fa1141f6df9518d748db4f18d5219180750ca615
|
DIST perl-cross-1.6.tar.gz 121973 BLAKE2B b3a17d92dd7621a3bc253a6c4e56eccd3adec2c2b52e606c956a08f48d786a16a3ac5beb056a732ba3df92227f210193b0f516fd9d73cac362a04ec52efab029 SHA512 980af804513ec126e40eb9d8200ca54ba805bbb13b38d20a45daaf8d98d6b257e2eebc1ecad56cd47f60e235fa1141f6df9518d748db4f18d5219180750ca615
|
||||||
|
870
sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0_rc1.ebuild
vendored
Normal file
870
sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0_rc1.ebuild
vendored
Normal file
@ -0,0 +1,870 @@
|
|||||||
|
# Copyright 1999-2025 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing
|
||||||
|
|
||||||
|
PATCH_VER=1
|
||||||
|
CROSS_VER=1.6.2
|
||||||
|
PATCH_BASE="perl-5.42.0-patches-${PATCH_VER}"
|
||||||
|
PATCH_DEV=dilfridge
|
||||||
|
|
||||||
|
DIST_AUTHOR=SHAY
|
||||||
|
|
||||||
|
# Greatest first, don't include yourself
|
||||||
|
# Devel point-releases are not ABI-intercompatible, but stable point releases are
|
||||||
|
# BIN_OLDVERSEN contains only C-ABI-intercompatible versions
|
||||||
|
PERL_BIN_OLDVERSEN=""
|
||||||
|
|
||||||
|
if [[ "${PV##*.}" == "9999" ]]; then
|
||||||
|
DIST_VERSION=5.42.0
|
||||||
|
else
|
||||||
|
DIST_VERSION="${PV/_rc/-RC}"
|
||||||
|
fi
|
||||||
|
SHORT_PV="${DIST_VERSION%.*}"
|
||||||
|
|
||||||
|
# Even numbered major versions are ABI intercompatible
|
||||||
|
# Odd numbered major versions are not
|
||||||
|
if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
|
||||||
|
SUBSLOT="${DIST_VERSION%-RC*}"
|
||||||
|
else
|
||||||
|
SUBSLOT="${DIST_VERSION%.*}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Used only in tar paths
|
||||||
|
MY_P="perl-${DIST_VERSION}"
|
||||||
|
# Used in library paths
|
||||||
|
MY_PV="${DIST_VERSION%-RC*}"
|
||||||
|
|
||||||
|
DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
|
||||||
|
|
||||||
|
HOMEPAGE="https://www.perl.org/"
|
||||||
|
|
||||||
|
SRC_URI="
|
||||||
|
https://drop.perl.fish/${MY_P}.tar.xz
|
||||||
|
mirror://cpan/src/5.0/${MY_P}.tar.xz
|
||||||
|
mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
|
||||||
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz
|
||||||
|
https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
|
||||||
|
"
|
||||||
|
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="|| ( Artistic GPL-1+ )"
|
||||||
|
|
||||||
|
SLOT="0/${SUBSLOT}"
|
||||||
|
|
||||||
|
if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
|
||||||
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
fi
|
||||||
|
|
||||||
|
IUSE="berkdb perl_features_debug doc gdbm perl_features_ithreads minimal perl_features_quadmath"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
berkdb? ( sys-libs/db:= )
|
||||||
|
gdbm? ( >=sys-libs/gdbm-1.8.3:= )
|
||||||
|
app-arch/bzip2
|
||||||
|
>=sys-libs/zlib-1.2.12
|
||||||
|
virtual/libcrypt:=
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="${RDEPEND}"
|
||||||
|
PDEPEND="
|
||||||
|
!minimal? (
|
||||||
|
>=app-admin/perl-cleaner-2.31
|
||||||
|
>=virtual/perl-CPAN-2.290.0
|
||||||
|
>=virtual/perl-Encode-3.120.0
|
||||||
|
>=virtual/perl-File-Temp-0.230.400-r2
|
||||||
|
>=virtual/perl-Data-Dumper-2.154.0
|
||||||
|
>=virtual/perl-Math-BigInt-1.999.842
|
||||||
|
virtual/perl-Test-Harness
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
# bug 390719, bug 523624
|
||||||
|
# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
|
||||||
|
|
||||||
|
dual_scripts() {
|
||||||
|
src_remove_dual perl-core/Archive-Tar 3.40.0 ptar ptardiff ptargrep
|
||||||
|
src_remove_dual perl-core/CPAN 2.380.0 cpan
|
||||||
|
src_remove_dual perl-core/Digest-SHA 6.40.0 shasum
|
||||||
|
src_remove_dual perl-core/Encode 3.210.0 enc2xs piconv
|
||||||
|
src_remove_dual perl-core/ExtUtils-MakeMaker 7.760.0 instmodsh
|
||||||
|
src_remove_dual perl-core/ExtUtils-ParseXS 3.570.0 xsubpp
|
||||||
|
src_remove_dual perl-core/IO-Compress 2.213.0 zipdetails
|
||||||
|
src_remove_dual perl-core/JSON-PP 4.160.0 json_pp
|
||||||
|
src_remove_dual perl-core/Module-CoreList 5.202.506.240 corelist
|
||||||
|
src_remove_dual perl-core/Pod-Checker 1.770.0 podchecker
|
||||||
|
src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
|
||||||
|
src_remove_dual perl-core/Pod-Usage 2.50.0 pod2usage
|
||||||
|
src_remove_dual perl-core/Test-Harness 3.500.0 prove
|
||||||
|
src_remove_dual perl-core/podlators 6.0.2 pod2man pod2text
|
||||||
|
src_remove_dual_man perl-core/podlators 6.0.2 /usr/share/man/man1/perlpodstyle.1
|
||||||
|
}
|
||||||
|
|
||||||
|
check_rebuild() {
|
||||||
|
# Fresh install
|
||||||
|
if [[ -z ${REPLACING_VERSIONS} ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Major Upgrade
|
||||||
|
local v
|
||||||
|
for v in ${REPLACING_VERSIONS}; do
|
||||||
|
[[ ${v%.*} == "${SHORT_PV}" ]] && continue
|
||||||
|
echo ""
|
||||||
|
ewarn "UPDATE THE PERL MODULES:"
|
||||||
|
ewarn "After updating dev-lang/perl the installed Perl modules"
|
||||||
|
ewarn "have to be re-installed. In most cases, this is done automatically"
|
||||||
|
ewarn "by the package manager, but subsequent steps are still recommended"
|
||||||
|
ewarn "to ensure system consistency."
|
||||||
|
ewarn
|
||||||
|
ewarn "You should start with a depclean to remove any unused perl dependencies"
|
||||||
|
ewarn "that may confuse portage in future. Regular depcleans are also encouraged"
|
||||||
|
ewarn "as part of your regular update cycle, as that will keep perl upgrades working."
|
||||||
|
ewarn "Recommended: emerge --depclean -va"
|
||||||
|
ewarn
|
||||||
|
ewarn "You should then call perl-cleaner to clean up any old files and trigger any"
|
||||||
|
ewarn "remaining rebuilds portage may have missed."
|
||||||
|
ewarn "Use: perl-cleaner --all"
|
||||||
|
return 0
|
||||||
|
done
|
||||||
|
|
||||||
|
# Reinstall w/ USE Change
|
||||||
|
if
|
||||||
|
( use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[-ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_ithreads]' ) ) || \
|
||||||
|
( ! use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_ithreads]' ) ) || \
|
||||||
|
( use perl_features_quadmath && ( has_version '<dev-lang/perl-5.38.2-r3[-quadmath]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_quadmath]' ) ) || \
|
||||||
|
( ! use perl_features_quadmath && ( has_version '<dev-lang/perl-5.38.2-r3[quadmath]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_quadmath]' ) ) || \
|
||||||
|
( use perl_features_debug && ( has_version '<dev-lang/perl-5.38.2-r3[-debug]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_debug]' ) ) || \
|
||||||
|
( ! use perl_features_debug && ( has_version '<dev-lang/perl-5.38.2-r3[debug]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_debug]' ) ) ; then
|
||||||
|
echo ""
|
||||||
|
ewarn "TOGGLED PERL FEATURES WARNING:"
|
||||||
|
ewarn "You changed one of the PERL_FEATURES flags ithreads, quadmath, or debug."
|
||||||
|
ewarn "You must rebuild all perl-modules installed. Mostly this should be done automatically"
|
||||||
|
ewarn "via the flag changes of the packages. If the rebuild fails, use perl-cleaner."
|
||||||
|
ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
|
||||||
|
ewarn
|
||||||
|
ewarn "NOTE: Previous to perl-5.38.2-r3, these flags were useflags for dev-lang/perl."
|
||||||
|
ewarn "If you just upgraded and do not intend to change anything, carry the same settings over"
|
||||||
|
ewarn "into a global PERL_FEATURES variable set in make.conf. E.g., "
|
||||||
|
ewarn "dev-lang/perl[ithreads,quadmath] becomes PERL_FEATURES=\"ithreads quadmath\""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_pretend() {
|
||||||
|
if \
|
||||||
|
( use perl_features_ithreads && has_version '<dev-lang/perl-5.38.2-r3[-ithreads]' ) || \
|
||||||
|
( ! use perl_features_ithreads && has_version '<dev-lang/perl-5.38.2-r3[ithreads]' ) || \
|
||||||
|
( use perl_features_quadmath && has_version '<dev-lang/perl-5.38.2-r3[-quadmath]' ) || \
|
||||||
|
( ! use perl_features_quadmath && has_version '<dev-lang/perl-5.38.2-r3[quadmath]' ) || \
|
||||||
|
( use perl_features_debug && has_version '<dev-lang/perl-5.38.2-r3[-debug]' ) || \
|
||||||
|
( ! use perl_features_debug && has_version '<dev-lang/perl-5.38.2-r3[debug]' ) ; \
|
||||||
|
then
|
||||||
|
echo ""
|
||||||
|
ewarn "As of dev-lang/perl-5.38.2-r3, the useflags debug, ithreads, quadmath move into"
|
||||||
|
ewarn "a use-expand variable PERL_FEATURES, which should be set globally in make.conf."
|
||||||
|
ewarn "It appears that you have not set this variable properly yet."
|
||||||
|
ewarn ""
|
||||||
|
ewarn "Giving you a chance to abort and read the corresponding news item now..."
|
||||||
|
for n in 10 9 8 7 6 5 4 3 2 1 ; do
|
||||||
|
echo -n "${n} "
|
||||||
|
sleep 2
|
||||||
|
done;
|
||||||
|
echo "continuing."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
case ${CHOST} in
|
||||||
|
*-darwin*) osname="darwin" ;;
|
||||||
|
*-solaris*) osname="solaris" ;;
|
||||||
|
*) osname="linux" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
myarch="${CHOST%%-*}-${osname}"
|
||||||
|
if use perl_features_debug ; then
|
||||||
|
myarch+="-debug"
|
||||||
|
fi
|
||||||
|
if use perl_features_quadmath ; then
|
||||||
|
myarch+="-quadmath"
|
||||||
|
fi
|
||||||
|
if use perl_features_ithreads ; then
|
||||||
|
mythreading="-multi"
|
||||||
|
myarch+="-thread"
|
||||||
|
fi
|
||||||
|
|
||||||
|
PRIV_BASE="/usr/$(get_libdir)/perl5"
|
||||||
|
SITE_BASE="/usr/local/$(get_libdir)/perl5"
|
||||||
|
VENDOR_BASE="/usr/$(get_libdir)/perl5/vendor_perl"
|
||||||
|
|
||||||
|
LIBPERL="libperl$(get_libname ${MY_PV} )"
|
||||||
|
|
||||||
|
PRIV_LIB="${PRIV_BASE}/${SUBSLOT}"
|
||||||
|
ARCH_LIB="${PRIV_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
||||||
|
SITE_LIB="${SITE_BASE}/${SUBSLOT}"
|
||||||
|
SITE_ARCH="${SITE_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
||||||
|
VENDOR_LIB="${VENDOR_BASE}/${SUBSLOT}"
|
||||||
|
VENDOR_ARCH="${VENDOR_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
||||||
|
|
||||||
|
dual_scripts
|
||||||
|
}
|
||||||
|
|
||||||
|
src_remove_dual_file() {
|
||||||
|
local i pkg ver
|
||||||
|
pkg="$1"
|
||||||
|
ver="$2"
|
||||||
|
shift 2
|
||||||
|
case "${EBUILD_PHASE:-none}" in
|
||||||
|
postinst|postrm)
|
||||||
|
for i in "$@" ; do
|
||||||
|
alternatives_auto_makesym "${i}" "${i}-[0-9]*"
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
setup)
|
||||||
|
for i in "$@" ; do
|
||||||
|
if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; then
|
||||||
|
has_version ${pkg} && ewarn "You must reinstall ${pkg} !"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
install)
|
||||||
|
for i in "$@" ; do
|
||||||
|
if ! [[ -f "${ED}"${i} ]] ; then
|
||||||
|
ewarn "${i} does not exist!"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
mv "${ED}"${i}{,-${ver}-${P}} || die
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
src_remove_dual_man() {
|
||||||
|
local i pkg ver ff
|
||||||
|
pkg="$1"
|
||||||
|
ver="$2"
|
||||||
|
shift 2
|
||||||
|
case "${EBUILD_PHASE:-none}" in
|
||||||
|
postinst|postrm)
|
||||||
|
for i in "$@" ; do
|
||||||
|
ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`
|
||||||
|
ff=${ff##*${i#${i%.[0-9]}}}
|
||||||
|
alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*"
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
install)
|
||||||
|
for i in "$@" ; do
|
||||||
|
if ! [[ -f "${ED}"${i} ]] ; then
|
||||||
|
ewarn "${i} does not exist!"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
src_remove_dual() {
|
||||||
|
local i pkg ver
|
||||||
|
pkg="$1"
|
||||||
|
ver="$2"
|
||||||
|
shift 2
|
||||||
|
for i in "$@" ; do
|
||||||
|
src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}"
|
||||||
|
src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare_perlcross() {
|
||||||
|
cp -a ../perl-cross-${CROSS_VER}/* . || die
|
||||||
|
|
||||||
|
# bug 794463, needs further analysis what is exactly wrong here
|
||||||
|
eapply "${FILESDIR}/perl-5.34.0-crossfit.patch"
|
||||||
|
|
||||||
|
# bug 604072
|
||||||
|
MAKEOPTS+=" -j1"
|
||||||
|
export MAKEOPTS
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare_dynamic() {
|
||||||
|
ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
|
||||||
|
ln -s ${LIBPERL} libperl$(get_libname ) || die
|
||||||
|
}
|
||||||
|
|
||||||
|
# Copy a patch into the patch series
|
||||||
|
# add_patch SRC_PATH DEST_NAME ['description'] ['bug'] ['bug']
|
||||||
|
# - description is optional, but recommended
|
||||||
|
# - all arguments after descriptions are bug URLs
|
||||||
|
add_patch() {
|
||||||
|
local patchdir="${WORKDIR}/patches"
|
||||||
|
local infodir="${WORKDIR}/patch-info"
|
||||||
|
local src_name dest_name desc
|
||||||
|
src_name="$1"
|
||||||
|
dest_name="$2"
|
||||||
|
desc="$3"
|
||||||
|
shift; shift; shift;
|
||||||
|
einfo "Adding ${dest_name} to patch bundle"
|
||||||
|
cp "${src_name}" "${patchdir}/${dest_name}" || die "Couldn't copy ${src_name} to ${dest_name}"
|
||||||
|
if [[ -n "${desc}" ]]; then
|
||||||
|
printf "%s" "${desc}" > "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc"
|
||||||
|
fi
|
||||||
|
if [[ $# -gt 0 ]]; then
|
||||||
|
# Note: when $@ is more than one element, this emits a
|
||||||
|
# line for each element
|
||||||
|
printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Remove a patch using a glob expr
|
||||||
|
# eg:
|
||||||
|
# rm_patch *-darwin-Use-CC*
|
||||||
|
#
|
||||||
|
rm_patch() {
|
||||||
|
local patchdir="${WORKDIR}/patches"
|
||||||
|
local expr="$1"
|
||||||
|
local patch="$( cd "${patchdir}"; echo $expr )"
|
||||||
|
einfo "Removing $patch ($expr) from patch bundle"
|
||||||
|
if [[ -e "${patchdir}/${patch}" ]]; then
|
||||||
|
rm -f "${patchdir}/${patch}" || die "Can't remove ${patch} ( $expr )"
|
||||||
|
else
|
||||||
|
ewarn "No ${expr} found in ${patchdir} to remove"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Yes, this is a reasonable amount of code for something seemingly simple
|
||||||
|
# but this is far easier to debug when things go wrong, and things went wrong
|
||||||
|
# multiple times while I was getting the exact number of slashes right, which
|
||||||
|
# requires circumnavigating both bash and sed escape mechanisms.
|
||||||
|
c_escape_string() {
|
||||||
|
local slash dquote
|
||||||
|
slash='\'
|
||||||
|
dquote='"'
|
||||||
|
re_slash="${slash}${slash}"
|
||||||
|
re_dquote="${slash}${dquote}"
|
||||||
|
|
||||||
|
# Convert \ to \\,
|
||||||
|
# " to \"
|
||||||
|
echo "$1" |\
|
||||||
|
sed "s|${re_slash}|${re_slash}${re_slash}|g" |\
|
||||||
|
sed "s|${re_dquote}|${re_slash}${re_dquote}|g"
|
||||||
|
}
|
||||||
|
c_escape_file() {
|
||||||
|
c_escape_string "$(cat "$1")"
|
||||||
|
}
|
||||||
|
|
||||||
|
apply_patchdir() {
|
||||||
|
local patchdir="${WORKDIR}/patches"
|
||||||
|
local infodir="${WORKDIR}/patch-info"
|
||||||
|
local patchoutput="patchlevel-gentoo.h"
|
||||||
|
|
||||||
|
# Inject Patch-Level info into description for patchlevel.h patch
|
||||||
|
# to show in -V
|
||||||
|
local patch_expr="*List-packaged-patches*"
|
||||||
|
local patch="$( cd "${patchdir}"; echo $patch_expr )";
|
||||||
|
einfo "Injecting patch-level info into ${patch}.desc ( $patch_expr )"
|
||||||
|
|
||||||
|
if [[ -e "${patchdir}/${patch}" ]]; then
|
||||||
|
printf "List packaged patches for %s(%s) in patchlevel.h" "${PF}" "${PATCH_BASE}"\
|
||||||
|
>"${infodir}/${patch}.desc" || die "Can't rewrite ${patch}.desc"
|
||||||
|
else
|
||||||
|
eerror "No $patch_expr found in ${patchdir}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Compute patch list to apply
|
||||||
|
# different name other than PATCHES to stop default
|
||||||
|
# reapplying it
|
||||||
|
# Single depth is currently only supported, as artifacts can reside
|
||||||
|
# from the old layout being multiple-directories, as well as it grossly
|
||||||
|
# simplifying the patchlevel_gentoo.h generation.
|
||||||
|
local PERL_PATCHES=($(
|
||||||
|
find "${patchdir}" -maxdepth 1 -mindepth 1 -type f -printf "%f\n" |\
|
||||||
|
grep -E '[.](diff|patch)$' |\
|
||||||
|
sort -n
|
||||||
|
))
|
||||||
|
|
||||||
|
for patch in "${PERL_PATCHES[@]}"; do
|
||||||
|
eapply "${WORKDIR}"/patches/${patch}
|
||||||
|
done
|
||||||
|
|
||||||
|
einfo "Generating $patchoutput"
|
||||||
|
|
||||||
|
# This code creates a header file, each iteration
|
||||||
|
# creates one-or-more-lines for each entry found in PERL_PATCHES
|
||||||
|
# and STDOUT is redirected to the .h file
|
||||||
|
for patch in "${PERL_PATCHES[@]}"; do
|
||||||
|
local desc_f="${infodir}/${patch}.desc"
|
||||||
|
local bugs_f="${infodir}/${patch}.bugs"
|
||||||
|
|
||||||
|
printf ',"%s"\n' "${patch}"
|
||||||
|
if [[ ! -e "${desc_f}" ]]; then
|
||||||
|
ewarn "No description provided for ${patch} (expected: ${desc_f} )"
|
||||||
|
else
|
||||||
|
local desc="$(c_escape_file "${desc_f}")"
|
||||||
|
printf ',"- %s"\n' "${desc}"
|
||||||
|
fi
|
||||||
|
if [[ -e "${bugs_f}" ]]; then
|
||||||
|
while read -d $'\n' -r line; do
|
||||||
|
local esc_line="$(c_escape_string "${line}")"
|
||||||
|
printf ',"- Bug: %s"\n' "${esc_line}"
|
||||||
|
done <"${bugs_f}"
|
||||||
|
fi
|
||||||
|
done > "${S}/${patchoutput}"
|
||||||
|
printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
|
||||||
|
local patchdir="${WORKDIR}/patches"
|
||||||
|
|
||||||
|
# mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patches" "${WORKDIR}/patches" || die
|
||||||
|
# mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patch-info" "${WORKDIR}/patch-info" || die
|
||||||
|
|
||||||
|
# Prepare Patch dir with additional patches / remove unwanted patches
|
||||||
|
# Inject bug/desc entries for perl -V
|
||||||
|
# Old example:
|
||||||
|
# add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\
|
||||||
|
# "Fix broken miniperl on hppa"\
|
||||||
|
# "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
|
||||||
|
|
||||||
|
if [[ ${CHOST} == *-solaris* ]] ; then
|
||||||
|
# do NOT mess with nsl, on Solaris this is always necessary,
|
||||||
|
# when -lsocket is used e.g. to get h_errno
|
||||||
|
rm_patch "*-nsl-and-cl*"
|
||||||
|
fi
|
||||||
|
|
||||||
|
apply_patchdir
|
||||||
|
|
||||||
|
tc-is-cross-compiler && src_prepare_perlcross
|
||||||
|
|
||||||
|
tc-is-static-only || src_prepare_dynamic
|
||||||
|
|
||||||
|
if use gdbm; then
|
||||||
|
sed -i "s:INC => .*:INC => \"-I${ESYSROOT}/usr/include/gdbm\":g" \
|
||||||
|
ext/NDBM_File/Makefile.PL || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use errno.h from prefix rather than from host system, bug #645804
|
||||||
|
if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
|
||||||
|
sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${CHOST} == *-solaris* ]] ; then
|
||||||
|
# set a soname, fix linking against just built libperl
|
||||||
|
sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||||
|
# fix install_name (soname) not to reference $D
|
||||||
|
sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
|
||||||
|
|
||||||
|
# fix environ linkage absence (only a real issue on Darwin9)
|
||||||
|
if [[ ${CHOST##*-darwin} -le 9 ]] ; then
|
||||||
|
sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \
|
||||||
|
Makefile.SH || die
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
myconf() {
|
||||||
|
# the myconf array is declared in src_configure
|
||||||
|
myconf=( "${myconf[@]}" "$@" )
|
||||||
|
}
|
||||||
|
|
||||||
|
# Outputs a list of versions which have been seen in any of the
|
||||||
|
# primary perl @INC prefix paths, such as:
|
||||||
|
# /usr/lib64/perl5/<NUMBER>
|
||||||
|
# /usr/local/lib64/perl5/<NUMBER>
|
||||||
|
# /usr/lib64/perl5/vendor_perl/<NUMBER>
|
||||||
|
#
|
||||||
|
# All values of NUMBER must be like "5.x.y" or like "5.x"
|
||||||
|
#
|
||||||
|
find_candidate_inc_versions() {
|
||||||
|
local regex='.*/5[.][0-9]+\([.][0-9]+\|\)$'
|
||||||
|
local dirs=(
|
||||||
|
"${EROOT}${PRIV_BASE}"
|
||||||
|
"${EROOT}${SITE_BASE}"
|
||||||
|
"${EROOT}${VENDOR_BASE}"
|
||||||
|
)
|
||||||
|
for dir in "${dirs[@]}"; do
|
||||||
|
if [[ ! -e "${dir}" ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
# Without access to readdir() on these dirs, find will not be able
|
||||||
|
# to reveal any @INC directories inside them, and will subsequently prune
|
||||||
|
# them from the built perl's @INC support, breaking our compatiblity options
|
||||||
|
# entirely.
|
||||||
|
if [[ ! -r "${dir}" || ! -x "${dir}" ]]; then
|
||||||
|
eerror "Bad permissions on ${dir}, this will probably break things"
|
||||||
|
eerror "Ensure ${dir} is +rx for at least uid=$EUID"
|
||||||
|
eerror "Recommended permission is +rx for all"
|
||||||
|
eerror "> chmod o+rx ${dir}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}"
|
||||||
|
find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
# Sort versions passed versiony-ly, remove self-version if present
|
||||||
|
# dedup. Takes each version as an argument
|
||||||
|
sanitize_inc_versions() {
|
||||||
|
local vexclude="${SUBSLOT}"
|
||||||
|
einfo "Normalizing/Sorting candidate list: $*"
|
||||||
|
einfo " to remove '${vexclude}'"
|
||||||
|
# Note, general numeric sort has to be used
|
||||||
|
# for the last component, or unique will convert
|
||||||
|
# 5.30.0 + 5.30 into just 5.30
|
||||||
|
printf "%s\n" "$@" |\
|
||||||
|
grep -vxF "${vexclude}" |\
|
||||||
|
sort -u -nr -t'.' -k1,1rn -k2,2rn -k3,3rg
|
||||||
|
}
|
||||||
|
|
||||||
|
versions_to_inclist() {
|
||||||
|
local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
|
||||||
|
|
||||||
|
for v; do
|
||||||
|
has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ ";
|
||||||
|
echo -n "${v}/ ";
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
versions_to_gentoolibdirs() {
|
||||||
|
local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
|
||||||
|
local root
|
||||||
|
local v
|
||||||
|
for v; do
|
||||||
|
for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do
|
||||||
|
local fullpath="${EROOT}${root}/${v}"
|
||||||
|
if [[ -e "${fullpath}" ]]; then
|
||||||
|
has "${v}" ${oldv} && printf "%s:" "${fullpath}/${myarch}${mythreading}";
|
||||||
|
printf "%s:" "${fullpath}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
declare -a myconf
|
||||||
|
|
||||||
|
export LC_ALL="C"
|
||||||
|
[[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
|
||||||
|
|
||||||
|
# Perl has problems compiling with -Os in your flags with glibc
|
||||||
|
replace-flags "-Os" "-O2"
|
||||||
|
|
||||||
|
# xlocale.h is going away in glibc-2.26, so it's counterproductive
|
||||||
|
# if we use it and include it in CORE/perl.h ... Perl builds just
|
||||||
|
# fine with glibc and locale.h only.
|
||||||
|
# However, the darwin prefix people have no locale.h ...
|
||||||
|
use elibc_glibc && myconf -Ui_xlocale
|
||||||
|
|
||||||
|
# Perl relies on -fwrapv semantics
|
||||||
|
filter-flags -ftrapv
|
||||||
|
|
||||||
|
# This flag makes compiling crash in interesting ways
|
||||||
|
filter-flags "-malign-double"
|
||||||
|
|
||||||
|
# On musl we dont want to use largefile *64 types, since 1) normal
|
||||||
|
# types are 64bit / largefile anyway and 2) the *64 types are going
|
||||||
|
# away in 1.2.4... bug #911233
|
||||||
|
use elibc_musl && myconf -Ud_off64_t
|
||||||
|
|
||||||
|
use sparc && myconf -Ud_longdbl
|
||||||
|
|
||||||
|
# This urgently needs debugging - on m68k, miniperl crashes during
|
||||||
|
# build otherwise..
|
||||||
|
use m68k && append-ldflags -Wl,-z,norelro
|
||||||
|
|
||||||
|
export BUILD_BZIP2=0
|
||||||
|
export BZIP2_INCLUDE=${ESYSROOT}/usr/include
|
||||||
|
export BZIP2_LIB=${ESYSROOT}/usr/$(get_libdir)
|
||||||
|
|
||||||
|
export BUILD_ZLIB=False
|
||||||
|
export ZLIB_INCLUDE=${ESYSROOT}/usr/include
|
||||||
|
export ZLIB_LIB=${ESYSROOT}/usr/$(get_libdir)
|
||||||
|
|
||||||
|
# allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
|
||||||
|
myndbm='U'
|
||||||
|
mygdbm='U'
|
||||||
|
mydb='U'
|
||||||
|
if use gdbm ; then
|
||||||
|
mygdbm='D'
|
||||||
|
if use berkdb ; then
|
||||||
|
myndbm='D'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if use berkdb ; then
|
||||||
|
mydb='D'
|
||||||
|
has_version '=sys-libs/db-1*' && myndbm='D'
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
|
||||||
|
|
||||||
|
if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
|
||||||
|
ewarn "Perl will not be built with berkdb support, use gcc if you need it..."
|
||||||
|
myconf -Ui_db -Ui_ndbm
|
||||||
|
fi
|
||||||
|
|
||||||
|
use perl_features_ithreads && myconf -Dusethreads
|
||||||
|
|
||||||
|
use perl_features_quadmath && myconf -Dusequadmath
|
||||||
|
|
||||||
|
if use perl_features_debug ; then
|
||||||
|
append-cflags "-g"
|
||||||
|
myconf -DDEBUGGING
|
||||||
|
elif [[ ${CFLAGS} == *-g* ]] ; then
|
||||||
|
myconf -DDEBUGGING=-g
|
||||||
|
else
|
||||||
|
myconf -DDEBUGGING=none
|
||||||
|
fi
|
||||||
|
|
||||||
|
# modifying 'optimize' prevents cross configure script from appending required flags
|
||||||
|
if tc-is-cross-compiler; then
|
||||||
|
append-cflags "-fwrapv"
|
||||||
|
tc-export_build_env
|
||||||
|
|
||||||
|
# Needed for the CHOST build too (bug #932385)
|
||||||
|
export CFLAGS="${CFLAGS} -D_GNU_SOURCE"
|
||||||
|
|
||||||
|
# bug #913171
|
||||||
|
export \
|
||||||
|
HOSTCC=$(tc-getBUILD_CC) \
|
||||||
|
HOSTCFLAGS="${CFLAGS_FOR_BUILD} -D_GNU_SOURCE" \
|
||||||
|
HOSTLDFLAGS="${LDFLAGS_FOR_BUILD}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# bug #877659, bug #821577
|
||||||
|
append-cflags -fno-strict-aliasing
|
||||||
|
|
||||||
|
# Autodiscover all old version directories, some of them will even be newer
|
||||||
|
# if you downgrade
|
||||||
|
if [[ -z ${PERL_OLDVERSEN} ]]; then
|
||||||
|
PERL_OLDVERSEN="$( find_candidate_inc_versions )"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fixup versions, removing self match, fixing order and dupes
|
||||||
|
PERL_OLDVERSEN="$( sanitize_inc_versions ${PERL_OLDVERSEN} )"
|
||||||
|
|
||||||
|
# Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string
|
||||||
|
if [[ -n "${PERL_OLDVERSEN// }" ]]; then
|
||||||
|
local inclist="$( versions_to_inclist ${PERL_OLDVERSEN} )"
|
||||||
|
einfo "This version of perl may partially support modules previously"
|
||||||
|
einfo "installed in any of the following paths:"
|
||||||
|
for incpath in ${inclist}; do
|
||||||
|
[[ -e "${EROOT}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT}${VENDOR_BASE}/${incpath}"
|
||||||
|
[[ -e "${EROOT}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROOT}${PRIV_BASE}/${incpath}"
|
||||||
|
[[ -e "${EROOT}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT}${SITE_BASE}/${incpath}"
|
||||||
|
done
|
||||||
|
einfo "This is a temporary measure and you should aim to cleanup these paths"
|
||||||
|
einfo "via world updates and perl-cleaner"
|
||||||
|
# myconf -Dinc_version_list="${inclist}"
|
||||||
|
myconf -Dgentoolibdirs="$( versions_to_gentoolibdirs ${PERL_OLDVERSEN} )"
|
||||||
|
fi
|
||||||
|
|
||||||
|
[[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a"
|
||||||
|
|
||||||
|
# Make sure we can do the final link #523730, need to set deployment
|
||||||
|
# target to override hardcoded 10.3 which breaks on modern OSX
|
||||||
|
[[ ${CHOST} == *-darwin* ]] && \
|
||||||
|
myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
|
||||||
|
|
||||||
|
# Older macOS with non-Apple GCC chokes on inline in system headers
|
||||||
|
# using c89 mode as injected by cflags.SH, in addition, we override
|
||||||
|
# cflags, so we loose PERL_DARWIN which enables compat code that
|
||||||
|
# apparently on more recent macOS releases is no longer necessary
|
||||||
|
[[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
|
||||||
|
append-cflags -Dinline=__inline__ -DPERL_DARWIN
|
||||||
|
|
||||||
|
# Prefix: the host system needs not to follow Gentoo multilib stuff, and in
|
||||||
|
# Prefix itself we don't do multilib either, so make sure perl can find
|
||||||
|
# something compatible.
|
||||||
|
if use prefix ; then
|
||||||
|
# Set a hook to check for each detected library whether it actually works.
|
||||||
|
export libscheck="
|
||||||
|
( echo 'int main(){}' > '${T}'/conftest.c &&
|
||||||
|
$(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
|
||||||
|
) || xxx=/dev/null"
|
||||||
|
|
||||||
|
# Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
|
||||||
|
local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib"
|
||||||
|
myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}"
|
||||||
|
elif [[ $(get_libdir) != "lib" ]] ; then
|
||||||
|
# We need to use " and not ', as the written config.sh use ' ...
|
||||||
|
myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# don't try building ODBM, bug #354453
|
||||||
|
disabled_extensions="ODBM_File"
|
||||||
|
|
||||||
|
if ! use gdbm ; then
|
||||||
|
# workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm"
|
||||||
|
disabled_extensions="${disabled_extensions} GDBM_File NDBM_File"
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf -Dnoextensions="${disabled_extensions}"
|
||||||
|
|
||||||
|
[[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly
|
||||||
|
|
||||||
|
[[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF}
|
||||||
|
# allow fiddling via EXTRA_ECONF, bug 558070
|
||||||
|
eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})"
|
||||||
|
|
||||||
|
myconf \
|
||||||
|
-Duseshrplib \
|
||||||
|
-Darchname="${myarch}" \
|
||||||
|
-Dar="$(tc-getAR)" \
|
||||||
|
-Dcc="$(tc-getCC)" \
|
||||||
|
-Dcpp="$(tc-getCPP)" \
|
||||||
|
-Dld="$(tc-getCC)" \
|
||||||
|
-Dnm="$(tc-getNM)" \
|
||||||
|
-Dranlib="$(tc-getRANLIB)" \
|
||||||
|
-Accflags="${CFLAGS} -DNO_PERL_RAND_SEED" \
|
||||||
|
-Doptimize="${CFLAGS}" \
|
||||||
|
-Dldflags="${LDFLAGS}" \
|
||||||
|
-Dprefix="${EPREFIX}"'/usr' \
|
||||||
|
-Dsiteprefix="${EPREFIX}"'/usr/local' \
|
||||||
|
-Dvendorprefix="${EPREFIX}"'/usr' \
|
||||||
|
-Dscriptdir="${EPREFIX}"'/usr/bin' \
|
||||||
|
-Dprivlib="${EPREFIX}${PRIV_LIB}" \
|
||||||
|
-Darchlib="${EPREFIX}${ARCH_LIB}" \
|
||||||
|
-Dsitelib="${EPREFIX}${SITE_LIB}" \
|
||||||
|
-Dsitearch="${EPREFIX}${SITE_ARCH}" \
|
||||||
|
-Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
|
||||||
|
-Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
|
||||||
|
-Dman1dir="${EPREFIX}"/usr/share/man/man1 \
|
||||||
|
-Dman3dir="${EPREFIX}"/usr/share/man/man3 \
|
||||||
|
-Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
|
||||||
|
-Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
|
||||||
|
-Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
|
||||||
|
-Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
|
||||||
|
-Dman1ext='1' \
|
||||||
|
-Dman3ext='3pm' \
|
||||||
|
-Dlibperl="${LIBPERL}" \
|
||||||
|
-Dlocincpth="${EPREFIX}"'/usr/include ' \
|
||||||
|
-Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \
|
||||||
|
-Duselargefiles \
|
||||||
|
-Duse64bitint \
|
||||||
|
-Dd_semctl_semun \
|
||||||
|
-Dcf_by='Gentoo' \
|
||||||
|
-Dmyhostname='localhost' \
|
||||||
|
-Dperladmin='root@localhost' \
|
||||||
|
-Ud_csh \
|
||||||
|
-Dsh="${BROOT}"/bin/sh \
|
||||||
|
-Dtargetsh="${EPREFIX}"/bin/sh \
|
||||||
|
-Uusenm \
|
||||||
|
"${EXTRA_ECONF[@]}"
|
||||||
|
|
||||||
|
if tc-is-cross-compiler; then
|
||||||
|
./configure \
|
||||||
|
--target="${CHOST}" \
|
||||||
|
--build="${CBUILD}" \
|
||||||
|
-Dinstallprefix='' \
|
||||||
|
-Dinstallusrbinperl='undef' \
|
||||||
|
-Dusevendorprefix='define' \
|
||||||
|
"${myconf[@]}" \
|
||||||
|
|| die "Unable to configure"
|
||||||
|
else
|
||||||
|
sh Configure \
|
||||||
|
-des \
|
||||||
|
-Dinstallprefix="${EPREFIX}"'/usr' \
|
||||||
|
-Dinstallusrbinperl='n' \
|
||||||
|
"${myconf[@]}" \
|
||||||
|
|| die "Unable to configure"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
export NO_GENTOO_NETWORK_TESTS=1;
|
||||||
|
export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}"
|
||||||
|
export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}"
|
||||||
|
if [[ ${EUID} == 0 ]] ; then
|
||||||
|
ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local i
|
||||||
|
local coredir="${ARCH_LIB}/CORE"
|
||||||
|
|
||||||
|
emake DESTDIR="${D}" install
|
||||||
|
|
||||||
|
rm -f "${ED}/usr/bin/perl${MY_PV}"
|
||||||
|
ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die
|
||||||
|
|
||||||
|
if ! tc-is-static-only ; then
|
||||||
|
dolib.so "${ED}"${coredir}/${LIBPERL}
|
||||||
|
rm -f "${ED}"${coredir}/${LIBPERL}
|
||||||
|
ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die
|
||||||
|
ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die
|
||||||
|
|
||||||
|
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die
|
||||||
|
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die
|
||||||
|
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages"
|
||||||
|
|
||||||
|
# This removes ${D} from Config.pm
|
||||||
|
for i in $(find "${D}" -iname "Config.pm" ) ; do
|
||||||
|
einfo "Removing ${D} from ${i}..."
|
||||||
|
sed -i -e "s:${D}::" "${i}" || die "Sed failed"
|
||||||
|
done
|
||||||
|
|
||||||
|
dodoc Changes* README AUTHORS
|
||||||
|
|
||||||
|
if use doc ; then
|
||||||
|
# HTML Documentation
|
||||||
|
# We expect errors, warnings, and such with the following.
|
||||||
|
|
||||||
|
dodir /usr/share/doc/${PF}/html
|
||||||
|
LD_LIBRARY_PATH=. ./perl installhtml \
|
||||||
|
--podroot='.' \
|
||||||
|
--podpath='lib:ext:pod:vms' \
|
||||||
|
--recurse \
|
||||||
|
--htmldir="${ED}/usr/share/doc/${PF}/html"
|
||||||
|
fi
|
||||||
|
|
||||||
|
[[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local
|
||||||
|
|
||||||
|
dual_scripts
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_preinst() {
|
||||||
|
check_rebuild
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
dual_scripts
|
||||||
|
|
||||||
|
if [[ -z "${ROOT}" ]] ; then
|
||||||
|
local INC DIR file
|
||||||
|
INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
|
||||||
|
einfo "Removing old .ph files"
|
||||||
|
for DIR in ${INC} ; do
|
||||||
|
if [[ -d "${DIR}" ]] ; then
|
||||||
|
for file in $(find "${DIR}" -name "*.ph" -type f ) ; do
|
||||||
|
rm -f "${file}"
|
||||||
|
einfo "<< ${file}"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# Silently remove the now empty dirs
|
||||||
|
for DIR in ${INC} ; do
|
||||||
|
if [[ -d "${DIR}" ]] ; then
|
||||||
|
find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
dual_scripts
|
||||||
|
}
|
870
sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0_rc2.ebuild
vendored
Normal file
870
sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0_rc2.ebuild
vendored
Normal file
@ -0,0 +1,870 @@
|
|||||||
|
# Copyright 1999-2025 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing
|
||||||
|
|
||||||
|
PATCH_VER=1
|
||||||
|
CROSS_VER=1.6.2
|
||||||
|
PATCH_BASE="perl-5.42.0-patches-${PATCH_VER}"
|
||||||
|
PATCH_DEV=dilfridge
|
||||||
|
|
||||||
|
DIST_AUTHOR=SHAY
|
||||||
|
|
||||||
|
# Greatest first, don't include yourself
|
||||||
|
# Devel point-releases are not ABI-intercompatible, but stable point releases are
|
||||||
|
# BIN_OLDVERSEN contains only C-ABI-intercompatible versions
|
||||||
|
PERL_BIN_OLDVERSEN=""
|
||||||
|
|
||||||
|
if [[ "${PV##*.}" == "9999" ]]; then
|
||||||
|
DIST_VERSION=5.42.0
|
||||||
|
else
|
||||||
|
DIST_VERSION="${PV/_rc/-RC}"
|
||||||
|
fi
|
||||||
|
SHORT_PV="${DIST_VERSION%.*}"
|
||||||
|
|
||||||
|
# Even numbered major versions are ABI intercompatible
|
||||||
|
# Odd numbered major versions are not
|
||||||
|
if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
|
||||||
|
SUBSLOT="${DIST_VERSION%-RC*}"
|
||||||
|
else
|
||||||
|
SUBSLOT="${DIST_VERSION%.*}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Used only in tar paths
|
||||||
|
MY_P="perl-${DIST_VERSION}"
|
||||||
|
# Used in library paths
|
||||||
|
MY_PV="${DIST_VERSION%-RC*}"
|
||||||
|
|
||||||
|
DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
|
||||||
|
|
||||||
|
HOMEPAGE="https://www.perl.org/"
|
||||||
|
|
||||||
|
SRC_URI="
|
||||||
|
https://drop.perl.fish/${MY_P}.tar.xz
|
||||||
|
mirror://cpan/src/5.0/${MY_P}.tar.xz
|
||||||
|
mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
|
||||||
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz
|
||||||
|
https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
|
||||||
|
"
|
||||||
|
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="|| ( Artistic GPL-1+ )"
|
||||||
|
|
||||||
|
SLOT="0/${SUBSLOT}"
|
||||||
|
|
||||||
|
if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
|
||||||
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
fi
|
||||||
|
|
||||||
|
IUSE="berkdb perl_features_debug doc gdbm perl_features_ithreads minimal perl_features_quadmath"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
berkdb? ( sys-libs/db:= )
|
||||||
|
gdbm? ( >=sys-libs/gdbm-1.8.3:= )
|
||||||
|
app-arch/bzip2
|
||||||
|
>=sys-libs/zlib-1.2.12
|
||||||
|
virtual/libcrypt:=
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="${RDEPEND}"
|
||||||
|
PDEPEND="
|
||||||
|
!minimal? (
|
||||||
|
>=app-admin/perl-cleaner-2.31
|
||||||
|
>=virtual/perl-CPAN-2.290.0
|
||||||
|
>=virtual/perl-Encode-3.120.0
|
||||||
|
>=virtual/perl-File-Temp-0.230.400-r2
|
||||||
|
>=virtual/perl-Data-Dumper-2.154.0
|
||||||
|
>=virtual/perl-Math-BigInt-1.999.842
|
||||||
|
virtual/perl-Test-Harness
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
# bug 390719, bug 523624
|
||||||
|
# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
|
||||||
|
|
||||||
|
dual_scripts() {
|
||||||
|
src_remove_dual perl-core/Archive-Tar 3.40.0 ptar ptardiff ptargrep
|
||||||
|
src_remove_dual perl-core/CPAN 2.380.0 cpan
|
||||||
|
src_remove_dual perl-core/Digest-SHA 6.40.0 shasum
|
||||||
|
src_remove_dual perl-core/Encode 3.210.0 enc2xs piconv
|
||||||
|
src_remove_dual perl-core/ExtUtils-MakeMaker 7.760.0 instmodsh
|
||||||
|
src_remove_dual perl-core/ExtUtils-ParseXS 3.570.0 xsubpp
|
||||||
|
src_remove_dual perl-core/IO-Compress 2.213.0 zipdetails
|
||||||
|
src_remove_dual perl-core/JSON-PP 4.160.0 json_pp
|
||||||
|
src_remove_dual perl-core/Module-CoreList 5.202.506.270 corelist
|
||||||
|
src_remove_dual perl-core/Pod-Checker 1.770.0 podchecker
|
||||||
|
src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
|
||||||
|
src_remove_dual perl-core/Pod-Usage 2.50.0 pod2usage
|
||||||
|
src_remove_dual perl-core/Test-Harness 3.500.0 prove
|
||||||
|
src_remove_dual perl-core/podlators 6.0.2 pod2man pod2text
|
||||||
|
src_remove_dual_man perl-core/podlators 6.0.2 /usr/share/man/man1/perlpodstyle.1
|
||||||
|
}
|
||||||
|
|
||||||
|
check_rebuild() {
|
||||||
|
# Fresh install
|
||||||
|
if [[ -z ${REPLACING_VERSIONS} ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Major Upgrade
|
||||||
|
local v
|
||||||
|
for v in ${REPLACING_VERSIONS}; do
|
||||||
|
[[ ${v%.*} == "${SHORT_PV}" ]] && continue
|
||||||
|
echo ""
|
||||||
|
ewarn "UPDATE THE PERL MODULES:"
|
||||||
|
ewarn "After updating dev-lang/perl the installed Perl modules"
|
||||||
|
ewarn "have to be re-installed. In most cases, this is done automatically"
|
||||||
|
ewarn "by the package manager, but subsequent steps are still recommended"
|
||||||
|
ewarn "to ensure system consistency."
|
||||||
|
ewarn
|
||||||
|
ewarn "You should start with a depclean to remove any unused perl dependencies"
|
||||||
|
ewarn "that may confuse portage in future. Regular depcleans are also encouraged"
|
||||||
|
ewarn "as part of your regular update cycle, as that will keep perl upgrades working."
|
||||||
|
ewarn "Recommended: emerge --depclean -va"
|
||||||
|
ewarn
|
||||||
|
ewarn "You should then call perl-cleaner to clean up any old files and trigger any"
|
||||||
|
ewarn "remaining rebuilds portage may have missed."
|
||||||
|
ewarn "Use: perl-cleaner --all"
|
||||||
|
return 0
|
||||||
|
done
|
||||||
|
|
||||||
|
# Reinstall w/ USE Change
|
||||||
|
if
|
||||||
|
( use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[-ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_ithreads]' ) ) || \
|
||||||
|
( ! use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_ithreads]' ) ) || \
|
||||||
|
( use perl_features_quadmath && ( has_version '<dev-lang/perl-5.38.2-r3[-quadmath]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_quadmath]' ) ) || \
|
||||||
|
( ! use perl_features_quadmath && ( has_version '<dev-lang/perl-5.38.2-r3[quadmath]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_quadmath]' ) ) || \
|
||||||
|
( use perl_features_debug && ( has_version '<dev-lang/perl-5.38.2-r3[-debug]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_debug]' ) ) || \
|
||||||
|
( ! use perl_features_debug && ( has_version '<dev-lang/perl-5.38.2-r3[debug]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_debug]' ) ) ; then
|
||||||
|
echo ""
|
||||||
|
ewarn "TOGGLED PERL FEATURES WARNING:"
|
||||||
|
ewarn "You changed one of the PERL_FEATURES flags ithreads, quadmath, or debug."
|
||||||
|
ewarn "You must rebuild all perl-modules installed. Mostly this should be done automatically"
|
||||||
|
ewarn "via the flag changes of the packages. If the rebuild fails, use perl-cleaner."
|
||||||
|
ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
|
||||||
|
ewarn
|
||||||
|
ewarn "NOTE: Previous to perl-5.38.2-r3, these flags were useflags for dev-lang/perl."
|
||||||
|
ewarn "If you just upgraded and do not intend to change anything, carry the same settings over"
|
||||||
|
ewarn "into a global PERL_FEATURES variable set in make.conf. E.g., "
|
||||||
|
ewarn "dev-lang/perl[ithreads,quadmath] becomes PERL_FEATURES=\"ithreads quadmath\""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_pretend() {
|
||||||
|
if \
|
||||||
|
( use perl_features_ithreads && has_version '<dev-lang/perl-5.38.2-r3[-ithreads]' ) || \
|
||||||
|
( ! use perl_features_ithreads && has_version '<dev-lang/perl-5.38.2-r3[ithreads]' ) || \
|
||||||
|
( use perl_features_quadmath && has_version '<dev-lang/perl-5.38.2-r3[-quadmath]' ) || \
|
||||||
|
( ! use perl_features_quadmath && has_version '<dev-lang/perl-5.38.2-r3[quadmath]' ) || \
|
||||||
|
( use perl_features_debug && has_version '<dev-lang/perl-5.38.2-r3[-debug]' ) || \
|
||||||
|
( ! use perl_features_debug && has_version '<dev-lang/perl-5.38.2-r3[debug]' ) ; \
|
||||||
|
then
|
||||||
|
echo ""
|
||||||
|
ewarn "As of dev-lang/perl-5.38.2-r3, the useflags debug, ithreads, quadmath move into"
|
||||||
|
ewarn "a use-expand variable PERL_FEATURES, which should be set globally in make.conf."
|
||||||
|
ewarn "It appears that you have not set this variable properly yet."
|
||||||
|
ewarn ""
|
||||||
|
ewarn "Giving you a chance to abort and read the corresponding news item now..."
|
||||||
|
for n in 10 9 8 7 6 5 4 3 2 1 ; do
|
||||||
|
echo -n "${n} "
|
||||||
|
sleep 2
|
||||||
|
done;
|
||||||
|
echo "continuing."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
case ${CHOST} in
|
||||||
|
*-darwin*) osname="darwin" ;;
|
||||||
|
*-solaris*) osname="solaris" ;;
|
||||||
|
*) osname="linux" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
myarch="${CHOST%%-*}-${osname}"
|
||||||
|
if use perl_features_debug ; then
|
||||||
|
myarch+="-debug"
|
||||||
|
fi
|
||||||
|
if use perl_features_quadmath ; then
|
||||||
|
myarch+="-quadmath"
|
||||||
|
fi
|
||||||
|
if use perl_features_ithreads ; then
|
||||||
|
mythreading="-multi"
|
||||||
|
myarch+="-thread"
|
||||||
|
fi
|
||||||
|
|
||||||
|
PRIV_BASE="/usr/$(get_libdir)/perl5"
|
||||||
|
SITE_BASE="/usr/local/$(get_libdir)/perl5"
|
||||||
|
VENDOR_BASE="/usr/$(get_libdir)/perl5/vendor_perl"
|
||||||
|
|
||||||
|
LIBPERL="libperl$(get_libname ${MY_PV} )"
|
||||||
|
|
||||||
|
PRIV_LIB="${PRIV_BASE}/${SUBSLOT}"
|
||||||
|
ARCH_LIB="${PRIV_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
||||||
|
SITE_LIB="${SITE_BASE}/${SUBSLOT}"
|
||||||
|
SITE_ARCH="${SITE_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
||||||
|
VENDOR_LIB="${VENDOR_BASE}/${SUBSLOT}"
|
||||||
|
VENDOR_ARCH="${VENDOR_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
||||||
|
|
||||||
|
dual_scripts
|
||||||
|
}
|
||||||
|
|
||||||
|
src_remove_dual_file() {
|
||||||
|
local i pkg ver
|
||||||
|
pkg="$1"
|
||||||
|
ver="$2"
|
||||||
|
shift 2
|
||||||
|
case "${EBUILD_PHASE:-none}" in
|
||||||
|
postinst|postrm)
|
||||||
|
for i in "$@" ; do
|
||||||
|
alternatives_auto_makesym "${i}" "${i}-[0-9]*"
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
setup)
|
||||||
|
for i in "$@" ; do
|
||||||
|
if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; then
|
||||||
|
has_version ${pkg} && ewarn "You must reinstall ${pkg} !"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
install)
|
||||||
|
for i in "$@" ; do
|
||||||
|
if ! [[ -f "${ED}"${i} ]] ; then
|
||||||
|
ewarn "${i} does not exist!"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
mv "${ED}"${i}{,-${ver}-${P}} || die
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
src_remove_dual_man() {
|
||||||
|
local i pkg ver ff
|
||||||
|
pkg="$1"
|
||||||
|
ver="$2"
|
||||||
|
shift 2
|
||||||
|
case "${EBUILD_PHASE:-none}" in
|
||||||
|
postinst|postrm)
|
||||||
|
for i in "$@" ; do
|
||||||
|
ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`
|
||||||
|
ff=${ff##*${i#${i%.[0-9]}}}
|
||||||
|
alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*"
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
install)
|
||||||
|
for i in "$@" ; do
|
||||||
|
if ! [[ -f "${ED}"${i} ]] ; then
|
||||||
|
ewarn "${i} does not exist!"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
src_remove_dual() {
|
||||||
|
local i pkg ver
|
||||||
|
pkg="$1"
|
||||||
|
ver="$2"
|
||||||
|
shift 2
|
||||||
|
for i in "$@" ; do
|
||||||
|
src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}"
|
||||||
|
src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare_perlcross() {
|
||||||
|
cp -a ../perl-cross-${CROSS_VER}/* . || die
|
||||||
|
|
||||||
|
# bug 794463, needs further analysis what is exactly wrong here
|
||||||
|
eapply "${FILESDIR}/perl-5.34.0-crossfit.patch"
|
||||||
|
|
||||||
|
# bug 604072
|
||||||
|
MAKEOPTS+=" -j1"
|
||||||
|
export MAKEOPTS
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare_dynamic() {
|
||||||
|
ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
|
||||||
|
ln -s ${LIBPERL} libperl$(get_libname ) || die
|
||||||
|
}
|
||||||
|
|
||||||
|
# Copy a patch into the patch series
|
||||||
|
# add_patch SRC_PATH DEST_NAME ['description'] ['bug'] ['bug']
|
||||||
|
# - description is optional, but recommended
|
||||||
|
# - all arguments after descriptions are bug URLs
|
||||||
|
add_patch() {
|
||||||
|
local patchdir="${WORKDIR}/patches"
|
||||||
|
local infodir="${WORKDIR}/patch-info"
|
||||||
|
local src_name dest_name desc
|
||||||
|
src_name="$1"
|
||||||
|
dest_name="$2"
|
||||||
|
desc="$3"
|
||||||
|
shift; shift; shift;
|
||||||
|
einfo "Adding ${dest_name} to patch bundle"
|
||||||
|
cp "${src_name}" "${patchdir}/${dest_name}" || die "Couldn't copy ${src_name} to ${dest_name}"
|
||||||
|
if [[ -n "${desc}" ]]; then
|
||||||
|
printf "%s" "${desc}" > "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc"
|
||||||
|
fi
|
||||||
|
if [[ $# -gt 0 ]]; then
|
||||||
|
# Note: when $@ is more than one element, this emits a
|
||||||
|
# line for each element
|
||||||
|
printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Remove a patch using a glob expr
|
||||||
|
# eg:
|
||||||
|
# rm_patch *-darwin-Use-CC*
|
||||||
|
#
|
||||||
|
rm_patch() {
|
||||||
|
local patchdir="${WORKDIR}/patches"
|
||||||
|
local expr="$1"
|
||||||
|
local patch="$( cd "${patchdir}"; echo $expr )"
|
||||||
|
einfo "Removing $patch ($expr) from patch bundle"
|
||||||
|
if [[ -e "${patchdir}/${patch}" ]]; then
|
||||||
|
rm -f "${patchdir}/${patch}" || die "Can't remove ${patch} ( $expr )"
|
||||||
|
else
|
||||||
|
ewarn "No ${expr} found in ${patchdir} to remove"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Yes, this is a reasonable amount of code for something seemingly simple
|
||||||
|
# but this is far easier to debug when things go wrong, and things went wrong
|
||||||
|
# multiple times while I was getting the exact number of slashes right, which
|
||||||
|
# requires circumnavigating both bash and sed escape mechanisms.
|
||||||
|
c_escape_string() {
|
||||||
|
local slash dquote
|
||||||
|
slash='\'
|
||||||
|
dquote='"'
|
||||||
|
re_slash="${slash}${slash}"
|
||||||
|
re_dquote="${slash}${dquote}"
|
||||||
|
|
||||||
|
# Convert \ to \\,
|
||||||
|
# " to \"
|
||||||
|
echo "$1" |\
|
||||||
|
sed "s|${re_slash}|${re_slash}${re_slash}|g" |\
|
||||||
|
sed "s|${re_dquote}|${re_slash}${re_dquote}|g"
|
||||||
|
}
|
||||||
|
c_escape_file() {
|
||||||
|
c_escape_string "$(cat "$1")"
|
||||||
|
}
|
||||||
|
|
||||||
|
apply_patchdir() {
|
||||||
|
local patchdir="${WORKDIR}/patches"
|
||||||
|
local infodir="${WORKDIR}/patch-info"
|
||||||
|
local patchoutput="patchlevel-gentoo.h"
|
||||||
|
|
||||||
|
# Inject Patch-Level info into description for patchlevel.h patch
|
||||||
|
# to show in -V
|
||||||
|
local patch_expr="*List-packaged-patches*"
|
||||||
|
local patch="$( cd "${patchdir}"; echo $patch_expr )";
|
||||||
|
einfo "Injecting patch-level info into ${patch}.desc ( $patch_expr )"
|
||||||
|
|
||||||
|
if [[ -e "${patchdir}/${patch}" ]]; then
|
||||||
|
printf "List packaged patches for %s(%s) in patchlevel.h" "${PF}" "${PATCH_BASE}"\
|
||||||
|
>"${infodir}/${patch}.desc" || die "Can't rewrite ${patch}.desc"
|
||||||
|
else
|
||||||
|
eerror "No $patch_expr found in ${patchdir}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Compute patch list to apply
|
||||||
|
# different name other than PATCHES to stop default
|
||||||
|
# reapplying it
|
||||||
|
# Single depth is currently only supported, as artifacts can reside
|
||||||
|
# from the old layout being multiple-directories, as well as it grossly
|
||||||
|
# simplifying the patchlevel_gentoo.h generation.
|
||||||
|
local PERL_PATCHES=($(
|
||||||
|
find "${patchdir}" -maxdepth 1 -mindepth 1 -type f -printf "%f\n" |\
|
||||||
|
grep -E '[.](diff|patch)$' |\
|
||||||
|
sort -n
|
||||||
|
))
|
||||||
|
|
||||||
|
for patch in "${PERL_PATCHES[@]}"; do
|
||||||
|
eapply "${WORKDIR}"/patches/${patch}
|
||||||
|
done
|
||||||
|
|
||||||
|
einfo "Generating $patchoutput"
|
||||||
|
|
||||||
|
# This code creates a header file, each iteration
|
||||||
|
# creates one-or-more-lines for each entry found in PERL_PATCHES
|
||||||
|
# and STDOUT is redirected to the .h file
|
||||||
|
for patch in "${PERL_PATCHES[@]}"; do
|
||||||
|
local desc_f="${infodir}/${patch}.desc"
|
||||||
|
local bugs_f="${infodir}/${patch}.bugs"
|
||||||
|
|
||||||
|
printf ',"%s"\n' "${patch}"
|
||||||
|
if [[ ! -e "${desc_f}" ]]; then
|
||||||
|
ewarn "No description provided for ${patch} (expected: ${desc_f} )"
|
||||||
|
else
|
||||||
|
local desc="$(c_escape_file "${desc_f}")"
|
||||||
|
printf ',"- %s"\n' "${desc}"
|
||||||
|
fi
|
||||||
|
if [[ -e "${bugs_f}" ]]; then
|
||||||
|
while read -d $'\n' -r line; do
|
||||||
|
local esc_line="$(c_escape_string "${line}")"
|
||||||
|
printf ',"- Bug: %s"\n' "${esc_line}"
|
||||||
|
done <"${bugs_f}"
|
||||||
|
fi
|
||||||
|
done > "${S}/${patchoutput}"
|
||||||
|
printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
|
||||||
|
local patchdir="${WORKDIR}/patches"
|
||||||
|
|
||||||
|
# mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patches" "${WORKDIR}/patches" || die
|
||||||
|
# mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patch-info" "${WORKDIR}/patch-info" || die
|
||||||
|
|
||||||
|
# Prepare Patch dir with additional patches / remove unwanted patches
|
||||||
|
# Inject bug/desc entries for perl -V
|
||||||
|
# Old example:
|
||||||
|
# add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\
|
||||||
|
# "Fix broken miniperl on hppa"\
|
||||||
|
# "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
|
||||||
|
|
||||||
|
if [[ ${CHOST} == *-solaris* ]] ; then
|
||||||
|
# do NOT mess with nsl, on Solaris this is always necessary,
|
||||||
|
# when -lsocket is used e.g. to get h_errno
|
||||||
|
rm_patch "*-nsl-and-cl*"
|
||||||
|
fi
|
||||||
|
|
||||||
|
apply_patchdir
|
||||||
|
|
||||||
|
tc-is-cross-compiler && src_prepare_perlcross
|
||||||
|
|
||||||
|
tc-is-static-only || src_prepare_dynamic
|
||||||
|
|
||||||
|
if use gdbm; then
|
||||||
|
sed -i "s:INC => .*:INC => \"-I${ESYSROOT}/usr/include/gdbm\":g" \
|
||||||
|
ext/NDBM_File/Makefile.PL || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use errno.h from prefix rather than from host system, bug #645804
|
||||||
|
if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
|
||||||
|
sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${CHOST} == *-solaris* ]] ; then
|
||||||
|
# set a soname, fix linking against just built libperl
|
||||||
|
sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||||
|
# fix install_name (soname) not to reference $D
|
||||||
|
sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
|
||||||
|
|
||||||
|
# fix environ linkage absence (only a real issue on Darwin9)
|
||||||
|
if [[ ${CHOST##*-darwin} -le 9 ]] ; then
|
||||||
|
sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \
|
||||||
|
Makefile.SH || die
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
myconf() {
|
||||||
|
# the myconf array is declared in src_configure
|
||||||
|
myconf=( "${myconf[@]}" "$@" )
|
||||||
|
}
|
||||||
|
|
||||||
|
# Outputs a list of versions which have been seen in any of the
|
||||||
|
# primary perl @INC prefix paths, such as:
|
||||||
|
# /usr/lib64/perl5/<NUMBER>
|
||||||
|
# /usr/local/lib64/perl5/<NUMBER>
|
||||||
|
# /usr/lib64/perl5/vendor_perl/<NUMBER>
|
||||||
|
#
|
||||||
|
# All values of NUMBER must be like "5.x.y" or like "5.x"
|
||||||
|
#
|
||||||
|
find_candidate_inc_versions() {
|
||||||
|
local regex='.*/5[.][0-9]+\([.][0-9]+\|\)$'
|
||||||
|
local dirs=(
|
||||||
|
"${EROOT}${PRIV_BASE}"
|
||||||
|
"${EROOT}${SITE_BASE}"
|
||||||
|
"${EROOT}${VENDOR_BASE}"
|
||||||
|
)
|
||||||
|
for dir in "${dirs[@]}"; do
|
||||||
|
if [[ ! -e "${dir}" ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
# Without access to readdir() on these dirs, find will not be able
|
||||||
|
# to reveal any @INC directories inside them, and will subsequently prune
|
||||||
|
# them from the built perl's @INC support, breaking our compatiblity options
|
||||||
|
# entirely.
|
||||||
|
if [[ ! -r "${dir}" || ! -x "${dir}" ]]; then
|
||||||
|
eerror "Bad permissions on ${dir}, this will probably break things"
|
||||||
|
eerror "Ensure ${dir} is +rx for at least uid=$EUID"
|
||||||
|
eerror "Recommended permission is +rx for all"
|
||||||
|
eerror "> chmod o+rx ${dir}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}"
|
||||||
|
find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
# Sort versions passed versiony-ly, remove self-version if present
|
||||||
|
# dedup. Takes each version as an argument
|
||||||
|
sanitize_inc_versions() {
|
||||||
|
local vexclude="${SUBSLOT}"
|
||||||
|
einfo "Normalizing/Sorting candidate list: $*"
|
||||||
|
einfo " to remove '${vexclude}'"
|
||||||
|
# Note, general numeric sort has to be used
|
||||||
|
# for the last component, or unique will convert
|
||||||
|
# 5.30.0 + 5.30 into just 5.30
|
||||||
|
printf "%s\n" "$@" |\
|
||||||
|
grep -vxF "${vexclude}" |\
|
||||||
|
sort -u -nr -t'.' -k1,1rn -k2,2rn -k3,3rg
|
||||||
|
}
|
||||||
|
|
||||||
|
versions_to_inclist() {
|
||||||
|
local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
|
||||||
|
|
||||||
|
for v; do
|
||||||
|
has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ ";
|
||||||
|
echo -n "${v}/ ";
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
versions_to_gentoolibdirs() {
|
||||||
|
local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
|
||||||
|
local root
|
||||||
|
local v
|
||||||
|
for v; do
|
||||||
|
for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do
|
||||||
|
local fullpath="${EROOT}${root}/${v}"
|
||||||
|
if [[ -e "${fullpath}" ]]; then
|
||||||
|
has "${v}" ${oldv} && printf "%s:" "${fullpath}/${myarch}${mythreading}";
|
||||||
|
printf "%s:" "${fullpath}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
declare -a myconf
|
||||||
|
|
||||||
|
export LC_ALL="C"
|
||||||
|
[[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
|
||||||
|
|
||||||
|
# Perl has problems compiling with -Os in your flags with glibc
|
||||||
|
replace-flags "-Os" "-O2"
|
||||||
|
|
||||||
|
# xlocale.h is going away in glibc-2.26, so it's counterproductive
|
||||||
|
# if we use it and include it in CORE/perl.h ... Perl builds just
|
||||||
|
# fine with glibc and locale.h only.
|
||||||
|
# However, the darwin prefix people have no locale.h ...
|
||||||
|
use elibc_glibc && myconf -Ui_xlocale
|
||||||
|
|
||||||
|
# Perl relies on -fwrapv semantics
|
||||||
|
filter-flags -ftrapv
|
||||||
|
|
||||||
|
# This flag makes compiling crash in interesting ways
|
||||||
|
filter-flags "-malign-double"
|
||||||
|
|
||||||
|
# On musl we dont want to use largefile *64 types, since 1) normal
|
||||||
|
# types are 64bit / largefile anyway and 2) the *64 types are going
|
||||||
|
# away in 1.2.4... bug #911233
|
||||||
|
use elibc_musl && myconf -Ud_off64_t
|
||||||
|
|
||||||
|
use sparc && myconf -Ud_longdbl
|
||||||
|
|
||||||
|
# This urgently needs debugging - on m68k, miniperl crashes during
|
||||||
|
# build otherwise..
|
||||||
|
use m68k && append-ldflags -Wl,-z,norelro
|
||||||
|
|
||||||
|
export BUILD_BZIP2=0
|
||||||
|
export BZIP2_INCLUDE=${ESYSROOT}/usr/include
|
||||||
|
export BZIP2_LIB=${ESYSROOT}/usr/$(get_libdir)
|
||||||
|
|
||||||
|
export BUILD_ZLIB=False
|
||||||
|
export ZLIB_INCLUDE=${ESYSROOT}/usr/include
|
||||||
|
export ZLIB_LIB=${ESYSROOT}/usr/$(get_libdir)
|
||||||
|
|
||||||
|
# allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
|
||||||
|
myndbm='U'
|
||||||
|
mygdbm='U'
|
||||||
|
mydb='U'
|
||||||
|
if use gdbm ; then
|
||||||
|
mygdbm='D'
|
||||||
|
if use berkdb ; then
|
||||||
|
myndbm='D'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if use berkdb ; then
|
||||||
|
mydb='D'
|
||||||
|
has_version '=sys-libs/db-1*' && myndbm='D'
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
|
||||||
|
|
||||||
|
if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
|
||||||
|
ewarn "Perl will not be built with berkdb support, use gcc if you need it..."
|
||||||
|
myconf -Ui_db -Ui_ndbm
|
||||||
|
fi
|
||||||
|
|
||||||
|
use perl_features_ithreads && myconf -Dusethreads
|
||||||
|
|
||||||
|
use perl_features_quadmath && myconf -Dusequadmath
|
||||||
|
|
||||||
|
if use perl_features_debug ; then
|
||||||
|
append-cflags "-g"
|
||||||
|
myconf -DDEBUGGING
|
||||||
|
elif [[ ${CFLAGS} == *-g* ]] ; then
|
||||||
|
myconf -DDEBUGGING=-g
|
||||||
|
else
|
||||||
|
myconf -DDEBUGGING=none
|
||||||
|
fi
|
||||||
|
|
||||||
|
# modifying 'optimize' prevents cross configure script from appending required flags
|
||||||
|
if tc-is-cross-compiler; then
|
||||||
|
append-cflags "-fwrapv"
|
||||||
|
tc-export_build_env
|
||||||
|
|
||||||
|
# Needed for the CHOST build too (bug #932385)
|
||||||
|
export CFLAGS="${CFLAGS} -D_GNU_SOURCE"
|
||||||
|
|
||||||
|
# bug #913171
|
||||||
|
export \
|
||||||
|
HOSTCC=$(tc-getBUILD_CC) \
|
||||||
|
HOSTCFLAGS="${CFLAGS_FOR_BUILD} -D_GNU_SOURCE" \
|
||||||
|
HOSTLDFLAGS="${LDFLAGS_FOR_BUILD}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# bug #877659, bug #821577
|
||||||
|
append-cflags -fno-strict-aliasing
|
||||||
|
|
||||||
|
# Autodiscover all old version directories, some of them will even be newer
|
||||||
|
# if you downgrade
|
||||||
|
if [[ -z ${PERL_OLDVERSEN} ]]; then
|
||||||
|
PERL_OLDVERSEN="$( find_candidate_inc_versions )"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fixup versions, removing self match, fixing order and dupes
|
||||||
|
PERL_OLDVERSEN="$( sanitize_inc_versions ${PERL_OLDVERSEN} )"
|
||||||
|
|
||||||
|
# Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string
|
||||||
|
if [[ -n "${PERL_OLDVERSEN// }" ]]; then
|
||||||
|
local inclist="$( versions_to_inclist ${PERL_OLDVERSEN} )"
|
||||||
|
einfo "This version of perl may partially support modules previously"
|
||||||
|
einfo "installed in any of the following paths:"
|
||||||
|
for incpath in ${inclist}; do
|
||||||
|
[[ -e "${EROOT}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT}${VENDOR_BASE}/${incpath}"
|
||||||
|
[[ -e "${EROOT}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROOT}${PRIV_BASE}/${incpath}"
|
||||||
|
[[ -e "${EROOT}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT}${SITE_BASE}/${incpath}"
|
||||||
|
done
|
||||||
|
einfo "This is a temporary measure and you should aim to cleanup these paths"
|
||||||
|
einfo "via world updates and perl-cleaner"
|
||||||
|
# myconf -Dinc_version_list="${inclist}"
|
||||||
|
myconf -Dgentoolibdirs="$( versions_to_gentoolibdirs ${PERL_OLDVERSEN} )"
|
||||||
|
fi
|
||||||
|
|
||||||
|
[[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a"
|
||||||
|
|
||||||
|
# Make sure we can do the final link #523730, need to set deployment
|
||||||
|
# target to override hardcoded 10.3 which breaks on modern OSX
|
||||||
|
[[ ${CHOST} == *-darwin* ]] && \
|
||||||
|
myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
|
||||||
|
|
||||||
|
# Older macOS with non-Apple GCC chokes on inline in system headers
|
||||||
|
# using c89 mode as injected by cflags.SH, in addition, we override
|
||||||
|
# cflags, so we loose PERL_DARWIN which enables compat code that
|
||||||
|
# apparently on more recent macOS releases is no longer necessary
|
||||||
|
[[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
|
||||||
|
append-cflags -Dinline=__inline__ -DPERL_DARWIN
|
||||||
|
|
||||||
|
# Prefix: the host system needs not to follow Gentoo multilib stuff, and in
|
||||||
|
# Prefix itself we don't do multilib either, so make sure perl can find
|
||||||
|
# something compatible.
|
||||||
|
if use prefix ; then
|
||||||
|
# Set a hook to check for each detected library whether it actually works.
|
||||||
|
export libscheck="
|
||||||
|
( echo 'int main(){}' > '${T}'/conftest.c &&
|
||||||
|
$(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
|
||||||
|
) || xxx=/dev/null"
|
||||||
|
|
||||||
|
# Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
|
||||||
|
local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib"
|
||||||
|
myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}"
|
||||||
|
elif [[ $(get_libdir) != "lib" ]] ; then
|
||||||
|
# We need to use " and not ', as the written config.sh use ' ...
|
||||||
|
myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# don't try building ODBM, bug #354453
|
||||||
|
disabled_extensions="ODBM_File"
|
||||||
|
|
||||||
|
if ! use gdbm ; then
|
||||||
|
# workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm"
|
||||||
|
disabled_extensions="${disabled_extensions} GDBM_File NDBM_File"
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf -Dnoextensions="${disabled_extensions}"
|
||||||
|
|
||||||
|
[[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly
|
||||||
|
|
||||||
|
[[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF}
|
||||||
|
# allow fiddling via EXTRA_ECONF, bug 558070
|
||||||
|
eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})"
|
||||||
|
|
||||||
|
myconf \
|
||||||
|
-Duseshrplib \
|
||||||
|
-Darchname="${myarch}" \
|
||||||
|
-Dar="$(tc-getAR)" \
|
||||||
|
-Dcc="$(tc-getCC)" \
|
||||||
|
-Dcpp="$(tc-getCPP)" \
|
||||||
|
-Dld="$(tc-getCC)" \
|
||||||
|
-Dnm="$(tc-getNM)" \
|
||||||
|
-Dranlib="$(tc-getRANLIB)" \
|
||||||
|
-Accflags="${CFLAGS} -DNO_PERL_RAND_SEED" \
|
||||||
|
-Doptimize="${CFLAGS}" \
|
||||||
|
-Dldflags="${LDFLAGS}" \
|
||||||
|
-Dprefix="${EPREFIX}"'/usr' \
|
||||||
|
-Dsiteprefix="${EPREFIX}"'/usr/local' \
|
||||||
|
-Dvendorprefix="${EPREFIX}"'/usr' \
|
||||||
|
-Dscriptdir="${EPREFIX}"'/usr/bin' \
|
||||||
|
-Dprivlib="${EPREFIX}${PRIV_LIB}" \
|
||||||
|
-Darchlib="${EPREFIX}${ARCH_LIB}" \
|
||||||
|
-Dsitelib="${EPREFIX}${SITE_LIB}" \
|
||||||
|
-Dsitearch="${EPREFIX}${SITE_ARCH}" \
|
||||||
|
-Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
|
||||||
|
-Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
|
||||||
|
-Dman1dir="${EPREFIX}"/usr/share/man/man1 \
|
||||||
|
-Dman3dir="${EPREFIX}"/usr/share/man/man3 \
|
||||||
|
-Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
|
||||||
|
-Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
|
||||||
|
-Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
|
||||||
|
-Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
|
||||||
|
-Dman1ext='1' \
|
||||||
|
-Dman3ext='3pm' \
|
||||||
|
-Dlibperl="${LIBPERL}" \
|
||||||
|
-Dlocincpth="${EPREFIX}"'/usr/include ' \
|
||||||
|
-Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \
|
||||||
|
-Duselargefiles \
|
||||||
|
-Duse64bitint \
|
||||||
|
-Dd_semctl_semun \
|
||||||
|
-Dcf_by='Gentoo' \
|
||||||
|
-Dmyhostname='localhost' \
|
||||||
|
-Dperladmin='root@localhost' \
|
||||||
|
-Ud_csh \
|
||||||
|
-Dsh="${BROOT}"/bin/sh \
|
||||||
|
-Dtargetsh="${EPREFIX}"/bin/sh \
|
||||||
|
-Uusenm \
|
||||||
|
"${EXTRA_ECONF[@]}"
|
||||||
|
|
||||||
|
if tc-is-cross-compiler; then
|
||||||
|
./configure \
|
||||||
|
--target="${CHOST}" \
|
||||||
|
--build="${CBUILD}" \
|
||||||
|
-Dinstallprefix='' \
|
||||||
|
-Dinstallusrbinperl='undef' \
|
||||||
|
-Dusevendorprefix='define' \
|
||||||
|
"${myconf[@]}" \
|
||||||
|
|| die "Unable to configure"
|
||||||
|
else
|
||||||
|
sh Configure \
|
||||||
|
-des \
|
||||||
|
-Dinstallprefix="${EPREFIX}"'/usr' \
|
||||||
|
-Dinstallusrbinperl='n' \
|
||||||
|
"${myconf[@]}" \
|
||||||
|
|| die "Unable to configure"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
export NO_GENTOO_NETWORK_TESTS=1;
|
||||||
|
export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}"
|
||||||
|
export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}"
|
||||||
|
if [[ ${EUID} == 0 ]] ; then
|
||||||
|
ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local i
|
||||||
|
local coredir="${ARCH_LIB}/CORE"
|
||||||
|
|
||||||
|
emake DESTDIR="${D}" install
|
||||||
|
|
||||||
|
rm -f "${ED}/usr/bin/perl${MY_PV}"
|
||||||
|
ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die
|
||||||
|
|
||||||
|
if ! tc-is-static-only ; then
|
||||||
|
dolib.so "${ED}"${coredir}/${LIBPERL}
|
||||||
|
rm -f "${ED}"${coredir}/${LIBPERL}
|
||||||
|
ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die
|
||||||
|
ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die
|
||||||
|
|
||||||
|
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die
|
||||||
|
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die
|
||||||
|
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages"
|
||||||
|
|
||||||
|
# This removes ${D} from Config.pm
|
||||||
|
for i in $(find "${D}" -iname "Config.pm" ) ; do
|
||||||
|
einfo "Removing ${D} from ${i}..."
|
||||||
|
sed -i -e "s:${D}::" "${i}" || die "Sed failed"
|
||||||
|
done
|
||||||
|
|
||||||
|
dodoc Changes* README AUTHORS
|
||||||
|
|
||||||
|
if use doc ; then
|
||||||
|
# HTML Documentation
|
||||||
|
# We expect errors, warnings, and such with the following.
|
||||||
|
|
||||||
|
dodir /usr/share/doc/${PF}/html
|
||||||
|
LD_LIBRARY_PATH=. ./perl installhtml \
|
||||||
|
--podroot='.' \
|
||||||
|
--podpath='lib:ext:pod:vms' \
|
||||||
|
--recurse \
|
||||||
|
--htmldir="${ED}/usr/share/doc/${PF}/html"
|
||||||
|
fi
|
||||||
|
|
||||||
|
[[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local
|
||||||
|
|
||||||
|
dual_scripts
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_preinst() {
|
||||||
|
check_rebuild
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
dual_scripts
|
||||||
|
|
||||||
|
if [[ -z "${ROOT}" ]] ; then
|
||||||
|
local INC DIR file
|
||||||
|
INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
|
||||||
|
einfo "Removing old .ph files"
|
||||||
|
for DIR in ${INC} ; do
|
||||||
|
if [[ -d "${DIR}" ]] ; then
|
||||||
|
for file in $(find "${DIR}" -name "*.ph" -type f ) ; do
|
||||||
|
rm -f "${file}"
|
||||||
|
einfo "<< ${file}"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# Silently remove the now empty dirs
|
||||||
|
for DIR in ${INC} ; do
|
||||||
|
if [[ -d "${DIR}" ]] ; then
|
||||||
|
find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
dual_scripts
|
||||||
|
}
|
@ -20,6 +20,8 @@ DIST Python-3.13.5.tar.xz 22856016 BLAKE2B 9caacad8745dcd238b208022cb140a6655ae5
|
|||||||
DIST Python-3.13.5.tar.xz.asc 963 BLAKE2B 2db0162d18129ec42b48393108a72c28e7f8f8c3fa40b2e231c87fe0bdc3c166fb6ca4a1c1dfb3fffe1aa0c2618c7ccb245513beb7a0919b4aaca5ec7eb23b36 SHA512 07c1a2ec2d6ba2805680b7f1dc262fdc5dc3eec4503780ecdc08cd570ccbb5f1efa736ee03c83d36bdb33ce87db06be5892cf5a6eaf4018d5fe78fff99e615ae
|
DIST Python-3.13.5.tar.xz.asc 963 BLAKE2B 2db0162d18129ec42b48393108a72c28e7f8f8c3fa40b2e231c87fe0bdc3c166fb6ca4a1c1dfb3fffe1aa0c2618c7ccb245513beb7a0919b4aaca5ec7eb23b36 SHA512 07c1a2ec2d6ba2805680b7f1dc262fdc5dc3eec4503780ecdc08cd570ccbb5f1efa736ee03c83d36bdb33ce87db06be5892cf5a6eaf4018d5fe78fff99e615ae
|
||||||
DIST Python-3.14.0b2.tar.xz 23579860 BLAKE2B bf5ebac54531a7c837e7650754264b4be28e28613d488d1c7546db77e2ef3b501ff646d7fb505c6ac0fa1381c3230d1c1899bc82144f369339c89687b5dc7f5c SHA512 cdd37f8a982e6194d5afa80a2eb94c899080809749d59a50a2ce3eed37f720a1fd9a7977f0dd3992650d173a7070b15610077d97cb499bd16a7500c56ef1f8dd
|
DIST Python-3.14.0b2.tar.xz 23579860 BLAKE2B bf5ebac54531a7c837e7650754264b4be28e28613d488d1c7546db77e2ef3b501ff646d7fb505c6ac0fa1381c3230d1c1899bc82144f369339c89687b5dc7f5c SHA512 cdd37f8a982e6194d5afa80a2eb94c899080809749d59a50a2ce3eed37f720a1fd9a7977f0dd3992650d173a7070b15610077d97cb499bd16a7500c56ef1f8dd
|
||||||
DIST Python-3.14.0b2.tar.xz.sigstore 5131 BLAKE2B 04cab57a4da63f5abf28db94e5fd952206124ce37ef5a5d981839a0790881c9c4ea6d186f233eaaf6e82350bdfdbb0048d761b816d81eaba71c707bd9714a9d9 SHA512 a356037824fbde5950f197cf04f0d71ddaf4b68006b2ab9951f9b4c2df508e84bd0bec7d72051e75d22c17eee767e46e5d2c167e853fb941b0831cb26d518fdc
|
DIST Python-3.14.0b2.tar.xz.sigstore 5131 BLAKE2B 04cab57a4da63f5abf28db94e5fd952206124ce37ef5a5d981839a0790881c9c4ea6d186f233eaaf6e82350bdfdbb0048d761b816d81eaba71c707bd9714a9d9 SHA512 a356037824fbde5950f197cf04f0d71ddaf4b68006b2ab9951f9b4c2df508e84bd0bec7d72051e75d22c17eee767e46e5d2c167e853fb941b0831cb26d518fdc
|
||||||
|
DIST Python-3.14.0b3.tar.xz 23626928 BLAKE2B 354a07abfe838688ca2e02a989864bfd3dfc903b62968125bd0e74c76caa57b1488aace8cf96942f07a29decb89d72c7ca52cb21cdef5948ca79b8f2fdd710e6 SHA512 621bcaf2ae4b6f0ba6c95ef74b5ffb78d8a2a0bb10415fb4c5eab1cad26c63098237944713a7f0812ec3e014ff62cd0f9bd5663e87799fcf1856aa4b937be914
|
||||||
|
DIST Python-3.14.0b3.tar.xz.sigstore 5326 BLAKE2B 61bb9e80c2c2149aa43e7f97f472e14b71af1bbbef0641e891bc440e9ddae7b968d525b0d44e152c911a05e5f04ca0a710483dfbf4675d0894f619f0e7190595 SHA512 80feff3997ff99f053ad3d8b8e488e5b952c6e0cdb1fedfcb31a7a72ca67eff60b99d875767df068c8833ec7d40cec53fdc838ce5bb85d330a86283d3057c567
|
||||||
DIST Python-3.8.20.tar.xz 18962788 BLAKE2B 715c75e0c0a3d3b77af7f07478311bb0554b80aac72915be703aa2d0dd6459a972e5669808e64da14a0b91bb183e00655055c1726f302dc3ccd8721e3b4ae3e6 SHA512 3c9341ee1fd33cb687958dcf2b7c0c7700489726c4d530c3e9d9537d46a6ab534541a4b312232d8505bea395a07e4518c42d75fb7571103e6b266f8f44115c61
|
DIST Python-3.8.20.tar.xz 18962788 BLAKE2B 715c75e0c0a3d3b77af7f07478311bb0554b80aac72915be703aa2d0dd6459a972e5669808e64da14a0b91bb183e00655055c1726f302dc3ccd8721e3b4ae3e6 SHA512 3c9341ee1fd33cb687958dcf2b7c0c7700489726c4d530c3e9d9537d46a6ab534541a4b312232d8505bea395a07e4518c42d75fb7571103e6b266f8f44115c61
|
||||||
DIST Python-3.8.20.tar.xz.asc 833 BLAKE2B 5c86c15a1090b42e42bb7512565b1a7ad9d2137d59e9fd1ab0f83fdfc37dfcf184389418d6703db809e9c8c04a169af292665a2b58bf5dc61b7724ecbb4132d9 SHA512 a751ae0407a593d97acac4d5f8a0456580c753efa12a7d960125c219b4897fdb26fc1ffd43d8ea33ad1449162dd3b2904c16b6c51c57561ba73de3ffa62e0eed
|
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 19652572 BLAKE2B 59f2d2cecde8179064115b52205c2195b26cd0f37aec3e88b0fe2a1a7893a7df8ae38a024814d42064d5e4916e4054a76dddeec0a0dcf29af576d52dbcf65f4c SHA512 c5a76c579455626bf40bb41ee99cab6e444aa5d5085dab7cf622c70ded750e31710c2c30f032917f0d4069350c01a889ed9831d77fcc2d52fcec54055dd07496
|
||||||
@ -38,6 +40,7 @@ DIST python-gentoo-patches-3.13.4.tar.xz 8912 BLAKE2B e3d9f2a12f801dc75e09c53017
|
|||||||
DIST python-gentoo-patches-3.13.5.tar.xz 8916 BLAKE2B 9d985b12af62b8a917cac1dab9576aac099bc81ad954a5de254a14a3c7d2254edcdcfaadc46314b69a1bb76bd30ca8bed7c866c0de3fc3f89aac0f76af344f32 SHA512 5ac92aa3eef82eae5d707ffcb5085ac98bd9bf64f72fc7ac4aa1b12a0c3aa86c57d0f671ca07f46e2250779f4cf4885916e4d175357ad626eca6e41257a027e7
|
DIST python-gentoo-patches-3.13.5.tar.xz 8916 BLAKE2B 9d985b12af62b8a917cac1dab9576aac099bc81ad954a5de254a14a3c7d2254edcdcfaadc46314b69a1bb76bd30ca8bed7c866c0de3fc3f89aac0f76af344f32 SHA512 5ac92aa3eef82eae5d707ffcb5085ac98bd9bf64f72fc7ac4aa1b12a0c3aa86c57d0f671ca07f46e2250779f4cf4885916e4d175357ad626eca6e41257a027e7
|
||||||
DIST python-gentoo-patches-3.14.0b1.tar.xz 5680 BLAKE2B 514b3edc3025e5bf675d371b5ada17dea426856edf1fb6095c2ee400eae95bd4265ef81fe593ae9338e801e7d0a25b1d5ba2d05ca563fd9dd020114b13575746 SHA512 74289e42cf532b54bb1b66a283ec19156f8a36ba38764209c133842314c9efb2ce2ebcba5aa9213bcf7fc0c8a5ca9b6e7adbd5dbfa4397233136d7cd55f53ee7
|
DIST python-gentoo-patches-3.14.0b1.tar.xz 5680 BLAKE2B 514b3edc3025e5bf675d371b5ada17dea426856edf1fb6095c2ee400eae95bd4265ef81fe593ae9338e801e7d0a25b1d5ba2d05ca563fd9dd020114b13575746 SHA512 74289e42cf532b54bb1b66a283ec19156f8a36ba38764209c133842314c9efb2ce2ebcba5aa9213bcf7fc0c8a5ca9b6e7adbd5dbfa4397233136d7cd55f53ee7
|
||||||
DIST python-gentoo-patches-3.14.0b2_p1.tar.xz 23992 BLAKE2B 65346fe06b2f03251882542b90821c28bd16d9f1c81d1e594bf78403689b444688a9cffa1d52faf63dd9c4db301a9b2a1e6729026e73525fe2f0622f896b6a46 SHA512 c98600da507541c0ba3a03dcaa6d344596fd8f5ef8169eff276318ed33a38ba4794ea346b25b9d11f9a277334bdcc1105e6332bb212602c3c993866340aa8482
|
DIST python-gentoo-patches-3.14.0b2_p1.tar.xz 23992 BLAKE2B 65346fe06b2f03251882542b90821c28bd16d9f1c81d1e594bf78403689b444688a9cffa1d52faf63dd9c4db301a9b2a1e6729026e73525fe2f0622f896b6a46 SHA512 c98600da507541c0ba3a03dcaa6d344596fd8f5ef8169eff276318ed33a38ba4794ea346b25b9d11f9a277334bdcc1105e6332bb212602c3c993866340aa8482
|
||||||
|
DIST python-gentoo-patches-3.14.0b3.tar.xz 5708 BLAKE2B 14706315eeed5b2e3d13d0479443e7b9153bc4be8510620e54453ac1b81d2baf0156d1ac67fd2927a2b389c7dfe18cc67ce14e7e7d6e01f2cb0ebe255baf462a SHA512 45d1d194efcc08f7e4b4b593604f52abb34b5f6a6b81370540d489d362a61894ddf86ab59c2d5aa67a5293613f081bc50586257060929702914851170f1b37a6
|
||||||
DIST python-gentoo-patches-3.8.20_p7.tar.xz 54544 BLAKE2B e31fc9fb5e98b62b0f70165670ec58ed4fa932cfc95d5287c249015a3a372fdbf0d1ba08cb98f63c2dc500700edfd6ffea6db670385d2c86a4fdb92ffb991192 SHA512 a9e7e4976be226931a503af2c986da207d060d4ce436af61f5e8427da513639adbed32bb0061963b83fef275a5de91707ab13b7a9abf3a7472ee0e2c5310eda1
|
DIST python-gentoo-patches-3.8.20_p7.tar.xz 54544 BLAKE2B e31fc9fb5e98b62b0f70165670ec58ed4fa932cfc95d5287c249015a3a372fdbf0d1ba08cb98f63c2dc500700edfd6ffea6db670385d2c86a4fdb92ffb991192 SHA512 a9e7e4976be226931a503af2c986da207d060d4ce436af61f5e8427da513639adbed32bb0061963b83fef275a5de91707ab13b7a9abf3a7472ee0e2c5310eda1
|
||||||
DIST python-gentoo-patches-3.9.22_p2.tar.xz 59416 BLAKE2B 7904d5272c3dfab6eb9ec188802367faf843303b8af18d75aa03f6ad814ca8aefbf495696a5fb4279fa6f3620a00d0c84989bc007b80546041fedcef8555283a SHA512 acd78c422c360bea4c4be84e718072eb8182b1662d1bf94aa72785319a9f35d1f11a05343d4770d50673cd5c2876a5a99c127559badde7cf335070dfa7d81cf6
|
DIST python-gentoo-patches-3.9.22_p2.tar.xz 59416 BLAKE2B 7904d5272c3dfab6eb9ec188802367faf843303b8af18d75aa03f6ad814ca8aefbf495696a5fb4279fa6f3620a00d0c84989bc007b80546041fedcef8555283a SHA512 acd78c422c360bea4c4be84e718072eb8182b1662d1bf94aa72785319a9f35d1f11a05343d4770d50673cd5c2876a5a99c127559badde7cf335070dfa7d81cf6
|
||||||
DIST python-gentoo-patches-3.9.23.tar.xz 37148 BLAKE2B a7c0514037169b9938b2180ec2dd22063621d532367f6febfa47da43f47534559baab992d9c5257271121af755b8445346d4d92582e7e11b6468a1c359f28bf2 SHA512 73ef00a7aa671016de396c9e1c4bb5f5c1a97dc735739f806d809f987e802ec440370bf4c85468097547284a5d2b476cbffcec3cf219b7cb6fc890d5029eb5bd
|
DIST python-gentoo-patches-3.9.23.tar.xz 37148 BLAKE2B a7c0514037169b9938b2180ec2dd22063621d532367f6febfa47da43f47534559baab992d9c5257271121af755b8445346d4d92582e7e11b6468a1c359f28bf2 SHA512 73ef00a7aa671016de396c9e1c4bb5f5c1a97dc735739f806d809f987e802ec440370bf4c85468097547284a5d2b476cbffcec3cf219b7cb6fc890d5029eb5bd
|
||||||
|
@ -391,7 +391,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -391,7 +391,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -378,7 +378,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -393,7 +393,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
635
sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.0_beta3.ebuild
vendored
Normal file
635
sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.0_beta3.ebuild
vendored
Normal file
@ -0,0 +1,635 @@
|
|||||||
|
# Copyright 1999-2025 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI="8"
|
||||||
|
|
||||||
|
VERIFY_SIG_METHOD=sigstore
|
||||||
|
WANT_LIBTOOL="none"
|
||||||
|
|
||||||
|
inherit autotools check-reqs eapi9-ver flag-o-matic linux-info
|
||||||
|
inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs
|
||||||
|
inherit verify-sig
|
||||||
|
|
||||||
|
REAL_PV=${PV#0.}
|
||||||
|
MY_PV=${REAL_PV/_beta/b}
|
||||||
|
MY_P="Python-${MY_PV%_p*}"
|
||||||
|
PYVER="$(ver_cut 2-3)t"
|
||||||
|
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||||
|
|
||||||
|
DESCRIPTION="Freethreading (no-GIL) version of Python programming language"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://www.python.org/
|
||||||
|
https://github.com/python/cpython/
|
||||||
|
"
|
||||||
|
SRC_URI="
|
||||||
|
https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz
|
||||||
|
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||||
|
verify-sig? (
|
||||||
|
https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz.sigstore
|
||||||
|
)
|
||||||
|
"
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="PSF-2"
|
||||||
|
SLOT="${PYVER}"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
IUSE="
|
||||||
|
bluetooth build debug +ensurepip examples gdbm
|
||||||
|
libedit +ncurses pgo +readline +sqlite +ssl tail-call-interp test tk valgrind
|
||||||
|
"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||||
|
# If you need to apply a patch which requires python for bootstrapping, please
|
||||||
|
# run the bootstrap code on your dev box and include the results in the
|
||||||
|
# patchset. See bug 447752.
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
app-arch/bzip2:=
|
||||||
|
app-arch/xz-utils:=
|
||||||
|
app-arch/zstd:=
|
||||||
|
>=dev-libs/expat-2.1:=
|
||||||
|
dev-libs/libffi:=
|
||||||
|
dev-libs/mpdecimal:=
|
||||||
|
dev-python/gentoo-common
|
||||||
|
>=sys-libs/zlib-1.1.3:=
|
||||||
|
virtual/libintl
|
||||||
|
ensurepip? ( dev-python/ensurepip-pip )
|
||||||
|
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||||
|
kernel_linux? ( sys-apps/util-linux:= )
|
||||||
|
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||||
|
readline? (
|
||||||
|
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||||
|
libedit? ( dev-libs/libedit:= )
|
||||||
|
)
|
||||||
|
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||||
|
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||||
|
tk? (
|
||||||
|
>=dev-lang/tcl-8.0:=
|
||||||
|
>=dev-lang/tk-8.0:=
|
||||||
|
dev-tcltk/blt:=
|
||||||
|
dev-tcltk/tix
|
||||||
|
)
|
||||||
|
"
|
||||||
|
# bluetooth requires headers from bluez
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
bluetooth? ( net-wireless/bluez )
|
||||||
|
test? (
|
||||||
|
dev-python/ensurepip-pip
|
||||||
|
dev-python/ensurepip-setuptools
|
||||||
|
dev-python/ensurepip-wheel
|
||||||
|
)
|
||||||
|
valgrind? ( dev-debug/valgrind )
|
||||||
|
"
|
||||||
|
# autoconf-archive needed to eautoreconf
|
||||||
|
BDEPEND="
|
||||||
|
dev-build/autoconf-archive
|
||||||
|
app-alternatives/awk
|
||||||
|
virtual/pkgconfig
|
||||||
|
"
|
||||||
|
RDEPEND+="
|
||||||
|
!build? ( app-misc/mime-types )
|
||||||
|
"
|
||||||
|
if [[ ${PV} != *_alpha* ]]; then
|
||||||
|
RDEPEND+="
|
||||||
|
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# https://www.python.org/downloads/metadata/sigstore/
|
||||||
|
VERIFY_SIG_CERT_IDENTITY=hugo@python.org
|
||||||
|
VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
|
||||||
|
|
||||||
|
# large file tests involve a 2.5G file being copied (duplicated)
|
||||||
|
CHECKREQS_DISK_BUILD=5500M
|
||||||
|
|
||||||
|
QA_PKGCONFIG_VERSION=${PYVER%t}
|
||||||
|
# false positives -- functions specific to *BSD
|
||||||
|
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||||
|
|
||||||
|
declare -rgA PYTHON_KERNEL_CHECKS=(
|
||||||
|
["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589
|
||||||
|
["DNOTIFY"]="test_fcntl" # bug 938662
|
||||||
|
)
|
||||||
|
|
||||||
|
pkg_pretend() {
|
||||||
|
if use pgo || use test; then
|
||||||
|
check-reqs_pkg_pretend
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
if [[ ${MERGE_TYPE} != binary ]]; then
|
||||||
|
if use test || use pgo; then
|
||||||
|
check-reqs_pkg_setup
|
||||||
|
|
||||||
|
local CONFIG_CHECK
|
||||||
|
for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do
|
||||||
|
CONFIG_CHECK+="~${f} "
|
||||||
|
done
|
||||||
|
linux-info_pkg_setup
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if use verify-sig; then
|
||||||
|
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
|
||||||
|
fi
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# Ensure that internal copies of expat and libffi are not used.
|
||||||
|
# TODO: Makefile has annoying deps on expat headers
|
||||||
|
#rm -r Modules/expat || die
|
||||||
|
|
||||||
|
local PATCHES=(
|
||||||
|
"${WORKDIR}/${PATCHSET}"
|
||||||
|
)
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
# force the correct number of jobs
|
||||||
|
# https://bugs.gentoo.org/737660
|
||||||
|
sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die
|
||||||
|
|
||||||
|
# breaks tests when using --with-wheel-pkg-dir
|
||||||
|
rm -r Lib/test/wheeldata || die
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
build_cbuild_python() {
|
||||||
|
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||||
|
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
#
|
||||||
|
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||||
|
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||||
|
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||||
|
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||||
|
|
||||||
|
# We need to build our own Python on CBUILD first, and feed it in.
|
||||||
|
# bug #847910
|
||||||
|
local myeconfargs_cbuild=(
|
||||||
|
"${myeconfargs[@]}"
|
||||||
|
|
||||||
|
--prefix="${BROOT}"/usr
|
||||||
|
--libdir="${cbuild_libdir:2}"
|
||||||
|
|
||||||
|
# Avoid needing to load the right libpython.so.
|
||||||
|
--disable-shared
|
||||||
|
|
||||||
|
# As minimal as possible for the mini CBUILD Python
|
||||||
|
# we build just for cross to satisfy --with-build-python.
|
||||||
|
--without-lto
|
||||||
|
--without-readline
|
||||||
|
--disable-optimizations
|
||||||
|
)
|
||||||
|
|
||||||
|
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||||
|
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||||
|
|
||||||
|
# Avoid as many dependencies as possible for the cross build.
|
||||||
|
mkdir Modules || die
|
||||||
|
cat > Modules/Setup.local <<-EOF || die
|
||||||
|
*disabled*
|
||||||
|
nis
|
||||||
|
_dbm _gdbm
|
||||||
|
_sqlite3
|
||||||
|
_hashlib _ssl
|
||||||
|
_curses _curses_panel
|
||||||
|
readline
|
||||||
|
_tkinter
|
||||||
|
pyexpat
|
||||||
|
zlib
|
||||||
|
# We disabled these for CBUILD because Python's setup.py can't handle locating
|
||||||
|
# libdir correctly for cross. This should be rechecked for the pure Makefile approach,
|
||||||
|
# and uncommented if needed.
|
||||||
|
#_ctypes
|
||||||
|
EOF
|
||||||
|
|
||||||
|
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||||
|
|
||||||
|
# Unfortunately, we do have to build this immediately, and
|
||||||
|
# not in src_compile, because CHOST configure for Python
|
||||||
|
# will check the existence of the --with-build-python value
|
||||||
|
# immediately.
|
||||||
|
emake
|
||||||
|
popd &> /dev/null || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# disable automagic bluetooth headers detection
|
||||||
|
if ! use bluetooth; then
|
||||||
|
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
filter-flags -malign-double
|
||||||
|
|
||||||
|
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||||
|
# PKG_CONFIG needed for cross.
|
||||||
|
tc-export CXX PKG_CONFIG
|
||||||
|
|
||||||
|
local dbmliborder=
|
||||||
|
if use gdbm; then
|
||||||
|
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set baseline test skip flags.
|
||||||
|
COMMON_TEST_SKIPS=(
|
||||||
|
# this is actually test_gdb.test_pretty_print
|
||||||
|
-x test_pretty_print
|
||||||
|
# https://bugs.gentoo.org/933840
|
||||||
|
-x test_perf_profiler
|
||||||
|
)
|
||||||
|
|
||||||
|
# Arch-specific skips. See #931888 for a collection of these.
|
||||||
|
case ${CHOST} in
|
||||||
|
alpha*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_builtin
|
||||||
|
-x test_capi
|
||||||
|
-x test_cmath
|
||||||
|
-x test_float
|
||||||
|
# timeout
|
||||||
|
-x test_free_threading
|
||||||
|
-x test_math
|
||||||
|
-x test_numeric_tower
|
||||||
|
-x test_random
|
||||||
|
-x test_statistics
|
||||||
|
# bug 653850
|
||||||
|
-x test_resource
|
||||||
|
-x test_strtod
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
arm*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_gdb
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
hppa*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_gdb
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
mips*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_ctypes
|
||||||
|
-x test_external_inspection
|
||||||
|
-x test_statistics
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
powerpc64-*) # big endian
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_gdb
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
riscv*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_urllib2
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
sparc*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
# bug 788022
|
||||||
|
-x test_multiprocessing_fork
|
||||||
|
-x test_multiprocessing_forkserver
|
||||||
|
-x test_multiprocessing_spawn
|
||||||
|
|
||||||
|
-x test_ctypes
|
||||||
|
-x test_gdb
|
||||||
|
# bug 931908
|
||||||
|
-x test_exceptions
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Kernel-config specific skips
|
||||||
|
for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do
|
||||||
|
if ! linux_config_exists || ! linux_chkconfig_present "${option}"
|
||||||
|
then
|
||||||
|
COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" )
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# musl-specific skips
|
||||||
|
use elibc_musl && COMMON_TEST_SKIPS+=(
|
||||||
|
# various musl locale deficiencies
|
||||||
|
-x test__locale
|
||||||
|
-x test_c_locale_coercion
|
||||||
|
-x test_locale
|
||||||
|
-x test_re
|
||||||
|
|
||||||
|
# known issues with find_library on musl
|
||||||
|
# https://bugs.python.org/issue21622
|
||||||
|
-x test_ctypes
|
||||||
|
|
||||||
|
# fpathconf, ttyname errno values
|
||||||
|
-x test_os
|
||||||
|
)
|
||||||
|
|
||||||
|
if use pgo; then
|
||||||
|
local profile_task_flags=(
|
||||||
|
-m test
|
||||||
|
"-j$(makeopts_jobs)"
|
||||||
|
--pgo-extended
|
||||||
|
--verbose3
|
||||||
|
-u-network
|
||||||
|
|
||||||
|
# We use a timeout because of how often we've had hang issues
|
||||||
|
# here. It also matches the default upstream PROFILE_TASK.
|
||||||
|
--timeout 1200
|
||||||
|
|
||||||
|
"${COMMON_TEST_SKIPS[@]}"
|
||||||
|
|
||||||
|
-x test_dtrace
|
||||||
|
|
||||||
|
# All of these seem to occasionally hang for PGO inconsistently
|
||||||
|
# They'll even hang here but be fine in src_test sometimes.
|
||||||
|
# bug #828535 (and related: bug #788022)
|
||||||
|
-x test_asyncio
|
||||||
|
-x test_httpservers
|
||||||
|
-x test_logging
|
||||||
|
-x test_multiprocessing_fork
|
||||||
|
-x test_socket
|
||||||
|
-x test_xmlrpc
|
||||||
|
|
||||||
|
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||||
|
# bug #900429
|
||||||
|
-x test_tools
|
||||||
|
)
|
||||||
|
|
||||||
|
if has_version "app-arch/rpm" ; then
|
||||||
|
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||||
|
profile_task_flags+=(
|
||||||
|
-x test_distutils
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
# PGO sometimes fails randomly
|
||||||
|
local -x PROFILE_TASK="${profile_task_flags[*]} || true"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local myeconfargs=(
|
||||||
|
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||||
|
# Python on glibc upgrade, remove it proactively to give
|
||||||
|
# a chance for users rebuilding python before glibc
|
||||||
|
ac_cv_header_stropts_h=no
|
||||||
|
|
||||||
|
--enable-shared
|
||||||
|
--without-static-libpython
|
||||||
|
--enable-ipv6
|
||||||
|
--infodir='${prefix}/share/info'
|
||||||
|
--mandir='${prefix}/share/man'
|
||||||
|
--with-dbmliborder="${dbmliborder}"
|
||||||
|
--with-libc=
|
||||||
|
--enable-loadable-sqlite-extensions
|
||||||
|
--without-ensurepip
|
||||||
|
--without-lto
|
||||||
|
--with-system-expat
|
||||||
|
--with-system-libmpdec
|
||||||
|
--with-platlibdir=lib
|
||||||
|
--with-pkg-config=yes
|
||||||
|
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||||
|
--disable-gil
|
||||||
|
|
||||||
|
$(use_with debug assertions)
|
||||||
|
$(use_enable pgo optimizations)
|
||||||
|
$(use_with readline readline "$(usex libedit editline readline)")
|
||||||
|
$(use_with tail-call-interp)
|
||||||
|
$(use_with valgrind)
|
||||||
|
)
|
||||||
|
|
||||||
|
if tc-is-lto; then
|
||||||
|
myeconfargs+=(
|
||||||
|
--with-lto
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Force-disable modules we don't want built.
|
||||||
|
# See Modules/Setup for docs on how this works. Setup.local contains our local deviations.
|
||||||
|
cat > Modules/Setup.local <<-EOF || die
|
||||||
|
*disabled*
|
||||||
|
nis
|
||||||
|
$(usev !gdbm '_gdbm _dbm')
|
||||||
|
$(usev !sqlite '_sqlite3')
|
||||||
|
$(usev !ssl '_hashlib _ssl')
|
||||||
|
$(usev !ncurses '_curses _curses_panel')
|
||||||
|
$(usev !readline 'readline')
|
||||||
|
$(usev !tk '_tkinter')
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# disable implicit optimization/debugging flags
|
||||||
|
local -x OPT=
|
||||||
|
|
||||||
|
if tc-is-cross-compiler ; then
|
||||||
|
build_cbuild_python
|
||||||
|
myeconfargs+=(
|
||||||
|
# Point the imminent CHOST build to the Python we just
|
||||||
|
# built for CBUILD.
|
||||||
|
--with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
local -x CFLAGS_NODIST=${CFLAGS}
|
||||||
|
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||||
|
if use ncurses; then
|
||||||
|
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||||
|
fi
|
||||||
|
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
|
||||||
|
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||||
|
eerror "configure has detected that the sem_open function is broken."
|
||||||
|
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||||
|
die "Broken sem_open function (bug 496328)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install epython.py as part of stdlib
|
||||||
|
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
# Ensure sed works as expected
|
||||||
|
# https://bugs.gentoo.org/594768
|
||||||
|
local -x LC_ALL=C
|
||||||
|
export PYTHONSTRICTEXTENSIONBUILD=1
|
||||||
|
|
||||||
|
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||||
|
# end up writing bytecode & violating sandbox.
|
||||||
|
# bug #831897
|
||||||
|
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
# Gentoo hack to disable accessing system site-packages
|
||||||
|
export GENTOO_CPYTHON_BUILD=1
|
||||||
|
|
||||||
|
if use pgo ; then
|
||||||
|
# bug 660358
|
||||||
|
local -x COLUMNS=80
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=
|
||||||
|
local -x TMPDIR=/var/tmp
|
||||||
|
fi
|
||||||
|
|
||||||
|
# also need to clear the flags explicitly here or they end up
|
||||||
|
# in _sysconfigdata*
|
||||||
|
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Restore saved value from above.
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
# Work around bug 329499. See also bug 413751 and 457194.
|
||||||
|
if has_version dev-libs/libffi[pax-kernel]; then
|
||||||
|
pax-mark E python
|
||||||
|
else
|
||||||
|
pax-mark m python
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Tests will not work when cross compiling.
|
||||||
|
if tc-is-cross-compiler; then
|
||||||
|
elog "Disabling tests due to crosscompiling."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# this just happens to skip test_support.test_freeze that is broken
|
||||||
|
# without bundled expat
|
||||||
|
# TODO: get a proper skip for it upstream
|
||||||
|
local -x LOGNAME=buildbot
|
||||||
|
|
||||||
|
local test_opts=(
|
||||||
|
--verbose3
|
||||||
|
-u-network
|
||||||
|
-j "$(makeopts_jobs)"
|
||||||
|
"${COMMON_TEST_SKIPS[@]}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# bug 660358
|
||||||
|
local -x COLUMNS=80
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=
|
||||||
|
local -x TMPDIR=/var/tmp
|
||||||
|
|
||||||
|
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||||
|
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||||
|
local ret=${?}
|
||||||
|
|
||||||
|
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local libdir=${ED}/usr/lib/python${PYVER}
|
||||||
|
|
||||||
|
# -j1 hack for now for bug #843458
|
||||||
|
emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall
|
||||||
|
|
||||||
|
# Fix collisions between different slots of Python.
|
||||||
|
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||||
|
# Fix collision with GIL-enabled build.
|
||||||
|
rm "${ED}/usr/bin/python${PYVER%t}" || die
|
||||||
|
mv "${ED}"/usr/bin/pydoc{${PYVER%t},${PYVER}} || die
|
||||||
|
mv "${ED}"/usr/share/man/man1/python{${PYVER%t},${PYVER}}.1 || die
|
||||||
|
|
||||||
|
# Cheap hack to get version with ABIFLAGS
|
||||||
|
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||||
|
if [[ ${abiver} != python${PYVER} ]]; then
|
||||||
|
# Replace python3.X with a symlink to python3.Xm
|
||||||
|
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||||
|
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||||
|
# Create python3.X-config symlink
|
||||||
|
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||||
|
# Create python-3.5m.pc symlink
|
||||||
|
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# python seems to get rebuilt in src_install (bug 569908)
|
||||||
|
# Work around it for now.
|
||||||
|
if has_version dev-libs/libffi[pax-kernel]; then
|
||||||
|
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||||
|
else
|
||||||
|
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||||
|
if ! use sqlite; then
|
||||||
|
rm -r "${libdir}/"sqlite3 || die
|
||||||
|
fi
|
||||||
|
if use tk; then
|
||||||
|
# rename to avoid collision with dev-lang/python
|
||||||
|
mv "${ED}"/usr/bin/idle{${PYVER%t},${PYVER}} || die
|
||||||
|
else
|
||||||
|
rm -r "${ED}/usr/bin/idle${PYVER%t}" || die
|
||||||
|
rm -r "${libdir}/"{idlelib,tkinter} || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||||
|
|
||||||
|
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||||
|
|
||||||
|
if use examples; then
|
||||||
|
docinto examples
|
||||||
|
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||||
|
dodoc -r Tools
|
||||||
|
fi
|
||||||
|
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||||
|
local libname=$(
|
||||||
|
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||||
|
emake --no-print-directory -s -f - 2>/dev/null
|
||||||
|
)
|
||||||
|
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||||
|
|
||||||
|
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||||
|
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||||
|
sed \
|
||||||
|
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||||
|
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||||
|
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||||
|
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||||
|
|
||||||
|
# python-exec wrapping support
|
||||||
|
local pymajor=${PYVER%.*}
|
||||||
|
local EPYTHON=python${PYVER}
|
||||||
|
local scriptdir=${D}$(python_get_scriptdir)
|
||||||
|
mkdir -p "${scriptdir}" || die
|
||||||
|
# python and pythonX
|
||||||
|
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||||
|
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||||
|
# python-config and pythonX-config
|
||||||
|
# note: we need to create a wrapper rather than symlinking it due
|
||||||
|
# to some random dirname(argv[0]) magic performed by python-config
|
||||||
|
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||||
|
#!/bin/sh
|
||||||
|
exec "${abiver}-config" "\${@}"
|
||||||
|
EOF
|
||||||
|
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||||
|
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||||
|
# pydoc
|
||||||
|
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||||
|
# idle
|
||||||
|
if use tk; then
|
||||||
|
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
if ver_replacing -lt 3.14.0_beta3; then
|
||||||
|
ewarn "Python 3.14.0b3 has changed its module ABI. The .pyc files"
|
||||||
|
ewarn "installed previously are no longer valid and will be regenerated"
|
||||||
|
ewarn "(or ignored) on the next import. This may cause sandbox failures"
|
||||||
|
ewarn "when installing some packages and checksum mismatches when removing"
|
||||||
|
ewarn "old versions. To actively prevent this, rebuild all packages"
|
||||||
|
ewarn "installing Python 3.14 modules, e.g. using:"
|
||||||
|
ewarn
|
||||||
|
ewarn " emerge -1v /usr/lib/python3.14t/site-packages"
|
||||||
|
fi
|
||||||
|
}
|
@ -378,7 +378,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -372,7 +372,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -197,7 +197,6 @@ src_configure() {
|
|||||||
--enable-unicode=ucs4
|
--enable-unicode=ucs4
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -375,7 +375,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}"
|
|||||||
|
|
||||||
LICENSE="PSF-2"
|
LICENSE="PSF-2"
|
||||||
SLOT="${PYVER}"
|
SLOT="${PYVER}"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
|
||||||
IUSE="
|
IUSE="
|
||||||
bluetooth build debug +ensurepip examples gdbm libedit
|
bluetooth build debug +ensurepip examples gdbm libedit
|
||||||
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||||
@ -375,7 +375,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -364,7 +364,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -378,7 +378,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}"
|
|||||||
|
|
||||||
LICENSE="PSF-2"
|
LICENSE="PSF-2"
|
||||||
SLOT="${PYVER}"
|
SLOT="${PYVER}"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
|
||||||
IUSE="
|
IUSE="
|
||||||
bluetooth build debug +ensurepip examples gdbm libedit
|
bluetooth build debug +ensurepip examples gdbm libedit
|
||||||
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||||
@ -378,7 +378,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -367,7 +367,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -379,7 +379,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}"
|
|||||||
|
|
||||||
LICENSE="PSF-2"
|
LICENSE="PSF-2"
|
||||||
SLOT="${PYVER}"
|
SLOT="${PYVER}"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
|
||||||
IUSE="
|
IUSE="
|
||||||
bluetooth build debug +ensurepip examples gdbm libedit
|
bluetooth build debug +ensurepip examples gdbm libedit
|
||||||
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||||
@ -379,7 +379,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -368,7 +368,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -402,7 +402,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -402,7 +402,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -32,7 +32,7 @@ S="${WORKDIR}/${MY_P}"
|
|||||||
|
|
||||||
LICENSE="PSF-2"
|
LICENSE="PSF-2"
|
||||||
SLOT="${PYVER}"
|
SLOT="${PYVER}"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
|
||||||
IUSE="
|
IUSE="
|
||||||
bluetooth build debug +ensurepip examples gdbm jit
|
bluetooth build debug +ensurepip examples gdbm jit
|
||||||
libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind
|
libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||||
@ -402,7 +402,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -390,7 +390,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -404,7 +404,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
646
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_beta3.ebuild
vendored
Normal file
646
sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0_beta3.ebuild
vendored
Normal file
@ -0,0 +1,646 @@
|
|||||||
|
# Copyright 1999-2025 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI="8"
|
||||||
|
|
||||||
|
LLVM_COMPAT=( 19 )
|
||||||
|
LLVM_OPTIONAL=1
|
||||||
|
VERIFY_SIG_METHOD=sigstore
|
||||||
|
WANT_LIBTOOL="none"
|
||||||
|
|
||||||
|
inherit autotools check-reqs eapi9-ver flag-o-matic linux-info llvm-r1
|
||||||
|
inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs
|
||||||
|
inherit verify-sig
|
||||||
|
|
||||||
|
MY_PV=${PV/_beta/b}
|
||||||
|
MY_P="Python-${MY_PV%_p*}"
|
||||||
|
PYVER=$(ver_cut 1-2)
|
||||||
|
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||||
|
|
||||||
|
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://www.python.org/
|
||||||
|
https://github.com/python/cpython/
|
||||||
|
"
|
||||||
|
SRC_URI="
|
||||||
|
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||||
|
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||||
|
verify-sig? (
|
||||||
|
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore
|
||||||
|
)
|
||||||
|
"
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="PSF-2"
|
||||||
|
SLOT="${PYVER}"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
IUSE="
|
||||||
|
bluetooth build debug +ensurepip examples gdbm jit
|
||||||
|
libedit +ncurses pgo +readline +sqlite +ssl tail-call-interp test tk valgrind
|
||||||
|
"
|
||||||
|
REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||||
|
# If you need to apply a patch which requires python for bootstrapping, please
|
||||||
|
# run the bootstrap code on your dev box and include the results in the
|
||||||
|
# patchset. See bug 447752.
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
app-arch/bzip2:=
|
||||||
|
app-arch/xz-utils:=
|
||||||
|
app-arch/zstd:=
|
||||||
|
>=dev-libs/expat-2.1:=
|
||||||
|
dev-libs/libffi:=
|
||||||
|
dev-libs/mpdecimal:=
|
||||||
|
dev-python/gentoo-common
|
||||||
|
>=sys-libs/zlib-1.1.3:=
|
||||||
|
virtual/libintl
|
||||||
|
ensurepip? ( dev-python/ensurepip-pip )
|
||||||
|
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||||
|
kernel_linux? ( sys-apps/util-linux:= )
|
||||||
|
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||||
|
readline? (
|
||||||
|
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||||
|
libedit? ( dev-libs/libedit:= )
|
||||||
|
)
|
||||||
|
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||||
|
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||||
|
tk? (
|
||||||
|
>=dev-lang/tcl-8.0:=
|
||||||
|
>=dev-lang/tk-8.0:=
|
||||||
|
dev-tcltk/blt:=
|
||||||
|
dev-tcltk/tix
|
||||||
|
)
|
||||||
|
"
|
||||||
|
# bluetooth requires headers from bluez
|
||||||
|
DEPEND="
|
||||||
|
${RDEPEND}
|
||||||
|
bluetooth? ( net-wireless/bluez )
|
||||||
|
test? (
|
||||||
|
dev-python/ensurepip-pip
|
||||||
|
dev-python/ensurepip-setuptools
|
||||||
|
dev-python/ensurepip-wheel
|
||||||
|
)
|
||||||
|
valgrind? ( dev-debug/valgrind )
|
||||||
|
"
|
||||||
|
# autoconf-archive needed to eautoreconf
|
||||||
|
BDEPEND="
|
||||||
|
dev-build/autoconf-archive
|
||||||
|
app-alternatives/awk
|
||||||
|
virtual/pkgconfig
|
||||||
|
jit? (
|
||||||
|
$(llvm_gen_dep '
|
||||||
|
llvm-core/clang:${LLVM_SLOT}
|
||||||
|
llvm-core/llvm:${LLVM_SLOT}
|
||||||
|
')
|
||||||
|
)
|
||||||
|
"
|
||||||
|
RDEPEND+="
|
||||||
|
!build? ( app-misc/mime-types )
|
||||||
|
"
|
||||||
|
if [[ ${PV} != *_alpha* ]]; then
|
||||||
|
RDEPEND+="
|
||||||
|
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# https://www.python.org/downloads/metadata/sigstore/
|
||||||
|
VERIFY_SIG_CERT_IDENTITY=hugo@python.org
|
||||||
|
VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
|
||||||
|
|
||||||
|
# large file tests involve a 2.5G file being copied (duplicated)
|
||||||
|
CHECKREQS_DISK_BUILD=5500M
|
||||||
|
|
||||||
|
QA_PKGCONFIG_VERSION=${PYVER%t}
|
||||||
|
# false positives -- functions specific to *BSD
|
||||||
|
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||||
|
|
||||||
|
declare -rgA PYTHON_KERNEL_CHECKS=(
|
||||||
|
["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589
|
||||||
|
["DNOTIFY"]="test_fcntl" # bug 938662
|
||||||
|
)
|
||||||
|
|
||||||
|
pkg_pretend() {
|
||||||
|
if use pgo || use test; then
|
||||||
|
check-reqs_pkg_pretend
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use jit; then
|
||||||
|
ewarn "USE=jit is considered experimental upstream. Using it"
|
||||||
|
ewarn "could lead to unexpected breakage, including race conditions"
|
||||||
|
ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless"
|
||||||
|
ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead,"
|
||||||
|
ewarn "please consider reporting JIT problems upstream."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
if [[ ${MERGE_TYPE} != binary ]]; then
|
||||||
|
use jit && llvm-r1_pkg_setup
|
||||||
|
if use test || use pgo; then
|
||||||
|
check-reqs_pkg_setup
|
||||||
|
|
||||||
|
local CONFIG_CHECK
|
||||||
|
for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do
|
||||||
|
CONFIG_CHECK+="~${f} "
|
||||||
|
done
|
||||||
|
linux-info_pkg_setup
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if use verify-sig; then
|
||||||
|
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
|
||||||
|
fi
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# Ensure that internal copies of expat and libffi are not used.
|
||||||
|
# TODO: Makefile has annoying deps on expat headers
|
||||||
|
#rm -r Modules/expat || die
|
||||||
|
|
||||||
|
local PATCHES=(
|
||||||
|
"${WORKDIR}/${PATCHSET}"
|
||||||
|
)
|
||||||
|
|
||||||
|
default
|
||||||
|
|
||||||
|
# force the correct number of jobs
|
||||||
|
# https://bugs.gentoo.org/737660
|
||||||
|
sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die
|
||||||
|
|
||||||
|
# breaks tests when using --with-wheel-pkg-dir
|
||||||
|
rm -r Lib/test/wheeldata || die
|
||||||
|
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
build_cbuild_python() {
|
||||||
|
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||||
|
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
#
|
||||||
|
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||||
|
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||||
|
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||||
|
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||||
|
|
||||||
|
# We need to build our own Python on CBUILD first, and feed it in.
|
||||||
|
# bug #847910
|
||||||
|
local myeconfargs_cbuild=(
|
||||||
|
"${myeconfargs[@]}"
|
||||||
|
|
||||||
|
--prefix="${BROOT}"/usr
|
||||||
|
--libdir="${cbuild_libdir:2}"
|
||||||
|
|
||||||
|
# Avoid needing to load the right libpython.so.
|
||||||
|
--disable-shared
|
||||||
|
|
||||||
|
# As minimal as possible for the mini CBUILD Python
|
||||||
|
# we build just for cross to satisfy --with-build-python.
|
||||||
|
--without-lto
|
||||||
|
--without-readline
|
||||||
|
--disable-optimizations
|
||||||
|
)
|
||||||
|
|
||||||
|
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||||
|
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||||
|
|
||||||
|
# Avoid as many dependencies as possible for the cross build.
|
||||||
|
mkdir Modules || die
|
||||||
|
cat > Modules/Setup.local <<-EOF || die
|
||||||
|
*disabled*
|
||||||
|
nis
|
||||||
|
_dbm _gdbm
|
||||||
|
_sqlite3
|
||||||
|
_hashlib _ssl
|
||||||
|
_curses _curses_panel
|
||||||
|
readline
|
||||||
|
_tkinter
|
||||||
|
pyexpat
|
||||||
|
zlib
|
||||||
|
# We disabled these for CBUILD because Python's setup.py can't handle locating
|
||||||
|
# libdir correctly for cross. This should be rechecked for the pure Makefile approach,
|
||||||
|
# and uncommented if needed.
|
||||||
|
#_ctypes
|
||||||
|
EOF
|
||||||
|
|
||||||
|
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||||
|
|
||||||
|
# Unfortunately, we do have to build this immediately, and
|
||||||
|
# not in src_compile, because CHOST configure for Python
|
||||||
|
# will check the existence of the --with-build-python value
|
||||||
|
# immediately.
|
||||||
|
emake
|
||||||
|
popd &> /dev/null || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# disable automagic bluetooth headers detection
|
||||||
|
if ! use bluetooth; then
|
||||||
|
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
filter-flags -malign-double
|
||||||
|
|
||||||
|
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||||
|
# PKG_CONFIG needed for cross.
|
||||||
|
tc-export CXX PKG_CONFIG
|
||||||
|
|
||||||
|
local dbmliborder=
|
||||||
|
if use gdbm; then
|
||||||
|
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set baseline test skip flags.
|
||||||
|
COMMON_TEST_SKIPS=(
|
||||||
|
# this is actually test_gdb.test_pretty_print
|
||||||
|
-x test_pretty_print
|
||||||
|
# https://bugs.gentoo.org/933840
|
||||||
|
-x test_perf_profiler
|
||||||
|
)
|
||||||
|
|
||||||
|
# Arch-specific skips. See #931888 for a collection of these.
|
||||||
|
case ${CHOST} in
|
||||||
|
alpha*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_builtin
|
||||||
|
-x test_capi
|
||||||
|
-x test_cmath
|
||||||
|
-x test_float
|
||||||
|
# timeout
|
||||||
|
-x test_free_threading
|
||||||
|
-x test_math
|
||||||
|
-x test_numeric_tower
|
||||||
|
-x test_random
|
||||||
|
-x test_statistics
|
||||||
|
# bug 653850
|
||||||
|
-x test_resource
|
||||||
|
-x test_strtod
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
arm*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_gdb
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
hppa*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_gdb
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
mips*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_ctypes
|
||||||
|
-x test_external_inspection
|
||||||
|
-x test_statistics
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
powerpc64-*) # big endian
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_gdb
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
riscv*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
-x test_urllib2
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
sparc*)
|
||||||
|
COMMON_TEST_SKIPS+=(
|
||||||
|
# bug 788022
|
||||||
|
-x test_multiprocessing_fork
|
||||||
|
-x test_multiprocessing_forkserver
|
||||||
|
-x test_multiprocessing_spawn
|
||||||
|
|
||||||
|
-x test_ctypes
|
||||||
|
-x test_gdb
|
||||||
|
# bug 931908
|
||||||
|
-x test_exceptions
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Kernel-config specific skips
|
||||||
|
for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do
|
||||||
|
if ! linux_config_exists || ! linux_chkconfig_present "${option}"
|
||||||
|
then
|
||||||
|
COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" )
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# musl-specific skips
|
||||||
|
use elibc_musl && COMMON_TEST_SKIPS+=(
|
||||||
|
# various musl locale deficiencies
|
||||||
|
-x test__locale
|
||||||
|
-x test_c_locale_coercion
|
||||||
|
-x test_locale
|
||||||
|
-x test_re
|
||||||
|
|
||||||
|
# known issues with find_library on musl
|
||||||
|
# https://bugs.python.org/issue21622
|
||||||
|
-x test_ctypes
|
||||||
|
|
||||||
|
# fpathconf, ttyname errno values
|
||||||
|
-x test_os
|
||||||
|
)
|
||||||
|
|
||||||
|
if use pgo; then
|
||||||
|
local profile_task_flags=(
|
||||||
|
-m test
|
||||||
|
"-j$(makeopts_jobs)"
|
||||||
|
--pgo-extended
|
||||||
|
--verbose3
|
||||||
|
-u-network
|
||||||
|
|
||||||
|
# We use a timeout because of how often we've had hang issues
|
||||||
|
# here. It also matches the default upstream PROFILE_TASK.
|
||||||
|
--timeout 1200
|
||||||
|
|
||||||
|
"${COMMON_TEST_SKIPS[@]}"
|
||||||
|
|
||||||
|
-x test_dtrace
|
||||||
|
|
||||||
|
# All of these seem to occasionally hang for PGO inconsistently
|
||||||
|
# They'll even hang here but be fine in src_test sometimes.
|
||||||
|
# bug #828535 (and related: bug #788022)
|
||||||
|
-x test_asyncio
|
||||||
|
-x test_httpservers
|
||||||
|
-x test_logging
|
||||||
|
-x test_multiprocessing_fork
|
||||||
|
-x test_socket
|
||||||
|
-x test_xmlrpc
|
||||||
|
|
||||||
|
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||||
|
# bug #900429
|
||||||
|
-x test_tools
|
||||||
|
)
|
||||||
|
|
||||||
|
if has_version "app-arch/rpm" ; then
|
||||||
|
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||||
|
profile_task_flags+=(
|
||||||
|
-x test_distutils
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
# PGO sometimes fails randomly
|
||||||
|
local -x PROFILE_TASK="${profile_task_flags[*]} || true"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local myeconfargs=(
|
||||||
|
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||||
|
# Python on glibc upgrade, remove it proactively to give
|
||||||
|
# a chance for users rebuilding python before glibc
|
||||||
|
ac_cv_header_stropts_h=no
|
||||||
|
|
||||||
|
--enable-shared
|
||||||
|
--without-static-libpython
|
||||||
|
--enable-ipv6
|
||||||
|
--infodir='${prefix}/share/info'
|
||||||
|
--mandir='${prefix}/share/man'
|
||||||
|
--with-dbmliborder="${dbmliborder}"
|
||||||
|
--with-libc=
|
||||||
|
--enable-loadable-sqlite-extensions
|
||||||
|
--without-ensurepip
|
||||||
|
--without-lto
|
||||||
|
--with-system-expat
|
||||||
|
--with-system-libmpdec
|
||||||
|
--with-platlibdir=lib
|
||||||
|
--with-pkg-config=yes
|
||||||
|
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||||
|
--enable-gil
|
||||||
|
|
||||||
|
$(use_with debug assertions)
|
||||||
|
$(use_enable jit experimental-jit)
|
||||||
|
$(use_enable pgo optimizations)
|
||||||
|
$(use_with readline readline "$(usex libedit editline readline)")
|
||||||
|
$(use_with tail-call-interp)
|
||||||
|
$(use_with valgrind)
|
||||||
|
)
|
||||||
|
|
||||||
|
if tc-is-lto; then
|
||||||
|
myeconfargs+=(
|
||||||
|
--with-lto
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Force-disable modules we don't want built.
|
||||||
|
# See Modules/Setup for docs on how this works. Setup.local contains our local deviations.
|
||||||
|
cat > Modules/Setup.local <<-EOF || die
|
||||||
|
*disabled*
|
||||||
|
nis
|
||||||
|
$(usev !gdbm '_gdbm _dbm')
|
||||||
|
$(usev !sqlite '_sqlite3')
|
||||||
|
$(usev !ssl '_hashlib _ssl')
|
||||||
|
$(usev !ncurses '_curses _curses_panel')
|
||||||
|
$(usev !readline 'readline')
|
||||||
|
$(usev !tk '_tkinter')
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# disable implicit optimization/debugging flags
|
||||||
|
local -x OPT=
|
||||||
|
|
||||||
|
if tc-is-cross-compiler ; then
|
||||||
|
build_cbuild_python
|
||||||
|
myeconfargs+=(
|
||||||
|
# Point the imminent CHOST build to the Python we just
|
||||||
|
# built for CBUILD.
|
||||||
|
--with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||||
|
# propagated to sysconfig for built extensions
|
||||||
|
local -x CFLAGS_NODIST=${CFLAGS}
|
||||||
|
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||||
|
local -x CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||||
|
if use ncurses; then
|
||||||
|
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||||
|
fi
|
||||||
|
|
||||||
|
econf "${myeconfargs[@]}"
|
||||||
|
|
||||||
|
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||||
|
eerror "configure has detected that the sem_open function is broken."
|
||||||
|
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||||
|
die "Broken sem_open function (bug 496328)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install epython.py as part of stdlib
|
||||||
|
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
# Ensure sed works as expected
|
||||||
|
# https://bugs.gentoo.org/594768
|
||||||
|
local -x LC_ALL=C
|
||||||
|
export PYTHONSTRICTEXTENSIONBUILD=1
|
||||||
|
|
||||||
|
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||||
|
# end up writing bytecode & violating sandbox.
|
||||||
|
# bug #831897
|
||||||
|
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
# Gentoo hack to disable accessing system site-packages
|
||||||
|
export GENTOO_CPYTHON_BUILD=1
|
||||||
|
|
||||||
|
if use pgo ; then
|
||||||
|
# bug 660358
|
||||||
|
local -x COLUMNS=80
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=
|
||||||
|
local -x TMPDIR=/var/tmp
|
||||||
|
fi
|
||||||
|
|
||||||
|
# also need to clear the flags explicitly here or they end up
|
||||||
|
# in _sysconfigdata*
|
||||||
|
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||||
|
|
||||||
|
# Restore saved value from above.
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||||
|
|
||||||
|
# Work around bug 329499. See also bug 413751 and 457194.
|
||||||
|
if has_version dev-libs/libffi[pax-kernel]; then
|
||||||
|
pax-mark E python
|
||||||
|
else
|
||||||
|
pax-mark m python
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Tests will not work when cross compiling.
|
||||||
|
if tc-is-cross-compiler; then
|
||||||
|
elog "Disabling tests due to crosscompiling."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# this just happens to skip test_support.test_freeze that is broken
|
||||||
|
# without bundled expat
|
||||||
|
# TODO: get a proper skip for it upstream
|
||||||
|
local -x LOGNAME=buildbot
|
||||||
|
|
||||||
|
local test_opts=(
|
||||||
|
--verbose3
|
||||||
|
-u-network
|
||||||
|
-j "$(makeopts_jobs)"
|
||||||
|
"${COMMON_TEST_SKIPS[@]}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# bug 660358
|
||||||
|
local -x COLUMNS=80
|
||||||
|
local -x PYTHONDONTWRITEBYTECODE=
|
||||||
|
local -x TMPDIR=/var/tmp
|
||||||
|
|
||||||
|
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||||
|
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||||
|
local ret=${?}
|
||||||
|
|
||||||
|
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local libdir=${ED}/usr/lib/python${PYVER}
|
||||||
|
|
||||||
|
# -j1 hack for now for bug #843458
|
||||||
|
emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall
|
||||||
|
|
||||||
|
# Fix collisions between different slots of Python.
|
||||||
|
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||||
|
|
||||||
|
# Cheap hack to get version with ABIFLAGS
|
||||||
|
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||||
|
if [[ ${abiver} != python${PYVER} ]]; then
|
||||||
|
# Replace python3.X with a symlink to python3.Xm
|
||||||
|
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||||
|
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||||
|
# Create python3.X-config symlink
|
||||||
|
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||||
|
# Create python-3.5m.pc symlink
|
||||||
|
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# python seems to get rebuilt in src_install (bug 569908)
|
||||||
|
# Work around it for now.
|
||||||
|
if has_version dev-libs/libffi[pax-kernel]; then
|
||||||
|
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||||
|
else
|
||||||
|
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||||
|
if ! use sqlite; then
|
||||||
|
rm -r "${libdir}/"sqlite3 || die
|
||||||
|
fi
|
||||||
|
if ! use tk; then
|
||||||
|
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||||
|
rm -r "${libdir}/"{idlelib,tkinter} || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||||
|
|
||||||
|
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||||
|
|
||||||
|
if use examples; then
|
||||||
|
docinto examples
|
||||||
|
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||||
|
dodoc -r Tools
|
||||||
|
fi
|
||||||
|
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||||
|
local libname=$(
|
||||||
|
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||||
|
emake --no-print-directory -s -f - 2>/dev/null
|
||||||
|
)
|
||||||
|
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||||
|
|
||||||
|
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||||
|
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||||
|
sed \
|
||||||
|
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||||
|
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||||
|
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||||
|
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||||
|
|
||||||
|
# python-exec wrapping support
|
||||||
|
local pymajor=${PYVER%.*}
|
||||||
|
local EPYTHON=python${PYVER}
|
||||||
|
local scriptdir=${D}$(python_get_scriptdir)
|
||||||
|
mkdir -p "${scriptdir}" || die
|
||||||
|
# python and pythonX
|
||||||
|
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||||
|
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||||
|
# python-config and pythonX-config
|
||||||
|
# note: we need to create a wrapper rather than symlinking it due
|
||||||
|
# to some random dirname(argv[0]) magic performed by python-config
|
||||||
|
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||||
|
#!/bin/sh
|
||||||
|
exec "${abiver}-config" "\${@}"
|
||||||
|
EOF
|
||||||
|
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||||
|
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||||
|
# pydoc
|
||||||
|
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||||
|
# idle
|
||||||
|
if use tk; then
|
||||||
|
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
if ver_replacing -lt 3.14.0_beta3; then
|
||||||
|
ewarn "Python 3.14.0b3 has changed its module ABI. The .pyc files"
|
||||||
|
ewarn "installed previously are no longer valid and will be regenerated"
|
||||||
|
ewarn "(or ignored) on the next import. This may cause sandbox failures"
|
||||||
|
ewarn "when installing some packages and checksum mismatches when removing"
|
||||||
|
ewarn "old versions. To actively prevent this, rebuild all packages"
|
||||||
|
ewarn "installing Python 3.14 modules, e.g. using:"
|
||||||
|
ewarn
|
||||||
|
ewarn " emerge -1v /usr/lib/python3.14/site-packages"
|
||||||
|
fi
|
||||||
|
}
|
@ -390,7 +390,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -384,7 +384,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -231,7 +231,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -308,7 +308,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}"
|
|||||||
|
|
||||||
LICENSE="PSF-2"
|
LICENSE="PSF-2"
|
||||||
SLOT="${PYVER}"
|
SLOT="${PYVER}"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
|
||||||
IUSE="
|
IUSE="
|
||||||
bluetooth build debug +ensurepip examples gdbm +ncurses pgo
|
bluetooth build debug +ensurepip examples gdbm +ncurses pgo
|
||||||
+readline +sqlite +ssl test tk valgrind
|
+readline +sqlite +ssl test tk valgrind
|
||||||
@ -308,7 +308,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -297,7 +297,6 @@ src_configure() {
|
|||||||
--enable-ipv6
|
--enable-ipv6
|
||||||
--infodir='${prefix}/share/info'
|
--infodir='${prefix}/share/info'
|
||||||
--mandir='${prefix}/share/man'
|
--mandir='${prefix}/share/man'
|
||||||
--with-computed-gotos
|
|
||||||
--with-dbmliborder="${dbmliborder}"
|
--with-dbmliborder="${dbmliborder}"
|
||||||
--with-libc=
|
--with-libc=
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
@ -551,62 +551,34 @@ DIST rust-1.87.0-x86_64-unknown-linux-gnu.tar.xz 198639092 BLAKE2B 908c974cc044e
|
|||||||
DIST rust-1.87.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B edac3e21d9414e774c507a352664f6d73beb78ca3b4f19c95097e073b461d10aeef8d0b2bcf0457b8944c40327f04907c05edcc92070cc10958a9deb1d843bc7 SHA512 1946680287698a07a922c18b74d27c1de374eed86624aeb76167aafcd0acc8ad4bca57fea5a8f8420deadcaf819be6ea0c47b8ca97033cd94578037fbbc86168
|
DIST rust-1.87.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B edac3e21d9414e774c507a352664f6d73beb78ca3b4f19c95097e073b461d10aeef8d0b2bcf0457b8944c40327f04907c05edcc92070cc10958a9deb1d843bc7 SHA512 1946680287698a07a922c18b74d27c1de374eed86624aeb76167aafcd0acc8ad4bca57fea5a8f8420deadcaf819be6ea0c47b8ca97033cd94578037fbbc86168
|
||||||
DIST rust-1.87.0-x86_64-unknown-linux-musl.tar.xz 292508024 BLAKE2B 2fdf8a2be388bbfeb52211c372b95f42563ef762883d4634f857545a3bdcf9fa6c41c9099df1a26b936f3a3e9e8679d891d3ed80e593e405663f02421fadad6c SHA512 9629d62407eb517e09b21cca83ae1528b60b589df29ee12d99e7f334c234cdd9e24c497c175b4e83b8a993f6117e17a8004b350a28868d7e5247c26dd165d253
|
DIST rust-1.87.0-x86_64-unknown-linux-musl.tar.xz 292508024 BLAKE2B 2fdf8a2be388bbfeb52211c372b95f42563ef762883d4634f857545a3bdcf9fa6c41c9099df1a26b936f3a3e9e8679d891d3ed80e593e405663f02421fadad6c SHA512 9629d62407eb517e09b21cca83ae1528b60b589df29ee12d99e7f334c234cdd9e24c497c175b4e83b8a993f6117e17a8004b350a28868d7e5247c26dd165d253
|
||||||
DIST rust-1.87.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 9ee89dcd5bca680c4b6c13b85166d4d7d6bf1c685931a6466e8701868840136376ae8980931e5cf91f82da1cec7f9bfc0ec74576d5e57eb14991d7d398524cd7 SHA512 5985a66b9c898f71864c5f18104a92930bfd20acd827efd0d7222c28da25fc96ca72f72c880be0b75ed25ea381f9d7e07e2e1243c4b465eb4903073bb74691bf
|
DIST rust-1.87.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 9ee89dcd5bca680c4b6c13b85166d4d7d6bf1c685931a6466e8701868840136376ae8980931e5cf91f82da1cec7f9bfc0ec74576d5e57eb14991d7d398524cd7 SHA512 5985a66b9c898f71864c5f18104a92930bfd20acd827efd0d7222c28da25fc96ca72f72c880be0b75ed25ea381f9d7e07e2e1243c4b465eb4903073bb74691bf
|
||||||
DIST rust-1.88.0_beta20250526-aarch64-unknown-linux-gnu.tar.xz 165315676 BLAKE2B 5011d0b4507462cc230696942496342fbc576dc398198b7897aed08985c60d009a96c741ad33bd0ff41eff78b45b05eac737f037f707dc008b4f08930294db6d SHA512 a7edd10983f7de4b6cabafccacb215999391d3c33fa2eee2a425ae0116372e207514254cdba1c798dbdc4faa1b0b4cfa6fe158c4b924d1d95dd49034dd593b22
|
DIST rust-1.88.0-aarch64-unknown-linux-gnu.tar.xz 165627944 BLAKE2B dc867d2f48c8642ccd5b19e36febbf624cd5c5ce7b64f04a76b1b0a105ea4a2fb8f34ef264295f2536506cb4a69a3499a7faa7f7df74e0eed340aba5abef7bf0 SHA512 c3e4b290c7faee847c9d0ca8c8bc039e0fa534bda4edcf6b285ce3162473171c2f4a39ff2b2180bddca4aac50d6a0e6af2d9ededc407ba38a17d17919dcefbd2
|
||||||
DIST rust-1.88.0_beta20250526-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 99e83ee876ecc402d26e0c86f22289038841e4a7cb3554536e1d805fadc6a81a59fb403ab63ccaf885ad815871ab9c6aecbe41afd2059a6cb952c323d60d5bd3 SHA512 38eaa3c4afc5426e1a3a9c6a2cae45f1bb8d20806e66b9fbf678d046cd6636fff8d544db2a5d2aa852deac6fc1ce5bf0a06eacb829748a9c42f491da83751389
|
DIST rust-1.88.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d8bb0addf2f137f2f5bec43aab2a664524eb463317ab4dfc2bbc5b557ca7f3904edd0d84b2c2693629f79a5de1456870d2e9331f0b4a4ef14800b085d0e62f29 SHA512 5c66ba1192bd3368eb0f263761f9e531743e48a4a3e841e6291af8d268e98f5cb525e1401554593f55c95ee5433a7790275e5c68f2d39ece8dce6d74ad60b18d
|
||||||
DIST rust-1.88.0_beta20250526-aarch64-unknown-linux-musl.tar.xz 243946068 BLAKE2B a37ff77ffa2964e412dd2eaa2426b65d6e51c610cad38378c1e95fb9c51ace8dc9028cfe96e84eeddd7b450ac30c1684f3febd2d438cb3b92be86a92d6262a0b SHA512 377b2d6c44ea7aeb16a56698105423868d6d81df1fa7412a94b26b3edb1a39af9280e0fcf8baee2e680806f0f0b4d81a2debc8f3ce6e6864ae2602e01391a737
|
DIST rust-1.88.0-aarch64-unknown-linux-musl.tar.xz 243952520 BLAKE2B 08e42e767bf87dd1cac6143b6b7657983481155404bc4baad8213d367bc91dd136b463b2d2ac1aeef64a63493e34e13cd486a87200f7485bf1e8209892172feb SHA512 5822300291961965e7b65b0776b2ce04443ebe45363e32bbac840e154b2ba6f0726ccdff819f01fca42c338a4b42d75cea385a2ac402d10396ac92e9864b5fe3
|
||||||
DIST rust-1.88.0_beta20250526-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B ba903c4d3d2ab4304bfc95632ebec42b76e5f38a176ec1928910751c0b8f05544849d191c8ef660696a4d76ae65d0b5dcb8ed1059b11615227d74fb0f0ddadb8 SHA512 0d72b6d4c4dcee6a0ef6e705b731e90e03f60bed72c7d92ac281e70dc0f87a58344a5c97057117c80a7656f378a6c9a1f3961357fd49128192f0ceaf9827f2ca
|
DIST rust-1.88.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 6677a02a17d831a1376e10ce96a0882645ea99201947b44f8205859d465ac5399eef45c5d1352381c553dddebb15e27466b22a1ae0bc31b5caf9c2482479c94e SHA512 10374492deef414c8f1a83a40114f62706e7cba3a042e83f98f16477fd80c15b2d4a986eb87dc820c6e314a9e775b853cf0d2b0254ac9ce9ef93ed666eaa887b
|
||||||
DIST rust-1.88.0_beta20250526-arm-unknown-linux-gnueabi.tar.xz 229389328 BLAKE2B 9aa0753d731abcdc493a817247adbad1421c5d61246209805ab5025409b2287c573d1cf8a0c1a91fcc68280524991a578dec6502234ea4a545c8f1176c22dbc0 SHA512 c6189f9939389f3bb3e7fbbcfe56beb3abce395ac42323fa97fce479a3f20431b03d702978f005c9a0df234bdd0654048d5254e9f484f33ac74cc60adad9bea8
|
DIST rust-1.88.0-arm-unknown-linux-gnueabi.tar.xz 228820932 BLAKE2B b1baddba49ecdfb8407f2bd01a67bba1b3daebfd2d81d63eb130a0b28f21bd0800121a2ad2ef0ee55a06193d8f7271127b3026e957f3c9dda955854732631b9a SHA512 219c96cde3b11b24e9f6ab3da7268f512c6fcabae110764c81f8524605a3df164d4c2827dabd16488be861dc44a5870a98109f49bc2360fbc72a7f0d7ee865a1
|
||||||
DIST rust-1.88.0_beta20250526-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 07eee2c415503600b5d4299e5f05e884e47e3c353c11dd060100c3108f880a1250506aeaca296675cd33ba2c9741fb2a24000f151ba18e104cd71e1c55316cd4 SHA512 394ec48a653a8b93d0532f2f6df27dc273bbd948d2690f193004b4dbc416717d710cd2c5f3b6da970bba09367176b93a45d6466b552276935572e7f88de9827d
|
DIST rust-1.88.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 864dcd450c9d82f4c49183528cd87cafc8fb1c043736e8a1190cbcab563f8d7c04b9596ad2fff6040e0ba9a3d5eac2f180d3bca517af81ede929164f735ca3fe SHA512 2aaf761ea547f9da71583ca7be8ff17759c81dbabcfd1b24b32dd2962ab37883e881ac3057d7762321e5b25e756e64274e238e6a282b14bafeec7a9a7e25f188
|
||||||
DIST rust-1.88.0_beta20250526-arm-unknown-linux-gnueabihf.tar.xz 229713968 BLAKE2B 6e2b361247abec64200820bf36fa74d5ef43e616ac3eabc5b948f7483f683526683b0c89b5c452f446a958aee989ed8d5fa1f64951389439230910ed13d1f488 SHA512 036ebff25321f4f62189b744857b445a79a34962032c92d35755c0cdac4095c0cdb2ed73d1b136a6f344458a6bd0a51857c122539d5fb5106a7972aa7338ce2a
|
DIST rust-1.88.0-arm-unknown-linux-gnueabihf.tar.xz 229177148 BLAKE2B f3cf21d0ee57401e4cb1df2e70a6d0427ff4464fa3a686cea0f645247f7e9f9c3472d64dc64603b55056396dd9e208eecb286d6ee8e21fbea9f630c526b27191 SHA512 eca0dd5d36808f439445b0885407108dbc8281447c53343e9ce4aab87c4f9990acc398b22f3c615384417a3b7b6d7dc67cf8659e6c21cc88cf9f4fbf82c88027
|
||||||
DIST rust-1.88.0_beta20250526-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 8113dafc49ee2d04975bc510123486ab4b5d3d809ac843557c8404584ffc44b8467d0c915e1c207f2ab1a0e1a02e754f707577b87c4ef241d5f235f60747c732 SHA512 0425892113097b457a06cb260511a67b0107468fc685ff4034d11449f97ac0e2ed9b5ca0dae36f6ce0cbea872c592988c865b1991f22c4c4d68411c7dba8768a
|
DIST rust-1.88.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 5e1fb7f89afff9efaa6b76311c7dd5faf9d5cfb50bf27825b7a60661d11440eee4330925a6c575a178476b5b7d3b554ca2b21cb6aacdaf2b61b219053cfd1794 SHA512 3c00bdb76f30b6b1341012ce4804c78a95f35d89bb9b4daf095a636639034420504b35ca642d7849647634d9dc36e7bdb6c47c943afb0cc2b065f4538d91c478
|
||||||
DIST rust-1.88.0_beta20250526-armv7-unknown-linux-gnueabihf.tar.xz 235456424 BLAKE2B 54bec2fe1a8967d541f162fda8530b1a2d847a223b2edc9a37f285ee32bd99fa40cfd36df38055be76e4a1c894cdf54314b28d822228191e533a6550f6590217 SHA512 670975a615c81e0c45d40824aa2bd3a15c745d6e4e896d94882c8036bf98fc392d59f877061fbf8b0885e2ebee0187e98f5533ffaca8d070602800b9026d4076
|
DIST rust-1.88.0-armv7-unknown-linux-gnueabihf.tar.xz 234574328 BLAKE2B a26d5b3014ad6737da6f8541fdf52af08ab2fb8b2274d3d4251b5fb466ee0ca2a5e106a35484e36ea4b5390fae2f00bb9943e64be22f685318e08e9dbd4b5e65 SHA512 68567b6188cedcd05c775624c3ccae5e1ec6db36192dc9adb7d51ea7613b7c3ac9e2a26eff220aaf1aedcd5f6fc06c73d68715add20cd6eda7ce3b772b9e8a47
|
||||||
DIST rust-1.88.0_beta20250526-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 06e50a4e5c3006c1f85eca5ea35638affee6a6f854ecc40b6ba36a913f634ee9d3649da1fe4bfb64e3d093983eb14568fdbb5b458059837d9fde0103e2fd1222 SHA512 5ee5ecdce8b30354e6094c7cbabfdf942288e53b5aef6e8d36944d30ffef526d4b7c2d7d17c05caf48d6f5a597799fa167f54e216122dcd741fd4af3c7de8172
|
DIST rust-1.88.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 45dcc99b29546f7e87b4c87800b467441b34777aa37f2d581ef56c841b5cff2076c164a3a3fe355a32638855efffb0ad2273c5b8fd6ccf7055190611c2c2c4a3 SHA512 0c411f0dee30aed1b99c5c33fcf2f43bfe11dfc0c52968802cd5b3e50127166b85cfc602483ab39456d77bafa35f6de1da88d254f997fc494756f83e0013cacc
|
||||||
DIST rust-1.88.0_beta20250526-i686-unknown-linux-gnu.tar.xz 261911348 BLAKE2B c1d48ad71cb2b8b12cc6c2d3a1a0d620cc74a260416e037d804d3142e055ae8e8a1e7fb40ce89f8935037d5d97357d1255c9f22377028b1a4e4bba3b1a819e80 SHA512 a16188f8459d658301e6d3a85f5ef7f811cc2ceb7181e83d5394c3c26c75fadf2198ec6fa63fe496e94ad0734bd888021eb1a554f612bed01d1aebb87f820eda
|
DIST rust-1.88.0-i686-unknown-linux-gnu.tar.xz 261235476 BLAKE2B 5ff3f9167158844bc7d16324a282a84b9c2212ab87c794b9432457236cf32133c4c23418e38496d0d69edf6dd87673856690c23e7848ca33cd7e2913630fe4bd SHA512 ccf445c168da1a2fc9b2689632974714b0b609e66e55a8cb412549f08c04ae8d6ae0f2173f8a80cca6a45b76d5ae789dfca5eb2c83066e908442b7ff41a9ecf3
|
||||||
DIST rust-1.88.0_beta20250526-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fe93010560fc2e5b888246c1410d8375d1c9eb488caba10ceac4a4f9c12a7e169fd6213e7949392036705e4b8a654dc394e7d3f8252735da9c80892a969d3d20 SHA512 93c5e9f2790a6b4b7d324ab7f4b5385225e049cee423092cf1997a41dffd84327ec32be4decd9a8b790e1c3efdcda4bd0952214ee31ad7ce5e91206ecf9097bf
|
DIST rust-1.88.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B dbcfa2e32906b07d4d9eb8d62af464f38c626d16b831e5d25fd9517f8f4e22ab60a2d6521f61ac3d36c0d9d6707a702ed3248fa0343462f62e1404574f83af9b SHA512 09f707dbed6f8d46872e4445e49c793a9f9cfedb71f3cc3b115b9447c7c4b86811081400bbf342c5a26b2f929738ffd9fb25f75ed1b13e333683ca6eedde430d
|
||||||
DIST rust-1.88.0_beta20250526-loongarch64-unknown-linux-gnu.tar.xz 261384104 BLAKE2B 661882ea84aec6dde3cf938ba61229bb38d8a745832dae4025965241f61d8a4879a8e727ba35d0a000694bd4ca560f6b2491a3a4213569004f5bdb310be4de10 SHA512 a5b78599ba01a822b1f59f2ce98f5294d968522ac2263cd6a71b08b6dd74fcfe443ac530332b9d67a9555ba7bb0ffef5375c98b1f8f7e6ba0a95e41145aad899
|
DIST rust-1.88.0-loongarch64-unknown-linux-gnu.tar.xz 261520268 BLAKE2B 23d53eecaa14898537cb3647cbff114870223173f4e50cbdc19a7514f34995196792b0390337ad53387a7bb515ec34330502acdc361826429b8f3985a9341c8a SHA512 6f4a040e22de950e975c29f16563f19030fab9fbe9476f55a4542c3ad9eaa9c34500cdd4344819b5cc27831b32811d25d296845fef01475224a2bfbae7ef9ce7
|
||||||
DIST rust-1.88.0_beta20250526-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d4807f009edf0b41134ba6a7a1fb78c0b0a4b38c7281c8808fd2bd0c3856820353414ea70eabdbe25064c4f0800b291e89247b64d83477702ace2feac0e8a9ec SHA512 b04d928325c3c70912db1a434c6df49101b8bcc379f60e2f8d85de032f1caba10abe2f073d513c4bdd4878bf6ee46022599f65a3c2a134a8cba2f84cf29fd0e8
|
DIST rust-1.88.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ad7b0c85d6ec2085e6005f0789b6eaa30af0fefbf6e621b58f470b916320141e78ec6e112a4bb69867417b69ef740bc033db65a2fd3f54e5cfacfae56b58b57f SHA512 0fb6caa3fa06a28fa1f3a3657df6c2c1d4d87db9a94a74b9ccab14418af7057f3be75ff33556507f48bcec2e648324bc1629ef94c8c57e5ca62b8a9fbc49c9c3
|
||||||
DIST rust-1.88.0_beta20250526-powerpc-unknown-linux-gnu.tar.xz 255492828 BLAKE2B 47c1acdf66909a547e3db24ce75ece26745cf40237c6695276683bddc33192508cba12f9dce100f762979e92648c58531de5293c0f73ff43b4141d5ad0e7ce49 SHA512 7901e970db1780bb10b92610738a22ddb6e0dd89403391ecaa395038971d3b290dcd3b77f1c727eb0ac9f011b4f153ceacc24bb8a5afb78ecd73ab1686c0ee14
|
DIST rust-1.88.0-powerpc-unknown-linux-gnu.tar.xz 255291852 BLAKE2B 4ef3d89f38bbbf12ef2ee190457f4ce96b5e60e02cc72a1e312a897c73fc28677277008f322381f7f084ae7d93671a9b3a46dc5e266a1b8c9987c780b26e61ac SHA512 f7100076968cbc4bf529ec2214f2ead865e87fc5e55f0a683ffa3034d3e31db0c9619fbcd9e854a7fba8d2e06732456edc59280bbd8de75e33df9897e65520d4
|
||||||
DIST rust-1.88.0_beta20250526-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 00680f8b37b644078d4d4e97ce4075648fef1e1758418623d489032d6f41a194a453328e46d8ca3fa1e451a17bb8687e347b5ae73595c71487adc97c3d1618f3 SHA512 813ca054248bebc85b1f1daa637e1623604f7facf86ed493f12f97dee6f979d738245ddb58b6feb6ac10f24ae06810f3fa460439202f6551ccd303bc94e1f554
|
DIST rust-1.88.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7bf2a3229c6ae8a718812edd41dd0ffdd61dc792801d365dbeb46d7ae32cf12ecc7210ae67ba19be35349a27d656fa76a887a5d91d8e2dcd12b93600635d67df SHA512 2940a66102c6dc33dab8d410884f7bad88589c8df45f361c4f10a9be8a15d896c91a45c95f4c9b5f23a9d696af343b64d056274816b2454acba3adf1eccc0780
|
||||||
DIST rust-1.88.0_beta20250526-powerpc64-unknown-linux-gnu.tar.xz 255634308 BLAKE2B 8344bc5d3879d8ea1332ae8e3a6740dad295d8f7e5ed37c38f7bf4cc980ce79ca71e9f0ac980594b0664b4d15feaf79f9193b81fba1fc9baa71cab36c6eaa650 SHA512 e41070dab0420c4a86db50df549e8d09417fd224db0f8873ea39d3ced970f4312ca074cf4d5adb6ebd70eae76ac70f8103621da86fc22bb4e64d8fb70bc2f56b
|
DIST rust-1.88.0-powerpc64-unknown-linux-gnu.tar.xz 255371956 BLAKE2B 45607ff673bab803e794a3ddb070de237e94eeda43ca5fe52c49d006db2789433dfe324f706bd57d82d14f18bea0bb02372e71593c0251420628f5edba9c0fde SHA512 55889385893cfd957d85376ff68a677dd70886476392bf8f4f8ff671777d0ea168491e4d778c88f40a9a06f68717887b8b0ff3dbb0a65b956a98aa00e6b81dba
|
||||||
DIST rust-1.88.0_beta20250526-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fff2551661e8ff90a0fdc394c59bd6cd1c56eeb0062b5059b1555febc8ff82c964802a9273ca1f50b189bfd9aecb356fb6d6978421a75cb32de0ee070ad63000 SHA512 282420dd4e850a5bc2659ab1f34e7cbf50e0f3c16967019bba8d679af83d4b66d920ead46223d1f2cd2f0ed31c7db8beeb10d75d1e33bce844aec7d0f35d7e8a
|
DIST rust-1.88.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0625be465cbfdd2b73e73c8adf5ada2d7c0eaa4541f3735eec32d464cae44b475fa860cf126e433aa69a6f2de02d94af31bceae4ac23364ce394f34cf8f65586 SHA512 b25598551b7c0946adbd11ffdeb1761640f6bb255a9925cc734b4c12d82f666fc4344fdba9ab83fa63bdc82129dbc68df7ba125b8851238ca8558ca5de5c7dc5
|
||||||
DIST rust-1.88.0_beta20250526-powerpc64le-unknown-linux-gnu.tar.xz 270308004 BLAKE2B 521d954e0a8ddec0be99d17a1dee9918dd093ec87c9b4069f84d56d810916464296e8dc03df8604628c82afe418b26d61b8907c36cad89eff88262fa6156fa0b SHA512 df8926047e649e4a3d7f98fcb609facfec3ed4aad820b401dd028eca84ddaa3cf968b79185dadc37cb16e0a88e4caff09123fd5be7200cd0a019d4cbe95813b9
|
DIST rust-1.88.0-powerpc64le-unknown-linux-gnu.tar.xz 270351680 BLAKE2B 0b47e4e756d571232ec07d73fb99a2dd8e5542fa8d7046d565ed0277111ce07e5801815f2391fc0c19681f63b45e781c18d43a3fc818cc0352aee4c0a8da71fe SHA512 0e0d800f02bfebcc10792f71a48a7c70fe197bf965b5a055df07e54408e49a9cdee4dc744f4e06a2e400174265c833fbb4075f5a477508e72deacf48e955fdce
|
||||||
DIST rust-1.88.0_beta20250526-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1ec1fa77a2ea0a0917c4ae45d32f656b56d0f287d7aeb8d433987b940f55516707d9b473a7d95f4ef2bb19afe5bbd836ab96594a48500554198877d55ea5c762 SHA512 f3021119ce42f1edde18bcd7be8b177a6f0b288b3bbe6fa497863f29e62ca0407cace6f58760bb1e2ada49e5846404f12a7351da54724f9d86924999ef7e7cf7
|
DIST rust-1.88.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fdbf7a59a1a37c8ad09d0568e30487d01513734ae9bed276e3e3ba45cc0d39b14f958a377def77d9505e158d256780a7c1c936eaef40d7541279effa88f8c5e7 SHA512 1ccfe4f582783a80dc8bb0e50f5b782da661940930870c713ffd4a8ffed6df7e760829ee224e368bca583f611bdaad33eb46f3728fbe2b3062107510194671c9
|
||||||
DIST rust-1.88.0_beta20250526-riscv64gc-unknown-linux-gnu.tar.xz 250149844 BLAKE2B 5a560e6c36cdaaf4598d1333e5c24f356df29d412edc3a0158184fef11dc0862f1c86aa3bb13eaea12db701092d2d5c49e598ced045679228a0e9df8ec0000e5 SHA512 c1ee83f099fdb3e548e1bf6237571509930f43e0dc02d889ae79f938a8c577eff939a2952f9c37ac10e14e3aa8067c23f229290c09c87c7af572c670fcbbcc53
|
DIST rust-1.88.0-riscv64gc-unknown-linux-gnu.tar.xz 250151976 BLAKE2B 04b732c4d251af2d8279620a3a7da81a31161ec8f143396fc3cf39a5b6fa8dec5ff569253126b709a0ec147dfe7902a1748b313324173f0ef76ee89f54d1292c SHA512 389d92297915cce0155a8a96c0052df655768987fa1846e1e7f71a2f3da3e29e6b256f85f0d77f816b53cc33ddb7394f472f7ce92b81d40baad4c7fa0d2b2883
|
||||||
DIST rust-1.88.0_beta20250526-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f68833da766ea88adf9f8a10ccbf7e0fdbe8c5c7e1b8d5e8fe5c43b01b261d92e6dabe086764564c6171b24d54ea7e0259412f9975ba5abb732d525af0ee6071 SHA512 a76cbe0d25f7b1bc7aeb7f4f853399cf3f6fc974aa5aaa8f4d8a2168314ba289df26f045a143d7ff8c8021d69924e6983e174cb142ec5a9ade4c551b0320aee3
|
DIST rust-1.88.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f3602574232fe5e0af2e21e2a3178a227070aca5163230ba2a229d7ca63a798f0fa8564d2b16fb912493ef1d8d925cee5a21448c69843411c0df65f4454ad716 SHA512 b3036020032c51e6b739475c4c2c21aaaa742018ee6cad2a0b7f7a6eff193977eb93450cba01a5ef6c436d6b4ba491c79787c980a465306f42c85ed0dcc034ff
|
||||||
DIST rust-1.88.0_beta20250526-s390x-unknown-linux-gnu.tar.xz 239803292 BLAKE2B fb85011c9d2229c12d684b0efe4427fd88a10adc41558091d1a5d78354f07af22b4e4fffba2ba9213fafe2229a08251e68c8439704c6e5705edead7d158f14c9 SHA512 39f8ee027b5fbf786597f160ff82f8c67ac0fa1992d81fb8176c4c1a3ab38d707b877b679d2ed03bfd577d4f8c60c40c737ff4856f75bf7fb2b8dcda2f78d765
|
DIST rust-1.88.0-s390x-unknown-linux-gnu.tar.xz 239909412 BLAKE2B e92e9f51f2af3c638b82fa8e7ed1c553b7f7537f32a67bd875ade77a04ba646e3b22a7ff88c28bdb3f02b6ddd753efa400962b4dbe36bda58ac5ae8326b9b35b SHA512 01d914bfcbfbe061ee2269445376112ca61fb87fff8acda07c3183aa051a50f270425d2a9761bf036a3d14c7b9cdabf392d3d532bce8a7e0d2ac9b5c22cc212e
|
||||||
DIST rust-1.88.0_beta20250526-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ef2d5870840cf3f68b0ff774ecd53e52155ee7d716fa92482b7c1bcddfc986fdc8056ce49f5af03f51a24ce239ba6812d5e87e5b0712f28f8adb18d70d54282d SHA512 8c0c7470170ef0b5111b1acd5044b9ea13f8828f0aaaa3483d808f6853d38d3d9e101dd22740c1ebf658727b409bf0f6c6db967456833a5f2365e4bbf21f971c
|
DIST rust-1.88.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7a85b49f5e311bd3261ac0f6d967fe5505f73589c1d218481270adf00e72ee6bf57158d0da86f8289da7f4bce1452b3ba7447e1cf116175573eea8c07e58b0bd SHA512 349d119bbc4c12cc005e3ea9780b259413d93e4b052f5f7fc677a2e2bf71e7cbafa5db9770ed8378ec4a3053a2d590562c354c1db924247a74e20d1dcd4abdbe
|
||||||
DIST rust-1.88.0_beta20250526-x86_64-unknown-linux-gnu.tar.xz 197118828 BLAKE2B 7d7ded5b1db239cffe9b9c2f12e81ad33a9b577782512f4141c4444095f47bfd87e86a971aa3daeb0fe69b28cfb5d9f664e16a87b3c797fcc90700dbe9af533b SHA512 700329288c0295fa3b37c12c1160e46aeb042a5bb9764660f52dcee7012c14ab0454e4941ca9891873e8b918a9b47c969226b1bba058d24f599dcd4f0e397b45
|
DIST rust-1.88.0-x86_64-unknown-linux-gnu.tar.xz 197237052 BLAKE2B 5ce55a2b5faa41ccdb365764e1a3a10d46b385b678460de6dbaf3ef816e4f36164040070ef8c56183bdfe90389c1f81017bd7c411906d0a7b39899432f710e8d SHA512 ce97eb4697415bdb1fc33438ad62d9c410b00bfdb7c78c8c80e5887e6a23d3299302694918cbe259851c85b971f0ae3198ab6a89e26c94836a82bbf9e77cd80d
|
||||||
DIST rust-1.88.0_beta20250526-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B dc34f5079fbcc11b615c8f054b634930145648ce4c0659f1d51bcb8565dfc23dc887ddb5ed40c156f05bbcf32b78c11a212813541eb61b20c20e9aeee0dfebda SHA512 037173417bf760225c6397108f3d139badd8e00145c9b5a7e65177457abe2552001b9cf8bab79fd58a8b40aedf2d224de66c9dfaa9a119bb913713c06ffbea55
|
DIST rust-1.88.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d3bd096b1d1c7fce42f60cbd5f3b3a459c0063430366adc78c026a0159f379d2537d74d4f1fd768ea5b666a33cc28aa185a867aeed04ef1ae735a3eb794baa47 SHA512 62a5a9ffac0e95fbb547c504336b3aa160698e20b8ba322769c2233972c6ace48b2afdc42e84559b244099f9d8115cb96ba3c8f0923806559c53f80d3e248d04
|
||||||
DIST rust-1.88.0_beta20250526-x86_64-unknown-linux-musl.tar.xz 290943744 BLAKE2B 03068177cc6f5252360cbef4616966cbf2042e4e342175c7a8342524729c3f6c5da650b7ba9ea5544a5fe6433bc8ce87e45a814b838eefa8e1149e4306a82f7d SHA512 d579488256b24aec5a487296f1929ca24e1e6f0da6dc5fc8298c0372b9f25dc988525bb9e3f66d79297e80ba792825d4d39f163f310b3f94540dd299c680be3d
|
DIST rust-1.88.0-x86_64-unknown-linux-musl.tar.xz 291407088 BLAKE2B 17c8144b9acf12f190ed8bd3367a9602535ecea365a402e1248b26457f263103680b3d55d4b670aa381de816db76d263fa1c3d9715f60a3100c96765dac4d61d SHA512 d4da2f9cfeb50377616a48437ddab836717de94fc0362e6b8f4afcd7b4ca939be1c902db54b7204fb35863189e1f8b8d9b7bd4713e4e4729e42db9db2d249711
|
||||||
DIST rust-1.88.0_beta20250526-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 9b54bb5932d09b34abedf1448cf90cac011d2e7efa73f9f17df7815bd503ec3f992946dffc9309edc53e1b5b17d8a1c10759cc60ca41334734ae17c75e6a5f50 SHA512 22f38ac6bbf6fda213928c09f89ec2683743ad73b89b24cfc903bdc7243ac954a45fa735c125a1915c5d8f19c0761ca9dc41221791688ac343282034af0cdd90
|
DIST rust-1.88.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 31f344b4f8cb6beb58e2cbd62d7891abe764bb6a8a473b805ad55a7ef2b0952677e32481c22a2ec81146b61f74dafcbd384f629bdb7f7799ee642ce926f80953 SHA512 64824b1f927080e8272d29e4fee56e2237621a48b3178c2b4a5ae580519d1c954a85ce383232d0fcd98468a6530579353ae65f84b4205f90c4fc144188f3adb0
|
||||||
DIST rust-1.88.0_beta20250603-aarch64-unknown-linux-gnu.tar.xz 165343516 BLAKE2B 9126824f30fe65c1271e5fa254fbed08295f726a347dae6522ee2b5f4b295f0ede2ceb868dbf9745ea933a2d259dfdaffc4569be503d80d4139fc0f58058056e SHA512 80e0dc617f5503440ca6b5094572e0701d8e63f13fd1aa6563d1906f7dde260cf1f769e7f8fdd90ebc3a362bf08943bbaa47bf00805ab2b21be4280557d04de9
|
|
||||||
DIST rust-1.88.0_beta20250603-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B db209a446536597c2a491cafa4a4f2375d12b50cb8f72cf13dffcc63a91709ae348a5d38a663b490ea36bb13e014a27ea7864452365c2193a5e93fdcf47002a0 SHA512 1b1c8d5087a7f4b76328a4811060fd1f8b2ea345f198a9989eabbb5b674ff77b359fd2195b57c807cf7b4ce302743ef4ed8f1c9d9964fe95c17259dd57500480
|
|
||||||
DIST rust-1.88.0_beta20250603-aarch64-unknown-linux-musl.tar.xz 243929824 BLAKE2B 84dbe26d95c7cc06a65d426415d94d8c3c48a7cc6fd5c89dafdf3fdb2f5973ac6f196c84194a7d6c1731e94c76ec9c2d6888ec0d1c87aa9595f8d7def230e45e SHA512 e77429a4d79924e93d442c7cc11617cdcff11d4dda0a2a67a4bfcb53f40083ac4d7b2695cc75e695ade0ac67ce4342d751e629ebd7bbe746e9e15e741a4af272
|
|
||||||
DIST rust-1.88.0_beta20250603-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 3da884a422171d1f49cf1624f53b9b0c6dee72b5ff8b43c85fd0a6242952d8267a43bf02e7b592f70f5f615cb2fb2cb4459ba5be6bf730f8abac57118e5424f6 SHA512 2505e85e633635843fcf755dba91b0a6cb10dc6f53156aef0ea26b7f5b6282abf7cc4bb484a546cbbcd1b4f190d1e4abfbec05740417bbd1c8dd9c0580f44770
|
|
||||||
DIST rust-1.88.0_beta20250603-arm-unknown-linux-gnueabi.tar.xz 229380368 BLAKE2B 1925fd5b0d9d89077f1e800319a98534311f21a6204c69d69050e73edb3f3b16c4535c0942dfca4aa707302e42b422a852ea2ba909d3a504345fb6b0c3abe03d SHA512 363df8ec391cc8201ccf13348916e1d82bf915a06615536837ad2dd6c430e2e8520f601c08b2c5bbd5a9b515039a737f119031f15e8eb2ef626c3cfb330389f6
|
|
||||||
DIST rust-1.88.0_beta20250603-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B cf474276e83fa87c478efefebfb731a8726b536f6828d6339064f68dd626061af6342292d1a3cacf4e6cf12131929898c055741dc306f21fc10ef80af13ad5e7 SHA512 4a253234cb693e8cda3a87b21fd5c1a6e27a4667f6ddac42a5dc9617448977bd9303d52fcd6fec199118cd84be9901e840e0d35ddec42b5fda6bac01919ee699
|
|
||||||
DIST rust-1.88.0_beta20250603-arm-unknown-linux-gnueabihf.tar.xz 229722020 BLAKE2B 41734aa5784cd3929a6f78d6f2cbca717a79e34d4f98679d319f9c94455ac35ef8410b53bae1336849f0577c21f0bf3ac5137111a6268154042beb8f243d308e SHA512 0ed5a3b8c75fc077de643bc7a1fbd273e2e2530dbe3bf94cd88be754a44d45d14befe549aee0422d8981a1bf91748278a1bac2fba20a6cb82c495951bf9b8303
|
|
||||||
DIST rust-1.88.0_beta20250603-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 24388e2d3ba6c26711843cd8da326f0a712af5ab40548b2b7c432d8dec4465c5f3c3f578278f4e27dc39585dec5e354d0b0ce5dff4fd0b56343707a525ca1d08 SHA512 57d2671bff55988a61267a2692323176c170db25eb15741e650676d52a9635b14bea466abbc055bf232ef509905cc1acda10746e02845ff865e56917d73cbc1d
|
|
||||||
DIST rust-1.88.0_beta20250603-armv7-unknown-linux-gnueabihf.tar.xz 235551172 BLAKE2B 4261b529713f4363c081c323a2cf94fad679aabe44af2a91581f9923d40dbc6d9dffe2cb0b565dfb982faa4bd7804e243807fb3c4284da4bcf677c9f97542e96 SHA512 2aba1861bbf859b665151994cdba14b672188d21b34a95b3cd131d71a3e72c5205ee68502e2b8f53ff3bdd5cfcc2fff170b9c40e2feb6a5d569797ce8d7f36ba
|
|
||||||
DIST rust-1.88.0_beta20250603-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B a2e3439e2f741e56d039f4cf80371590d0f4cd4d64880e4021582ecc98e4bdab874c8e897e06ef66b3a1fba60994b76e35e9bb5e650f21f62629fb7f964bd5c4 SHA512 b99b53c67115b1c6d4a9bb6adb406ca6c0522cab5bbbc2f5df312d1654a3ec1cca739d1e5060d45babfd2e281e9e67e3586132fdaa59adc574fc81b6c7a6c642
|
|
||||||
DIST rust-1.88.0_beta20250603-i686-unknown-linux-gnu.tar.xz 261865076 BLAKE2B 287d1d376d42fb715b7a06ed89c002e0dd2d66fc8b942775ef2cdb115ba09780cfd509d20530c346be5b89e5f6ac67d679400784d95f9e0690afcb6653ca2479 SHA512 25339aef2d7658643d3d55f7ad14eb0913c3cdd170365d53d77390ba2061d3f0f62fe7940727c58ee624ba9214357c8b892b993ff53673cbdc79a2993a80fd49
|
|
||||||
DIST rust-1.88.0_beta20250603-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5303dca25dcb54d6532a6eebc4e10392048519eeafd3fbc3a6e73fbdf9aba8dfa6bd43b3e5698980320fc72adcba78edddf6b4b53312bc0a2d4c9b6ed5c887ce SHA512 30fced8fa7a1db6cd66db849a20f318a85f3517938a057afcd67e85320d815749ee6112d1f5988bdb605d03139c2d6172396bee2c6e471a37f48983efa10c088
|
|
||||||
DIST rust-1.88.0_beta20250603-loongarch64-unknown-linux-gnu.tar.xz 261370924 BLAKE2B 32e9ec0f14c16aec6d8b7aefa61160eed3f68fdc3f138beae48fffc943c6bdb711dfe4e68073df08cd95d4c47943fb0cf0206409b9ee26975e7f32fe8e23d005 SHA512 293cec7705899e0c2de6dcd2aa3978e5ed5f904596ede83476c105fdd39c2dbfc50f8718754f2c09cf3846a3b5daeb65750e05ebf578666be375ce3f427dfa16
|
|
||||||
DIST rust-1.88.0_beta20250603-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9eb1bb752993d31f52d8a428b9bd6d3b0466b3e39d53f14cf58022538047f811ae482b9b940e340d8f669ab851303575efcb247fc2435446a6d20391cfa7a9a9 SHA512 dab99b8118d910a71cd21535a04c3e9cc6d0cf5693d7f0def5d873a6158d0396ce20793e51006391fda11bbddcae0a2c8165cd09fec0d2d76e9dd5928374afa4
|
|
||||||
DIST rust-1.88.0_beta20250603-powerpc-unknown-linux-gnu.tar.xz 255451956 BLAKE2B 3266dda7d0b58b023dff1acde1c41db071c5884f08383d07a35cc08e998af426ca621e46c1ca9440429665ffa7c548593047dbda09fec05d8531352880b0aaa0 SHA512 85f7183443c2343f6adddd7abca35cf03cfab6c607c74b126f6a2a84bc3686e63cbad90015c693420d8c15a372e31d01a98494e49367a687d10a7dccedaa96b5
|
|
||||||
DIST rust-1.88.0_beta20250603-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b5189c0a2877c3bd8e55a250c873958836ac874fadb79dca1710567b57a1d51dc7964f4bcd6feceffed41b3825137abf37aae4789d34f14bd7099f502a5a2886 SHA512 4357462eabb72f2a4c53918cade956241879c2c60e8e6e0209231b74a2fbef50c5a90eebd23e3bbc8a1cb5a0f5f62bd96c0c08eeb79fa9d89bdd113f812c06bd
|
|
||||||
DIST rust-1.88.0_beta20250603-powerpc64-unknown-linux-gnu.tar.xz 255345868 BLAKE2B 172b1a0022c41be0614de4f9800884cb8c2ef9268cacdbe6837692430a16718fbc6906826d57ce5b6edbda4024d8e9ab78d5ec8c5e95fb0e1aa86ec189e95506 SHA512 b1f7e2760e62eebb6bdffc627f986c8ac4d131a6317ae459fed56eda1495dfc314fe542fd13d52106dc211c79c269a3cac6bf47ee2fd7ba0fb626ad305cc9e9f
|
|
||||||
DIST rust-1.88.0_beta20250603-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 4167f3eb56755954fcbef7f9021253dd62c32a4c5d4227b7f1aa2a32dd376a74b1ccf455c50040e8dfec28fe3bd16bcb2b725e3ee51d7478e35ec69fe08d0248 SHA512 2f5f74113a10ac7c66db4691d00fd37d8104b66d821a8662a31a5595e4b7506de9bc31ef7fb1d196ab3851fe3782ac266f0072e6fcc579f1459ea9765685f198
|
|
||||||
DIST rust-1.88.0_beta20250603-powerpc64le-unknown-linux-gnu.tar.xz 270326636 BLAKE2B c01f9247c88d6e932cc65bdfb9a3493f375732e6e4bd704b4dadd5d0bedce2342244b4ed9dcb85a070fce17b4cbaa6dc84cec4192e9c25b9e0a6387ab84af7f1 SHA512 5f86a5be80f5b1d6e37d37898405feaf653a7e6b66bf6a806daf6f34075bed921e195fb28f94cf8cd61511d63a0ff3c3608ca1ca63d45dc0536660c1e9461f39
|
|
||||||
DIST rust-1.88.0_beta20250603-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fd940fd445d12bdd5d4fd798657fb577b8f97d5b53ae5528a907a70d8167719716456260f326ad0391b33f3ba8bdd9ef233e55a381c474239841597100225442 SHA512 9f31ce8e5e420cd1b187b7d06fb5642d3a378b38f860adf5977e636cd1ed2eea707ede170ea04cc886758a22c2ee952e9458b7af79057d366d2cca7d528f3072
|
|
||||||
DIST rust-1.88.0_beta20250603-riscv64gc-unknown-linux-gnu.tar.xz 250233700 BLAKE2B 94b9c69560cfe1b4701fbead77a4f4097d746a5cf5450d9d4d778ad20aea68356d35bd009e173e242c1ce128ab6b3088803b979d00ffdbaddd7af9974ab78255 SHA512 17e4841d5c422aeee0e781f915f53fdb662b80c1d5bac8f09dddfb3326014ba40c197cf2bb1fe78e6240971b77c1616eff8ff938139e5a5f666eafe8a2f6ce39
|
|
||||||
DIST rust-1.88.0_beta20250603-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b05207a44c2e63a5cd2c2b66838d66f4dfc4c4de01a941e57545c97338f2c398b376b250fcec9f5fe61deee9bceace0799bad9aa23afa45f642d9e108a9eade9 SHA512 4eb7e2f03f49d1402d3374a46a27ca5970a317b7d2852f21db1a6fd2eb61669dbc78afb9a7eaf94334ad7e04c84c2d652295d83a76c0f45c29462815109cf9be
|
|
||||||
DIST rust-1.88.0_beta20250603-s390x-unknown-linux-gnu.tar.xz 239877008 BLAKE2B 88fe16423db102377051a5ff53a2dba758182f5c4e2376512b3006ee1cca22143f00e6454de006fd6fd59a1228b4cc6d4deb40846dbbfd733982549d50b96c2a SHA512 68fb9c5ada1247f047c2cd2ae42ccff8c66a512fd98fb5c509685a3bf58c5a728945154ecd1f21274515481413df229bfdea5279054e7180f1209f956227ae1c
|
|
||||||
DIST rust-1.88.0_beta20250603-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 267620d6a8819b9304018800699f06469b56a2f0ac7ff2eb5681c6b1b69342bf7c8f82352c40d5521f105e48322365d1c893537909fa31ea4aa7835d18d549ae SHA512 4e8859af0cb1382c8ee972e0aa5984192c9b11aa300771babc2154b790c2485de0d86623d77384426ac8503859e10d183c30dc2436b98610de0c3e25e5807fc5
|
|
||||||
DIST rust-1.88.0_beta20250603-x86_64-unknown-linux-gnu.tar.xz 197138936 BLAKE2B 091052d9d50a8fa10ca8c97d02b52c2dbced7f3e983f57077c833991ebc9a13f001581bc75bb255ef3ee5cac8d7a49369739b05725acfb1b1ef69a0480c3579c SHA512 b01d0abb8cb9f8cc89588383d5b987141e0a4067ead1d373cf6c844f3dfaf043bd7e60ff44eea5f0b28be43a9f84b4348c514268e2e04ee3ae3890d265d0b23c
|
|
||||||
DIST rust-1.88.0_beta20250603-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 146997de22c3cc525a98474a8d362c7d834428285640cf1297362ebecb6289b2bcb48cf9e7f9bf1f67e690ff4155042047f583e692cc482897bb3ded12db96ee SHA512 5807a50f84d8b14e94b2e03b7b14a63ae12116359495523a8939be907bfcd1d106910a94f34a259edca62e7a1e0eab5454e9fabd617d651e70c109648ef1d7cc
|
|
||||||
DIST rust-1.88.0_beta20250603-x86_64-unknown-linux-musl.tar.xz 290897768 BLAKE2B 03ec29cfbc09cd4e7932b22818fd63c36b718513d8fa5f235cc2817d70ec1eec7489c6565c4cfe27f6c9758f83330b794094a033fe84850b2a537b0780bfdd31 SHA512 8d56a657f9b9093dedf01768f658d9179521aec9169b302df978795938d3757574237dfb963aa0a92b4cfa95b4406724bd845212199b42810239468eaf1e4daf
|
|
||||||
DIST rust-1.88.0_beta20250603-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B d73633555a7f696387c975143718c502be47753a617d4a1a9163899dacf804cc965e7e0bafd10f22c7da3bd34f4c704100e3ec1533118cd4bbd52c9ddb6599f4 SHA512 35537f1b005c453357dab4326767bd00cbd38e82d905f5b7dca53355f07f38b408efe8418401587695e36a5ee12e68846b90ba6f06157bb2d8b4297b504a7128
|
|
||||||
DIST rust-src-1.74.1.tar.xz 2544036 BLAKE2B d95431b69f102782f51878ff73ce8802cac6dab7909497c3231d1c479b95dc2a618cc6efd8bac9c6bd59a2b10dc6be05199f1e1bd74e45cc640ee52352c29268 SHA512 11467d0936193c5a5be8c2eba1aefe2b7028af48494698863de2c4057d68ce33dcee1fc66dc2d68b1d32f0202ce49e9b906727849de8f8d904dd07930e76d5a4
|
DIST rust-src-1.74.1.tar.xz 2544036 BLAKE2B d95431b69f102782f51878ff73ce8802cac6dab7909497c3231d1c479b95dc2a618cc6efd8bac9c6bd59a2b10dc6be05199f1e1bd74e45cc640ee52352c29268 SHA512 11467d0936193c5a5be8c2eba1aefe2b7028af48494698863de2c4057d68ce33dcee1fc66dc2d68b1d32f0202ce49e9b906727849de8f8d904dd07930e76d5a4
|
||||||
DIST rust-src-1.75.0.tar.xz 2570256 BLAKE2B 9db7ccff07ffe6991233e9f530321fd6ba48c561dcf1226537afa70c7d045421d8e83c5300b0866ec6fccfaae96dd67b9f204e9e0e12108c0c766d467cd78909 SHA512 e7565cea2f1658a05237a698e38880df2544319b41b6d8b0805db5f1f94fd3bb4f986967d0440fcdfe3a135e33246f3c747665b964f57ff5942f56133af78cdd
|
DIST rust-src-1.75.0.tar.xz 2570256 BLAKE2B 9db7ccff07ffe6991233e9f530321fd6ba48c561dcf1226537afa70c7d045421d8e83c5300b0866ec6fccfaae96dd67b9f204e9e0e12108c0c766d467cd78909 SHA512 e7565cea2f1658a05237a698e38880df2544319b41b6d8b0805db5f1f94fd3bb4f986967d0440fcdfe3a135e33246f3c747665b964f57ff5942f56133af78cdd
|
||||||
DIST rust-src-1.76.0.tar.xz 2590884 BLAKE2B d1a6215dab34d7b10c3177d2b248f997d3a846388f3442567572880aa5c5bc51b56398f5d4dc32727cee7c9dbef494430d6534a76b66c4ae5ac4fed07266644d SHA512 39d2fe58fae8c8c5a6cb3fb1ef2a1c7548c018fef6ccea531659fdfecd68a4aa77125299d2cbe5b58e500337b4d074928318fa9ebce358af500d0ef27260e3ca
|
DIST rust-src-1.76.0.tar.xz 2590884 BLAKE2B d1a6215dab34d7b10c3177d2b248f997d3a846388f3442567572880aa5c5bc51b56398f5d4dc32727cee7c9dbef494430d6534a76b66c4ae5ac4fed07266644d SHA512 39d2fe58fae8c8c5a6cb3fb1ef2a1c7548c018fef6ccea531659fdfecd68a4aa77125299d2cbe5b58e500337b4d074928318fa9ebce358af500d0ef27260e3ca
|
||||||
@ -623,5 +595,4 @@ DIST rust-src-1.85.0.tar.xz 3036988 BLAKE2B b7281b23eef60cf052e1641a29915c02c590
|
|||||||
DIST rust-src-1.85.1.tar.xz 3036412 BLAKE2B f137ffcebd2d231d8b3dc5c9072f6afe39a071bc9608ac468bca364fafaa9c277b91e40da870a083c802cc13b9b876a548d7fa8ae67ad9552321a7412b7d8cd8 SHA512 d230cbb1daae3e2f5168abef94c5b99fb118c34a980f018d5df3e43f6ead4e0a17d6ea29bcfbcd0fb745e215f7a4d0282a99a714dba77b98a16254bb27c2d2ad
|
DIST rust-src-1.85.1.tar.xz 3036412 BLAKE2B f137ffcebd2d231d8b3dc5c9072f6afe39a071bc9608ac468bca364fafaa9c277b91e40da870a083c802cc13b9b876a548d7fa8ae67ad9552321a7412b7d8cd8 SHA512 d230cbb1daae3e2f5168abef94c5b99fb118c34a980f018d5df3e43f6ead4e0a17d6ea29bcfbcd0fb745e215f7a4d0282a99a714dba77b98a16254bb27c2d2ad
|
||||||
DIST rust-src-1.86.0.tar.xz 3053544 BLAKE2B 2d1d8a4be4f9dc9355ce9a2d1599e0a57c5d1cb32f7b2eb413f6009dbce7d63db2533dc038cf50f5277a2d7bf4434f2076632c12a6fd33335ccf3a9f2ab685d1 SHA512 2818d94412bb0766ce53383932cd8ce96275a8e923f916c4bf7116fbcb7c2053cfb9714667add1a9d50b18366c973ba3ab4fe55d49c8abc8cc57656635c59f63
|
DIST rust-src-1.86.0.tar.xz 3053544 BLAKE2B 2d1d8a4be4f9dc9355ce9a2d1599e0a57c5d1cb32f7b2eb413f6009dbce7d63db2533dc038cf50f5277a2d7bf4434f2076632c12a6fd33335ccf3a9f2ab685d1 SHA512 2818d94412bb0766ce53383932cd8ce96275a8e923f916c4bf7116fbcb7c2053cfb9714667add1a9d50b18366c973ba3ab4fe55d49c8abc8cc57656635c59f63
|
||||||
DIST rust-src-1.87.0.tar.xz 3119800 BLAKE2B 6429eb419f17109537a2a5463b0c68f504b3cb0f55766e18f73cf053883b06eedc934ab4598756790cec147ff41c4eb30a807d2ce0b7e6af33310710fdc5a8c1 SHA512 9747c60268d772b7c6e7694260c0808d2b8a42028f5606499c81595d76f5bc32c9acf6b4b9aad168235f8fd77d980c56bc4afc3d40f5d0374b23d3e66e3de390
|
DIST rust-src-1.87.0.tar.xz 3119800 BLAKE2B 6429eb419f17109537a2a5463b0c68f504b3cb0f55766e18f73cf053883b06eedc934ab4598756790cec147ff41c4eb30a807d2ce0b7e6af33310710fdc5a8c1 SHA512 9747c60268d772b7c6e7694260c0808d2b8a42028f5606499c81595d76f5bc32c9acf6b4b9aad168235f8fd77d980c56bc4afc3d40f5d0374b23d3e66e3de390
|
||||||
DIST rust-src-1.88.0_beta20250526.tar.xz 3154796 BLAKE2B 9c4cfd252edce814ce8621d189f3a4aa16ba7a350ae9d28644bf56daba8422e7e9bde63394d89870b94a021e55eeb1986d16d1b57afb8a8990e67ea7e175502e SHA512 c0e7185791433bf79db118d01476e28201970505adfebb425c86d1fac766c61ef57ae69aed34d538aee235e62cd5b00de882f04b36f1f227d64beb276915d053
|
DIST rust-src-1.88.0.tar.xz 3155272 BLAKE2B bca923d2264337366b8013c45f3a40cbdfc1e1b746775161eaa66a1db653aa4ccb2a55980368ecf9808d6f4885194e2dfbf1f678d0500a43f7b2fcc0f79d27c8 SHA512 6dfe1fc3565927a9ac2ff9821ef3222cca170ff538833e1969ebe662af2cad5257c1ab3d82f5ca10aeaab40f54916a25dd96fd16449cd59e4d104b631911931b
|
||||||
DIST rust-src-1.88.0_beta20250603.tar.xz 3154768 BLAKE2B 11dbb689364a67762299a5dbfd77d69f3d92166d19a3e14b1d411368bd52632da5244856aabc8b09380d9f569e9b0b42dbe140093b982663e70147e642b4f696 SHA512 ee5a73570fce94dd67c32dbed964c0358b26420dd213898cabf9d24e675d50f2cbb325f23c00f2aa0e53e587512f73d48561bfd3c0be8ff9f6cd941533db63ce
|
|
||||||
|
@ -21,10 +21,10 @@ elif [[ ${PV} == *beta* ]]; then
|
|||||||
"
|
"
|
||||||
else
|
else
|
||||||
# curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src"
|
# curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src"
|
||||||
SRC_URI="$(rust_all_arch_uris "${PV}")
|
SRC_URI="$(rust_all_arch_uris "rust-${PV}")
|
||||||
rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-01-30/rust-src-${PV}.tar.xz )
|
rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-06-26/rust-src-${PV}.tar.xz )
|
||||||
"
|
"
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash
|
GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash
|
||||||
@ -32,7 +32,7 @@ GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/$
|
|||||||
DESCRIPTION="Systems programming language from Mozilla"
|
DESCRIPTION="Systems programming language from Mozilla"
|
||||||
HOMEPAGE="https://www.rust-lang.org/"
|
HOMEPAGE="https://www.rust-lang.org/"
|
||||||
|
|
||||||
if [[ ${PV} != *9999* && ${PV} != *beta* ]] ; then
|
if [[ ${PV} != *9999* && ${PV} != *beta* ]] && false ; then
|
||||||
# Keep this separate to allow easy commenting out if not yet built
|
# Keep this separate to allow easy commenting out if not yet built
|
||||||
SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-sparc64-unknown-linux-gnu.tar.xz ) "
|
SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-sparc64-unknown-linux-gnu.tar.xz ) "
|
||||||
SRC_URI+=" mips? (
|
SRC_URI+=" mips? (
|
@ -1,314 +0,0 @@
|
|||||||
# Copyright 1999-2025 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
LLVM_COMPAT=( 20 )
|
|
||||||
LLVM_OPTIONAL="yes"
|
|
||||||
|
|
||||||
inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature
|
|
||||||
|
|
||||||
if [[ ${PV} == *9999* ]]; then
|
|
||||||
# We need to fetch a tarball in src_unpack
|
|
||||||
PROPERTIES+=" live"
|
|
||||||
elif [[ ${PV} == *beta* ]]; then
|
|
||||||
# curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep "xz_url.*rust-src"
|
|
||||||
betaver=${PV//*beta}
|
|
||||||
BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
|
|
||||||
RUST_TOOLCHAIN_BASEURL=https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/
|
|
||||||
SRC_URI="$(rust_all_arch_uris rust-beta rust-${PV})
|
|
||||||
rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/rust-src-beta.tar.xz -> rust-src-${PV}.tar.xz )
|
|
||||||
"
|
|
||||||
else
|
|
||||||
# curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src"
|
|
||||||
SRC_URI="$(rust_all_arch_uris "${PV}")
|
|
||||||
rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-01-30/rust-src-${PV}.tar.xz )
|
|
||||||
"
|
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
|
||||||
fi
|
|
||||||
|
|
||||||
GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash
|
|
||||||
|
|
||||||
DESCRIPTION="Systems programming language from Mozilla"
|
|
||||||
HOMEPAGE="https://www.rust-lang.org/"
|
|
||||||
|
|
||||||
if [[ ${PV} != *9999* && ${PV} != *beta* ]] ; then
|
|
||||||
# Keep this separate to allow easy commenting out if not yet built
|
|
||||||
SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-sparc64-unknown-linux-gnu.tar.xz ) "
|
|
||||||
SRC_URI+=" mips? (
|
|
||||||
abi_mips_o32? (
|
|
||||||
big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips-unknown-linux-gnu.tar.xz )
|
|
||||||
!big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mipsel-unknown-linux-gnu.tar.xz )
|
|
||||||
)
|
|
||||||
abi_mips_n64? (
|
|
||||||
big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64-unknown-linux-gnuabi64.tar.xz )
|
|
||||||
!big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64el-unknown-linux-gnuabi64.tar.xz )
|
|
||||||
)
|
|
||||||
)"
|
|
||||||
SRC_URI+=" riscv? (
|
|
||||||
elibc_musl? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-riscv64gc-unknown-linux-musl.tar.xz )
|
|
||||||
)"
|
|
||||||
SRC_URI+=" ppc64? ( elibc_musl? (
|
|
||||||
big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64-unknown-linux-musl.tar.xz )
|
|
||||||
!big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64le-unknown-linux-musl.tar.xz )
|
|
||||||
) )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
|
|
||||||
SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable
|
|
||||||
IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
>=app-eselect/eselect-rust-20190311
|
|
||||||
dev-libs/openssl
|
|
||||||
sys-apps/lsb-release
|
|
||||||
|| (
|
|
||||||
llvm-runtimes/libgcc
|
|
||||||
sys-devel/gcc:*
|
|
||||||
)
|
|
||||||
!dev-lang/rust:stable
|
|
||||||
!dev-lang/rust-bin:stable
|
|
||||||
"
|
|
||||||
BDEPEND="
|
|
||||||
prefix? ( dev-util/patchelf )
|
|
||||||
verify-sig? ( sec-keys/openpgp-keys-rust )
|
|
||||||
"
|
|
||||||
[[ ${PV} == *9999* ]] && BDEPEND+=" net-misc/curl"
|
|
||||||
|
|
||||||
REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
|
|
||||||
|
|
||||||
# stripping rust may break it (at least on x86_64)
|
|
||||||
# https://github.com/rust-lang/rust/issues/112286
|
|
||||||
RESTRICT="strip"
|
|
||||||
|
|
||||||
QA_PREBUILT="
|
|
||||||
opt/rust-bin-${SLOT}/bin/.*
|
|
||||||
opt/rust-bin-${SLOT}/lib/.*.so*
|
|
||||||
opt/rust-bin-${SLOT}/libexec/.*
|
|
||||||
opt/rust-bin-${SLOT}/lib/rustlib/.*/bin/.*
|
|
||||||
opt/rust-bin-${SLOT}/lib/rustlib/.*/lib/.*
|
|
||||||
"
|
|
||||||
|
|
||||||
# An rmeta file is custom binary format that contains the metadata for the crate.
|
|
||||||
# rmeta files do not support linking, since they do not contain compiled object files.
|
|
||||||
# so we can safely silence the warning for this QA check.
|
|
||||||
QA_EXECSTACK="opt/${PN}-${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta"
|
|
||||||
|
|
||||||
VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc"
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == *9999* ]]; then
|
|
||||||
# We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch
|
|
||||||
local rust_bin_url rustc_src_url
|
|
||||||
# Cut down on webrequests by fetching the nightly toml once
|
|
||||||
curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > "${WORKDIR}/channel-rust-nightly.toml" ||
|
|
||||||
die "Failed to fetch nightly revision info"
|
|
||||||
rustc_src_url=$(grep 'xz_url.*rust-src' "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2)
|
|
||||||
rust_bin_url=$(grep "xz_url.*rust-nightly-$(rust_abi)" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2)
|
|
||||||
einfo "Using nightly Rust from: ${rust_bin_url}"
|
|
||||||
|
|
||||||
if use rust-src; then
|
|
||||||
einfo "Using nightly Rust-src from: ${rustc_src_url}"
|
|
||||||
# We need to fetch the rust-src tarball
|
|
||||||
einfo "Fetching nightly rust-src tarball ..."
|
|
||||||
curl --progress-bar -L "${rustc_src_url}" -o "${WORKDIR}/rust-src-${PV}.tar.xz" ||
|
|
||||||
die "Failed to fetch nightly rust-src tarball."
|
|
||||||
# no verify-sig here, just unpack it
|
|
||||||
tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball"
|
|
||||||
fi
|
|
||||||
|
|
||||||
einfo "Fetching nightly Rust tarball ..."
|
|
||||||
curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball"
|
|
||||||
if use verify-sig; then
|
|
||||||
einfo "Fetching nightly signature ..."
|
|
||||||
curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature"
|
|
||||||
verify-sig_verify_detached "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" \
|
|
||||||
"${WORKDIR}/rust-nightly-$(rust_abi).tar.xz.asc"
|
|
||||||
fi
|
|
||||||
tar -xf "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" || die "Failed to unpack nightly tarball"
|
|
||||||
else
|
|
||||||
# sadly rust-src tarball does not have corresponding .asc file
|
|
||||||
# so do partial verification
|
|
||||||
if use verify-sig; then
|
|
||||||
for f in ${A}; do
|
|
||||||
if [[ -f ${DISTDIR}/${f}.asc ]]; then
|
|
||||||
verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
default_src_unpack
|
|
||||||
|
|
||||||
fi
|
|
||||||
case ${PV} in
|
|
||||||
*9999*)
|
|
||||||
mv "${WORKDIR}/rust-nightly-$(rust_abi)" "${S}" || die
|
|
||||||
;;
|
|
||||||
*beta*)
|
|
||||||
mv "${WORKDIR}/rust-beta-$(rust_abi)" "${S}" || die
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
patchelf_for_bin() {
|
|
||||||
local filetype=$(file -b ${1})
|
|
||||||
if [[ ${filetype} == *ELF*interpreter* ]]; then
|
|
||||||
einfo "${1}'s interpreter changed"
|
|
||||||
patchelf ${1} --set-interpreter ${2} || die
|
|
||||||
elif [[ ${filetype} == *script* ]]; then
|
|
||||||
hprefixify ${1}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
rust_native_abi_install() {
|
|
||||||
pushd "${S}" >/dev/null || die
|
|
||||||
local analysis="$(grep 'analysis' ./components || die "analysis not found in components")"
|
|
||||||
local std="$(grep 'std' ./components || die "std not found in components")"
|
|
||||||
local components=( "rustc" "cargo" "${std}" )
|
|
||||||
use doc && components+=( "rust-docs" )
|
|
||||||
use clippy && components+=( "clippy-preview" )
|
|
||||||
use rustfmt && components+=( "rustfmt-preview" )
|
|
||||||
use rust-analyzer && components+=( "rust-analyzer-preview" "${analysis}" )
|
|
||||||
# Rust component 'rust-src' is extracted from separate archive
|
|
||||||
if use rust-src; then
|
|
||||||
einfo "Combining rust and rust-src installers"
|
|
||||||
case ${PV} in
|
|
||||||
*9999*)
|
|
||||||
mv -v "${WORKDIR}/rust-src-nightly/rust-src" "${S}" || die
|
|
||||||
;;
|
|
||||||
*beta*)
|
|
||||||
mv -v "${WORKDIR}/rust-src-beta/rust-src" "${S}" || die
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
echo rust-src >> ./components || die
|
|
||||||
components+=( "rust-src" )
|
|
||||||
fi
|
|
||||||
edo ./install.sh \
|
|
||||||
--components="$(IFS=,; echo "${components[*]}")" \
|
|
||||||
--disable-verify \
|
|
||||||
--prefix="${ED}/opt/rust-bin-${SLOT}" \
|
|
||||||
--mandir="${ED}/opt/rust-bin-${SLOT}/man" \
|
|
||||||
--disable-ldconfig
|
|
||||||
|
|
||||||
docompress /opt/${P}/man/
|
|
||||||
|
|
||||||
if use prefix; then
|
|
||||||
local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash)
|
|
||||||
ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${SLOT}/bin"
|
|
||||||
find "${ED}/opt/${SLOT}/bin" -type f -print0 | \
|
|
||||||
while IFS= read -r -d '' filename; do
|
|
||||||
patchelf_for_bin ${filename} ${interpreter} \; || die
|
|
||||||
done
|
|
||||||
eend $?
|
|
||||||
fi
|
|
||||||
|
|
||||||
local symlinks=(
|
|
||||||
cargo
|
|
||||||
rustc
|
|
||||||
rustdoc
|
|
||||||
rust-gdb
|
|
||||||
rust-gdbgui
|
|
||||||
rust-lldb
|
|
||||||
)
|
|
||||||
|
|
||||||
use clippy && symlinks+=( clippy-driver cargo-clippy )
|
|
||||||
use rustfmt && symlinks+=( rustfmt cargo-fmt )
|
|
||||||
use rust-analyzer && symlinks+=( rust-analyzer )
|
|
||||||
|
|
||||||
einfo "installing eselect-rust symlinks and paths"
|
|
||||||
local i
|
|
||||||
for i in "${symlinks[@]}"; do
|
|
||||||
# we need realpath on /usr/bin/* symlink return version-appended binary path.
|
|
||||||
# so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver>
|
|
||||||
local ver_i="${i}-bin-${SLOT}"
|
|
||||||
ln -v "${ED}/opt/rust-bin-${SLOT}/bin/${i}" "${ED}/opt/rust-bin-${SLOT}/bin/${ver_i}" || die
|
|
||||||
dosym -r "/opt/rust-bin-${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}"
|
|
||||||
done
|
|
||||||
|
|
||||||
# symlinks to switch components to active rust in eselect
|
|
||||||
dosym -r "/opt/rust-bin-${SLOT}/lib" "/usr/lib/rust/lib-bin-${SLOT}"
|
|
||||||
dosym -r "/opt/rust-bin-${SLOT}/man" "/usr/lib/rust/man-bin-${SLOT}"
|
|
||||||
dosym -r "/opt/rust-bin-${SLOT}/lib/rustlib" "/usr/lib/rustlib-bin-${SLOT}"
|
|
||||||
dosym -r "/opt/rust-bin-${SLOT}/share/doc/rust" "/usr/share/doc/rust-bin-${SLOT}"
|
|
||||||
|
|
||||||
# make all capital underscored variable
|
|
||||||
local CARGO_TRIPLET="$(rust_abi)"
|
|
||||||
CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
|
|
||||||
CARGO_TRIPLET="${CARGO_TRIPLET^^}"
|
|
||||||
cat <<-_EOF_ > "${T}/50${P}"
|
|
||||||
MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${SLOT}"
|
|
||||||
$(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
|
|
||||||
_EOF_
|
|
||||||
doenvd "${T}/50${P}"
|
|
||||||
|
|
||||||
# note: eselect-rust adds EROOT to all paths below
|
|
||||||
cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}"
|
|
||||||
/usr/bin/cargo
|
|
||||||
/usr/bin/rustdoc
|
|
||||||
/usr/bin/rust-gdb
|
|
||||||
/usr/bin/rust-gdbgui
|
|
||||||
/usr/bin/rust-lldb
|
|
||||||
/usr/lib/rustlib
|
|
||||||
/usr/lib/rust/lib
|
|
||||||
/usr/lib/rust/man
|
|
||||||
/usr/share/doc/rust
|
|
||||||
_EOF_
|
|
||||||
|
|
||||||
if use clippy; then
|
|
||||||
echo /usr/bin/clippy-driver >> "${T}/provider-${PN}-${SLOT}"
|
|
||||||
echo /usr/bin/cargo-clippy >> "${T}/provider-${PN}-${SLOT}"
|
|
||||||
fi
|
|
||||||
if use rustfmt; then
|
|
||||||
echo /usr/bin/rustfmt >> "${T}/provider-${PN}-${SLOT}"
|
|
||||||
echo /usr/bin/cargo-fmt >> "${T}/provider-${PN}-${SLOT}"
|
|
||||||
fi
|
|
||||||
if use rust-analyzer; then
|
|
||||||
echo /usr/bin/rust-analyzer >> "${T}/provider-${PN}-${SLOT}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
insinto /etc/env.d/rust
|
|
||||||
doins "${T}/provider-${PN}-${SLOT}"
|
|
||||||
popd >/dev/null || die
|
|
||||||
}
|
|
||||||
|
|
||||||
multilib_src_install() {
|
|
||||||
if multilib_is_native_abi; then
|
|
||||||
rust_native_abi_install
|
|
||||||
else
|
|
||||||
local rust_target
|
|
||||||
rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
|
|
||||||
dodir "/opt/${P}/lib/rustlib"
|
|
||||||
cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\
|
|
||||||
"${ED}/opt/${P}/lib/rustlib" || die
|
|
||||||
fi
|
|
||||||
|
|
||||||
# BUG: installs x86_64 binary on other arches
|
|
||||||
rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
eselect rust update
|
|
||||||
|
|
||||||
if has_version dev-debug/gdb || has_version llvm-core/lldb; then
|
|
||||||
elog "Rust installs helper scripts for calling GDB and LLDB,"
|
|
||||||
elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if has_version app-editors/emacs; then
|
|
||||||
optfeature "emacs support for rust" app-emacs/rust-mode
|
|
||||||
fi
|
|
||||||
|
|
||||||
if has_version app-editors/gvim || has_version app-editors/vim; then
|
|
||||||
optfeature "vim support for rust" app-vim/rust-vim
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
eselect rust cleanup
|
|
||||||
}
|
|
@ -12,7 +12,5 @@ DIST rustc-1.86.0-src.tar.xz 275696736 BLAKE2B 9f33a710a3e567d92f56091920643f5ef
|
|||||||
DIST rustc-1.86.0-src.tar.xz.asc 801 BLAKE2B 3e10a3894c7eee68d37bc5707d797548119f830667e27e652a199d13633199713bd01bd0f41a5f2af3c682561903e36abe27b36ef78d9a1d65bdf485527d2c15 SHA512 0b74dab9ee56d0a08e26e9cd40f722e4d99de63ac678f969f0c54d50737074fb28e170db5a36ce2627ec332e5ce3bb8a92167aefbccff7c70e4cb057bc0a94ac
|
DIST rustc-1.86.0-src.tar.xz.asc 801 BLAKE2B 3e10a3894c7eee68d37bc5707d797548119f830667e27e652a199d13633199713bd01bd0f41a5f2af3c682561903e36abe27b36ef78d9a1d65bdf485527d2c15 SHA512 0b74dab9ee56d0a08e26e9cd40f722e4d99de63ac678f969f0c54d50737074fb28e170db5a36ce2627ec332e5ce3bb8a92167aefbccff7c70e4cb057bc0a94ac
|
||||||
DIST rustc-1.87.0-src.tar.xz 283604208 BLAKE2B 7ede723121ff8df3908674631ceaec75797d91ccd6f1df4afd7187878adbb8d99c9e8a3b11c6027703b2e8d06785299d93d8649f3eda7f356dd2a6734d99d05b SHA512 2ef08c9be45434401f916d54b3739f52d255f8a3a4ce05a717499250c2333eeaf601f1d18085b878c027c609f44da74d0151f5bfc2c9ae1e01166919a91a1d2b
|
DIST rustc-1.87.0-src.tar.xz 283604208 BLAKE2B 7ede723121ff8df3908674631ceaec75797d91ccd6f1df4afd7187878adbb8d99c9e8a3b11c6027703b2e8d06785299d93d8649f3eda7f356dd2a6734d99d05b SHA512 2ef08c9be45434401f916d54b3739f52d255f8a3a4ce05a717499250c2333eeaf601f1d18085b878c027c609f44da74d0151f5bfc2c9ae1e01166919a91a1d2b
|
||||||
DIST rustc-1.87.0-src.tar.xz.asc 801 BLAKE2B c9740c03baedcd70defba3fd37831692adaf0e984ef6b11d259244330d044fcacf935e6dd76caf126848da0c40f38e5368c60e8aabed5d3c2655a61fdbdc7564 SHA512 ebc13374381839a997c63455b733fd2a7960b4fd497f19c29be948cce8bb59a31ddda5da54ca154c16f7de43dd1bacd6c6bd76f3b6b36c5b43f4cfaf1746b952
|
DIST rustc-1.87.0-src.tar.xz.asc 801 BLAKE2B c9740c03baedcd70defba3fd37831692adaf0e984ef6b11d259244330d044fcacf935e6dd76caf126848da0c40f38e5368c60e8aabed5d3c2655a61fdbdc7564 SHA512 ebc13374381839a997c63455b733fd2a7960b4fd497f19c29be948cce8bb59a31ddda5da54ca154c16f7de43dd1bacd6c6bd76f3b6b36c5b43f4cfaf1746b952
|
||||||
DIST rustc-1.88.0_beta20250526-src.tar.xz 283223628 BLAKE2B 1c21853c0b7edcafd87713823888e04d336fb9c6cd373aa05218ae5d1ddc9c68b18c06dc27d059542ddfe91c0eb04cf523e4b3621b9bbbfad5d2f82e8d1cad1e SHA512 28f64ae8b1e907f7c4044d8a0148286f6e202677417ac3b4f2ce24ee9dba34369ba18d39e443cb982ee5f3b8afd94530580a62b8f5d5473954e976708f002357
|
DIST rustc-1.88.0-src.tar.xz 283294344 BLAKE2B fc17efbc8b2e54f2da61384097dcb3b8f595f27f7853f56cef034913f6b46a718113af0fe66f0e3b0afd184ec506b35f3b74172926cf727ddc061f567d54fa4c SHA512 e6c62af2953f49462b2369e9551b12f2bec114577f90e3e76049636da4279b1e7f4d53bc6896f5d0d4715d90ef6d29dacff529a45690ffac6af62ad64600db40
|
||||||
DIST rustc-1.88.0_beta20250526-src.tar.xz.asc 801 BLAKE2B a412d72e4e0f273f03f3fee41abe1aeda03f77339891469e994f3a6bde0cd3836a1da087d908e732e90cd3285743a4a3c728c718ad1dda5daf7cca9de3be2c52 SHA512 45f208555f8b2fd3b21ac4cdc8fd7a110dc53fedbbe8d11542f105c5c8657a628309c8ff4520eb2c740cf3e784bfea0f21832b71b19a356b1b99fc7d0f04f607
|
DIST rustc-1.88.0-src.tar.xz.asc 801 BLAKE2B 858e987ad1fc49c1e1cbc5ea709f835c60fce907e89205e431c843bfad97dc0ccbcf399fc7d87319b8455561cbc24020bd88cb572cbe932cb8b80a8adec39687 SHA512 64ab398dc602fed3ad7bf232249e80cc0a9831aa90c7eb37658f7dc5b2af04ee391f9633aae7a1d90f743d019cec531318384f71384ecbe4f6169e6e88b7ba0e
|
||||||
DIST rustc-1.88.0_beta20250603-src.tar.xz 283255312 BLAKE2B 5b46509c46c4fbb10c4b3cee3edf9a1428c4b0f54d8f4d6a042e9776e05242988c933a90654538cf9806c4d1ee1c01ff3ecdcb1711fd7240cacbf5cbeff9a96b SHA512 ebc5f2175fc7ac8b89ee68d3089272ea444cfa9375a13c989c64a267b050c1065eaa124263b440ba6513a4b6ba4c8efbf58f3a78b4d94bd0e658dfab5ca0a8e5
|
|
||||||
DIST rustc-1.88.0_beta20250603-src.tar.xz.asc 801 BLAKE2B 426fe3cf64ecbc5564feeb1c2c784b98d4aa71184006b1430c86d1b98f91592e850feefa0f6e91142f1b5c227556041cd32628aed7bacd43dddd252dc111b73f SHA512 ba4336934071fff1d9abe44d50fced7bd2fd1f6a5c116b8d17312d6ec5d143664fb570fba90f6cf417c5220cd9f42b2bb1695d73e915451b1dd2f726a451c7ec
|
|
||||||
|
@ -1,73 +0,0 @@
|
|||||||
# Copyright 1999-2025 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
|
|
||||||
inherit shell-completion verify-sig
|
|
||||||
|
|
||||||
DESCRIPTION="Common files shared between multiple slots of Rust"
|
|
||||||
HOMEPAGE="https://www.rust-lang.org/"
|
|
||||||
|
|
||||||
if [[ ${PV} = *9999* ]]; then
|
|
||||||
inherit git-r3
|
|
||||||
# In case cargo is not in sync we'll fetch it as a submodule
|
|
||||||
# Nightly users will probably already have the repo cloned and up-to-date anyway.
|
|
||||||
EGIT_REPO_URI="https://github.com/rust-lang/rust.git"
|
|
||||||
EGIT_SUBMODULES=( "-*" "src/tools/cargo" )
|
|
||||||
elif [[ ${PV} == *beta* ]]; then
|
|
||||||
# Identify the snapshot date of the beta release:
|
|
||||||
# curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz
|
|
||||||
MY_PV=beta
|
|
||||||
betaver=${PV//*beta}
|
|
||||||
BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
|
|
||||||
SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz
|
|
||||||
verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc
|
|
||||||
-> rustc-${PV}-src.tar.xz.asc )
|
|
||||||
"
|
|
||||||
S="${WORKDIR}/rustc-${MY_PV}-src"
|
|
||||||
else
|
|
||||||
MY_PV=${PV}
|
|
||||||
SRC_URI="https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz
|
|
||||||
verify-sig? ( https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz.asc )
|
|
||||||
"
|
|
||||||
S="${WORKDIR}/rustc-${MY_PV}-src"
|
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
|
|
||||||
SLOT="0"
|
|
||||||
|
|
||||||
# Legacy non-slotted versions bash completions will collide.
|
|
||||||
RDEPEND="
|
|
||||||
!dev-lang/rust:stable
|
|
||||||
!dev-lang/rust-bin:stable
|
|
||||||
"
|
|
||||||
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-rust )"
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == *9999* ]]; then
|
|
||||||
git-r3_src_unpack
|
|
||||||
else
|
|
||||||
if use verify-sig ; then
|
|
||||||
verify-sig_verify_detached "${DISTDIR}"/rustc-${PV}-src.tar.xz "${DISTDIR}"/rustc-${PV}-src.tar.xz.asc
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Avoid unpacking the whole tarball which would need check-reqs
|
|
||||||
tar -xf "${DISTDIR}"/rustc-${PV}-src.tar.xz \
|
|
||||||
"rustc-${MY_PV}-src/src/tools/cargo/src/etc/"{_cargo,cargo.bashcomp.sh} || die
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
|
|
||||||
dozshcomp src/tools/cargo/src/etc/_cargo
|
|
||||||
}
|
|
@ -14,8 +14,7 @@ DIST rust-patches-1.85.0-r2.tar.bz2 4462 BLAKE2B 61cfde8688fecab1a5c3c80f29b37b6
|
|||||||
DIST rust-patches-1.85.1-r1.tar.bz2 4473 BLAKE2B fad2fe3222e2625b5cbc60ea1fb805080ce70f751c930c0e3bde9cf043059e1fc3ba4d8e618166fe99a7fcf12d5cccb684c05d4c2542a89c9794869204cbcb09 SHA512 edf680a1d3a29ae5d8140031dc8b232b747d08494db2f3393ccc286d9197139583bcaf536d5125b8c896a610c075115b9a16a6e6f3f6b5da60e58433f000dba6
|
DIST rust-patches-1.85.1-r1.tar.bz2 4473 BLAKE2B fad2fe3222e2625b5cbc60ea1fb805080ce70f751c930c0e3bde9cf043059e1fc3ba4d8e618166fe99a7fcf12d5cccb684c05d4c2542a89c9794869204cbcb09 SHA512 edf680a1d3a29ae5d8140031dc8b232b747d08494db2f3393ccc286d9197139583bcaf536d5125b8c896a610c075115b9a16a6e6f3f6b5da60e58433f000dba6
|
||||||
DIST rust-patches-1.86.0-r2.tar.bz2 5980 BLAKE2B 179d6acc8c7006eac4d00e073ec1f5496756ef51d465bc098daf1cfe650f469f4341893c72a65e21d84ecb3ccaeb46f5204ef517ae942482d835f89c0a934391 SHA512 31e902661d5ee2da82858910551393890583d9702303fed5652122c852e9384fb88a42eddd0b968558865e16b5bd4ac2a13a35bd01ec3f8c3adbb673bc465596
|
DIST rust-patches-1.86.0-r2.tar.bz2 5980 BLAKE2B 179d6acc8c7006eac4d00e073ec1f5496756ef51d465bc098daf1cfe650f469f4341893c72a65e21d84ecb3ccaeb46f5204ef517ae942482d835f89c0a934391 SHA512 31e902661d5ee2da82858910551393890583d9702303fed5652122c852e9384fb88a42eddd0b968558865e16b5bd4ac2a13a35bd01ec3f8c3adbb673bc465596
|
||||||
DIST rust-patches-1.87.0-r1.tar.bz2 4635 BLAKE2B d813ec4a602d3bb879927a44a0b9f752aac255e31dfd13c56ab71b3fae7ce46a742c1d2e7494a7e17728f1edb2327ddd6ad6ebabc0c47d66326b766bbd323fbd SHA512 596ffe744a5849b443f077bbd4edbcbb240b9ac51c9d53e0e436e46d7c93a6734477d22eba4a066a0cf474503a6357a72dfa124e594f645be6f50d9bd25bdb10
|
DIST rust-patches-1.87.0-r1.tar.bz2 4635 BLAKE2B d813ec4a602d3bb879927a44a0b9f752aac255e31dfd13c56ab71b3fae7ce46a742c1d2e7494a7e17728f1edb2327ddd6ad6ebabc0c47d66326b766bbd323fbd SHA512 596ffe744a5849b443f077bbd4edbcbb240b9ac51c9d53e0e436e46d7c93a6734477d22eba4a066a0cf474503a6357a72dfa124e594f645be6f50d9bd25bdb10
|
||||||
DIST rust-patches-1.88.0_beta20250526.tar.bz2 4073 BLAKE2B 4ae2fd9d87116ee6f779e60ffcbed16ef778fd4e87d4f6f8e2588348b7d0aa28de3627f8c2d43cef540b2422278d4018618c6f0da6936be03de68aba3420f5a4 SHA512 8f775901aff2c0da66c01e20c983ca965eddf38cd106d055b6e480e9ca73418abc416fe28215d4f700eb8cce52a90808c0513d23d495977ac19a3b5d82e109ff
|
DIST rust-patches-1.88.0.tar.bz2 4062 BLAKE2B 64168ffa608f2edf2e0b3d079152c3b5dd59d0cea29078894f286bf91488e2e7769c55ede2d43769368d2147b46699d1bf981190d6800dc3d41c736289122eaf SHA512 b565acfb4d1146e52b1fb66b4a242927407cc34f1b38c2a100135cbbde24c8374af1997bc22069cca25f33cc8d747e56391f3d98a2d4e13dc0abcec0d6f88b0b
|
||||||
DIST rust-patches-1.88.0_beta20250603.tar.bz2 4080 BLAKE2B 13e7ae1de79d91a2b7a6ee1368141ec0c9676a507c2a88b7dd1070e785482fe444f0e885055b9900d68ecab41f18ed1fd99c24a690e95219d387ac141c958e23 SHA512 a9929d66e583fcc21423008f5b6c0b7953715685f526c632433d4b25539810a422f8ca6f9a334664f9ad80f09a674a38e818d96cd079f86fb38948f7ae7ba56b
|
|
||||||
DIST rustc-1.74.1-src.tar.xz 155968724 BLAKE2B e05f2379ac94b286f85791a138e1928e5b5b5a7749f0981d82c40c2a12860f55bf96bb2f0e924e35a0f8b2447b13052d38adea909aaa3199105787bb5a4861b3 SHA512 14c7e7ed2f38ab60299d8c7d41d78f042b6b57ef822d577b5138e60bdde31cf141eccd4332a25bc5da3d58eb5313d63c1448b5dfe9e11b8055bb8ea133a9038d
|
DIST rustc-1.74.1-src.tar.xz 155968724 BLAKE2B e05f2379ac94b286f85791a138e1928e5b5b5a7749f0981d82c40c2a12860f55bf96bb2f0e924e35a0f8b2447b13052d38adea909aaa3199105787bb5a4861b3 SHA512 14c7e7ed2f38ab60299d8c7d41d78f042b6b57ef822d577b5138e60bdde31cf141eccd4332a25bc5da3d58eb5313d63c1448b5dfe9e11b8055bb8ea133a9038d
|
||||||
DIST rustc-1.74.1-src.tar.xz.asc 801 BLAKE2B ddf73175b164233babf31ca3a381b03e20c0f36d017c1d5f85d6ab11f0986d861ab23b11c061e6b2444ced70c3d6a494cc3de4ec86f0deb221a805491bd75420 SHA512 9a96ff9ba9a4e2af4e267b2ec126fc0675c78d0eb767703daa2f28491c3d85c2ab00fbd8584390bf658812ec6c4ab6c57e43b386db59fd505bd3134a8873a09e
|
DIST rustc-1.74.1-src.tar.xz.asc 801 BLAKE2B ddf73175b164233babf31ca3a381b03e20c0f36d017c1d5f85d6ab11f0986d861ab23b11c061e6b2444ced70c3d6a494cc3de4ec86f0deb221a805491bd75420 SHA512 9a96ff9ba9a4e2af4e267b2ec126fc0675c78d0eb767703daa2f28491c3d85c2ab00fbd8584390bf658812ec6c4ab6c57e43b386db59fd505bd3134a8873a09e
|
||||||
DIST rustc-1.75.0-src.tar.xz 159624388 BLAKE2B 8937b80585eddaa3e1f1ef948899d14a170308518c6fef9fe569560cdd870053776956743f796055f2119399b9ca6c0df12fedd789ae46324d071e5126c4e495 SHA512 7b0f25d91b1b5c317980fc88e059200bd43b56a70b445fbc72fb9b96e09775bfd3a98e9bd9d662af80f0ce3aef527c777ee82777e96ca876f47a972d63da8606
|
DIST rustc-1.75.0-src.tar.xz 159624388 BLAKE2B 8937b80585eddaa3e1f1ef948899d14a170308518c6fef9fe569560cdd870053776956743f796055f2119399b9ca6c0df12fedd789ae46324d071e5126c4e495 SHA512 7b0f25d91b1b5c317980fc88e059200bd43b56a70b445fbc72fb9b96e09775bfd3a98e9bd9d662af80f0ce3aef527c777ee82777e96ca876f47a972d63da8606
|
||||||
@ -48,7 +47,5 @@ DIST rustc-1.86.0-src.tar.xz 275696736 BLAKE2B 9f33a710a3e567d92f56091920643f5ef
|
|||||||
DIST rustc-1.86.0-src.tar.xz.asc 801 BLAKE2B 3e10a3894c7eee68d37bc5707d797548119f830667e27e652a199d13633199713bd01bd0f41a5f2af3c682561903e36abe27b36ef78d9a1d65bdf485527d2c15 SHA512 0b74dab9ee56d0a08e26e9cd40f722e4d99de63ac678f969f0c54d50737074fb28e170db5a36ce2627ec332e5ce3bb8a92167aefbccff7c70e4cb057bc0a94ac
|
DIST rustc-1.86.0-src.tar.xz.asc 801 BLAKE2B 3e10a3894c7eee68d37bc5707d797548119f830667e27e652a199d13633199713bd01bd0f41a5f2af3c682561903e36abe27b36ef78d9a1d65bdf485527d2c15 SHA512 0b74dab9ee56d0a08e26e9cd40f722e4d99de63ac678f969f0c54d50737074fb28e170db5a36ce2627ec332e5ce3bb8a92167aefbccff7c70e4cb057bc0a94ac
|
||||||
DIST rustc-1.87.0-src.tar.xz 283604208 BLAKE2B 7ede723121ff8df3908674631ceaec75797d91ccd6f1df4afd7187878adbb8d99c9e8a3b11c6027703b2e8d06785299d93d8649f3eda7f356dd2a6734d99d05b SHA512 2ef08c9be45434401f916d54b3739f52d255f8a3a4ce05a717499250c2333eeaf601f1d18085b878c027c609f44da74d0151f5bfc2c9ae1e01166919a91a1d2b
|
DIST rustc-1.87.0-src.tar.xz 283604208 BLAKE2B 7ede723121ff8df3908674631ceaec75797d91ccd6f1df4afd7187878adbb8d99c9e8a3b11c6027703b2e8d06785299d93d8649f3eda7f356dd2a6734d99d05b SHA512 2ef08c9be45434401f916d54b3739f52d255f8a3a4ce05a717499250c2333eeaf601f1d18085b878c027c609f44da74d0151f5bfc2c9ae1e01166919a91a1d2b
|
||||||
DIST rustc-1.87.0-src.tar.xz.asc 801 BLAKE2B c9740c03baedcd70defba3fd37831692adaf0e984ef6b11d259244330d044fcacf935e6dd76caf126848da0c40f38e5368c60e8aabed5d3c2655a61fdbdc7564 SHA512 ebc13374381839a997c63455b733fd2a7960b4fd497f19c29be948cce8bb59a31ddda5da54ca154c16f7de43dd1bacd6c6bd76f3b6b36c5b43f4cfaf1746b952
|
DIST rustc-1.87.0-src.tar.xz.asc 801 BLAKE2B c9740c03baedcd70defba3fd37831692adaf0e984ef6b11d259244330d044fcacf935e6dd76caf126848da0c40f38e5368c60e8aabed5d3c2655a61fdbdc7564 SHA512 ebc13374381839a997c63455b733fd2a7960b4fd497f19c29be948cce8bb59a31ddda5da54ca154c16f7de43dd1bacd6c6bd76f3b6b36c5b43f4cfaf1746b952
|
||||||
DIST rustc-1.88.0_beta20250526-src.tar.xz 283223628 BLAKE2B 1c21853c0b7edcafd87713823888e04d336fb9c6cd373aa05218ae5d1ddc9c68b18c06dc27d059542ddfe91c0eb04cf523e4b3621b9bbbfad5d2f82e8d1cad1e SHA512 28f64ae8b1e907f7c4044d8a0148286f6e202677417ac3b4f2ce24ee9dba34369ba18d39e443cb982ee5f3b8afd94530580a62b8f5d5473954e976708f002357
|
DIST rustc-1.88.0-src.tar.xz 283294344 BLAKE2B fc17efbc8b2e54f2da61384097dcb3b8f595f27f7853f56cef034913f6b46a718113af0fe66f0e3b0afd184ec506b35f3b74172926cf727ddc061f567d54fa4c SHA512 e6c62af2953f49462b2369e9551b12f2bec114577f90e3e76049636da4279b1e7f4d53bc6896f5d0d4715d90ef6d29dacff529a45690ffac6af62ad64600db40
|
||||||
DIST rustc-1.88.0_beta20250526-src.tar.xz.asc 801 BLAKE2B a412d72e4e0f273f03f3fee41abe1aeda03f77339891469e994f3a6bde0cd3836a1da087d908e732e90cd3285743a4a3c728c718ad1dda5daf7cca9de3be2c52 SHA512 45f208555f8b2fd3b21ac4cdc8fd7a110dc53fedbbe8d11542f105c5c8657a628309c8ff4520eb2c740cf3e784bfea0f21832b71b19a356b1b99fc7d0f04f607
|
DIST rustc-1.88.0-src.tar.xz.asc 801 BLAKE2B 858e987ad1fc49c1e1cbc5ea709f835c60fce907e89205e431c843bfad97dc0ccbcf399fc7d87319b8455561cbc24020bd88cb572cbe932cb8b80a8adec39687 SHA512 64ab398dc602fed3ad7bf232249e80cc0a9831aa90c7eb37658f7dc5b2af04ee391f9633aae7a1d90f743d019cec531318384f71384ecbe4f6169e6e88b7ba0e
|
||||||
DIST rustc-1.88.0_beta20250603-src.tar.xz 283255312 BLAKE2B 5b46509c46c4fbb10c4b3cee3edf9a1428c4b0f54d8f4d6a042e9776e05242988c933a90654538cf9806c4d1ee1c01ff3ecdcb1711fd7240cacbf5cbeff9a96b SHA512 ebc5f2175fc7ac8b89ee68d3089272ea444cfa9375a13c989c64a267b050c1065eaa124263b440ba6513a4b6ba4c8efbf58f3a78b4d94bd0e658dfab5ca0a8e5
|
|
||||||
DIST rustc-1.88.0_beta20250603-src.tar.xz.asc 801 BLAKE2B 426fe3cf64ecbc5564feeb1c2c784b98d4aa71184006b1430c86d1b98f91592e850feefa0f6e91142f1b5c227556041cd32628aed7bacd43dddd252dc111b73f SHA512 ba4336934071fff1d9abe44d50fced7bd2fd1f6a5c116b8d17312d6ec5d143664fb570fba90f6cf417c5220cd9f42b2bb1695d73e915451b1dd2f726a451c7ec
|
|
||||||
|
@ -1,835 +0,0 @@
|
|||||||
# Copyright 1999-2025 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
LLVM_COMPAT=( 20 )
|
|
||||||
PYTHON_COMPAT=( python3_{11..14} )
|
|
||||||
|
|
||||||
RUST_PATCH_VER=${PVR}
|
|
||||||
|
|
||||||
RUST_MAX_VER=${PV%%_*}
|
|
||||||
if [[ ${PV} == *9999* ]]; then
|
|
||||||
RUST_MIN_VER="1.88.0" # Update this as new `beta` releases come out.
|
|
||||||
elif [[ ${PV} == *beta* ]]; then
|
|
||||||
RUST_MAX_VER="$(ver_cut 1).$(ver_cut 2).0"
|
|
||||||
RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0"
|
|
||||||
else
|
|
||||||
RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0"
|
|
||||||
fi
|
|
||||||
|
|
||||||
inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \
|
|
||||||
multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig
|
|
||||||
|
|
||||||
if [[ ${PV} = *9999* ]]; then
|
|
||||||
inherit git-r3
|
|
||||||
elif [[ ${PV} == *beta* ]]; then
|
|
||||||
# Identify the snapshot date of the beta release:
|
|
||||||
# curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz
|
|
||||||
betaver=${PV//*beta}
|
|
||||||
BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
|
|
||||||
MY_P="rustc-beta"
|
|
||||||
SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz
|
|
||||||
https://gitweb.gentoo.org/proj/rust-patches.git/snapshot/rust-patches-${RUST_PATCH_VER}.tar.bz2
|
|
||||||
verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc
|
|
||||||
-> rustc-${PV}-src.tar.xz.asc )
|
|
||||||
"
|
|
||||||
S="${WORKDIR}/${MY_P}-src"
|
|
||||||
else
|
|
||||||
MY_P="rustc-${PV}"
|
|
||||||
SRC_URI="https://static.rust-lang.org/dist/${MY_P}-src.tar.xz
|
|
||||||
https://gitweb.gentoo.org/proj/rust-patches.git/snapshot/rust-patches-${RUST_PATCH_VER}.tar.bz2
|
|
||||||
verify-sig? ( https://static.rust-lang.org/dist/${MY_P}-src.tar.xz.asc )
|
|
||||||
"
|
|
||||||
S="${WORKDIR}/${MY_P}-src"
|
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESCRIPTION="Systems programming language originally developed by Mozilla"
|
|
||||||
HOMEPAGE="https://www.rust-lang.org/"
|
|
||||||
|
|
||||||
# keep in sync with llvm ebuild of the same version as bundled one.
|
|
||||||
ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
|
|
||||||
LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
|
|
||||||
WebAssembly X86 XCore Xtensa )
|
|
||||||
ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
|
|
||||||
LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
|
|
||||||
|
|
||||||
# https://github.com/rust-lang/llvm-project/blob/rustc-1.84.0/llvm/CMakeLists.txt
|
|
||||||
_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa )
|
|
||||||
declare -A ALL_RUST_EXPERIMENTAL_TARGETS
|
|
||||||
for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do
|
|
||||||
ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0
|
|
||||||
done
|
|
||||||
|
|
||||||
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
|
|
||||||
SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable
|
|
||||||
|
|
||||||
IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto rustfmt rust-analyzer rust-src +system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
|
|
||||||
|
|
||||||
if [[ ${PV} = *9999* ]]; then
|
|
||||||
# These USE flags require nightly rust
|
|
||||||
IUSE+=" miri"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LLVM_DEPEND=()
|
|
||||||
# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
|
|
||||||
for _x in "${ALL_LLVM_TARGETS[@]}"; do
|
|
||||||
LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" )
|
|
||||||
if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then
|
|
||||||
ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" )
|
|
||||||
LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" )
|
|
||||||
|
|
||||||
# dev-libs/oniguruma is used for documentation
|
|
||||||
BDEPEND="${PYTHON_DEPS}
|
|
||||||
app-eselect/eselect-rust
|
|
||||||
dev-libs/oniguruma
|
|
||||||
|| (
|
|
||||||
>=sys-devel/gcc-4.7[cxx]
|
|
||||||
>=llvm-core/clang-3.5
|
|
||||||
)
|
|
||||||
lto? ( system-llvm? (
|
|
||||||
|| (
|
|
||||||
$(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}')
|
|
||||||
sys-devel/mold
|
|
||||||
)
|
|
||||||
) )
|
|
||||||
!system-llvm? (
|
|
||||||
>=dev-build/cmake-3.13.4
|
|
||||||
app-alternatives/ninja
|
|
||||||
)
|
|
||||||
test? ( dev-debug/gdb )
|
|
||||||
verify-sig? ( sec-keys/openpgp-keys-rust )
|
|
||||||
"
|
|
||||||
|
|
||||||
DEPEND="
|
|
||||||
>=app-arch/xz-utils-5.2
|
|
||||||
net-misc/curl:=[http2,ssl]
|
|
||||||
sys-libs/zlib:=
|
|
||||||
dev-libs/openssl:0=
|
|
||||||
system-llvm? (
|
|
||||||
${LLVM_DEPEND[*]}
|
|
||||||
llvm-libunwind? ( llvm-runtimes/libunwind:= )
|
|
||||||
)
|
|
||||||
!system-llvm? (
|
|
||||||
!llvm-libunwind? (
|
|
||||||
elibc_musl? ( sys-libs/libunwind:= )
|
|
||||||
)
|
|
||||||
)
|
|
||||||
"
|
|
||||||
|
|
||||||
RDEPEND="${DEPEND}
|
|
||||||
app-eselect/eselect-rust
|
|
||||||
dev-lang/rust-common
|
|
||||||
sys-apps/lsb-release
|
|
||||||
!dev-lang/rust:stable
|
|
||||||
!dev-lang/rust-bin:stable
|
|
||||||
"
|
|
||||||
|
|
||||||
REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
|
|
||||||
rust-analyzer? ( rust-src )
|
|
||||||
test? ( ${ALL_LLVM_TARGETS[*]} )
|
|
||||||
wasm? ( llvm_targets_WebAssembly )
|
|
||||||
x86? ( cpu_flags_x86_sse2 )
|
|
||||||
"
|
|
||||||
|
|
||||||
# we don't use cmake.eclass, but can get a warning
|
|
||||||
CMAKE_WARN_UNUSED_CLI=no
|
|
||||||
|
|
||||||
QA_FLAGS_IGNORED="
|
|
||||||
usr/lib/${PN}/${SLOT}/bin/.*
|
|
||||||
usr/lib/${PN}/${SLOT}/libexec/.*
|
|
||||||
usr/lib/${PN}/${SLOT}/lib/lib.*.so
|
|
||||||
usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/.*
|
|
||||||
usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so
|
|
||||||
"
|
|
||||||
|
|
||||||
QA_SONAME="
|
|
||||||
usr/lib/${PN}/${SLOT}/lib/lib.*.so.*
|
|
||||||
usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so
|
|
||||||
"
|
|
||||||
|
|
||||||
QA_PRESTRIPPED="
|
|
||||||
usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-llvm-dwp
|
|
||||||
usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/self-contained/crtn.o
|
|
||||||
"
|
|
||||||
|
|
||||||
# An rmeta file is custom binary format that contains the metadata for the crate.
|
|
||||||
# rmeta files do not support linking, since they do not contain compiled object files.
|
|
||||||
# so we can safely silence the warning for this QA check.
|
|
||||||
QA_EXECSTACK="usr/lib/${PN}/${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta"
|
|
||||||
|
|
||||||
# causes double bootstrap
|
|
||||||
RESTRICT="test"
|
|
||||||
|
|
||||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
|
|
||||||
|
|
||||||
clear_vendor_checksums() {
|
|
||||||
sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
|
|
||||||
}
|
|
||||||
|
|
||||||
toml_usex() {
|
|
||||||
usex "${1}" true false
|
|
||||||
}
|
|
||||||
|
|
||||||
pre_build_checks() {
|
|
||||||
local M=9216
|
|
||||||
# multiply requirements by 1.3 if we are doing x86-multilib
|
|
||||||
if use amd64; then
|
|
||||||
M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
|
|
||||||
fi
|
|
||||||
M=$(( $(usex clippy 128 0) + ${M} ))
|
|
||||||
if [[ ${PV} == *9999* ]]; then
|
|
||||||
M=$(( $(usex miri 128 0) + ${M} ))
|
|
||||||
fi
|
|
||||||
M=$(( $(usex rustfmt 256 0) + ${M} ))
|
|
||||||
# add 2G if we compile llvm and 256M per llvm_target
|
|
||||||
if ! use system-llvm; then
|
|
||||||
M=$(( 2048 + ${M} ))
|
|
||||||
local ltarget
|
|
||||||
for ltarget in ${ALL_LLVM_TARGETS[@]}; do
|
|
||||||
M=$(( $(usex ${ltarget} 256 0) + ${M} ))
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
M=$(( $(usex wasm 256 0) + ${M} ))
|
|
||||||
M=$(( $(usex debug 2 1) * ${M} ))
|
|
||||||
eshopts_push -s extglob
|
|
||||||
if is-flagq '-g?(gdb)?([1-9])'; then
|
|
||||||
M=$(( 15 * ${M} / 10 ))
|
|
||||||
fi
|
|
||||||
eshopts_pop
|
|
||||||
M=$(( $(usex doc 256 0) + ${M} ))
|
|
||||||
CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
|
|
||||||
}
|
|
||||||
|
|
||||||
llvm_check_deps() {
|
|
||||||
has_version -r "llvm-core/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Is LLVM being linked against libc++?
|
|
||||||
is_libcxx_linked() {
|
|
||||||
local code='#include <ciso646>
|
|
||||||
#if defined(_LIBCPP_VERSION)
|
|
||||||
HAVE_LIBCXX
|
|
||||||
#endif
|
|
||||||
'
|
|
||||||
local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
|
|
||||||
[[ ${out} == *HAVE_LIBCXX* ]]
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_pretend() {
|
|
||||||
pre_build_checks
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
pre_build_checks
|
|
||||||
python-any-r1_pkg_setup
|
|
||||||
|
|
||||||
export LIBGIT2_NO_PKG_CONFIG=1 #749381
|
|
||||||
if tc-is-cross-compiler; then
|
|
||||||
use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
|
|
||||||
local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
|
|
||||||
use "llvm_targets_${cross_llvm_target}" || \
|
|
||||||
die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
|
|
||||||
fi
|
|
||||||
|
|
||||||
rust_pkg_setup
|
|
||||||
|
|
||||||
if use system-llvm; then
|
|
||||||
llvm-r1_pkg_setup
|
|
||||||
|
|
||||||
local llvm_config="$(get_llvm_prefix)/bin/llvm-config"
|
|
||||||
export LLVM_LINK_SHARED=1
|
|
||||||
export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
rust_live_get_sources() {
|
|
||||||
EGIT_REPO_URI="
|
|
||||||
https://anongit.gentoo.org/git/proj/rust-patches.git
|
|
||||||
"
|
|
||||||
EGIT_CHECKOUT_DIR="${WORKDIR}/rust-patches-${RUST_PATCH_VER}"
|
|
||||||
git-r3_src_unpack
|
|
||||||
|
|
||||||
EGIT_REPO_URI="
|
|
||||||
https://github.com/rust-lang/rust.git
|
|
||||||
"
|
|
||||||
EGIT_SUBMODULES=(
|
|
||||||
"*"
|
|
||||||
"-src/gcc"
|
|
||||||
)
|
|
||||||
S="${WORKDIR}/rust"
|
|
||||||
EGIT_CHECKOUT_DIR="${S}"
|
|
||||||
git-r3_src_unpack
|
|
||||||
}
|
|
||||||
|
|
||||||
src_unpack() {
|
|
||||||
if [[ ${PV} == *9999* ]] ; then
|
|
||||||
rust_live_get_sources
|
|
||||||
|
|
||||||
# Vendor dependencies
|
|
||||||
mkdir "${S}/.cargo" || die # The vendor script has a check for .cargo/config{,.toml}
|
|
||||||
touch "${S}/.cargo/bootstrap.toml" || die
|
|
||||||
local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")"
|
|
||||||
# Configure vendor to use the portage-provided toolchain. This prevents it from
|
|
||||||
# attempting to fetch a `beta` toolchain from the internet.
|
|
||||||
cat <<- _EOF_ > "${T}/vendor-bootstrap.toml"
|
|
||||||
# Suppresses a warning about tracking changes which we don't care about.
|
|
||||||
change-id = "ignore"
|
|
||||||
[build]
|
|
||||||
build = "$(rust_abi "${CBUILD}")"
|
|
||||||
host = ["$(rust_abi "${CHOST}")"]
|
|
||||||
target = ["$(rust_abi "${CHOST}")"]
|
|
||||||
cargo = "${rust_stage0_root}/bin/cargo"
|
|
||||||
rustc = "${rust_stage0_root}/bin/rustc"
|
|
||||||
rustfmt = "${rust_stage0_root}/bin/rustfmt"
|
|
||||||
_EOF_
|
|
||||||
# We're using git sources so we need to run the Vendor script
|
|
||||||
# to ensure that all dependencies are present and up-to-date
|
|
||||||
mkdir "${S}/vendor" || die
|
|
||||||
# This also compiles the 'build helper', there's no way to avoid this.
|
|
||||||
${EPYTHON} "${S}"/x.py vendor -v --config="${T}"/vendor-bootstrap.toml -j$(makeopts_jobs) ||
|
|
||||||
die "Failed to vendor dependencies"
|
|
||||||
# TODO: This has to be generated somehow, this is from a 1.84.x tarball I had lying around.
|
|
||||||
cat <<- _EOF_ > "${S}/.cargo/config.toml"
|
|
||||||
[source.crates-io]
|
|
||||||
replace-with = "vendored-sources"
|
|
||||||
|
|
||||||
[source."git+https://github.com/rust-lang/team"]
|
|
||||||
git = "https://github.com/rust-lang/team"
|
|
||||||
replace-with = "vendored-sources"
|
|
||||||
|
|
||||||
[source.vendored-sources]
|
|
||||||
directory = "vendor"
|
|
||||||
_EOF_
|
|
||||||
elif use verify-sig ; then
|
|
||||||
# Patch tarballs are not signed (but we trust Gentoo infra)
|
|
||||||
verify-sig_verify_detached "${DISTDIR}"/rustc-${PV}-src.tar.xz{,.asc}
|
|
||||||
default
|
|
||||||
else
|
|
||||||
default
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
if [[ ${PV} = *9999* ]]; then
|
|
||||||
# We need to update / generate lockfiles for the workspace
|
|
||||||
${CARGO} generate-lockfile --offline || die "Failed to generate lockfiles"
|
|
||||||
fi
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${WORKDIR}/rust-patches-${RUST_PATCH_VER}/"
|
|
||||||
)
|
|
||||||
|
|
||||||
if use lto && tc-is-clang && ! tc-ld-is-lld && ! tc-ld-is-mold; then
|
|
||||||
export RUSTFLAGS+=" -C link-arg=-fuse-ld=lld"
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
if tc-is-cross-compiler; then
|
|
||||||
export PKG_CONFIG_ALLOW_CROSS=1
|
|
||||||
export PKG_CONFIG_PATH="${ESYSROOT}/usr/$(get_libdir)/pkgconfig"
|
|
||||||
export OPENSSL_INCLUDE_DIR="${ESYSROOT}/usr/include"
|
|
||||||
export OPENSSL_LIB_DIR="${ESYSROOT}/usr/$(get_libdir)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Avoid bundled copies of libraries
|
|
||||||
export RUSTONIG_SYSTEM_LIBONIG=1
|
|
||||||
# Need to check if these can be optional
|
|
||||||
#export LIBSQLITE3_SYS_USE_PKG_CONFIG=1
|
|
||||||
#export LIBSSH2_SYS_USE_PKG_CONFIG=1
|
|
||||||
|
|
||||||
filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
|
|
||||||
|
|
||||||
local rust_target="" rust_targets="" arch_cflags
|
|
||||||
|
|
||||||
# Collect rust target names to compile standard libs for all ABIs.
|
|
||||||
for v in $(multilib_get_enabled_abi_pairs); do
|
|
||||||
rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
|
|
||||||
done
|
|
||||||
if use wasm; then
|
|
||||||
rust_targets+=",\"wasm32-unknown-unknown\""
|
|
||||||
if use system-llvm; then
|
|
||||||
# un-hardcode rust-lld linker for this target
|
|
||||||
# https://bugs.gentoo.org/715348
|
|
||||||
sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
rust_targets="${rust_targets#,}"
|
|
||||||
|
|
||||||
# cargo and rustdoc are mandatory and should always be included
|
|
||||||
local tools='"cargo","rustdoc"'
|
|
||||||
use clippy && tools+=',"clippy"'
|
|
||||||
use rustfmt && tools+=',"rustfmt"'
|
|
||||||
use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"'
|
|
||||||
use rust-src && tools+=',"src"'
|
|
||||||
|
|
||||||
if [[ ${PV} == *9999* ]]; then
|
|
||||||
use miri && tools+=',"miri"'
|
|
||||||
fi
|
|
||||||
|
|
||||||
local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")"
|
|
||||||
# in case of prefix it will be already prefixed, as --print sysroot returns full path
|
|
||||||
[[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
|
|
||||||
|
|
||||||
rust_target="$(rust_abi)"
|
|
||||||
rust_build="$(rust_abi "${CBUILD}")"
|
|
||||||
rust_host="$(rust_abi "${CHOST}")"
|
|
||||||
|
|
||||||
RUST_EXPERIMENTAL_TARGETS=()
|
|
||||||
for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do
|
|
||||||
if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then
|
|
||||||
RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} )
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]}
|
|
||||||
|
|
||||||
local cm_btype="$(usex debug DEBUG RELEASE)"
|
|
||||||
local build_channel
|
|
||||||
local build_miri="false"
|
|
||||||
case "${PV}" in
|
|
||||||
*9999*)
|
|
||||||
build_channel="nightly"
|
|
||||||
;;
|
|
||||||
*beta*)
|
|
||||||
build_channel="beta"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
build_channel="stable"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
cat <<- _EOF_ > "${S}"/bootstrap.toml
|
|
||||||
# Suppresses a warning about tracking changes which we don't care about.
|
|
||||||
change-id = "ignore"
|
|
||||||
# https://github.com/rust-lang/rust/issues/135358 (bug #947897)
|
|
||||||
profile = "dist"
|
|
||||||
[llvm]
|
|
||||||
download-ci-llvm = false
|
|
||||||
optimize = $(toml_usex !debug)
|
|
||||||
release-debuginfo = $(toml_usex debug)
|
|
||||||
assertions = $(toml_usex debug)
|
|
||||||
ninja = true
|
|
||||||
targets = "${LLVM_TARGETS// /;}"
|
|
||||||
experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}"
|
|
||||||
link-shared = $(toml_usex system-llvm)
|
|
||||||
$(if is_libcxx_linked; then
|
|
||||||
# https://bugs.gentoo.org/732632
|
|
||||||
echo "use-libcxx = true"
|
|
||||||
echo "static-libstdcpp = false"
|
|
||||||
fi)
|
|
||||||
$(case "${rust_target}" in
|
|
||||||
i586-*-linux-*)
|
|
||||||
# https://github.com/rust-lang/rust/issues/93059
|
|
||||||
echo 'cflags = "-fcf-protection=none"'
|
|
||||||
echo 'cxxflags = "-fcf-protection=none"'
|
|
||||||
echo 'ldflags = "-fcf-protection=none"'
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
;;
|
|
||||||
esac)
|
|
||||||
enable-warnings = false
|
|
||||||
[llvm.build-config]
|
|
||||||
CMAKE_VERBOSE_MAKEFILE = "ON"
|
|
||||||
$(if ! tc-is-cross-compiler; then
|
|
||||||
# When cross-compiling, LLVM is compiled twice, once for host and
|
|
||||||
# once for target. Unfortunately, this build configuration applies
|
|
||||||
# to both, which means any flags applicable to one target but not
|
|
||||||
# the other will break. Conditionally disable respecting user
|
|
||||||
# flags when cross-compiling.
|
|
||||||
echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
|
|
||||||
echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
|
|
||||||
echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
|
|
||||||
echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
|
|
||||||
echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
|
|
||||||
echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
|
|
||||||
fi)
|
|
||||||
[build]
|
|
||||||
build-stage = 2
|
|
||||||
test-stage = 2
|
|
||||||
build = "${rust_build}"
|
|
||||||
host = ["${rust_host}"]
|
|
||||||
target = [${rust_targets}]
|
|
||||||
cargo = "${rust_stage0_root}/bin/cargo"
|
|
||||||
rustc = "${rust_stage0_root}/bin/rustc"
|
|
||||||
rustfmt = "${rust_stage0_root}/bin/rustfmt"
|
|
||||||
docs = $(toml_usex doc)
|
|
||||||
compiler-docs = false
|
|
||||||
submodules = false
|
|
||||||
python = "${EPYTHON}"
|
|
||||||
locked-deps = true
|
|
||||||
vendor = true
|
|
||||||
extended = true
|
|
||||||
tools = [${tools}]
|
|
||||||
verbose = 2
|
|
||||||
sanitizers = false
|
|
||||||
profiler = true
|
|
||||||
cargo-native-static = false
|
|
||||||
[install]
|
|
||||||
prefix = "${EPREFIX}/usr/lib/${PN}/${SLOT}"
|
|
||||||
sysconfdir = "etc"
|
|
||||||
docdir = "share/doc/rust"
|
|
||||||
bindir = "bin"
|
|
||||||
libdir = "lib"
|
|
||||||
mandir = "share/man"
|
|
||||||
[rust]
|
|
||||||
# https://github.com/rust-lang/rust/issues/54872
|
|
||||||
codegen-units-std = 1
|
|
||||||
optimize = true
|
|
||||||
debug = $(toml_usex debug)
|
|
||||||
debug-assertions = $(toml_usex debug)
|
|
||||||
debug-assertions-std = $(toml_usex debug)
|
|
||||||
debuginfo-level = $(usex debug 2 0)
|
|
||||||
debuginfo-level-rustc = $(usex debug 2 0)
|
|
||||||
debuginfo-level-std = $(usex debug 2 0)
|
|
||||||
debuginfo-level-tools = $(usex debug 2 0)
|
|
||||||
debuginfo-level-tests = 0
|
|
||||||
backtrace = true
|
|
||||||
incremental = false
|
|
||||||
$(if ! tc-is-cross-compiler; then
|
|
||||||
echo "default-linker = \"${CHOST}-cc\""
|
|
||||||
fi)
|
|
||||||
channel = "${build_channel}"
|
|
||||||
description = "gentoo"
|
|
||||||
rpath = true
|
|
||||||
verbose-tests = true
|
|
||||||
optimize-tests = $(toml_usex !debug)
|
|
||||||
codegen-tests = true
|
|
||||||
omit-git-hash = false
|
|
||||||
dist-src = false
|
|
||||||
remap-debuginfo = true
|
|
||||||
lld = $(usex system-llvm false $(toml_usex wasm))
|
|
||||||
$(if use lto && tc-is-clang && ! tc-ld-is-mold; then
|
|
||||||
echo "use-lld = true"
|
|
||||||
fi)
|
|
||||||
# only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
|
|
||||||
# https://github.com/rust-lang/rust/issues/74976
|
|
||||||
# https://github.com/rust-lang/rust/issues/76526
|
|
||||||
deny-warnings = $(usex wasm $(usex doc false true) true)
|
|
||||||
backtrace-on-ice = true
|
|
||||||
jemalloc = false
|
|
||||||
# See https://github.com/rust-lang/rust/issues/121124
|
|
||||||
lto = "$(usex lto thin off)"
|
|
||||||
[dist]
|
|
||||||
src-tarball = false
|
|
||||||
compression-formats = ["xz"]
|
|
||||||
compression-profile = "balanced"
|
|
||||||
_EOF_
|
|
||||||
|
|
||||||
for v in $(multilib_get_enabled_abi_pairs); do
|
|
||||||
rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
|
|
||||||
arch_cflags="$(get_abi_CFLAGS ${v##*.})"
|
|
||||||
|
|
||||||
export CFLAGS_${rust_target//-/_}="${arch_cflags}"
|
|
||||||
|
|
||||||
cat <<- _EOF_ >> "${S}"/bootstrap.toml
|
|
||||||
[target.${rust_target}]
|
|
||||||
ar = "$(tc-getAR)"
|
|
||||||
cc = "$(tc-getCC)"
|
|
||||||
cxx = "$(tc-getCXX)"
|
|
||||||
linker = "$(tc-getCC)"
|
|
||||||
ranlib = "$(tc-getRANLIB)"
|
|
||||||
llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
|
|
||||||
_EOF_
|
|
||||||
if use system-llvm; then
|
|
||||||
cat <<- _EOF_ >> "${S}"/bootstrap.toml
|
|
||||||
llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
|
|
||||||
_EOF_
|
|
||||||
fi
|
|
||||||
# by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
|
|
||||||
# but we patch it and set to false here as well
|
|
||||||
if use elibc_musl; then
|
|
||||||
cat <<- _EOF_ >> "${S}"/bootstrap.toml
|
|
||||||
crt-static = false
|
|
||||||
musl-root = "$($(tc-getCC) -print-sysroot)/usr"
|
|
||||||
_EOF_
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if use wasm; then
|
|
||||||
wasm_target="wasm32-unknown-unknown"
|
|
||||||
export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")"
|
|
||||||
cat <<- _EOF_ >> "${S}"/bootstrap.toml
|
|
||||||
[target.wasm32-unknown-unknown]
|
|
||||||
linker = "$(usex system-llvm lld rust-lld)"
|
|
||||||
# wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
|
|
||||||
profiler = false
|
|
||||||
_EOF_
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
|
|
||||||
# experimental cross support
|
|
||||||
# discussion: https://bugs.gentoo.org/679878
|
|
||||||
# TODO: c*flags, clang, system-llvm, cargo.eclass target support
|
|
||||||
# it would be much better if we could split out stdlib
|
|
||||||
# complilation to separate ebuild and abuse CATEGORY to
|
|
||||||
# just install to /usr/lib/rustlib/<target>
|
|
||||||
|
|
||||||
# extra targets defined as a bash array
|
|
||||||
# spec format: <LLVM target>:<rust-target>:<CTARGET>
|
|
||||||
# best place would be /etc/portage/env/dev-lang/rust
|
|
||||||
# Example:
|
|
||||||
# RUST_CROSS_TARGETS=(
|
|
||||||
# "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
|
|
||||||
# )
|
|
||||||
# no extra hand holding is done, no target transformations, all
|
|
||||||
# values are passed as-is with just basic checks, so it's up to user to supply correct values
|
|
||||||
# valid rust targets can be obtained with
|
|
||||||
# rustc --print target-list
|
|
||||||
# matching cross toolchain has to be installed
|
|
||||||
# matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
|
|
||||||
# only gcc toolchains installed with crossdev are checked for now.
|
|
||||||
|
|
||||||
# BUG: we can't pass host flags to cross compiler, so just filter for now
|
|
||||||
# BUG: this should be more fine-grained.
|
|
||||||
filter-flags '-mcpu=*' '-march=*' '-mtune=*'
|
|
||||||
|
|
||||||
local cross_target_spec
|
|
||||||
for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
|
|
||||||
# extracts first element form <LLVM target>:<rust-target>:<CTARGET>
|
|
||||||
local cross_llvm_target="${cross_target_spec%%:*}"
|
|
||||||
# extracts toolchain triples, <rust-target>:<CTARGET>
|
|
||||||
local cross_triples="${cross_target_spec#*:}"
|
|
||||||
# extracts first element after before : separator
|
|
||||||
local cross_rust_target="${cross_triples%%:*}"
|
|
||||||
# extracts last element after : separator
|
|
||||||
local cross_toolchain="${cross_triples##*:}"
|
|
||||||
use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
|
|
||||||
command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
|
|
||||||
|
|
||||||
cat <<- _EOF_ >> "${S}"/bootstrap.toml
|
|
||||||
[target.${cross_rust_target}]
|
|
||||||
ar = "${cross_toolchain}-ar"
|
|
||||||
cc = "${cross_toolchain}-gcc"
|
|
||||||
cxx = "${cross_toolchain}-g++"
|
|
||||||
linker = "${cross_toolchain}-gcc"
|
|
||||||
ranlib = "${cross_toolchain}-ranlib"
|
|
||||||
_EOF_
|
|
||||||
if use system-llvm; then
|
|
||||||
cat <<- _EOF_ >> "${S}"/bootstrap.toml
|
|
||||||
llvm-config = "$(get_llvm_prefix)/bin/llvm-config"
|
|
||||||
_EOF_
|
|
||||||
fi
|
|
||||||
if [[ "${cross_toolchain}" == *-musl* ]]; then
|
|
||||||
cat <<- _EOF_ >> "${S}"/bootstrap.toml
|
|
||||||
musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
|
|
||||||
_EOF_
|
|
||||||
fi
|
|
||||||
|
|
||||||
# append cross target to "normal" target list
|
|
||||||
# example 'target = ["powerpc64le-unknown-linux-gnu"]'
|
|
||||||
# becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
|
|
||||||
|
|
||||||
rust_targets="${rust_targets},\"${cross_rust_target}\""
|
|
||||||
sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" bootstrap.toml || die
|
|
||||||
|
|
||||||
ewarn
|
|
||||||
ewarn "Enabled ${cross_rust_target} rust target"
|
|
||||||
ewarn "Using ${cross_toolchain} cross toolchain"
|
|
||||||
ewarn
|
|
||||||
if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
|
|
||||||
ewarn "'sys-devel/binutils[multitarget]' is not installed"
|
|
||||||
ewarn "'strip' will be unable to strip cross libraries"
|
|
||||||
ewarn "cross targets will be installed with full debug information"
|
|
||||||
ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
|
|
||||||
ewarn
|
|
||||||
ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
|
|
||||||
ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
|
|
||||||
ewarn
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi # I_KNOW_WHAT_I_AM_DOING_CROSS
|
|
||||||
|
|
||||||
einfo "Rust configured with the following flags:"
|
|
||||||
echo
|
|
||||||
echo RUSTFLAGS="\"${RUSTFLAGS}\""
|
|
||||||
echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
|
|
||||||
echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
|
|
||||||
echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
|
|
||||||
env | grep "CARGO_TARGET_.*_RUSTFLAGS="
|
|
||||||
env | grep "CFLAGS_.*"
|
|
||||||
echo
|
|
||||||
einfo "bootstrap.toml contents:"
|
|
||||||
cat "${S}"/bootstrap.toml || die
|
|
||||||
echo
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
# -v will show invocations, -vv "very verbose" is overkill, -vvv "very very verbose" is insane
|
|
||||||
RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -v --config="${S}"/bootstrap.toml -j$(makeopts_jobs) || die
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
# https://rustc-dev-guide.rust-lang.org/tests/intro.html
|
|
||||||
|
|
||||||
# those are basic and codegen tests.
|
|
||||||
local tests=(
|
|
||||||
codegen
|
|
||||||
codegen-units
|
|
||||||
compile-fail
|
|
||||||
incremental
|
|
||||||
mir-opt
|
|
||||||
pretty
|
|
||||||
run-make
|
|
||||||
)
|
|
||||||
|
|
||||||
# fails if llvm is not built with ALL targets.
|
|
||||||
# and known to fail with system llvm sometimes.
|
|
||||||
use system-llvm || tests+=( assembly )
|
|
||||||
|
|
||||||
# fragile/expensive/less important tests
|
|
||||||
# or tests that require extra builds
|
|
||||||
# TODO: instead of skipping, just make some nonfatal.
|
|
||||||
if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
|
|
||||||
tests+=(
|
|
||||||
rustdoc
|
|
||||||
rustdoc-js
|
|
||||||
rustdoc-js-std
|
|
||||||
rustdoc-ui
|
|
||||||
run-make-fulldeps
|
|
||||||
ui
|
|
||||||
ui-fulldeps
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
local i failed=()
|
|
||||||
einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
|
|
||||||
for i in "${tests[@]}"; do
|
|
||||||
local t="src/test/${i}"
|
|
||||||
einfo "rust_src_test: running ${t}"
|
|
||||||
if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/bootstrap.toml \
|
|
||||||
-j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
|
|
||||||
then
|
|
||||||
failed+=( "${t}" )
|
|
||||||
eerror "rust_src_test: ${t} failed"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ ${#failed[@]} -ne 0 ]]; then
|
|
||||||
eerror "rust_src_test: failure summary: ${failed[@]}"
|
|
||||||
die "aborting due to test failures"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
DESTDIR="${D}" "${EPYTHON}" ./x.py install -v --config="${S}"/bootstrap.toml -j$(makeopts_jobs) || die
|
|
||||||
|
|
||||||
docompress /usr/lib/${PN}/${SLOT}/share/man/
|
|
||||||
|
|
||||||
# bug #689562, #689160
|
|
||||||
rm -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d/cargo" || die
|
|
||||||
rmdir -v "${ED}/usr/lib/${PN}/${SLOT}"/etc{/bash_completion.d,} || die
|
|
||||||
|
|
||||||
local symlinks=(
|
|
||||||
cargo
|
|
||||||
rustc
|
|
||||||
rustdoc
|
|
||||||
rust-gdb
|
|
||||||
rust-gdbgui
|
|
||||||
rust-lldb
|
|
||||||
)
|
|
||||||
|
|
||||||
use clippy && symlinks+=( clippy-driver cargo-clippy )
|
|
||||||
if [[ ${PV} = *9999* ]]; then
|
|
||||||
use miri && symlinks+=( miri cargo-miri )
|
|
||||||
fi
|
|
||||||
use rustfmt && symlinks+=( rustfmt cargo-fmt )
|
|
||||||
use rust-analyzer && symlinks+=( rust-analyzer )
|
|
||||||
|
|
||||||
einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
|
|
||||||
local i
|
|
||||||
for i in "${symlinks[@]}"; do
|
|
||||||
# we need realpath on /usr/bin/* symlink return version-appended binary path.
|
|
||||||
# so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
|
|
||||||
# need to fix eselect-rust to remove this hack.
|
|
||||||
local ver_i="${i}-${PV%%_*}"
|
|
||||||
if [[ -f "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" ]]; then
|
|
||||||
einfo "Installing ${i} symlink"
|
|
||||||
ln -v "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" "${ED}/usr/lib/${PN}/${SLOT}/bin/${ver_i}" || die
|
|
||||||
else
|
|
||||||
ewarn "${i} symlink requested, but source file not found"
|
|
||||||
ewarn "please report this"
|
|
||||||
fi
|
|
||||||
dosym "../lib/${PN}/${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}"
|
|
||||||
done
|
|
||||||
|
|
||||||
# symlinks to switch components to active rust in eselect
|
|
||||||
dosym "${SLOT}/lib" "/usr/lib/${PN}/lib-${SLOT}"
|
|
||||||
use rust-analyzer && dosym "${SLOT}/libexec" "/usr/lib/${PN}/libexec-${SLOT}"
|
|
||||||
dosym "${SLOT}/share/man" "/usr/lib/${PN}/man-${SLOT}"
|
|
||||||
dosym "rust/${SLOT}/lib/rustlib" "/usr/lib/rustlib-${SLOT}"
|
|
||||||
dosym "../../lib/${PN}/${SLOT}/share/doc/rust" "/usr/share/doc/${P}"
|
|
||||||
|
|
||||||
newenvd - "50${P}" <<-_EOF_
|
|
||||||
MANPATH="${EPREFIX}/usr/lib/rust/man-${SLOT}"
|
|
||||||
_EOF_
|
|
||||||
|
|
||||||
rm -rf "${ED}/usr/lib/${PN}/${SLOT}"/*.old || die
|
|
||||||
rm -rf "${ED}/usr/lib/${PN}/${SLOT}/bin"/*.old || die
|
|
||||||
rm -rf "${ED}/usr/lib/${PN}/${SLOT}/doc"/*.old || die
|
|
||||||
|
|
||||||
# note: eselect-rust adds EROOT to all paths below
|
|
||||||
cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}"
|
|
||||||
/usr/bin/cargo
|
|
||||||
/usr/bin/rustdoc
|
|
||||||
/usr/bin/rust-gdb
|
|
||||||
/usr/bin/rust-gdbgui
|
|
||||||
/usr/bin/rust-lldb
|
|
||||||
/usr/lib/rustlib
|
|
||||||
/usr/lib/rust/lib
|
|
||||||
/usr/lib/rust/man
|
|
||||||
/usr/share/doc/rust
|
|
||||||
_EOF_
|
|
||||||
|
|
||||||
if use clippy; then
|
|
||||||
echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
|
|
||||||
echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
|
|
||||||
fi
|
|
||||||
if [[ ${SLOT} == *9999* ]] && use miri; then
|
|
||||||
echo /usr/bin/miri >> "${T}/provider-${P}"
|
|
||||||
echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
|
|
||||||
fi
|
|
||||||
if use rustfmt; then
|
|
||||||
echo /usr/bin/rustfmt >> "${T}/provider-${P}"
|
|
||||||
echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
|
|
||||||
fi
|
|
||||||
if use rust-analyzer; then
|
|
||||||
echo /usr/lib/rust/libexec >> "${T}/provider-${P}"
|
|
||||||
echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
insinto /etc/env.d/rust
|
|
||||||
doins "${T}/provider-${PN}-${SLOT}"
|
|
||||||
|
|
||||||
if use dist; then
|
|
||||||
"${EPYTHON}" ./x.py dist -v --config="${S}"/bootstrap.toml -j$(makeopts_jobs) || die
|
|
||||||
insinto "/usr/lib/${PN}/${SLOT}/dist"
|
|
||||||
doins -r "${S}/build/dist/."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
|
|
||||||
eselect rust update
|
|
||||||
|
|
||||||
if has_version dev-debug/gdb || has_version llvm-core/lldb; then
|
|
||||||
elog "Rust installs helper scripts for calling GDB and LLDB,"
|
|
||||||
elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if has_version app-editors/emacs; then
|
|
||||||
optfeature "emacs support for rust" app-emacs/rust-mode
|
|
||||||
fi
|
|
||||||
|
|
||||||
if has_version app-editors/gvim || has_version app-editors/vim; then
|
|
||||||
optfeature "vim support for rust" app-vim/rust-vim
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postrm() {
|
|
||||||
eselect rust cleanup
|
|
||||||
}
|
|
@ -1,2 +1 @@
|
|||||||
DIST cowsql-1.15.7.tar.gz 364592 BLAKE2B d3cd4e399d029c63743cee081cd32c19fe364f4dd093c40f62162a2387a9a0da956b19f2f75dc9e556e18c8d957edcbee5c9fe449e3ba9961eb556cdc981a6e5 SHA512 d01fe084d911f13be4d21997f3ec4ba1b11d15198dbad404d55962abd4924dcc95d48eb7d8d94d3f65c512194d25acf761954994c5ffece78a27eff438441fda
|
|
||||||
DIST cowsql-1.15.8.tar.gz 364600 BLAKE2B 14fcc1a77351e433962aa4ccde671ee11839f2a69606d5b130f5fe168012ee39dba254f23fb338e246f5215bb15c1e14958818d71008bb03afac7fea8733efec SHA512 3946433897efb190edec4d6900d7bdc40d3b25c07d732526b7d83fe2c38269a5525c6e9d352f017709ecf2a9e6ea908462b1b31fe31b4d02699a89834f3f3ce3
|
DIST cowsql-1.15.8.tar.gz 364600 BLAKE2B 14fcc1a77351e433962aa4ccde671ee11839f2a69606d5b130f5fe168012ee39dba254f23fb338e246f5215bb15c1e14958818d71008bb03afac7fea8733efec SHA512 3946433897efb190edec4d6900d7bdc40d3b25c07d732526b7d83fe2c38269a5525c6e9d352f017709ecf2a9e6ea908462b1b31fe31b4d02699a89834f3f3ce3
|
||||||
|
@ -1,53 +0,0 @@
|
|||||||
# Copyright 2020-2025 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
inherit autotools
|
|
||||||
|
|
||||||
DESCRIPTION="Embeddable, replicated and fault tolerant SQL engine (fork of dqlite)"
|
|
||||||
HOMEPAGE="https://cowsql.dev/ https://github.com/cowsql/cowsql"
|
|
||||||
SRC_URI="https://github.com/cowsql/cowsql/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
|
|
||||||
|
|
||||||
LICENSE="LGPL-3-with-linking-exception"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="amd64 ~arm64 ~x86"
|
|
||||||
IUSE="test"
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
RDEPEND="dev-db/sqlite:3
|
|
||||||
=dev-libs/libuv-1.50*:=
|
|
||||||
>=dev-libs/raft-0.18.1:="
|
|
||||||
DEPEND="${RDEPEND}
|
|
||||||
test? ( dev-libs/raft[lz4,test] )"
|
|
||||||
BDEPEND="virtual/pkgconfig"
|
|
||||||
|
|
||||||
PATCHES=( "${FILESDIR}"/dqlite-1.12.0-disable-werror.patch )
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
default
|
|
||||||
eautoreconf
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local myeconfargs=(
|
|
||||||
--disable-backtrace
|
|
||||||
--disable-debug
|
|
||||||
--disable-sanitize
|
|
||||||
--disable-static
|
|
||||||
|
|
||||||
# Will build a bundled libsqlite3.so.
|
|
||||||
--enable-build-sqlite=no
|
|
||||||
)
|
|
||||||
|
|
||||||
econf "${myeconfargs[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
default
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
default
|
|
||||||
find "${ED}" -name '*.la' -delete || die
|
|
||||||
}
|
|
@ -1,56 +0,0 @@
|
|||||||
# Copyright 2020-2025 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
inherit autotools
|
|
||||||
|
|
||||||
DESCRIPTION="Embeddable, replicated and fault tolerant SQL engine (fork of dqlite)"
|
|
||||||
HOMEPAGE="https://cowsql.dev/ https://github.com/cowsql/cowsql"
|
|
||||||
SRC_URI="https://github.com/cowsql/cowsql/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
|
|
||||||
|
|
||||||
LICENSE="LGPL-3-with-linking-exception"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~amd64 ~arm64 ~x86"
|
|
||||||
IUSE="test"
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
RDEPEND="dev-db/sqlite:3
|
|
||||||
dev-libs/libuv:=
|
|
||||||
>=dev-libs/raft-0.18.1:="
|
|
||||||
DEPEND="${RDEPEND}
|
|
||||||
test? ( dev-libs/raft[lz4,test] )"
|
|
||||||
BDEPEND="virtual/pkgconfig"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}"/dqlite-1.12.0-disable-werror.patch
|
|
||||||
"${FILESDIR}"/0001-src-lib-serialize.h-don-t-define-double-as-float_t.patch
|
|
||||||
)
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
default
|
|
||||||
eautoreconf
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local myeconfargs=(
|
|
||||||
--disable-backtrace
|
|
||||||
--disable-debug
|
|
||||||
--disable-sanitize
|
|
||||||
--disable-static
|
|
||||||
|
|
||||||
# Will build a bundled libsqlite3.so.
|
|
||||||
--enable-build-sqlite=no
|
|
||||||
)
|
|
||||||
|
|
||||||
econf "${myeconfargs[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
default
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
default
|
|
||||||
find "${ED}" -name '*.la' -delete || die
|
|
||||||
}
|
|
@ -21,7 +21,7 @@ else
|
|||||||
SRC_URI="https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2"
|
SRC_URI="https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2"
|
||||||
SRC_URI+=" verify-sig? ( https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2.sig )"
|
SRC_URI+=" verify-sig? ( https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2.sig )"
|
||||||
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
|
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
|
||||||
|
|
||||||
BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-elfutils-20240301 )"
|
BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-elfutils-20240301 )"
|
||||||
fi
|
fi
|
||||||
|
@ -22,7 +22,7 @@ INTROSPECTION_BUILD_DIR="${WORKDIR}/${INTROSPECTION_P}-build"
|
|||||||
|
|
||||||
LICENSE="LGPL-2.1+"
|
LICENSE="LGPL-2.1+"
|
||||||
SLOT="2"
|
SLOT="2"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
IUSE="dbus debug +elf doc +introspection +mime selinux static-libs sysprof systemtap test utils xattr"
|
IUSE="dbus debug +elf doc +introspection +mime selinux static-libs sysprof systemtap test utils xattr"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ HOMEPAGE="https://gi.readthedocs.io/"
|
|||||||
|
|
||||||
LICENSE="HPND"
|
LICENSE="HPND"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
|
||||||
RDEPEND="!<${CATEGORY}/${GNOME_ORG_MODULE}-${PV}"
|
RDEPEND="!<${CATEGORY}/${GNOME_ORG_MODULE}-${PV}"
|
||||||
# Use !<${PV} because mixing gobject-introspection with different version of -common can cause issues like:
|
# Use !<${PV} because mixing gobject-introspection with different version of -common can cause issues like:
|
||||||
|
@ -11,7 +11,7 @@ SRC_URI="https://github.com/akheron/jansson/releases/download/v${PV}/${P}.tar.bz
|
|||||||
|
|
||||||
LICENSE="MIT"
|
LICENSE="MIT"
|
||||||
SLOT="0/4"
|
SLOT="0/4"
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
|
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
|
||||||
IUSE="doc static-libs"
|
IUSE="doc static-libs"
|
||||||
|
|
||||||
BDEPEND="
|
BDEPEND="
|
||||||
|
25
sdk_container/src/third_party/portage-stable/dev-libs/json-c/files/0.18.0-cmake4.patch
vendored
Normal file
25
sdk_container/src/third_party/portage-stable/dev-libs/json-c/files/0.18.0-cmake4.patch
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
From: https://github.com/json-c/json-c/pull/888
|
||||||
|
Bug: https://bugs.gentoo.org/958972
|
||||||
|
|
||||||
|
From 42864e12b0d7af01b1cf989d6da9e9a4477775a1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rudi Heitbaum <rudi@heitbaum.com>
|
||||||
|
Date: Fri, 28 Mar 2025 23:14:48 +1100
|
||||||
|
Subject: [PATCH] Allow build with cmake 4.0.0
|
||||||
|
|
||||||
|
Update the min version to match parent CMakeLists.txt 3.9...3.12
|
||||||
|
---
|
||||||
|
apps/CMakeLists.txt | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt
|
||||||
|
index f7c9dec633..ef2271d131 100644
|
||||||
|
--- a/apps/CMakeLists.txt
|
||||||
|
+++ b/apps/CMakeLists.txt
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
|
||||||
|
-cmake_minimum_required(VERSION 2.8) # see ../CMakeLists.txt for why 2.8
|
||||||
|
+cmake_minimum_required(VERSION 3.9...3.12)
|
||||||
|
|
||||||
|
if(POLICY CMP0075)
|
||||||
|
cmake_policy(SET CMP0075 NEW)
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user