mirror of
https://github.com/flatcar/scripts.git
synced 2026-05-04 11:51:14 +02:00
Merge pull request #2364 from flatcar/buildbot/weekly-portage-stable-package-updates-2024-10-07
Weekly portage-stable package updates 2024-10-07
This commit is contained in:
commit
0549fa4b7c
@ -302,6 +302,7 @@ dev-python/flit-core
|
||||
dev-python/gentoo-common
|
||||
dev-python/gpep517
|
||||
dev-python/hatchling
|
||||
dev-python/hatch-vcs
|
||||
dev-python/idna
|
||||
dev-python/installer
|
||||
dev-python/jaraco-context
|
||||
@ -551,7 +552,7 @@ sec-policy/selinux-unconfined
|
||||
|
||||
sys-apps/acl
|
||||
sys-apps/attr
|
||||
sys-apps/azure-nvme-utils
|
||||
sys-apps/azure-vm-utils
|
||||
sys-apps/bubblewrap
|
||||
sys-apps/checkpolicy
|
||||
sys-apps/config-site
|
||||
|
||||
3
changelog/security/2024-10-15-weekly-updates.md
Normal file
3
changelog/security/2024-10-15-weekly-updates.md
Normal file
@ -0,0 +1,3 @@
|
||||
- curl ([CVE-2024-8096](https://nvd.nist.gov/vuln/detail/CVE-2024-8096))
|
||||
- libarchive ([CVE-2024-26256](https://nvd.nist.gov/vuln/detail/CVE-2024-26256), [CVE-2024-48957](https://nvd.nist.gov/vuln/detail/CVE-2024-48957), [CVE-2024-48958](https://nvd.nist.gov/vuln/detail/CVE-2024-48958))
|
||||
- openssh ([CVE-2024-39894](https://nvd.nist.gov/vuln/detail/CVE-2024-39894))
|
||||
41
changelog/updates/2024-10-15-weekly-updates.md
Normal file
41
changelog/updates/2024-10-15-weekly-updates.md
Normal file
@ -0,0 +1,41 @@
|
||||
- azure: chrony ([4.6](https://gitlab.com/chrony/chrony/-/blob/4.6/NEWS))
|
||||
- base, dev: azure-vm-utils ([0.3.0](https://github.com/Azure/azure-vm-utils/releases/tag/v0.3.0))
|
||||
- base, dev: binutils-config ([5.5.2](https://gitweb.gentoo.org/proj/binutils-config.git/log/?h=v5.5.2))
|
||||
- base, dev: btrfs-progs ([6.10.1](https://github.com/kdave/btrfs-progs/blob/v6.10.1/CHANGES#L26-L38) (includes [6.10](https://github.com/kdave/btrfs-progs/blob/v6.10/CHANGES)))
|
||||
- base, dev: c-ares ([1.33.1](https://github.com/c-ares/c-ares/releases/tag/v1.33.1) (includes [1.33.0](https://github.com/c-ares/c-ares/releases/tag/v1.33.0), [1.32.3](https://github.com/c-ares/c-ares/releases/tag/v1.32.3), [1.32.2](https://github.com/c-ares/c-ares/releases/tag/v1.32.2), [1.32.1](https://github.com/c-ares/c-ares/releases/tag/v1.32.1), [1.32.0](https://github.com/c-ares/c-ares/releases/tag/v1.32.0), [1.31.0](https://github.com/c-ares/c-ares/releases/tag/v1.31.0), [1.30.0](https://github.com/c-ares/c-ares/releases/tag/v1.30.0)))
|
||||
- base, dev: cracklib ([2.10.2](https://github.com/cracklib/cracklib/releases/tag/v2.10.2) (includes [2.10.1](https://github.com/cracklib/cracklib/releases/tag/v2.10.1), [2.10.0](https://github.com/cracklib/cracklib/releases/tag/v2.10.0)))
|
||||
- base, dev: cryptsetup ([2.7.5](https://gitlab.com/cryptsetup/cryptsetup/-/blob/v2.7.5/docs/v2.7.5-ReleaseNotes) (includes [2.7.4](https://gitlab.com/cryptsetup/cryptsetup/-/blob/v2.7.4/docs/v2.7.4-ReleaseNotes), [2.7.3](https://gitlab.com/cryptsetup/cryptsetup/-/blob/v2.7.3/docs/v2.7.3-ReleaseNotes)))
|
||||
- base, dev: curl ([8.10.1](https://curl.se/ch/8.10.1.html) (includes [8.10.0](https://curl.se/ch/8.10.0.html)))
|
||||
- base, dev: efivar ([39](https://github.com/rhboot/efivar/releases/tag/39))
|
||||
- base, dev: gettext ([0.22.5](https://savannah.gnu.org/news/?id=10597))
|
||||
- base, dev: git ([2.45.2](https://github.com/git/git/blob/v2.45.2/Documentation/RelNotes/2.45.2.txt) (includes [2.45.1](https://github.com/git/git/blob/v2.45.1/Documentation/RelNotes/2.45.1.txt), [2.45.0](https://github.com/git/git/blob/v2.45.0/Documentation/RelNotes/2.45.0.txt)))
|
||||
- base, dev: gnutls ([3.8.7.1](https://gitlab.com/gnutls/gnutls/-/blob/3.8.7/NEWS) (includes [3.8.6](https://gitlab.com/gnutls/gnutls/-/blob/3.8.6/NEWS)))
|
||||
- base, dev: gptfdisk ([1.0.10](https://sourceforge.net/p/gptfdisk/code/ci/53ac725a88a616b9f3395500d6e520aa04742fa5/tree/NEWS))
|
||||
- base, dev: intel-microcode ([20240910_p20240915](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/tag/microcode-20240910))
|
||||
- base, dev: kmod ([33](https://github.com/kmod-project/kmod/blob/v33/NEWS))
|
||||
- base, dev: libarchive ([3.7.6](https://github.com/libarchive/libarchive/releases/tag/v3.7.6) (includes [3.7.5](https://github.com/libarchive/libarchive/releases/tag/v3.7.5)))
|
||||
- base, dev: libassuan ([3.0.0](https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libassuan.git;a=blob;f=NEWS;h=48ece8b1cf8b81bdf835db00079ae247742cd398;hb=0351ecfa4f35ad44684075abec153574986b11bd))
|
||||
- base, dev: libgpg-error ([1.50](https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgpg-error.git;a=blob;f=NEWS;h=b865ecc7197a4f60b1530958fbb25a92bdfdc3de;hb=bb732615daad9bba9026354ae90f0f5292ea4908))
|
||||
- base, dev: libnl ([3.10.0](https://lists.infradead.org/pipermail/libnl/2024-July/002440.html))
|
||||
- base, dev: libnvme ([1.10](https://github.com/linux-nvme/libnvme/releases/tag/v1.10))
|
||||
- base, dev: liburing ([2.7](https://git.kernel.dk/cgit/liburing/tree/CHANGELOG?h=liburing-2.7) (includes [2.6](https://git.kernel.dk/cgit/liburing/tree/CHANGELOG?h=liburing-2.6), [2.5](https://git.kernel.dk/cgit/liburing/tree/CHANGELOG?h=liburing-2.5), [2.4](https://git.kernel.dk/cgit/liburing/tree/CHANGELOG?h=liburing-2.4)))
|
||||
- base, dev: nvme-cli ([2.10.2](https://github.com/linux-nvme/nvme-cli/releases/tag/v2.10.2) (includes [2.10.1](https://github.com/linux-nvme/nvme-cli/releases/tag/v2.10.1), [2.10](https://github.com/linux-nvme/nvme-cli/releases/tag/v2.10)))
|
||||
- base, dev: oniguruma ([6.9.9](https://github.com/kkos/oniguruma/releases/tag/v6.9.9))
|
||||
- base, dev: openssh ([9.8_p1](https://www.openssh.com/txt/release-9.8))
|
||||
- base, dev: pinentry ([1.3.1](https://git.gnupg.org/cgi-bin/gitweb.cgi?p=pinentry.git;a=blob;f=NEWS;h=a07d18953341a4eb65c9873e64c06bc7c642606d;hb=dd8894fa60c1f1c08ecc50ba4657580abc348347))
|
||||
- base, dev: pkgconf ([2.3.0](https://github.com/pkgconf/pkgconf/blob/pkgconf-2.3.0/NEWS))
|
||||
- base, dev: sqlite ([3.46.1](https://www.sqlite.org/releaselog/3_46_1.html))
|
||||
- base, dev: tcpdump ([4.99.5](https://github.com/the-tcpdump-group/tcpdump/blob/tcpdump-4.99.5/CHANGES))
|
||||
- base, dev: userspace-rcu ([0.14.1](https://lists.lttng.org/pipermail/lttng-dev/2024-August/030860.html))
|
||||
- dev: gnuconfig ([20240728](https://git.savannah.gnu.org/cgit/config.git/log/?id=00b15927496058d23e6258a28d8996f87cf1f191))
|
||||
- dev: iperf ([3.17.1](https://github.com/esnet/iperf/releases/tag/3.17.1) (includes [3.17](https://github.com/esnet/iperf/releases/tag/3.17)))
|
||||
- dev: libpipeline ([1.5.8](https://gitlab.com/libpipeline/libpipeline/-/blob/dd37cf76496b4b999509bd133657c1fc021e3a5f/NEWS.md))
|
||||
- dev: man-db ([2.13.0](https://gitlab.com/man-db/man-db/-/releases/2.13.0))
|
||||
- sysext-python: idna ([3.10](https://github.com/kjd/idna/blob/v3.10/HISTORY.rst))
|
||||
- sysext-python: more-itertools ([10.5.0](https://github.com/more-itertools/more-itertools/blob/v10.5.0/docs/versions.rst#1050))
|
||||
- sysext-python: msgpack ([1.1.0](https://github.com/msgpack/msgpack-python/blob/v1.1.0/ChangeLog.rst#110))
|
||||
- sysext-python: platformdirs ([4.3.6](https://github.com/tox-dev/platformdirs/releases/tag/4.3.6))
|
||||
- sysext-python: rich ([13.8.1](https://github.com/Textualize/rich/releases/tag/v13.8.1))
|
||||
- sysext-python: trove-classifiers ([2024.9.12](https://github.com/pypa/trove-classifiers/releases/tag/2024.9.12))
|
||||
- sysext-python: urllib3 ([2.2.3](https://github.com/urllib3/urllib3/releases/tag/2.2.3))
|
||||
- vmware: xmlsec ([1.3.4](https://github.com/lsh123/xmlsec/releases/tag/1.3.4))
|
||||
@ -153,7 +153,7 @@ RDEPEND="${RDEPEND}
|
||||
sec-policy/selinux-unconfined
|
||||
sys-apps/acl
|
||||
sys-apps/attr
|
||||
sys-apps/azure-nvme-utils
|
||||
sys-apps/azure-vm-utils
|
||||
sys-apps/coreutils
|
||||
sys-apps/checkpolicy
|
||||
sys-apps/dbus
|
||||
|
||||
@ -10,9 +10,3 @@ cros_post_src_install_tmpfiles() {
|
||||
After=systemd-tmpfiles-setup.service
|
||||
EOF
|
||||
}
|
||||
|
||||
# Masking initiatorname.iscsi.example prevents initiatorname.iscsi from being
|
||||
# generated and installed. We want the systemd unit to do this at runtime so
|
||||
# that we don't bake the value into Flatcar images.
|
||||
INSTALL_MASK+=" ${EPREFIX}/etc/iscsi/initiatorname.iscsi*"
|
||||
PKG_INSTALL_MASK+=" ${EPREFIX}/etc/iscsi/initiatorname.iscsi*"
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# Bump the flatcar version stated here every time we or Gentoo change patches
|
||||
# that modify parts of GRUB that are installed to the boot partition. Reset the
|
||||
# version back to 1 when the upstream GRUB version changes.
|
||||
FLATCAR_VERSION=flatcar1
|
||||
FLATCAR_VERSION=flatcar2
|
||||
|
||||
# Adjust the version string for Flatcar. This propagates throughout the source.
|
||||
cros_pre_src_prepare_adjust_version() {
|
||||
|
||||
@ -1,28 +0,0 @@
|
||||
From dd76e415b2a707d31a125201c5d21aadb07282a7 Mon Sep 17 00:00:00 2001
|
||||
From: James Le Cuirot <chewi@gentoo.org>
|
||||
Date: Tue, 11 Jun 2024 15:39:25 +0100
|
||||
Subject: [PATCH] ebuild.profiles: Fix case where a parent path omits the repo
|
||||
identifier
|
||||
|
||||
According "SPECIFIC FILE DESCRIPTIONS" in `man portage`, it is valid to
|
||||
have a parent path like `:path/to/profile` where the repo identifier is
|
||||
missing. This refers to a path in the current repo.
|
||||
|
||||
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
|
||||
---
|
||||
src/pkgcore/ebuild/profiles.py | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/pkgcore/ebuild/profiles.py b/src/pkgcore/ebuild/profiles.py
|
||||
index 384e41e22..fea1eacc7 100644
|
||||
--- a/src/pkgcore/ebuild/profiles.py
|
||||
+++ b/src/pkgcore/ebuild/profiles.py
|
||||
@@ -254,6 +254,8 @@ def parent_paths(self, data):
|
||||
f"unknown repo {repo_id!r}"
|
||||
)
|
||||
continue
|
||||
+ else:
|
||||
+ location = repo_config.location
|
||||
l.append(
|
||||
(
|
||||
abspath(pjoin(location, "profiles", profile_path)),
|
||||
@ -1,2 +0,0 @@
|
||||
The `0001-build-profiles-patch.patch` patch can be dropped when we
|
||||
update sys-apps/pkgcore to version greater than `0.12.27`.
|
||||
@ -1,37 +0,0 @@
|
||||
From ca48d3964d26f5e3b38d73655f19b1836b16bd2d Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Kanavin <alex@linutronix.de>
|
||||
Date: Tue, 18 Jan 2022 11:53:41 +0100
|
||||
Subject: [PATCH] src/Makefile: build util.c separately for makeguids
|
||||
|
||||
util.c needs to be built twice when cross-compiling:
|
||||
for the build machine to be able to link with
|
||||
makeguids which then runs during the same build,
|
||||
and then for the actual target.
|
||||
|
||||
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
|
||||
---
|
||||
src/Makefile | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/Makefile b/src/Makefile
|
||||
index 0e423c4..a86abdc 100644
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -27,10 +27,13 @@ EFIVAR_OBJECTS = $(patsubst %.S,%.o,$(pa
|
||||
EFISECDB_SOURCES = efisecdb.c guid-symbols.c secdb-dump.c util.c
|
||||
EFISECDB_OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(EFISECDB_SOURCES)))
|
||||
GENERATED_SOURCES = include/efivar/efivar-guids.h guid-symbols.c
|
||||
-MAKEGUIDS_SOURCES = makeguids.c util.c
|
||||
+MAKEGUIDS_SOURCES = makeguids.c util-makeguids.c
|
||||
MAKEGUIDS_OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(MAKEGUIDS_SOURCES)))
|
||||
MAKEGUIDS_OUTPUT = $(GENERATED_SOURCES)
|
||||
|
||||
+util-makeguids.c : util.c
|
||||
+ cp util.c util-makeguids.c
|
||||
+
|
||||
ALL_SOURCES=$(LIBEFISEC_SOURCES) $(LIBEFIBOOT_SOURCES) $(LIBEFIVAR_SOURCES) \
|
||||
$(MAKEGUIDS_SOURCES) $(GENERATED_SOURCES) $(EFIVAR_SOURCES) \
|
||||
$(sort $(wildcard include/efivar/*.h))
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@ -1,4 +0,0 @@
|
||||
The `0001-src-Makefile-build-util.c-separately-for-makeguids.patch`
|
||||
patch fixes a cross-compilation issue. We will ask Gentoo to include
|
||||
this patch too in their ebuild. Currently there is no release of
|
||||
efivar that has this patch.
|
||||
@ -13,6 +13,10 @@
|
||||
# Keep versions on both arches in sync.
|
||||
=app-containers/cri-tools-1.27.0 ~arm64
|
||||
|
||||
# Accept unstable for Docker and its CLI.
|
||||
=app-containers/docker-27.2.1 ~amd64 ~arm64
|
||||
=app-containers/docker-cli-27.2.1 ~amd64 ~arm64
|
||||
|
||||
# Needed to address CVE-2024-3727
|
||||
=app-containers/podman-5.0.3 ~amd64 ~arm64
|
||||
|
||||
@ -34,33 +38,45 @@
|
||||
# Needed by arm64-native SDK.
|
||||
=app-crypt/efitools-1.9.2-r1 ~arm64
|
||||
|
||||
# Keep versions on both arches in sync.
|
||||
=app-crypt/gnupg-2.4.5-r2 ~arm64
|
||||
=app-crypt/pinentry-1.3.1 ~arm64
|
||||
|
||||
# Needed by arm64-native SDK.
|
||||
=app-emulation/open-vmdk-1.0 *
|
||||
|
||||
# Keep versions on both arches in sync.
|
||||
=app-portage/elt-patches-20240912
|
||||
=app-shells/bash-5.2_p37 ~arm64
|
||||
=dev-build/ninja-1.12.1 ~arm64
|
||||
=dev-cpp/abseil-cpp-20230125.3-r4 ~arm64
|
||||
|
||||
# Keep versions on both arches in sync.
|
||||
=dev-cpp/glog-0.6.0 ~arm64
|
||||
=dev-lang/perl-5.40.0 ~arm64
|
||||
|
||||
# Needed by arm64-native SDK.
|
||||
=dev-db/sqlite-3.46.1 ~arm64
|
||||
=dev-lang/tcl-8.6.14 ~arm64
|
||||
=dev-lang/yasm-1.3.0-r1 ~arm64
|
||||
|
||||
# Keep versions on both arches in sync.
|
||||
=dev-libs/ding-libs-0.6.2-r1 ~arm64
|
||||
|
||||
# The only available ebuild (from GURU) has ~amd64 and no keyword for arm64 yet.
|
||||
=dev-libs/jose-12 **
|
||||
|
||||
# Keep versions on both arches in sync.
|
||||
=dev-libs/libassuan-3.0.0 ~arm64
|
||||
=dev-libs/libgpg-error-1.50 ~arm64
|
||||
=dev-libs/libnl-3.10.0 ~arm64
|
||||
|
||||
# The only available ebuild (from GURU) has ~amd64 and no keyword for arm64 yet.
|
||||
=dev-libs/luksmeta-9-r1 **
|
||||
|
||||
# Keep versions on both arches in sync.
|
||||
=dev-libs/userspace-rcu-0.14.1 ~arm64
|
||||
|
||||
# These seem to be the versions we initially got, but the
|
||||
# modifications made to the ebuilds were clobbered, so these are here
|
||||
# to keep using the same version. Can be dropped when these or newer
|
||||
# get stabilized in Gentoo.
|
||||
=dev-libs/yajl-2.1.0-r5 ~amd64 ~arm64
|
||||
=dev-libs/yajl-2.1.0-r5 ~arm64
|
||||
|
||||
# Keep versions on both arches in sync.
|
||||
=dev-util/bpftool-7.5.0-r1 ~arm64
|
||||
@ -68,32 +84,47 @@
|
||||
# Catalyst 4 is not stable yet, but earlier versions are masked now.
|
||||
dev-util/catalyst ~amd64 ~arm64
|
||||
|
||||
# Keep versions on both arches in sync.
|
||||
=dev-util/pkgconf-2.3.0 ~arm64
|
||||
|
||||
# Needed for the MIT License
|
||||
=net-analyzer/netperf-2.7.0_p20210121 ~amd64 ~arm64
|
||||
|
||||
# Keep versions on both arches in sync.
|
||||
=net-analyzer/tcpdump-4.99.5 ~arm64
|
||||
=net-dns/c-ares-1.33.1 ~arm64
|
||||
=net-firewall/conntrack-tools-1.4.8 ~arm64
|
||||
|
||||
# Required for addressing CVE-2023-0361, CVE-2023-5981, CVE-2024-0567,
|
||||
# CVE-2024-0553, CVE-2024-28834 and CVE-2024-28835.
|
||||
=net-libs/gnutls-3.8.5-r1 ~amd64 ~arm64
|
||||
|
||||
# Keep versions on both arches in sync.
|
||||
=net-firewall/ipset-7.22-r2 ~arm64
|
||||
=net-libs/gnutls-3.8.7.1-r1 ~arm64
|
||||
=net-libs/libnetfilter_cthelper-1.0.1-r1 ~arm64
|
||||
=net-libs/libnetfilter_cttimeout-1.0.1 ~arm64
|
||||
|
||||
# Needed to address CVE-2023-7256 and CVE-2024-8006.
|
||||
=net-libs/libpcap-1.10.5 ~amd64 ~arm64
|
||||
|
||||
# Needed to address CVE-2024-6197, CVE-2024-6874 and CVE-2024-7264.
|
||||
=net-misc/curl-8.9.1-r1 ~amd64 ~arm64
|
||||
|
||||
# Package has not been stabilised yet.
|
||||
=sys-apps/azure-nvme-utils-0.2.0 ~amd64 ~arm64
|
||||
=net-libs/libpcap-1.10.5 ~arm64
|
||||
|
||||
# Keep versions on both arches in sync.
|
||||
=net-misc/chrony-4.6 ~arm64
|
||||
|
||||
# Needed to address CVE-2024-6197, CVE-2024-6874, CVE-2024-7264 and
|
||||
# CVE-2024-8096.
|
||||
=net-misc/curl-8.10.1 ~amd64 ~arm64
|
||||
|
||||
# Keep versions on both arches in sync.
|
||||
=net-misc/iperf-3.17.1 ~arm64
|
||||
=net-misc/openssh-9.8_p1-r2 ~arm64
|
||||
|
||||
# Package has not been stabilised yet.
|
||||
=sys-apps/azure-vm-utils-0.3.0 ~amd64 ~arm64
|
||||
|
||||
# Keep versions on both arches in sync.
|
||||
=sys-apps/bubblewrap-0.10.0 ~arm64
|
||||
=sys-apps/dtc-1.7.1 ~arm64
|
||||
=sys-apps/kexec-tools-2.0.28 ~arm64
|
||||
=sys-apps/kmod-33 ~arm64
|
||||
=sys-apps/man-db-2.13.0 ~arm64
|
||||
=sys-apps/nvme-cli-2.10.2 ~arm64
|
||||
=sys-apps/zram-generator-1.1.2 ~arm64
|
||||
=sys-block/open-iscsi-2.1.10-r1 ~arm64
|
||||
|
||||
# Upgrade to latest version for secureboot
|
||||
=sys-boot/mokutil-0.6.0 ~amd64
|
||||
@ -102,14 +133,11 @@ dev-util/catalyst ~amd64 ~arm64
|
||||
=sys-cluster/ipvsadm-1.31-r1 ~arm64
|
||||
|
||||
# Keep versions on both arches in sync.
|
||||
=sys-devel/binutils-config-5.5.2 ~arm64
|
||||
=sys-devel/gettext-0.22.5 ~arm64
|
||||
=sys-fs/btrfs-progs-6.10.1 ~arm64
|
||||
=sys-fs/quota-4.09-r1 ~arm64
|
||||
=sys-libs/cracklib-2.10.2 ~arm64
|
||||
=sys-libs/efivar-39-r1 ~arm64
|
||||
=sys-libs/readline-8.2_p13 ~arm64
|
||||
=sys-process/audit-4.0.1-r1 ~arm64
|
||||
=virtual/perl-Data-Dumper-2.189.0 ~arm64
|
||||
=virtual/perl-Encode-3.210.0-r1 ~arm64
|
||||
=virtual/perl-Getopt-Long-2.570.0-r1 ~arm64
|
||||
=virtual/perl-Exporter-5.780.0 ~arm64
|
||||
=virtual/perl-File-Spec-3.900.0 ~arm64
|
||||
=virtual/perl-IO-1.550.0 ~arm64
|
||||
|
||||
# Accept unstable for Docker and its CLI.
|
||||
=app-containers/docker-27.2.1 ~amd64 ~arm64
|
||||
=app-containers/docker-cli-27.2.1 ~amd64 ~arm64
|
||||
|
||||
@ -13,7 +13,8 @@ dev-vcs/git webdav curl
|
||||
|
||||
# Mask support for http3 for now (unavailable on arm64 for now, and
|
||||
# I'm not sure we really need it.)
|
||||
net-misc/curl kerberos telnet -http3 -quic -curl_quic_openssl
|
||||
# Disable websockets, we never had them, and now they are enabled by default.
|
||||
net-misc/curl kerberos telnet -http3 -quic -curl_quic_openssl -websockets
|
||||
net-misc/iputils arping tracepath
|
||||
sys-devel/gettext -git
|
||||
|
||||
@ -39,7 +40,7 @@ net-firewall/ipset -modules
|
||||
dev-libs/glib -mime
|
||||
|
||||
# keep grub build simple
|
||||
sys-boot/grub -multislot -themes -fonts
|
||||
sys-boot/grub -multislot -themes -fonts -device-mapper
|
||||
|
||||
# disable "high performance ssh" patch, turn on kerberos
|
||||
net-misc/openssh -hpn kerberos
|
||||
@ -95,8 +96,8 @@ sys-kernel/coreos-firmware -savedconfig
|
||||
# Make kmod support kernel modules compressed via lzma(xz)
|
||||
sys-apps/kmod lzma
|
||||
|
||||
# These (qmanifest and qtegrity) are new tools and they pull even more dependencies.
|
||||
app-portage/portage-utils -qmanifest -qtegrity
|
||||
# The qmanifest is a new tool and it pulls even more dependencies.
|
||||
app-portage/portage-utils -qmanifest
|
||||
|
||||
# Disable unnecessary regedit in samba to minimize the package size.
|
||||
net-fs/samba -regedit
|
||||
|
||||
@ -13,7 +13,7 @@ if [[ "${PV}" == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://github.com/gentoo-perl/perl-cleaner.git"
|
||||
else
|
||||
SRC_URI="https://dev.gentoo.org/~dilfridge/distfiles/${P}.tar.bz2"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-2"
|
||||
|
||||
@ -1,2 +1,6 @@
|
||||
DIST libarchive-3.7.4.tar.xz 5417660 BLAKE2B 128f72235da61e112201046c0cfe62a8c580cf73b426c4cfe270ae913356f6ad430ba33a663dcd617b082c7baf45ada8d1c9928c45fea16fd57e8020693a60bc SHA512 84bc346ba15861ab10aa54a3d687de955178e4efbe12bf3a49a467181e7f819673949f131f4c8338de8ed6e319a8565af376e5a540380bda08e60dffbc7c8686
|
||||
DIST libarchive-3.7.4.tar.xz.asc 659 BLAKE2B 77e705194f6e9a9f97da0ac43c9b3157e1a8a490d26da34079e4ef3f2bcf98d6f6e95567e110287fab0ec26d3fc27e5bbeff7569c9ca138de2caf47af737c6d0 SHA512 82caa18a78661ea717ce93cdcb0806eed48450c20fb4d45cb4c33001f2d4d0fb5a791552acbb24ad8c41772e1d0b66c76c9cb86946bc862109721a0c986f5331
|
||||
DIST libarchive-3.7.5.tar.xz 5437940 BLAKE2B e1cf8490b2db64e912bd181391310653b4e3524e74f35557e1ddb8c5eb53dcde307da945d393921acf7549ef0d4a6bf228d8f42ab4d795d06dd2248196a11c85 SHA512 b9cfb0a147bf0f77cca9e2bdea173f47a78dcba5df1d97a8e0e7b14a15039ac6d5467e325423b2a05741848f73ca7ab4fece922153f24f934f9370cb521d20df
|
||||
DIST libarchive-3.7.5.tar.xz.asc 659 BLAKE2B 7310b8d7e3f07b8c75910ff3355ffda653402ca2d6db9cdf7d669b9a4ac5f3fb4c4c4482e85184fd68a23c96bce587a95b56efb88ae971399e130e533bd0969a SHA512 7494518b61a58a9aa1e991a2cf6b16340e34d7aa2c25a3c531799785e165541781d1a915437260bc536fe8267140cc69abb2670e8c0576e975a5a2b7ecf8e20d
|
||||
DIST libarchive-3.7.6.tar.xz 5458552 BLAKE2B 3251dc4d59867d1c9b43e78ac7735c27670e819a1aba4f4a76372b8509e2427ff24e379f6102a4cc3c92b965d182c8939bb6df4c82d4d1141cdd1db13bf039a2 SHA512 3ca90d665772418b9ac444044511989e81e785a13db3c101851390ba7c2ba0793c799cedb9df990e900ab78c98207f70ecee7e21829578555dde99424950ae2a
|
||||
DIST libarchive-3.7.6.tar.xz.asc 659 BLAKE2B 9f6a621dd4aa20f06dff71225723e60a6cee1f2a54ff07d2d19670153105f2f75d6439320f49eb46c28a4416828af7dc4f0d827e46ec9aeb5b703f06eb329d77 SHA512 2840b13f910f47d34daeed9680beb4b3cdde2d7de26ab8453756261c51fb7a39b727454f370b0ee60f8e1646c65544331a22558cbe8faf79a201b1d1346b37c1
|
||||
|
||||
@ -0,0 +1,28 @@
|
||||
From 44b8e3b676746352cb3e08f76e58510c78209091 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
|
||||
Date: Wed, 18 Sep 2024 14:10:58 +0200
|
||||
Subject: [PATCH] tar/write.c: Support `sys/xattr.h`
|
||||
|
||||
Synchronize the last use of `attr/xattr.h` to support using
|
||||
`sys/xattr.h` instead. The former header is deprecated on GNU/Linux,
|
||||
and this replacement makes it possible to build libarchive without
|
||||
the `attr` package.
|
||||
---
|
||||
tar/write.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tar/write.c b/tar/write.c
|
||||
index 1d1139f4c..43cd70233 100644
|
||||
--- a/tar/write.c
|
||||
+++ b/tar/write.c
|
||||
@@ -32,7 +32,9 @@
|
||||
#ifdef HAVE_SYS_STAT_H
|
||||
#include <sys/stat.h>
|
||||
#endif
|
||||
-#ifdef HAVE_ATTR_XATTR_H
|
||||
+#if HAVE_SYS_XATTR_H
|
||||
+#include <sys/xattr.h>
|
||||
+#elif HAVE_ATTR_XATTR_H
|
||||
#include <attr/xattr.h>
|
||||
#endif
|
||||
#ifdef HAVE_ERRNO_H
|
||||
@ -0,0 +1,334 @@
|
||||
From b65d12b344a5d81c6060b1c1794afa8858fe234b Mon Sep 17 00:00:00 2001
|
||||
From: Tim Kientzle <kientzle@acm.org>
|
||||
Date: Sat, 14 Sep 2024 21:09:34 -0700
|
||||
Subject: [PATCH] Be more cautious about parsing ISO-9660 timestamps
|
||||
|
||||
Some ISO images don't have valid timestamps for the root directory
|
||||
entry. Parsing such timestamps can generate nonsensical results,
|
||||
which in one case showed up as an unexpected overflow on a 32-bit system.
|
||||
|
||||
Add some validation logic that can check whether a 7-byte or 17-byte
|
||||
timestamp is reasonable-looking, and use this to ignore invalid
|
||||
timestamps in various locations. This also requires us to be a little
|
||||
more careful about tracking which timestamps are actually known.
|
||||
|
||||
Resolves issue #2329
|
||||
---
|
||||
.../archive_read_support_format_iso9660.c | 186 ++++++++++++++++--
|
||||
libarchive/test/test_read_format_iso_Z.c | 12 +-
|
||||
2 files changed, 177 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/libarchive/archive_read_support_format_iso9660.c b/libarchive/archive_read_support_format_iso9660.c
|
||||
index 056beb5ff..951afb603 100644
|
||||
--- a/libarchive/archive_read_support_format_iso9660.c
|
||||
+++ b/libarchive/archive_read_support_format_iso9660.c
|
||||
@@ -273,7 +273,7 @@ struct file_info {
|
||||
char re; /* Having RRIP "RE" extension. */
|
||||
char re_descendant;
|
||||
uint64_t cl_offset; /* Having RRIP "CL" extension. */
|
||||
- int birthtime_is_set;
|
||||
+ int time_is_set; /* Bitmask indicating which times are known */
|
||||
time_t birthtime; /* File created time. */
|
||||
time_t mtime; /* File last modified time. */
|
||||
time_t atime; /* File last accessed time. */
|
||||
@@ -306,6 +306,11 @@ struct file_info {
|
||||
} rede_files;
|
||||
};
|
||||
|
||||
+#define BIRTHTIME_IS_SET 1
|
||||
+#define MTIME_IS_SET 2
|
||||
+#define ATIME_IS_SET 4
|
||||
+#define CTIME_IS_SET 8
|
||||
+
|
||||
struct heap_queue {
|
||||
struct file_info **files;
|
||||
int allocated;
|
||||
@@ -394,7 +399,9 @@ static void dump_isodirrec(FILE *, const unsigned char *isodirrec);
|
||||
#endif
|
||||
static time_t time_from_tm(struct tm *);
|
||||
static time_t isodate17(const unsigned char *);
|
||||
+static int isodate17_valid(const unsigned char *);
|
||||
static time_t isodate7(const unsigned char *);
|
||||
+static int isodate7_valid(const unsigned char *);
|
||||
static int isBootRecord(struct iso9660 *, const unsigned char *);
|
||||
static int isVolumePartition(struct iso9660 *, const unsigned char *);
|
||||
static int isVDSetTerminator(struct iso9660 *, const unsigned char *);
|
||||
@@ -1351,13 +1358,22 @@ archive_read_format_iso9660_read_header(struct archive_read *a,
|
||||
archive_entry_set_uid(entry, file->uid);
|
||||
archive_entry_set_gid(entry, file->gid);
|
||||
archive_entry_set_nlink(entry, file->nlinks);
|
||||
- if (file->birthtime_is_set)
|
||||
+ if ((file->time_is_set & BIRTHTIME_IS_SET))
|
||||
archive_entry_set_birthtime(entry, file->birthtime, 0);
|
||||
else
|
||||
archive_entry_unset_birthtime(entry);
|
||||
- archive_entry_set_mtime(entry, file->mtime, 0);
|
||||
- archive_entry_set_ctime(entry, file->ctime, 0);
|
||||
- archive_entry_set_atime(entry, file->atime, 0);
|
||||
+ if ((file->time_is_set & MTIME_IS_SET))
|
||||
+ archive_entry_set_mtime(entry, file->mtime, 0);
|
||||
+ else
|
||||
+ archive_entry_unset_mtime(entry);
|
||||
+ if ((file->time_is_set & CTIME_IS_SET))
|
||||
+ archive_entry_set_ctime(entry, file->ctime, 0);
|
||||
+ else
|
||||
+ archive_entry_unset_ctime(entry);
|
||||
+ if ((file->time_is_set & ATIME_IS_SET))
|
||||
+ archive_entry_set_atime(entry, file->atime, 0);
|
||||
+ else
|
||||
+ archive_entry_unset_atime(entry);
|
||||
/* N.B.: Rock Ridge supports 64-bit device numbers. */
|
||||
archive_entry_set_rdev(entry, (dev_t)file->rdev);
|
||||
archive_entry_set_size(entry, iso9660->entry_bytes_remaining);
|
||||
@@ -1898,8 +1914,11 @@ parse_file_info(struct archive_read *a, struct file_info *parent,
|
||||
file->parent = parent;
|
||||
file->offset = offset;
|
||||
file->size = fsize;
|
||||
- file->mtime = isodate7(isodirrec + DR_date_offset);
|
||||
- file->ctime = file->atime = file->mtime;
|
||||
+ if (isodate7_valid(isodirrec + DR_date_offset)) {
|
||||
+ file->time_is_set |= MTIME_IS_SET | ATIME_IS_SET | CTIME_IS_SET;
|
||||
+ file->mtime = isodate7(isodirrec + DR_date_offset);
|
||||
+ file->ctime = file->atime = file->mtime;
|
||||
+ }
|
||||
file->rede_files.first = NULL;
|
||||
file->rede_files.last = &(file->rede_files.first);
|
||||
|
||||
@@ -2573,51 +2592,73 @@ parse_rockridge_TF1(struct file_info *file, const unsigned char *data,
|
||||
/* Use 17-byte time format. */
|
||||
if ((flag & 1) && data_length >= 17) {
|
||||
/* Create time. */
|
||||
- file->birthtime_is_set = 1;
|
||||
- file->birthtime = isodate17(data);
|
||||
+ if (isodate17_valid(data)) {
|
||||
+ file->time_is_set |= BIRTHTIME_IS_SET;
|
||||
+ file->birthtime = isodate17(data);
|
||||
+ }
|
||||
data += 17;
|
||||
data_length -= 17;
|
||||
}
|
||||
if ((flag & 2) && data_length >= 17) {
|
||||
/* Modify time. */
|
||||
- file->mtime = isodate17(data);
|
||||
+ if (isodate17_valid(data)) {
|
||||
+ file->time_is_set |= MTIME_IS_SET;
|
||||
+ file->mtime = isodate17(data);
|
||||
+ }
|
||||
data += 17;
|
||||
data_length -= 17;
|
||||
}
|
||||
if ((flag & 4) && data_length >= 17) {
|
||||
/* Access time. */
|
||||
- file->atime = isodate17(data);
|
||||
+ if (isodate17_valid(data)) {
|
||||
+ file->time_is_set |= ATIME_IS_SET;
|
||||
+ file->atime = isodate17(data);
|
||||
+ }
|
||||
data += 17;
|
||||
data_length -= 17;
|
||||
}
|
||||
if ((flag & 8) && data_length >= 17) {
|
||||
/* Attribute change time. */
|
||||
- file->ctime = isodate17(data);
|
||||
+ if (isodate17_valid(data)) {
|
||||
+ file->time_is_set |= CTIME_IS_SET;
|
||||
+ file->ctime = isodate17(data);
|
||||
+ }
|
||||
}
|
||||
} else {
|
||||
/* Use 7-byte time format. */
|
||||
if ((flag & 1) && data_length >= 7) {
|
||||
/* Create time. */
|
||||
- file->birthtime_is_set = 1;
|
||||
- file->birthtime = isodate7(data);
|
||||
+ if (isodate7_valid(data)) {
|
||||
+ file->time_is_set |= BIRTHTIME_IS_SET;
|
||||
+ file->birthtime = isodate7(data);
|
||||
+ }
|
||||
data += 7;
|
||||
data_length -= 7;
|
||||
}
|
||||
if ((flag & 2) && data_length >= 7) {
|
||||
/* Modify time. */
|
||||
- file->mtime = isodate7(data);
|
||||
+ if (isodate7_valid(data)) {
|
||||
+ file->time_is_set |= MTIME_IS_SET;
|
||||
+ file->mtime = isodate7(data);
|
||||
+ }
|
||||
data += 7;
|
||||
data_length -= 7;
|
||||
}
|
||||
if ((flag & 4) && data_length >= 7) {
|
||||
/* Access time. */
|
||||
- file->atime = isodate7(data);
|
||||
+ if (isodate7_valid(data)) {
|
||||
+ file->time_is_set |= ATIME_IS_SET;
|
||||
+ file->atime = isodate7(data);
|
||||
+ }
|
||||
data += 7;
|
||||
data_length -= 7;
|
||||
}
|
||||
if ((flag & 8) && data_length >= 7) {
|
||||
/* Attribute change time. */
|
||||
- file->ctime = isodate7(data);
|
||||
+ if (isodate7_valid(data)) {
|
||||
+ file->time_is_set |= CTIME_IS_SET;
|
||||
+ file->ctime = isodate7(data);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3226,6 +3267,56 @@ isValid733Integer(const unsigned char *p)
|
||||
&& p[3] == p[4]);
|
||||
}
|
||||
|
||||
+static int
|
||||
+isodate7_valid(const unsigned char *v)
|
||||
+{
|
||||
+ int year = v[0];
|
||||
+ int month = v[1];
|
||||
+ int day = v[2];
|
||||
+ int hour = v[3];
|
||||
+ int minute = v[4];
|
||||
+ int second = v[5];
|
||||
+ int gmt_off = (signed char)v[6];
|
||||
+
|
||||
+ /* ECMA-119 9.1.5 "If all seven values are zero, it shall mean
|
||||
+ * that the date is unspecified" */
|
||||
+ if (year == 0
|
||||
+ && month == 0
|
||||
+ && day == 0
|
||||
+ && hour == 0
|
||||
+ && minute == 0
|
||||
+ && second == 0
|
||||
+ && gmt_off == 0)
|
||||
+ return 0;
|
||||
+ /*
|
||||
+ * Sanity-test each individual field
|
||||
+ */
|
||||
+ /* Year can have any value */
|
||||
+ /* Month must be 1-12 */
|
||||
+ if (month < 1 || month > 12)
|
||||
+ return 0;
|
||||
+ /* Day must be 1-31 */
|
||||
+ if (day < 1 || day > 31)
|
||||
+ return 0;
|
||||
+ /* Hour must be 0-23 */
|
||||
+ if (hour > 23)
|
||||
+ return 0;
|
||||
+ /* Minute must be 0-59 */
|
||||
+ if (minute > 59)
|
||||
+ return 0;
|
||||
+ /* second must be 0-59 according to ECMA-119 9.1.5 */
|
||||
+ /* BUT: we should probably allow for the time being in UTC, which
|
||||
+ allows up to 61 seconds in a minute in certain cases */
|
||||
+ if (second > 61)
|
||||
+ return 0;
|
||||
+ /* Offset from GMT must be -48 to +52 */
|
||||
+ if (gmt_off < -48 || gmt_off > +52)
|
||||
+ return 0;
|
||||
+
|
||||
+ /* All tests pass, this is OK */
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
static time_t
|
||||
isodate7(const unsigned char *v)
|
||||
{
|
||||
@@ -3252,6 +3343,67 @@ isodate7(const unsigned char *v)
|
||||
return (t);
|
||||
}
|
||||
|
||||
+static int
|
||||
+isodate17_valid(const unsigned char *v)
|
||||
+{
|
||||
+ /* First 16 bytes are all ASCII digits */
|
||||
+ for (int i = 0; i < 16; i++) {
|
||||
+ if (v[i] < '0' || v[i] > '9')
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ int year = (v[0] - '0') * 1000 + (v[1] - '0') * 100
|
||||
+ + (v[2] - '0') * 10 + (v[3] - '0');
|
||||
+ int month = (v[4] - '0') * 10 + (v[5] - '0');
|
||||
+ int day = (v[6] - '0') * 10 + (v[7] - '0');
|
||||
+ int hour = (v[8] - '0') * 10 + (v[9] - '0');
|
||||
+ int minute = (v[10] - '0') * 10 + (v[11] - '0');
|
||||
+ int second = (v[12] - '0') * 10 + (v[13] - '0');
|
||||
+ int hundredths = (v[14] - '0') * 10 + (v[15] - '0');
|
||||
+ int gmt_off = (signed char)v[16];
|
||||
+
|
||||
+ if (year == 0 && month == 0 && day == 0
|
||||
+ && hour == 0 && minute == 0 && second == 0
|
||||
+ && hundredths == 0 && gmt_off == 0)
|
||||
+ return 0;
|
||||
+ /*
|
||||
+ * Sanity-test each individual field
|
||||
+ */
|
||||
+
|
||||
+ /* Year must be 1900-2300 */
|
||||
+ /* (Not specified in ECMA-119, but these seem
|
||||
+ like reasonable limits. */
|
||||
+ if (year < 1900 || year > 2300)
|
||||
+ return 0;
|
||||
+ /* Month must be 1-12 */
|
||||
+ if (month < 1 || month > 12)
|
||||
+ return 0;
|
||||
+ /* Day must be 1-31 */
|
||||
+ if (day < 1 || day > 31)
|
||||
+ return 0;
|
||||
+ /* Hour must be 0-23 */
|
||||
+ if (hour > 23)
|
||||
+ return 0;
|
||||
+ /* Minute must be 0-59 */
|
||||
+ if (minute > 59)
|
||||
+ return 0;
|
||||
+ /* second must be 0-59 according to ECMA-119 9.1.5 */
|
||||
+ /* BUT: we should probably allow for the time being in UTC, which
|
||||
+ allows up to 61 seconds in a minute in certain cases */
|
||||
+ if (second > 61)
|
||||
+ return 0;
|
||||
+ /* Hundredths must be 0-99 */
|
||||
+ if (hundredths > 99)
|
||||
+ return 0;
|
||||
+ /* Offset from GMT must be -48 to +52 */
|
||||
+ if (gmt_off < -48 || gmt_off > +52)
|
||||
+ return 0;
|
||||
+
|
||||
+ /* All tests pass, this is OK */
|
||||
+ return 1;
|
||||
+
|
||||
+}
|
||||
+
|
||||
static time_t
|
||||
isodate17(const unsigned char *v)
|
||||
{
|
||||
diff --git a/libarchive/test/test_read_format_iso_Z.c b/libarchive/test/test_read_format_iso_Z.c
|
||||
index d07bc1bc8..716552fa3 100644
|
||||
--- a/libarchive/test/test_read_format_iso_Z.c
|
||||
+++ b/libarchive/test/test_read_format_iso_Z.c
|
||||
@@ -93,16 +93,20 @@ test_small(const char *name)
|
||||
assertEqualIntA(a, ARCHIVE_OK,
|
||||
archive_read_next_header(a, &ae));
|
||||
assertEqualString(".", archive_entry_pathname(ae));
|
||||
- assertEqualIntA(a, 3443989665, archive_entry_atime(ae));
|
||||
- assertEqualIntA(a, 0, archive_entry_birthtime(ae));
|
||||
- assertEqualIntA(a, 3443989665, archive_entry_ctime(ae));
|
||||
+ assertEqualInt(0, archive_entry_atime_is_set(ae));
|
||||
+ assertEqualInt(0, archive_entry_atime(ae));
|
||||
+ assertEqualInt(0, archive_entry_birthtime_is_set(ae));
|
||||
+ assertEqualInt(0, archive_entry_birthtime(ae));
|
||||
+ assertEqualInt(0, archive_entry_ctime_is_set(ae));
|
||||
+ assertEqualInt(0, archive_entry_ctime(ae));
|
||||
assertEqualIntA(a, 0, archive_entry_dev(ae));
|
||||
assertEqualIntA(a, AE_IFDIR, archive_entry_filetype(ae));
|
||||
assertEqualIntA(a, 0, archive_entry_gid(ae));
|
||||
assertEqualStringA(a, NULL, archive_entry_gname(ae));
|
||||
assertEqualIntA(a, 0, archive_entry_ino(ae));
|
||||
assertEqualIntA(a, AE_IFDIR | 0700, archive_entry_mode(ae));
|
||||
- assertEqualIntA(a, 3443989665, archive_entry_mtime(ae));
|
||||
+ assertEqualInt(0, archive_entry_mtime_is_set(ae));
|
||||
+ assertEqualInt(0, archive_entry_mtime(ae));
|
||||
assertEqualIntA(a, 4, archive_entry_nlink(ae));
|
||||
assertEqualIntA(a, 0700, archive_entry_perm(ae));
|
||||
assertEqualIntA(a, 2048, archive_entry_size(ae));
|
||||
177
sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.7.5.ebuild
vendored
Normal file
177
sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.7.5.ebuild
vendored
Normal file
@ -0,0 +1,177 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
inherit libtool multilib-minimal toolchain-funcs verify-sig
|
||||
|
||||
DESCRIPTION="Multi-format archive and compression library"
|
||||
HOMEPAGE="
|
||||
https://www.libarchive.org/
|
||||
https://github.com/libarchive/libarchive/
|
||||
"
|
||||
SRC_URI="
|
||||
https://www.libarchive.de/downloads/${P}.tar.xz
|
||||
verify-sig? ( https://www.libarchive.de/downloads/${P}.tar.xz.asc )
|
||||
"
|
||||
|
||||
LICENSE="BSD BSD-2 BSD-4 public-domain"
|
||||
SLOT="0/13"
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
IUSE="
|
||||
acl blake2 +bzip2 +e2fsprogs expat +iconv lz4 +lzma lzo nettle
|
||||
static-libs test xattr +zstd
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
sys-libs/zlib:=[${MULTILIB_USEDEP}]
|
||||
acl? ( virtual/acl:=[${MULTILIB_USEDEP}] )
|
||||
blake2? ( app-crypt/libb2:=[${MULTILIB_USEDEP}] )
|
||||
bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
|
||||
expat? ( dev-libs/expat:=[${MULTILIB_USEDEP}] )
|
||||
!expat? ( dev-libs/libxml2:=[${MULTILIB_USEDEP}] )
|
||||
iconv? ( virtual/libiconv:=[${MULTILIB_USEDEP}] )
|
||||
dev-libs/openssl:=[${MULTILIB_USEDEP}]
|
||||
lz4? ( >=app-arch/lz4-0_p131:=[${MULTILIB_USEDEP}] )
|
||||
lzma? ( >=app-arch/xz-utils-5.2.5-r1:=[${MULTILIB_USEDEP}] )
|
||||
lzo? ( >=dev-libs/lzo-2:=[${MULTILIB_USEDEP}] )
|
||||
nettle? ( dev-libs/nettle:=[${MULTILIB_USEDEP}] )
|
||||
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
kernel_linux? (
|
||||
virtual/os-headers
|
||||
e2fsprogs? ( sys-fs/e2fsprogs[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
test? (
|
||||
app-arch/lrzip
|
||||
app-arch/lz4
|
||||
app-arch/lzip
|
||||
app-arch/lzop
|
||||
app-arch/xz-utils
|
||||
app-arch/zstd
|
||||
lzma? ( app-arch/xz-utils[extra-filters(+)] )
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
verify-sig? ( >=sec-keys/openpgp-keys-libarchive-20221209 )
|
||||
elibc_musl? ( sys-libs/queue-standalone )
|
||||
"
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libarchive.org.asc
|
||||
|
||||
# false positives (checks for libc-defined hash functions)
|
||||
QA_CONFIG_IMPL_DECL_SKIP=(
|
||||
SHA256_Init SHA256_Update SHA256_Final
|
||||
SHA384_Init SHA384_Update SHA384_Final
|
||||
SHA512_Init SHA512_Update SHA512_Final
|
||||
)
|
||||
|
||||
PATCHES=(
|
||||
# https://github.com/libarchive/libarchive/issues/2069
|
||||
# (we can simply update the command since we don't support old lrzip)
|
||||
"${FILESDIR}/${PN}-3.7.2-lrzip.patch"
|
||||
# https://github.com/libarchive/libarchive/pull/2330
|
||||
"${FILESDIR}/${P}-iso9660-times.patch"
|
||||
# https://github.com/libarchive/libarchive/pull/2335
|
||||
"${FILESDIR}/${P}-attr-dep.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Needed for flags to be respected w/ LTO
|
||||
elibtoolize
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
export ac_cv_header_ext2fs_ext2_fs_h=$(usex e2fsprogs) #354923
|
||||
|
||||
local myconf=(
|
||||
$(use_enable acl)
|
||||
$(use_enable static-libs static)
|
||||
$(use_enable xattr)
|
||||
$(use_with blake2 libb2)
|
||||
$(use_with bzip2 bz2lib)
|
||||
$(use_with expat)
|
||||
$(use_with !expat xml2)
|
||||
$(use_with iconv)
|
||||
$(use_with lz4)
|
||||
$(use_with lzma)
|
||||
$(use_with lzo lzo2)
|
||||
$(use_with nettle)
|
||||
--with-zlib
|
||||
$(use_with zstd)
|
||||
|
||||
# Windows-specific
|
||||
--without-cng
|
||||
)
|
||||
if multilib_is_native_abi ; then
|
||||
myconf+=(
|
||||
--enable-bsdcat="$(tc-is-static-only && echo static || echo shared)"
|
||||
--enable-bsdcpio="$(tc-is-static-only && echo static || echo shared)"
|
||||
--enable-bsdtar="$(tc-is-static-only && echo static || echo shared)"
|
||||
--enable-bsdunzip="$(tc-is-static-only && echo static || echo shared)"
|
||||
)
|
||||
else
|
||||
myconf+=(
|
||||
--disable-bsdcat
|
||||
--disable-bsdcpio
|
||||
--disable-bsdtar
|
||||
--disable-bsdunzip
|
||||
)
|
||||
fi
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
if multilib_is_native_abi ; then
|
||||
emake
|
||||
else
|
||||
emake libarchive.la
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
mkdir -p "${T}"/bin || die
|
||||
# tests fail when lbzip2[symlink] is used in place of ref bunzip2
|
||||
ln -s "${BROOT}/bin/bunzip2" "${T}"/bin || die
|
||||
# workaround lrzip broken on 32-bit arches with >= 10 threads
|
||||
# https://bugs.gentoo.org/927766
|
||||
cat > "${T}"/bin/lrzip <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "$(type -P lrzip)" -p1 "\${@}"
|
||||
EOF
|
||||
chmod +x "${T}/bin/lrzip" || die
|
||||
local -x PATH=${T}/bin:${PATH}
|
||||
multilib-minimal_src_test
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# sandbox is breaking long symlink behavior
|
||||
local -x SANDBOX_ON=0
|
||||
local -x LD_PRELOAD=
|
||||
# some locales trigger different output that breaks tests
|
||||
local -x LC_ALL=C.UTF-8
|
||||
emake check
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
if multilib_is_native_abi ; then
|
||||
emake DESTDIR="${D}" install
|
||||
else
|
||||
local install_targets=(
|
||||
install-includeHEADERS
|
||||
install-libLTLIBRARIES
|
||||
install-pkgconfigDATA
|
||||
)
|
||||
emake DESTDIR="${D}" "${install_targets[@]}"
|
||||
fi
|
||||
|
||||
# Libs.private: should be used from libarchive.pc instead
|
||||
find "${ED}" -type f -name "*.la" -delete || die
|
||||
# https://github.com/libarchive/libarchive/issues/1766
|
||||
sed -e '/Requires\.private/s:iconv::' \
|
||||
-i "${ED}/usr/$(get_libdir)/pkgconfig/libarchive.pc" || die
|
||||
}
|
||||
173
sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.7.6.ebuild
vendored
Normal file
173
sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.7.6.ebuild
vendored
Normal file
@ -0,0 +1,173 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
inherit libtool multilib-minimal toolchain-funcs verify-sig
|
||||
|
||||
DESCRIPTION="Multi-format archive and compression library"
|
||||
HOMEPAGE="
|
||||
https://www.libarchive.org/
|
||||
https://github.com/libarchive/libarchive/
|
||||
"
|
||||
SRC_URI="
|
||||
https://www.libarchive.de/downloads/${P}.tar.xz
|
||||
verify-sig? ( https://www.libarchive.de/downloads/${P}.tar.xz.asc )
|
||||
"
|
||||
|
||||
LICENSE="BSD BSD-2 BSD-4 public-domain"
|
||||
SLOT="0/13"
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
IUSE="
|
||||
acl blake2 +bzip2 +e2fsprogs expat +iconv lz4 +lzma lzo nettle
|
||||
static-libs test xattr +zstd
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
sys-libs/zlib:=[${MULTILIB_USEDEP}]
|
||||
acl? ( virtual/acl:=[${MULTILIB_USEDEP}] )
|
||||
blake2? ( app-crypt/libb2:=[${MULTILIB_USEDEP}] )
|
||||
bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
|
||||
expat? ( dev-libs/expat:=[${MULTILIB_USEDEP}] )
|
||||
!expat? ( dev-libs/libxml2:=[${MULTILIB_USEDEP}] )
|
||||
iconv? ( virtual/libiconv:=[${MULTILIB_USEDEP}] )
|
||||
dev-libs/openssl:=[${MULTILIB_USEDEP}]
|
||||
lz4? ( >=app-arch/lz4-0_p131:=[${MULTILIB_USEDEP}] )
|
||||
lzma? ( >=app-arch/xz-utils-5.2.5-r1:=[${MULTILIB_USEDEP}] )
|
||||
lzo? ( >=dev-libs/lzo-2:=[${MULTILIB_USEDEP}] )
|
||||
nettle? ( dev-libs/nettle:=[${MULTILIB_USEDEP}] )
|
||||
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
kernel_linux? (
|
||||
virtual/os-headers
|
||||
e2fsprogs? ( sys-fs/e2fsprogs[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
test? (
|
||||
app-arch/lrzip
|
||||
app-arch/lz4
|
||||
app-arch/lzip
|
||||
app-arch/lzop
|
||||
app-arch/xz-utils
|
||||
app-arch/zstd
|
||||
lzma? ( app-arch/xz-utils[extra-filters(+)] )
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
verify-sig? ( >=sec-keys/openpgp-keys-libarchive-20221209 )
|
||||
elibc_musl? ( sys-libs/queue-standalone )
|
||||
"
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libarchive.org.asc
|
||||
|
||||
# false positives (checks for libc-defined hash functions)
|
||||
QA_CONFIG_IMPL_DECL_SKIP=(
|
||||
SHA256_Init SHA256_Update SHA256_Final
|
||||
SHA384_Init SHA384_Update SHA384_Final
|
||||
SHA512_Init SHA512_Update SHA512_Final
|
||||
)
|
||||
|
||||
PATCHES=(
|
||||
# https://github.com/libarchive/libarchive/issues/2069
|
||||
# (we can simply update the command since we don't support old lrzip)
|
||||
"${FILESDIR}/${PN}-3.7.2-lrzip.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Needed for flags to be respected w/ LTO
|
||||
elibtoolize
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
export ac_cv_header_ext2fs_ext2_fs_h=$(usex e2fsprogs) #354923
|
||||
|
||||
local myconf=(
|
||||
$(use_enable acl)
|
||||
$(use_enable static-libs static)
|
||||
$(use_enable xattr)
|
||||
$(use_with blake2 libb2)
|
||||
$(use_with bzip2 bz2lib)
|
||||
$(use_with expat)
|
||||
$(use_with !expat xml2)
|
||||
$(use_with iconv)
|
||||
$(use_with lz4)
|
||||
$(use_with lzma)
|
||||
$(use_with lzo lzo2)
|
||||
$(use_with nettle)
|
||||
--with-zlib
|
||||
$(use_with zstd)
|
||||
|
||||
# Windows-specific
|
||||
--without-cng
|
||||
)
|
||||
if multilib_is_native_abi ; then
|
||||
myconf+=(
|
||||
--enable-bsdcat="$(tc-is-static-only && echo static || echo shared)"
|
||||
--enable-bsdcpio="$(tc-is-static-only && echo static || echo shared)"
|
||||
--enable-bsdtar="$(tc-is-static-only && echo static || echo shared)"
|
||||
--enable-bsdunzip="$(tc-is-static-only && echo static || echo shared)"
|
||||
)
|
||||
else
|
||||
myconf+=(
|
||||
--disable-bsdcat
|
||||
--disable-bsdcpio
|
||||
--disable-bsdtar
|
||||
--disable-bsdunzip
|
||||
)
|
||||
fi
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
if multilib_is_native_abi ; then
|
||||
emake
|
||||
else
|
||||
emake libarchive.la
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
mkdir -p "${T}"/bin || die
|
||||
# tests fail when lbzip2[symlink] is used in place of ref bunzip2
|
||||
ln -s "${BROOT}/bin/bunzip2" "${T}"/bin || die
|
||||
# workaround lrzip broken on 32-bit arches with >= 10 threads
|
||||
# https://bugs.gentoo.org/927766
|
||||
cat > "${T}"/bin/lrzip <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "$(type -P lrzip)" -p1 "\${@}"
|
||||
EOF
|
||||
chmod +x "${T}/bin/lrzip" || die
|
||||
local -x PATH=${T}/bin:${PATH}
|
||||
multilib-minimal_src_test
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# sandbox is breaking long symlink behavior
|
||||
local -x SANDBOX_ON=0
|
||||
local -x LD_PRELOAD=
|
||||
# some locales trigger different output that breaks tests
|
||||
local -x LC_ALL=C.UTF-8
|
||||
emake check
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
if multilib_is_native_abi ; then
|
||||
emake DESTDIR="${D}" install
|
||||
else
|
||||
local install_targets=(
|
||||
install-includeHEADERS
|
||||
install-libLTLIBRARIES
|
||||
install-pkgconfigDATA
|
||||
)
|
||||
emake DESTDIR="${D}" "${install_targets[@]}"
|
||||
fi
|
||||
|
||||
# Libs.private: should be used from libarchive.pc instead
|
||||
find "${ED}" -type f -name "*.la" -delete || die
|
||||
# https://github.com/libarchive/libarchive/issues/1766
|
||||
sed -e '/Requires\.private/s:iconv::' \
|
||||
-i "${ED}/usr/$(get_libdir)/pkgconfig/libarchive.pc" || die
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
DIST xz-5.4.2.tar.gz 2799022 BLAKE2B 3c622b0823f0cbb5fbc5eaa0372fc2f0fefe0950d131417f831bce47b6d9747d145429f0649de106819331f9ae6a289c497182c7b6d1e211513308dd083a9b72 SHA512 149f980338bea3d66de1ff5994b2b236ae1773135eda68b62b009df0c9dcdf5467f8cb2c06da95a71b6556d60bd3d21f475feced34d5dfdb80ee95416a2f9737
|
||||
DIST xz-5.4.2.tar.gz.sig 566 BLAKE2B 95c9c70fdd25b92095dd9691e4d9d4306a3f982becfe7bd42ca6132a76f29be2c2bc66f4fc2bda547058c18e227292f4185799eb905084fc3ab415ae867b4b1b SHA512 30e965c228ed3a8ecb804db8eb11703a765b7ee934030ea69bb3940b630811eb71bf74fd20371ef7759761904ece4f0144a0b00be4d843cf98299fd016f161aa
|
||||
DIST xz-5.4.7.tar.gz 2798247 BLAKE2B e02f3a62c81882c83254e1c94f002aadcd59479dbd031a4d5ea68ce3303c066c298c2709845f2d4ef436511b21d35ab66a080542ac70aaf6c0a0daf448a47d02 SHA512 82c3e5d39fbaa5dcd61b45d5db99d740d811323456a9af3b1acfccbe66b074d1650bc810ee8272a8ae0a1bcf116fc73fc09297b8acb4c6568cf912708306e8ea
|
||||
DIST xz-5.4.7.tar.gz.sig 566 BLAKE2B 525eeeddb219c6e46ef2079af0cd28c8514969ce33b2ab61ccae59ae26289e7ddbd29dd492f88f4e4da9db750dd60ce1831a23a0275cdac39bd5b29c663d1a72 SHA512 00e9004739a168fd8a1ca4bb8b8a9de456bbef2576565722158140f341e94f461dab05c6e457f62a1613229419a978898e878007872571afdc1bb8a9582fa00a
|
||||
DIST xz-5.6.2.tar.gz 2355785 BLAKE2B d2d5f9772714b5b5993ec26c313bd27dc10d88928d9d3a1c71b78f80797e376cf065dcdd0c2c7977a83b67cbe2558140c74c5df44a9408e5a72529212c2205ad SHA512 c32c32c95e3541b906e0284e66a953ace677e0ce6af2084e7b122600047bf7542c1b0fabb5909b19ff79fba6def530be674df1c675b22a47a8d57f3f0b736a82
|
||||
DIST xz-5.6.2.tar.gz.sig 566 BLAKE2B 9b1f19d0449de18057eb5bd3cceaa073fc245e9a05fb19fabdac98b1d2e708b39c8070130c522b78ff75df724e207f978d8da65e2ccb1c6fa295aa892eda0d23 SHA512 f3d1055a2a6e96eec2fd5c0b733f2ab5e150bac9645f1fe9a7558ed6f34a241b4f57e17fd4504f311be26cf1e2b9b797f2e78b1b9d2db02e9cd0c1548cb6160b
|
||||
DIST xz-5.6.3.tar.gz 2279396 BLAKE2B 9f09926f1ec7d72e6564f5816101512717bcb37610b551616117818d4e6a3b6c00b4ac74bf13a06cd299ff199a0561f2c05a3884a6f6b7e94951de2c1c2e6dc3 SHA512 b07b45e18615d1946e9d12157af99b54700d757832a638fccab70549574dcd7f28e69e71cc4c0b9c808959f818e79b668a5ccf108429ea0f40b6125bfd55d274
|
||||
DIST xz-5.6.3.tar.gz.sig 566 BLAKE2B b59899d9ddc3325bd0de084dac420440ccdeb5f57f3656300f235fdae997a8943c2dc44edc3b83150b78717a7bf761152f09b41035d245fa536c45b8c06dd00d SHA512 65a0eb674b804309417d736b3ec9edb9c9bf39485593d81f352ee847662f5a95b3d5084fab21451e3510d74e4e2ee8f9cf4e8615d1128b6e16d5c211481481db
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit flag-o-matic libtool multilib multilib-minimal preserve-libs toolchain-funcs
|
||||
inherit libtool multilib multilib-minimal preserve-libs toolchain-funcs
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
# Per tukaani.org, git.tukaani.org is a mirror of github and
|
||||
@ -35,7 +35,7 @@ else
|
||||
"
|
||||
|
||||
if [[ ${PV} != *_alpha* && ${PV} != *_beta* ]] ; then
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
@ -45,12 +45,12 @@ DESCRIPTION="Utils for managing LZMA compressed files"
|
||||
HOMEPAGE="https://tukaani.org/xz/"
|
||||
|
||||
# See top-level COPYING file as it outlines the various pieces and their licenses.
|
||||
LICENSE="public-domain LGPL-2.1+ GPL-2+"
|
||||
LICENSE="0BSD LGPL-2.1+ GPL-2+ doc? ( CC-BY-SA-4.0 )"
|
||||
SLOT="0"
|
||||
IUSE="doc +extra-filters pgo nls static-libs"
|
||||
IUSE="cpu_flags_arm_crc32 doc +extra-filters pgo nls static-libs"
|
||||
|
||||
if [[ ${PV} != 9999 ]] ; then
|
||||
BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-lassecollin-20230213 )"
|
||||
BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-lassecollin-20240529 )"
|
||||
fi
|
||||
|
||||
src_prepare() {
|
||||
@ -66,11 +66,16 @@ src_prepare() {
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
# Workaround for bug #934370 (libtool-2.5.0), drop when dist tarball
|
||||
# uses newer libtool with the fix.
|
||||
export ac_cv_prog_ac_ct_FILECMD='file' FILECMD='file'
|
||||
|
||||
local myconf=(
|
||||
--enable-threads
|
||||
$(multilib_native_use_enable doc)
|
||||
$(use_enable nls)
|
||||
$(use_enable static-libs static)
|
||||
$(use_enable cpu_flags_arm_crc32 arm64-crc32)
|
||||
)
|
||||
|
||||
if ! multilib_is_native_abi ; then
|
||||
@ -88,7 +93,9 @@ multilib_src_configure() {
|
||||
# those are used by default, depending on preset
|
||||
--enable-match-finders=hc3,hc4,bt4
|
||||
|
||||
# CRC64 is used by default, though some (old?) files use CRC32
|
||||
# CRC64 is used by default, though 7-Zip uses CRC32 by default.
|
||||
# Also, XZ Embedded in Linux doesn't support CRC64, so
|
||||
# kernel modules and friends are CRC32.
|
||||
--enable-checks=crc32,crc64
|
||||
)
|
||||
fi
|
||||
@ -96,7 +103,7 @@ multilib_src_configure() {
|
||||
if [[ ${CHOST} == *-solaris* ]] ; then
|
||||
export gl_cv_posix_shell="${EPREFIX}"/bin/sh
|
||||
|
||||
# Undo Solaris-based defaults pointing to /usr/xpg5/bin
|
||||
# Undo Solaris-based defaults pointing to /usr/xpg4/bin
|
||||
myconf+=( --disable-path-for-script )
|
||||
fi
|
||||
|
||||
@ -104,16 +111,61 @@ multilib_src_configure() {
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
# -fprofile-partial-training because upstream note the test suite isn't super comprehensive
|
||||
# See https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo
|
||||
local pgo_generate_flags=$(usev pgo "-fprofile-update=atomic -fprofile-dir=${T}/${ABI}-pgo -fprofile-generate=${T}/${ABI}-pgo $(test-flags-CC -fprofile-partial-training)")
|
||||
local pgo_use_flags=$(usev pgo "-fprofile-use=${T}/${ABI}-pgo -fprofile-dir=${T}/${ABI}-pgo $(test-flags-CC -fprofile-partial-training)")
|
||||
local pgo_generate_flags=$(usev pgo "-fprofile-update=atomic -fprofile-dir=${T}/${ABI}-pgo -fprofile-generate=${T}/${ABI}-pgo")
|
||||
local pgo_use_flags=$(usev pgo "-fprofile-use=${T}/${ABI}-pgo -fprofile-dir=${T}/${ABI}-pgo")
|
||||
|
||||
emake CFLAGS="${CFLAGS} ${pgo_generate_flags}"
|
||||
|
||||
if use pgo ; then
|
||||
emake CFLAGS="${CFLAGS} ${pgo_generate_flags}" -k check
|
||||
|
||||
local tar_pgo_args=()
|
||||
|
||||
if has_version -b "app-alternatives/tar[gnu]" ; then
|
||||
tar_pgo_args+=(
|
||||
--mtime=@2718281828
|
||||
--sort=name
|
||||
)
|
||||
fi
|
||||
|
||||
if multilib_is_native_abi ; then
|
||||
(
|
||||
shopt -s globstar
|
||||
|
||||
tar \
|
||||
"${tar_pgo_args[@]}" \
|
||||
-cf xz-pgo-test-01.tar \
|
||||
{"${S}","${BUILD_DIR}"}/**/*.[cho] \
|
||||
{"${S}","${BUILD_DIR}"}/**/.libs/* \
|
||||
{"${S}","${BUILD_DIR}"}/**/**.txt \
|
||||
{"${S}","${BUILD_DIR}"}/tests/files
|
||||
|
||||
stat --printf="xz-pgo-test-01.tar.tar size: %s\n" xz-pgo-test-01.tar || die
|
||||
md5sum xz-pgo-test-01.tar || die
|
||||
)
|
||||
|
||||
local test_variants=(
|
||||
# Borrowed from ALT Linux
|
||||
# https://packages.altlinux.org/en/sisyphus/srpms/xz/specfiles/#line-80
|
||||
'-0 -C none'
|
||||
'-2 -C crc32'
|
||||
"$(usev extra-filters '-6 --arm --lzma2 -C crc64')"
|
||||
"$(usev extra-filters '-6 --x86 --lzma2=lc=4 -C sha256')"
|
||||
'-7e --format=lzma'
|
||||
|
||||
# Our own variants
|
||||
''
|
||||
'-e'
|
||||
"$(usev extra-filters '--x86 --lzma2=preset=6e')"
|
||||
)
|
||||
local test_variant
|
||||
for test_variant in "${test_variants[@]}" ; do
|
||||
einfo "Testing '${test_variant}' variant"
|
||||
"${BUILD_DIR}"/src/xz/xz -c ${test_variant} xz-pgo-test-01.tar | "${BUILD_DIR}"/src/xz/xz -c -d - > /dev/null
|
||||
assert "Testing '${test_variant}' variant failed"
|
||||
done
|
||||
fi
|
||||
|
||||
if tc-is-clang; then
|
||||
llvm-profdata merge "${T}"/${ABI}-pgo --output="${T}"/${ABI}-pgo/default.profdata || die
|
||||
fi
|
||||
@ -123,6 +175,17 @@ multilib_src_compile() {
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
default
|
||||
|
||||
# bug #934370 and bug #450436 (and bug #934515)
|
||||
if ! tc-is-static-only && [[ ! -f "${ED}/usr/$(get_libdir)/liblzma$(get_libname)" ]] ; then
|
||||
eerror "Sanity check for liblzma$(get_libname) failed."
|
||||
eerror "Shared library wasn't built, possible libtool bug"
|
||||
[[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && die "liblzma$(get_libname) not found in build, aborting"
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
find "${ED}" -type f -name '*.la' -delete || die
|
||||
|
||||
@ -1,3 +1 @@
|
||||
DIST ccid-1.5.1.tar.bz2 702586 BLAKE2B 7b9e3c6daf03c186f34ac9b13bd960293a6481f9237ee52937ece1040bd3a79b7dab318e1244205a7feae992261ab5e82292d80ae023a4f621e0e7af7cdb9df5 SHA512 492bde96f5752e2a5316693c44e35e2d041785a00d15e094905c0aafad392f5329009d12801899367276328a582936ee53a1c5239c1813c4536001cb8a608f2e
|
||||
DIST ccid-1.5.4.tar.bz2 706834 BLAKE2B 8b7f08145808ac94d085eef62c204f8146892cb11f2ce811e46e674272cab016d602afb945c6e808ce3957a80e847c0de2815fedaf15fc8c935cafaccf102762 SHA512 4b30f4768aebf49486a1b1e959615fa077bd393bfdd9e52c15bdc8d6ed63ce27fa7cf82a067d1f80d8b3534c66194036925d3fea5af64b6a775779d38267c757
|
||||
DIST ccid-1.5.5.tar.bz2 708374 BLAKE2B a82986ead2dbb3241ef419ad16eb0fac835c5ab4fa988e5ee53cd1608a30a9381210a6fd013b6a059ca2835d55b4a41afa4064575e91b8eb356bff6d01d19add SHA512 9d2aebe645a5880bfad7d420ddab96811d1fd989c79afa28f5471ae53f36b6d45ee5e13b32ac4afcf59fc762ae835db7e6312ad6642b263158c2d9a30c7651bd
|
||||
|
||||
@ -1,45 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit udev
|
||||
|
||||
DESCRIPTION="CCID free software driver"
|
||||
HOMEPAGE="https://ccid.apdu.fr https://github.com/LudovicRousseau/CCID"
|
||||
SRC_URI="https://ccid.apdu.fr/files/${P}.tar.bz2"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ppc ppc64 ~riscv ~sparc x86"
|
||||
IUSE="twinserial +usb"
|
||||
|
||||
RDEPEND="
|
||||
>=sys-apps/pcsc-lite-1.8.3
|
||||
twinserial? ( dev-lang/perl )
|
||||
usb? ( virtual/libusb:1 )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
LEX=: \
|
||||
$(use_enable twinserial) \
|
||||
$(use_enable usb libusb)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
udev_newrules src/92_pcscd_ccid.rules 92-pcsc-ccid.rules
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
udev_reload
|
||||
einfo "Check https://github.com/LudovicRousseau/CCID/blob/master/INSTALL"
|
||||
einfo "for more info about how to configure and use ccid"
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
udev_reload
|
||||
}
|
||||
@ -1,55 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit autotools udev
|
||||
|
||||
DESCRIPTION="CCID free software driver"
|
||||
HOMEPAGE="https://ccid.apdu.fr https://github.com/LudovicRousseau/CCID"
|
||||
SRC_URI="https://ccid.apdu.fr/files/${P}.tar.bz2"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ppc ppc64 ~riscv ~sparc x86"
|
||||
IUSE="twinserial +usb"
|
||||
|
||||
RDEPEND="
|
||||
>=sys-apps/pcsc-lite-1.8.3
|
||||
twinserial? ( dev-lang/perl )
|
||||
usb? ( virtual/libusb:1 )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${P}-remove-flex-configure-dependency.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
LEX=: \
|
||||
$(use_enable twinserial) \
|
||||
$(use_enable usb libusb)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
udev_newrules src/92_pcscd_ccid.rules 92-pcsc-ccid.rules
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
udev_reload
|
||||
einfo "Check https://github.com/LudovicRousseau/CCID/blob/master/INSTALL"
|
||||
einfo "for more info about how to configure and use ccid"
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
udev_reload
|
||||
}
|
||||
@ -11,7 +11,7 @@ SRC_URI="https://ccid.apdu.fr/files/${P}.tar.bz2"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
||||
KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ppc ppc64 ~riscv ~sparc x86"
|
||||
IUSE="twinserial +usb"
|
||||
|
||||
RDEPEND="
|
||||
|
||||
@ -1,71 +0,0 @@
|
||||
From 5bd94d9670ad10df9f14349dfa098d0a2e40ab08 Mon Sep 17 00:00:00 2001
|
||||
From: Eli Schwartz <eschwartz93@gmail.com>
|
||||
Date: Mon, 10 Jun 2024 22:02:37 -0400
|
||||
Subject: [PATCH] make building work again when flex is not installed
|
||||
|
||||
This explicitly reverts commit eec7cdf03dda2bd26e320ead73b91da5a9d86443
|
||||
because it was a bad idea.
|
||||
|
||||
The motivating bug report was https://github.com/LudovicRousseau/PCSC/issues/124
|
||||
and the issue there occurred when building from a git clone, running
|
||||
./bootstrap && ./configure && make, and having:
|
||||
|
||||
- configure succeed
|
||||
- make "succeeeds" at having $LEX run, do nothing and fail to generate
|
||||
required sources
|
||||
- compiling nonexistent files fail with highly confusing errors
|
||||
|
||||
The autoconf manual has always documented the correct way to handle this
|
||||
is to check if lex is unavailable, and set it to the famous automake
|
||||
wrapper "missing", which checks if a program is missing at build time
|
||||
rather than at ./configure time, and fails the build if the rule cannot
|
||||
be run. This means:
|
||||
|
||||
When building from a git clone, if flex is not available then
|
||||
- configure succeeds
|
||||
- make fails to run $LEX, and tells you to install flex
|
||||
|
||||
The previous attempt to fix the highly confusing error instead resulted
|
||||
in configure erroring out, and saying flex is required, even when it is
|
||||
*not* required because a `make dist` tarball was used, which contains
|
||||
pregenerated tokenparser.c for the express purpose of making flex
|
||||
unnecessary.
|
||||
|
||||
See autoconf documentation on $LEX:
|
||||
https://www.gnu.org/software/autoconf/manual/autoconf-2.72/html_node/Particular-Programs.html#index-AC_005fPROG_005fLEX-1
|
||||
|
||||
And automake documentation on why to use "missing":
|
||||
https://www.gnu.org/software/automake/manual/html_node/maintainer_002dmode.html
|
||||
|
||||
Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
|
||||
---
|
||||
configure.ac | 9 ++++-----
|
||||
1 file changed, 4 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index d291f2b..a5af2eb 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -33,10 +33,10 @@ AC_PROG_INSTALL
|
||||
AC_PROG_MAKE_SET
|
||||
AC_PROG_LN_S
|
||||
AC_PROG_LEX([noyywrap])
|
||||
-if test $LEX = ":"
|
||||
-then
|
||||
- AC_MSG_ERROR([no lex or flex found])
|
||||
-fi
|
||||
+AS_IF([test $LEX = ":"], [
|
||||
+ AM_MISSING_PROG(MISSINGLEX, [flex])
|
||||
+ LEX=$MISSINGLEX]
|
||||
+)
|
||||
AM_PROG_AR
|
||||
PKG_PROG_PKG_CONFIG
|
||||
|
||||
@@ -354,4 +354,3 @@ AC_CONFIG_FILES(Makefile
|
||||
examples/Makefile)
|
||||
|
||||
AC_OUTPUT
|
||||
-
|
||||
--
|
||||
2.44.2
|
||||
|
||||
@ -4,3 +4,5 @@ DIST gnupg-2.2.43.tar.bz2 7435426 BLAKE2B ddf5c89d317e6ce8d1a5348f0ef81ffa1c61c9
|
||||
DIST gnupg-2.2.43.tar.bz2.sig 119 BLAKE2B 38fd3790f5065d67d6b5323ef7abbb79facf00e5b9daba98e5078302fc3887423173ba434c7eff1e64faecef88d87aab9c057c570d6e96e8d0808f07f32d8fa1 SHA512 47c5354869b1825e56fa4276826fcde1ee41c70aab9b411686cf2733f4d1df9c006049e49e066b22e475bd37b337f9ffc97f8bbca0c62c0f32296909464a0643
|
||||
DIST gnupg-2.4.5.tar.bz2 7889060 BLAKE2B a8b80cd4dfbb377066efb5c9f1b6cdc6d0cd1b18358c962781b5c06de1545117b13038a4655ae627c36bfd2e5fee127692df8729d6b23e1b31051ab6d897b733 SHA512 4d54744f09399c5899144d0cb5fdc2756e45b058db41b9ea9df3be03e80b914509e16ef35aa0248e7561185b80f7a5f9fd6afcab8ccff75ff82ed555448a38ff
|
||||
DIST gnupg-2.4.5.tar.bz2.sig 238 BLAKE2B b236e7d62f49c8385f4fb81389bf10715d9c0a0cb5c0b4c20fb6ff1465d05a3c3657061284db23af988a1ca16c9fa393af3ce5cbd27934501eb41a4f448fff0a SHA512 5a06970e499d1eb5213b142a8a182e46f5f21b7cb32785a9e5069378797c124e151ce74727382003820042d60fd7a2f909143f44aa9ef282605875e1cab04aef
|
||||
DIST gnupg-2.5.1.tar.bz2 8126739 BLAKE2B 46955d2eebe14395adc0fdf81e89a32f3f9baaabfe1eee78f256a1fab25ce6fdb96b873678cfeb5e4abf4894c7ab4908359ed04cc6571ff442dcc5325b3ccd66 SHA512 733a11ff24145e23dd7d34d954a70c25bf70ecb1d517b8e15cc34bf690786c9f7007e4e99cde573500ac012852e91b29568fed00491f8c8254b3fb63ca5777cd
|
||||
DIST gnupg-2.5.1.tar.bz2.sig 238 BLAKE2B cd024a63ecb82a12e92444cbff8dbc9bef6a4e436d59957aae77927cce0baf9e282e63df7a5159a521c7c8694a0dbe96d6537ad3ec5f779c7c0dea8d02b5e70d SHA512 8ffd5cc72a2907972bf1854e804f6c215ff66ba2d6e91952700f49b2b5ba8bab035d0f42efdb0d3c3166301cda6e716394928bdd9c0d0d1e1789a02c7aa1a926
|
||||
|
||||
@ -23,7 +23,7 @@ S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
IUSE="bzip2 doc ldap nls readline selinux +smartcard ssl test +tofu tpm tools usb user-socket wks-server"
|
||||
RESTRICT="!test? ( test )"
|
||||
REQUIRED_USE="test? ( tofu )"
|
||||
|
||||
197
sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.1.ebuild
vendored
Normal file
197
sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.1.ebuild
vendored
Normal file
@ -0,0 +1,197 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Maintainers should:
|
||||
# 1. Join the "Gentoo" project at https://dev.gnupg.org/project/view/27/
|
||||
# 2. Subscribe to release tasks like https://dev.gnupg.org/T6159
|
||||
# (find the one for the current release then subscribe to it +
|
||||
# any subsequent ones linked within so you're covered for a while.)
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc
|
||||
# in-source builds are not supported: https://dev.gnupg.org/T6313#166339
|
||||
inherit flag-o-matic out-of-source multiprocessing systemd toolchain-funcs verify-sig
|
||||
|
||||
MY_P="${P/_/-}"
|
||||
|
||||
DESCRIPTION="The GNU Privacy Guard, a GPL OpenPGP implementation"
|
||||
HOMEPAGE="https://gnupg.org/"
|
||||
SRC_URI="mirror://gnupg/gnupg/${MY_P}.tar.bz2"
|
||||
SRC_URI+=" verify-sig? ( mirror://gnupg/gnupg/${P}.tar.bz2.sig )"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
IUSE="bzip2 doc ldap nls readline selinux +smartcard ssl test +tofu tpm tools usb user-socket wks-server"
|
||||
RESTRICT="!test? ( test )"
|
||||
REQUIRED_USE="test? ( tofu )"
|
||||
|
||||
# Existence of executables is checked during configuration.
|
||||
# Note: On each bump, update dep bounds on each version from configure.ac!
|
||||
DEPEND="
|
||||
>=dev-libs/libassuan-2.5.0:=
|
||||
>=dev-libs/libgcrypt-1.9.1:=
|
||||
>=dev-libs/libgpg-error-1.46
|
||||
>=dev-libs/libksba-1.6.3
|
||||
>=dev-libs/npth-1.2
|
||||
>=net-misc/curl-7.10
|
||||
sys-libs/zlib
|
||||
bzip2? ( app-arch/bzip2 )
|
||||
ldap? ( net-nds/openldap:= )
|
||||
readline? ( sys-libs/readline:0= )
|
||||
smartcard? ( usb? ( virtual/libusb:1 ) )
|
||||
tofu? ( >=dev-db/sqlite-3.27 )
|
||||
tpm? ( >=app-crypt/tpm2-tss-2.4.0:= )
|
||||
ssl? ( >=net-libs/gnutls-3.2:0= )
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
nls? ( virtual/libintl )
|
||||
selinux? ( sec-policy/selinux-gpg )
|
||||
wks-server? ( virtual/mta )
|
||||
"
|
||||
PDEPEND="
|
||||
app-crypt/pinentry
|
||||
"
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
doc? ( sys-apps/texinfo )
|
||||
nls? ( sys-devel/gettext )
|
||||
verify-sig? ( sec-keys/openpgp-keys-gnupg )
|
||||
"
|
||||
|
||||
DOCS=(
|
||||
ChangeLog NEWS README THANKS TODO VERSION
|
||||
doc/FAQ doc/DETAILS doc/HACKING doc/TRANSLATE doc/OpenPGP doc/KEYSERVER
|
||||
)
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-2.1.20-gpgscm-Use-shorter-socket-path-lengts-to-improve-tes.patch
|
||||
"${FILESDIR}"/${PN}-2.4.5-revert-rfc4880bis.patch # bug #926186
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
GNUPG_SYSTEMD_UNITS=(
|
||||
dirmngr.service
|
||||
dirmngr.socket
|
||||
gpg-agent-browser.socket
|
||||
gpg-agent-extra.socket
|
||||
gpg-agent.service
|
||||
gpg-agent.socket
|
||||
gpg-agent-ssh.socket
|
||||
)
|
||||
|
||||
cp "${GNUPG_SYSTEMD_UNITS[@]/#/${FILESDIR}/}" "${T}" || die
|
||||
|
||||
# Inject SSH_AUTH_SOCK into user's sessions after enabling gpg-agent-ssh.socket in systemctl --user mode,
|
||||
# idea borrowed from libdbus, see
|
||||
# https://gitlab.freedesktop.org/dbus/dbus/-/blob/master/bus/systemd-user/dbus.socket.in#L6
|
||||
#
|
||||
# This cannot be upstreamed, as it requires determining the exact prefix of 'systemctl',
|
||||
# which in turn requires discovery in Autoconf, something that upstream deeply resents.
|
||||
sed -e "/DirectoryMode=/a ExecStartPost=-${EPREFIX}/bin/systemctl --user set-environment SSH_AUTH_SOCK=%t/gnupg/S.gpg-agent.ssh" \
|
||||
-i "${T}"/gpg-agent-ssh.socket || die
|
||||
|
||||
# definition of getpeername etc uses different things like socket_fd_t
|
||||
[[ ${CHOST} == *-solaris* ]] &&
|
||||
append-cflags $(test-flags-CC -Wno-incompatible-pointer-types)
|
||||
}
|
||||
|
||||
my_src_configure() {
|
||||
# Upstream don't support LTO, bug #854222.
|
||||
filter-lto
|
||||
|
||||
local myconf=(
|
||||
$(use_enable bzip2)
|
||||
$(use_enable nls)
|
||||
$(use_enable smartcard scdaemon)
|
||||
$(use_enable ssl gnutls)
|
||||
$(use_enable test all-tests)
|
||||
$(use_enable test tests)
|
||||
$(use_enable tofu)
|
||||
$(use_enable tofu keyboxd)
|
||||
$(use_enable tofu sqlite)
|
||||
$(usex tpm '--with-tss=intel' '--disable-tpm2d')
|
||||
$(use smartcard && use_enable usb ccid-driver || echo '--disable-ccid-driver')
|
||||
$(use_enable wks-server wks-tools)
|
||||
$(use_with ldap)
|
||||
$(use_with readline)
|
||||
|
||||
# Hardcode mailprog to /usr/libexec/sendmail even if it does not exist.
|
||||
# As of GnuPG 2.3, the mailprog substitution is used for the binary called
|
||||
# by wks-client & wks-server; and if it's autodetected but not not exist at
|
||||
# build time, then then 'gpg-wks-client --send' functionality will not
|
||||
# work. This has an unwanted side-effect in stage3 builds: there was a
|
||||
# [R]DEPEND on virtual/mta, which also brought in virtual/logger, bloating
|
||||
# the build where the install guide previously make the user chose the
|
||||
# logger & mta early in the install.
|
||||
--with-mailprog=/usr/libexec/sendmail
|
||||
|
||||
--disable-ntbtls
|
||||
--enable-gpgsm
|
||||
--enable-large-secmem
|
||||
|
||||
CC_FOR_BUILD="$(tc-getBUILD_CC)"
|
||||
GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config"
|
||||
|
||||
$("${S}/configure" --help | grep -o -- '--without-.*-prefix')
|
||||
)
|
||||
|
||||
if use prefix && use usb; then
|
||||
# bug #649598
|
||||
append-cppflags -I"${ESYSROOT}/usr/include/libusb-1.0"
|
||||
fi
|
||||
|
||||
# bug #663142
|
||||
if use user-socket; then
|
||||
myconf+=( --enable-run-gnupg-user-socket )
|
||||
fi
|
||||
|
||||
# glib fails and picks up clang's internal stdint.h causing weird errors
|
||||
tc-is-clang && export gl_cv_absolute_stdint_h="${ESYSROOT}"/usr/include/stdint.h
|
||||
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
my_src_compile() {
|
||||
default
|
||||
|
||||
use doc && emake -C doc html
|
||||
}
|
||||
|
||||
my_src_test() {
|
||||
export TESTFLAGS="--parallel=$(makeopts_jobs)"
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
my_src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
use tools && dobin tools/{gpgconf,gpgsplit,gpg-check-pattern} tools/make-dns-cert
|
||||
|
||||
dosym gpg /usr/bin/gpg2
|
||||
dosym gpgv /usr/bin/gpgv2
|
||||
echo ".so man1/gpg.1" > "${ED}"/usr/share/man/man1/gpg2.1 || die
|
||||
echo ".so man1/gpgv.1" > "${ED}"/usr/share/man/man1/gpgv2.1 || die
|
||||
|
||||
dodir /etc/env.d
|
||||
echo "CONFIG_PROTECT=/usr/share/gnupg/qualified.txt" >> "${ED}"/etc/env.d/30gnupg || die
|
||||
|
||||
use doc && dodoc doc/gnupg.html/*
|
||||
}
|
||||
|
||||
my_src_install_all() {
|
||||
einstalldocs
|
||||
|
||||
use tools && dobin tools/{convert-from-106,mail-signed-keys,lspgpot}
|
||||
use doc && dodoc doc/*.png
|
||||
|
||||
# Dropped upstream in https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commitdiff;h=eae28f1bd4a5632e8f8e85b7248d1c4d4a10a5ed.
|
||||
dodoc "${FILESDIR}"/README-systemd
|
||||
systemd_douserunit "${GNUPG_SYSTEMD_UNITS[@]/#/${T}/}"
|
||||
}
|
||||
@ -1,5 +1,3 @@
|
||||
DIST pinentry-1.2.1.tar.bz2 547698 BLAKE2B aa47612aa3a6f74c3676bf4018780356cb22ed4078792c1f466f9e0465199428c151c0e20dfbe6c784ef93c2b42b673daff0b6adc74c8c98fed9921e65ed42ea SHA512 a665315628f4dcf07e16a22db3f3be15d7e7e93b3deec0546c7275b71b0e3bd65535a08af5e12d6339fd6595132df86529401d9d12bd17c428a3466e8dfafab6
|
||||
DIST pinentry-1.2.1.tar.bz2.sig 238 BLAKE2B 01ba3dc296a8e76c546d21d0bb0cd13778476d5d5b3ef55a3401c6a0353a56d79250d11555afb31c77c5a77e63847ded0f8eaef395bb0dc2ee3ff1d6a4ed83bd SHA512 d0e8435dc169a58f111f057f1c9fbb6c70da32a850f1107d6abdf41357c1714832728109ae61507db313d7eaef9596e5faf92fd21bed78adcc46a8c8a590430b
|
||||
DIST pinentry-1.3.0.tar.bz2 610363 BLAKE2B a55b80754ef37d18ebdf0bd50e134a7b1bf6362b859b7069a9e4ebd86cd7e733d51f3c21a16779a18aa0d0dfab1f7a3df070d4f7e39e0840339078c4e9cb58bc SHA512 1bbac81c6811cffc8969a46494e6daa6b8447802f47ff6fa3e4dc9ac244cf6e5f629834c9b6a60770d06bff6c9932ad4059f10d2fdf93fd9e26fd5d21c0e3732
|
||||
DIST pinentry-1.3.0.tar.bz2.sig 119 BLAKE2B 0f11126761b2a06f8b08cf971f5d610cacbde1a5ee419523a6e704ac21fef4cce26495a160a51bee5ed5f68eca7d6864dfa03efa48030ba2cf783e767b925e1c SHA512 77a61877adf241d67caeea3af4c12a2c7c13ddc423ac001fab79bcec463a5853d8806052d61504fae0c67e0a9d1edf6a12d24b560ff7b4083eea5e86f9b54a90
|
||||
DIST pinentry-1.3.1.tar.bz2 611233 BLAKE2B 47a510b3746fc8cdd83b56302132f4f4d9c61324fc857ce0867387f70f79490dad375bca4dc72e5d1cdca707bf89a16e1c9a20bf1aa0e857d69e59dc59403afd SHA512 3b72034dc1792b1475acb6d605ff7c1bd7647a0f02d1b6bdcd475acdef24bc802f49e275055436c3271261c4b7a64168477a698aab812a145962146b2f67a0e2
|
||||
|
||||
@ -1,111 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc
|
||||
inherit autotools qmake-utils verify-sig
|
||||
|
||||
DESCRIPTION="Simple passphrase entry dialogs which utilize the Assuan protocol"
|
||||
HOMEPAGE="https://gnupg.org/related_software/pinentry/"
|
||||
SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
|
||||
SRC_URI+=" verify-sig? ( mirror://gnupg/${PN}/${P}.tar.bz2.sig )"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
IUSE="caps efl emacs gtk keyring ncurses qt5 wayland X"
|
||||
|
||||
DEPEND="
|
||||
>=dev-libs/libassuan-2.1:=
|
||||
>=dev-libs/libgcrypt-1.6.3
|
||||
>=dev-libs/libgpg-error-1.17
|
||||
efl? ( dev-libs/efl[X] )
|
||||
keyring? ( app-crypt/libsecret )
|
||||
ncurses? ( sys-libs/ncurses:= )
|
||||
qt5? (
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtgui:5
|
||||
dev-qt/qtwidgets:5
|
||||
wayland? ( kde-plasma/kwayland:5 )
|
||||
X? (
|
||||
dev-qt/qtx11extras:5
|
||||
x11-libs/libX11
|
||||
)
|
||||
)
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
gtk? ( app-crypt/gcr:0[gtk] )
|
||||
"
|
||||
BDEPEND="
|
||||
sys-devel/gettext
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( sec-keys/openpgp-keys-gnupg )
|
||||
"
|
||||
PDEPEND="emacs? ( app-emacs/pinentry )"
|
||||
IDEPEND=">=app-eselect/eselect-pinentry-0.7.2"
|
||||
|
||||
DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.0.0-AR.patch"
|
||||
"${FILESDIR}/${PN}-1.2.1-automagic-capslock.patch" # bug #819939, bug #837719
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
unset FLTK_CONFIG
|
||||
|
||||
# bug #934771
|
||||
rm m4/libassuan.m4 || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
export PATH="$(qt5_get_bindir):${PATH}"
|
||||
export QTLIB="$(qt5_get_libdir)"
|
||||
|
||||
local myeconfargs=(
|
||||
$(use_enable efl pinentry-efl)
|
||||
$(use_enable emacs pinentry-emacs)
|
||||
$(use_enable keyring libsecret)
|
||||
$(use_enable gtk pinentry-gnome3)
|
||||
$(use_enable ncurses fallback-curses)
|
||||
$(use_enable ncurses pinentry-curses)
|
||||
$(use_enable qt5 pinentry-qt)
|
||||
$(use_enable wayland kf5-wayland)
|
||||
$(use_enable X qtx11extras)
|
||||
$(use_with X x)
|
||||
|
||||
--enable-pinentry-tty
|
||||
--disable-pinentry-fltk
|
||||
--disable-pinentry-gtk2
|
||||
|
||||
MOC="$(qt5_get_bindir)"/moc
|
||||
GPG_ERROR_CONFIG="${ESYSROOT}"/usr/bin/${CHOST}-gpg-error-config
|
||||
LIBASSUAN_CONFIG="${ESYSROOT}"/usr/bin/libassuan-config
|
||||
|
||||
$("${S}/configure" --help | grep -- '--without-.*-prefix' | sed -e 's/^ *\([^ ]*\) .*/\1/g')
|
||||
)
|
||||
|
||||
econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
rm "${ED}"/usr/bin/pinentry || die
|
||||
|
||||
use qt5 && dosym pinentry-qt /usr/bin/pinentry-qt5
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect pinentry update ifunset
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect pinentry update ifunset
|
||||
}
|
||||
@ -1,111 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc
|
||||
inherit autotools qmake-utils verify-sig
|
||||
|
||||
DESCRIPTION="Simple passphrase entry dialogs which utilize the Assuan protocol"
|
||||
HOMEPAGE="https://gnupg.org/related_software/pinentry/"
|
||||
SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
|
||||
SRC_URI+=" verify-sig? ( mirror://gnupg/${PN}/${P}.tar.bz2.sig )"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
IUSE="caps efl emacs gtk keyring ncurses qt5 wayland X"
|
||||
|
||||
DEPEND="
|
||||
>=dev-libs/libassuan-2.1:=
|
||||
>=dev-libs/libgcrypt-1.6.3
|
||||
>=dev-libs/libgpg-error-1.17
|
||||
efl? ( dev-libs/efl[X] )
|
||||
keyring? ( app-crypt/libsecret )
|
||||
ncurses? ( sys-libs/ncurses:= )
|
||||
qt5? (
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtgui:5
|
||||
dev-qt/qtwidgets:5
|
||||
wayland? ( kde-plasma/kwayland:5 )
|
||||
X? (
|
||||
dev-qt/qtx11extras:5
|
||||
x11-libs/libX11
|
||||
)
|
||||
)
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
gtk? ( app-crypt/gcr:0[gtk] )
|
||||
"
|
||||
BDEPEND="
|
||||
sys-devel/gettext
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( sec-keys/openpgp-keys-gnupg )
|
||||
"
|
||||
PDEPEND="emacs? ( app-emacs/pinentry )"
|
||||
IDEPEND=">=app-eselect/eselect-pinentry-0.7.2"
|
||||
|
||||
DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.0.0-AR.patch"
|
||||
"${FILESDIR}/${PN}-1.2.1-automagic-capslock.patch" # bug #819939, bug #837719
|
||||
"${FILESDIR}/${PN}-1.2.1-include-memory.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
unset FLTK_CONFIG
|
||||
|
||||
# bug #934771
|
||||
rm m4/libassuan.m4 || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
export PATH="$(qt5_get_bindir):${PATH}"
|
||||
export QTLIB="$(qt5_get_libdir)"
|
||||
|
||||
local myeconfargs=(
|
||||
$(use_enable efl pinentry-efl)
|
||||
$(use_enable emacs pinentry-emacs)
|
||||
$(use_enable keyring libsecret)
|
||||
$(use_enable gtk pinentry-gnome3)
|
||||
$(use_enable ncurses fallback-curses)
|
||||
$(use_enable ncurses pinentry-curses)
|
||||
$(use_enable qt5 pinentry-qt)
|
||||
$(use_enable wayland kf5-wayland)
|
||||
$(use_enable X qtx11extras)
|
||||
$(use_with X x)
|
||||
|
||||
--enable-pinentry-tty
|
||||
--disable-pinentry-fltk
|
||||
--disable-pinentry-gtk2
|
||||
|
||||
MOC="$(qt5_get_bindir)"/moc
|
||||
ac_cv_path_GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config"
|
||||
|
||||
$("${S}/configure" --help | grep -- '--without-.*-prefix' | sed -e 's/^ *\([^ ]*\) .*/\1/g')
|
||||
)
|
||||
|
||||
econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
rm "${ED}"/usr/bin/pinentry || die
|
||||
|
||||
use qt5 && dosym pinentry-qt /usr/bin/pinentry-qt5
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect pinentry update ifunset
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect pinentry update ifunset
|
||||
}
|
||||
@ -13,7 +13,7 @@ SRC_URI+=" verify-sig? ( mirror://gnupg/${PN}/${P}.tar.bz2.sig )"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
IUSE="caps efl emacs gtk keyring ncurses qt5 qt6 wayland X"
|
||||
|
||||
DEPEND="
|
||||
|
||||
@ -11,7 +11,7 @@ SRC_URI="https://downloads.sourceforge.net/${PN}/${P}-src.tar.gz"
|
||||
|
||||
LICENSE="0BSD"
|
||||
SLOT="0/1"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
IUSE="debug nls ssl static-libs"
|
||||
|
||||
RDEPEND="
|
||||
|
||||
@ -1,5 +1 @@
|
||||
DIST tpm2-tools-5.5.tar.gz 1241390 BLAKE2B 2225f9e0835988351f84ed06f914616e25fd65bacaa93b51d0bb04185314efb9a6f60eb3539b250f54b2c2ba590f1b76594df3e625e45c8d37e38d13371bea26 SHA512 24f72a3e9840d531d900e96771a863baae1c71a76fcad0fda8020dff06acd8e3b65b86401ace21f034766403caf9ae97ce710ff6013bb7ed25657a6ecf325470
|
||||
DIST tpm2-tools-5.6-tpm2_eventlog-Create-raw-and-pretty-print-format-for.patch.xz 47916 BLAKE2B 1bbc84f58ad46507417c89be1b4ce2450fb33cf3abe8f080c23890d96be85379f135ef1dbf4b580e1a386fa6d5ebc4fbaab351b5238bbf1011bb97b0f49a847b SHA512 3db0daa39a8dc756d7cb25e3673149dc3eeafd7410f2c6537464431b501e3704a886d9b7a9acd71440d6d419649dd471fd6f9247d593c89a30b05774a8d1b3de
|
||||
DIST tpm2-tools-5.6.1.tar.gz 1255474 BLAKE2B 7fda0084283bbd592c3323605f598ebb77ba267ebb900e62b2eff2742257378d95f99b48aab090f80438a6c86f168e1863f9350c18571a23e17eea90a1b9bdd9 SHA512 7a5903db0578a1364c44ca8ac3672c3cae745e2b0ab66ddf6a91fdb75146441af32dfe4ccad6825bea343fea74bed97f9e45bf752594ee56f32e4cb7be2bed33
|
||||
DIST tpm2-tools-5.6.tar.gz 1266731 BLAKE2B fe88722c26d62128cd6dfbdd8ef2568656a75fe27b1443fed28387d0db1f50b7d0651819d34dfa98acde785b4cfb4e7c11420b110bb5333ed2bb6b67cdd4fc70 SHA512 14216f29ed3ecca5fbe356ed3744c8b6b25a62ff11b2aed596d11101328c8bfd29a02f6ca5a218f9a4477a5e9648c50f0ae96e71de0b4ff5ea1f98ebeeb73cd7
|
||||
DIST tpm2-tools-5.7.tar.gz 1339035 BLAKE2B 3984f25176e0b092793a33a0b40b396bc650de989e0b600989d11439cccdf7bc410535c01e1a0e985ab67b36b63eb02d392342aa1746b86727ba22d67d522389 SHA512 629b0b1826815877f452935285f7b3fe0f32bd24fe9130eb169a2dc9b7b254a737797043af9eea68be706b87c32ab2b7189151360c9c00bc5c31dce62a799670
|
||||
|
||||
@ -1,47 +0,0 @@
|
||||
https://github.com/tpm2-software/tpm2-tools/pull/3339
|
||||
|
||||
From 9f244c3f74747b7f79c8c6813657b2f2f8a1c844 Mon Sep 17 00:00:00 2001
|
||||
From: Sam James <sam@gentoo.org>
|
||||
Date: Sun, 21 Jan 2024 08:08:28 +0000
|
||||
Subject: [PATCH] configure.ac: fix bashisms
|
||||
|
||||
configure scripts need to be runnable with a POSIX-compliant /bin/sh.
|
||||
|
||||
On many (but not all!) systems, /bin/sh is provided by Bash, so errors
|
||||
like this aren't spotted. Notably Debian defaults to /bin/sh provided
|
||||
by dash which doesn't tolerate such bashisms as '=='.
|
||||
|
||||
This retains compatibility with bash.
|
||||
|
||||
Fixes configure warnings/errors like:
|
||||
```
|
||||
checking for libcurl... yes
|
||||
./configure: 15201: test: xauto: unexpected operator
|
||||
./configure: 15286: test: xauto: unexpected operator
|
||||
checking for efivar/efivar.h... yes
|
||||
```
|
||||
|
||||
This fixes a build error later on too:
|
||||
```
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: lib/libcommon.a(libcommon_a-tpm2_eventlog_yaml.o): in function `yaml_devicepath':
|
||||
tpm2_eventlog_yaml.c:(.text.yaml_devicepath+0x2f): undefined reference to `efidp_format_device_path'
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: tpm2_eventlog_yaml.c:(.text.yaml_devicepath+0x61): undefined reference to `efidp_format_device_path'
|
||||
```
|
||||
|
||||
Bug: https://bugs.gentoo.org/922592
|
||||
Signed-off-by: Sam James <sam@gentoo.org>
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -94,9 +94,9 @@ AC_ARG_WITH([efivar],
|
||||
)
|
||||
|
||||
# use the true program to avoid failing hard
|
||||
-AS_IF([test "x$with_efivar" == "xauto"],
|
||||
+AS_IF([test "x$with_efivar" = "xauto"],
|
||||
[PKG_CHECK_MODULES([EFIVAR], [efivar], [AC_CHECK_HEADERS([efivar/efivar.h], , [true])], [true])],
|
||||
- [test "x$with_efivar" == "xyes"],
|
||||
+ [test "x$with_efivar" = "xyes"],
|
||||
[PKG_CHECK_MODULES([EFIVAR], [efivar], [AC_CHECK_HEADERS([efivar/efivar.h])])],
|
||||
)
|
||||
|
||||
|
||||
@ -1,123 +0,0 @@
|
||||
From 9cd74df24dbeee81b408e12ac10a98a088008d07 Mon Sep 17 00:00:00 2001
|
||||
From: Juergen Repp <juergen_repp@web.de>
|
||||
Date: Mon, 20 Nov 2023 13:55:36 +0100
|
||||
Subject: [PATCH] test eventlog: fix check eventlog.sh if efivar.h exists
|
||||
|
||||
If efivar.h exist a pretty print function for the DevicePath
|
||||
is executed. Therefore two yaml test files are needed for
|
||||
the bin test file uefiservices.
|
||||
Fixes #3302.
|
||||
|
||||
Signed-off-by: Juergen Repp <juergen_repp@web.de>
|
||||
---
|
||||
Makefile.am | 13 ++++++
|
||||
configure.ac | 3 ++
|
||||
.../event-uefiservices.bin.yaml.pretty | 45 +++++++++++++++++++
|
||||
...n.yaml => event-uefiservices.bin.yaml.raw} | 0
|
||||
4 files changed, 61 insertions(+)
|
||||
create mode 100644 test/integration/fixtures/event-uefiservices.bin.yaml.pretty
|
||||
rename test/integration/fixtures/{event-uefiservices.bin.yaml => event-uefiservices.bin.yaml.raw} (100%)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 413345cd..ef76dca8 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -352,6 +352,7 @@ TEST_EXTENSIONS = .sh
|
||||
|
||||
check-hook:
|
||||
rm -rf .lock_file
|
||||
+ rm -f $(abs_top_srcdir)/test/integration/fixtures/event-uefiservices.bin.yaml
|
||||
|
||||
EXTRA_DIST_IGNORE = \
|
||||
.gitignore \
|
||||
@@ -647,6 +648,18 @@ dist-hook:
|
||||
for f in $(EXTRA_DIST_IGNORE); do \
|
||||
rm -rf `find $(distdir) -name $$f`; \
|
||||
done;
|
||||
+
|
||||
+prepare-check:
|
||||
+if HAVE_EFIVAR_H
|
||||
+ cp $(abs_top_srcdir)/test/integration/fixtures/event-uefiservices.bin.yaml.pretty \
|
||||
+ $(abs_top_srcdir)/test/integration/fixtures/event-uefiservices.bin.yaml
|
||||
+else
|
||||
+ cp $(abs_top_srcdir)/test/integration/fixtures/event-uefiservices.bin.yaml.raw \
|
||||
+ $(abs_top_srcdir)/test/integration/fixtures/event-uefiservices.bin.yaml
|
||||
+endif
|
||||
+
|
||||
+check: prepare-check
|
||||
+
|
||||
if !HAVE_PANDOC
|
||||
# If pandoc is not enabled, we want to complain that you need pandoc for make dist,
|
||||
# so hook the target and complain.
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 362ae0aa..54224048 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -97,6 +97,9 @@ AS_IF([test "x$with_efivar" == "xauto"],
|
||||
[PKG_CHECK_MODULES([EFIVAR], [efivar], [AC_CHECK_HEADERS([efivar/efivar.h])])],
|
||||
)
|
||||
|
||||
+AC_CHECK_HEADERS([efivar/efivar.h],[efivar_h=yes ], [efivar = no ])
|
||||
+AM_CONDITIONAL([HAVE_EFIVAR_H], [test "$efivar_h" = yes])
|
||||
+
|
||||
# backwards compat with older pkg-config
|
||||
# - pull in AC_DEFUN from pkg.m4
|
||||
m4_ifndef([PKG_CHECK_VAR], [
|
||||
diff --git a/test/integration/fixtures/event-uefiservices.bin.yaml.pretty b/test/integration/fixtures/event-uefiservices.bin.yaml.pretty
|
||||
new file mode 100644
|
||||
index 00000000..f0819f70
|
||||
--- /dev/null
|
||||
+++ b/test/integration/fixtures/event-uefiservices.bin.yaml.pretty
|
||||
@@ -0,0 +1,45 @@
|
||||
+---
|
||||
+version: 1
|
||||
+events:
|
||||
+- EventNum: 0
|
||||
+ PCRIndex: 0
|
||||
+ EventType: EV_NO_ACTION
|
||||
+ Digest: "0000000000000000000000000000000000000000"
|
||||
+ EventSize: 37
|
||||
+ SpecID:
|
||||
+ - Signature: Spec ID Event03
|
||||
+ platformClass: 0
|
||||
+ specVersionMinor: 0
|
||||
+ specVersionMajor: 2
|
||||
+ specErrata: 0
|
||||
+ uintnSize: 2
|
||||
+ numberOfAlgorithms: 2
|
||||
+ Algorithms:
|
||||
+ - Algorithm[0]:
|
||||
+ algorithmId: sha1
|
||||
+ digestSize: 20
|
||||
+ - Algorithm[1]:
|
||||
+ algorithmId: sha256
|
||||
+ digestSize: 32
|
||||
+ vendorInfoSize: 0
|
||||
+- EventNum: 1
|
||||
+ PCRIndex: 2
|
||||
+ EventType: EV_EFI_BOOT_SERVICES_DRIVER
|
||||
+ DigestCount: 2
|
||||
+ Digests:
|
||||
+ - AlgorithmId: sha1
|
||||
+ Digest: "855685b4dbd4b67d50e0594571055054cfe2b1e9"
|
||||
+ - AlgorithmId: sha256
|
||||
+ Digest: "dd8576b4ff346c19c56c3e4f97ce55c5afa646f9c669be0a7cdd05057a0ecdf3"
|
||||
+ EventSize: 84
|
||||
+ Event:
|
||||
+ ImageLocationInMemory: 0x7dcf6018
|
||||
+ ImageLengthInMemory: 171464
|
||||
+ ImageLinkTimeAddress: 0x0
|
||||
+ LengthOfDevicePath: 52
|
||||
+ DevicePath1: 'PciRoot(0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)/Offset(0x12600,0x3c3ff)'
|
||||
+pcrs:
|
||||
+ sha1:
|
||||
+ 2 : 0x5b5f4d5c31664f01670a98a5796a36473671befc
|
||||
+ sha256:
|
||||
+ 2 : 0x35fcf9d737c52c971f7c74058d36937dbd7824177fa0f1de3eba3934fcb83b9d
|
||||
diff --git a/test/integration/fixtures/event-uefiservices.bin.yaml b/test/integration/fixtures/event-uefiservices.bin.yaml.raw
|
||||
similarity index 100%
|
||||
rename from test/integration/fixtures/event-uefiservices.bin.yaml
|
||||
rename to test/integration/fixtures/event-uefiservices.bin.yaml.raw
|
||||
--
|
||||
2.41.0
|
||||
|
||||
@ -1,68 +0,0 @@
|
||||
From 4dec5295361d753c3466bc9e8b0ae3a3cc58dff5 Mon Sep 17 00:00:00 2001
|
||||
From: Juergen Repp <juergen_repp@web.de>
|
||||
Date: Thu, 4 Apr 2024 09:42:51 +0200
|
||||
Subject: [PATCH] test eventlog.sh Fix accidental deletions.
|
||||
|
||||
* Accidental deletions made in commit 196e3d439407e81040ced054a8ed302489348a9d
|
||||
are undone.
|
||||
* python3 is used as default instead of python.
|
||||
|
||||
Signed-off-by: Juergen Repp <juergen_repp@web.de>
|
||||
---
|
||||
test/integration/tests/eventlog.sh | 33 ++++++++++++++++++++++++++++--
|
||||
1 file changed, 31 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/test/integration/tests/eventlog.sh b/test/integration/tests/eventlog.sh
|
||||
index 9d5290f0..e7c13706 100755
|
||||
--- a/test/integration/tests/eventlog.sh
|
||||
+++ b/test/integration/tests/eventlog.sh
|
||||
@@ -3,7 +3,7 @@
|
||||
set -E
|
||||
shopt -s expand_aliases
|
||||
|
||||
-alias python=${PYTHON-python}
|
||||
+alias python=${PYTHON-python3}
|
||||
|
||||
yaml_validate() {
|
||||
cmd=$1
|
||||
@@ -88,7 +88,36 @@ expect_pass() {
|
||||
expect_fail
|
||||
expect_fail foo
|
||||
expect_fail foo bar
|
||||
-expect_fail ${srcdir}/test/integration/fix
|
||||
+expect_fail ${srcdir}/test/integration/fixtures/event-bad.bin
|
||||
+
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/specid-vendordata.bin
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event.bin
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-uefivar.bin
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-uefiaction.bin
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-uefiservices.bin
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-uefi-sha1-log.bin
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-bootorder.bin
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-postcode.bin
|
||||
+
|
||||
+# Make sure that --eventlog-version=2 works on complete TPM2 logs
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-arch-linux.bin --eventlog-version=2
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-gce-ubuntu-2104-log.bin --eventlog-version=2
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-sd-boot-fedora37.bin --eventlog-version=2
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-moklisttrusted.bin --eventlog-version=2
|
||||
+
|
||||
+# Pick an event with leading whitespace and validate we have
|
||||
+# preserved it correctly after parsing the YAML
|
||||
+event=$(yaml_validate "print(y['events'][80]['Event']['String'])" < ${srcdir}/test/integration/fixtures/event-moklisttrusted.bin.yaml | tr -d '\0')
|
||||
+expect=$(echo -e "grub_cmd: menuentry UEFI Firmware Settings --id uefi-firmware {\n\t\tfwsetup\n\t}")
|
||||
+if test "$event" != "$expect"
|
||||
+then
|
||||
+ echo "Got $event"
|
||||
+ echo "Want $expect"
|
||||
+ exit 1
|
||||
+fi
|
||||
+
|
||||
+# Compare strings generated by tpm2_eventlog with binary data of the corresponding
|
||||
+# events.
|
||||
hex_file="${srcdir}/test/integration/fixtures/event-moklisttrusted-hex.yaml"
|
||||
tool_file="${srcdir}/test/integration/fixtures/event-moklisttrusted.bin.yaml"
|
||||
|
||||
--
|
||||
2.43.2
|
||||
|
||||
@ -0,0 +1,42 @@
|
||||
From e9af1553f26ebad6e8db14b599dc74bab5663806 Mon Sep 17 00:00:00 2001
|
||||
From: Christopher Byrne <salah.coronya@gmail.com>
|
||||
Date: Tue, 16 Apr 2024 09:32:30 -0500
|
||||
Subject: [PATCH] tests: Eliminate dependency on 'which'
|
||||
|
||||
See https://lwn.net/Articles/874049/
|
||||
|
||||
Signed-off-by: Christopher Byrne <salah.coronya@gmail.com>
|
||||
---
|
||||
test/integration/tests/pcrevent.sh | 2 +-
|
||||
test/integration/tests/symlink.sh | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/test/integration/tests/pcrevent.sh b/test/integration/tests/pcrevent.sh
|
||||
index 5484cfbe..d7166789 100644
|
||||
--- a/test/integration/tests/pcrevent.sh
|
||||
+++ b/test/integration/tests/pcrevent.sh
|
||||
@@ -44,7 +44,7 @@ yaml_verify $hash_out_file
|
||||
while IFS='' read -r l || [[ -n "$l" ]]; do
|
||||
|
||||
alg=`echo -n $l | cut -d\: -f 1-1`
|
||||
- if ! which "$alg"sum >/dev/null 2>&1; then
|
||||
+ if ! command -v "$alg"sum >/dev/null 2>&1; then
|
||||
echo "Ignore checking $alg algorithm due to unavailable \"${alg}sum\" program"
|
||||
continue
|
||||
fi
|
||||
diff --git a/test/integration/tests/symlink.sh b/test/integration/tests/symlink.sh
|
||||
index 606e1a1a..f65a7567 100644
|
||||
--- a/test/integration/tests/symlink.sh
|
||||
+++ b/test/integration/tests/symlink.sh
|
||||
@@ -17,7 +17,7 @@ start_up
|
||||
# Positive tests:
|
||||
#
|
||||
fail=0
|
||||
-TPM2_TOOL="$(which tpm2)"
|
||||
+TPM2_TOOL="$(command -v tpm2)"
|
||||
|
||||
if [ -z "$TPM2_TOOL" ]; then
|
||||
echo "unable to locate tpm2 tool"
|
||||
--
|
||||
2.45.2
|
||||
|
||||
@ -1,66 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
inherit bash-completion-r1 flag-o-matic python-any-r1
|
||||
|
||||
DESCRIPTION="Tools for the TPM 2.0 TSS"
|
||||
HOMEPAGE="https://github.com/tpm2-software/tpm2-tools"
|
||||
SRC_URI="https://github.com/tpm2-software/tpm2-tools/releases/download/${PV}/${P}.tar.gz"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 arm arm64 ppc64 x86"
|
||||
IUSE="+fapi test"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND=">=app-crypt/tpm2-tss-3.0.1:=[fapi?]
|
||||
dev-libs/openssl:=
|
||||
net-misc/curl
|
||||
sys-libs/efivar:="
|
||||
DEPEND="${RDEPEND}
|
||||
test? (
|
||||
app-crypt/swtpm
|
||||
app-crypt/tpm2-abrmd
|
||||
dev-util/cmocka
|
||||
)"
|
||||
BDEPEND="virtual/pkgconfig
|
||||
dev-build/autoconf-archive
|
||||
test? (
|
||||
app-editors/vim-core
|
||||
dev-tcltk/expect
|
||||
$(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
|
||||
)
|
||||
${PYTHON_DEPS}"
|
||||
|
||||
python_check_deps() {
|
||||
python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# tests fail with LTO enabbled. See bug 865275 and 865277
|
||||
filter-lto
|
||||
econf \
|
||||
$(use_enable fapi) \
|
||||
$(use_enable test unit) \
|
||||
--with-bashcompdir=$(get_bashcompdir) \
|
||||
--enable-hardening
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
mv "${ED}"/$(get_bashcompdir)/tpm2{_completion.bash,} || die
|
||||
local utils=( "${ED}"/usr/bin/tpm2_* )
|
||||
utils=("${utils[@]##*/}")
|
||||
# these utiltites don't have bash completions
|
||||
local nobashcomp=( tpm2_encodeobject tpm2_getpolicydigest tpm2_sessionconfig )
|
||||
mapfile -d $'\0' -t utils < <(printf '%s\0' "${utils[@]}" | grep -Ezvw "${nobashcomp[@]/#/-e}")
|
||||
bashcomp_alias tpm2 "${utils[@]}"
|
||||
}
|
||||
@ -1,81 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
inherit autotools bash-completion-r1 flag-o-matic python-any-r1
|
||||
|
||||
DESCRIPTION="Tools for the TPM 2.0 TSS"
|
||||
HOMEPAGE="https://github.com/tpm2-software/tpm2-tools"
|
||||
SRC_URI="https://github.com/tpm2-software/tpm2-tools/releases/download/${PV}/${P}.tar.gz"
|
||||
SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/tpm2-tools-5.6-tpm2_eventlog-Create-raw-and-pretty-print-format-for.patch.xz"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
|
||||
IUSE="+fapi test"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND=">=app-crypt/tpm2-tss-3.0.1:=[fapi?]
|
||||
dev-libs/openssl:=
|
||||
net-misc/curl
|
||||
sys-libs/efivar:="
|
||||
DEPEND="${RDEPEND}
|
||||
test? (
|
||||
app-crypt/swtpm
|
||||
app-crypt/tpm2-abrmd
|
||||
dev-util/cmocka
|
||||
)"
|
||||
BDEPEND="virtual/pkgconfig
|
||||
dev-build/autoconf-archive
|
||||
test? (
|
||||
app-editors/vim-core
|
||||
dev-tcltk/expect
|
||||
$(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
|
||||
)
|
||||
${PYTHON_DEPS}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-5.6-test-eventlog-fix-check-eventlog.sh-if-efivar.h-exis.patch"
|
||||
"${WORKDIR}/${PN}-5.6-tpm2_eventlog-Create-raw-and-pretty-print-format-for.patch"
|
||||
"${FILESDIR}/${PN}-5.6-Makefile-am-Dont-require-pandoc-for-tests.patch"
|
||||
"${FILESDIR}/${PN}-5.6-bashism.patch"
|
||||
"${FILESDIR}/${PN}-5.6-test-eventlog.sh-Fix-accidental-deletions.patch"
|
||||
)
|
||||
|
||||
python_check_deps() {
|
||||
python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# tests fail with LTO enabbled. See bug 865275 and 865277
|
||||
filter-lto
|
||||
econf \
|
||||
$(use_enable fapi) \
|
||||
$(use_enable test unit) \
|
||||
--with-bashcompdir=$(get_bashcompdir) \
|
||||
--enable-hardening
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
mv "${ED}"/$(get_bashcompdir)/tpm2{_completion.bash,} || die
|
||||
local utils=( "${ED}"/usr/bin/tpm2_* )
|
||||
utils=("${utils[@]##*/}")
|
||||
# these utiltites don't have bash completions
|
||||
local nobashcomp=( tpm2_encodeobject tpm2_getpolicydigest\
|
||||
tpm2_sessionconfig tpm2_tr_encode)
|
||||
mapfile -d $'\0' -t utils < <(printf '%s\0' "${utils[@]}" | grep -Ezvw "${nobashcomp[@]/#/-e}")
|
||||
bashcomp_alias tpm2 "${utils[@]}"
|
||||
}
|
||||
@ -1,87 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
inherit autotools bash-completion-r1 flag-o-matic python-any-r1
|
||||
|
||||
DESCRIPTION="Tools for the TPM 2.0 TSS"
|
||||
HOMEPAGE="https://github.com/tpm2-software/tpm2-tools"
|
||||
SRC_URI="https://github.com/tpm2-software/tpm2-tools/releases/download/${PV}/${P}.tar.gz"
|
||||
SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/tpm2-tools-5.6-tpm2_eventlog-Create-raw-and-pretty-print-format-for.patch.xz"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 arm arm64 ~ppc64 x86"
|
||||
IUSE="+fapi test"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND=">=app-crypt/tpm2-tss-3.0.1:=[fapi?]
|
||||
dev-libs/openssl:=
|
||||
net-misc/curl
|
||||
sys-libs/efivar:="
|
||||
DEPEND="${RDEPEND}
|
||||
test? (
|
||||
app-crypt/swtpm
|
||||
app-crypt/tpm2-abrmd
|
||||
dev-util/cmocka
|
||||
)"
|
||||
BDEPEND="virtual/pkgconfig
|
||||
dev-build/autoconf-archive
|
||||
test? (
|
||||
app-editors/vim-core
|
||||
dev-tcltk/expect
|
||||
$(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
|
||||
)
|
||||
${PYTHON_DEPS}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-5.6-test-eventlog-fix-check-eventlog.sh-if-efivar.h-exis.patch"
|
||||
"${WORKDIR}/${PN}-5.6-tpm2_eventlog-Create-raw-and-pretty-print-format-for.patch"
|
||||
"${FILESDIR}/${PN}-5.6-Makefile-am-Dont-require-pandoc-for-tests.patch"
|
||||
"${FILESDIR}/${PN}-5.6-test-eventlog.sh-Fix-accidental-deletions.patch"
|
||||
)
|
||||
|
||||
python_check_deps() {
|
||||
python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# tests fail with LTO enabbled. See bug 865275 and 865277
|
||||
filter-lto
|
||||
econf \
|
||||
$(use_enable fapi) \
|
||||
$(use_enable test unit) \
|
||||
--with-bashcompdir=$(get_bashcompdir) \
|
||||
--enable-hardening
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
mv "${ED}"/$(get_bashcompdir)/tpm2{_completion.bash,} || die
|
||||
local utils=( "${ED}"/usr/bin/tpm2_* )
|
||||
utils=("${utils[@]##*/}")
|
||||
# these utiltites don't have bash completions
|
||||
local nobashcomp=( tpm2_encodeobject tpm2_getpolicydigest\
|
||||
tpm2_sessionconfig tpm2_tr_encode)
|
||||
mapfile -d $'\0' -t utils < <(printf '%s\0' "${utils[@]}" | grep -Ezvw "${nobashcomp[@]/#/-e}")
|
||||
bashcomp_alias tpm2 "${utils[@]}"
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# This hook doesn't get invoked consisently, so call it manually
|
||||
# else one of the tests will fail
|
||||
emake prepare-check
|
||||
default
|
||||
}
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
inherit autotools bash-completion-r1 flag-o-matic python-any-r1
|
||||
|
||||
DESCRIPTION="Tools for the TPM 2.0 TSS"
|
||||
@ -38,6 +38,7 @@ BDEPEND="virtual/pkgconfig
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-5.6-Makefile-am-Dont-require-pandoc-for-tests.patch"
|
||||
"${FILESDIR}/${PN}-5.7-tests-Eliminate-dependency-on-which.patch"
|
||||
)
|
||||
|
||||
python_check_deps() {
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
DIST nano-7.2.tar.xz 1608444 BLAKE2B c7e3b18383e9f2f9db1f6059c875ddd164d730ea0e5b363e66fb8e5f30e8598ba49a5afd8eea3a55e295f1e43fb136019f60cc9154ae276c5d589002c0e5298a SHA512 a6dfa70edab62e439a9a998ca214f2415d57dbdc01766ad2e4b14048836557a32755f8b09de13c6a89023f215b61d2854017b389eae8d097ca6f3ba73ce2f583
|
||||
DIST nano-8.0.tar.xz 1666272 BLAKE2B ba36182da059a3ee4c1fc60a200dee26f47cc6b1441b7ff665b82871f2f8fcac054f6adf82966d353234141bf9c521518da8fa967aca28307bccf43e015ddaea SHA512 86c484428b8805768fd580d0f62aa32ce8f588f4beedcdd35a4014506b562928c7a2fa6487aa0d853b4c9c1639a4d186f46b4e96721568ff81191d5098403ca8
|
||||
DIST nano-8.1.tar.xz 1667392 BLAKE2B e454f6e5ef86afbab3b2cf6707954d8821bf47ebc89bdad8cc6c70e2d4bb9fac27614069140f40140bca156b14605d286b0dca42469901c6559051089645cab8 SHA512 cb7d696bd18322ba1e713282e3156934e2c7f2a8abc17c99b2d5ae91fa40ea1478758853d4ad391f72039f01cfe0db79fd7302f3e67ed2afeff3a447b6f975ec
|
||||
DIST nano-8.2.tar.xz 1672076 BLAKE2B 08e078f8f5acc8d70ad50a0a402d06a12bcf836c8161f803e2b674375abaa16d663000f02cd1fa1e0b4aad2f127a85ee3b2f60d725a761ab375ae00c905408fd SHA512 07c69d6894f87cb386afa89e984ded7e11fe7575cf3af1c18237e3b2c00de371015c9ea126e505c7c0e7200f7359d5ae7c3779198e188fbbc617154d09c4ba14
|
||||
|
||||
105
sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.2.ebuild
vendored
Normal file
105
sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.2.ebuild
vendored
Normal file
@ -0,0 +1,105 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
EGIT_REPO_URI="https://git.savannah.gnu.org/git/nano.git"
|
||||
inherit autotools git-r3
|
||||
else
|
||||
MY_P="${PN}-${PV/_}"
|
||||
SRC_URI="https://www.nano-editor.org/dist/v${PV:0:1}/${MY_P}.tar.xz"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
|
||||
DESCRIPTION="GNU GPL'd Pico clone with more functionality"
|
||||
HOMEPAGE="https://www.nano-editor.org/ https://wiki.gentoo.org/wiki/Nano/Guide"
|
||||
|
||||
LICENSE="GPL-3+ LGPL-2.1+ || ( GPL-3+ FDL-1.2+ )"
|
||||
SLOT="0"
|
||||
IUSE="debug justify magic minimal ncurses nls +spell unicode"
|
||||
|
||||
RDEPEND="
|
||||
>=sys-libs/ncurses-5.9-r1:=[unicode(+)?]
|
||||
magic? ( sys-apps/file )
|
||||
nls? ( virtual/libintl )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
nls? ( sys-devel/gettext )
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
REQUIRED_USE="
|
||||
magic? ( !minimal )
|
||||
"
|
||||
|
||||
# gnulib FPs
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( unreachable MIN static_assert )
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
eautoreconf
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myconfargs=(
|
||||
--bindir="${EPREFIX}"/bin
|
||||
--htmldir=/trash
|
||||
$(use_enable !minimal color)
|
||||
$(use_enable !minimal multibuffer)
|
||||
$(use_enable !minimal nanorc)
|
||||
$(use_enable magic libmagic)
|
||||
$(use_enable spell speller)
|
||||
$(use_enable justify)
|
||||
$(use_enable debug)
|
||||
$(use_enable nls)
|
||||
$(use_enable unicode utf8)
|
||||
$(use_enable minimal tiny)
|
||||
)
|
||||
|
||||
econf "${myconfargs[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
# Don't use "${ED}" here or things break (#654534)
|
||||
rm -r "${D}"/trash || die
|
||||
|
||||
dodoc doc/sample.nanorc
|
||||
docinto html
|
||||
dodoc doc/faq.html
|
||||
insinto /etc
|
||||
newins doc/sample.nanorc nanorc
|
||||
|
||||
if ! use minimal ; then
|
||||
# Enable colorization by default.
|
||||
sed -i \
|
||||
-e '/^# include /s:# *::' \
|
||||
"${ED}"/etc/nanorc || die
|
||||
|
||||
# Since nano-5.0 these are no longer being "enabled" by default
|
||||
# (bug #736848)
|
||||
local rcdir="/usr/share/nano"
|
||||
mv "${ED}"${rcdir}/extra/* "${ED}"/${rcdir}/ || die
|
||||
rmdir "${ED}"${rcdir}/extra || die
|
||||
|
||||
insinto "${rcdir}"
|
||||
newins "${FILESDIR}/gentoo.nanorc-r1" gentoo.nanorc
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
[[ -n ${REPLACED_BY_VERSION} ]] && return
|
||||
|
||||
local e
|
||||
e=$(unset EDITOR; . "${EROOT}"/etc/profile &>/dev/null; echo "${EDITOR}")
|
||||
if [[ ${e##*/} == nano ]]; then
|
||||
ewarn "The EDITOR variable is still set to ${e}."
|
||||
ewarn "You can update it with \"eselect editor\"."
|
||||
fi
|
||||
}
|
||||
@ -5,6 +5,7 @@ DIST qemu-7.2.0-docs.tar.xz 1984184 BLAKE2B 103900fb7903ed8d75f7f012bf61fa2d6fce
|
||||
DIST qemu-7.2.11.tar.xz 121877020 BLAKE2B c546773b9ac7809b39a3afa51da5b1c06c3765fadb4df9d8529f8af65c26098676adf8e516620ca1b39201fa859878780edb56a445778e105cbe7db0f52b9f6a SHA512 c77ff1505128c05fe39eaa95cc11e4d2279bff06093acd613e54f71d4a13144f905551eec1d044c3a3fb751d3369c01d131d68c18b15d9a04bcc77370d93c217
|
||||
DIST qemu-7.2.12.tar.xz 124399872 BLAKE2B df0afc8de23f3df7b0ada301584f1d96c7add69ec16755c5b75eced88827ec2719ba79c9191da5c77f00872bf2c492b24b08f310954e5ca97249debd5e520cda SHA512 239623f6f3c15b85ce8da27adb8123886a2b56971742d2a11cde58b0dfac40de1592e1e33591306b830c5cee051d11b00d1bdccf414cc7b111dab79b65b1cf92
|
||||
DIST qemu-7.2.13.tar.xz 124399088 BLAKE2B 7d0b86862e663b20e918a211f661aff0bf8eeb480cffef9eba51c819d817368db33989bcc4f1673dd278d1f0f91f7991e22a24fca828559d8da225fdb8a1836b SHA512 be6a1d2efb111c09456be97a431a8881667b0a1d356a9901e6582b9720143826d4719778c228eb342ec865b5a3dc21444ebe296be56e1edafd16ab1b3aef3ae2
|
||||
DIST qemu-7.2.14.tar.xz 124392436 BLAKE2B bf4141a910ebd393edc2df3b105c18bbb1d91241a6e2992ceb591b5097dc846fd74171b9c8ffe71e6a7c847277dd17600286da411ae7750e8eae39c0180b5264 SHA512 3fedf9b55ec97faec449f483433e616d8a384933556997bee50b170bb854faa1eb89e43400cc97acea268575bc92b57d8e921e00d4858bc8991fe04a2c2893ff
|
||||
DIST qemu-8.0.0-docs.tar.xz 3218024 BLAKE2B b764a625024e78a39470048355471e12cfb57ab3c34e764dc4200fdf5c1aea635d26095ec961979bf46f177101c5bd38618bacf7e98e04bd64688ab5e29591aa SHA512 d9dfe191372e105fe16fe8f66f41ed793ade4c89b5ab1d84b39459f3419a1ca61bd49422a83981965cc257c05eca7fd49054703f58f179f5c7b656e9473a1054
|
||||
DIST qemu-8.0.5.tar.xz 126175064 BLAKE2B 1d1f78c185ab64b4ca946a44ad04d0bbb6ea48de058037e4ba18176abeb0f0528754c6e832f742f93227182bbce145544eca5b908a366006e7ee58876aca0bda SHA512 ec9679473dda84a2f56ae8ee0039ec4dafb056414bfc5a3a147b2b6bb45ae3b130dd80f6385e8567b5d18f4be94f3536bc8acc45c61eddf40c9678b46cb8bddc
|
||||
DIST qemu-8.1.0-docs.tar.xz 2129912 BLAKE2B 8aaf7b748538afdb5bcb6da15dbd96572d086824377c4b0e93f1ddc695f9a4775471e360a9616d2d481dbf8113e91d2601c69d92cef565fb90b65ffacfdb304e SHA512 905515742bb56a439fc8117ec48ea668e7b2bf0244587673e4352d9e8e49911eb84ff093596ff566e44787197cf9789ec8950e3d75fb7a670c5546394a322ac9
|
||||
@ -13,6 +14,10 @@ DIST qemu-8.2.0-docs.tar.xz 2233352 BLAKE2B 22b9499fdf4ff93e72399dab3803f3171c85
|
||||
DIST qemu-8.2.3.tar.xz 130106716 BLAKE2B 2ec91b5111952434686064bd603880d87c4f56774d2478ee953eb0454e2b14235b1d1cca484e015b96bceae3182f90b856d222ca590059032b4989babf1dffe8 SHA512 28c789d84754b26cd86ded9db8464ec82f07cdc3b1025a988e74b8c5b05df8839a3e9990ff96cfba50e032dd967e9dc18cf75f3525baeadd0fa019cb69108d0a
|
||||
DIST qemu-8.2.5.tar.xz 132743988 BLAKE2B 24da4350cfe5a46771ea257b7baba48f02465c87e819ad3cc0557c06814f24f442ba3b97661af74d5235e31e7883b7c62d108e3180f7ce9e4be524ec966d07d0 SHA512 b95de309d790033452687b488ba869940bc40862ebbc9d91edbeee840e4ffc0b4cae43e1bfcd00f5534da126c62072b7b5309da6d74d30ba537e4c7b430f4255
|
||||
DIST qemu-8.2.6.tar.xz 132750000 BLAKE2B da5fdb03fcb44cf764d2ccaf9011b726e5c152d8659ca91550cd04b3e578e7f9bf2cc050b38a64055103775e64303ae949cf7e2cde5508f8a4b976d1311631c5 SHA512 ba702306df0c2a6744fff6fdca5f251ebc572230ee4674113433c74f74187ba33457ea9716d9023aa48cc1e6887af132a2877c30ea098da9ed23e95d4691b88b
|
||||
DIST qemu-8.2.7.tar.xz 132676368 BLAKE2B 92235f1a30e1d44cf9f7e40e71e9df0375c5eb2d8b267c35df51e102e560f399e4d3f70c674d7b9e206728d9c4a1bafee5ae8f1a91cda900b422f9a6a48c15a8 SHA512 9806bae62d2bdf0781b6bd1c4d7e88bb97019ca5e85140714d7818912603aed1d522a5d29f3434888974ab73e0cfae8b4136ea018b05dcc2d6f6c8b6252075cd
|
||||
DIST qemu-9.0.0-docs.tar.xz 2290196 BLAKE2B 82d22637ff2629bee372550e86651f12051ea6b4a57e314ef83f290425d4973ef01827eaf28a85b635788f22cb7cc1c747438b7525c92c99b90b234fb8f7655c SHA512 7c0ba1f3e7bbaa4e3feebc33a1946a5c190f2c14b9ed78b15c1f642668c8124960f8c85bcf36fe54a10d4edef47d2256e500f06d9173b92b03c599811a15a073
|
||||
DIST qemu-9.0.1.tar.xz 132368412 BLAKE2B e96ae5cc3ee935dd31232d38d46bbdc74fd3a2a0dd8517c0e035757f3ded92712dfa68d0068cd8c37f314a92d237e2b4a725b509ba402b7a1ce92df63207a08d SHA512 6c120aaf52f15e79c32d883cc83df8fc83222d538ea6be9c19aaddfba0aef91479b5826bbc03e58688fba639cb24bc6f54e525ccc2404ed5d820766d11735210
|
||||
DIST qemu-9.0.2.tar.xz 132387528 BLAKE2B 6b5301f985919ae53e056410be7486b8150a65016127568bd4d58f596e94960d08eb3fc57cff7ff6a3435d71274adee516f57375d856d61b4fc7a3f24cbf75c4 SHA512 58ed84f6fe6263d279356bc9193f96edf62cf3663fb151daa3f047d52329fe49cb91c2d45e09697e0469f4f5409be96403aec9572d4871ffa40848a786c21599
|
||||
DIST qemu-9.0.3.tar.xz 132420136 BLAKE2B af44ee6d3e59c28bb84cbf78a4793fa120a7cb811ab0fb0aba7b61d0b2eeb0e47dd094a4a0af9570e26d584f7ae867d46b6f61903610e155deb6479d8ea60fa4 SHA512 fcd72896ae9f9f654628540e09472c8388d980f8081990ee541f3540f92c5fd0d9332fa343dc9eaa6d7fe3dc2a5668d7d5c3784ba9d49bd7df9d37a4f9df7572
|
||||
DIST qemu-9.1.0-docs.tar.xz 2376072 BLAKE2B 31d13133b3a2e21a7d9b5af028407610ae8f2fa61dd296fc35e57fc12eb66cfd1a39ec5e3b5a3852095d10a388f424f8a38417b3ab58ca30d0817ece779328cf SHA512 5b705b577daad6aa010d5c713db9dc314114334b89901840ebcecc9032595a969f5ad9054e42b36b2be5ef9f5d6dc1159841ff46dbb08314b5c48491aa631040
|
||||
DIST qemu-9.1.0.tar.xz 132478356 BLAKE2B 77bdaf00e6111e6ac94462a6023aac0d3df9d2829a961fd89a5bdafc4aee7f95c2695d9319715e630960e64512a41b3ff987c9096692ff304cfd49357b46ef62 SHA512 bf61d65e37945fa8ee8640712c719ace05164d86e6df700b98bdc5f79e0a8d5e8f85bd48e726edb62b2419db20673f63ec8b63a60393a914b09cb365621b35e2
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
From: Sam James <sam@gentoo.org>
|
||||
Date: Sun, 6 Oct 2024 09:47:03 +0100
|
||||
Subject: [PATCH] Forward ported from qemu-7.1.0-capstone-include-path.patch.
|
||||
|
||||
Bug: https://bugs.gentoo.org/873157
|
||||
Signed-off-by: Sam James <sam@gentoo.org>
|
||||
---
|
||||
include/disas/capstone.h | 2 +-
|
||||
meson.build | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/include/disas/capstone.h
|
||||
+++ b/include/disas/capstone.h
|
||||
@@ -4,7 +4,7 @@
|
||||
#ifdef CONFIG_CAPSTONE
|
||||
|
||||
#define CAPSTONE_AARCH64_COMPAT_HEADER
|
||||
-#include <capstone.h>
|
||||
+#include <capstone/capstone.h>
|
||||
|
||||
#else
|
||||
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -1769,7 +1769,7 @@ if not get_option('capstone').auto() or have_system or have_user
|
||||
# that reports a wrong -I path, causing the #include to
|
||||
# fail later. If the system has such a broken version
|
||||
# do not use it.
|
||||
- if capstone.found() and not cc.compiles('#include <capstone.h>',
|
||||
+ if capstone.found() and not cc.compiles('#include <capstone/capstone.h>',
|
||||
dependencies: [capstone])
|
||||
capstone = not_found
|
||||
if get_option('capstone').enabled()
|
||||
@ -60,6 +60,7 @@
|
||||
<flag name="vte">Enable terminal support (<pkg>x11-libs/vte</pkg>) in the GTK+ interface</flag>
|
||||
<flag name="xattr">Add support for getting and setting POSIX extended attributes, through
|
||||
<pkg>sys-apps/attr</pkg>. Requisite for the virtfs backend.</flag>
|
||||
<flag name="xdp">Enable support for XDP through <pkg>net-libs/xdp-tools</pkg></flag>
|
||||
<flag name="xen">Enables support for Xen backends</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
|
||||
979
sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-7.2.14.ebuild
vendored
Normal file
979
sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-7.2.14.ebuild
vendored
Normal file
@ -0,0 +1,979 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
|
||||
# Set to 1 if prebuilt, 0 if not
|
||||
# (the construct below is to allow overriding from env for script)
|
||||
QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
|
||||
QEMU_DOCS_PREBUILT_DEV=ajak
|
||||
QEMU_DOCS_VERSION="7.2.0"
|
||||
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
|
||||
# bug #830088
|
||||
QEMU_DOC_USEFLAG="+doc"
|
||||
|
||||
PYTHON_COMPAT=( python3_{10,11} )
|
||||
PYTHON_REQ_USE="ncurses,readline"
|
||||
|
||||
FIRMWARE_ABI_VERSION="7.2.0"
|
||||
|
||||
inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
|
||||
pax-utils xdg-utils
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
QEMU_DOCS_PREBUILT=0
|
||||
|
||||
EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
|
||||
EGIT_SUBMODULES=(
|
||||
tests/fp/berkeley-softfloat-3
|
||||
tests/fp/berkeley-testfloat-3
|
||||
ui/keycodemapdb
|
||||
)
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
else
|
||||
MY_P="${PN}-${PV/_rc/-rc}"
|
||||
SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
|
||||
|
||||
if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
|
||||
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
|
||||
fi
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
[[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
|
||||
HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
|
||||
|
||||
LICENSE="GPL-2 LGPL-2 BSD-2"
|
||||
SLOT="0"
|
||||
|
||||
[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
|
||||
|
||||
IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
|
||||
+fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
|
||||
jack jemalloc +jpeg
|
||||
lzo multipath
|
||||
ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs
|
||||
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
|
||||
+slirp
|
||||
smartcard snappy spice ssh static static-user systemtap test udev usb
|
||||
usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
|
||||
zstd"
|
||||
|
||||
COMMON_TARGETS="
|
||||
aarch64
|
||||
alpha
|
||||
arm
|
||||
cris
|
||||
hppa
|
||||
i386
|
||||
loongarch64
|
||||
m68k
|
||||
microblaze
|
||||
microblazeel
|
||||
mips
|
||||
mips64
|
||||
mips64el
|
||||
mipsel
|
||||
nios2
|
||||
or1k
|
||||
ppc
|
||||
ppc64
|
||||
riscv32
|
||||
riscv64
|
||||
s390x
|
||||
sh4
|
||||
sh4eb
|
||||
sparc
|
||||
sparc64
|
||||
x86_64
|
||||
xtensa
|
||||
xtensaeb
|
||||
"
|
||||
IUSE_SOFTMMU_TARGETS="
|
||||
${COMMON_TARGETS}
|
||||
avr
|
||||
rx
|
||||
tricore
|
||||
"
|
||||
IUSE_USER_TARGETS="
|
||||
${COMMON_TARGETS}
|
||||
aarch64_be
|
||||
armeb
|
||||
hexagon
|
||||
mipsn32
|
||||
mipsn32el
|
||||
ppc64le
|
||||
sparc32plus
|
||||
"
|
||||
|
||||
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
|
||||
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
|
||||
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Allow no targets to be built so that people can get a tools-only build.
|
||||
# Block USE flag configurations known to not work.
|
||||
REQUIRED_USE="
|
||||
${PYTHON_REQUIRED_USE}
|
||||
qemu_softmmu_targets_arm? ( fdt )
|
||||
qemu_softmmu_targets_microblaze? ( fdt )
|
||||
qemu_softmmu_targets_mips64el? ( fdt )
|
||||
qemu_softmmu_targets_ppc64? ( fdt )
|
||||
qemu_softmmu_targets_ppc? ( fdt )
|
||||
qemu_softmmu_targets_riscv32? ( fdt )
|
||||
qemu_softmmu_targets_riscv64? ( fdt )
|
||||
qemu_softmmu_targets_x86_64? ( fdt )
|
||||
sdl-image? ( sdl )
|
||||
static? ( static-user !alsa !gtk !jack !opengl !pam !pulseaudio !plugins !rbd !snappy !udev )
|
||||
static-user? ( !plugins )
|
||||
virgl? ( opengl )
|
||||
virtfs? ( xattr )
|
||||
vnc? ( gnutls )
|
||||
vte? ( gtk )
|
||||
multipath? ( udev )
|
||||
plugins? ( !static !static-user )
|
||||
"
|
||||
for smname in ${IUSE_SOFTMMU_TARGETS} ; do
|
||||
REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( seccomp ) "
|
||||
done
|
||||
|
||||
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
||||
# and user/softmmu targets (qemu-*, qemu-system-*).
|
||||
#
|
||||
# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
|
||||
#
|
||||
# The attr lib isn't always linked in (although the USE flag is always
|
||||
# respected). This is because qemu supports using the C library's API
|
||||
# when available rather than always using the external library.
|
||||
ALL_DEPEND="
|
||||
dev-libs/glib:2[static-libs(+)]
|
||||
sys-libs/zlib[static-libs(+)]
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
systemtap? ( dev-debug/systemtap )
|
||||
xattr? ( sys-apps/attr[static-libs(+)] )"
|
||||
|
||||
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
||||
# softmmu targets (qemu-system-*).
|
||||
SOFTMMU_TOOLS_DEPEND="
|
||||
sys-libs/libcap-ng[static-libs(+)]
|
||||
>=x11-libs/pixman-0.28.0[static-libs(+)]
|
||||
accessibility? (
|
||||
app-accessibility/brltty[api]
|
||||
app-accessibility/brltty[static-libs(+)]
|
||||
)
|
||||
aio? ( dev-libs/libaio[static-libs(+)] )
|
||||
alsa? ( >=media-libs/alsa-lib-1.0.13 )
|
||||
bpf? ( dev-libs/libbpf:= )
|
||||
bzip2? ( app-arch/bzip2[static-libs(+)] )
|
||||
capstone? ( dev-libs/capstone:=[static-libs(+)] )
|
||||
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
|
||||
fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
|
||||
fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
|
||||
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
|
||||
gnutls? (
|
||||
>=net-libs/gnutls-3.0:=[static-libs(+)]
|
||||
dev-libs/nettle:=[static-libs(+)]
|
||||
)
|
||||
gtk? (
|
||||
x11-libs/cairo
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/libX11
|
||||
vte? ( x11-libs/vte:2.91 )
|
||||
)
|
||||
infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
|
||||
iscsi? ( net-libs/libiscsi )
|
||||
io-uring? ( sys-libs/liburing:=[static-libs(+)] )
|
||||
jack? ( virtual/jack )
|
||||
jemalloc? ( dev-libs/jemalloc )
|
||||
jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
|
||||
lzo? ( dev-libs/lzo:2[static-libs(+)] )
|
||||
multipath? ( sys-fs/multipath-tools )
|
||||
ncurses? (
|
||||
sys-libs/ncurses:=[unicode(+)]
|
||||
sys-libs/ncurses:=[static-libs(+)]
|
||||
)
|
||||
nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
|
||||
numa? ( sys-process/numactl[static-libs(+)] )
|
||||
opengl? (
|
||||
virtual/opengl
|
||||
media-libs/libepoxy[static-libs(+)]
|
||||
media-libs/mesa[static-libs(+)]
|
||||
media-libs/mesa[egl(+),gbm(+)]
|
||||
)
|
||||
pam? ( sys-libs/pam )
|
||||
png? ( media-libs/libpng:0=[static-libs(+)] )
|
||||
pulseaudio? ( media-libs/libpulse )
|
||||
rbd? ( sys-cluster/ceph )
|
||||
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
|
||||
sdl? (
|
||||
media-libs/libsdl2[video]
|
||||
media-libs/libsdl2[static-libs(+)]
|
||||
)
|
||||
sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
|
||||
seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
|
||||
slirp? ( net-libs/libslirp[static-libs(+)] )
|
||||
smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
|
||||
snappy? ( app-arch/snappy:= )
|
||||
spice? (
|
||||
>=app-emulation/spice-protocol-0.12.3
|
||||
>=app-emulation/spice-0.12.0[static-libs(+)]
|
||||
)
|
||||
ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
|
||||
udev? ( virtual/libudev:= )
|
||||
usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
|
||||
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
|
||||
vde? ( net-misc/vde[static-libs(+)] )
|
||||
virgl? ( media-libs/virglrenderer[static-libs(+)] )
|
||||
virtfs? ( sys-libs/libcap )
|
||||
xen? ( app-emulation/xen-tools:= )
|
||||
zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
|
||||
"
|
||||
|
||||
EDK2_OVMF_VERSION="202202"
|
||||
SEABIOS_VERSION="1.16.0"
|
||||
|
||||
X86_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
|
||||
~sys-firmware/ipxe-1.21.1[binary,qemu]
|
||||
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
~sys-firmware/sgabios-0.1_pre10[binary]
|
||||
)
|
||||
!pin-upstream-blobs? (
|
||||
|| (
|
||||
>=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
|
||||
>=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
|
||||
)
|
||||
sys-firmware/ipxe[qemu]
|
||||
|| (
|
||||
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|
||||
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
sys-firmware/sgabios
|
||||
)"
|
||||
PPC_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
!pin-upstream-blobs? (
|
||||
|| (
|
||||
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|
||||
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
)
|
||||
"
|
||||
|
||||
BDEPEND="
|
||||
$(python_gen_impl_dep)
|
||||
dev-lang/perl
|
||||
dev-build/meson
|
||||
sys-apps/texinfo
|
||||
virtual/pkgconfig
|
||||
doc? (
|
||||
dev-python/sphinx[${PYTHON_USEDEP}]
|
||||
dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
|
||||
)
|
||||
gtk? ( nls? ( sys-devel/gettext ) )
|
||||
test? (
|
||||
dev-libs/glib[utils]
|
||||
app-alternatives/bc
|
||||
)
|
||||
"
|
||||
CDEPEND="
|
||||
!static? (
|
||||
${ALL_DEPEND//\[static-libs(+)]}
|
||||
${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
|
||||
)
|
||||
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
|
||||
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
|
||||
qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
|
||||
qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
|
||||
"
|
||||
DEPEND="${CDEPEND}
|
||||
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
|
||||
static? (
|
||||
${ALL_DEPEND}
|
||||
${SOFTMMU_TOOLS_DEPEND}
|
||||
)
|
||||
static-user? ( ${ALL_DEPEND} )"
|
||||
RDEPEND="${CDEPEND}
|
||||
acct-group/kvm
|
||||
selinux? (
|
||||
sec-policy/selinux-qemu
|
||||
sys-libs/libselinux
|
||||
)"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
|
||||
"${FILESDIR}"/${PN}-6.0.0-make.patch
|
||||
"${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch
|
||||
"${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
|
||||
"${FILESDIR}"/${PN}-7.2.0-disable-gmp.patch
|
||||
)
|
||||
|
||||
QA_PREBUILT="
|
||||
usr/share/qemu/hppa-firmware.img
|
||||
usr/share/qemu/openbios-ppc
|
||||
usr/share/qemu/openbios-sparc64
|
||||
usr/share/qemu/openbios-sparc32
|
||||
usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
|
||||
usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
|
||||
usr/share/qemu/palcode-clipper
|
||||
usr/share/qemu/s390-ccw.img
|
||||
usr/share/qemu/s390-netboot.img
|
||||
usr/share/qemu/u-boot.e500
|
||||
"
|
||||
|
||||
QA_WX_LOAD="usr/bin/qemu-i386
|
||||
usr/bin/qemu-x86_64
|
||||
usr/bin/qemu-alpha
|
||||
usr/bin/qemu-arm
|
||||
usr/bin/qemu-cris
|
||||
usr/bin/qemu-m68k
|
||||
usr/bin/qemu-microblaze
|
||||
usr/bin/qemu-microblazeel
|
||||
usr/bin/qemu-mips
|
||||
usr/bin/qemu-mipsel
|
||||
usr/bin/qemu-or1k
|
||||
usr/bin/qemu-ppc
|
||||
usr/bin/qemu-ppc64
|
||||
usr/bin/qemu-sh4
|
||||
usr/bin/qemu-sh4eb
|
||||
usr/bin/qemu-sparc
|
||||
usr/bin/qemu-sparc64
|
||||
usr/bin/qemu-armeb
|
||||
usr/bin/qemu-sparc32plus
|
||||
usr/bin/qemu-s390x
|
||||
usr/bin/qemu-unicore32
|
||||
"
|
||||
|
||||
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
|
||||
kernel module loaded before running kvm. The easiest way to ensure that the
|
||||
kernel module is loaded is to load it on boot.
|
||||
For AMD CPUs the module is called 'kvm-amd'.
|
||||
For Intel CPUs the module is called 'kvm-intel'.
|
||||
Please review /etc/conf.d/modules for how to load these.
|
||||
|
||||
Make sure your user is in the 'kvm' group. Just run
|
||||
$ gpasswd -a <USER> kvm
|
||||
then have <USER> re-login.
|
||||
|
||||
For brand new installs, the default permissions on /dev/kvm might not let
|
||||
you access it. You can tell udev to reset ownership/perms:
|
||||
$ udevadm trigger -c add /dev/kvm
|
||||
|
||||
If you want to register binfmt handlers for qemu user targets:
|
||||
For openrc:
|
||||
# rc-update add qemu-binfmt
|
||||
For systemd:
|
||||
# ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
|
||||
|
||||
pkg_pretend() {
|
||||
if use kernel_linux && kernel_is lt 2 6 25; then
|
||||
eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
|
||||
elif use kernel_linux; then
|
||||
if ! linux_config_exists; then
|
||||
eerror "Unable to check your kernel for KVM support"
|
||||
else
|
||||
CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
|
||||
ERROR_KVM="You must enable KVM in your kernel to continue"
|
||||
ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
|
||||
ERROR_KVM_AMD+=" your kernel configuration."
|
||||
ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
|
||||
ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
|
||||
ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
|
||||
ERROR_TUN+=" into your kernel or loaded as a module to use the"
|
||||
ERROR_TUN+=" virtual network device if using -net tap."
|
||||
ERROR_BRIDGE="You will also need support for 802.1d"
|
||||
ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
|
||||
use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
|
||||
ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
|
||||
ERROR_VHOST_NET+=" support"
|
||||
|
||||
if use amd64 || use x86 || use amd64-linux || use x86-linux; then
|
||||
if grep -q AuthenticAMD /proc/cpuinfo; then
|
||||
CONFIG_CHECK+=" ~KVM_AMD"
|
||||
elif grep -q GenuineIntel /proc/cpuinfo; then
|
||||
CONFIG_CHECK+=" ~KVM_INTEL"
|
||||
fi
|
||||
fi
|
||||
|
||||
use python && CONFIG_CHECK+=" ~DEBUG_FS"
|
||||
ERROR_DEBUG_FS="debugFS support required for kvm_stat"
|
||||
|
||||
# Now do the actual checks setup above
|
||||
check_extra_config
|
||||
fi
|
||||
fi
|
||||
|
||||
if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
|
||||
eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
|
||||
eerror "instances are still pointing to it. Please update your"
|
||||
eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
|
||||
eerror "and the right system binary (e.g. qemu-system-x86_64)."
|
||||
die "update your virt configs to not use qemu-kvm"
|
||||
fi
|
||||
}
|
||||
|
||||
# Sanity check to make sure target lists are kept up-to-date.
|
||||
check_targets() {
|
||||
local var=$1 mak=$2
|
||||
local detected sorted
|
||||
|
||||
pushd "${S}"/configs/targets/ >/dev/null || die
|
||||
|
||||
# Force C locale until glibc is updated. #564936
|
||||
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
|
||||
sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
|
||||
if [[ ${sorted} != "${detected}" ]] ; then
|
||||
eerror "The ebuild needs to be kept in sync."
|
||||
eerror "${var}: ${sorted}"
|
||||
eerror "$(printf '%-*s' ${#var} configure): ${detected}"
|
||||
die "sync ${var} to the list of targets"
|
||||
fi
|
||||
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
check_targets IUSE_SOFTMMU_TARGETS softmmu
|
||||
check_targets IUSE_USER_TARGETS linux-user
|
||||
|
||||
default
|
||||
|
||||
# Use correct toolchain to fix cross-compiling
|
||||
tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
|
||||
export WINDRES=${CHOST}-windres
|
||||
|
||||
# Workaround for bug #938302
|
||||
if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then
|
||||
cat >> "${S}"/configs/meson/linux.txt <<-EOF || die
|
||||
[binaries]
|
||||
dtrace='stap-dtrace'
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Verbose builds
|
||||
MAKEOPTS+=" V=1"
|
||||
|
||||
# We already force -D_FORTIFY_SOURCE=2 (or 3) in our toolchain, but
|
||||
# this setting (-U then -D..=2) will prevent us from trying out 3, so
|
||||
# drop it. No change to level of protection b/c we patch our toolchain.
|
||||
sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
|
||||
|
||||
# Remove bundled modules
|
||||
rm -r dtc meson roms/*/ || die
|
||||
}
|
||||
|
||||
##
|
||||
# configures qemu based on the build directory and the build type
|
||||
# we are using.
|
||||
#
|
||||
qemu_src_configure() {
|
||||
debug-print-function ${FUNCNAME} "$@"
|
||||
|
||||
local buildtype=$1
|
||||
local builddir="${S}/${buildtype}-build"
|
||||
|
||||
mkdir "${builddir}" || die
|
||||
|
||||
local conf_opts=(
|
||||
--prefix=/usr
|
||||
--sysconfdir=/etc
|
||||
--bindir=/usr/bin
|
||||
--libdir=/usr/$(get_libdir)
|
||||
--datadir=/usr/share
|
||||
--docdir=/usr/share/doc/${PF}/html
|
||||
--mandir=/usr/share/man
|
||||
--localstatedir=/var
|
||||
--disable-bsd-user
|
||||
--disable-containers # bug #732972
|
||||
--disable-guest-agent
|
||||
--disable-strip
|
||||
--with-git-submodules=ignore
|
||||
|
||||
# bug #746752: TCG interpreter has a few limitations:
|
||||
# - it does not support FPU
|
||||
# - it's generally slower on non-self-modifying code
|
||||
# It's advantage is support for host architectures
|
||||
# where native codegeneration is not implemented.
|
||||
# Gentoo has qemu keyworded only on targets with
|
||||
# native code generation available. Avoid the interpreter.
|
||||
--disable-tcg-interpreter
|
||||
|
||||
--disable-werror
|
||||
# We support gnutls/nettle for crypto operations. It is possible
|
||||
# to use gcrypt when gnutls/nettle are disabled (but not when they
|
||||
# are enabled), but it's not really worth the hassle. Disable it
|
||||
# all the time to avoid automatically detecting it. #568856
|
||||
--disable-gcrypt
|
||||
--cc="$(tc-getCC)"
|
||||
--cxx="$(tc-getCXX)"
|
||||
--host-cc="$(tc-getBUILD_CC)"
|
||||
|
||||
$(use_enable alsa)
|
||||
$(use_enable debug debug-info)
|
||||
$(use_enable debug debug-tcg)
|
||||
$(use_enable jack)
|
||||
$(use_enable nls gettext)
|
||||
$(use_enable oss)
|
||||
$(use_enable plugins)
|
||||
$(use_enable pulseaudio pa)
|
||||
$(use_enable selinux)
|
||||
$(use_enable xattr attr)
|
||||
)
|
||||
|
||||
# Disable options not used by user targets. This simplifies building
|
||||
# static user targets (USE=static-user) considerably.
|
||||
conf_notuser() {
|
||||
if [[ ${buildtype} == "user" ]] ; then
|
||||
echo "--disable-${2:-$1}"
|
||||
else
|
||||
use_enable "$@"
|
||||
fi
|
||||
}
|
||||
# Enable option only for softmmu build, but not 'user' or 'tools'
|
||||
conf_softmmu() {
|
||||
if [[ ${buildtype} == "softmmu" ]] ; then
|
||||
use_enable "$@"
|
||||
else
|
||||
echo "--disable-${2:-$1}"
|
||||
fi
|
||||
}
|
||||
# Enable option only for tools build, but not 'user' or 'softmmu'
|
||||
conf_tools() {
|
||||
if [[ ${buildtype} == "tools" ]] ; then
|
||||
use_enable "$@"
|
||||
else
|
||||
echo "--disable-${2:-$1}"
|
||||
fi
|
||||
}
|
||||
# Special case for the malloc flag, because the --disable flag does
|
||||
# not exist and trying like above will break configuring.
|
||||
conf_malloc() {
|
||||
if [[ ! ${buildtype} == "user" ]] ; then
|
||||
usex "${1}" "--enable-malloc=${1}" ""
|
||||
fi
|
||||
}
|
||||
conf_opts+=(
|
||||
$(conf_notuser accessibility brlapi)
|
||||
$(conf_notuser aio linux-aio)
|
||||
$(conf_softmmu bpf)
|
||||
$(conf_notuser bzip2)
|
||||
$(conf_notuser capstone)
|
||||
$(conf_notuser curl)
|
||||
$(conf_tools doc docs)
|
||||
$(conf_notuser fdt)
|
||||
$(conf_notuser fuse)
|
||||
$(conf_notuser glusterfs)
|
||||
$(conf_notuser gnutls)
|
||||
$(conf_notuser gnutls nettle)
|
||||
$(conf_notuser gtk)
|
||||
$(conf_notuser infiniband rdma)
|
||||
$(conf_notuser iscsi libiscsi)
|
||||
$(conf_notuser io-uring linux-io-uring)
|
||||
$(conf_malloc jemalloc)
|
||||
$(conf_notuser jpeg vnc-jpeg)
|
||||
$(conf_notuser kernel_linux kvm)
|
||||
$(conf_notuser lzo)
|
||||
$(conf_notuser multipath mpath)
|
||||
$(conf_notuser ncurses curses)
|
||||
$(conf_notuser nfs libnfs)
|
||||
$(conf_notuser numa)
|
||||
$(conf_notuser opengl)
|
||||
$(conf_notuser pam auth-pam)
|
||||
$(conf_notuser png)
|
||||
$(conf_notuser rbd)
|
||||
$(conf_notuser sasl vnc-sasl)
|
||||
$(conf_notuser sdl)
|
||||
$(conf_softmmu sdl-image)
|
||||
$(conf_notuser seccomp)
|
||||
$(conf_notuser slirp)
|
||||
$(conf_notuser smartcard)
|
||||
$(conf_notuser snappy)
|
||||
$(conf_notuser spice)
|
||||
$(conf_notuser ssh libssh)
|
||||
$(conf_notuser udev libudev)
|
||||
$(conf_notuser usb libusb)
|
||||
$(conf_notuser usbredir usb-redir)
|
||||
$(conf_notuser vde)
|
||||
$(conf_notuser vhost-net)
|
||||
$(conf_notuser virgl virglrenderer)
|
||||
$(conf_softmmu virtfs)
|
||||
$(conf_notuser vnc)
|
||||
$(conf_notuser vte)
|
||||
$(conf_notuser xen)
|
||||
$(conf_notuser xen xen-pci-passthrough)
|
||||
# use prebuilt keymaps, bug #759604
|
||||
--disable-xkbcommon
|
||||
$(conf_notuser zstd)
|
||||
)
|
||||
|
||||
if [[ ! ${buildtype} == "user" ]] ; then
|
||||
# audio options
|
||||
local audio_opts=(
|
||||
# Note: backend order matters here: #716202
|
||||
# We iterate from higher-level to lower level.
|
||||
$(usex pulseaudio pa "")
|
||||
$(usev jack)
|
||||
$(usev sdl)
|
||||
$(usev alsa)
|
||||
$(usev oss)
|
||||
)
|
||||
conf_opts+=(
|
||||
--audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
|
||||
)
|
||||
fi
|
||||
|
||||
case ${buildtype} in
|
||||
user)
|
||||
conf_opts+=(
|
||||
--enable-linux-user
|
||||
--disable-system
|
||||
--disable-blobs
|
||||
--disable-tools
|
||||
--disable-cap-ng
|
||||
--disable-seccomp
|
||||
)
|
||||
local static_flag="static-user"
|
||||
;;
|
||||
softmmu)
|
||||
conf_opts+=(
|
||||
--disable-linux-user
|
||||
--enable-system
|
||||
--disable-tools
|
||||
--enable-cap-ng
|
||||
--enable-seccomp
|
||||
)
|
||||
local static_flag="static"
|
||||
;;
|
||||
tools)
|
||||
conf_opts+=(
|
||||
--disable-linux-user
|
||||
--disable-system
|
||||
--disable-blobs
|
||||
--enable-tools
|
||||
--enable-cap-ng
|
||||
)
|
||||
local static_flag="static"
|
||||
;;
|
||||
esac
|
||||
|
||||
local targets="${buildtype}_targets"
|
||||
[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
|
||||
|
||||
# Add support for SystemTap
|
||||
use systemtap && conf_opts+=( --enable-trace-backend=dtrace )
|
||||
|
||||
# We always want to attempt to build with PIE support as it results
|
||||
# in a more secure binary. But it doesn't work with static or if
|
||||
# the current GCC doesn't have PIE support.
|
||||
if use ${static_flag}; then
|
||||
conf_opts+=( --static --disable-pie )
|
||||
else
|
||||
tc-enables-pie && conf_opts+=( --enable-pie )
|
||||
fi
|
||||
|
||||
# Meson will not use a cross-file unless cross_prefix is set.
|
||||
tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
|
||||
|
||||
# Plumb through equivalent of EXTRA_ECONF to allow experiments
|
||||
# like bug #747928.
|
||||
conf_opts+=( ${EXTRA_CONF_QEMU} )
|
||||
|
||||
echo "../configure ${conf_opts[*]}"
|
||||
cd "${builddir}"
|
||||
../configure "${conf_opts[@]}" || die "configure failed"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local target
|
||||
|
||||
python_setup
|
||||
|
||||
softmmu_targets= softmmu_bins=()
|
||||
user_targets= user_bins=()
|
||||
|
||||
for target in ${IUSE_SOFTMMU_TARGETS} ; do
|
||||
if use "qemu_softmmu_targets_${target}"; then
|
||||
softmmu_targets+=",${target}-softmmu"
|
||||
softmmu_bins+=( "qemu-system-${target}" )
|
||||
fi
|
||||
done
|
||||
|
||||
for target in ${IUSE_USER_TARGETS} ; do
|
||||
if use "qemu_user_targets_${target}"; then
|
||||
user_targets+=",${target}-linux-user"
|
||||
user_bins+=( "qemu-${target}" )
|
||||
fi
|
||||
done
|
||||
|
||||
softmmu_targets=${softmmu_targets#,}
|
||||
user_targets=${user_targets#,}
|
||||
|
||||
[[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
|
||||
[[ -n ${user_targets} ]] && qemu_src_configure "user"
|
||||
qemu_src_configure "tools"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if [[ -n ${user_targets} ]]; then
|
||||
cd "${S}/user-build" || die
|
||||
default
|
||||
fi
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build" || die
|
||||
default
|
||||
fi
|
||||
|
||||
cd "${S}/tools-build" || die
|
||||
default
|
||||
}
|
||||
|
||||
src_test() {
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build" || die
|
||||
pax-mark m */qemu-system-* #515550
|
||||
emake check
|
||||
fi
|
||||
}
|
||||
|
||||
qemu_python_install() {
|
||||
python_domodule "${S}/python/qemu"
|
||||
|
||||
python_doscript "${S}/scripts/kvm/vmxcap"
|
||||
python_doscript "${S}/scripts/qmp/qmp-shell"
|
||||
python_doscript "${S}/scripts/qmp/qemu-ga-client"
|
||||
}
|
||||
|
||||
# Generate binfmt support files.
|
||||
# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
|
||||
# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
|
||||
generate_initd() {
|
||||
local out="${T}/qemu-binfmt"
|
||||
local out_systemd="${T}/qemu.conf"
|
||||
local d="${T}/binfmt.d"
|
||||
|
||||
einfo "Generating qemu binfmt scripts and configuration files"
|
||||
|
||||
# Generate the debian fragments first.
|
||||
mkdir -p "${d}"
|
||||
"${S}"/scripts/qemu-binfmt-conf.sh \
|
||||
--debian \
|
||||
--exportdir "${d}" \
|
||||
--qemu-path "${EPREFIX}/usr/bin" \
|
||||
|| die
|
||||
# Then turn the fragments into a shell script we can source.
|
||||
sed -E -i \
|
||||
-e 's:^([^ ]+) (.*)$:\1="\2":' \
|
||||
"${d}"/* || die
|
||||
|
||||
# Generate the init.d script by assembling the fragments from above.
|
||||
local f qcpu package interpreter magic mask
|
||||
cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
|
||||
for f in "${d}"/qemu-* ; do
|
||||
source "${f}"
|
||||
|
||||
# Normalize the cpu logic like we do in the init.d for the native cpu.
|
||||
qcpu=${package#qemu-}
|
||||
case ${qcpu} in
|
||||
arm*) qcpu="arm";;
|
||||
mips*) qcpu="mips";;
|
||||
ppc*) qcpu="ppc";;
|
||||
s390*) qcpu="s390";;
|
||||
sh*) qcpu="sh";;
|
||||
sparc*) qcpu="sparc";;
|
||||
esac
|
||||
|
||||
# we use 'printf' here to be portable across 'sh'
|
||||
# implementations: #679168
|
||||
cat <<EOF >>"${out}"
|
||||
if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
|
||||
printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
|
||||
fi
|
||||
EOF
|
||||
|
||||
echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
|
||||
|
||||
done
|
||||
cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
if [[ -n ${user_targets} ]]; then
|
||||
cd "${S}/user-build"
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# Install binfmt handler init script for user targets.
|
||||
generate_initd
|
||||
doinitd "${T}/qemu-binfmt"
|
||||
|
||||
# Install binfmt/qemu.conf.
|
||||
insinto "/usr/share/qemu/binfmt.d"
|
||||
doins "${T}/qemu.conf"
|
||||
fi
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build"
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# This might not exist if the test failed. #512010
|
||||
[[ -e check-report.html ]] && dodoc check-report.html
|
||||
|
||||
if use kernel_linux; then
|
||||
udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
|
||||
fi
|
||||
|
||||
if use python; then
|
||||
python_foreach_impl qemu_python_install
|
||||
fi
|
||||
fi
|
||||
|
||||
cd "${S}/tools-build" || die
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# If USE=doc, there'll be newly generated docs which we install instead.
|
||||
if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
|
||||
doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
|
||||
fi
|
||||
|
||||
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
|
||||
pushd "${ED}"/usr/bin >/dev/null || die
|
||||
pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
|
||||
popd >/dev/null || die
|
||||
|
||||
# Install config file example for qemu-bridge-helper
|
||||
insinto "/etc/qemu"
|
||||
doins "${FILESDIR}/bridge.conf"
|
||||
|
||||
cd "${S}" || die
|
||||
dodoc MAINTAINERS docs/specs/pci-ids.txt
|
||||
newdoc pc-bios/README README.pc-bios
|
||||
|
||||
# Disallow stripping of prebuilt firmware files.
|
||||
dostrip -x ${QA_PREBUILT}
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
# Remove SeaBIOS since we're using the SeaBIOS packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
|
||||
fi
|
||||
|
||||
# Remove vgabios since we're using the seavgabios packaged one
|
||||
rm "${ED}/usr/share/qemu/vgabios.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
|
||||
|
||||
# PPC/PPC64 loads vgabios-stdvga
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
|
||||
dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
|
||||
dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
|
||||
dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
|
||||
dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
|
||||
dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
|
||||
dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
|
||||
fi
|
||||
|
||||
# Remove sgabios since we're using the sgabios packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
|
||||
fi
|
||||
|
||||
# Remove iPXE since we're using the iPXE packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
|
||||
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
|
||||
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
|
||||
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
|
||||
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
|
||||
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
|
||||
fi
|
||||
fi
|
||||
|
||||
DISABLE_AUTOFORMATTING=true
|
||||
readme.gentoo_create_doc
|
||||
}
|
||||
|
||||
firmware_abi_change() {
|
||||
local pv
|
||||
for pv in ${REPLACING_VERSIONS}; do
|
||||
if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
|
||||
udev_reload
|
||||
fi
|
||||
|
||||
xdg_icon_cache_update
|
||||
|
||||
[[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
|
||||
fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
|
||||
|
||||
DISABLE_AUTOFORMATTING=true
|
||||
readme.gentoo_print_elog
|
||||
|
||||
if use pin-upstream-blobs && firmware_abi_change; then
|
||||
ewarn "This version of qemu pins new versions of firmware blobs:"
|
||||
|
||||
if has_version 'sys-firmware/edk2-ovmf-bin'; then
|
||||
ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
|
||||
else
|
||||
ewarn " $(best_version sys-firmware/edk2-ovmf)"
|
||||
fi
|
||||
|
||||
if has_version 'sys-firmware/seabios-bin'; then
|
||||
ewarn " $(best_version sys-firmware/seabios-bin)"
|
||||
else
|
||||
ewarn " $(best_version sys-firmware/seabios)"
|
||||
fi
|
||||
|
||||
ewarn " $(best_version sys-firmware/ipxe)"
|
||||
ewarn " $(best_version sys-firmware/sgabios)"
|
||||
ewarn "This might break resume of hibernated guests (started with a different"
|
||||
ewarn "firmware version) and live migration to/from qemu versions with different"
|
||||
ewarn "firmware. Please (cold) restart all running guests. For functional"
|
||||
ewarn "guest migration ensure that all"
|
||||
ewarn "hosts run at least"
|
||||
ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_info() {
|
||||
echo "Using:"
|
||||
echo " $(best_version app-emulation/spice-protocol)"
|
||||
|
||||
if has_version 'sys-firmware/edk2-ovmf-bin'; then
|
||||
echo " $(best_version sys-firmware/edk2-ovmf-bin)"
|
||||
else
|
||||
echo " $(best_version sys-firmware/edk2-ovmf)"
|
||||
fi
|
||||
|
||||
if has_version 'sys-firmware/seabios-bin'; then
|
||||
echo " $(best_version sys-firmware/seabios-bin)"
|
||||
else
|
||||
echo " $(best_version sys-firmware/seabios)"
|
||||
fi
|
||||
|
||||
echo " $(best_version sys-firmware/ipxe)"
|
||||
echo " $(best_version sys-firmware/sgabios)"
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_icon_cache_update
|
||||
udev_reload
|
||||
}
|
||||
1000
sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.2.7.ebuild
vendored
Normal file
1000
sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-8.2.7.ebuild
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1007
sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.0.2-r2.ebuild
vendored
Normal file
1007
sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.0.2-r2.ebuild
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1007
sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.0.3.ebuild
vendored
Normal file
1007
sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.0.3.ebuild
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1006
sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.1.0.ebuild
vendored
Normal file
1006
sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.1.0.ebuild
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -6,14 +6,14 @@ EAPI=8
|
||||
# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
|
||||
# Set to 1 if prebuilt, 0 if not
|
||||
# (the construct below is to allow overriding from env for script)
|
||||
QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-0}
|
||||
QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
|
||||
QEMU_DOCS_PREBUILT_DEV=sam
|
||||
QEMU_DOCS_VERSION=$(ver_cut 1-3)
|
||||
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
|
||||
# bug #830088
|
||||
QEMU_DOC_USEFLAG="+doc"
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
PYTHON_REQ_USE="ncurses,readline"
|
||||
|
||||
FIRMWARE_ABI_VERSION="7.2.0"
|
||||
@ -66,7 +66,7 @@ IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
|
||||
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
|
||||
+slirp
|
||||
smartcard snappy spice ssh static-user systemtap test udev usb
|
||||
usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
|
||||
usbredir vde +vhost-net virgl virtfs +vnc vte xattr xdp xen
|
||||
zstd"
|
||||
|
||||
COMMON_TARGETS="
|
||||
@ -141,6 +141,7 @@ REQUIRED_USE="
|
||||
vte? ( gtk )
|
||||
multipath? ( udev )
|
||||
plugins? ( !static-user )
|
||||
xdp? ( bpf )
|
||||
"
|
||||
for smname in ${IUSE_SOFTMMU_TARGETS} ; do
|
||||
REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
|
||||
@ -235,6 +236,7 @@ SOFTMMU_TOOLS_DEPEND="
|
||||
vde? ( net-misc/vde[static-libs(+)] )
|
||||
virgl? ( media-libs/virglrenderer[static-libs(+)] )
|
||||
virtfs? ( sys-libs/libcap )
|
||||
xdp? ( net-libs/xdp-tools )
|
||||
xen? ( app-emulation/xen-tools:= )
|
||||
zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
|
||||
"
|
||||
@ -316,7 +318,7 @@ RDEPEND="
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-9.0.0-disable-keymap.patch
|
||||
"${FILESDIR}"/${PN}-9.0.0-capstone-include-path.patch
|
||||
"${FILESDIR}"/${PN}-9.1.0-capstone-include-path.patch
|
||||
"${FILESDIR}"/${PN}-9.0.0-also-build-virtfs-proxy-helper.patch
|
||||
"${FILESDIR}"/${PN}-8.1.0-skip-tests.patch
|
||||
"${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch
|
||||
@ -633,6 +635,7 @@ qemu_src_configure() {
|
||||
$(conf_softmmu virtfs)
|
||||
$(conf_notuser vnc)
|
||||
$(conf_notuser vte)
|
||||
$(conf_softmmu xdp af-xdp)
|
||||
$(conf_notuser xen)
|
||||
$(conf_notuser xen xen-pci-passthrough)
|
||||
# use prebuilt keymaps, bug #759604
|
||||
|
||||
@ -1 +1,2 @@
|
||||
DIST pax-utils-1.3.7.tar.xz 113740 BLAKE2B d801df9c426f318c871655f238fe27b53e656c2789ef8508019997c98bbc540987b611642d87e76ae9f76a95f6cce1acd0b10e3491a146d1e3b3f727a6f96bdc SHA512 f1b87a564573da838a02c4cc10e0d5f9754c3b004ecb172a6290b48a8179b30695ae556942457dfac3caf07b91dd56eb1d801475c35e9708e4d671aa507f9576
|
||||
DIST pax-utils-1.3.8.tar.xz 123556 BLAKE2B 9e658334f37bfee90d4d168cdb81bc3b4012c38b569c22c3b01688408e90f4727043636ff8908e6c049fce7be5476ba86773f07cb192e3a34721c1469f69b48d SHA512 0dde95f86802729d80b7b38af84dec636e973f6abc70600633edcb05d3d5f95c1b2861300ce478dd7f798c7a1e5eccb1011c06c53adba38e11a996b69d463656
|
||||
|
||||
77
sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-1.3.8.ebuild
vendored
Normal file
77
sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-1.3.8.ebuild
vendored
Normal file
@ -0,0 +1,77 @@
|
||||
# Copyright 2022-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Note: if bumping pax-utils because of syscall changes in glibc, please
|
||||
# revbump glibc and update the dependency in its ebuild for the affected
|
||||
# versions.
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
|
||||
inherit meson python-single-r1
|
||||
|
||||
DESCRIPTION="ELF utils that can check files for security relevant properties"
|
||||
HOMEPAGE="https://wiki.gentoo.org/wiki/Hardened/PaX_Utilities"
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/pax-utils.git"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="
|
||||
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz
|
||||
https://dev.gentoo.org/~vapier/dist/${P}.tar.xz
|
||||
"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
IUSE="caps man python seccomp test"
|
||||
REQUIRED_USE="
|
||||
python? ( ${PYTHON_REQUIRED_USE} )
|
||||
test? ( python )
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
MY_PYTHON_DEPS="
|
||||
${PYTHON_DEPS}
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/pyelftools[${PYTHON_USEDEP}]
|
||||
')
|
||||
"
|
||||
RDEPEND="
|
||||
caps? ( >=sys-libs/libcap-2.24 )
|
||||
python? ( ${MY_PYTHON_DEPS} )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
caps? ( virtual/pkgconfig )
|
||||
man? ( app-text/xmlto )
|
||||
python? ( ${MY_PYTHON_DEPS} )
|
||||
"
|
||||
|
||||
pkg_setup() {
|
||||
if use test || use python; then
|
||||
python-single-r1_pkg_setup
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local emesonargs=(
|
||||
"-Dlddtree_implementation=$(usex python python sh)"
|
||||
$(meson_feature caps use_libcap)
|
||||
$(meson_feature man build_manpages)
|
||||
$(meson_use seccomp use_seccomp)
|
||||
$(meson_use test tests)
|
||||
|
||||
# fuzzing is currently broken
|
||||
-Duse_fuzzing=false
|
||||
)
|
||||
meson_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
meson_src_install
|
||||
|
||||
use python && python_fix_shebang "${ED}"/usr/bin/lddtree
|
||||
}
|
||||
@ -6,7 +6,7 @@ EAPI=8
|
||||
# Note: if bumping pax-utils because of syscall changes in glibc, please
|
||||
# revbump glibc and update the dependency in its ebuild for the affected
|
||||
# versions.
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
|
||||
inherit meson python-single-r1
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ else
|
||||
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz
|
||||
"
|
||||
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~arm64-linux ~ppc64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~arm64-linux ~ppc64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-2"
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
@ -13,7 +13,7 @@ if [[ ${PV} == *9999 ]]; then
|
||||
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/portage-utils.git"
|
||||
else
|
||||
SRC_URI="https://dev.gentoo.org/~grobian/distfiles/${P}.tar.xz"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-2"
|
||||
|
||||
@ -24,12 +24,7 @@ DIST bash-5.2.tar.gz 10950833 BLAKE2B 51b196e710794ebad8eac28c31c93eb99ac1a7db30
|
||||
DIST bash-5.2.tar.gz.sig 95 BLAKE2B 2991b7c46ef1cdca08062f419be47fca7551f4c5d9aad8a5c1da74974f5e7707d23914b4cecf9b6c9610471146b2c49b611bb62a5d974f1c37cceb77b719851c SHA512 a161664f124f906be32709f66702f8f780e6d52e558ea45e71ec60a959c9435ff68477ee65a0a9f6c0051d5592f5044fb3b410cf3cd3ae5a8a323789b01be258
|
||||
DIST bash-5.3-alpha.tar.gz 11195025 BLAKE2B b3325f6927d7dde86aae165891317b972f0b9814e134676b3d7d3aea81ce4d4cad1a01f160e290352072153ad3568ee21701a35190ef5e6274b3c03fc95c8d42 SHA512 52354eb7cd71330192ec76fdda04bcacf758a312e89b45558db5f5345f19b0d8e54732049934958cf89786f5bd7c538d88859eb8d8d22dabfc9ec7305263d10e
|
||||
DIST bash-5.3-alpha.tar.gz.sig 95 BLAKE2B 69c8b33fe2a40498662ef084967701cff1926086785a41d6f49a3c2e2b9908499226d3d970bdb6397a74d3ccc22acb3651261ad2a421799eb135c64a78af8589 SHA512 c9587da66457e2010b0852c6dbf5949821a543b7f1b616a4d016df3477913e2a655c57289e83adeeb31b8b8afca22313e3af76cf727b93932d33a889c1263c20
|
||||
DIST bash-5.3_alpha_p20240815-cf694865de527e597de5a906643a74037341a431.tar.xz 8537760 BLAKE2B df370a28aa40af0cf108f9578c81ef53cf175e97ca9b5cdca85fa8de99df81a0f58950c20e7af0180ee420218b04b9e9f721fef42b292e6b3261aa4846cabf55 SHA512 dd552214404aa1410954f3b4e3da5e744001eda2b6a613f52177bbfdff19c094a7406673dcfc1dfa653895a221969c2edcf8362556cdeadbd0cf16a610fcd191
|
||||
DIST bash-5.3_alpha_p20240821-e327891b52513bef0b34aac625c44f8fa6811f53.tar.xz 15948864 BLAKE2B c8afaa735df7dc75bf0f3b4b07c25bf9ac0cb23d7fe10451b4a39e821d3fd308384760e16d6e2256601f938f3665a1d0cdbd2638806b63029906f2ae5d646091 SHA512 e3291af9bb0c66ba6d0c52db446e51bc628933f132ab7654eb803da02ec7bf6e57bf6d13e65a25fe1c07b518e5d68a9b3526ca4e157ba3cc3d091b3c4f1fea43
|
||||
DIST bash-5.3_alpha_p20240823-2e01122fe78eb5a42c9b9f3ca46b91f895959675.tar.xz 8541288 BLAKE2B 64cf9fc5873b925558a7aa2e2a0e76f9f326ab0606b720e8684021e540bcd992307d146b9c5d2e3f1e2779a372874753c9dd8cf7296e1013470f53e70082fc5a SHA512 3a8a5b522ac082c081ababee84cf2f1f1518c9a397a1b612de40c6e07a3104c74561eb5db75e74eec742284665667135eba5eb975d8599c3e89eeafa7383b5e4
|
||||
DIST bash-5.3_alpha_p20240828-2610d40b32301cd7256bf1dfc49c9f8bfe0dcd53.tar.xz 8542760 BLAKE2B 1d06b9837e3c1a23f34f6fcc3ec919b824d28a01301e459d602cad7bde1568299e1bc01abb94f4cade96450e19ebaf85b14a7dbb6e7d8d6b38006bae5a755c5f SHA512 eff12dbf54744c3a528cc0aa5395739221ba722b08c06b9fdf5d3f93b18b9d9e2505d91abac76510b33231075b629df7a53ddf99539e8bf3b13dc2982d532e47
|
||||
DIST bash-5.3_alpha_p20240904-5576c26da8e0ad74048203398acb493c65fd3476.tar.xz 8543756 BLAKE2B 797a97c92fcef0f675c091c4fa0d9fb12f4bed75150985ba34c99b934b77821dfa57300fc9085d606ca57fb868c3b17a04d71090eb6a0fb0f711acf5901d2fa4 SHA512 634005182fc43d752f8af6d5ff04c2612ae3e5ecd9cf5fe83a53c9242df5efead0b1c4c6142a2546566d2abd81277e7133ee8e9ca19eb179b679cf8574945403
|
||||
DIST bash-5.3_alpha_p20240911-bc5ddc8698d56df588fd99864a650b834426ccf7.tar.xz 8544476 BLAKE2B 05985908b330081485fa89f4bf89ecad01f20d94dd925dcc103b3759a35629535bee5d3ebdb8673b77b9ebba813861db2be65cabdd1b637e608cd247537f7add SHA512 c648af06d1e73eea1823d144ee269e4b05ad5d9286f18eae4cd4d2c78072e23ad2c5eaebbf619c7b9aa03e4c52676130a8a105198166a18a14d0676fce938764
|
||||
DIST bash-5.3_alpha_p20240927-254081c09767738833cdf161b4bc3feb1a51690a.tar.xz 8547936 BLAKE2B 1af25e3b7fb3760d245625b788f6a6f94985b7f1a7bf7bcf9b5dd81b8df42d8dcad078edaee9c9e744a28341e0f1199f50b9aa9cef7a327b008b64f5fde4bb9d SHA512 b6191ceebe1e9d72f50108abbd687a8d20a620a9683df98ced74d7311c3cea9388af1a39c98c13e2b7e7037622231e44dd84b9d209bed18c488d9f2550f3adae
|
||||
DIST bash205b-001 1132 BLAKE2B 0c5eef29777d54ef05957ea3d63b1556fb380bd20c238dc28993d822b37bc4e78ff4048ad069f6b8cd25da77ccdeb7aecd86c4349cb9d81e5e94c7001eeae5e6 SHA512 5ce4357468821b05e747201f3aa57225ad8f540c9e2c87051720490e039c30b478b9b662a68f14a0800fefe40184e4495e2645665200f9d75e9a115b2ac08071
|
||||
DIST bash205b-002 755 BLAKE2B 6a6ed5679d451f02f8104b345c1722d11718ce3b4043b581c17786d40d8da69a34786fb56d0c363dba277b8e9dd33f12f70c9cc73a9fc39ba4a8319406f0458d SHA512 46947b0229478d5c2cfeff68b8ebc00e4ef0c8b94e336ca12f72b4490ba3622c0240c01c17c1641c3b07adc2c64ec94d6d780365e8990768ec8888f3a9526883
|
||||
DIST bash205b-003 2356 BLAKE2B b7887d00d92fd298cd07a15e1c73b516dabd22ecd74c97091636dd97a0cd55024ed698e5cc924c4311d994dd326b1ad074bea35e7650cf9cf4e25c60d2713fa7 SHA512 74528ca5d165b812d299f1c69b47757bd677c0b22ce4217e155cd641708b02364a93c6709fb57b546b376b36da74429a61493921c7c199563da40ddcf1c1f399
|
||||
@ -444,3 +439,13 @@ DIST bash52-031 1159 BLAKE2B dac378115906e21fc754267c42e129e2374c9b63f879d1717d7
|
||||
DIST bash52-031.sig 95 BLAKE2B 50e5c0b3afb0ffc8b1863bde645316d7c7c49e8b396041ca1dcf269c50b532aaccf0c3fb5a5e64036ece9054d8ccf78f7e829ecf0fbdcf8531ba57230b129f1c SHA512 f656d8fbbe79450fbf193e5c2aebc85cfc425703495f2925aa774d5c0e742ebf523c191264673c6dd76fa6071c39d5155698687475eb634cd6553e86266f91a5
|
||||
DIST bash52-032 1529 BLAKE2B 55aab849da0fcc69ab3516d9d7ff2858b5f15cbeaddf66282f43f272b52d646c2c41c2ceef632a2ae8f13c25d92e85f49fbc6de989ed4f6ac4bb7bea7fc59a5d SHA512 9eb277d2d92b9ec49f70582e52305bc45b425b189ba2a15c51c537e07ccf9cb894c1ca44fa399b04297fe51027aff7f169f41efe2d60895ca55c421c0778ef32
|
||||
DIST bash52-032.sig 95 BLAKE2B 23a5cd003c957932d0c0192b63a5e8e7366bf939c3f54ff91b444e3729607c88677fdf4a5b435e47da4a64624b10d8696e4e950fac8fbb6932bb4c64506d1f9f SHA512 d3b08c3d0efee81a8507b530405a886259438bfc4c2ab984dbe80d30177775aacf6448a2673f0bd274fe46c938a8b8d46844d3794374bafce63f7c1d8bf4efe1
|
||||
DIST bash52-033 2131 BLAKE2B 67d334ac5874b785e449cde3b8e3999fd6fa91da847d7ee28320959ed4db5a0e841681eed29fe2fab20dbb8ff4894d86b04c44435ced1be44a67ca117bc9093e SHA512 698b7917c0c7147ef4d7a6f488013c10b4156b7f6bfda6e974010728eb17bfaae3666cfabe361afe7693fe9480bf44ec9ba6e73e7b572bf438f072d04ab6d4bc
|
||||
DIST bash52-033.sig 95 BLAKE2B 6ce2cb4678e74df48ec7e03ba95228d2d4171d5592512d55bee4c92a6b61215fb2782218ed0ca5a87f5241a71889cb32f1dbc15c50c73874f4de152996672547 SHA512 180d104cd3705cf5179ae25ad04955d9bcacd53aa2aeebf6e3b4bf9553b2e4a96ccaad776bdc92c8119911e4a834a81047bda34f33a467604745b05cb95be5bf
|
||||
DIST bash52-034 4134 BLAKE2B d01dc67397e7d85087bcbe5aeddd1a57afc3980e52f53ed8246211d8b282894650b563e52079132f8265da7370c13a76dffefd0a04bcefb7cc2a46575e50672b SHA512 4891a417a5aadb3249c89dcfce66ac6c42e06cfa9e85c86bde82472ac0b27c58e49650aa69b10333e7b7d6ff0b7f557054b72919c45359402060e0ab491a96ac
|
||||
DIST bash52-034.sig 95 BLAKE2B 124e05e5b51593a4ab56dd77d63e1bc863161eec55e99d9a954fb95e406e20a11c489dc049128a9ece6bce03124b7f6da41af925a9c188bfbcdb9f4b7a9deddc SHA512 fe32a1ce5207faa731efd25ae7ddb080852f6980f871b692dc8ff1c7671656d4bc6eaa04e435530a9ba19728686e33dd253c2843106fd15388e5c389f667d3d0
|
||||
DIST bash52-035 3413 BLAKE2B 308bdea38fc42c5267046b4e6a1603dc2379b4c92856c9c3431db655a48704887b1d405ba6a4640404d1e06ef30baffaf0fb4e55b015ec5479f9edde170e73e9 SHA512 100fa9fe308fb98b1985f915e0298d4d62ec57612af2c42acf08b86343c1f570c92890c6b6e355340ef6ed14cfd6849dbf1d3908602fcfae1369a9d52c11d4fd
|
||||
DIST bash52-035.sig 95 BLAKE2B 086e3d7250900ba783fb579481c2943092a46571eed3d848289924b3cea9a1cbdcde89282da9e123b115f849ace2bac7930b6095bb848f8c1397d41c4b176fe1 SHA512 d43f228e1515469961c99cd0cc2968ceeb6b1d59a30787a72822d37bee53546d8654deee84abfe336bfae1adffa4f24153b56abbe1a9a54c52bedfd4c3d4b4ff
|
||||
DIST bash52-036 5941 BLAKE2B e86b0df8ea7ace1ce4bc6f269de389f2f85fbe20e59e6a1e88abe99b5497382e441c9e9ba9f74c97512e0852179fc35dc781bd0da3ab664c60bed2d5d7f20f19 SHA512 d27a582172309087da82be97fab2b80163918d2c98659eda9686a13a5a567927ea260cd46daaed0cf22bde453575e94570b0545f0be9b8ea56576df8dac3b18a
|
||||
DIST bash52-036.sig 95 BLAKE2B 5ed270f26471e08456f73498ea8110c514b8e1bae424182f4cf530ab6e4f89a7946cabd3f7dd703f4f4bab7de9c73922e7be688df18df485cd64a33ce98df223 SHA512 7a26b606ab0d7a5716ac49bd1492e3b3480c3764aaec64e1763a2beda7a962c81a4066887c950b3bdd1ada317b790bd985f8b858e78c7cb8eb4a2bd02f1b07cd
|
||||
DIST bash52-037 2835 BLAKE2B 4af190d53b498d6d4403f64f39060f1add17edfe3e48b4b58a4377d1e96caa93017aed3df7011a64c99fd908af967603ed287e6bbb0380a8569d170779d8f26a SHA512 3e104dff63dabceea2f56f9dc58869d48a71ce61c3c8aff4f289d2f4a47d4325e70178d520c265a25ddb2227e0b78f08177fcd594470e5e81f4116aad282b4de
|
||||
DIST bash52-037.sig 95 BLAKE2B e3cfa89933fe59159a44dc20832406d3c42e28ac0c33674bf369a2f20a1d9de3e985bd178640f17be7b45a4fe3f96c72f80124384cec42fa263eb95586150a3b SHA512 437a69a167a4b889fca40b03eb2dcaa1ddc53db8fde924a6f8bcd21c3ac0c7629cb87b7bc08fa3b16f46b05c6a198a01dce6af3d2b761429345acd361df105dd
|
||||
|
||||
@ -15,22 +15,22 @@ MY_PV=${MY_PV/_/-}
|
||||
MY_P=${PN}-${MY_PV}
|
||||
MY_PATCHES=()
|
||||
|
||||
# Determine the patchlevel.
|
||||
# Determine the patchlevel. See ftp://ftp.gnu.org/gnu/bash/bash-5.2-patches/.
|
||||
case ${PV} in
|
||||
*_p*)
|
||||
PLEVEL=${PV##*_p}
|
||||
;;
|
||||
9999|*_alpha*|*_beta*|*_rc*)
|
||||
# Set a negative patchlevel to indicate that it's a pre-release.
|
||||
PLEVEL=-1
|
||||
;;
|
||||
*_p*)
|
||||
PLEVEL=${PV##*_p}
|
||||
;;
|
||||
*)
|
||||
PLEVEL=0
|
||||
esac
|
||||
|
||||
# The version of readline this bash normally ships with. Note that we only use
|
||||
# the bundled copy of readline for pre-releases.
|
||||
READLINE_VER="8.3_alpha"
|
||||
READLINE_VER="8.2_p1"
|
||||
|
||||
DESCRIPTION="The standard GNU Bourne again shell"
|
||||
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html https://git.savannah.gnu.org/cgit/bash.git"
|
||||
@ -39,15 +39,6 @@ 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="e327891b52513bef0b34aac625c44f8fa6811f53"
|
||||
SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.xz -> ${P}-${BASH_COMMIT}.tar.xz"
|
||||
S=${WORKDIR}/${PN}-${BASH_COMMIT}
|
||||
else
|
||||
my_urls=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}.tar.gz" )
|
||||
|
||||
@ -61,7 +52,6 @@ else
|
||||
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
|
||||
@ -70,10 +60,12 @@ if [[ ${GENTOO_PATCH_VER} ]]; then
|
||||
SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV:?}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER:?}-patches.tar.xz"
|
||||
fi
|
||||
|
||||
S=${WORKDIR}/${MY_P}
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
if (( PLEVEL >= 0 )); then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
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"
|
||||
|
||||
@ -101,6 +93,11 @@ PATCHES=(
|
||||
|
||||
# Patches to or from Chet, posted to the bug-bash mailing list.
|
||||
"${FILESDIR}/${PN}-5.0-syslog-history-extern.patch"
|
||||
"${FILESDIR}/${PN}-5.2_p15-random-ub.patch"
|
||||
"${FILESDIR}/${PN}-5.2_p15-configure-clang16.patch"
|
||||
"${FILESDIR}/${PN}-5.2_p21-wpointer-to-int.patch"
|
||||
"${FILESDIR}/${PN}-5.2_p32-memory-leaks.patch"
|
||||
"${FILESDIR}/${PN}-5.2_p32-read-delimiter-in-invalid-mbchar.patch"
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
@ -122,8 +119,6 @@ src_unpack() {
|
||||
|
||||
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}
|
||||
@ -179,10 +174,6 @@ src_configure() {
|
||||
# may misbehave at runtime.
|
||||
unset -v YACC
|
||||
|
||||
# wcsnwidth(), substring() issues with -Wlto-type-mismatch, reported
|
||||
# upstream to Chet by email.
|
||||
filter-lto
|
||||
|
||||
myconf=(
|
||||
--disable-profiling
|
||||
|
||||
@ -1,411 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chetramey.asc
|
||||
inherit flag-o-matic toolchain-funcs prefix verify-sig
|
||||
|
||||
# Uncomment if we have a patchset.
|
||||
#GENTOO_PATCH_DEV="sam"
|
||||
#GENTOO_PATCH_VER="${PV}"
|
||||
|
||||
MY_PV=${PV/_p*}
|
||||
MY_PV=${MY_PV/_/-}
|
||||
MY_P=${PN}-${MY_PV}
|
||||
MY_PATCHES=()
|
||||
|
||||
# Determine the patchlevel.
|
||||
case ${PV} in
|
||||
9999|*_alpha*|*_beta*|*_rc*)
|
||||
# Set a negative patchlevel to indicate that it's a pre-release.
|
||||
PLEVEL=-1
|
||||
;;
|
||||
*_p*)
|
||||
PLEVEL=${PV##*_p}
|
||||
;;
|
||||
*)
|
||||
PLEVEL=0
|
||||
esac
|
||||
|
||||
# The version of readline this bash normally ships with. Note that we only use
|
||||
# the bundled copy of readline for pre-releases.
|
||||
READLINE_VER="8.3_alpha"
|
||||
|
||||
DESCRIPTION="The standard GNU Bourne again shell"
|
||||
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html https://git.savannah.gnu.org/cgit/bash.git"
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git"
|
||||
EGIT_BRANCH=devel
|
||||
inherit git-r3
|
||||
elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
|
||||
# It can be useful to have snapshots in the pre-release period once
|
||||
# the first alpha is out, as various bugs get reported and fixed from
|
||||
# the alpha, and the next pre-release is usually quite far away.
|
||||
#
|
||||
# i.e. if it's worth packaging the alpha, it's worth packaging a followup.
|
||||
BASH_COMMIT="2e01122fe78eb5a42c9b9f3ca46b91f895959675"
|
||||
SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.xz -> ${P}-${BASH_COMMIT}.tar.xz"
|
||||
S=${WORKDIR}/${PN}-${BASH_COMMIT}
|
||||
else
|
||||
my_urls=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}.tar.gz" )
|
||||
|
||||
# bash-5.1 -> bash51
|
||||
my_p=${PN}$(ver_cut 1-2) my_p=${my_p/.}
|
||||
|
||||
for (( my_patch_idx = 1; my_patch_idx <= PLEVEL; my_patch_idx++ )); do
|
||||
printf -v my_patch_ver %s-%03d "${my_p}" "${my_patch_idx}"
|
||||
my_urls+=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}-patches/${my_patch_ver}" )
|
||||
MY_PATCHES+=( "${DISTDIR}/${my_patch_ver}" )
|
||||
done
|
||||
|
||||
SRC_URI="${my_urls[*]} verify-sig? ( ${my_urls[*]/%/.sig} )"
|
||||
S=${WORKDIR}/${MY_P}
|
||||
|
||||
unset -v my_urls my_p my_patch_idx my_patch_ver
|
||||
fi
|
||||
|
||||
if [[ ${GENTOO_PATCH_VER} ]]; then
|
||||
SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV:?}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER:?}-patches.tar.xz"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
if (( PLEVEL >= 0 )); then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline"
|
||||
|
||||
DEPEND="
|
||||
>=sys-libs/ncurses-5.2-r2:=
|
||||
nls? ( virtual/libintl )
|
||||
"
|
||||
if (( PLEVEL >= 0 )); then
|
||||
DEPEND+=" readline? ( >=sys-libs/readline-${READLINE_VER}:= )"
|
||||
fi
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
"
|
||||
# We only need bison (yacc) when the .y files get patched (bash42-005, bash51-011).
|
||||
BDEPEND="
|
||||
pgo? ( dev-util/gperf )
|
||||
verify-sig? ( sec-keys/openpgp-keys-chetramey )
|
||||
"
|
||||
|
||||
# EAPI 8 tries to append it but it doesn't exist here.
|
||||
QA_CONFIGURE_OPTIONS="--disable-static"
|
||||
|
||||
PATCHES=(
|
||||
#"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/
|
||||
|
||||
# Patches to or from Chet, posted to the bug-bash mailing list.
|
||||
"${FILESDIR}/${PN}-5.0-syslog-history-extern.patch"
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
# bug #7332
|
||||
if is-flag -malign-double; then
|
||||
eerror "Detected bad CFLAGS '-malign-double'. Do not use this"
|
||||
eerror "as it breaks LFS (struct stat64) on x86."
|
||||
die "remove -malign-double from your CFLAGS mr ricer"
|
||||
fi
|
||||
|
||||
if use bashlogger; then
|
||||
ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs."
|
||||
ewarn "This will log ALL output you enter into the shell, you have been warned."
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
local patch
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
git-r3_src_unpack
|
||||
elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
|
||||
default
|
||||
else
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig}
|
||||
|
||||
for patch in "${MY_PATCHES[@]}"; do
|
||||
verify-sig_verify_detached "${patch}"{,.sig}
|
||||
done
|
||||
fi
|
||||
|
||||
unpack "${MY_P}.tar.gz"
|
||||
|
||||
if [[ ${GENTOO_PATCH_VER} ]]; then
|
||||
unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Include official patches.
|
||||
(( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}"
|
||||
|
||||
# Clean out local libs so we know we use system ones w/releases. The
|
||||
# touch utility is invoked for the benefit of config.status.
|
||||
if (( PLEVEL >= 0 )); then
|
||||
rm -rf lib/{readline,termcap}/* \
|
||||
&& touch lib/{readline,termcap}/Makefile.in \
|
||||
&& sed -i -E 's:\$[{(](RL|HIST)_LIBSRC[)}]/[[:alpha:]_-]*\.h::g' Makefile.in \
|
||||
|| die
|
||||
fi
|
||||
|
||||
# Prefixify hardcoded path names. No-op for non-prefix.
|
||||
hprefixify pathnames.h.in
|
||||
|
||||
# Avoid regenerating docs after patches, bug #407985.
|
||||
sed -i -E '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in \
|
||||
&& touch -r . doc/* \
|
||||
|| die
|
||||
|
||||
# Sometimes hangs (more noticeable w/ pgo), bug #907403.
|
||||
rm tests/run-jobs || die
|
||||
|
||||
eapply -p0 "${PATCHES[@]}"
|
||||
eapply_user
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local -a myconf
|
||||
|
||||
# Upstream only test with Bison and require GNUisms like YYEOF and
|
||||
# YYERRCODE. The former at least may be in POSIX soon:
|
||||
# https://www.austingroupbugs.net/view.php?id=1269.
|
||||
# configure warns on use of non-Bison but doesn't abort. The result
|
||||
# may misbehave at runtime.
|
||||
unset -v YACC
|
||||
|
||||
# wcsnwidth(), substring() issues with -Wlto-type-mismatch, reported
|
||||
# upstream to Chet by email.
|
||||
filter-lto
|
||||
|
||||
myconf=(
|
||||
--disable-profiling
|
||||
|
||||
# Force linking with system curses ... the bundled termcap lib
|
||||
# sucks bad compared to ncurses. For the most part, ncurses
|
||||
# is here because readline needs it. But bash itself calls
|
||||
# ncurses in one or two small places :(.
|
||||
--with-curses
|
||||
|
||||
$(use_enable mem-scramble)
|
||||
$(use_enable net net-redirections)
|
||||
$(use_enable readline)
|
||||
$(use_enable readline bang-history)
|
||||
$(use_enable readline history)
|
||||
$(use_with afs)
|
||||
$(use_with mem-scramble bash-malloc)
|
||||
)
|
||||
|
||||
# For descriptions of these, see config-top.h.
|
||||
# bashrc/#26952 bash_logout/#90488 ssh/#24762 mktemp/#574426
|
||||
append-cppflags \
|
||||
-DDEFAULT_PATH_VALUE=\'\""${EPREFIX}"/usr/local/sbin:"${EPREFIX}"/usr/local/bin:"${EPREFIX}"/usr/sbin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/bin\"\' \
|
||||
-DSTANDARD_UTILS_PATH=\'\""${EPREFIX}"/bin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/usr/sbin\"\' \
|
||||
-DSYS_BASHRC=\'\""${EPREFIX}"/etc/bash/bashrc\"\' \
|
||||
-DSYS_BASH_LOGOUT=\'\""${EPREFIX}"/etc/bash/bash_logout\"\' \
|
||||
-DNON_INTERACTIVE_LOGIN_SHELLS \
|
||||
-DSSH_SOURCE_BASHRC \
|
||||
$(use bashlogger && echo -DSYSLOG_HISTORY)
|
||||
|
||||
use nls || myconf+=( --disable-nls )
|
||||
|
||||
if (( PLEVEL >= 0 )); then
|
||||
# Historically, we always used the builtin readline, but since
|
||||
# our handling of SONAME upgrades has gotten much more stable
|
||||
# in the PM (and the readline ebuild itself preserves the old
|
||||
# libs during upgrades), linking against the system copy should
|
||||
# be safe.
|
||||
# Exact cached version here doesn't really matter as long as it
|
||||
# is at least what's in the DEPEND up above.
|
||||
export ac_cv_rl_version=${READLINE_VER%%_*}
|
||||
|
||||
# Use system readline only with released versions.
|
||||
myconf+=( --with-installed-readline=. )
|
||||
fi
|
||||
|
||||
if use plugins; then
|
||||
append-ldflags "-Wl,-rpath,${EPREFIX}/usr/$(get_libdir)/bash"
|
||||
else
|
||||
# Disable the plugins logic by hand since bash doesn't provide
|
||||
# a way of doing it.
|
||||
export ac_cv_func_dl{close,open,sym}=no \
|
||||
ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no
|
||||
|
||||
sed -i -e '/LOCAL_LDFLAGS=/s:-rdynamic::' configure || die
|
||||
fi
|
||||
|
||||
# bug #444070
|
||||
tc-export AR
|
||||
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local -a pgo_generate_flags pgo_use_flags
|
||||
local flag
|
||||
|
||||
# -fprofile-partial-training because upstream notes the test suite isn't
|
||||
# super comprehensive.
|
||||
# https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo
|
||||
if use pgo; then
|
||||
pgo_generate_flags=(
|
||||
-fprofile-update=atomic
|
||||
-fprofile-dir="${T}"/pgo
|
||||
-fprofile-generate="${T}"/pgo
|
||||
)
|
||||
pgo_use_flags=(
|
||||
-fprofile-use="${T}"/pgo
|
||||
-fprofile-dir="${T}"/pgo
|
||||
)
|
||||
if flag=$(test-flags-CC -fprofile-partial-training); then
|
||||
pgo_generate_flags+=( "${flag}" )
|
||||
pgo_use_flags+=( "${flag}" )
|
||||
fi
|
||||
fi
|
||||
|
||||
emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}"
|
||||
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" all others
|
||||
|
||||
# Build Bash and run its tests to generate profiles.
|
||||
if (( ${#pgo_generate_flags[@]} )); then
|
||||
# Used in test suite.
|
||||
unset -v A
|
||||
|
||||
emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check
|
||||
|
||||
if tc-is-clang; then
|
||||
llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die
|
||||
fi
|
||||
|
||||
# Rebuild Bash using the profiling data we just generated.
|
||||
emake clean
|
||||
emake CFLAGS="${CFLAGS} ${pgo_use_flags[*]}"
|
||||
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" all others
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Used in test suite.
|
||||
unset -v A
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local d f
|
||||
|
||||
default
|
||||
|
||||
my_prefixify() {
|
||||
while read -r; do
|
||||
if [[ $REPLY == *$1* ]]; then
|
||||
REPLY=${REPLY/"/etc/"/"${EPREFIX}/etc/"}
|
||||
fi
|
||||
printf '%s\n' "${REPLY}" || ! break
|
||||
done < "$2" || die
|
||||
}
|
||||
|
||||
dodir /bin
|
||||
mv -- "${ED}"/usr/bin/bash "${ED}"/bin/ || die
|
||||
dosym bash /bin/rbash
|
||||
|
||||
insinto /etc/bash
|
||||
doins "${FILESDIR}"/bash_logout
|
||||
my_prefixify bashrc.d "${FILESDIR}"/bashrc-r1 | newins - bashrc
|
||||
|
||||
insinto /etc/bash/bashrc.d
|
||||
my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color.bash | newins - 10-gentoo-color.bash
|
||||
newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r1.bash 10-gentoo-title.bash
|
||||
if [[ ! ${EPREFIX} ]]; then
|
||||
doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash
|
||||
fi
|
||||
|
||||
insinto /etc/skel
|
||||
for f in bash{_logout,_profile,rc}; do
|
||||
newins "${FILESDIR}/dot-${f}" ".${f}"
|
||||
done
|
||||
|
||||
if use plugins; then
|
||||
exeinto "/usr/$(get_libdir)/bash"
|
||||
set -- examples/loadables/*.o
|
||||
doexe "${@%.o}"
|
||||
|
||||
insinto /usr/include/bash-plugins
|
||||
doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h}
|
||||
fi
|
||||
|
||||
if use examples; then
|
||||
for d in examples/{functions,misc,scripts,startup-files}; do
|
||||
exeinto "/usr/share/doc/${PF}/${d}"
|
||||
docinto "${d}"
|
||||
for f in "${d}"/*; do
|
||||
if [[ ${f##*/} != @(PERMISSION|*README) ]]; then
|
||||
doexe "${f}"
|
||||
else
|
||||
dodoc "${f}"
|
||||
fi
|
||||
done
|
||||
done
|
||||
fi
|
||||
|
||||
# Install bash_builtins.1 and rbash.1.
|
||||
emake -C doc DESTDIR="${D}" install_builtins
|
||||
sed 's:bash\.1:man1/&:' doc/rbash.1 > "${T}"/rbash.1 || die
|
||||
doman "${T}"/rbash.1
|
||||
|
||||
newdoc CWRU/changelog ChangeLog
|
||||
dosym bash.info /usr/share/info/bashref.info
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]]; then
|
||||
mkdir -p -- "${EROOT}"/etc/bash \
|
||||
&& mv -f -- "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/ \
|
||||
|| die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
local old_ver
|
||||
|
||||
# If /bin/sh does not exist, provide it.
|
||||
if [[ ! -e ${EROOT}/bin/sh ]]; then
|
||||
ln -sf -- bash "${EROOT}"/bin/sh || die
|
||||
fi
|
||||
|
||||
read -r old_ver <<<"${REPLACING_VERSIONS}"
|
||||
if [[ ! $old_ver ]]; then
|
||||
:
|
||||
elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then
|
||||
return
|
||||
fi
|
||||
|
||||
while read -r; do ewarn "${REPLY}"; done <<'EOF'
|
||||
Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash.
|
||||
|
||||
Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the
|
||||
characteristics of the operating environment, it may contain a command to set
|
||||
the terminal's window title. Those who were already choosing to customise the
|
||||
PROMPT_COMMAND variable are now advised to append their commands like so:
|
||||
|
||||
PROMPT_COMMAND+=('custom command goes here')
|
||||
|
||||
Gentoo no longer defaults to having bash set the window title in the case
|
||||
that the terminal is controlled by sshd(8), unless screen is launched on the
|
||||
remote side or the terminal reliably supports saving and restoring the title
|
||||
(as alacritty, foot and tmux do). Those wanting for the title to be set
|
||||
regardless may adjust ~/.bashrc - or create a custom /etc/bash/bashrc.d
|
||||
drop-in - to set PROMPT_COMMMAND like so:
|
||||
|
||||
PROMPT_COMMAND=(genfun_set_win_title)
|
||||
|
||||
Those who would prefer for bash never to interfere with the window title may
|
||||
now opt out of the default title setting behaviour, either with the "unset -v
|
||||
PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired.
|
||||
EOF
|
||||
}
|
||||
@ -1,411 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chetramey.asc
|
||||
inherit flag-o-matic toolchain-funcs prefix verify-sig
|
||||
|
||||
# Uncomment if we have a patchset.
|
||||
#GENTOO_PATCH_DEV="sam"
|
||||
#GENTOO_PATCH_VER="${PV}"
|
||||
|
||||
MY_PV=${PV/_p*}
|
||||
MY_PV=${MY_PV/_/-}
|
||||
MY_P=${PN}-${MY_PV}
|
||||
MY_PATCHES=()
|
||||
|
||||
# Determine the patchlevel.
|
||||
case ${PV} in
|
||||
9999|*_alpha*|*_beta*|*_rc*)
|
||||
# Set a negative patchlevel to indicate that it's a pre-release.
|
||||
PLEVEL=-1
|
||||
;;
|
||||
*_p*)
|
||||
PLEVEL=${PV##*_p}
|
||||
;;
|
||||
*)
|
||||
PLEVEL=0
|
||||
esac
|
||||
|
||||
# The version of readline this bash normally ships with. Note that we only use
|
||||
# the bundled copy of readline for pre-releases.
|
||||
READLINE_VER="8.3_alpha"
|
||||
|
||||
DESCRIPTION="The standard GNU Bourne again shell"
|
||||
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html https://git.savannah.gnu.org/cgit/bash.git"
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git"
|
||||
EGIT_BRANCH=devel
|
||||
inherit git-r3
|
||||
elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
|
||||
# It can be useful to have snapshots in the pre-release period once
|
||||
# the first alpha is out, as various bugs get reported and fixed from
|
||||
# the alpha, and the next pre-release is usually quite far away.
|
||||
#
|
||||
# i.e. if it's worth packaging the alpha, it's worth packaging a followup.
|
||||
BASH_COMMIT="2610d40b32301cd7256bf1dfc49c9f8bfe0dcd53"
|
||||
SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.xz -> ${P}-${BASH_COMMIT}.tar.xz"
|
||||
S=${WORKDIR}/${PN}-${BASH_COMMIT}
|
||||
else
|
||||
my_urls=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}.tar.gz" )
|
||||
|
||||
# bash-5.1 -> bash51
|
||||
my_p=${PN}$(ver_cut 1-2) my_p=${my_p/.}
|
||||
|
||||
for (( my_patch_idx = 1; my_patch_idx <= PLEVEL; my_patch_idx++ )); do
|
||||
printf -v my_patch_ver %s-%03d "${my_p}" "${my_patch_idx}"
|
||||
my_urls+=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}-patches/${my_patch_ver}" )
|
||||
MY_PATCHES+=( "${DISTDIR}/${my_patch_ver}" )
|
||||
done
|
||||
|
||||
SRC_URI="${my_urls[*]} verify-sig? ( ${my_urls[*]/%/.sig} )"
|
||||
S=${WORKDIR}/${MY_P}
|
||||
|
||||
unset -v my_urls my_p my_patch_idx my_patch_ver
|
||||
fi
|
||||
|
||||
if [[ ${GENTOO_PATCH_VER} ]]; then
|
||||
SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV:?}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER:?}-patches.tar.xz"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
if (( PLEVEL >= 0 )); then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline"
|
||||
|
||||
DEPEND="
|
||||
>=sys-libs/ncurses-5.2-r2:=
|
||||
nls? ( virtual/libintl )
|
||||
"
|
||||
if (( PLEVEL >= 0 )); then
|
||||
DEPEND+=" readline? ( >=sys-libs/readline-${READLINE_VER}:= )"
|
||||
fi
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
"
|
||||
# We only need bison (yacc) when the .y files get patched (bash42-005, bash51-011).
|
||||
BDEPEND="
|
||||
pgo? ( dev-util/gperf )
|
||||
verify-sig? ( sec-keys/openpgp-keys-chetramey )
|
||||
"
|
||||
|
||||
# EAPI 8 tries to append it but it doesn't exist here.
|
||||
QA_CONFIGURE_OPTIONS="--disable-static"
|
||||
|
||||
PATCHES=(
|
||||
#"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/
|
||||
|
||||
# Patches to or from Chet, posted to the bug-bash mailing list.
|
||||
"${FILESDIR}/${PN}-5.0-syslog-history-extern.patch"
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
# bug #7332
|
||||
if is-flag -malign-double; then
|
||||
eerror "Detected bad CFLAGS '-malign-double'. Do not use this"
|
||||
eerror "as it breaks LFS (struct stat64) on x86."
|
||||
die "remove -malign-double from your CFLAGS mr ricer"
|
||||
fi
|
||||
|
||||
if use bashlogger; then
|
||||
ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs."
|
||||
ewarn "This will log ALL output you enter into the shell, you have been warned."
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
local patch
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
git-r3_src_unpack
|
||||
elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
|
||||
default
|
||||
else
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig}
|
||||
|
||||
for patch in "${MY_PATCHES[@]}"; do
|
||||
verify-sig_verify_detached "${patch}"{,.sig}
|
||||
done
|
||||
fi
|
||||
|
||||
unpack "${MY_P}.tar.gz"
|
||||
|
||||
if [[ ${GENTOO_PATCH_VER} ]]; then
|
||||
unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Include official patches.
|
||||
(( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}"
|
||||
|
||||
# Clean out local libs so we know we use system ones w/releases. The
|
||||
# touch utility is invoked for the benefit of config.status.
|
||||
if (( PLEVEL >= 0 )); then
|
||||
rm -rf lib/{readline,termcap}/* \
|
||||
&& touch lib/{readline,termcap}/Makefile.in \
|
||||
&& sed -i -E 's:\$[{(](RL|HIST)_LIBSRC[)}]/[[:alpha:]_-]*\.h::g' Makefile.in \
|
||||
|| die
|
||||
fi
|
||||
|
||||
# Prefixify hardcoded path names. No-op for non-prefix.
|
||||
hprefixify pathnames.h.in
|
||||
|
||||
# Avoid regenerating docs after patches, bug #407985.
|
||||
sed -i -E '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in \
|
||||
&& touch -r . doc/* \
|
||||
|| die
|
||||
|
||||
# Sometimes hangs (more noticeable w/ pgo), bug #907403.
|
||||
rm tests/run-jobs || die
|
||||
|
||||
eapply -p0 "${PATCHES[@]}"
|
||||
eapply_user
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local -a myconf
|
||||
|
||||
# Upstream only test with Bison and require GNUisms like YYEOF and
|
||||
# YYERRCODE. The former at least may be in POSIX soon:
|
||||
# https://www.austingroupbugs.net/view.php?id=1269.
|
||||
# configure warns on use of non-Bison but doesn't abort. The result
|
||||
# may misbehave at runtime.
|
||||
unset -v YACC
|
||||
|
||||
# wcsnwidth(), substring() issues with -Wlto-type-mismatch, reported
|
||||
# upstream to Chet by email.
|
||||
filter-lto
|
||||
|
||||
myconf=(
|
||||
--disable-profiling
|
||||
|
||||
# Force linking with system curses ... the bundled termcap lib
|
||||
# sucks bad compared to ncurses. For the most part, ncurses
|
||||
# is here because readline needs it. But bash itself calls
|
||||
# ncurses in one or two small places :(.
|
||||
--with-curses
|
||||
|
||||
$(use_enable mem-scramble)
|
||||
$(use_enable net net-redirections)
|
||||
$(use_enable readline)
|
||||
$(use_enable readline bang-history)
|
||||
$(use_enable readline history)
|
||||
$(use_with afs)
|
||||
$(use_with mem-scramble bash-malloc)
|
||||
)
|
||||
|
||||
# For descriptions of these, see config-top.h.
|
||||
# bashrc/#26952 bash_logout/#90488 ssh/#24762 mktemp/#574426
|
||||
append-cppflags \
|
||||
-DDEFAULT_PATH_VALUE=\'\""${EPREFIX}"/usr/local/sbin:"${EPREFIX}"/usr/local/bin:"${EPREFIX}"/usr/sbin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/bin\"\' \
|
||||
-DSTANDARD_UTILS_PATH=\'\""${EPREFIX}"/bin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/usr/sbin\"\' \
|
||||
-DSYS_BASHRC=\'\""${EPREFIX}"/etc/bash/bashrc\"\' \
|
||||
-DSYS_BASH_LOGOUT=\'\""${EPREFIX}"/etc/bash/bash_logout\"\' \
|
||||
-DNON_INTERACTIVE_LOGIN_SHELLS \
|
||||
-DSSH_SOURCE_BASHRC \
|
||||
$(use bashlogger && echo -DSYSLOG_HISTORY)
|
||||
|
||||
use nls || myconf+=( --disable-nls )
|
||||
|
||||
if (( PLEVEL >= 0 )); then
|
||||
# Historically, we always used the builtin readline, but since
|
||||
# our handling of SONAME upgrades has gotten much more stable
|
||||
# in the PM (and the readline ebuild itself preserves the old
|
||||
# libs during upgrades), linking against the system copy should
|
||||
# be safe.
|
||||
# Exact cached version here doesn't really matter as long as it
|
||||
# is at least what's in the DEPEND up above.
|
||||
export ac_cv_rl_version=${READLINE_VER%%_*}
|
||||
|
||||
# Use system readline only with released versions.
|
||||
myconf+=( --with-installed-readline=. )
|
||||
fi
|
||||
|
||||
if use plugins; then
|
||||
append-ldflags "-Wl,-rpath,${EPREFIX}/usr/$(get_libdir)/bash"
|
||||
else
|
||||
# Disable the plugins logic by hand since bash doesn't provide
|
||||
# a way of doing it.
|
||||
export ac_cv_func_dl{close,open,sym}=no \
|
||||
ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no
|
||||
|
||||
sed -i -e '/LOCAL_LDFLAGS=/s:-rdynamic::' configure || die
|
||||
fi
|
||||
|
||||
# bug #444070
|
||||
tc-export AR
|
||||
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local -a pgo_generate_flags pgo_use_flags
|
||||
local flag
|
||||
|
||||
# -fprofile-partial-training because upstream notes the test suite isn't
|
||||
# super comprehensive.
|
||||
# https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo
|
||||
if use pgo; then
|
||||
pgo_generate_flags=(
|
||||
-fprofile-update=atomic
|
||||
-fprofile-dir="${T}"/pgo
|
||||
-fprofile-generate="${T}"/pgo
|
||||
)
|
||||
pgo_use_flags=(
|
||||
-fprofile-use="${T}"/pgo
|
||||
-fprofile-dir="${T}"/pgo
|
||||
)
|
||||
if flag=$(test-flags-CC -fprofile-partial-training); then
|
||||
pgo_generate_flags+=( "${flag}" )
|
||||
pgo_use_flags+=( "${flag}" )
|
||||
fi
|
||||
fi
|
||||
|
||||
emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}"
|
||||
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" all others
|
||||
|
||||
# Build Bash and run its tests to generate profiles.
|
||||
if (( ${#pgo_generate_flags[@]} )); then
|
||||
# Used in test suite.
|
||||
unset -v A
|
||||
|
||||
emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check
|
||||
|
||||
if tc-is-clang; then
|
||||
llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die
|
||||
fi
|
||||
|
||||
# Rebuild Bash using the profiling data we just generated.
|
||||
emake clean
|
||||
emake CFLAGS="${CFLAGS} ${pgo_use_flags[*]}"
|
||||
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" all others
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Used in test suite.
|
||||
unset -v A
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local d f
|
||||
|
||||
default
|
||||
|
||||
my_prefixify() {
|
||||
while read -r; do
|
||||
if [[ $REPLY == *$1* ]]; then
|
||||
REPLY=${REPLY/"/etc/"/"${EPREFIX}/etc/"}
|
||||
fi
|
||||
printf '%s\n' "${REPLY}" || ! break
|
||||
done < "$2" || die
|
||||
}
|
||||
|
||||
dodir /bin
|
||||
mv -- "${ED}"/usr/bin/bash "${ED}"/bin/ || die
|
||||
dosym bash /bin/rbash
|
||||
|
||||
insinto /etc/bash
|
||||
doins "${FILESDIR}"/bash_logout
|
||||
my_prefixify bashrc.d "${FILESDIR}"/bashrc-r1 | newins - bashrc
|
||||
|
||||
insinto /etc/bash/bashrc.d
|
||||
my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color.bash | newins - 10-gentoo-color.bash
|
||||
newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r1.bash 10-gentoo-title.bash
|
||||
if [[ ! ${EPREFIX} ]]; then
|
||||
doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash
|
||||
fi
|
||||
|
||||
insinto /etc/skel
|
||||
for f in bash{_logout,_profile,rc}; do
|
||||
newins "${FILESDIR}/dot-${f}" ".${f}"
|
||||
done
|
||||
|
||||
if use plugins; then
|
||||
exeinto "/usr/$(get_libdir)/bash"
|
||||
set -- examples/loadables/*.o
|
||||
doexe "${@%.o}"
|
||||
|
||||
insinto /usr/include/bash-plugins
|
||||
doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h}
|
||||
fi
|
||||
|
||||
if use examples; then
|
||||
for d in examples/{functions,misc,scripts,startup-files}; do
|
||||
exeinto "/usr/share/doc/${PF}/${d}"
|
||||
docinto "${d}"
|
||||
for f in "${d}"/*; do
|
||||
if [[ ${f##*/} != @(PERMISSION|*README) ]]; then
|
||||
doexe "${f}"
|
||||
else
|
||||
dodoc "${f}"
|
||||
fi
|
||||
done
|
||||
done
|
||||
fi
|
||||
|
||||
# Install bash_builtins.1 and rbash.1.
|
||||
emake -C doc DESTDIR="${D}" install_builtins
|
||||
sed 's:bash\.1:man1/&:' doc/rbash.1 > "${T}"/rbash.1 || die
|
||||
doman "${T}"/rbash.1
|
||||
|
||||
newdoc CWRU/changelog ChangeLog
|
||||
dosym bash.info /usr/share/info/bashref.info
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]]; then
|
||||
mkdir -p -- "${EROOT}"/etc/bash \
|
||||
&& mv -f -- "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/ \
|
||||
|| die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
local old_ver
|
||||
|
||||
# If /bin/sh does not exist, provide it.
|
||||
if [[ ! -e ${EROOT}/bin/sh ]]; then
|
||||
ln -sf -- bash "${EROOT}"/bin/sh || die
|
||||
fi
|
||||
|
||||
read -r old_ver <<<"${REPLACING_VERSIONS}"
|
||||
if [[ ! $old_ver ]]; then
|
||||
:
|
||||
elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then
|
||||
return
|
||||
fi
|
||||
|
||||
while read -r; do ewarn "${REPLY}"; done <<'EOF'
|
||||
Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash.
|
||||
|
||||
Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the
|
||||
characteristics of the operating environment, it may contain a command to set
|
||||
the terminal's window title. Those who were already choosing to customise the
|
||||
PROMPT_COMMAND variable are now advised to append their commands like so:
|
||||
|
||||
PROMPT_COMMAND+=('custom command goes here')
|
||||
|
||||
Gentoo no longer defaults to having bash set the window title in the case
|
||||
that the terminal is controlled by sshd(8), unless screen is launched on the
|
||||
remote side or the terminal reliably supports saving and restoring the title
|
||||
(as alacritty, foot and tmux do). Those wanting for the title to be set
|
||||
regardless may adjust ~/.bashrc - or create a custom /etc/bash/bashrc.d
|
||||
drop-in - to set PROMPT_COMMMAND like so:
|
||||
|
||||
PROMPT_COMMAND=(genfun_set_win_title)
|
||||
|
||||
Those who would prefer for bash never to interfere with the window title may
|
||||
now opt out of the default title setting behaviour, either with the "unset -v
|
||||
PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired.
|
||||
EOF
|
||||
}
|
||||
@ -1,411 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chetramey.asc
|
||||
inherit flag-o-matic toolchain-funcs prefix verify-sig
|
||||
|
||||
# Uncomment if we have a patchset.
|
||||
#GENTOO_PATCH_DEV="sam"
|
||||
#GENTOO_PATCH_VER="${PV}"
|
||||
|
||||
MY_PV=${PV/_p*}
|
||||
MY_PV=${MY_PV/_/-}
|
||||
MY_P=${PN}-${MY_PV}
|
||||
MY_PATCHES=()
|
||||
|
||||
# Determine the patchlevel.
|
||||
case ${PV} in
|
||||
9999|*_alpha*|*_beta*|*_rc*)
|
||||
# Set a negative patchlevel to indicate that it's a pre-release.
|
||||
PLEVEL=-1
|
||||
;;
|
||||
*_p*)
|
||||
PLEVEL=${PV##*_p}
|
||||
;;
|
||||
*)
|
||||
PLEVEL=0
|
||||
esac
|
||||
|
||||
# The version of readline this bash normally ships with. Note that we only use
|
||||
# the bundled copy of readline for pre-releases.
|
||||
READLINE_VER="8.3_alpha"
|
||||
|
||||
DESCRIPTION="The standard GNU Bourne again shell"
|
||||
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html https://git.savannah.gnu.org/cgit/bash.git"
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git"
|
||||
EGIT_BRANCH=devel
|
||||
inherit git-r3
|
||||
elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
|
||||
# It can be useful to have snapshots in the pre-release period once
|
||||
# the first alpha is out, as various bugs get reported and fixed from
|
||||
# the alpha, and the next pre-release is usually quite far away.
|
||||
#
|
||||
# i.e. if it's worth packaging the alpha, it's worth packaging a followup.
|
||||
BASH_COMMIT="5576c26da8e0ad74048203398acb493c65fd3476"
|
||||
SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.xz -> ${P}-${BASH_COMMIT}.tar.xz"
|
||||
S=${WORKDIR}/${PN}-${BASH_COMMIT}
|
||||
else
|
||||
my_urls=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}.tar.gz" )
|
||||
|
||||
# bash-5.1 -> bash51
|
||||
my_p=${PN}$(ver_cut 1-2) my_p=${my_p/.}
|
||||
|
||||
for (( my_patch_idx = 1; my_patch_idx <= PLEVEL; my_patch_idx++ )); do
|
||||
printf -v my_patch_ver %s-%03d "${my_p}" "${my_patch_idx}"
|
||||
my_urls+=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}-patches/${my_patch_ver}" )
|
||||
MY_PATCHES+=( "${DISTDIR}/${my_patch_ver}" )
|
||||
done
|
||||
|
||||
SRC_URI="${my_urls[*]} verify-sig? ( ${my_urls[*]/%/.sig} )"
|
||||
S=${WORKDIR}/${MY_P}
|
||||
|
||||
unset -v my_urls my_p my_patch_idx my_patch_ver
|
||||
fi
|
||||
|
||||
if [[ ${GENTOO_PATCH_VER} ]]; then
|
||||
SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV:?}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER:?}-patches.tar.xz"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
if (( PLEVEL >= 0 )); then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline"
|
||||
|
||||
DEPEND="
|
||||
>=sys-libs/ncurses-5.2-r2:=
|
||||
nls? ( virtual/libintl )
|
||||
"
|
||||
if (( PLEVEL >= 0 )); then
|
||||
DEPEND+=" readline? ( >=sys-libs/readline-${READLINE_VER}:= )"
|
||||
fi
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
"
|
||||
# We only need bison (yacc) when the .y files get patched (bash42-005, bash51-011).
|
||||
BDEPEND="
|
||||
pgo? ( dev-util/gperf )
|
||||
verify-sig? ( sec-keys/openpgp-keys-chetramey )
|
||||
"
|
||||
|
||||
# EAPI 8 tries to append it but it doesn't exist here.
|
||||
QA_CONFIGURE_OPTIONS="--disable-static"
|
||||
|
||||
PATCHES=(
|
||||
#"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/
|
||||
|
||||
# Patches to or from Chet, posted to the bug-bash mailing list.
|
||||
"${FILESDIR}/${PN}-5.0-syslog-history-extern.patch"
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
# bug #7332
|
||||
if is-flag -malign-double; then
|
||||
eerror "Detected bad CFLAGS '-malign-double'. Do not use this"
|
||||
eerror "as it breaks LFS (struct stat64) on x86."
|
||||
die "remove -malign-double from your CFLAGS mr ricer"
|
||||
fi
|
||||
|
||||
if use bashlogger; then
|
||||
ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs."
|
||||
ewarn "This will log ALL output you enter into the shell, you have been warned."
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
local patch
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
git-r3_src_unpack
|
||||
elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
|
||||
default
|
||||
else
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig}
|
||||
|
||||
for patch in "${MY_PATCHES[@]}"; do
|
||||
verify-sig_verify_detached "${patch}"{,.sig}
|
||||
done
|
||||
fi
|
||||
|
||||
unpack "${MY_P}.tar.gz"
|
||||
|
||||
if [[ ${GENTOO_PATCH_VER} ]]; then
|
||||
unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Include official patches.
|
||||
(( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}"
|
||||
|
||||
# Clean out local libs so we know we use system ones w/releases. The
|
||||
# touch utility is invoked for the benefit of config.status.
|
||||
if (( PLEVEL >= 0 )); then
|
||||
rm -rf lib/{readline,termcap}/* \
|
||||
&& touch lib/{readline,termcap}/Makefile.in \
|
||||
&& sed -i -E 's:\$[{(](RL|HIST)_LIBSRC[)}]/[[:alpha:]_-]*\.h::g' Makefile.in \
|
||||
|| die
|
||||
fi
|
||||
|
||||
# Prefixify hardcoded path names. No-op for non-prefix.
|
||||
hprefixify pathnames.h.in
|
||||
|
||||
# Avoid regenerating docs after patches, bug #407985.
|
||||
sed -i -E '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in \
|
||||
&& touch -r . doc/* \
|
||||
|| die
|
||||
|
||||
# Sometimes hangs (more noticeable w/ pgo), bug #907403.
|
||||
rm tests/run-jobs || die
|
||||
|
||||
eapply -p0 "${PATCHES[@]}"
|
||||
eapply_user
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local -a myconf
|
||||
|
||||
# Upstream only test with Bison and require GNUisms like YYEOF and
|
||||
# YYERRCODE. The former at least may be in POSIX soon:
|
||||
# https://www.austingroupbugs.net/view.php?id=1269.
|
||||
# configure warns on use of non-Bison but doesn't abort. The result
|
||||
# may misbehave at runtime.
|
||||
unset -v YACC
|
||||
|
||||
# wcsnwidth(), substring() issues with -Wlto-type-mismatch, reported
|
||||
# upstream to Chet by email.
|
||||
filter-lto
|
||||
|
||||
myconf=(
|
||||
--disable-profiling
|
||||
|
||||
# Force linking with system curses ... the bundled termcap lib
|
||||
# sucks bad compared to ncurses. For the most part, ncurses
|
||||
# is here because readline needs it. But bash itself calls
|
||||
# ncurses in one or two small places :(.
|
||||
--with-curses
|
||||
|
||||
$(use_enable mem-scramble)
|
||||
$(use_enable net net-redirections)
|
||||
$(use_enable readline)
|
||||
$(use_enable readline bang-history)
|
||||
$(use_enable readline history)
|
||||
$(use_with afs)
|
||||
$(use_with mem-scramble bash-malloc)
|
||||
)
|
||||
|
||||
# For descriptions of these, see config-top.h.
|
||||
# bashrc/#26952 bash_logout/#90488 ssh/#24762 mktemp/#574426
|
||||
append-cppflags \
|
||||
-DDEFAULT_PATH_VALUE=\'\""${EPREFIX}"/usr/local/sbin:"${EPREFIX}"/usr/local/bin:"${EPREFIX}"/usr/sbin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/bin\"\' \
|
||||
-DSTANDARD_UTILS_PATH=\'\""${EPREFIX}"/bin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/usr/sbin\"\' \
|
||||
-DSYS_BASHRC=\'\""${EPREFIX}"/etc/bash/bashrc\"\' \
|
||||
-DSYS_BASH_LOGOUT=\'\""${EPREFIX}"/etc/bash/bash_logout\"\' \
|
||||
-DNON_INTERACTIVE_LOGIN_SHELLS \
|
||||
-DSSH_SOURCE_BASHRC \
|
||||
$(use bashlogger && echo -DSYSLOG_HISTORY)
|
||||
|
||||
use nls || myconf+=( --disable-nls )
|
||||
|
||||
if (( PLEVEL >= 0 )); then
|
||||
# Historically, we always used the builtin readline, but since
|
||||
# our handling of SONAME upgrades has gotten much more stable
|
||||
# in the PM (and the readline ebuild itself preserves the old
|
||||
# libs during upgrades), linking against the system copy should
|
||||
# be safe.
|
||||
# Exact cached version here doesn't really matter as long as it
|
||||
# is at least what's in the DEPEND up above.
|
||||
export ac_cv_rl_version=${READLINE_VER%%_*}
|
||||
|
||||
# Use system readline only with released versions.
|
||||
myconf+=( --with-installed-readline=. )
|
||||
fi
|
||||
|
||||
if use plugins; then
|
||||
append-ldflags "-Wl,-rpath,${EPREFIX}/usr/$(get_libdir)/bash"
|
||||
else
|
||||
# Disable the plugins logic by hand since bash doesn't provide
|
||||
# a way of doing it.
|
||||
export ac_cv_func_dl{close,open,sym}=no \
|
||||
ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no
|
||||
|
||||
sed -i -e '/LOCAL_LDFLAGS=/s:-rdynamic::' configure || die
|
||||
fi
|
||||
|
||||
# bug #444070
|
||||
tc-export AR
|
||||
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local -a pgo_generate_flags pgo_use_flags
|
||||
local flag
|
||||
|
||||
# -fprofile-partial-training because upstream notes the test suite isn't
|
||||
# super comprehensive.
|
||||
# https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo
|
||||
if use pgo; then
|
||||
pgo_generate_flags=(
|
||||
-fprofile-update=atomic
|
||||
-fprofile-dir="${T}"/pgo
|
||||
-fprofile-generate="${T}"/pgo
|
||||
)
|
||||
pgo_use_flags=(
|
||||
-fprofile-use="${T}"/pgo
|
||||
-fprofile-dir="${T}"/pgo
|
||||
)
|
||||
if flag=$(test-flags-CC -fprofile-partial-training); then
|
||||
pgo_generate_flags+=( "${flag}" )
|
||||
pgo_use_flags+=( "${flag}" )
|
||||
fi
|
||||
fi
|
||||
|
||||
emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}"
|
||||
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" all others
|
||||
|
||||
# Build Bash and run its tests to generate profiles.
|
||||
if (( ${#pgo_generate_flags[@]} )); then
|
||||
# Used in test suite.
|
||||
unset -v A
|
||||
|
||||
emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check
|
||||
|
||||
if tc-is-clang; then
|
||||
llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die
|
||||
fi
|
||||
|
||||
# Rebuild Bash using the profiling data we just generated.
|
||||
emake clean
|
||||
emake CFLAGS="${CFLAGS} ${pgo_use_flags[*]}"
|
||||
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" all others
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Used in test suite.
|
||||
unset -v A
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local d f
|
||||
|
||||
default
|
||||
|
||||
my_prefixify() {
|
||||
while read -r; do
|
||||
if [[ $REPLY == *$1* ]]; then
|
||||
REPLY=${REPLY/"/etc/"/"${EPREFIX}/etc/"}
|
||||
fi
|
||||
printf '%s\n' "${REPLY}" || ! break
|
||||
done < "$2" || die
|
||||
}
|
||||
|
||||
dodir /bin
|
||||
mv -- "${ED}"/usr/bin/bash "${ED}"/bin/ || die
|
||||
dosym bash /bin/rbash
|
||||
|
||||
insinto /etc/bash
|
||||
doins "${FILESDIR}"/bash_logout
|
||||
my_prefixify bashrc.d "${FILESDIR}"/bashrc-r1 | newins - bashrc
|
||||
|
||||
insinto /etc/bash/bashrc.d
|
||||
my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color.bash | newins - 10-gentoo-color.bash
|
||||
newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r1.bash 10-gentoo-title.bash
|
||||
if [[ ! ${EPREFIX} ]]; then
|
||||
doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash
|
||||
fi
|
||||
|
||||
insinto /etc/skel
|
||||
for f in bash{_logout,_profile,rc}; do
|
||||
newins "${FILESDIR}/dot-${f}" ".${f}"
|
||||
done
|
||||
|
||||
if use plugins; then
|
||||
exeinto "/usr/$(get_libdir)/bash"
|
||||
set -- examples/loadables/*.o
|
||||
doexe "${@%.o}"
|
||||
|
||||
insinto /usr/include/bash-plugins
|
||||
doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h}
|
||||
fi
|
||||
|
||||
if use examples; then
|
||||
for d in examples/{functions,misc,scripts,startup-files}; do
|
||||
exeinto "/usr/share/doc/${PF}/${d}"
|
||||
docinto "${d}"
|
||||
for f in "${d}"/*; do
|
||||
if [[ ${f##*/} != @(PERMISSION|*README) ]]; then
|
||||
doexe "${f}"
|
||||
else
|
||||
dodoc "${f}"
|
||||
fi
|
||||
done
|
||||
done
|
||||
fi
|
||||
|
||||
# Install bash_builtins.1 and rbash.1.
|
||||
emake -C doc DESTDIR="${D}" install_builtins
|
||||
sed 's:bash\.1:man1/&:' doc/rbash.1 > "${T}"/rbash.1 || die
|
||||
doman "${T}"/rbash.1
|
||||
|
||||
newdoc CWRU/changelog ChangeLog
|
||||
dosym bash.info /usr/share/info/bashref.info
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]]; then
|
||||
mkdir -p -- "${EROOT}"/etc/bash \
|
||||
&& mv -f -- "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/ \
|
||||
|| die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
local old_ver
|
||||
|
||||
# If /bin/sh does not exist, provide it.
|
||||
if [[ ! -e ${EROOT}/bin/sh ]]; then
|
||||
ln -sf -- bash "${EROOT}"/bin/sh || die
|
||||
fi
|
||||
|
||||
read -r old_ver <<<"${REPLACING_VERSIONS}"
|
||||
if [[ ! $old_ver ]]; then
|
||||
:
|
||||
elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then
|
||||
return
|
||||
fi
|
||||
|
||||
while read -r; do ewarn "${REPLY}"; done <<'EOF'
|
||||
Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash.
|
||||
|
||||
Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the
|
||||
characteristics of the operating environment, it may contain a command to set
|
||||
the terminal's window title. Those who were already choosing to customise the
|
||||
PROMPT_COMMAND variable are now advised to append their commands like so:
|
||||
|
||||
PROMPT_COMMAND+=('custom command goes here')
|
||||
|
||||
Gentoo no longer defaults to having bash set the window title in the case
|
||||
that the terminal is controlled by sshd(8), unless screen is launched on the
|
||||
remote side or the terminal reliably supports saving and restoring the title
|
||||
(as alacritty, foot and tmux do). Those wanting for the title to be set
|
||||
regardless may adjust ~/.bashrc - or create a custom /etc/bash/bashrc.d
|
||||
drop-in - to set PROMPT_COMMMAND like so:
|
||||
|
||||
PROMPT_COMMAND=(genfun_set_win_title)
|
||||
|
||||
Those who would prefer for bash never to interfere with the window title may
|
||||
now opt out of the default title setting behaviour, either with the "unset -v
|
||||
PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired.
|
||||
EOF
|
||||
}
|
||||
@ -1,411 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chetramey.asc
|
||||
inherit flag-o-matic toolchain-funcs prefix verify-sig
|
||||
|
||||
# Uncomment if we have a patchset.
|
||||
#GENTOO_PATCH_DEV="sam"
|
||||
#GENTOO_PATCH_VER="${PV}"
|
||||
|
||||
MY_PV=${PV/_p*}
|
||||
MY_PV=${MY_PV/_/-}
|
||||
MY_P=${PN}-${MY_PV}
|
||||
MY_PATCHES=()
|
||||
|
||||
# Determine the patchlevel.
|
||||
case ${PV} in
|
||||
9999|*_alpha*|*_beta*|*_rc*)
|
||||
# Set a negative patchlevel to indicate that it's a pre-release.
|
||||
PLEVEL=-1
|
||||
;;
|
||||
*_p*)
|
||||
PLEVEL=${PV##*_p}
|
||||
;;
|
||||
*)
|
||||
PLEVEL=0
|
||||
esac
|
||||
|
||||
# The version of readline this bash normally ships with. Note that we only use
|
||||
# the bundled copy of readline for pre-releases.
|
||||
READLINE_VER="8.3_alpha"
|
||||
|
||||
DESCRIPTION="The standard GNU Bourne again shell"
|
||||
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html https://git.savannah.gnu.org/cgit/bash.git"
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git"
|
||||
EGIT_BRANCH=devel
|
||||
inherit git-r3
|
||||
elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
|
||||
# It can be useful to have snapshots in the pre-release period once
|
||||
# the first alpha is out, as various bugs get reported and fixed from
|
||||
# the alpha, and the next pre-release is usually quite far away.
|
||||
#
|
||||
# i.e. if it's worth packaging the alpha, it's worth packaging a followup.
|
||||
BASH_COMMIT="bc5ddc8698d56df588fd99864a650b834426ccf7"
|
||||
SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.xz -> ${P}-${BASH_COMMIT}.tar.xz"
|
||||
S=${WORKDIR}/${PN}-${BASH_COMMIT}
|
||||
else
|
||||
my_urls=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}.tar.gz" )
|
||||
|
||||
# bash-5.1 -> bash51
|
||||
my_p=${PN}$(ver_cut 1-2) my_p=${my_p/.}
|
||||
|
||||
for (( my_patch_idx = 1; my_patch_idx <= PLEVEL; my_patch_idx++ )); do
|
||||
printf -v my_patch_ver %s-%03d "${my_p}" "${my_patch_idx}"
|
||||
my_urls+=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}-patches/${my_patch_ver}" )
|
||||
MY_PATCHES+=( "${DISTDIR}/${my_patch_ver}" )
|
||||
done
|
||||
|
||||
SRC_URI="${my_urls[*]} verify-sig? ( ${my_urls[*]/%/.sig} )"
|
||||
S=${WORKDIR}/${MY_P}
|
||||
|
||||
unset -v my_urls my_p my_patch_idx my_patch_ver
|
||||
fi
|
||||
|
||||
if [[ ${GENTOO_PATCH_VER} ]]; then
|
||||
SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV:?}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER:?}-patches.tar.xz"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
if (( PLEVEL >= 0 )); then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline"
|
||||
|
||||
DEPEND="
|
||||
>=sys-libs/ncurses-5.2-r2:=
|
||||
nls? ( virtual/libintl )
|
||||
"
|
||||
if (( PLEVEL >= 0 )); then
|
||||
DEPEND+=" readline? ( >=sys-libs/readline-${READLINE_VER}:= )"
|
||||
fi
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
"
|
||||
# We only need bison (yacc) when the .y files get patched (bash42-005, bash51-011).
|
||||
BDEPEND="
|
||||
pgo? ( dev-util/gperf )
|
||||
verify-sig? ( sec-keys/openpgp-keys-chetramey )
|
||||
"
|
||||
|
||||
# EAPI 8 tries to append it but it doesn't exist here.
|
||||
QA_CONFIGURE_OPTIONS="--disable-static"
|
||||
|
||||
PATCHES=(
|
||||
#"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/
|
||||
|
||||
# Patches to or from Chet, posted to the bug-bash mailing list.
|
||||
"${FILESDIR}/${PN}-5.0-syslog-history-extern.patch"
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
# bug #7332
|
||||
if is-flag -malign-double; then
|
||||
eerror "Detected bad CFLAGS '-malign-double'. Do not use this"
|
||||
eerror "as it breaks LFS (struct stat64) on x86."
|
||||
die "remove -malign-double from your CFLAGS mr ricer"
|
||||
fi
|
||||
|
||||
if use bashlogger; then
|
||||
ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs."
|
||||
ewarn "This will log ALL output you enter into the shell, you have been warned."
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
local patch
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
git-r3_src_unpack
|
||||
elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
|
||||
default
|
||||
else
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig}
|
||||
|
||||
for patch in "${MY_PATCHES[@]}"; do
|
||||
verify-sig_verify_detached "${patch}"{,.sig}
|
||||
done
|
||||
fi
|
||||
|
||||
unpack "${MY_P}.tar.gz"
|
||||
|
||||
if [[ ${GENTOO_PATCH_VER} ]]; then
|
||||
unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Include official patches.
|
||||
(( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}"
|
||||
|
||||
# Clean out local libs so we know we use system ones w/releases. The
|
||||
# touch utility is invoked for the benefit of config.status.
|
||||
if (( PLEVEL >= 0 )); then
|
||||
rm -rf lib/{readline,termcap}/* \
|
||||
&& touch lib/{readline,termcap}/Makefile.in \
|
||||
&& sed -i -E 's:\$[{(](RL|HIST)_LIBSRC[)}]/[[:alpha:]_-]*\.h::g' Makefile.in \
|
||||
|| die
|
||||
fi
|
||||
|
||||
# Prefixify hardcoded path names. No-op for non-prefix.
|
||||
hprefixify pathnames.h.in
|
||||
|
||||
# Avoid regenerating docs after patches, bug #407985.
|
||||
sed -i -E '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in \
|
||||
&& touch -r . doc/* \
|
||||
|| die
|
||||
|
||||
# Sometimes hangs (more noticeable w/ pgo), bug #907403.
|
||||
rm tests/run-jobs || die
|
||||
|
||||
eapply -p0 "${PATCHES[@]}"
|
||||
eapply_user
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local -a myconf
|
||||
|
||||
# Upstream only test with Bison and require GNUisms like YYEOF and
|
||||
# YYERRCODE. The former at least may be in POSIX soon:
|
||||
# https://www.austingroupbugs.net/view.php?id=1269.
|
||||
# configure warns on use of non-Bison but doesn't abort. The result
|
||||
# may misbehave at runtime.
|
||||
unset -v YACC
|
||||
|
||||
# wcsnwidth(), substring() issues with -Wlto-type-mismatch, reported
|
||||
# upstream to Chet by email.
|
||||
filter-lto
|
||||
|
||||
myconf=(
|
||||
--disable-profiling
|
||||
|
||||
# Force linking with system curses ... the bundled termcap lib
|
||||
# sucks bad compared to ncurses. For the most part, ncurses
|
||||
# is here because readline needs it. But bash itself calls
|
||||
# ncurses in one or two small places :(.
|
||||
--with-curses
|
||||
|
||||
$(use_enable mem-scramble)
|
||||
$(use_enable net net-redirections)
|
||||
$(use_enable readline)
|
||||
$(use_enable readline bang-history)
|
||||
$(use_enable readline history)
|
||||
$(use_with afs)
|
||||
$(use_with mem-scramble bash-malloc)
|
||||
)
|
||||
|
||||
# For descriptions of these, see config-top.h.
|
||||
# bashrc/#26952 bash_logout/#90488 ssh/#24762 mktemp/#574426
|
||||
append-cppflags \
|
||||
-DDEFAULT_PATH_VALUE=\'\""${EPREFIX}"/usr/local/sbin:"${EPREFIX}"/usr/local/bin:"${EPREFIX}"/usr/sbin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/bin\"\' \
|
||||
-DSTANDARD_UTILS_PATH=\'\""${EPREFIX}"/bin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/usr/sbin\"\' \
|
||||
-DSYS_BASHRC=\'\""${EPREFIX}"/etc/bash/bashrc\"\' \
|
||||
-DSYS_BASH_LOGOUT=\'\""${EPREFIX}"/etc/bash/bash_logout\"\' \
|
||||
-DNON_INTERACTIVE_LOGIN_SHELLS \
|
||||
-DSSH_SOURCE_BASHRC \
|
||||
$(use bashlogger && echo -DSYSLOG_HISTORY)
|
||||
|
||||
use nls || myconf+=( --disable-nls )
|
||||
|
||||
if (( PLEVEL >= 0 )); then
|
||||
# Historically, we always used the builtin readline, but since
|
||||
# our handling of SONAME upgrades has gotten much more stable
|
||||
# in the PM (and the readline ebuild itself preserves the old
|
||||
# libs during upgrades), linking against the system copy should
|
||||
# be safe.
|
||||
# Exact cached version here doesn't really matter as long as it
|
||||
# is at least what's in the DEPEND up above.
|
||||
export ac_cv_rl_version=${READLINE_VER%%_*}
|
||||
|
||||
# Use system readline only with released versions.
|
||||
myconf+=( --with-installed-readline=. )
|
||||
fi
|
||||
|
||||
if use plugins; then
|
||||
append-ldflags "-Wl,-rpath,${EPREFIX}/usr/$(get_libdir)/bash"
|
||||
else
|
||||
# Disable the plugins logic by hand since bash doesn't provide
|
||||
# a way of doing it.
|
||||
export ac_cv_func_dl{close,open,sym}=no \
|
||||
ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no
|
||||
|
||||
sed -i -e '/LOCAL_LDFLAGS=/s:-rdynamic::' configure || die
|
||||
fi
|
||||
|
||||
# bug #444070
|
||||
tc-export AR
|
||||
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local -a pgo_generate_flags pgo_use_flags
|
||||
local flag
|
||||
|
||||
# -fprofile-partial-training because upstream notes the test suite isn't
|
||||
# super comprehensive.
|
||||
# https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo
|
||||
if use pgo; then
|
||||
pgo_generate_flags=(
|
||||
-fprofile-update=atomic
|
||||
-fprofile-dir="${T}"/pgo
|
||||
-fprofile-generate="${T}"/pgo
|
||||
)
|
||||
pgo_use_flags=(
|
||||
-fprofile-use="${T}"/pgo
|
||||
-fprofile-dir="${T}"/pgo
|
||||
)
|
||||
if flag=$(test-flags-CC -fprofile-partial-training); then
|
||||
pgo_generate_flags+=( "${flag}" )
|
||||
pgo_use_flags+=( "${flag}" )
|
||||
fi
|
||||
fi
|
||||
|
||||
emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}"
|
||||
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" all others
|
||||
|
||||
# Build Bash and run its tests to generate profiles.
|
||||
if (( ${#pgo_generate_flags[@]} )); then
|
||||
# Used in test suite.
|
||||
unset -v A
|
||||
|
||||
emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check
|
||||
|
||||
if tc-is-clang; then
|
||||
llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die
|
||||
fi
|
||||
|
||||
# Rebuild Bash using the profiling data we just generated.
|
||||
emake clean
|
||||
emake CFLAGS="${CFLAGS} ${pgo_use_flags[*]}"
|
||||
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" all others
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Used in test suite.
|
||||
unset -v A
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local d f
|
||||
|
||||
default
|
||||
|
||||
my_prefixify() {
|
||||
while read -r; do
|
||||
if [[ $REPLY == *$1* ]]; then
|
||||
REPLY=${REPLY/"/etc/"/"${EPREFIX}/etc/"}
|
||||
fi
|
||||
printf '%s\n' "${REPLY}" || ! break
|
||||
done < "$2" || die
|
||||
}
|
||||
|
||||
dodir /bin
|
||||
mv -- "${ED}"/usr/bin/bash "${ED}"/bin/ || die
|
||||
dosym bash /bin/rbash
|
||||
|
||||
insinto /etc/bash
|
||||
doins "${FILESDIR}"/bash_logout
|
||||
my_prefixify bashrc.d "${FILESDIR}"/bashrc-r1 | newins - bashrc
|
||||
|
||||
insinto /etc/bash/bashrc.d
|
||||
my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color.bash | newins - 10-gentoo-color.bash
|
||||
newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r1.bash 10-gentoo-title.bash
|
||||
if [[ ! ${EPREFIX} ]]; then
|
||||
doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash
|
||||
fi
|
||||
|
||||
insinto /etc/skel
|
||||
for f in bash{_logout,_profile,rc}; do
|
||||
newins "${FILESDIR}/dot-${f}" ".${f}"
|
||||
done
|
||||
|
||||
if use plugins; then
|
||||
exeinto "/usr/$(get_libdir)/bash"
|
||||
set -- examples/loadables/*.o
|
||||
doexe "${@%.o}"
|
||||
|
||||
insinto /usr/include/bash-plugins
|
||||
doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h}
|
||||
fi
|
||||
|
||||
if use examples; then
|
||||
for d in examples/{functions,misc,scripts,startup-files}; do
|
||||
exeinto "/usr/share/doc/${PF}/${d}"
|
||||
docinto "${d}"
|
||||
for f in "${d}"/*; do
|
||||
if [[ ${f##*/} != @(PERMISSION|*README) ]]; then
|
||||
doexe "${f}"
|
||||
else
|
||||
dodoc "${f}"
|
||||
fi
|
||||
done
|
||||
done
|
||||
fi
|
||||
|
||||
# Install bash_builtins.1 and rbash.1.
|
||||
emake -C doc DESTDIR="${D}" install_builtins
|
||||
sed 's:bash\.1:man1/&:' doc/rbash.1 > "${T}"/rbash.1 || die
|
||||
doman "${T}"/rbash.1
|
||||
|
||||
newdoc CWRU/changelog ChangeLog
|
||||
dosym bash.info /usr/share/info/bashref.info
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]]; then
|
||||
mkdir -p -- "${EROOT}"/etc/bash \
|
||||
&& mv -f -- "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/ \
|
||||
|| die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
local old_ver
|
||||
|
||||
# If /bin/sh does not exist, provide it.
|
||||
if [[ ! -e ${EROOT}/bin/sh ]]; then
|
||||
ln -sf -- bash "${EROOT}"/bin/sh || die
|
||||
fi
|
||||
|
||||
read -r old_ver <<<"${REPLACING_VERSIONS}"
|
||||
if [[ ! $old_ver ]]; then
|
||||
:
|
||||
elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then
|
||||
return
|
||||
fi
|
||||
|
||||
while read -r; do ewarn "${REPLY}"; done <<'EOF'
|
||||
Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash.
|
||||
|
||||
Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the
|
||||
characteristics of the operating environment, it may contain a command to set
|
||||
the terminal's window title. Those who were already choosing to customise the
|
||||
PROMPT_COMMAND variable are now advised to append their commands like so:
|
||||
|
||||
PROMPT_COMMAND+=('custom command goes here')
|
||||
|
||||
Gentoo no longer defaults to having bash set the window title in the case
|
||||
that the terminal is controlled by sshd(8), unless screen is launched on the
|
||||
remote side or the terminal reliably supports saving and restoring the title
|
||||
(as alacritty, foot and tmux do). Those wanting for the title to be set
|
||||
regardless may adjust ~/.bashrc - or create a custom /etc/bash/bashrc.d
|
||||
drop-in - to set PROMPT_COMMMAND like so:
|
||||
|
||||
PROMPT_COMMAND=(genfun_set_win_title)
|
||||
|
||||
Those who would prefer for bash never to interfere with the window title may
|
||||
now opt out of the default title setting behaviour, either with the "unset -v
|
||||
PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired.
|
||||
EOF
|
||||
}
|
||||
@ -45,7 +45,7 @@ elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
|
||||
# the alpha, and the next pre-release is usually quite far away.
|
||||
#
|
||||
# i.e. if it's worth packaging the alpha, it's worth packaging a followup.
|
||||
BASH_COMMIT="cf694865de527e597de5a906643a74037341a431"
|
||||
BASH_COMMIT="254081c09767738833cdf161b4bc3feb1a51690a"
|
||||
SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.xz -> ${P}-${BASH_COMMIT}.tar.xz"
|
||||
S=${WORKDIR}/${PN}-${BASH_COMMIT}
|
||||
else
|
||||
@ -12,3 +12,6 @@ DIST cmake-3.30.2.tar.gz 11500719 BLAKE2B 85873311000831d2a8acb2c9d7f107e7fcef9d
|
||||
DIST cmake-3.30.3-SHA-256.txt 1646 BLAKE2B 9470d83b929f26d2ac8c1366209d78763963c981490b0ff2c959da85e3b58b72dfff3fe42c98b918089ac4ae05f302d5ec3d7254e9c061c610636d2089cf2b33 SHA512 629375ae3cdbd7b9248c92b7dc3149e109a0c93522a0d35fe458be69f70c5951781781404096f38dde09961a8d4f785866a909a2e282812be275871434f8243a
|
||||
DIST cmake-3.30.3-SHA-256.txt.asc 833 BLAKE2B 15a9cde54b0dac1006cd676c404d5a9756f005bfde9abf5ea89dcaf4ab578f474f653dce95998ba8cb247875d6d58e4b298c540f993997c3cd3326e748a5b8f3 SHA512 4c2090ecb52c74806caf720cbdc6e89a7e60b7a3daaeefb56d54c4ce77d4d1d04d7cd5e72f7c8782fb82ec55374b28d64238b7e5759c675f075eb270087790b7
|
||||
DIST cmake-3.30.3.tar.gz 11501292 BLAKE2B 8b6d989b90568b6fe42ada549f5cd766d8f919f8f5ca3cdea15b5a7b7946d3a82642c178967edc1a9d90d398a7447e25647957489436758381f91b64fa401029 SHA512 1cc0381077819f7210e3fad5fe8194ddc65210f6591044b3982ca0c600e8e978330f1a5602515780bd691264678c7c35a8d9c28d34c14ffa22ef96c7544a20d4
|
||||
DIST cmake-3.30.4-SHA-256.txt 1646 BLAKE2B 0092ca4577ad6433b4560c66a9cdaf7c4ee3bc87473533a91841d5d3759ca7bcf0dce40af1e7b122fc6cb47f98b7d61724f6c00ca5e0d5c927dcc5ff488b4345 SHA512 ef732c6ce8ecd5288d9ec6485abef7a381faa0545848337e1d31a1c7ed3191ed9f7c5edf49ce0e194ad254640b27843ae2cd668c78ccf2835730b2936c19d09d
|
||||
DIST cmake-3.30.4-SHA-256.txt.asc 833 BLAKE2B 4cd2d11bcaa1379e99d231716118034ca2bb39f27c48f590f00f8f57c6f37a874c2d4dbea816e1d3c62972b13dce5d723d837a77c56054834afdecf7d786491d SHA512 3e9c0e17f46d5e85c438d92248ab642be19a0b46b01c057ad253c1bce68cdf867296946b0709021f6bc75d555b0814b0fb1e36de0bacb650c81b59800144c1e6
|
||||
DIST cmake-3.30.4.tar.gz 11502808 BLAKE2B 591b4df9442e77116864f44eba568341ac30be6705061f33603cac56f47fb34730132537d1863ad70d890661eefb4741c0c40cf7a1a85a905300deafc22ba8de SHA512 d444fb94a56aebcda8344f48b5555d330c8d0602d5e68771800934a7df8667c97971ac44c8f0e71f7c1c0276b687fbca6fc5ac3102d5b755591dda7eddf49d0d
|
||||
|
||||
293
sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.30.4.ebuild
vendored
Normal file
293
sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.30.4.ebuild
vendored
Normal file
@ -0,0 +1,293 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs
|
||||
# Set to 1 if prebuilt, 0 if not
|
||||
# (the construct below is to allow overriding from env for script)
|
||||
: ${CMAKE_DOCS_PREBUILT:=1}
|
||||
|
||||
CMAKE_DOCS_PREBUILT_DEV=sam
|
||||
CMAKE_DOCS_VERSION=$(ver_cut 1-2).0
|
||||
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
|
||||
# See bug #784815
|
||||
CMAKE_DOCS_USEFLAG="+doc"
|
||||
|
||||
# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja
|
||||
# ... but seems fine as of 3.22.3?
|
||||
# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759.
|
||||
CMAKE_MAKEFILE_GENERATOR="emake"
|
||||
CMAKE_REMOVE_MODULES_LIST=( none )
|
||||
inherit bash-completion-r1 cmake flag-o-matic multiprocessing \
|
||||
toolchain-funcs xdg-utils
|
||||
|
||||
MY_P="${P/_/-}"
|
||||
|
||||
DESCRIPTION="Cross platform Make"
|
||||
HOMEPAGE="https://cmake.org/"
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
CMAKE_DOCS_PREBUILT=0
|
||||
|
||||
EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz"
|
||||
|
||||
if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
|
||||
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )"
|
||||
fi
|
||||
|
||||
if [[ ${PV} != *_rc* ]] ; then
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc
|
||||
inherit verify-sig
|
||||
|
||||
SRC_URI+=" verify-sig? (
|
||||
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt
|
||||
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc
|
||||
)"
|
||||
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
|
||||
BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20230817 )"
|
||||
fi
|
||||
fi
|
||||
|
||||
[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses qt6 test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
>=app-arch/libarchive-3.3.3:=
|
||||
app-crypt/rhash:0=
|
||||
>=dev-libs/expat-2.0.1
|
||||
>=dev-libs/jsoncpp-1.9.2-r2:0=
|
||||
>=dev-libs/libuv-1.10.0:=
|
||||
>=net-misc/curl-7.21.5[ssl]
|
||||
sys-libs/zlib
|
||||
virtual/pkgconfig
|
||||
dap? ( dev-cpp/cppdap )
|
||||
gui? (
|
||||
!qt6? (
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtgui:5
|
||||
dev-qt/qtwidgets:5
|
||||
)
|
||||
qt6? ( dev-qt/qtbase:6[gui,widgets] )
|
||||
)
|
||||
ncurses? ( sys-libs/ncurses:= )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND+="
|
||||
doc? (
|
||||
dev-python/requests
|
||||
dev-python/sphinx
|
||||
)
|
||||
test? ( app-arch/libarchive[zstd] )
|
||||
"
|
||||
|
||||
SITEFILE="50${PN}-gentoo.el"
|
||||
|
||||
PATCHES=(
|
||||
# Prefix
|
||||
"${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
|
||||
"${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
|
||||
# Misc
|
||||
"${FILESDIR}"/${PN}-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch
|
||||
"${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
|
||||
"${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
|
||||
# Cuda
|
||||
"${FILESDIR}/${PN}-3.30.3-cudahostld.patch"
|
||||
|
||||
# Upstream fixes (can usually be removed with a version bump)
|
||||
)
|
||||
|
||||
cmake_src_bootstrap() {
|
||||
# disable running of cmake in bootstrap command
|
||||
sed -i \
|
||||
-e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \
|
||||
bootstrap || die "sed failed"
|
||||
|
||||
# execinfo.h on Solaris isn't quite what it is on Darwin
|
||||
if [[ ${CHOST} == *-solaris* ]] ; then
|
||||
sed -i -e 's/execinfo\.h/blablabla.h/' \
|
||||
Source/kwsys/CMakeLists.txt || die
|
||||
fi
|
||||
|
||||
# bootstrap script isn't exactly /bin/sh compatible
|
||||
tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \
|
||||
--prefix="${T}/cmakestrap/" \
|
||||
--parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \
|
||||
|| die "Bootstrap failed"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
git-r3_src_unpack
|
||||
elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then
|
||||
default
|
||||
else
|
||||
cd "${DISTDIR}" || die
|
||||
|
||||
# See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature
|
||||
verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc}
|
||||
verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz
|
||||
|
||||
cd "${WORKDIR}" || die
|
||||
|
||||
default
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
cmake_src_prepare
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||
# Disable Xcode hooks, bug #652134
|
||||
sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \
|
||||
Source/CMakeLists.txt || die
|
||||
sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
|
||||
-e '/cmGlobalXCodeGenerator.h/d' \
|
||||
Source/cmake.cxx || die
|
||||
# Disable system integration, bug #933744
|
||||
sed -i -e 's/__APPLE__/__DISABLED__/' \
|
||||
Source/cmFindProgramCommand.cxx \
|
||||
Source/CPack/cmCPackGeneratorFactory.cxx || die
|
||||
sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \
|
||||
Source/cmMachO.cxx || die
|
||||
sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \
|
||||
Source/CMakeLists.txt || die
|
||||
|
||||
# Disable isysroot usage with GCC, we've properly instructed
|
||||
# where things are via GCC configuration and ldwrapper
|
||||
sed -i -e '/cmake_gnu_set_sysroot_flag/d' \
|
||||
Modules/Platform/Apple-GNU-*.cmake || die
|
||||
# Disable isysroot usage with clang as well
|
||||
sed -i -e '/_SYSROOT_FLAG/d' \
|
||||
Modules/Platform/Apple-Clang.cmake || die
|
||||
# Don't set a POSIX standard, system headers don't like that, #757426
|
||||
sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
|
||||
Source/cmLoadCommandCommand.cxx \
|
||||
Source/cmStandardLexer.h \
|
||||
Source/cmSystemTools.cxx \
|
||||
Source/cmTimestamp.cxx
|
||||
sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
|
||||
Source/cmStandardLexer.h
|
||||
fi
|
||||
|
||||
# Add gcc libs to the default link paths
|
||||
sed -i \
|
||||
-e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \
|
||||
-e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \
|
||||
-e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \
|
||||
Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed"
|
||||
|
||||
## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must*
|
||||
## handle them as part of bootstrapping, sadly.
|
||||
|
||||
# Fix linking on Solaris
|
||||
[[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl
|
||||
|
||||
# ODR warnings, bug #858335
|
||||
# https://gitlab.kitware.com/cmake/cmake/-/issues/20740
|
||||
filter-lto
|
||||
|
||||
if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then
|
||||
CMAKE_BINARY="${S}/Bootstrap.cmk/cmake"
|
||||
cmake_src_bootstrap
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DCMAKE_USE_SYSTEM_LIBRARIES=ON
|
||||
-DCMake_ENABLE_DEBUGGER=$(usex dap)
|
||||
-DCMAKE_DOC_DIR=/share/doc/${PF}
|
||||
-DCMAKE_MAN_DIR=/share/man
|
||||
-DCMAKE_DATA_DIR=/share/${PN}
|
||||
-DSPHINX_MAN=$(usex doc)
|
||||
-DSPHINX_HTML=$(usex doc)
|
||||
-DBUILD_CursesDialog="$(usex ncurses)"
|
||||
-DBUILD_TESTING=$(usex test)
|
||||
-DBUILD_QtDialog=$(usex gui)
|
||||
)
|
||||
|
||||
use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=$(usex qt6 6 5) )
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Fix OutDir and SelectLibraryConfigurations tests
|
||||
# these are altered thanks to our eclass
|
||||
sed -i -e 's:^#_cmake_modify_IGNORE ::g' \
|
||||
"${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \
|
||||
|| die
|
||||
|
||||
unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS
|
||||
|
||||
pushd "${BUILD_DIR}" > /dev/null || die
|
||||
|
||||
# Excluded tests:
|
||||
# BootstrapTest: we actualy bootstrap it every time so why test it.
|
||||
# BundleUtilities: bundle creation broken
|
||||
# CMakeOnly.AllFindModules: pthread issues
|
||||
# CTest.updatecvs: which fails to commit as root
|
||||
# Fortran: requires fortran
|
||||
# RunCMake.CompilerLauncher: also requires fortran
|
||||
# RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because
|
||||
# debugedit binary is not in the expected location
|
||||
# RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because
|
||||
# it can't find a deb package that owns libc
|
||||
# TestUpload, which requires network access
|
||||
# RunCMake.CMP0125, known failure reported upstream (bug #829414)
|
||||
local myctestargs=(
|
||||
--output-on-failure
|
||||
-E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \
|
||||
)
|
||||
|
||||
local -x QT_QPA_PLATFORM=offscreen
|
||||
|
||||
cmake_src_test
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
|
||||
# If USE=doc, there'll be newly generated docs which we install instead.
|
||||
if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
|
||||
doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8]
|
||||
fi
|
||||
|
||||
insinto /usr/share/vim/vimfiles/syntax
|
||||
doins Auxiliary/vim/syntax/cmake.vim
|
||||
|
||||
insinto /usr/share/vim/vimfiles/indent
|
||||
doins Auxiliary/vim/indent/cmake.vim
|
||||
|
||||
insinto /usr/share/vim/vimfiles/ftdetect
|
||||
doins "${FILESDIR}/${PN}.vim"
|
||||
|
||||
dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack}
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if use gui; then
|
||||
xdg_icon_cache_update
|
||||
xdg_desktop_database_update
|
||||
xdg_mimeinfo_database_update
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
if use gui; then
|
||||
xdg_icon_cache_update
|
||||
xdg_desktop_database_update
|
||||
xdg_mimeinfo_database_update
|
||||
fi
|
||||
}
|
||||
@ -1,4 +1,2 @@
|
||||
DIST libtool-2.4.7.tar.xz 1016040 BLAKE2B 5e022586337637dd634bd40578ad944bec6e3b8de41f95d55777b90cc88cbc4badb3d76cbf0e638166ece1ea7de828e83590e1e6bac30c1e4b1c254a11a742f2 SHA512 47f4c6de40927254ff9ba452612c0702aea6f4edc7e797f0966c8c6bf0340d533598976cdba17f0bdc64545572e71cd319bbb587aa5f47cd2e7c1d96f873a3da
|
||||
DIST libtool-2.5.0.tar.xz 1032148 BLAKE2B a166423dae1000eb0a8d17f3872ed55b3338444ac61f51752f43a5886bc22fd233e060c7f4c8c7fa093bf50e589f03b755c628199534ef7b8a41935e1bf9d887 SHA512 7b426fe9550a7899de93c372d2c355867be02f7bb39f2b1de06ff30cb34c81bf89759c835bdb23081cef60bfeb39b786ed90bac43e7300956fd8ee1f7dc0a609
|
||||
DIST libtool-2.5.1.tar.xz 1043544 BLAKE2B ae1e45c9d56a94980549476ed5abb7d617491360ff23ce88da9e884630280004152a9f5a96267be710930f14917bf7b00ab212acd4c65ceba1e201d2f01809e0 SHA512 ac0a6a8570ff81099585f6c3bf5a8f94851457a068b808e505422276a22638b1912a81f94e185bc2f8661b7abe2f2b2482b1af2cf42307787cbbd71d1b1612da
|
||||
DIST libtool-2.5.2.tar.xz 1046372 BLAKE2B 12e3d1f948f64031519ad5619573593b2518ec63cb8e3d69487a4b6104f5ee385c2123d3163c036fe10ca7214ba7558b6bd7fb56d22f1e249945a50091e18862 SHA512 cd6eb8ea470dd5bbfdfcfb06f31b36c84962f09c7155ca8175bc340b0a0289ca85dc9ea6e49c02e6876630913031739ef71dae231bc76c44f0c24e1be09d8cee
|
||||
DIST libtool-2.5.3.tar.xz 1050076 BLAKE2B e7bc3421d2273851f894583b879c897239bddaef00dc335176f00ce971d3c77e4d4304ae3b1d1b97d4b6b1b4fd9859ddc0eb5dcadac2e0de959b68cae973f726 SHA512 7a2b86716b2cbefcd45bda7f65af81fcb0aaa3dce96b09f417d6b94721a4dd9e72a9552862783d998ddf785e509315bb49f65c464dbc949d58e36f0960cf9b1b
|
||||
|
||||
@ -1,151 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Please bump with dev-libs/libltdl.
|
||||
|
||||
# bug #225559
|
||||
LIBTOOLIZE="true"
|
||||
WANT_LIBTOOL="none"
|
||||
inherit autotools flag-o-matic prefix multiprocessing
|
||||
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
EGIT_REPO_URI="https://git.savannah.gnu.org/git/libtool.git"
|
||||
inherit git-r3
|
||||
elif ! [[ $(( $(ver_cut 2) % 2 )) -eq 0 ]] ; then
|
||||
SRC_URI="https://alpha.gnu.org/gnu/${PN}/${P}.tar.xz"
|
||||
else
|
||||
SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
|
||||
DESCRIPTION="A shared library tool for developers"
|
||||
HOMEPAGE="https://www.gnu.org/software/libtool/"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="2"
|
||||
IUSE="vanilla"
|
||||
|
||||
# Pull in libltdl directly until we convert packages to the new dep.
|
||||
RDEPEND="
|
||||
sys-devel/gnuconfig
|
||||
>=dev-build/autoconf-2.69:*
|
||||
>=dev-build/automake-1.13:*
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
[[ ${PV} == *9999 ]] && BDEPEND="sys-apps/help2man"
|
||||
|
||||
# Note that we have more patches in https://gitweb.gentoo.org/proj/elt-patches.git/
|
||||
# for package builds. The patches here are just those which are definitely fine
|
||||
# for the system-wide libtool installation as well.
|
||||
PATCHES=(
|
||||
# bug #109105
|
||||
"${FILESDIR}"/${PN}-2.4.3-use-linux-version-in-fbsd.patch
|
||||
# bug #581314
|
||||
"${FILESDIR}"/${PN}-2.4.6-ppc64le.patch
|
||||
|
||||
"${FILESDIR}"/${PN}-2.2.6a-darwin-module-bundle.patch
|
||||
"${FILESDIR}"/${PN}-2.4.6-darwin-use-linux-version.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
eapply "${FILESDIR}"/${PN}-2.4.6-pthread.patch # bug #650876
|
||||
./bootstrap || die
|
||||
else
|
||||
PATCHES+=(
|
||||
"${FILESDIR}"/${PN}-2.4.6-pthread_bootstrapped.patch # bug #650876
|
||||
)
|
||||
fi
|
||||
|
||||
# WARNING: File build-aux/ltmain.sh is read-only; trying to patch anyway
|
||||
chmod +w build-aux/ltmain.sh || die
|
||||
|
||||
if use vanilla ; then
|
||||
eapply_user
|
||||
return 0
|
||||
else
|
||||
default
|
||||
fi
|
||||
|
||||
if use prefix ; then
|
||||
# seems that libtool has to know about EPREFIX a little bit
|
||||
# better, since it fails to find prefix paths to search libs
|
||||
# from, resulting in some packages building static only, since
|
||||
# libtool is fooled into thinking that libraries are unavailable
|
||||
# (argh...). This could also be fixed by making the gcc wrapper
|
||||
# return the correct result for -print-search-dirs (doesn't
|
||||
# include prefix dirs ...).
|
||||
eapply "${FILESDIR}"/${PN}-2.2.10-eprefix.patch
|
||||
eprefixify m4/libtool.m4
|
||||
fi
|
||||
|
||||
pushd libltdl >/dev/null || die
|
||||
AT_NOELIBTOOLIZE=yes eautoreconf
|
||||
popd >/dev/null || die
|
||||
AT_NOELIBTOOLIZE=yes eautoreconf
|
||||
|
||||
# Make sure timestamps don't trigger a rebuild of man pages. #556512
|
||||
if [[ ${PV} != *9999 ]] ; then
|
||||
touch doc/*.1 || die
|
||||
export HELP2MAN=true
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# the libtool script uses bash code in it and at configure time, tries
|
||||
# to find a bash shell. if /bin/sh is bash, it uses that. this can
|
||||
# cause problems for people who switch /bin/sh on the fly to other
|
||||
# shells, so just force libtool to use /bin/bash all the time.
|
||||
# Do not bother hardcoding the full path to sed.
|
||||
# Just rely on $PATH. bug #574550
|
||||
export CONFIG_SHELL="${EPREFIX}"/bin/bash
|
||||
export ac_cv_path_SED="sed"
|
||||
export ac_cv_path_EGREP="grep -E"
|
||||
export ac_cv_path_EGREP_TRADITIONAL="grep -E"
|
||||
export ac_cv_path_FGREP="grep -F"
|
||||
export ac_cv_path_GREP="grep"
|
||||
export ac_cv_path_lt_DD="dd"
|
||||
|
||||
local myeconfargs=(
|
||||
# Split into dev-libs/libltdl
|
||||
--disable-ltdl-install
|
||||
|
||||
# Tests break otherwise (when porting to EAPI 8)
|
||||
# https://lists.gnu.org/archive/html/bug-libtool/2014-10/msg00013.html
|
||||
--enable-static
|
||||
)
|
||||
|
||||
[[ ${CHOST} == *-darwin* ]] && myeconfargs+=( "--program-prefix=g" )
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_test() {
|
||||
(
|
||||
# The testsuite is sensitive to warnings, expects static
|
||||
# archives to really be archives (not compiler IR), etc.
|
||||
strip-flags
|
||||
filter-flags -fno-semantic-interposition
|
||||
filter-flags '-Wstrict-aliasing=*' '-Werror=*'
|
||||
filter-lto
|
||||
|
||||
emake -Onone check \
|
||||
CFLAGS="${CFLAGS}" \
|
||||
CXXFLAGS="${CXXFLAGS}" \
|
||||
FFLAGS="${FFLAGS}" \
|
||||
FCFLAGS="${FCFLAGS}" \
|
||||
LDFLAGS="${LDFLAGS}" \
|
||||
TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)"
|
||||
)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
local x
|
||||
while read -d $'\0' -r x ; do
|
||||
ln -sf "${EPREFIX}"/usr/share/gnuconfig/${x##*/} "${x}" || die
|
||||
done < <(find "${ED}" '(' -name config.guess -o -name config.sub ')' -print0)
|
||||
}
|
||||
@ -1,151 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Please bump with dev-libs/libltdl.
|
||||
|
||||
# bug #225559
|
||||
LIBTOOLIZE="true"
|
||||
WANT_LIBTOOL="none"
|
||||
inherit autotools flag-o-matic prefix multiprocessing
|
||||
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
EGIT_REPO_URI="https://git.savannah.gnu.org/git/libtool.git"
|
||||
inherit git-r3
|
||||
elif ! [[ $(( $(ver_cut 2) % 2 )) -eq 0 ]] ; then
|
||||
SRC_URI="https://alpha.gnu.org/gnu/${PN}/${P}.tar.xz"
|
||||
else
|
||||
SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
|
||||
DESCRIPTION="A shared library tool for developers"
|
||||
HOMEPAGE="https://www.gnu.org/software/libtool/"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="2"
|
||||
IUSE="vanilla"
|
||||
|
||||
# Pull in libltdl directly until we convert packages to the new dep.
|
||||
RDEPEND="
|
||||
sys-devel/gnuconfig
|
||||
>=dev-build/autoconf-2.69:*
|
||||
>=dev-build/automake-1.13:*
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
[[ ${PV} == *9999 ]] && BDEPEND="sys-apps/help2man"
|
||||
|
||||
# Note that we have more patches in https://gitweb.gentoo.org/proj/elt-patches.git/
|
||||
# for package builds. The patches here are just those which are definitely fine
|
||||
# for the system-wide libtool installation as well.
|
||||
PATCHES=(
|
||||
# bug #109105
|
||||
"${FILESDIR}"/${PN}-2.4.3-use-linux-version-in-fbsd.patch
|
||||
# bug #581314
|
||||
"${FILESDIR}"/${PN}-2.4.6-ppc64le.patch
|
||||
|
||||
"${FILESDIR}"/${PN}-2.2.6a-darwin-module-bundle.patch
|
||||
"${FILESDIR}"/${PN}-2.4.6-darwin-use-linux-version.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
eapply "${FILESDIR}"/${PN}-2.4.6-pthread.patch # bug #650876
|
||||
./bootstrap || die
|
||||
else
|
||||
PATCHES+=(
|
||||
"${FILESDIR}"/${PN}-2.4.6-pthread_bootstrapped.patch # bug #650876
|
||||
)
|
||||
fi
|
||||
|
||||
# WARNING: File build-aux/ltmain.sh is read-only; trying to patch anyway
|
||||
chmod +w build-aux/ltmain.sh || die
|
||||
|
||||
if use vanilla ; then
|
||||
eapply_user
|
||||
return 0
|
||||
else
|
||||
default
|
||||
fi
|
||||
|
||||
if use prefix ; then
|
||||
# seems that libtool has to know about EPREFIX a little bit
|
||||
# better, since it fails to find prefix paths to search libs
|
||||
# from, resulting in some packages building static only, since
|
||||
# libtool is fooled into thinking that libraries are unavailable
|
||||
# (argh...). This could also be fixed by making the gcc wrapper
|
||||
# return the correct result for -print-search-dirs (doesn't
|
||||
# include prefix dirs ...).
|
||||
eapply "${FILESDIR}"/${PN}-2.2.10-eprefix.patch
|
||||
eprefixify m4/libtool.m4
|
||||
fi
|
||||
|
||||
pushd libltdl >/dev/null || die
|
||||
AT_NOELIBTOOLIZE=yes eautoreconf
|
||||
popd >/dev/null || die
|
||||
AT_NOELIBTOOLIZE=yes eautoreconf
|
||||
|
||||
# Make sure timestamps don't trigger a rebuild of man pages. #556512
|
||||
if [[ ${PV} != *9999 ]] ; then
|
||||
touch doc/*.1 || die
|
||||
export HELP2MAN=true
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# the libtool script uses bash code in it and at configure time, tries
|
||||
# to find a bash shell. if /bin/sh is bash, it uses that. this can
|
||||
# cause problems for people who switch /bin/sh on the fly to other
|
||||
# shells, so just force libtool to use /bin/bash all the time.
|
||||
# Do not bother hardcoding the full path to sed.
|
||||
# Just rely on $PATH. bug #574550
|
||||
export CONFIG_SHELL="${EPREFIX}"/bin/bash
|
||||
export ac_cv_path_SED="sed"
|
||||
export ac_cv_path_EGREP="grep -E"
|
||||
export ac_cv_path_EGREP_TRADITIONAL="grep -E"
|
||||
export ac_cv_path_FGREP="grep -F"
|
||||
export ac_cv_path_GREP="grep"
|
||||
export ac_cv_path_lt_DD="dd"
|
||||
|
||||
local myeconfargs=(
|
||||
# Split into dev-libs/libltdl
|
||||
--disable-ltdl-install
|
||||
|
||||
# Tests break otherwise (when porting to EAPI 8)
|
||||
# https://lists.gnu.org/archive/html/bug-libtool/2014-10/msg00013.html
|
||||
--enable-static
|
||||
)
|
||||
|
||||
[[ ${CHOST} == *-darwin* ]] && myeconfargs+=( "--program-prefix=g" )
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_test() {
|
||||
(
|
||||
# The testsuite is sensitive to warnings, expects static
|
||||
# archives to really be archives (not compiler IR), etc.
|
||||
strip-flags
|
||||
filter-flags -fno-semantic-interposition
|
||||
filter-flags '-Wstrict-aliasing=*' '-Werror=*'
|
||||
filter-lto
|
||||
|
||||
emake -Onone check \
|
||||
CFLAGS="${CFLAGS}" \
|
||||
CXXFLAGS="${CXXFLAGS}" \
|
||||
FFLAGS="${FFLAGS}" \
|
||||
FCFLAGS="${FCFLAGS}" \
|
||||
LDFLAGS="${LDFLAGS}" \
|
||||
TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)"
|
||||
)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
local x
|
||||
while read -d $'\0' -r x ; do
|
||||
ln -sf "${EPREFIX}"/usr/share/gnuconfig/${x##*/} "${x}" || die
|
||||
done < <(find "${ED}" '(' -name config.guess -o -name config.sub ')' -print0)
|
||||
}
|
||||
@ -13,7 +13,7 @@ inherit autotools flag-o-matic prefix multiprocessing
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
EGIT_REPO_URI="https://git.savannah.gnu.org/git/libtool.git"
|
||||
inherit git-r3
|
||||
elif ! [[ $(( $(ver_cut 2) % 2 )) -eq 0 ]] ; then
|
||||
elif false && ! [[ $(( $(ver_cut 2) % 2 )) -eq 0 ]] ; then
|
||||
SRC_URI="https://alpha.gnu.org/gnu/${PN}/${P}.tar.xz"
|
||||
else
|
||||
SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
|
||||
@ -27,7 +27,6 @@ LICENSE="GPL-2"
|
||||
SLOT="2"
|
||||
IUSE="vanilla"
|
||||
|
||||
# Pull in libltdl directly until we convert packages to the new dep.
|
||||
RDEPEND="
|
||||
sys-devel/gnuconfig
|
||||
>=dev-build/autoconf-2.69:*
|
||||
@ -27,7 +27,6 @@ LICENSE="GPL-2"
|
||||
SLOT="2"
|
||||
IUSE="vanilla"
|
||||
|
||||
# Pull in libltdl directly until we convert packages to the new dep.
|
||||
RDEPEND="
|
||||
sys-devel/gnuconfig
|
||||
>=dev-build/autoconf-2.69:*
|
||||
|
||||
@ -8,5 +8,11 @@ DIST meson-1.4.2.tar.gz 2227701 BLAKE2B 11d98d8c84545390bd35b393ae02db7876a38dad
|
||||
DIST meson-1.4.2.tar.gz.asc 833 BLAKE2B 64ce1fc0fecdd6aa76bb89d88ff7497548d82afc00805c083a0bca7ce4cee41dc50be50368e333649ae7e863c03ea780fe24a48c525281fbbcab679b540f4254 SHA512 51d3245f9443cb398e2e8f225f00a853848bde1bfba02bae6334d47115e36ad96c8ec03244f6169c89d73162b86a73158a7f8d08d5bd6b3d28e8369ce7b55093
|
||||
DIST meson-1.5.1.tar.gz 2257106 BLAKE2B 3368b209444d0873217bafee2339b395dca9fa43df68adce19029a41ad5c0eca59426ef681d174ef8b6b89d4a6c5b4f189c1ae219deed78334028d44bdb23a95 SHA512 3239d6f3d64dcedddd456dc451278a37aa6c4460708b0efdff1b04b6e8844c20f5f882060de311c59a678bebd51ee09e1906c9384d4b0c85b28015fd1713ab0a
|
||||
DIST meson-1.5.1.tar.gz.asc 833 BLAKE2B c099720b102b8fff581f2043000454f5cb3593352a8b69c681cda73dae7172fb7d892dc0500e29fffe4ba7828cdcba418acea230563dc26a7a89139ab526b231 SHA512 f8210dd309a104b4169bc2eae9ff370f3ced6fe2c5dfc8f3477c9fbbed983dd6636ea05822d9345d7570e88bfe7789c6cc075e5a91d578a8376666d16ad550a3
|
||||
DIST meson-1.5.2.tar.gz 2265788 BLAKE2B bda0742cf053cb235833b347e66b8706983815fda5d62815aa6455980837e061fb0db2f7472966e6e09a199b0850477a3b448b6ad3b7db717da6b43906cbe2ac SHA512 9f601bdadaf2dae312ff02caa9dcd3fe13659a101e601417bdb908d8b91cdd4a12302433b00c188c1562287a06ada656044d79821d0beb0e0e41c63ab5d48112
|
||||
DIST meson-1.5.2.tar.gz.asc 833 BLAKE2B 0ea6af017430568b2834081a60d0153cc80cb55d835b1f570e27ae6220a163aff9f4607654fe87841df112c78763b4d45dabd45072e398cdf901762095ce52e7 SHA512 7b7c0ee2b872c83d98954079fc27665b3a9ec5464aa8decc5919ff4e1c4134d7006494bd64b901dc2ade408131ea512eefef9416f3c57d1460c9308cb6683fc8
|
||||
DIST meson-1.6.0rc1.tar.gz 2275126 BLAKE2B 0b0ff79ed21fa7b65829730dee3d246ca5012c3ef6185e58b7e4eb22aa7ea24741a7d0e1df56d32488761e504862350a505f043360695472a24a602ee6959dee SHA512 36d6015a353cefdcb26c442e78b9a3d8d69c1c505c84522c0422b956254cf5fe83dfc427442daf9999a874b378e571a2a28cbfe2fb0eb748c38a08cd24c07665
|
||||
DIST meson-1.6.0rc1.tar.gz.asc 833 BLAKE2B 06beb3d168519b6ba3adeb41eb81320b10db8684f7f8768306b96cc1ecd9cff1c8e07d489825160e4a8a493b760da60a944ea3b465529b2a860f780f6d65e8ef SHA512 cbb579d4231aeeb9aa56540dd8068a22a06e3fef82207c9860da861e319920154c4286a991efadad235ecd006041c38a3122b3850d6ce0bbaa0c8250c43d6291
|
||||
DIST meson-reference-1.4.2.3 339324 BLAKE2B 1a4fbd8c27a8cfba773777eabd2ebaa0f76ec0c61dcfe1c7b4483737b348ff9528d68f26e68d7d40b2e1875611eed5b9a31c1cf55fed8eabb42fc1e31d9ef14b SHA512 8b8ec43e812599203ec44c08805eb6818485805c45b9c69802261eaa35efc97846a96f6472c6b1ef5f6c703e7153fd957df7b805f173ca3400a2030dfbe002ca
|
||||
DIST meson-reference-1.5.1.3 341110 BLAKE2B 5267c2eea1b1281f87e63eb08aa928257dd98088b4d5c27c2785d2d8066c2c28536f7f56bf804ffe37d2f51552c91f31ff7e2729f3b2485d594a9e44a0df9ab1 SHA512 2d36e87e9bc2de0b958f4b20544b0bd9f2b0ffb646768e68fefcd5dfb8f09c24db40f27208b5f2d1f6ba02e7465f68a538ea72be118670c76e0959e090a42cf3
|
||||
DIST meson-reference-1.5.2.3 341110 BLAKE2B 0d588b796f7f2da2dcb0e7822acde6a9a461930da4bfead3cf9148fa0fac18cd0ccbc6e891f555c973836f1c16b4eae299908a838a0b6843293de8815d30fc23 SHA512 64715ce2113e362e7d67179fe13566bc8f84ce7f4e6d795b836f42455a871173fee06e3e969e2996022d7e6c9b4b5379587a4c0c3d97b4bca527fb8902d3547f
|
||||
DIST meson-reference-1.6.0rc1.3 343734 BLAKE2B 6d10d99158e2905140a7a318e780e19f5e589103657194b5b669bb48e83c4ed28e152ae9cd8dd2d65b643572012f215a339df9ca530e075c6d88d383ccd2d29e SHA512 4e298dedb829f630ed47854325c24f2c1948db91627f7e8067bf81483f33e714a9439713ce170f42dd66ee07314d7b0ad032a46241898c7e981546c772c4a26c
|
||||
|
||||
190
sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.5.2.ebuild
vendored
Normal file
190
sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.5.2.ebuild
vendored
Normal file
@ -0,0 +1,190 @@
|
||||
# Copyright 2016-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..13} pypy3 )
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
|
||||
inherit bash-completion-r1 edo distutils-r1 flag-o-matic toolchain-funcs
|
||||
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
EGIT_REPO_URI="https://github.com/mesonbuild/meson"
|
||||
inherit ninja-utils git-r3
|
||||
|
||||
BDEPEND="
|
||||
${NINJA_DEPEND}
|
||||
$(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
|
||||
"
|
||||
|
||||
else
|
||||
inherit verify-sig
|
||||
|
||||
MY_PV=${PV/_/}
|
||||
MY_P=${P/_/}
|
||||
S=${WORKDIR}/${MY_P}
|
||||
|
||||
SRC_URI="
|
||||
https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz
|
||||
verify-sig? ( https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz.asc )
|
||||
https://github.com/mesonbuild/meson/releases/download/${MY_PV}/meson-reference.3 -> meson-reference-${MY_PV}.3
|
||||
"
|
||||
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-jpakkane )"
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jpakkane.gpg
|
||||
|
||||
if [[ ${PV} != *_rc* ]] ; then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
fi
|
||||
|
||||
DESCRIPTION="Open source build system"
|
||||
HOMEPAGE="https://mesonbuild.com/"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
IUSE="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
DEPEND="
|
||||
test? (
|
||||
dev-libs/glib:2
|
||||
dev-libs/gobject-introspection
|
||||
app-alternatives/ninja
|
||||
dev-vcs/git
|
||||
sys-libs/zlib[static-libs(+)]
|
||||
virtual/pkgconfig
|
||||
)
|
||||
"
|
||||
RDEPEND="
|
||||
!<dev-build/muon-0.2.0-r2[man(-)]
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.2.1-python-path.patch
|
||||
)
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
git-r3_src_unpack
|
||||
else
|
||||
default
|
||||
use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.gz{,.asc}
|
||||
fi
|
||||
}
|
||||
|
||||
python_prepare_all() {
|
||||
local disable_unittests=(
|
||||
# ASAN and sandbox both want control over LD_PRELOAD
|
||||
# https://bugs.gentoo.org/673016
|
||||
-e 's/test_generate_gir_with_address_sanitizer/_&/'
|
||||
|
||||
# ASAN is unsupported on some targets
|
||||
# https://bugs.gentoo.org/692822
|
||||
-e 's/test_pch_with_address_sanitizer/_&/'
|
||||
|
||||
# clippy-driver fails, but only when run via portage.
|
||||
#
|
||||
# error[E0463]: can't find crate for `std`
|
||||
# error: requires `sized` lang_item
|
||||
-e 's/test_rust_clippy/_&/'
|
||||
)
|
||||
|
||||
sed -i "${disable_unittests[@]}" unittests/*.py || die
|
||||
|
||||
# Broken due to python2 script created by python_wrapper_setup
|
||||
rm -r "test cases/frameworks/1 boost" || die
|
||||
# nvcc breaks on essentially any LDFLAGS
|
||||
# https://bugs.gentoo.org/936757
|
||||
# https://github.com/mesonbuild/meson/issues/11234
|
||||
rm -r "test cases/cuda"/* || die
|
||||
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_check_deps() {
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
|
||||
fi
|
||||
}
|
||||
|
||||
python_configure_all() {
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
# We use the unsafe_yaml loader because strictyaml is not packaged. In
|
||||
# theory they produce the same results, but pyyaml is faster and
|
||||
# without safety checks.
|
||||
edo ./meson.py setup \
|
||||
--prefix "${EPREFIX}/usr" \
|
||||
-Dhtml=false \
|
||||
-Dunsafe_yaml=true \
|
||||
docs/ docs/builddir
|
||||
fi
|
||||
}
|
||||
|
||||
python_compile_all() {
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
eninja -C docs/builddir
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
tc-export PKG_CONFIG
|
||||
if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then
|
||||
ewarn "Found Qt5Core but not Qt5Gui; skipping tests"
|
||||
else
|
||||
distutils-r1_src_test
|
||||
fi
|
||||
}
|
||||
|
||||
python_test() {
|
||||
(
|
||||
# meson has its own tests for LTO support. We don't need to verify that
|
||||
# all tests work when they happen to use it. And in particular, this
|
||||
# breaks rust.
|
||||
filter-lto
|
||||
|
||||
# remove unwanted python_wrapper_setup contents
|
||||
# We actually do want to non-error if python2 is installed and tested.
|
||||
remove="${T}/${EPYTHON}/bin:"
|
||||
PATH=${PATH/${remove}/}
|
||||
|
||||
# test_meson_installed
|
||||
unset PYTHONDONTWRITEBYTECODE
|
||||
|
||||
# https://bugs.gentoo.org/687792
|
||||
unset PKG_CONFIG
|
||||
|
||||
# test_cross_file_system_paths
|
||||
unset XDG_DATA_HOME
|
||||
|
||||
# 'test cases/unit/73 summary' expects 80 columns
|
||||
export COLUMNS=80
|
||||
|
||||
# If JAVA_HOME is not set, meson looks for javac in PATH.
|
||||
# If javac is in /usr/bin, meson assumes /usr/include is a valid
|
||||
# JDK include path. Setting JAVA_HOME works around this broken
|
||||
# autodetection. If no JDK is installed, we should end up with an empty
|
||||
# value in JAVA_HOME, and the tests should get skipped.
|
||||
export JAVA_HOME=$(java-config -O 2>/dev/null)
|
||||
|
||||
${EPYTHON} -u run_tests.py
|
||||
) || die "Testing failed with ${EPYTHON}"
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
distutils-r1_python_install_all
|
||||
|
||||
insinto /usr/share/vim/vimfiles
|
||||
doins -r data/syntax-highlighting/vim/{ftdetect,indent,syntax}
|
||||
|
||||
insinto /usr/share/zsh/site-functions
|
||||
doins data/shell-completions/zsh/_meson
|
||||
|
||||
dobashcomp data/shell-completions/bash/meson
|
||||
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
DESTDIR="${ED}" eninja -C docs/builddir install
|
||||
else
|
||||
newman "${DISTDIR}"/meson-reference-${MY_PV}.3 meson-reference.3
|
||||
fi
|
||||
}
|
||||
190
sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.6.0_rc1.ebuild
vendored
Normal file
190
sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.6.0_rc1.ebuild
vendored
Normal file
@ -0,0 +1,190 @@
|
||||
# Copyright 2016-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..13} pypy3 )
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
|
||||
inherit bash-completion-r1 edo distutils-r1 flag-o-matic toolchain-funcs
|
||||
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
EGIT_REPO_URI="https://github.com/mesonbuild/meson"
|
||||
inherit ninja-utils git-r3
|
||||
|
||||
BDEPEND="
|
||||
${NINJA_DEPEND}
|
||||
$(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
|
||||
"
|
||||
|
||||
else
|
||||
inherit verify-sig
|
||||
|
||||
MY_PV=${PV/_/}
|
||||
MY_P=${P/_/}
|
||||
S=${WORKDIR}/${MY_P}
|
||||
|
||||
SRC_URI="
|
||||
https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz
|
||||
verify-sig? ( https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz.asc )
|
||||
https://github.com/mesonbuild/meson/releases/download/${MY_PV}/meson-reference.3 -> meson-reference-${MY_PV}.3
|
||||
"
|
||||
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-jpakkane )"
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jpakkane.gpg
|
||||
|
||||
if [[ ${PV} != *_rc* ]] ; then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
fi
|
||||
|
||||
DESCRIPTION="Open source build system"
|
||||
HOMEPAGE="https://mesonbuild.com/"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
IUSE="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
DEPEND="
|
||||
test? (
|
||||
dev-libs/glib:2
|
||||
dev-libs/gobject-introspection
|
||||
app-alternatives/ninja
|
||||
dev-vcs/git
|
||||
sys-libs/zlib[static-libs(+)]
|
||||
virtual/pkgconfig
|
||||
)
|
||||
"
|
||||
RDEPEND="
|
||||
!<dev-build/muon-0.2.0-r2[man(-)]
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.2.1-python-path.patch
|
||||
)
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
git-r3_src_unpack
|
||||
else
|
||||
default
|
||||
use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.gz{,.asc}
|
||||
fi
|
||||
}
|
||||
|
||||
python_prepare_all() {
|
||||
local disable_unittests=(
|
||||
# ASAN and sandbox both want control over LD_PRELOAD
|
||||
# https://bugs.gentoo.org/673016
|
||||
-e 's/test_generate_gir_with_address_sanitizer/_&/'
|
||||
|
||||
# ASAN is unsupported on some targets
|
||||
# https://bugs.gentoo.org/692822
|
||||
-e 's/test_pch_with_address_sanitizer/_&/'
|
||||
|
||||
# clippy-driver fails, but only when run via portage.
|
||||
#
|
||||
# error[E0463]: can't find crate for `std`
|
||||
# error: requires `sized` lang_item
|
||||
-e 's/test_rust_clippy/_&/'
|
||||
)
|
||||
|
||||
sed -i "${disable_unittests[@]}" unittests/*.py || die
|
||||
|
||||
# Broken due to python2 script created by python_wrapper_setup
|
||||
rm -r "test cases/frameworks/1 boost" || die
|
||||
# nvcc breaks on essentially any LDFLAGS
|
||||
# https://bugs.gentoo.org/936757
|
||||
# https://github.com/mesonbuild/meson/issues/11234
|
||||
rm -r "test cases/cuda"/* || die
|
||||
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_check_deps() {
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
|
||||
fi
|
||||
}
|
||||
|
||||
python_configure_all() {
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
# We use the unsafe_yaml loader because strictyaml is not packaged. In
|
||||
# theory they produce the same results, but pyyaml is faster and
|
||||
# without safety checks.
|
||||
edo ./meson.py setup \
|
||||
--prefix "${EPREFIX}/usr" \
|
||||
-Dhtml=false \
|
||||
-Dunsafe_yaml=true \
|
||||
docs/ docs/builddir
|
||||
fi
|
||||
}
|
||||
|
||||
python_compile_all() {
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
eninja -C docs/builddir
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
tc-export PKG_CONFIG
|
||||
if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then
|
||||
ewarn "Found Qt5Core but not Qt5Gui; skipping tests"
|
||||
else
|
||||
distutils-r1_src_test
|
||||
fi
|
||||
}
|
||||
|
||||
python_test() {
|
||||
(
|
||||
# meson has its own tests for LTO support. We don't need to verify that
|
||||
# all tests work when they happen to use it. And in particular, this
|
||||
# breaks rust.
|
||||
filter-lto
|
||||
|
||||
# remove unwanted python_wrapper_setup contents
|
||||
# We actually do want to non-error if python2 is installed and tested.
|
||||
remove="${T}/${EPYTHON}/bin:"
|
||||
PATH=${PATH/${remove}/}
|
||||
|
||||
# test_meson_installed
|
||||
unset PYTHONDONTWRITEBYTECODE
|
||||
|
||||
# https://bugs.gentoo.org/687792
|
||||
unset PKG_CONFIG
|
||||
|
||||
# test_cross_file_system_paths
|
||||
unset XDG_DATA_HOME
|
||||
|
||||
# 'test cases/unit/73 summary' expects 80 columns
|
||||
export COLUMNS=80
|
||||
|
||||
# If JAVA_HOME is not set, meson looks for javac in PATH.
|
||||
# If javac is in /usr/bin, meson assumes /usr/include is a valid
|
||||
# JDK include path. Setting JAVA_HOME works around this broken
|
||||
# autodetection. If no JDK is installed, we should end up with an empty
|
||||
# value in JAVA_HOME, and the tests should get skipped.
|
||||
export JAVA_HOME=$(java-config -O 2>/dev/null)
|
||||
|
||||
${EPYTHON} -u run_tests.py
|
||||
) || die "Testing failed with ${EPYTHON}"
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
distutils-r1_python_install_all
|
||||
|
||||
insinto /usr/share/vim/vimfiles
|
||||
doins -r data/syntax-highlighting/vim/{ftdetect,indent,syntax}
|
||||
|
||||
insinto /usr/share/zsh/site-functions
|
||||
doins data/shell-completions/zsh/_meson
|
||||
|
||||
dobashcomp data/shell-completions/bash/meson
|
||||
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
DESTDIR="${ED}" eninja -C docs/builddir install
|
||||
else
|
||||
newman "${DISTDIR}"/meson-reference-${MY_PV}.3 meson-reference.3
|
||||
fi
|
||||
}
|
||||
@ -15,7 +15,7 @@ if [[ ${PV} == 9999 ]]; then
|
||||
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"
|
||||
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
|
||||
|
||||
@ -37,7 +37,7 @@ PATCHES=(
|
||||
src_prepare() {
|
||||
cmake_src_prepare
|
||||
|
||||
use ppc && eapply "${FILESDIR}/${PN}-atomic-patch"
|
||||
use ppc && eapply "${FILESDIR}/${PN}-atomic.patch"
|
||||
|
||||
# un-hardcode abseil compiler flags
|
||||
sed -i \
|
||||
|
||||
@ -37,7 +37,7 @@ PATCHES=(
|
||||
src_prepare() {
|
||||
cmake_src_prepare
|
||||
|
||||
use ppc && eapply "${FILESDIR}/${PN}-atomic-patch"
|
||||
use ppc && eapply "${FILESDIR}/${PN}-atomic.patch"
|
||||
|
||||
# un-hardcode abseil compiler flags
|
||||
sed -i \
|
||||
|
||||
@ -38,7 +38,7 @@ PATCHES=(
|
||||
src_prepare() {
|
||||
cmake_src_prepare
|
||||
|
||||
use ppc && eapply "${FILESDIR}/${PN}-atomic-patch"
|
||||
use ppc && eapply "${FILESDIR}/${PN}-atomic.patch"
|
||||
|
||||
# un-hardcode abseil compiler flags
|
||||
sed -i \
|
||||
|
||||
@ -24,7 +24,7 @@ else
|
||||
"
|
||||
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
||||
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
|
||||
LICENSE="public-domain"
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
DIST gdb-14.2-sim-modern-c99.patch.xz 5348 BLAKE2B f8039cdf1b49d12eead0dae7db88dbfad4c47eda696ee26b0bd140605d1d62d4a88557518d4e18c86fffb3c6194782d16e459f4392df71d2ec1af271ccb2838d SHA512 f44239871c584f5d6de98db8d6a6766103a8a6fc92dada7d37f04bdc53efe635cca7dfaa778d620348559814f4784a33e5f72a8dd376dc96fba8ec27032ab389
|
||||
DIST gdb-14.2.tar.xz 24111936 BLAKE2B 65765dfd1ed08e19bb881fc7ae98d6ee4914f38a9a2bb0d0ca73bef472669664f807fe9c04e8dffd7025be98e736ac52f88ff5851ceddbb01a361885b18befc8 SHA512 7e07941f1fe661288cc571b4964012ceabc1760624fce20320db2f470c01439b2386f859b5288da13204b758e2e3b22a74c68c012178db93b9529b06f1e22ede
|
||||
DIST gdb-15.1.tar.xz 24295712 BLAKE2B e05133a9f98a1a00cbfb49294f534e3b8830b48ac9526af3312a3b9a0381e0e652bc3f5fdc8528ceb16c890529cefbd7745bed97298a1fecb64c726d09c8aacb SHA512 0217434073023a8b8316088bf3ee95d53a1b6a7897f6269095429016a8900f9a05e130c390d8d5d5550cc515c16519de1071d8eef96aa58e38056c7e37da1d8b
|
||||
DIST gdb-15.2.tar.xz 24332820 BLAKE2B 073668c21b41f12bf40160c6d3df808056453cc9df3b5b86374abe38e955d208f86467458b7e64b3c3e93d70b7f87425619778173fdb375256cd85be15419f14 SHA512 624007deceb5b15ba89c0725883d1a699fa46714ef30887f3d0165e17c5d65d634671740a135aa69e437d916218abb08cfa2a38ed309ff19d48f51da56b2a8ba
|
||||
|
||||
325
sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.1-r100.ebuild
vendored
Normal file
325
sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.1-r100.ebuild
vendored
Normal file
@ -0,0 +1,325 @@
|
||||
# Copyright 1999-2024 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..12} )
|
||||
inherit flag-o-matic guile-single 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 +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} )
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
dev-libs/mpfr:=
|
||||
dev-libs/gmp:=
|
||||
>=sys-libs/ncurses-5.2-r2:=
|
||||
>=sys-libs/readline-7:=
|
||||
sys-libs/zlib
|
||||
elibc_glibc? ( net-libs/libnsl:= )
|
||||
debuginfod? (
|
||||
dev-libs/elfutils[debuginfod(-)]
|
||||
)
|
||||
lzma? ( app-arch/xz-utils )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
guile? ( ${GUILE_DEPS} )
|
||||
xml? ( dev-libs/expat )
|
||||
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() {
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
$(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
|
||||
}
|
||||
325
sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2-r100.ebuild
vendored
Normal file
325
sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2-r100.ebuild
vendored
Normal file
@ -0,0 +1,325 @@
|
||||
# Copyright 1999-2024 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 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 +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} )
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
dev-libs/mpfr:=
|
||||
dev-libs/gmp:=
|
||||
>=sys-libs/ncurses-5.2-r2:=
|
||||
>=sys-libs/readline-7:=
|
||||
sys-libs/zlib
|
||||
elibc_glibc? ( net-libs/libnsl:= )
|
||||
debuginfod? (
|
||||
dev-libs/elfutils[debuginfod(-)]
|
||||
)
|
||||
lzma? ( app-arch/xz-utils )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
guile? ( ${GUILE_DEPS} )
|
||||
xml? ( dev-libs/expat )
|
||||
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() {
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
$(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
|
||||
}
|
||||
314
sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2.ebuild
vendored
Normal file
314
sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2.ebuild
vendored
Normal file
@ -0,0 +1,314 @@
|
||||
# Copyright 1999-2024 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.
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
inherit flag-o-matic 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 +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="python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
dev-libs/mpfr:=
|
||||
dev-libs/gmp:=
|
||||
>=sys-libs/ncurses-5.2-r2:=
|
||||
>=sys-libs/readline-7:=
|
||||
sys-libs/zlib
|
||||
elibc_glibc? ( net-libs/libnsl:= )
|
||||
debuginfod? (
|
||||
dev-libs/elfutils[debuginfod(-)]
|
||||
)
|
||||
lzma? ( app-arch/xz-utils )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
guile? ( >=dev-scheme/guile-2.0 )
|
||||
xml? ( dev-libs/expat )
|
||||
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)
|
||||
)
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
use python && python-single-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
$(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*
|
||||
|
||||
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
|
||||
}
|
||||
@ -6,8 +6,9 @@ EAPI=8
|
||||
# See https://sourceware.org/gdb/wiki/DistroAdvice for general packaging
|
||||
# tips & notes.
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
inherit flag-o-matic python-single-r1 strip-linguas toolchain-funcs
|
||||
GUILE_COMPAT=( 2-2 3-0 )
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
inherit flag-o-matic guile-single python-single-r1 strip-linguas toolchain-funcs
|
||||
|
||||
export CTARGET=${CTARGET:-${CHOST}}
|
||||
|
||||
@ -76,7 +77,10 @@ IUSE="cet debuginfod guile lzma multitarget nls +python +server sim source-highl
|
||||
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="python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
REQUIRED_USE="
|
||||
guile? ( ${GUILE_REQUIRED_USE} )
|
||||
python? ( ${PYTHON_REQUIRED_USE} )
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
@ -91,7 +95,7 @@ RDEPEND="
|
||||
)
|
||||
lzma? ( app-arch/xz-utils )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
guile? ( >=dev-scheme/guile-2.0 )
|
||||
guile? ( ${GUILE_DEPS} )
|
||||
xml? ( dev-libs/expat )
|
||||
source-highlight? (
|
||||
dev-util/source-highlight
|
||||
@ -115,17 +119,22 @@ 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() {
|
||||
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
|
||||
@ -303,6 +312,8 @@ src_install() {
|
||||
# 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
|
||||
|
||||
@ -1,5 +1,12 @@
|
||||
DIST strace-6.10.tar.xz 2600864 BLAKE2B acb26ed66fbfcb1bc6403441b632df2f7af018345e52120b8715e2bbfa578fc80af8e3844cba3e131601285f9e72b15c8b4ea56025c5efae846d2d36960f6c04 SHA512 0d7dafaa50fbcfebc37f37e53c2961972efd66ce0d71628fbcd2a8b871cb7e90bb3aebca14258a5a3115ae1e00cbe242b6d2f887d45f44e7321985720968f972
|
||||
DIST strace-6.10.tar.xz.asc 801 BLAKE2B 81b0bc033c5c8a34835b9fec8ab043879a1a2ba3a557fb3309b53254a92ab5abffac32b4d97b45aedbc045a882b69d7f26b186c6e9413599583976080f788e17 SHA512 058672503e8ae2444271e5c220a3bd29450c1badb06ec1a6e06e0f1f4d609af3730bc2a71e7f9cefeeed936e89d4d37e439f41da353388b885d49a204887fb91
|
||||
DIST strace-6.11.tar.xz 2610440 BLAKE2B 5ea511cd0d2f287ec4c979af7306b29ca39975a4a08f6a1123ae562db5331f7ebb1f23ff2a24ce01fd96c000d094c4d810f2b4bca3ce8adac26fbee57da7f92c SHA512 c639ae7097d418f8b815bd008de9423079dad70829a5eb392d3c5def81243b8a9133c10251a7c00a4991f580cff5b62466f8b53b4b8e425a009548fb3582bdb0
|
||||
DIST strace-6.11.tar.xz.asc 801 BLAKE2B bc60367dafb08551510bf64c384315aadc3027ed256fbfa5a6e23139800ad01f12b7ebdc09e7845b202260ec38b4a5de70e5701abd9dddc0c5f3c4c32bd6c97b SHA512 bdb86f8fa9b168240b892814037660456ee7beed547e6f5bbcb61431e6fd8d6544b8b169cc794e084c3c11f2f62aff36de410294c609c0a9ea8781fa1ddf57aa
|
||||
DIST strace-6.6.tar.xz 2420364 BLAKE2B f1465fec58ac20ccce6a88441a34b1402e5c51f0bb4b7963f69b5ab5019a8c8722e3406c6f93c10c1eea11d17de7f9874895d6f4df24cf9ec42a18f36267687b SHA512 77ea45c72e513f6c07026cd9b2cc1a84696a5a35cdd3b06dd4a360fb9f9196958e3f6133b4a9c91e091c24066ba29e0330b6459d18a9c390caae2dba97ab399b
|
||||
DIST strace-6.6.tar.xz.asc 801 BLAKE2B 1bd72fc586f4338da1ae31181d28103ff3168322c07508699261b5ec4627ed3bdf7e20b4557182a258f22e83537712f20413aa9c5c4b335c75f3772e71888478 SHA512 b9eb6fc5c2f3bd8fced37fb81435087df95d9f23f0697afab8a3e359709c95238e50aafe2a3ba8cd698aeae75a4f8e28b6dce49a26878a961c2c06790458d228
|
||||
DIST strace-6.7.tar.xz 2434880 BLAKE2B 249c149a9140fc79be1365e4e8697b46f6558334eefac11b51c96d2d2e67bb82cb2eac3c38c2fa31f40fc5e0ad3c52967e15a034c01c12ed041d51f006a194ae SHA512 da28fd9fb987044782e6fd6f5e90e2cea2ab8e536cbd3893ef4c9b11c9b3185f073ca3d8ca0eade49e9a2af8efbda8c2b66b8988be7ebc463dc45e8f48ca1256
|
||||
DIST strace-6.7.tar.xz.asc 801 BLAKE2B 3a87561c04e82bbb745e59343cf79c25abf2c6cbd7a82f8d116a3cf6fd00797636037b620529979bce6e814fcf84aa42d94d0678afa86aedaf829d48118339df SHA512 9ea90089ec0af3f2471c4e03fe95f09e16260c04f5083dde17ea28a94b62578a90319ccd4987ed50459318c4ef3174dfe42ea158cf45d11c8e21e7133113a1ae
|
||||
DIST strace-6.8.tar.xz 2457948 BLAKE2B 0897aedc6a1ed162b8967a56d54dd0bc589ce027321c1219e5fc23e6a44103576e0f363f79a03def365a05989173271eb6096a9c48b16cdf8c54033ec6bd6f2a SHA512 c477724a77112a74a5236a38b7dbaa9b6199622a1d21cc6253cac80dc4ddea78aeaf8cddf4a51ee4119e00e1adaf95f64f64e20d9775ec3edd77cd82c8f7b30e
|
||||
DIST strace-6.8.tar.xz.asc 801 BLAKE2B 544f9a59824f5bd2e682b4df0106c85c90be8eba8fe99fa5a5b6ccc69bd9ced176f4ce3a02253e16a51290dae452426da3827e653d4c38f44eaf06427007e5a5 SHA512 4bcbf6b01440cd94ae2e05cc13220a141a0cc7c3a974d92947e09217fa4c77d7f7c272aaf32107c8974e140da25fd78e45f9f48731406b4dfd4d5a955e663daa
|
||||
DIST strace-6.9.tar.xz 2466252 BLAKE2B 2da51f253ea18f27b5fabafaebdc54805aeca5b750bec6169c269dbcadb98cf76a47bf92dd619458ca86d46ec7a03710e16e0ac4973d89a86edc2d0b853714c8 SHA512 aa80b9b6ec41082f1710f2327f7a22003cdce6d95ab0e5083ada9c5b7b40b8f7cbc7dc6c017878dc0e42c52e405e98ed1488c51d17bc3538989ff4be2c2411e1
|
||||
DIST strace-6.9.tar.xz.asc 801 BLAKE2B ccb3d026a272bc02d351fd15f8b18a50a8653cda247ea9baa938820fb3c870e1803562d7e17eac3d4f1842911a4e904bc88ba267cb74aeac869185e30cd89d48 SHA512 577a3f5d0bdd51b995755a76b58e6bdf6a0a173966bb1d95ebba0a59df8a8e828eb5eca4cda55c9faf7e31053652911541134107199c073ec24fa877cec393bd
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit autotools edo flag-o-matic toolchain-funcs
|
||||
inherit autotools edo flag-o-matic toolchain-funcs verify-sig
|
||||
|
||||
DESCRIPTION="Useful diagnostic, instructional, and debugging tool"
|
||||
HOMEPAGE="https://strace.io/"
|
||||
@ -12,17 +12,25 @@ if [[ ${PV} == 9999 ]] ; then
|
||||
EGIT_REPO_URI="https://github.com/strace/strace.git"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz"
|
||||
SRC_URI="
|
||||
https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz
|
||||
verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz.asc )
|
||||
"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
|
||||
fi
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc
|
||||
|
||||
LICENSE="LGPL-2.1+ test? ( GPL-2+ )"
|
||||
SLOT="0"
|
||||
IUSE="aio perl selinux static test unwind elfutils"
|
||||
RESTRICT="!test? ( test )"
|
||||
REQUIRED_USE="?? ( unwind elfutils )"
|
||||
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( >=sec-keys/openpgp-keys-strace-20151021 )
|
||||
"
|
||||
LIB_DEPEND="
|
||||
unwind? ( sys-libs/libunwind[static-libs(+)] )
|
||||
elfutils? ( dev-libs/elfutils[static-libs(+)] )
|
||||
|
||||
117
sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.11.ebuild
vendored
Normal file
117
sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.11.ebuild
vendored
Normal file
@ -0,0 +1,117 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit autotools edo flag-o-matic toolchain-funcs verify-sig
|
||||
|
||||
DESCRIPTION="Useful diagnostic, instructional, and debugging tool"
|
||||
HOMEPAGE="https://strace.io/"
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
EGIT_REPO_URI="https://github.com/strace/strace.git"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="
|
||||
https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz
|
||||
verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz.asc )
|
||||
"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
|
||||
fi
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc
|
||||
|
||||
LICENSE="LGPL-2.1+ test? ( GPL-2+ )"
|
||||
SLOT="0"
|
||||
IUSE="aio perl selinux static test unwind elfutils"
|
||||
RESTRICT="!test? ( test )"
|
||||
REQUIRED_USE="?? ( unwind elfutils )"
|
||||
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( >=sec-keys/openpgp-keys-strace-20151021 )
|
||||
"
|
||||
LIB_DEPEND="
|
||||
unwind? ( sys-libs/libunwind[static-libs(+)] )
|
||||
elfutils? ( dev-libs/elfutils[static-libs(+)] )
|
||||
selinux? ( sys-libs/libselinux[static-libs(+)] )
|
||||
"
|
||||
# strace only uses the header from libaio to decode structs
|
||||
DEPEND="
|
||||
static? ( ${LIB_DEPEND} )
|
||||
aio? ( >=dev-libs/libaio-0.3.106 )
|
||||
sys-kernel/linux-headers
|
||||
"
|
||||
RDEPEND="
|
||||
!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
|
||||
perl? ( dev-lang/perl )
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-6.5-static.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
if [[ ! -e configure ]] ; then
|
||||
# git generation
|
||||
sed /autoreconf/d -i bootstrap || die
|
||||
edo ./bootstrap
|
||||
[[ ! -e CREDITS ]] && cp CREDITS{.in,}
|
||||
fi
|
||||
|
||||
eautoreconf
|
||||
|
||||
# Stub out the -k test since it's known to be flaky. bug #545812
|
||||
sed -i '1iexit 77' tests*/strace-k.test || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Set up the default build settings, and then use the names strace expects.
|
||||
tc-export_build_env BUILD_{CC,CPP}
|
||||
local v bv
|
||||
for v in CC CPP {C,CPP,LD}FLAGS ; do
|
||||
bv="BUILD_${v}"
|
||||
export "${v}_FOR_BUILD=${!bv}"
|
||||
done
|
||||
|
||||
filter-lfs-flags # configure handles this sanely
|
||||
|
||||
export ac_cv_header_libaio_h=$(usex aio)
|
||||
use elibc_musl && export ac_cv_header_stdc=no
|
||||
|
||||
local myeconfargs=(
|
||||
--disable-gcc-Werror
|
||||
|
||||
# Don't require mpers support on non-multilib systems. #649560
|
||||
--enable-mpers=check
|
||||
|
||||
$(use_enable static)
|
||||
$(use_with unwind libunwind)
|
||||
$(use_with elfutils libdw)
|
||||
$(use_with selinux libselinux)
|
||||
)
|
||||
econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_test() {
|
||||
if has usersandbox ${FEATURES} ; then
|
||||
# bug #643044
|
||||
ewarn "Test suite is known to fail with FEATURES=usersandbox -- skipping ..."
|
||||
return 0
|
||||
fi
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
if use perl ; then
|
||||
exeinto /usr/bin
|
||||
doexe src/strace-graph
|
||||
fi
|
||||
|
||||
dodoc CREDITS
|
||||
}
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit autotools edo flag-o-matic toolchain-funcs
|
||||
inherit autotools edo flag-o-matic toolchain-funcs verify-sig
|
||||
|
||||
DESCRIPTION="Useful diagnostic, instructional, and debugging tool"
|
||||
HOMEPAGE="https://strace.io/"
|
||||
@ -12,17 +12,25 @@ if [[ ${PV} == 9999 ]] ; then
|
||||
EGIT_REPO_URI="https://github.com/strace/strace.git"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz"
|
||||
SRC_URI="
|
||||
https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz
|
||||
verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz.asc )
|
||||
"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
|
||||
fi
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc
|
||||
|
||||
LICENSE="LGPL-2.1+ test? ( GPL-2+ )"
|
||||
SLOT="0"
|
||||
IUSE="aio perl selinux static test unwind elfutils"
|
||||
RESTRICT="!test? ( test )"
|
||||
REQUIRED_USE="?? ( unwind elfutils )"
|
||||
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( >=sec-keys/openpgp-keys-strace-20151021 )
|
||||
"
|
||||
LIB_DEPEND="
|
||||
unwind? ( sys-libs/libunwind[static-libs(+)] )
|
||||
elfutils? ( dev-libs/elfutils[static-libs(+)] )
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit autotools edo flag-o-matic toolchain-funcs
|
||||
inherit autotools edo flag-o-matic toolchain-funcs verify-sig
|
||||
|
||||
DESCRIPTION="Useful diagnostic, instructional, and debugging tool"
|
||||
HOMEPAGE="https://strace.io/"
|
||||
@ -12,17 +12,25 @@ if [[ ${PV} == 9999 ]] ; then
|
||||
EGIT_REPO_URI="https://github.com/strace/strace.git"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz"
|
||||
SRC_URI="
|
||||
https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz
|
||||
verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz.asc )
|
||||
"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
|
||||
fi
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc
|
||||
|
||||
LICENSE="LGPL-2.1+ test? ( GPL-2+ )"
|
||||
SLOT="0"
|
||||
IUSE="aio perl selinux static test unwind elfutils"
|
||||
RESTRICT="!test? ( test )"
|
||||
REQUIRED_USE="?? ( unwind elfutils )"
|
||||
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( >=sec-keys/openpgp-keys-strace-20151021 )
|
||||
"
|
||||
LIB_DEPEND="
|
||||
unwind? ( sys-libs/libunwind[static-libs(+)] )
|
||||
elfutils? ( dev-libs/elfutils[static-libs(+)] )
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit autotools edo flag-o-matic toolchain-funcs
|
||||
inherit autotools edo flag-o-matic toolchain-funcs verify-sig
|
||||
|
||||
DESCRIPTION="Useful diagnostic, instructional, and debugging tool"
|
||||
HOMEPAGE="https://strace.io/"
|
||||
@ -12,17 +12,25 @@ if [[ ${PV} == 9999 ]] ; then
|
||||
EGIT_REPO_URI="https://github.com/strace/strace.git"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz"
|
||||
SRC_URI="
|
||||
https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz
|
||||
verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz.asc )
|
||||
"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
|
||||
fi
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc
|
||||
|
||||
LICENSE="LGPL-2.1+ test? ( GPL-2+ )"
|
||||
SLOT="0"
|
||||
IUSE="aio perl selinux static test unwind elfutils"
|
||||
RESTRICT="!test? ( test )"
|
||||
REQUIRED_USE="?? ( unwind elfutils )"
|
||||
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( >=sec-keys/openpgp-keys-strace-20151021 )
|
||||
"
|
||||
LIB_DEPEND="
|
||||
unwind? ( sys-libs/libunwind[static-libs(+)] )
|
||||
elfutils? ( dev-libs/elfutils[static-libs(+)] )
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit autotools edo flag-o-matic toolchain-funcs
|
||||
inherit autotools edo flag-o-matic toolchain-funcs verify-sig
|
||||
|
||||
DESCRIPTION="Useful diagnostic, instructional, and debugging tool"
|
||||
HOMEPAGE="https://strace.io/"
|
||||
@ -12,17 +12,25 @@ if [[ ${PV} == 9999 ]] ; then
|
||||
EGIT_REPO_URI="https://github.com/strace/strace.git"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz"
|
||||
SRC_URI="
|
||||
https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz
|
||||
verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz.asc )
|
||||
"
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
|
||||
fi
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc
|
||||
|
||||
LICENSE="LGPL-2.1+ test? ( GPL-2+ )"
|
||||
SLOT="0"
|
||||
IUSE="aio perl selinux static test unwind elfutils"
|
||||
RESTRICT="!test? ( test )"
|
||||
REQUIRED_USE="?? ( unwind elfutils )"
|
||||
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( >=sec-keys/openpgp-keys-strace-20151021 )
|
||||
"
|
||||
LIB_DEPEND="
|
||||
unwind? ( sys-libs/libunwind[static-libs(+)] )
|
||||
elfutils? ( dev-libs/elfutils[static-libs(+)] )
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit autotools edo flag-o-matic toolchain-funcs
|
||||
inherit autotools edo flag-o-matic toolchain-funcs verify-sig
|
||||
|
||||
DESCRIPTION="Useful diagnostic, instructional, and debugging tool"
|
||||
HOMEPAGE="https://strace.io/"
|
||||
@ -12,17 +12,25 @@ if [[ ${PV} == 9999 ]] ; then
|
||||
EGIT_REPO_URI="https://github.com/strace/strace.git"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz"
|
||||
SRC_URI="
|
||||
https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz
|
||||
verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz.asc )
|
||||
"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
|
||||
fi
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc
|
||||
|
||||
LICENSE="LGPL-2.1+ test? ( GPL-2+ )"
|
||||
SLOT="0"
|
||||
IUSE="aio perl selinux static test unwind elfutils"
|
||||
RESTRICT="!test? ( test )"
|
||||
REQUIRED_USE="?? ( unwind elfutils )"
|
||||
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( >=sec-keys/openpgp-keys-strace-20151021 )
|
||||
"
|
||||
LIB_DEPEND="
|
||||
unwind? ( sys-libs/libunwind[static-libs(+)] )
|
||||
elfutils? ( dev-libs/elfutils[static-libs(+)] )
|
||||
|
||||
@ -55,7 +55,7 @@ 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"
|
||||
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"
|
||||
|
||||
@ -1,55 +1,25 @@
|
||||
DIST Python-2.7.18.tar.xz 12854736 BLAKE2B 060a621c91dd8e3d321aec99d44c17aa67381998256a1a002d316b38288349884d5960de35c49352d03129ed0bae599e641ec2225898158ebce50a7a2fd74d2c SHA512 a7bb62b51f48ff0b6df0b18f5b0312a523e3110f49c3237936bfe56ed0e26838c0274ff5401bda6fc21bf24337477ccac49e8026c5d651e4b4cafb5eb5086f6c
|
||||
DIST Python-2.7.18.tar.xz.asc 833 BLAKE2B 1d98770e46171971fb99994508d238c01d2755281d2f94353314014d9e83e0ec5f0b3e3950ea1fdf5fce9ba6b8f55312355845c2a3fc4291c27ee56fe6215448 SHA512 c2a5f5a52f47dec52460ad3275758d4e5de6e7075c3def4353c988d74d563a39b42cae2d5eb24e2a23a6247cef69100f91620b11a49c2359fbf99b203c9cbda8
|
||||
DIST Python-3.10.14.tar.xz 19600188 BLAKE2B a9e65fff590d56848f55f2d93d8a1c631bb8135617112997fbaea9fc45db1d5e2ce39f00cb29c9428542e523fdf48064bdb9aea144acb7aa7cfe71990b8e949e SHA512 adee638aeca898743da4b8245c0fa1e9b94b516f22e716e60c99038f0bb3dcbf726317aa86656404be1719b5a7c58eb09533720ebc0badbb04bd9a534dd48fef
|
||||
DIST Python-3.10.14.tar.xz.asc 833 BLAKE2B 945ada655532d578beba9fdd882cc9cc247e24f7efd68ce172766a8adcb3c8d76bc1f229402405e607004ae0f9bb8e55e4b01867ca712700106d8ec42212cb2c SHA512 450f910a91dd0fb66f99245828983a9234c4a67ea7e653404efa06ce5da1c6667a46329a2d1e276c5a956d2c32d8ae6d8c497a1892102f4a360dae33b135c372
|
||||
DIST Python-3.10.15.tar.xz 19596540 BLAKE2B fe62f7c7377136576e73a59b5f0b3c9729f9c958da5c8dd1771e88121fdd1928686166066351fc8ae98c9f97295a85feb7ec44c39317f93ae414244aed8a8f66 SHA512 3c0396b2dae1521315a9b5ce9ad4ab6ede385447922fceb00ea3df75bfd79cb547b9380e936d83c9c1b964e38e16d70e34aec39f4c292853a032407bb6a58063
|
||||
DIST Python-3.10.15.tar.xz.asc 833 BLAKE2B 31858fe2d3c8d868417eea66de1cf0b2fc7880e73ea7770b50191b8088bbd1c78485c64d94f6f005d18cef559d7e8e0906cb2a30aa1472d90f5af4cca045970b SHA512 0cac9b78649330a2a35a835d45e4a8a111db45943cc0ae0d24f5d9e03a058b4b739fe43d6cd1aee481dcd415a57820bf875996fa60b81d4d5911588db5adad70
|
||||
DIST Python-3.11.10.tar.xz 20067656 BLAKE2B aba211a09e4c083d71574c7537ba98474476ebf7092ddda815f8d355d01605456868a89f0bcc6a9e747f71f914fa0129547de2ae70d8b579c6458fdeeafd23f0 SHA512 6ce77cced1ce90bb5eea38504dfc1bc19c872149a5a63fdd8353ac8c772c54ab7a42176e141c7f6f898d31761bf93e1739b238920fbeefbedd6016ad033c1de0
|
||||
DIST Python-3.11.10.tar.xz.asc 833 BLAKE2B a1cbe57e568367fbc5817c983696619f515263a9b37662ca536c4d1132ad336959285bbe3076a251778016966f030d1e259f48accdb0df67c116af0e335acb8f SHA512 3a9efe1dd39fd6883ae3fc8dd7f6e25af7e06c6e6049cf9a31a1a82e6d7c84f85ac838d2a71127977d93ce77233a8bbff86a10a80d24fcee85a4e70fcbd1db19
|
||||
DIST Python-3.11.9.tar.xz 20175816 BLAKE2B 4e7cd2c42ee39b5ef9624ebd1798320957e948cb4f23f17fd1530814c60126dbf988846928d4d7d4b9d2174029ab8d4dbaf19e6203da237da4c3212ddebd5803 SHA512 2b0a1d936b4ef8376f9655797aece8ffdff75031ad7bfa840f330cac2aed189aecc80c163edc12ea772851d7a011f3fc1960470a73d9d4290cf3ab8ad6ed7e6a
|
||||
DIST Python-3.11.9.tar.xz.asc 833 BLAKE2B fa29f632bae0bee7db946038ee3529bc3bfbe1b2e755b21394f67a3c80911ce8079aaab43a16d88e614a8bfc01fb5105ce3f61c59a5ca44470b0f59787c707b3 SHA512 b18b50e7168b2ca5376a1fa75e50e8baae2026d4f11d4cf613d758f3f17df4610fe4653fb2ac0c5c4ec0f6e630dc6490ad1ff32a2fd0ebd60f9f3bd136207ffc
|
||||
DIST Python-3.12.3.tar.xz 20625068 BLAKE2B fc4f57ae50183db4c8cb37d94c37a7e58da5d031e03866841a678b986f01bbb8afdefb38124ba82b0a4988445b647214be43338dea13b0f063d3c2bf81c48c0b SHA512 4a2213b108e7f1f1525baa8348e68b2a2336d925e60d0a59f0225fc470768a2c8031edafc0b8243f94dbae18afda335ee5adf2785328c2218fd64cbb439f13a4
|
||||
DIST Python-3.12.3.tar.xz.asc 963 BLAKE2B f9668dde210793f8da0e0bb026b8ec3e0b4bc3abc58e72732f8faf356b19ca88a59b9d89b4b10f77b3602d9a967f0f2f44a0f091d698bc28ba9bad8049e5e006 SHA512 c291ec5b5e4f8deba867cc517624dd9a174745f04061ef737e58f3d52b9b30318264aec350e339fe88ccb493809ca1a90a378e86d86b8ec4a4f578b1a5843624
|
||||
DIST Python-3.12.4.tar.xz 20659356 BLAKE2B 4255171ef8ee1777bab829be7bbaf28a9d5073985b3b1309a41694dda5f6b4ad599df4534a1ce83ec65b357d42416cc18722ca94b4227a45ebd90e2c1df90945 SHA512 750132ee6369196096130a924f4ddb78b9a55804133e5d136a70b9280928822974d1aa559d844486df02e89155fb0d8117871e1ac532abc18174309ca4b08369
|
||||
DIST Python-3.12.4.tar.xz.asc 963 BLAKE2B d4f62dca1de5f4e4b2581fc49ca55b1d87abe7c4ceb2c9087efe4b92d9e9b3bdd25949bbf82fd771b4b60bc3690be982c2f25b810d87592665f0728fbe08be9d SHA512 1102b17f395e0ec5de5368d04a4dceb8cc98dd408b68b53998071cf129eb9a6c259316a416128f1dfa37a739f86e599507502a98430348da2272442ce1b7059e
|
||||
DIST Python-3.12.5.tar.xz 20422396 BLAKE2B f127d1e12d12be84d5837282757787be8a0cf702adce29b93622f91f45ba2d8cc0f5db2e8277c86b098623951b302015febd28bdabaff66b30cb06a5ef2b4a24 SHA512 7a1c30d798434fe24697bc253f6010d75145e7650f66803328425c8525331b9fa6b63d12a652687582db205f8d4c8279c8f73c338168592481517b063351c921
|
||||
DIST Python-3.12.5.tar.xz.asc 963 BLAKE2B 238167f6b4012136bc4274eee0dd4d958c4ee02d2505f9f64e5bcad15e84a9e9e12a9fc907651083543f1fce93579b752d4ccdf60c8cc421cb43e9034877bf1c SHA512 65ce92272a38cc6bf8bf56fa2a99a830cf5b33b811b1788508e7b6f8b5d3e93e0b143412f829271be40cbb4e7c154f84499239b3e8ab63b2ccf0a5a22d2f84ee
|
||||
DIST Python-3.12.6.tar.xz 20434028 BLAKE2B 527fafdbfd0c1784ff72a93cdeb3f49666bae7d9343b6d1e4ef773fc52bd397081b41bec3ee9ed5b7652f28f09f29a1b553424cef26aebfa6c2e13499870bf2b SHA512 e658b0d59b5cfdc591d626e8282b9945759f27ee6fbc8bcb8670737db32ffc11fb832dfed9b0e80188fb5f7f3f39fe6dd6191ab7736376453c9e248321e9b063
|
||||
DIST Python-3.12.6.tar.xz.asc 963 BLAKE2B d5f9e4c5053610a1a53769278e69d8a25e2fb047afb2a55dfee67917d8d200ebc159e614327ac87f34a4a9718cb3436b55190322ee231116b26074a78bb72642 SHA512 91a15bb7e8dd26616a2cdabe69c3ee81668cc67cb55a88b2be20433d24c9f8ae41c8f93f67aff2fa5858cd5b94600409cd472bd437a2fd33153483734ecd863f
|
||||
DIST Python-3.13.0rc1.tar.xz 20881016 BLAKE2B 3971a233e9c3c782973e0276740f00f8f2072eeda914663cdf7fa6c5de2437c60c441184344a64e25cab5c71a02c47cf4602dd08f127f310c885386cd887fec4 SHA512 fce7664f3298cfd191a7dc20b7b47acafdc50d058a2814312c94c30b65291395957d701e4661b9bb760417942acb5d27e5b8bb479bcda9a82cf29f53772a2daf
|
||||
DIST Python-3.13.0rc1.tar.xz.asc 963 BLAKE2B 1c292362cd133dbbb1df1e0cf440e8adde2bc8db9174e550d5b76a09e80d0dbc11a0250e6f041e54fe58f25dc05f071c7af1aa910ae56ece5eb430502a2ba67c SHA512 3613829d9631f46b1b1ce11bfe5bb7fbfa49d97b639bb883c86737ea6ae8d15c24c526083cafb916011bd6d0b3b5fab2b17afd367edbdce99b32e0b4b845fd22
|
||||
DIST Python-3.13.0rc2.tar.xz 21055084 BLAKE2B 017ac82c1938d1fea0a501efb9d1848115648f0472b7cbaa4eac65cf085c3c6410ea83aab2e935952ca1b415d603f4c5680fec7a15ce5b40794b2fdcef662666 SHA512 85e6e6e80970ca38119e4f95880fb12e2d1548e6d60235cfcd7f6aaf08588c483469e43dda0f004b95455c2fb88ca736c313b22ae37eb0d4e6460ef521855c8d
|
||||
DIST Python-3.13.0rc2.tar.xz.asc 963 BLAKE2B bb75db12c424b7a05c8c0082f79c1ab6e2ad04440a27d2c964edc073fbdc1c0ac442b0b2a0719a33f8058bc7bc9097eb22e031299f8de5b6d88b74e4e5ece8a8 SHA512 6d80d089b55910628744d21b0382b6441d0550c139dbee71d68a7cd9e494bff1c8235a2a894f3c7a52f9af312480a4001f333e04c9054f32db7eefd2a7d39263
|
||||
DIST Python-3.8.19.tar.xz 18975156 BLAKE2B 57b241aeb8f99a8c30590dcb9402abbcf573f00d06e807846bc9135c0a8a4af896c4d772d34abc3c292339953f4974a203bff61a78641d91b1826770226cd7e9 SHA512 1d2a57fa15ccdaec8cdca508ba2ffb01e1ae053a3446ac709bc334480f8e913070899f01ed680cce6dc7ddfddcb27ef402fe206562249fa4c4e87be21ece0625
|
||||
DIST Python-3.8.19.tar.xz.asc 833 BLAKE2B a11705011e9ea2bd6cbabc2b4c896ba94675341188eb483b881c2cb25c932e9ff25f9f589f930605b0442ff93a1f54532608b111c8ace715a406ce10809af671 SHA512 efdaae5462badcf4b98625ce8ab0e34756acea9539416e6ec428725b04539f8c38c1978de346510d669e93bbeef3ae20b1534e4c6582f89c7dc56a04c7cae140
|
||||
DIST Python-3.12.7.tar.xz 20444032 BLAKE2B eed8744261cab3b401963ec5187a8b814adb9a18f8d0a6a3d59c027a83cf8408524af9b20204b0a0861d173cc33c45ae37bb1542a1ace3344dc59c649087ff1f SHA512 4a363d3f852ad8f4fd1484aa4cec35494a3811be48ef67fadb2bdf2e2489ed07dc78fad6ab475257db503ddd64d39f9800f23a1c94b6bbd15b7f632cff0c90ae
|
||||
DIST Python-3.12.7.tar.xz.asc 963 BLAKE2B 8c7db3d1971d93a10c611a2e6dd3679d0b331b48df87b5fe410b089061e48753d98af67084d4f051a31ae803fce3aa3c7af7cba9c692640f50068bd1e46f40e6 SHA512 4d0a7a0da2c81888e93d8ff89ca2ed4bb85a7b0bd00f0d54a14e2c201affac2677ef3984d2b5aea253e624f6465548d9032eefdd9033c1eb3864d82cfd8d3df0
|
||||
DIST Python-3.13.0rc3.tar.xz 22527884 BLAKE2B 9c6423e9871b30af70ece10598e798da443b40b3e40cae86ec59d396184df005627a5edeedf34d31c7953f972850e41d1cc708edd8e39c1327d319b0f6973049 SHA512 152e5b6d64048c1779612e66d5999c424ca7c61c8a0f4973f7b3019629d6a7923b422aec0bee30e7bc2d589a807d87e15a19b8fb4446bcf082eb663885a49b36
|
||||
DIST Python-3.13.0rc3.tar.xz.asc 963 BLAKE2B e03d902eee320939cb77094e1b64e0101d0172ebdcc502255da1c0fc84476f43fafe900321c78cd78248a751b3a3921572ba4f305ed77ed78f175184b21f667f SHA512 c8f80b12f5e3021a11fc3ef5ce84572db9de7165ce89a03206cb0727b54f90ca2e444a16df064e6423e15b7bf2364db088b0c9315967dd340e735eabf7b892ce
|
||||
DIST Python-3.8.20.tar.xz 18962788 BLAKE2B 715c75e0c0a3d3b77af7f07478311bb0554b80aac72915be703aa2d0dd6459a972e5669808e64da14a0b91bb183e00655055c1726f302dc3ccd8721e3b4ae3e6 SHA512 3c9341ee1fd33cb687958dcf2b7c0c7700489726c4d530c3e9d9537d46a6ab534541a4b312232d8505bea395a07e4518c42d75fb7571103e6b266f8f44115c61
|
||||
DIST Python-3.8.20.tar.xz.asc 833 BLAKE2B 5c86c15a1090b42e42bb7512565b1a7ad9d2137d59e9fd1ab0f83fdfc37dfcf184389418d6703db809e9c8c04a169af292665a2b58bf5dc61b7724ecbb4132d9 SHA512 a751ae0407a593d97acac4d5f8a0456580c753efa12a7d960125c219b4897fdb26fc1ffd43d8ea33ad1449162dd3b2904c16b6c51c57561ba73de3ffa62e0eed
|
||||
DIST Python-3.9.19.tar.xz 19682840 BLAKE2B a12256663f0ff3b799c2193c5877aa89a434340dfa01e655f790abea70af0709b54577e1c2590add241308a8581fd6f45a22aed450bd5db2bf9fa35c4a9d619b SHA512 5577830c734e63a70bbc62cd33d263b9aa87c4381b49cb694c3559067c4c682a55506b65ec5514a8e0a5abf6294dc728e909385d449ae1c388e62f83cea9bb89
|
||||
DIST Python-3.9.19.tar.xz.asc 833 BLAKE2B b48b58b8ccf4d6ba8d0d7120f04bebf59f843ffecf5fde4c3989fd9c26e3d3d1ccf4e5688f7024ae94775c8731e9ffa56799fca8596289edf93e4aac5480aaad SHA512 f7f4946243dfc56de2c84f50276b088d347f17054f50e3331d1e312e2a8e2c6ed1b4b4a807202b51137fd2af3fc9218cafa42ed348a954ace896d9a432e2defd
|
||||
DIST Python-3.9.20.tar.xz 19648968 BLAKE2B 80a337ff406130599b8320068d11bc275d23473cedd7c85fcb9e40134f0f2d533be6e712139e788a6423cdc74cea938f306aa37c2a5099e3051f3e390159279c SHA512 c828f33edf1704e3149499d6d34e89264cb5cdb2b09ff05561641b359716d7996f0fe928629e09f006b1fd7850fdaf937275919c7fdd83f5efc32707c64d814b
|
||||
DIST Python-3.9.20.tar.xz.asc 833 BLAKE2B bcd5a612281bf8e057e19db9105b199cb7e44050441b19832843e8149088d277f4b625421099b09d4ed6fac5578505f46dbfea13b041d157d695eaf668c3a7de SHA512 f21c012f4f642542479ba329da9654589e5a7f7305c39fb1b6f136b578316bdb115cef9773c9a9fe4e195677af01cb80af05780613cca83f42fae131862a9584
|
||||
DIST python-gentoo-patches-2.7.18_p16.tar.xz 35448 BLAKE2B 0139c0944f62f9cdd236f6a8557e0ed19704c7d72869af1cb7d8bd3e646a746cd4a0201e1b44232a5e78ef49f254db20b0d0271bf744fbfd4fe0f1e99b8f3e6c SHA512 810be590d0e06fab4b2165e6852ca49662f09dcd7e20b47a29f613ad7653252c8dfac3f0eb228d77c8a914efa7c08788b2fbd552a4b47504f5fd0ec17450c48f
|
||||
DIST python-gentoo-patches-3.10.14_p1.tar.xz 15836 BLAKE2B a850e4ad4f025fa9d38ccba937f1b3ee8443ed186c22ede58b4c7324a8541cf724590686671a9aa9194662303ce75bc80aac8ee6f9da34b793876817b6f593ff SHA512 5d969f5e5126ee675a062924a5f403de142fc5bfe4a931fd3576bcc6298a855419d305d4b1ffedacb429783a05324b36eef4c45c861c47bada0bdd840de2bca3
|
||||
DIST python-gentoo-patches-3.10.14_p2.tar.xz 19564 BLAKE2B 2ad1398e0679e73028a0614e8c4ef6bc76928f6c1d0e93c39c3bf2c23201904ee677377abb120444995154bda4251cb8f0aabafca5e6c82601a6270d0e62bf67 SHA512 6d4194b85a176a1a0f7acc3eab48829d504e66381f3008821a9a433e63f5188b444321192ad536d8219a1c3ca56dbdb5c39439401cbbb30f35a606e2b6617624
|
||||
DIST python-gentoo-patches-3.10.14_p3.tar.xz 22080 BLAKE2B f45ebe4df3dc39a842c93d741ef66fd0f9f7d1c6453d499d59b62eda41f01bc17e109205fedc506963d1f21eb3fbf9478564ff5e1a11c10336f855069a642ceb SHA512 db268f1482e5c46a71ce3aef2c2ab6d458cc5263aec360e61c6aff97f119f4f100becefbb575156b1b0239e591a496cb62a136597fadae8a5b630c7233c0040a
|
||||
DIST python-gentoo-patches-3.10.15.tar.xz 15896 BLAKE2B f908b409dbcedeb4e2fa7255d9dedfb8f86f39b9b12612d45662d2305012692753874befa5377e1bcb2e8fc04b54bf206948e12eb7bc357a764c1b1e496e5997 SHA512 a647882ede8d7b97e301e472e91f4573dce9f8bf4e408449444625fdf79859a54fd828daa60c7960721f34c3d6d82e2e45db2c55f2fc093097a0db42f7363b8c
|
||||
DIST python-gentoo-patches-3.11.10.tar.xz 8484 BLAKE2B 844aa7a855e3ab5a6307c6bfac9d58faad249ce550d21e8526125dc56b9665dc6fa00530a60efe8f851397d368057400851906e59fec10f6325bd83a51e39317 SHA512 bb602b80eed62ca8477b05665267ec3729fd9a85d9b709f844ad729f496d008a529d05d2ebfe8acb5db5ccb99005260bfe458f6ce0d9d358530670e0970e415e
|
||||
DIST python-gentoo-patches-3.11.9.tar.xz 8456 BLAKE2B 4e62837f17c1d056460df417b056a79ad78dbcdd3454761c7cda68ffe6faf8f4d4f04d5539e0ba94332fe19a751f7d5ff2c35ff969a6aa09a2c72d2ce5efbff1 SHA512 a288aa8d1d15e906e0f1762602a2122f9dc91bbd6b72123ac5d00ce55b3af324a4e8280b600fc0fb630e489e57ee1547d7595a4ede7a70e4b26d6686a8414997
|
||||
DIST python-gentoo-patches-3.11.9_p1.tar.xz 12348 BLAKE2B 885c18eb52d299c8da43fe48106a2464ce594822e8ed362150c98f749065447b7438741cacf82a71db102434a5b2a2e91778aca8609fd7ede7898f9e57a82d49 SHA512 2ed8a97692a8980e565038ad095dad8ed3daf1f8c5c5e042a0bc278c320e099962ad13b5ff919ae334674a4828c5e8f3b9c3af6b3c37e93a42374284f5ea2243
|
||||
DIST python-gentoo-patches-3.11.9_p2.tar.xz 14916 BLAKE2B a910eae412fc1ce3657272c3c2ea9ef95b8d5711ed4c85b93a35f4ab757b1134bff0f8c8a0071e8e06aac784d0b51e36cd9271f892098cba272da4a4e73317d1 SHA512 5c055186b3a8376f4f602ec5d1f8e7bf0f067bc67295c1cdaa68ce1fb6fb21cda75e22705b8a5a2a6525af67f3b36a82fde5ba6ae9b097a5914ab79a2f1a0fad
|
||||
DIST python-gentoo-patches-3.12.3.tar.xz 6028 BLAKE2B 7953a48a1d95a6a33bd88060fbcac463a5469371aa0c882c3945f1fea64a63c4d45fca8451f51f4eaeea00a04267ad2e54e4cc720c95e8bb5a3477e00263b80a SHA512 4779bab2b24e59e4a77987ce3e9611d99e87c9c4d016309758c26a65fe2e11ef04d48d5af628c02b1552dc1f31b768f87448f8e19e716b4fe372941e6dacac3f
|
||||
DIST python-gentoo-patches-3.12.4_p3.tar.xz 14796 BLAKE2B 68f5235ef434f9db16e7bc635ff51b6607cfb9be713fdc3c0ef624ec0f513345f6e02e27b8ebc2b3c8a5fcd4f4f5161024407ae364bdffd3b22a7a9d3a509b30 SHA512 8e337a7234b8ad64dd82435dcda0ef4e90c21214bd7b13a83fe9ba700d5b07ce11fb33b7d34d808132120b4a077fde26278b87116bb02ccef50470c046a66d2b
|
||||
DIST python-gentoo-patches-3.12.5.tar.xz 6056 BLAKE2B d9b85d98a75f6365c63ddabb8f25db3be11e7e4de22ec9426bb24160efcca25c75e3e19beec9fc2f8f8fe273c145f825c6f27ece2fca83d44cf2dbdfacae918d SHA512 72949ae8a1c796cb57e8b43d259037a723482b5a3849823c1cdc58acc012177a0ec836a4dd6ad656fe57ee1d84491c03ed9109667a953aa52bf5df7640de969f
|
||||
DIST python-gentoo-patches-3.12.5_p1.tar.xz 8632 BLAKE2B 13570bb465002cea3590b06d055b936ac0fcc68f6f258aca99a67f02f0b1cd28396424b686c5e080f593a74a744ff449e7220f51f167a858b2313be4c8b64b19 SHA512 eb9fb2d48236a9f7941fb8938310cc32d216eb01e19277175223b8b1fe1bfd606bde9a3c8bc66ad2e494fb87ce23b0d1acd359c375e4a11a5caae25450c11360
|
||||
DIST python-gentoo-patches-3.12.6.tar.xz 6048 BLAKE2B 577032d7aa4bab423781bffad8e64f56b492dc31fbd20acd91f3d28356bd697603dfd47a3a9051538dde2af942ae513727ecea415d82f5082a992bd22b8cb2dd SHA512 6f1037e97bb362a3d04c3ec080dc062c5de6e4b779cda0d88f684422d757acd6fc6f971c7004a3f50bbc0161dd28c3146672f74e0e598066f9a8ba4e0eb2627e
|
||||
DIST python-gentoo-patches-3.13.0rc1_p2.tar.xz 12748 BLAKE2B 851d16e16d2a98fde62c38054d9bedf3538d88a59e19dcfd8ee7d86f3f67a3b66105664da9181dbfb9ad16aa0042815ccf469225348fb0ba8854337b0a736d33 SHA512 8264aa65bf71e97a4afe47a9fba58815163bc950ea70ff708c5f265722c5b4b8af19fbbe8a9c3673957a6de3af8307a9ba0ed9f4e42472ca24c5ed930682a038
|
||||
DIST python-gentoo-patches-3.13.0rc1_p3.tar.xz 15148 BLAKE2B 668060644372e8ddf2d9686796ec304ae7689f5c10ecbc6862f054f96504c418b0e4df28675e4fbb610889f9a665a7a54f23633036b0df35f19f40ef8e6bab32 SHA512 c0cbdf9e0fe2ad29175302e548ebfda1d2af42af0ffeb363eb8b0dc53e1059f5abd7dcd02fd8e9eb9ba7bef2b34b7693633f0a62dc1ab933f43077feacf00fbc
|
||||
DIST python-gentoo-patches-3.13.0rc2.tar.xz 5696 BLAKE2B 4e716d1d6225e811b598d029ef1dbdc413df614ef00ab8051ea697e633477a0114a3660cae037bdf4142f76c9f2efdefc25b604af11c31eb77d6d98d8f932cff SHA512 c20b53772bd7d305562657722aec70de78fffbf8ab7939f59d496e06c21b31fcd7b4a92573b1000d3bee4d90fd8b7422543f9cfdad15d60bc9a7ecf2a2259599
|
||||
DIST python-gentoo-patches-3.8.19_p2.tar.xz 35524 BLAKE2B a6b81e6ae907b60eea676cb65a9c693e62453dc44616baaadb294c5782a195c20eff6c2869b38ea110fe06e9e511468f4ab0c3d1811b16e0ab2833f9dc09b25b SHA512 9944c330b6062c2ac6e13fcfbc1c8835dfd078f6744cdfbc03ba787ae97c08bdae559cefadafe9dfe9be9c31f8c15ee895599b266d870f73c06a2f4b15c78dc3
|
||||
DIST python-gentoo-patches-3.8.19_p3.tar.xz 39392 BLAKE2B 451765c7546831c35f52e2772b8b43b6515f66cace2d13ed473228bf2d2b18f49b938a61d4cdf1be0fecbebfac1fc8d3d95f7597eb9d877c0b2ce495e8d419c1 SHA512 76e405ddfd3ee98dbd077f6ec83ae93d0506ddbc3b2b8884a0f38c6269ea982b635b0eb7820f6f9b2f81eb0ef514b93a5eb10437414cde4de2bfb7ea37764b3c
|
||||
DIST python-gentoo-patches-3.8.19_p4.tar.xz 41888 BLAKE2B 8f5fcf8b6d925c9f668a1f8ac22d4b8c2ff7b4d90103606afc37eef735d5ed0fe7288469fb18e08bc31165c16c9877977610e5a6af9e385518028baed34fde2f SHA512 4440725419af3bc5c4f1719dd39605df28e2bca625c3a822082e4541db9479dc6fcf8c2d6fc777292b75f70669ab7e010df105b2b580865a442df76c0f83ebbc
|
||||
DIST python-gentoo-patches-3.8.20.tar.xz 34380 BLAKE2B 1fea8e65f7db809a716376a3062a730321f68e711837c400fecffc27273754bb9aef3ed98651bce412596d35674f0b0813f7a722c1e2fe22954922c17846de37 SHA512 3070a0b3cb91129ffcada6052e50d779ea6b5480a3b4edc3e3f1c9d3b683ec1866168255db84b86f0a4dedb4a23949cda8f474d320db34d7511e9ede9a0342d9
|
||||
DIST python-gentoo-patches-3.9.19_p3.tar.xz 28240 BLAKE2B 35c70b1f9a590abe9a74795f478ab788cd72c96e9d84f2756685e61324dc4203148e71b00a236bb4af8fb8315e3582ecec255b39749a653e0511d4a9f9fef725 SHA512 6b8f4dab4aa7d4d646ee4091b5cf76bbc8896d4299a3623660a2c5fec06c0cf56c0a50ac87604885cd155141bc85e0e80acdbedb7b34a813901aad021b9b8ab2
|
||||
DIST python-gentoo-patches-3.9.19_p4.tar.xz 32048 BLAKE2B 9595d508304baf36a2c8daa2ae15d3596fdfb5fed5c531fc379ee347d5b165885ade1842f094184fb7bd81a6385e45f9b77ba7bfa4334ea30292c0bc59b373e2 SHA512 5713c69ee3745246a570e0f05ac8f45baa8f9fa8a2154c930f1ddcf827a2a790cb5e308f5ff9452d3ffda5d60c167a02429af773eebf13dcb6463793cd448500
|
||||
DIST python-gentoo-patches-3.9.19_p5.tar.xz 34548 BLAKE2B 6ad49bba626932b3ba1b781fe5762882aa90b552bedc0f1b8fe0921c7e4ad1bd67ddbc2c11c969fae53fd2b6189dd1b1506da87c123c055ec3df023950bd1938 SHA512 d66a2d6012d98edde4a9eb52cd8a06f0338a25f44e299713abd970884c7b1d457c6a09a1e27035841eae3a4844bbec1b4d2a4b691bbf519867a6ed58f251e633
|
||||
DIST python-gentoo-patches-3.9.20.tar.xz 26992 BLAKE2B d77861cb99c5b0f76482c7250d45ab0726e9745929a2098724ba528034b7787e12be2505c3d2479f3b5e1760b8e4046d89ad6d5e4af200c4116c348c663792ba SHA512 132f1d731b671fbddf89a3af49c6887f3f8414f0f0df6769f243eab056e214ef3b2427075de10384cc4f6df2fd3140fb6321ad3e271539da9cb6846ba26e935e
|
||||
DIST python-gentoo-patches-3.10.15_p1.tar.xz 24048 BLAKE2B 191c28ad9bc781d6f3077870e8d40ff98a47a64009ecfbbd10fe2b3c5330692181837fd3e9b336fd01f936a39160fc12761b2ef9bc00843248ab978cda2e2767 SHA512 4461e351c991694415e2812e558d6c3d3f79295358623dc955bc0839691a170d95a3efd31c0bf9f0d6191e4184d7b55fdb485b948d591782fef5b060d7660cce
|
||||
DIST python-gentoo-patches-3.11.10_p1.tar.xz 10592 BLAKE2B 1cc02d22b55cb76beba133c37e6db3b9ba12b11cd8776acb064f14431842405cbc9efb5a06319cff1c73d9178ddbbe2e340829d4628c88a9589aa2fc1d308f80 SHA512 7ddb08e4d8a9173a26fa18de687a4c85c3d460e2bc595da6f4b15cfe3be264ccdc7d61d5fed1e7a82f256d21caf3ea7de87f774fde61a9d37bed15f86f546adb
|
||||
DIST python-gentoo-patches-3.12.6_p2.tar.xz 8144 BLAKE2B 2f36ce972e0b3e2884c9df629e3aeb1af05e4c77dffb866ff28e08a0a7df3c7cf36a9de250d148d909c07fd5bad483c95b3267818657c04e7d0d6fe512e21f9a SHA512 caa86c6cf693f9293b3aa8944452d117b78c1c3f8d6a6aa658cb5c2d2ffb0cecc6cf14b293872bd2101766ee7167ba88183904b2814090f8cbc64c1fa3b771be
|
||||
DIST python-gentoo-patches-3.12.6_p4-r1.tar.xz 9072 BLAKE2B 831f6c4284035832e0536ad3211d10c078e6c356e1fa593dd45984b29253deaf703bcb71e1b488508992dd37d5a140591c9193f1620bb966e39b048e4d5c6746 SHA512 9c61e0396c98fb45f3dccad9165e3f2b7bbeabd4a6fe88cc6e05a9d3012e39068571e63527dc831efaf24cb0e8fee75f60454481b2d1a0a44bedba69a7ed5c95
|
||||
DIST python-gentoo-patches-3.12.7_p1-r1.tar.xz 10552 BLAKE2B c71ffbbaa4dccd012fced7979c54f2b895ac207a892fd4b0118ab9ef678931c5449f6205855bf5fab9bc7fb5e5af0fc7c5b89bab608e5539855db571bb9d3aa4 SHA512 62207e2eb44e4eeb464ba4bdcefe15b3e03793793cbd033c153cdbf1c9a861779f3bb7259dc09e786c183450123ea283583d9870eca9d6c7b25e5f3dba6f89d6
|
||||
DIST python-gentoo-patches-3.13.0rc3-r1.tar.xz 8324 BLAKE2B 8a8124bf2c8bcb93113e7a17394dd83087c7f7d49e56e6878947029c496dcf8f6acb1da62124c73ee4121639fbaa6c3cbea13032c786c8b57bbbc379386394cf SHA512 cdfdd0f744f87438863432880791c611ae14f6169fdce08bfc22deb1e5b1f62aeb87044e6f7b15524b26bef8383ca1641d9b2861558bba597a74551e3ef478a7
|
||||
DIST python-gentoo-patches-3.8.20_p2.tar.xz 42296 BLAKE2B c0f2c4d0adcb6c10eb68342b911016666cb68308717a5ca1369100a39229ce16c6e9dfdf9e1b4cffe0191d03ca5ee7d9568cd24885fd0f4f32f14e2e8c0a96a3 SHA512 cb9e98c0dd823b6e4f8a60e9095ab58e596cd9411b675678a0d4adefc92b37e14cecc7cecb82e287ac34a9ce1d4595f261b0736bcc9fc62c43c7d8c0b3be70e7
|
||||
DIST python-gentoo-patches-3.9.20_p1.tar.xz 34944 BLAKE2B 332454661adc03033c7e8a5fcc91081b7d405826e9bf89bb2c2e178a0795e4415c9e87ae923756470ee973441f242e194b397354964b8f43dadd4965d210a4f4 SHA512 19bf7227535526a733633723b75d49786dfd8738595c1115b4e05665bc13a1ea70cbf0cc62cb27e81c75f5db2aa56ab985eaa5abde6243697caccb2cb5288005
|
||||
|
||||
@ -1,542 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
|
||||
inherit prefix python-utils-r1 toolchain-funcs verify-sig
|
||||
|
||||
MY_PV=${PV/_rc/rc}
|
||||
MY_P="Python-${MY_PV%_p*}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="
|
||||
https://www.python.org/
|
||||
https://github.com/python/cpython/
|
||||
"
|
||||
SRC_URI="
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||
verify-sig? (
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
|
||||
)
|
||||
"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
IUSE="
|
||||
bluetooth build debug +ensurepip examples gdbm libedit
|
||||
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="
|
||||
app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
>=dev-libs/expat-2.1:=
|
||||
dev-libs/libffi:=
|
||||
dev-libs/mpdecimal:=
|
||||
dev-python/gentoo-common
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
ensurepip? ( dev-python/ensurepip-wheels )
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
kernel_linux? ( sys-apps/util-linux:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? (
|
||||
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||
libedit? ( dev-libs/libedit:= )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
valgrind? ( dev-debug/valgrind )
|
||||
test? ( app-arch/xz-utils )
|
||||
"
|
||||
# autoconf-archive needed to eautoreconf
|
||||
BDEPEND="
|
||||
dev-build/autoconf-archive
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( sec-keys/openpgp-keys-python )
|
||||
"
|
||||
RDEPEND+="
|
||||
!build? ( app-misc/mime-types )
|
||||
"
|
||||
if [[ ${PV} != *_alpha* ]]; then
|
||||
RDEPEND+="
|
||||
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||
"
|
||||
fi
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
|
||||
|
||||
# large file tests involve a 2.5G file being copied (duplicated)
|
||||
CHECKREQS_DISK_BUILD=5500M
|
||||
|
||||
QA_PKGCONFIG_VERSION=${PYVER}
|
||||
# false positives -- functions specific to *BSD
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||
|
||||
pkg_pretend() {
|
||||
use test && check-reqs_pkg_pretend
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && check-reqs_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||
fi
|
||||
default
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat and libffi are not used.
|
||||
rm -r Modules/expat || die
|
||||
rm -r Modules/_ctypes/libffi* || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
# https://bugs.gentoo.org/850151
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||
|
||||
# force the correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs)
|
||||
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
build_cbuild_python() {
|
||||
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
#
|
||||
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||
|
||||
# We need to build our own Python on CBUILD first, and feed it in.
|
||||
# bug #847910 and bug #864911.
|
||||
local myeconfargs_cbuild=(
|
||||
"${myeconfargs[@]}"
|
||||
|
||||
--prefix="${BROOT}"/usr
|
||||
--libdir="${cbuild_libdir:2}"
|
||||
|
||||
# Avoid needing to load the right libpython.so.
|
||||
--disable-shared
|
||||
|
||||
# As minimal as possible for the mini CBUILD Python
|
||||
# we build just for cross.
|
||||
--without-lto
|
||||
--disable-optimizations
|
||||
)
|
||||
|
||||
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
|
||||
# libdir correctly for cross.
|
||||
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \
|
||||
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||
|
||||
# Avoid as many dependencies as possible for the cross build.
|
||||
cat >> Makefile <<-EOF || die
|
||||
MODULE_NIS=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__GDBM=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__SQLITE3=disabled
|
||||
MODULE__HASHLIB=disabled
|
||||
MODULE__SSL=disabled
|
||||
MODULE__CURSES=disabled
|
||||
MODULE__CURSES_PANEL=disabled
|
||||
MODULE_READLINE=disabled
|
||||
MODULE__TKINTER=disabled
|
||||
MODULE_PYEXPAT=disabled
|
||||
MODULE_ZLIB=disabled
|
||||
EOF
|
||||
|
||||
# Unfortunately, we do have to build this immediately, and
|
||||
# not in src_compile, because CHOST configure for Python
|
||||
# will check the existence of the Python it was pointed to
|
||||
# immediately.
|
||||
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" emake
|
||||
popd &> /dev/null || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# disable automagic bluetooth headers detection
|
||||
if ! use bluetooth; then
|
||||
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||
fi
|
||||
local disable
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
append-flags -fwrapv
|
||||
filter-flags -malign-double
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
# PKG_CONFIG needed for cross.
|
||||
tc-export CXX PKG_CONFIG
|
||||
|
||||
local dbmliborder=
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
if use pgo; then
|
||||
local profile_task_flags=(
|
||||
-m test
|
||||
"-j$(makeopts_jobs)"
|
||||
--pgo-extended
|
||||
-u-network
|
||||
|
||||
# We use a timeout because of how often we've had hang issues
|
||||
# here. It also matches the default upstream PROFILE_TASK.
|
||||
--timeout 1200
|
||||
|
||||
-x test_gdb
|
||||
-x test_dtrace
|
||||
|
||||
# All of these seem to occasionally hang for PGO inconsistently
|
||||
# They'll even hang here but be fine in src_test sometimes.
|
||||
# bug #828535 (and related: bug #788022)
|
||||
-x test_asyncio
|
||||
-x test_concurrent_futures
|
||||
-x test_httpservers
|
||||
-x test_logging
|
||||
-x test_multiprocessing_fork
|
||||
-x test_socket
|
||||
-x test_xmlrpc
|
||||
|
||||
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||
# bug #900429
|
||||
-x test_tools
|
||||
)
|
||||
|
||||
# musl-specific skips
|
||||
use elibc_musl && profile_task_flags+=(
|
||||
# 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 has_version "app-arch/rpm" ; then
|
||||
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||
profile_task_flags+=(
|
||||
-x test_distutils
|
||||
)
|
||||
fi
|
||||
local -x PROFILE_TASK="${profile_task_flags[*]}"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||
# Python on glibc upgrade, remove it proactively to give
|
||||
# a chance for users rebuilding python before glibc
|
||||
ac_cv_header_stropts_h=no
|
||||
|
||||
--enable-shared
|
||||
--without-static-libpython
|
||||
--enable-ipv6
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--without-lto
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
--with-system-libmpdec
|
||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||
|
||||
$(use_with debug assertions)
|
||||
$(use_enable pgo optimizations)
|
||||
$(use_with readline readline "$(usex libedit editline readline)")
|
||||
$(use_with valgrind)
|
||||
)
|
||||
|
||||
# disable implicit optimization/debugging flags
|
||||
local -x OPT=
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if tc-is-lto; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
myeconfargs+=(
|
||||
--with-lto
|
||||
)
|
||||
fi
|
||||
|
||||
if tc-is-cross-compiler ; then
|
||||
build_cbuild_python
|
||||
# Point the imminent CHOST build to the Python we just
|
||||
# built for CBUILD.
|
||||
export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
|
||||
fi
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
local -x CFLAGS_NODIST=${CFLAGS}
|
||||
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
if use ncurses; then
|
||||
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
fi
|
||||
|
||||
hprefixify setup.py
|
||||
econf "${myeconfargs[@]}"
|
||||
|
||||
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
|
||||
# install epython.py as part of stdlib
|
||||
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
# Prevent using distutils bundled by setuptools.
|
||||
# https://bugs.gentoo.org/823728
|
||||
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||
|
||||
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||
# end up writing bytecode & violating sandbox.
|
||||
# bug #831897
|
||||
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
if use pgo ; then
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
addpredict "/usr/lib/python${PYVER}/site-packages"
|
||||
fi
|
||||
|
||||
# also need to clear the flags explicitly here or they end up
|
||||
# in _sysconfigdata*
|
||||
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||
|
||||
# Restore saved value from above.
|
||||
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
# Work around bug 329499. See also bug 413751 and 457194.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E python
|
||||
else
|
||||
pax-mark m python
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
local test_opts=(
|
||||
-u-network
|
||||
-j "$(makeopts_jobs)"
|
||||
|
||||
# fails
|
||||
-x test_concurrent_futures
|
||||
-x test_gdb
|
||||
)
|
||||
|
||||
if use sparc ; then
|
||||
# bug #788022
|
||||
test_opts+=(
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
)
|
||||
fi
|
||||
|
||||
# musl-specific skips
|
||||
use elibc_musl && test_opts+=(
|
||||
# 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
|
||||
)
|
||||
|
||||
# workaround docutils breaking tests
|
||||
cat > Lib/docutils.py <<-EOF || die
|
||||
raise ImportError("Thou shalt not import!")
|
||||
EOF
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
# workaround https://bugs.gentoo.org/775416
|
||||
addwrite "/usr/lib/python${PYVER}/site-packages"
|
||||
|
||||
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local ret=${?}
|
||||
|
||||
rm Lib/docutils.py || die
|
||||
|
||||
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||
|
||||
# Cheap hack to get version with ABIFLAGS
|
||||
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||
if [[ ${abiver} != python${PYVER} ]]; then
|
||||
# Replace python3.X with a symlink to python3.Xm
|
||||
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||
# Create python3.X-config symlink
|
||||
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||
# Create python-3.5m.pc symlink
|
||||
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||
fi
|
||||
|
||||
# python seems to get rebuilt in src_install (bug 569908)
|
||||
# Work around it for now.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||
else
|
||||
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||
fi
|
||||
|
||||
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||
if ! use ensurepip; then
|
||||
rm -r "${libdir}"/ensurepip || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
fi
|
||||
|
||||
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||
|
||||
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||
dodoc -r Tools
|
||||
fi
|
||||
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||
local libname=$(
|
||||
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||
emake --no-print-directory -s -f - 2>/dev/null
|
||||
)
|
||||
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||
sed \
|
||||
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local EPYTHON=python${PYVER}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||
# 2to3, pydoc
|
||||
ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
||||
@ -1,542 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
|
||||
inherit prefix python-utils-r1 toolchain-funcs verify-sig
|
||||
|
||||
MY_PV=${PV/_rc/rc}
|
||||
MY_P="Python-${MY_PV%_p*}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="
|
||||
https://www.python.org/
|
||||
https://github.com/python/cpython/
|
||||
"
|
||||
SRC_URI="
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||
verify-sig? (
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
|
||||
)
|
||||
"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
IUSE="
|
||||
bluetooth build debug +ensurepip examples gdbm libedit
|
||||
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="
|
||||
app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
>=dev-libs/expat-2.1:=
|
||||
dev-libs/libffi:=
|
||||
dev-libs/mpdecimal:=
|
||||
dev-python/gentoo-common
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
ensurepip? ( dev-python/ensurepip-wheels )
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
kernel_linux? ( sys-apps/util-linux:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? (
|
||||
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||
libedit? ( dev-libs/libedit:= )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
valgrind? ( dev-debug/valgrind )
|
||||
test? ( app-arch/xz-utils )
|
||||
"
|
||||
# autoconf-archive needed to eautoreconf
|
||||
BDEPEND="
|
||||
dev-build/autoconf-archive
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( sec-keys/openpgp-keys-python )
|
||||
"
|
||||
RDEPEND+="
|
||||
!build? ( app-misc/mime-types )
|
||||
"
|
||||
if [[ ${PV} != *_alpha* ]]; then
|
||||
RDEPEND+="
|
||||
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||
"
|
||||
fi
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
|
||||
|
||||
# large file tests involve a 2.5G file being copied (duplicated)
|
||||
CHECKREQS_DISK_BUILD=5500M
|
||||
|
||||
QA_PKGCONFIG_VERSION=${PYVER}
|
||||
# false positives -- functions specific to *BSD
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||
|
||||
pkg_pretend() {
|
||||
use test && check-reqs_pkg_pretend
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && check-reqs_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||
fi
|
||||
default
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat and libffi are not used.
|
||||
rm -r Modules/expat || die
|
||||
rm -r Modules/_ctypes/libffi* || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
# https://bugs.gentoo.org/850151
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||
|
||||
# force the correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs)
|
||||
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
build_cbuild_python() {
|
||||
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
#
|
||||
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||
|
||||
# We need to build our own Python on CBUILD first, and feed it in.
|
||||
# bug #847910 and bug #864911.
|
||||
local myeconfargs_cbuild=(
|
||||
"${myeconfargs[@]}"
|
||||
|
||||
--prefix="${BROOT}"/usr
|
||||
--libdir="${cbuild_libdir:2}"
|
||||
|
||||
# Avoid needing to load the right libpython.so.
|
||||
--disable-shared
|
||||
|
||||
# As minimal as possible for the mini CBUILD Python
|
||||
# we build just for cross.
|
||||
--without-lto
|
||||
--disable-optimizations
|
||||
)
|
||||
|
||||
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
|
||||
# libdir correctly for cross.
|
||||
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \
|
||||
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||
|
||||
# Avoid as many dependencies as possible for the cross build.
|
||||
cat >> Makefile <<-EOF || die
|
||||
MODULE_NIS=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__GDBM=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__SQLITE3=disabled
|
||||
MODULE__HASHLIB=disabled
|
||||
MODULE__SSL=disabled
|
||||
MODULE__CURSES=disabled
|
||||
MODULE__CURSES_PANEL=disabled
|
||||
MODULE_READLINE=disabled
|
||||
MODULE__TKINTER=disabled
|
||||
MODULE_PYEXPAT=disabled
|
||||
MODULE_ZLIB=disabled
|
||||
EOF
|
||||
|
||||
# Unfortunately, we do have to build this immediately, and
|
||||
# not in src_compile, because CHOST configure for Python
|
||||
# will check the existence of the Python it was pointed to
|
||||
# immediately.
|
||||
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" emake
|
||||
popd &> /dev/null || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# disable automagic bluetooth headers detection
|
||||
if ! use bluetooth; then
|
||||
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||
fi
|
||||
local disable
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
append-flags -fwrapv
|
||||
filter-flags -malign-double
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
# PKG_CONFIG needed for cross.
|
||||
tc-export CXX PKG_CONFIG
|
||||
|
||||
local dbmliborder=
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
if use pgo; then
|
||||
local profile_task_flags=(
|
||||
-m test
|
||||
"-j$(makeopts_jobs)"
|
||||
--pgo-extended
|
||||
-u-network
|
||||
|
||||
# We use a timeout because of how often we've had hang issues
|
||||
# here. It also matches the default upstream PROFILE_TASK.
|
||||
--timeout 1200
|
||||
|
||||
-x test_gdb
|
||||
-x test_dtrace
|
||||
|
||||
# All of these seem to occasionally hang for PGO inconsistently
|
||||
# They'll even hang here but be fine in src_test sometimes.
|
||||
# bug #828535 (and related: bug #788022)
|
||||
-x test_asyncio
|
||||
-x test_concurrent_futures
|
||||
-x test_httpservers
|
||||
-x test_logging
|
||||
-x test_multiprocessing_fork
|
||||
-x test_socket
|
||||
-x test_xmlrpc
|
||||
|
||||
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||
# bug #900429
|
||||
-x test_tools
|
||||
)
|
||||
|
||||
# musl-specific skips
|
||||
use elibc_musl && profile_task_flags+=(
|
||||
# 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 has_version "app-arch/rpm" ; then
|
||||
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||
profile_task_flags+=(
|
||||
-x test_distutils
|
||||
)
|
||||
fi
|
||||
local -x PROFILE_TASK="${profile_task_flags[*]}"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||
# Python on glibc upgrade, remove it proactively to give
|
||||
# a chance for users rebuilding python before glibc
|
||||
ac_cv_header_stropts_h=no
|
||||
|
||||
--enable-shared
|
||||
--without-static-libpython
|
||||
--enable-ipv6
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--without-lto
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
--with-system-libmpdec
|
||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||
|
||||
$(use_with debug assertions)
|
||||
$(use_enable pgo optimizations)
|
||||
$(use_with readline readline "$(usex libedit editline readline)")
|
||||
$(use_with valgrind)
|
||||
)
|
||||
|
||||
# disable implicit optimization/debugging flags
|
||||
local -x OPT=
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if tc-is-lto; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
myeconfargs+=(
|
||||
--with-lto
|
||||
)
|
||||
fi
|
||||
|
||||
if tc-is-cross-compiler ; then
|
||||
build_cbuild_python
|
||||
# Point the imminent CHOST build to the Python we just
|
||||
# built for CBUILD.
|
||||
export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
|
||||
fi
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
local -x CFLAGS_NODIST=${CFLAGS}
|
||||
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
if use ncurses; then
|
||||
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
fi
|
||||
|
||||
hprefixify setup.py
|
||||
econf "${myeconfargs[@]}"
|
||||
|
||||
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
|
||||
# install epython.py as part of stdlib
|
||||
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
# Prevent using distutils bundled by setuptools.
|
||||
# https://bugs.gentoo.org/823728
|
||||
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||
|
||||
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||
# end up writing bytecode & violating sandbox.
|
||||
# bug #831897
|
||||
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
if use pgo ; then
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
addpredict "/usr/lib/python${PYVER}/site-packages"
|
||||
fi
|
||||
|
||||
# also need to clear the flags explicitly here or they end up
|
||||
# in _sysconfigdata*
|
||||
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||
|
||||
# Restore saved value from above.
|
||||
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
# Work around bug 329499. See also bug 413751 and 457194.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E python
|
||||
else
|
||||
pax-mark m python
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
local test_opts=(
|
||||
-u-network
|
||||
-j "$(makeopts_jobs)"
|
||||
|
||||
# fails
|
||||
-x test_concurrent_futures
|
||||
-x test_gdb
|
||||
)
|
||||
|
||||
if use sparc ; then
|
||||
# bug #788022
|
||||
test_opts+=(
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
)
|
||||
fi
|
||||
|
||||
# musl-specific skips
|
||||
use elibc_musl && test_opts+=(
|
||||
# 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
|
||||
)
|
||||
|
||||
# workaround docutils breaking tests
|
||||
cat > Lib/docutils.py <<-EOF || die
|
||||
raise ImportError("Thou shalt not import!")
|
||||
EOF
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
# workaround https://bugs.gentoo.org/775416
|
||||
addwrite "/usr/lib/python${PYVER}/site-packages"
|
||||
|
||||
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local ret=${?}
|
||||
|
||||
rm Lib/docutils.py || die
|
||||
|
||||
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||
|
||||
# Cheap hack to get version with ABIFLAGS
|
||||
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||
if [[ ${abiver} != python${PYVER} ]]; then
|
||||
# Replace python3.X with a symlink to python3.Xm
|
||||
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||
# Create python3.X-config symlink
|
||||
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||
# Create python-3.5m.pc symlink
|
||||
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||
fi
|
||||
|
||||
# python seems to get rebuilt in src_install (bug 569908)
|
||||
# Work around it for now.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||
else
|
||||
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||
fi
|
||||
|
||||
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||
if ! use ensurepip; then
|
||||
rm -r "${libdir}"/ensurepip || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
fi
|
||||
|
||||
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||
|
||||
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||
dodoc -r Tools
|
||||
fi
|
||||
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||
local libname=$(
|
||||
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||
emake --no-print-directory -s -f - 2>/dev/null
|
||||
)
|
||||
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||
sed \
|
||||
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local EPYTHON=python${PYVER}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||
# 2to3, pydoc
|
||||
ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
||||
@ -1,542 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
|
||||
inherit prefix python-utils-r1 toolchain-funcs verify-sig
|
||||
|
||||
MY_PV=${PV/_rc/rc}
|
||||
MY_P="Python-${MY_PV%_p*}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="
|
||||
https://www.python.org/
|
||||
https://github.com/python/cpython/
|
||||
"
|
||||
SRC_URI="
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||
verify-sig? (
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
|
||||
)
|
||||
"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
IUSE="
|
||||
bluetooth build debug +ensurepip examples gdbm libedit
|
||||
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="
|
||||
app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
>=dev-libs/expat-2.1:=
|
||||
dev-libs/libffi:=
|
||||
dev-libs/mpdecimal:=
|
||||
dev-python/gentoo-common
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
ensurepip? ( dev-python/ensurepip-wheels )
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
kernel_linux? ( sys-apps/util-linux:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? (
|
||||
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||
libedit? ( dev-libs/libedit:= )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
valgrind? ( dev-debug/valgrind )
|
||||
test? ( app-arch/xz-utils )
|
||||
"
|
||||
# autoconf-archive needed to eautoreconf
|
||||
BDEPEND="
|
||||
dev-build/autoconf-archive
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( sec-keys/openpgp-keys-python )
|
||||
"
|
||||
RDEPEND+="
|
||||
!build? ( app-misc/mime-types )
|
||||
"
|
||||
if [[ ${PV} != *_alpha* ]]; then
|
||||
RDEPEND+="
|
||||
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||
"
|
||||
fi
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
|
||||
|
||||
# large file tests involve a 2.5G file being copied (duplicated)
|
||||
CHECKREQS_DISK_BUILD=5500M
|
||||
|
||||
QA_PKGCONFIG_VERSION=${PYVER}
|
||||
# false positives -- functions specific to *BSD
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||
|
||||
pkg_pretend() {
|
||||
use test && check-reqs_pkg_pretend
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && check-reqs_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||
fi
|
||||
default
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat and libffi are not used.
|
||||
rm -r Modules/expat || die
|
||||
rm -r Modules/_ctypes/libffi* || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
# https://bugs.gentoo.org/850151
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||
|
||||
# force the correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs)
|
||||
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
build_cbuild_python() {
|
||||
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
#
|
||||
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||
|
||||
# We need to build our own Python on CBUILD first, and feed it in.
|
||||
# bug #847910 and bug #864911.
|
||||
local myeconfargs_cbuild=(
|
||||
"${myeconfargs[@]}"
|
||||
|
||||
--prefix="${BROOT}"/usr
|
||||
--libdir="${cbuild_libdir:2}"
|
||||
|
||||
# Avoid needing to load the right libpython.so.
|
||||
--disable-shared
|
||||
|
||||
# As minimal as possible for the mini CBUILD Python
|
||||
# we build just for cross.
|
||||
--without-lto
|
||||
--disable-optimizations
|
||||
)
|
||||
|
||||
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
|
||||
# libdir correctly for cross.
|
||||
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \
|
||||
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||
|
||||
# Avoid as many dependencies as possible for the cross build.
|
||||
cat >> Makefile <<-EOF || die
|
||||
MODULE_NIS=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__GDBM=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__SQLITE3=disabled
|
||||
MODULE__HASHLIB=disabled
|
||||
MODULE__SSL=disabled
|
||||
MODULE__CURSES=disabled
|
||||
MODULE__CURSES_PANEL=disabled
|
||||
MODULE_READLINE=disabled
|
||||
MODULE__TKINTER=disabled
|
||||
MODULE_PYEXPAT=disabled
|
||||
MODULE_ZLIB=disabled
|
||||
EOF
|
||||
|
||||
# Unfortunately, we do have to build this immediately, and
|
||||
# not in src_compile, because CHOST configure for Python
|
||||
# will check the existence of the Python it was pointed to
|
||||
# immediately.
|
||||
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" emake
|
||||
popd &> /dev/null || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# disable automagic bluetooth headers detection
|
||||
if ! use bluetooth; then
|
||||
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||
fi
|
||||
local disable
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
append-flags -fwrapv
|
||||
filter-flags -malign-double
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
# PKG_CONFIG needed for cross.
|
||||
tc-export CXX PKG_CONFIG
|
||||
|
||||
local dbmliborder=
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
if use pgo; then
|
||||
local profile_task_flags=(
|
||||
-m test
|
||||
"-j$(makeopts_jobs)"
|
||||
--pgo-extended
|
||||
-u-network
|
||||
|
||||
# We use a timeout because of how often we've had hang issues
|
||||
# here. It also matches the default upstream PROFILE_TASK.
|
||||
--timeout 1200
|
||||
|
||||
-x test_gdb
|
||||
-x test_dtrace
|
||||
|
||||
# All of these seem to occasionally hang for PGO inconsistently
|
||||
# They'll even hang here but be fine in src_test sometimes.
|
||||
# bug #828535 (and related: bug #788022)
|
||||
-x test_asyncio
|
||||
-x test_concurrent_futures
|
||||
-x test_httpservers
|
||||
-x test_logging
|
||||
-x test_multiprocessing_fork
|
||||
-x test_socket
|
||||
-x test_xmlrpc
|
||||
|
||||
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||
# bug #900429
|
||||
-x test_tools
|
||||
)
|
||||
|
||||
# musl-specific skips
|
||||
use elibc_musl && profile_task_flags+=(
|
||||
# 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 has_version "app-arch/rpm" ; then
|
||||
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||
profile_task_flags+=(
|
||||
-x test_distutils
|
||||
)
|
||||
fi
|
||||
local -x PROFILE_TASK="${profile_task_flags[*]}"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||
# Python on glibc upgrade, remove it proactively to give
|
||||
# a chance for users rebuilding python before glibc
|
||||
ac_cv_header_stropts_h=no
|
||||
|
||||
--enable-shared
|
||||
--without-static-libpython
|
||||
--enable-ipv6
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--without-lto
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
--with-system-libmpdec
|
||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||
|
||||
$(use_with debug assertions)
|
||||
$(use_enable pgo optimizations)
|
||||
$(use_with readline readline "$(usex libedit editline readline)")
|
||||
$(use_with valgrind)
|
||||
)
|
||||
|
||||
# disable implicit optimization/debugging flags
|
||||
local -x OPT=
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if tc-is-lto; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
myeconfargs+=(
|
||||
--with-lto
|
||||
)
|
||||
fi
|
||||
|
||||
if tc-is-cross-compiler ; then
|
||||
build_cbuild_python
|
||||
# Point the imminent CHOST build to the Python we just
|
||||
# built for CBUILD.
|
||||
export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
|
||||
fi
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
local -x CFLAGS_NODIST=${CFLAGS}
|
||||
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
if use ncurses; then
|
||||
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
fi
|
||||
|
||||
hprefixify setup.py
|
||||
econf "${myeconfargs[@]}"
|
||||
|
||||
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
|
||||
# install epython.py as part of stdlib
|
||||
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
# Prevent using distutils bundled by setuptools.
|
||||
# https://bugs.gentoo.org/823728
|
||||
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||
|
||||
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||
# end up writing bytecode & violating sandbox.
|
||||
# bug #831897
|
||||
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
if use pgo ; then
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
addpredict "/usr/lib/python${PYVER}/site-packages"
|
||||
fi
|
||||
|
||||
# also need to clear the flags explicitly here or they end up
|
||||
# in _sysconfigdata*
|
||||
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||
|
||||
# Restore saved value from above.
|
||||
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
# Work around bug 329499. See also bug 413751 and 457194.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E python
|
||||
else
|
||||
pax-mark m python
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
local test_opts=(
|
||||
-u-network
|
||||
-j "$(makeopts_jobs)"
|
||||
|
||||
# fails
|
||||
-x test_concurrent_futures
|
||||
-x test_gdb
|
||||
)
|
||||
|
||||
if use sparc ; then
|
||||
# bug #788022
|
||||
test_opts+=(
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
)
|
||||
fi
|
||||
|
||||
# musl-specific skips
|
||||
use elibc_musl && test_opts+=(
|
||||
# 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
|
||||
)
|
||||
|
||||
# workaround docutils breaking tests
|
||||
cat > Lib/docutils.py <<-EOF || die
|
||||
raise ImportError("Thou shalt not import!")
|
||||
EOF
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
# workaround https://bugs.gentoo.org/775416
|
||||
addwrite "/usr/lib/python${PYVER}/site-packages"
|
||||
|
||||
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local ret=${?}
|
||||
|
||||
rm Lib/docutils.py || die
|
||||
|
||||
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" TEST_MODULES=no altinstall
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||
|
||||
# Cheap hack to get version with ABIFLAGS
|
||||
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||
if [[ ${abiver} != python${PYVER} ]]; then
|
||||
# Replace python3.X with a symlink to python3.Xm
|
||||
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||
# Create python3.X-config symlink
|
||||
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||
# Create python-3.5m.pc symlink
|
||||
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||
fi
|
||||
|
||||
# python seems to get rebuilt in src_install (bug 569908)
|
||||
# Work around it for now.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||
else
|
||||
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||
fi
|
||||
|
||||
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||
if ! use ensurepip; then
|
||||
rm -r "${libdir}"/ensurepip || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${libdir}/"sqlite3 || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||
rm -r "${libdir}/"{idlelib,tkinter} || die
|
||||
fi
|
||||
|
||||
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||
|
||||
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||
dodoc -r Tools
|
||||
fi
|
||||
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||
local libname=$(
|
||||
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||
emake --no-print-directory -s -f - 2>/dev/null
|
||||
)
|
||||
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||
sed \
|
||||
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local EPYTHON=python${PYVER}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||
# 2to3, pydoc
|
||||
ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
||||
@ -1,542 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
|
||||
inherit prefix python-utils-r1 toolchain-funcs verify-sig
|
||||
|
||||
MY_PV=${PV/_rc/rc}
|
||||
MY_P="Python-${MY_PV%_p*}"
|
||||
PYVER=$(ver_cut 1-2)
|
||||
PATCHSET="python-gentoo-patches-${MY_PV}"
|
||||
|
||||
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
|
||||
HOMEPAGE="
|
||||
https://www.python.org/
|
||||
https://github.com/python/cpython/
|
||||
"
|
||||
SRC_URI="
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
|
||||
verify-sig? (
|
||||
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
|
||||
)
|
||||
"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="${PYVER}"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
IUSE="
|
||||
bluetooth build debug +ensurepip examples gdbm libedit
|
||||
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Do not add a dependency on dev-lang/python to this ebuild.
|
||||
# If you need to apply a patch which requires python for bootstrapping, please
|
||||
# run the bootstrap code on your dev box and include the results in the
|
||||
# patchset. See bug 447752.
|
||||
|
||||
RDEPEND="
|
||||
app-arch/bzip2:=
|
||||
app-arch/xz-utils:=
|
||||
>=dev-libs/expat-2.1:=
|
||||
dev-libs/libffi:=
|
||||
dev-libs/mpdecimal:=
|
||||
dev-python/gentoo-common
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
ensurepip? ( dev-python/ensurepip-wheels )
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
kernel_linux? ( sys-apps/util-linux:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? (
|
||||
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||
libedit? ( dev-libs/libedit:= )
|
||||
)
|
||||
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
|
||||
ssl? ( >=dev-libs/openssl-1.1.1:= )
|
||||
tk? (
|
||||
>=dev-lang/tcl-8.0:=
|
||||
>=dev-lang/tk-8.0:=
|
||||
dev-tcltk/blt:=
|
||||
dev-tcltk/tix
|
||||
)
|
||||
"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
valgrind? ( dev-debug/valgrind )
|
||||
test? ( app-arch/xz-utils )
|
||||
"
|
||||
# autoconf-archive needed to eautoreconf
|
||||
BDEPEND="
|
||||
dev-build/autoconf-archive
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( sec-keys/openpgp-keys-python )
|
||||
"
|
||||
RDEPEND+="
|
||||
!build? ( app-misc/mime-types )
|
||||
"
|
||||
if [[ ${PV} != *_alpha* ]]; then
|
||||
RDEPEND+="
|
||||
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||
"
|
||||
fi
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
|
||||
|
||||
# large file tests involve a 2.5G file being copied (duplicated)
|
||||
CHECKREQS_DISK_BUILD=5500M
|
||||
|
||||
QA_PKGCONFIG_VERSION=${PYVER}
|
||||
# false positives -- functions specific to *BSD
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||
|
||||
pkg_pretend() {
|
||||
use test && check-reqs_pkg_pretend
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && check-reqs_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if use verify-sig; then
|
||||
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
|
||||
fi
|
||||
default
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Ensure that internal copies of expat and libffi are not used.
|
||||
rm -r Modules/expat || die
|
||||
rm -r Modules/_ctypes/libffi* || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
# https://bugs.gentoo.org/850151
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||
|
||||
# force the correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs)
|
||||
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
build_cbuild_python() {
|
||||
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
#
|
||||
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||
|
||||
# We need to build our own Python on CBUILD first, and feed it in.
|
||||
# bug #847910 and bug #864911.
|
||||
local myeconfargs_cbuild=(
|
||||
"${myeconfargs[@]}"
|
||||
|
||||
--prefix="${BROOT}"/usr
|
||||
--libdir="${cbuild_libdir:2}"
|
||||
|
||||
# Avoid needing to load the right libpython.so.
|
||||
--disable-shared
|
||||
|
||||
# As minimal as possible for the mini CBUILD Python
|
||||
# we build just for cross.
|
||||
--without-lto
|
||||
--disable-optimizations
|
||||
)
|
||||
|
||||
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
|
||||
# libdir correctly for cross.
|
||||
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \
|
||||
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||
|
||||
# Avoid as many dependencies as possible for the cross build.
|
||||
cat >> Makefile <<-EOF || die
|
||||
MODULE_NIS=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__GDBM=disabled
|
||||
MODULE__DBM=disabled
|
||||
MODULE__SQLITE3=disabled
|
||||
MODULE__HASHLIB=disabled
|
||||
MODULE__SSL=disabled
|
||||
MODULE__CURSES=disabled
|
||||
MODULE__CURSES_PANEL=disabled
|
||||
MODULE_READLINE=disabled
|
||||
MODULE__TKINTER=disabled
|
||||
MODULE_PYEXPAT=disabled
|
||||
MODULE_ZLIB=disabled
|
||||
EOF
|
||||
|
||||
# Unfortunately, we do have to build this immediately, and
|
||||
# not in src_compile, because CHOST configure for Python
|
||||
# will check the existence of the Python it was pointed to
|
||||
# immediately.
|
||||
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" emake
|
||||
popd &> /dev/null || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# disable automagic bluetooth headers detection
|
||||
if ! use bluetooth; then
|
||||
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||
fi
|
||||
local disable
|
||||
use gdbm || disable+=" gdbm"
|
||||
use ncurses || disable+=" _curses _curses_panel"
|
||||
use readline || disable+=" readline"
|
||||
use sqlite || disable+=" _sqlite3"
|
||||
use ssl || export PYTHON_DISABLE_SSL="1"
|
||||
use tk || disable+=" _tkinter"
|
||||
export PYTHON_DISABLE_MODULES="${disable}"
|
||||
|
||||
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
|
||||
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
|
||||
fi
|
||||
|
||||
append-flags -fwrapv
|
||||
filter-flags -malign-double
|
||||
|
||||
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
|
||||
# PKG_CONFIG needed for cross.
|
||||
tc-export CXX PKG_CONFIG
|
||||
|
||||
local dbmliborder=
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
if use pgo; then
|
||||
local profile_task_flags=(
|
||||
-m test
|
||||
"-j$(makeopts_jobs)"
|
||||
--pgo-extended
|
||||
-u-network
|
||||
|
||||
# We use a timeout because of how often we've had hang issues
|
||||
# here. It also matches the default upstream PROFILE_TASK.
|
||||
--timeout 1200
|
||||
|
||||
-x test_gdb
|
||||
-x test_dtrace
|
||||
|
||||
# All of these seem to occasionally hang for PGO inconsistently
|
||||
# They'll even hang here but be fine in src_test sometimes.
|
||||
# bug #828535 (and related: bug #788022)
|
||||
-x test_asyncio
|
||||
-x test_concurrent_futures
|
||||
-x test_httpservers
|
||||
-x test_logging
|
||||
-x test_multiprocessing_fork
|
||||
-x test_socket
|
||||
-x test_xmlrpc
|
||||
|
||||
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||
# bug #900429
|
||||
-x test_tools
|
||||
)
|
||||
|
||||
# musl-specific skips
|
||||
use elibc_musl && profile_task_flags+=(
|
||||
# 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 has_version "app-arch/rpm" ; then
|
||||
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||
profile_task_flags+=(
|
||||
-x test_distutils
|
||||
)
|
||||
fi
|
||||
local -x PROFILE_TASK="${profile_task_flags[*]}"
|
||||
fi
|
||||
|
||||
local myeconfargs=(
|
||||
# glibc-2.30 removes it; since we can't cleanly force-rebuild
|
||||
# Python on glibc upgrade, remove it proactively to give
|
||||
# a chance for users rebuilding python before glibc
|
||||
ac_cv_header_stropts_h=no
|
||||
|
||||
--enable-shared
|
||||
--without-static-libpython
|
||||
--enable-ipv6
|
||||
--infodir='${prefix}/share/info'
|
||||
--mandir='${prefix}/share/man'
|
||||
--with-computed-gotos
|
||||
--with-dbmliborder="${dbmliborder}"
|
||||
--with-libc=
|
||||
--enable-loadable-sqlite-extensions
|
||||
--without-ensurepip
|
||||
--without-lto
|
||||
--with-system-expat
|
||||
--with-system-ffi
|
||||
--with-system-libmpdec
|
||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||
|
||||
$(use_with debug assertions)
|
||||
$(use_enable pgo optimizations)
|
||||
$(use_with readline readline "$(usex libedit editline readline)")
|
||||
$(use_with valgrind)
|
||||
)
|
||||
|
||||
# disable implicit optimization/debugging flags
|
||||
local -x OPT=
|
||||
|
||||
# https://bugs.gentoo.org/700012
|
||||
if tc-is-lto; then
|
||||
append-cflags $(test-flags-CC -ffat-lto-objects)
|
||||
myeconfargs+=(
|
||||
--with-lto
|
||||
)
|
||||
fi
|
||||
|
||||
if tc-is-cross-compiler ; then
|
||||
build_cbuild_python
|
||||
# Point the imminent CHOST build to the Python we just
|
||||
# built for CBUILD.
|
||||
export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
|
||||
fi
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
local -x CFLAGS_NODIST=${CFLAGS}
|
||||
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
if use ncurses; then
|
||||
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
fi
|
||||
|
||||
hprefixify setup.py
|
||||
econf "${myeconfargs[@]}"
|
||||
|
||||
if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
|
||||
eerror "configure has detected that the sem_open function is broken."
|
||||
eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
|
||||
die "Broken sem_open function (bug 496328)"
|
||||
fi
|
||||
|
||||
# install epython.py as part of stdlib
|
||||
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
# Prevent using distutils bundled by setuptools.
|
||||
# https://bugs.gentoo.org/823728
|
||||
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||
|
||||
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||
# end up writing bytecode & violating sandbox.
|
||||
# bug #831897
|
||||
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
if use pgo ; then
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
addpredict "/usr/lib/python${PYVER}/site-packages"
|
||||
fi
|
||||
|
||||
# also need to clear the flags explicitly here or they end up
|
||||
# in _sysconfigdata*
|
||||
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||
|
||||
# Restore saved value from above.
|
||||
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
# Work around bug 329499. See also bug 413751 and 457194.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E python
|
||||
else
|
||||
pax-mark m python
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Tests will not work when cross compiling.
|
||||
if tc-is-cross-compiler; then
|
||||
elog "Disabling tests due to crosscompiling."
|
||||
return
|
||||
fi
|
||||
|
||||
local test_opts=(
|
||||
-u-network
|
||||
-j "$(makeopts_jobs)"
|
||||
|
||||
# fails
|
||||
-x test_concurrent_futures
|
||||
-x test_gdb
|
||||
)
|
||||
|
||||
if use sparc ; then
|
||||
# bug #788022
|
||||
test_opts+=(
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
)
|
||||
fi
|
||||
|
||||
# musl-specific skips
|
||||
use elibc_musl && test_opts+=(
|
||||
# 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
|
||||
)
|
||||
|
||||
# workaround docutils breaking tests
|
||||
cat > Lib/docutils.py <<-EOF || die
|
||||
raise ImportError("Thou shalt not import!")
|
||||
EOF
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
# workaround https://bugs.gentoo.org/775416
|
||||
addwrite "/usr/lib/python${PYVER}/site-packages"
|
||||
|
||||
nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local ret=${?}
|
||||
|
||||
rm Lib/docutils.py || die
|
||||
|
||||
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
emake DESTDIR="${D}" altinstall
|
||||
|
||||
# Fix collisions between different slots of Python.
|
||||
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
|
||||
|
||||
# Cheap hack to get version with ABIFLAGS
|
||||
local abiver=$(cd "${ED}/usr/include"; echo python*)
|
||||
if [[ ${abiver} != python${PYVER} ]]; then
|
||||
# Replace python3.X with a symlink to python3.Xm
|
||||
rm "${ED}/usr/bin/python${PYVER}" || die
|
||||
dosym "${abiver}" "/usr/bin/python${PYVER}"
|
||||
# Create python3.X-config symlink
|
||||
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
|
||||
# Create python-3.5m.pc symlink
|
||||
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
|
||||
fi
|
||||
|
||||
# python seems to get rebuilt in src_install (bug 569908)
|
||||
# Work around it for now.
|
||||
if has_version dev-libs/libffi[pax-kernel]; then
|
||||
pax-mark E "${ED}/usr/bin/${abiver}"
|
||||
else
|
||||
pax-mark m "${ED}/usr/bin/${abiver}"
|
||||
fi
|
||||
|
||||
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||
if ! use ensurepip; then
|
||||
rm -r "${libdir}"/ensurepip || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
fi
|
||||
|
||||
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
|
||||
|
||||
dodoc Misc/{ACKS,HISTORY,NEWS}
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
find Tools -name __pycache__ -exec rm -fr {} + || die
|
||||
dodoc -r Tools
|
||||
fi
|
||||
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
|
||||
local libname=$(
|
||||
printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
|
||||
emake --no-print-directory -s -f - 2>/dev/null
|
||||
)
|
||||
newins Tools/gdb/libpython.py "${libname}"-gdb.py
|
||||
|
||||
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
|
||||
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
|
||||
sed \
|
||||
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
|
||||
-e "s:@PYDOC@:pydoc${PYVER}:" \
|
||||
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
|
||||
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local EPYTHON=python${PYVER}
|
||||
local scriptdir=${D}$(python_get_scriptdir)
|
||||
mkdir -p "${scriptdir}" || die
|
||||
# python and pythonX
|
||||
ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
|
||||
ln -s "python${pymajor}" "${scriptdir}/python" || die
|
||||
# python-config and pythonX-config
|
||||
# note: we need to create a wrapper rather than symlinking it due
|
||||
# to some random dirname(argv[0]) magic performed by python-config
|
||||
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
|
||||
#!/bin/sh
|
||||
exec "${abiver}-config" "\${@}"
|
||||
EOF
|
||||
chmod +x "${scriptdir}/python${pymajor}-config" || die
|
||||
ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
|
||||
# 2to3, pydoc
|
||||
ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
|
||||
ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
|
||||
# idle
|
||||
if use tk; then
|
||||
ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
|
||||
fi
|
||||
}
|
||||
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